mirror of
https://github.com/ApfelTeeSaft/RebrewU.git
synced 2026-08-26 19:33:27 +00:00
45066 lines
2.4 MiB
Plaintext
45066 lines
2.4 MiB
Plaintext
// Generated by RebrewU -- do not edit
|
|
#include <rebrewu_runtime.h>
|
|
#include <stdint.h>
|
|
#include <math.h>
|
|
|
|
#include "Gambit.h"
|
|
|
|
// fn_028ED7AC @ 0x28ed7ac
|
|
void Gambit_fn_028ED7AC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028ED7AC: ; // 0x28ed7ac
|
|
/* 028ED7AC */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028ED7AC */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028ED7B0 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028ED7B0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028ED7B4 */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 028ED7B8 */ cpu->r[11] = 0x10110000u;
|
|
/* 028ED7BC */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 028ED7BC */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028ED7C0 */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028ED7C0 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 028ED7C4 */ return;
|
|
}
|
|
|
|
// fn_028ED7C8 @ 0x28ed7c8
|
|
void Gambit_fn_028ED7C8(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_028ED7C8: ; // 0x28ed7c8
|
|
/* 028ED7C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED7CC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED7CC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028ED7CC */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED7CC */ goto L_028ED7D0;
|
|
L_028ED7D0: ; // 0x28ed7d0
|
|
/* 028ED7D0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028ED7D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028ED7D4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED7D4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028ED7D4 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED7D4 */ goto L_028ED7D8;
|
|
L_028ED7D8: ; // 0x28ed7d8
|
|
/* 028ED7D8 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028ED7DC @ 0x28ed7dc
|
|
void Gambit_fn_028ED7DC(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_028ED7DC: ; // 0x28ed7dc
|
|
/* 028ED7DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED7E0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED7E0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028ED7E0 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED7E0 */ goto L_028ED7E4;
|
|
L_028ED7E4: ; // 0x28ed7e4
|
|
/* 028ED7E4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028ED7E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028ED7E8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED7E8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028ED7E8 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED7E8 */ goto L_028ED7EC;
|
|
L_028ED7EC: ; // 0x28ed7ec
|
|
/* 028ED7EC */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028ED7F0 @ 0x28ed7f0
|
|
void Gambit_fn_028ED7F0(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_028ED7F0: ; // 0x28ed7f0
|
|
/* 028ED7F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED7F4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED7F4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028ED7F4 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED7F4 */ goto L_028ED7F8;
|
|
L_028ED7F8: ; // 0x28ed7f8
|
|
/* 028ED7F8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028ED7F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028ED7FC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED7FC */ _t19 = _t18 & 0x00000001u;
|
|
/* 028ED7FC */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED7FC */ goto L_028ED800;
|
|
L_028ED800: ; // 0x28ed800
|
|
/* 028ED800 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028ED804 @ 0x28ed804
|
|
void Gambit_fn_028ED804(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_028ED804: ; // 0x28ed804
|
|
/* 028ED804 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED808 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED808 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028ED808 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED808 */ goto L_028ED80C;
|
|
L_028ED80C: ; // 0x28ed80c
|
|
/* 028ED80C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028ED80C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028ED810 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED810 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028ED810 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED810 */ goto L_028ED814;
|
|
L_028ED814: ; // 0x28ed814
|
|
/* 028ED814 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028ED818 @ 0x28ed818
|
|
void Gambit_fn_028ED818(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_028ED818: ; // 0x28ed818
|
|
/* 028ED818 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED81C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED81C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028ED81C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED81C */ goto L_028ED820;
|
|
L_028ED820: ; // 0x28ed820
|
|
/* 028ED820 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028ED820 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028ED824 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED824 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028ED824 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED824 */ goto L_028ED828;
|
|
L_028ED828: ; // 0x28ed828
|
|
/* 028ED828 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028ED82C @ 0x28ed82c
|
|
void Gambit_fn_028ED82C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028ED82C: ; // 0x28ed82c
|
|
/* 028ED82C */ cpu->r[0] = cpu->lr;
|
|
/* 028ED830 */ cpu->r[3] = 0x00000174u;
|
|
/* 028ED834 */ cpu->r[4] = cpu->r[5];
|
|
/* 028ED838 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028ED838 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028ED83C */ cpu->r[5] = 0x00000004u;
|
|
/* 028ED840 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028ED840 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028ED840 */ cpu->r[1] = _t1;
|
|
/* 028ED844 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028ED848 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED84C */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED84C */ _t3 = _t2 & 0x00000001u;
|
|
/* 028ED84C */ if (_t3) goto L_028ED854; else goto L_028ED850;
|
|
L_028ED850: ; // 0x28ed850
|
|
/* 028ED850 */ Gambit_fn_028D395C(cpu);
|
|
L_028ED854: ; // 0x28ed854
|
|
/* 028ED854 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ED854 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028ED858 */ cpu->lr = cpu->r[0];
|
|
/* 028ED85C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028ED860 */ return;
|
|
}
|
|
|
|
// fn_028ED840 @ 0x28ed840
|
|
void Gambit_fn_028ED840(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028ED840: ; // 0x28ed840
|
|
/* 028ED840 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028ED840 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028ED840 */ cpu->r[1] = _t0;
|
|
/* 028ED844 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028ED848 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED84C */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED84C */ _t2 = _t1 & 0x00000001u;
|
|
/* 028ED84C */ if (_t2) goto L_028ED854; else goto L_028ED850;
|
|
L_028ED850: ; // 0x28ed850
|
|
/* 028ED850 */ Gambit_fn_028D395C(cpu);
|
|
L_028ED854: ; // 0x28ed854
|
|
/* 028ED854 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ED854 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028ED858 */ cpu->lr = cpu->r[0];
|
|
/* 028ED85C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028ED860 */ return;
|
|
}
|
|
|
|
// fn_028ED864 @ 0x28ed864
|
|
void Gambit_fn_028ED864(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028ED864: ; // 0x28ed864
|
|
/* 028ED864 */ cpu->r[0] = cpu->lr;
|
|
/* 028ED868 */ cpu->r[3] = 0x00000158u;
|
|
/* 028ED86C */ cpu->r[4] = cpu->r[5];
|
|
/* 028ED870 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028ED870 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028ED874 */ cpu->r[5] = 0x00000004u;
|
|
/* 028ED878 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028ED878 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028ED878 */ cpu->r[1] = _t1;
|
|
/* 028ED87C */ Gambit_fn_02801AC8(cpu);
|
|
/* 028ED880 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED884 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED884 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028ED884 */ if (_t3) goto L_028ED88C; else goto L_028ED888;
|
|
L_028ED888: ; // 0x28ed888
|
|
/* 028ED888 */ Gambit_fn_028D1BA8(cpu);
|
|
L_028ED88C: ; // 0x28ed88c
|
|
/* 028ED88C */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ED88C */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028ED890 */ cpu->lr = cpu->r[0];
|
|
/* 028ED894 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028ED898 */ return;
|
|
}
|
|
|
|
// fn_028ED878 @ 0x28ed878
|
|
void Gambit_fn_028ED878(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028ED878: ; // 0x28ed878
|
|
/* 028ED878 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028ED878 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028ED878 */ cpu->r[1] = _t0;
|
|
/* 028ED87C */ Gambit_fn_02801AC8(cpu);
|
|
/* 028ED880 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED884 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED884 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028ED884 */ if (_t2) goto L_028ED88C; else goto L_028ED888;
|
|
L_028ED888: ; // 0x28ed888
|
|
/* 028ED888 */ Gambit_fn_028D1BA8(cpu);
|
|
L_028ED88C: ; // 0x28ed88c
|
|
/* 028ED88C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ED88C */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028ED890 */ cpu->lr = cpu->r[0];
|
|
/* 028ED894 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028ED898 */ return;
|
|
}
|
|
|
|
// fn_028ED89C @ 0x28ed89c
|
|
void Gambit_fn_028ED89C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028ED89C: ; // 0x28ed89c
|
|
/* 028ED89C */ cpu->r[3] = cpu->r[4];
|
|
/* 028ED89C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED8A0 */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED8A0 */ _t1 = _t0 & 0x00000001u;
|
|
/* 028ED8A0 */ if (_t1) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED8A0 */ goto L_028ED8A4;
|
|
L_028ED8A4: ; // 0x28ed8a4
|
|
/* 028ED8A4 */ _t2 = cpu->r[3] + 0x00000008u;
|
|
/* 028ED8A4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028ED8A8 */ _t3 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028ED8A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028ED8AC */ cpu->ctr = cpu->r[0];
|
|
/* 028ED8B0 */ cpu->r[4] = 0x00000003u;
|
|
/* 028ED8B4 */ rbrew_dispatch(cpu, cpu->ctr); return;
|
|
}
|
|
|
|
// fn_028ED8B8 @ 0x28ed8b8
|
|
void Gambit_fn_028ED8B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028ED8B8: ; // 0x28ed8b8
|
|
/* 028ED8B8 */ cpu->r[3] = cpu->r[4];
|
|
/* 028ED8B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED8BC */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED8BC */ _t1 = _t0 & 0x00000001u;
|
|
/* 028ED8BC */ if (_t1) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED8BC */ goto L_028ED8C0;
|
|
L_028ED8C0: ; // 0x28ed8c0
|
|
/* 028ED8C0 */ _t2 = cpu->r[3] + 0x00000000u;
|
|
/* 028ED8C0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028ED8C4 */ _t3 = cpu->r[12] + 0x00000084u;
|
|
/* 028ED8C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028ED8C8 */ cpu->r[4] = 0x028D0000u;
|
|
/* 028ED8CC */ cpu->ctr = cpu->r[0];
|
|
/* 028ED8D0 */ cpu->r[4] = cpu->r[4] + 0x00005DD8u;
|
|
/* 028ED8D4 */ rbrew_dispatch(cpu, cpu->ctr); return;
|
|
}
|
|
|
|
// fn_028ED8D8 @ 0x28ed8d8
|
|
void Gambit_fn_028ED8D8(CPUState* cpu) {
|
|
L_028ED8D8: ; // 0x28ed8d8
|
|
/* 028ED8D8 */ cpu->r[0] = 0x00020000u;
|
|
/* 028ED8DC */ cpu->r[3] = cpu->r[0] | 0x00000002u;
|
|
/* 028ED8E0 */ return;
|
|
}
|
|
|
|
// fn_028ED8E4 @ 0x28ed8e4
|
|
void Gambit_fn_028ED8E4(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_028ED8E4: ; // 0x28ed8e4
|
|
/* 028ED8E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED8E8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED8E8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028ED8E8 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED8E8 */ goto L_028ED8EC;
|
|
L_028ED8EC: ; // 0x28ed8ec
|
|
/* 028ED8EC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028ED8EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028ED8F0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED8F0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028ED8F0 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED8F0 */ goto L_028ED8F4;
|
|
L_028ED8F4: ; // 0x28ed8f4
|
|
/* 028ED8F4 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028ED8F8 @ 0x28ed8f8
|
|
void Gambit_fn_028ED8F8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028ED8F8: ; // 0x28ed8f8
|
|
/* 028ED8F8 */ cpu->r[3] = cpu->r[4];
|
|
/* 028ED8F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED8FC */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED8FC */ _t1 = _t0 & 0x00000001u;
|
|
/* 028ED8FC */ if (_t1) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED8FC */ goto L_028ED900;
|
|
L_028ED900: ; // 0x28ed900
|
|
/* 028ED900 */ _t2 = cpu->r[3] + 0x00000000u;
|
|
/* 028ED900 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028ED904 */ _t3 = cpu->r[12] + 0x00000084u;
|
|
/* 028ED904 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028ED908 */ cpu->r[4] = 0x028D0000u;
|
|
/* 028ED90C */ cpu->ctr = cpu->r[0];
|
|
/* 028ED910 */ cpu->r[4] = cpu->r[4] + 0x00005E0Cu;
|
|
/* 028ED914 */ rbrew_dispatch(cpu, cpu->ctr); return;
|
|
}
|
|
|
|
// fn_028ED918 @ 0x28ed918
|
|
void Gambit_fn_028ED918(CPUState* cpu) {
|
|
L_028ED918: ; // 0x28ed918
|
|
/* 028ED918 */ cpu->r[0] = 0x00020000u;
|
|
/* 028ED91C */ cpu->r[3] = cpu->r[0] | 0x00000003u;
|
|
/* 028ED920 */ return;
|
|
}
|
|
|
|
// fn_028ED924 @ 0x28ed924
|
|
void Gambit_fn_028ED924(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_028ED924: ; // 0x28ed924
|
|
/* 028ED924 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED928 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED928 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028ED928 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED928 */ goto L_028ED92C;
|
|
L_028ED92C: ; // 0x28ed92c
|
|
/* 028ED92C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028ED92C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028ED930 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED930 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028ED930 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED930 */ goto L_028ED934;
|
|
L_028ED934: ; // 0x28ed934
|
|
/* 028ED934 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028ED938 @ 0x28ed938
|
|
void Gambit_fn_028ED938(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028ED938: ; // 0x28ed938
|
|
/* 028ED938 */ cpu->r[3] = cpu->r[4];
|
|
/* 028ED938 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED93C */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED93C */ _t1 = _t0 & 0x00000001u;
|
|
/* 028ED93C */ if (_t1) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED93C */ goto L_028ED940;
|
|
L_028ED940: ; // 0x28ed940
|
|
/* 028ED940 */ _t2 = cpu->r[3] + 0x00000000u;
|
|
/* 028ED940 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028ED944 */ _t3 = cpu->r[12] + 0x00000084u;
|
|
/* 028ED944 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028ED948 */ cpu->r[4] = 0x028D0000u;
|
|
/* 028ED94C */ cpu->ctr = cpu->r[0];
|
|
/* 028ED950 */ cpu->r[4] = cpu->r[4] + 0x00005E40u;
|
|
/* 028ED954 */ rbrew_dispatch(cpu, cpu->ctr); return;
|
|
}
|
|
|
|
// fn_028ED958 @ 0x28ed958
|
|
void Gambit_fn_028ED958(CPUState* cpu) {
|
|
L_028ED958: ; // 0x28ed958
|
|
/* 028ED958 */ cpu->r[0] = 0x00020000u;
|
|
/* 028ED95C */ cpu->r[3] = cpu->r[0] | 0x00000001u;
|
|
/* 028ED960 */ return;
|
|
}
|
|
|
|
// fn_028ED964 @ 0x28ed964
|
|
void Gambit_fn_028ED964(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_028ED964: ; // 0x28ed964
|
|
/* 028ED964 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED968 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED968 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028ED968 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED968 */ goto L_028ED96C;
|
|
L_028ED96C: ; // 0x28ed96c
|
|
/* 028ED96C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028ED96C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028ED970 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED970 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028ED970 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED970 */ goto L_028ED974;
|
|
L_028ED974: ; // 0x28ed974
|
|
/* 028ED974 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028ED978 @ 0x28ed978
|
|
void Gambit_fn_028ED978(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028ED978: ; // 0x28ed978
|
|
/* 028ED978 */ cpu->r[3] = cpu->r[4];
|
|
/* 028ED978 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED97C */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED97C */ _t1 = _t0 & 0x00000001u;
|
|
/* 028ED97C */ if (_t1) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED97C */ goto L_028ED980;
|
|
L_028ED980: ; // 0x28ed980
|
|
/* 028ED980 */ _t2 = cpu->r[3] + 0x00000000u;
|
|
/* 028ED980 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028ED984 */ _t3 = cpu->r[12] + 0x00000084u;
|
|
/* 028ED984 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028ED988 */ cpu->r[4] = 0x028D0000u;
|
|
/* 028ED98C */ cpu->ctr = cpu->r[0];
|
|
/* 028ED990 */ cpu->r[4] = cpu->r[4] + 0x00005E8Cu;
|
|
/* 028ED994 */ rbrew_dispatch(cpu, cpu->ctr); return;
|
|
}
|
|
|
|
// fn_028ED998 @ 0x28ed998
|
|
void Gambit_fn_028ED998(CPUState* cpu) {
|
|
L_028ED998: ; // 0x28ed998
|
|
/* 028ED998 */ cpu->r[0] = 0x00020000u;
|
|
/* 028ED99C */ cpu->r[3] = cpu->r[0] | 0x00000001u;
|
|
/* 028ED9A0 */ return;
|
|
}
|
|
|
|
// fn_028ED9A4 @ 0x28ed9a4
|
|
void Gambit_fn_028ED9A4(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_028ED9A4: ; // 0x28ed9a4
|
|
/* 028ED9A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ED9A8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED9A8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028ED9A8 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED9A8 */ goto L_028ED9AC;
|
|
L_028ED9AC: ; // 0x28ed9ac
|
|
/* 028ED9AC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028ED9AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028ED9B0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED9B0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028ED9B0 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ED9B0 */ goto L_028ED9B4;
|
|
L_028ED9B4: ; // 0x28ed9b4
|
|
/* 028ED9B4 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028ED9BC @ 0x28ed9bc
|
|
void Gambit_fn_028ED9BC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028ED9BC: ; // 0x28ed9bc
|
|
/* 028ED9BC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028ED9BC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028ED9BC */ cpu->r[1] = _t0;
|
|
/* 028ED9C0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ED9C0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028ED9C4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028ED9C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028ED9C8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028ED9C8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028ED9CC */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED9CC */ _t4 = _t3 & 0x00000001u;
|
|
/* 028ED9CC */ if (_t4) goto L_028ED9D0; else goto L_028ED9E0;
|
|
L_028ED9D0: ; // 0x28ed9d0
|
|
/* 028ED9D0 */ cpu->r[3] = 0x00000060u;
|
|
/* 028ED9D4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028ED9D8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028ED9D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028ED9DC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ED9DC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028ED9DC */ if (_t6) goto L_028EDA0C; else goto L_028ED9E0;
|
|
L_028ED9E0: ; // 0x28ed9e0
|
|
/* 028ED9E0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028ED9E4 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 028ED9E8 */ cpu->r[0] = cpu->r[0] + 0xFFFFC208u;
|
|
/* 028ED9EC */ _t7 = cpu->r[31] + 0x00000000u;
|
|
/* 028ED9EC */ rbrew_write32(cpu->mem, _t7, cpu->r[3]);
|
|
/* 028ED9F0 */ _t8 = cpu->r[31] + 0x0000005Cu;
|
|
/* 028ED9F0 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028ED9F4 */ Gambit_fn_028DCF1C(cpu);
|
|
/* 028ED9F8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028ED9FC */ _t9 = cpu->r[12] + 0xFFFFC200u;
|
|
/* 028ED9FC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028EDA00 */ cpu->r[12] = 0x00000000u;
|
|
/* 028EDA04 */ _t10 = cpu->r[31] + 0x00000054u;
|
|
/* 028EDA04 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028EDA08 */ _t11 = cpu->r[31] + 0x00000058u;
|
|
/* 028EDA08 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[0]);
|
|
L_028EDA0C: ; // 0x28eda0c
|
|
/* 028EDA0C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDA0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EDA10 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EDA14 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDA14 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EDA18 */ cpu->lr = cpu->r[0];
|
|
/* 028EDA1C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EDA20 */ return;
|
|
}
|
|
|
|
// fn_028EDA24 @ 0x28eda24
|
|
void Gambit_fn_028EDA24(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_028EDA24: ; // 0x28eda24
|
|
/* 028EDA24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDA28 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDA28 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EDA28 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EDA28 */ goto L_028EDA2C;
|
|
L_028EDA2C: ; // 0x28eda2c
|
|
/* 028EDA2C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EDA2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EDA30 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDA30 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EDA30 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EDA30 */ goto L_028EDA34;
|
|
L_028EDA34: ; // 0x28eda34
|
|
/* 028EDA34 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028EDA38 @ 0x28eda38
|
|
void Gambit_fn_028EDA38(CPUState* cpu) {
|
|
uint32_t _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_028EDA38: ; // 0x28eda38
|
|
/* 028EDA38 */ cpu->r[0] = cpu->lr;
|
|
/* 028EDA3C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EDA3C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EDA3C */ cpu->r[1] = _t0;
|
|
/* 028EDA40 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDA40 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EDA44 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EDA48 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDA48 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028EDA4C */ _t3 = cpu->r[31] + 0x00000000u;
|
|
/* 028EDA4C */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028EDA50 */ cpu->r[0] = cpu->r[31] + 0x00000004u;
|
|
/* 028EDA54 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 028EDA58 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDA58 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EDA58 */ if (_t5) goto L_028EDA5C; else goto L_028EDA88;
|
|
L_028EDA5C: ; // 0x28eda5c
|
|
/* 028EDA5C */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDA5C */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028EDA60 */ _t7 = cpu->r[11] + 0x00000024u;
|
|
/* 028EDA60 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028EDA64 */ cpu->ctr = cpu->r[0];
|
|
/* 028EDA68 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028EDA6C */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDA6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028EDA70 */ _t9 = cpu->r[31] + 0x00000058u;
|
|
/* 028EDA70 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028EDA74 */ cpu->lr = cpu->r[0];
|
|
/* 028EDA78 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDA78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EDA7C */ cpu->f[1] = cpu->f[1] * cpu->f[0];
|
|
/* 028EDA80 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EDA84 */ return;
|
|
L_028EDA88: ; // 0x28eda88
|
|
/* 028EDA88 */ _t11 = cpu->r[31] + 0x00000010u;
|
|
/* 028EDA88 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028EDA8C */ cpu->r[12] = 0x10140000u;
|
|
/* 028EDA90 */ cpu->f[1] = cpu->f[1] / cpu->f[0];
|
|
/* 028EDA94 */ _t12 = cpu->r[12] + 0xFFFFC204u;
|
|
/* 028EDA94 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028EDA98 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028EDA9C */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EDA9C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028EDA9C */ if (_t14) goto L_028EDAA0; else goto L_028EDAB8;
|
|
L_028EDAA0: ; // 0x28edaa0
|
|
/* 028EDAA0 */ _t15 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDAA0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EDAA4 */ _t16 = cpu->r[12] + 0x00000024u;
|
|
/* 028EDAA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028EDAA8 */ cpu->ctr = cpu->r[0];
|
|
/* 028EDAAC */ cpu->f[1] = cpu->f[0];
|
|
/* 028EDAB0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028EDAB4 */ goto L_028EDADC;
|
|
L_028EDAB8: ; // 0x28edab8
|
|
/* 028EDAB8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EDABC */ _t17 = cpu->r[12] + 0xFFFFC200u;
|
|
/* 028EDABC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028EDAC0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028EDAC4 */ _t18 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EDAC4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EDAC4 */ if (_t19) goto L_028EDAC8; else goto L_028EDACC;
|
|
L_028EDAC8: ; // 0x28edac8
|
|
/* 028EDAC8 */ cpu->f[1] = cpu->f[0];
|
|
L_028EDACC: ; // 0x28edacc
|
|
/* 028EDACC */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDACC */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028EDAD0 */ _t21 = cpu->r[12] + 0x00000024u;
|
|
/* 028EDAD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028EDAD4 */ cpu->ctr = cpu->r[0];
|
|
/* 028EDAD8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028EDADC: ; // 0x28edadc
|
|
/* 028EDADC */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDADC */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028EDAE0 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDAE0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028EDAE4 */ cpu->lr = cpu->r[0];
|
|
/* 028EDAE8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EDAEC */ return;
|
|
}
|
|
|
|
// fn_028EDA3C @ 0x28eda3c
|
|
void Gambit_fn_028EDA3C(CPUState* cpu) {
|
|
uint32_t _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_028EDA3C: ; // 0x28eda3c
|
|
/* 028EDA3C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EDA3C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EDA3C */ cpu->r[1] = _t0;
|
|
/* 028EDA40 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDA40 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EDA44 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EDA48 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDA48 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028EDA4C */ _t3 = cpu->r[31] + 0x00000000u;
|
|
/* 028EDA4C */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028EDA50 */ cpu->r[0] = cpu->r[31] + 0x00000004u;
|
|
/* 028EDA54 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 028EDA58 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDA58 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EDA58 */ if (_t5) goto L_028EDA5C; else goto L_028EDA88;
|
|
L_028EDA5C: ; // 0x28eda5c
|
|
/* 028EDA5C */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDA5C */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028EDA60 */ _t7 = cpu->r[11] + 0x00000024u;
|
|
/* 028EDA60 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028EDA64 */ cpu->ctr = cpu->r[0];
|
|
/* 028EDA68 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028EDA6C */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDA6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028EDA70 */ _t9 = cpu->r[31] + 0x00000058u;
|
|
/* 028EDA70 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028EDA74 */ cpu->lr = cpu->r[0];
|
|
/* 028EDA78 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDA78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EDA7C */ cpu->f[1] = cpu->f[1] * cpu->f[0];
|
|
/* 028EDA80 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EDA84 */ return;
|
|
L_028EDA88: ; // 0x28eda88
|
|
/* 028EDA88 */ _t11 = cpu->r[31] + 0x00000010u;
|
|
/* 028EDA88 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028EDA8C */ cpu->r[12] = 0x10140000u;
|
|
/* 028EDA90 */ cpu->f[1] = cpu->f[1] / cpu->f[0];
|
|
/* 028EDA94 */ _t12 = cpu->r[12] + 0xFFFFC204u;
|
|
/* 028EDA94 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028EDA98 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028EDA9C */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EDA9C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028EDA9C */ if (_t14) goto L_028EDAA0; else goto L_028EDAB8;
|
|
L_028EDAA0: ; // 0x28edaa0
|
|
/* 028EDAA0 */ _t15 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDAA0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EDAA4 */ _t16 = cpu->r[12] + 0x00000024u;
|
|
/* 028EDAA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028EDAA8 */ cpu->ctr = cpu->r[0];
|
|
/* 028EDAAC */ cpu->f[1] = cpu->f[0];
|
|
/* 028EDAB0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028EDAB4 */ goto L_028EDADC;
|
|
L_028EDAB8: ; // 0x28edab8
|
|
/* 028EDAB8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EDABC */ _t17 = cpu->r[12] + 0xFFFFC200u;
|
|
/* 028EDABC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028EDAC0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028EDAC4 */ _t18 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EDAC4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EDAC4 */ if (_t19) goto L_028EDAC8; else goto L_028EDACC;
|
|
L_028EDAC8: ; // 0x28edac8
|
|
/* 028EDAC8 */ cpu->f[1] = cpu->f[0];
|
|
L_028EDACC: ; // 0x28edacc
|
|
/* 028EDACC */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDACC */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028EDAD0 */ _t21 = cpu->r[12] + 0x00000024u;
|
|
/* 028EDAD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028EDAD4 */ cpu->ctr = cpu->r[0];
|
|
/* 028EDAD8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028EDADC: ; // 0x28edadc
|
|
/* 028EDADC */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDADC */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028EDAE0 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDAE0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028EDAE4 */ cpu->lr = cpu->r[0];
|
|
/* 028EDAE8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EDAEC */ return;
|
|
}
|
|
|
|
// fn_028EDAF0 @ 0x28edaf0
|
|
void Gambit_fn_028EDAF0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028EDAF0: ; // 0x28edaf0
|
|
/* 028EDAF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028EDAF4 */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDAF4 */ _t1 = _t0 & 0x00000001u;
|
|
/* 028EDAF4 */ if (_t1) goto L_028EDAF8; else goto L_028EDB08;
|
|
L_028EDAF8: ; // 0x28edaf8
|
|
/* 028EDAF8 */ cpu->r[0] = cpu->r[3] + 0x00000004u;
|
|
/* 028EDAFC */ _t2 = cpu->r[3] + 0x00000054u;
|
|
/* 028EDAFC */ rbrew_write32(cpu->mem, _t2, cpu->r[4]);
|
|
/* 028EDB00 */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDB00 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EDB04 */ return;
|
|
L_028EDB08: ; // 0x28edb08
|
|
/* 028EDB08 */ _t4 = cpu->r[3] + 0x00000054u;
|
|
/* 028EDB08 */ rbrew_write32(cpu->mem, _t4, cpu->r[4]);
|
|
/* 028EDB0C */ _t5 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDB0C */ rbrew_write32(cpu->mem, _t5, cpu->r[4]);
|
|
/* 028EDB10 */ return;
|
|
}
|
|
|
|
// fn_028EDB14 @ 0x28edb14
|
|
void Gambit_fn_028EDB14(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028EDB14: ; // 0x28edb14
|
|
/* 028EDB14 */ cpu->r[0] = cpu->lr;
|
|
/* 028EDB18 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EDB18 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EDB18 */ cpu->r[1] = _t0;
|
|
/* 028EDB1C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDB1C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EDB20 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EDB24 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028EDB28 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDB28 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028EDB2C */ _t3 = cpu->r[3] + 0xFFFF9AA0u;
|
|
/* 028EDB2C */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028EDB30 */ Gambit_fn_028ED090(cpu);
|
|
/* 028EDB34 */ cpu->r[4] = cpu->r[3];
|
|
/* 028EDB34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028EDB38 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDB38 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EDB38 */ if (_t5) goto L_028EDB5C; else goto L_028EDB3C;
|
|
L_028EDB3C: ; // 0x28edb3c
|
|
/* 028EDB3C */ cpu->r[3] = cpu->r[31];
|
|
/* 028EDB40 */ Gambit_fn_028EDAF0(cpu);
|
|
/* 028EDB44 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDB44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028EDB48 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDB48 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028EDB4C */ cpu->lr = cpu->r[0];
|
|
/* 028EDB50 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EDB54 */ cpu->r[3] = 0x00000001u;
|
|
/* 028EDB58 */ return;
|
|
L_028EDB5C: ; // 0x28edb5c
|
|
/* 028EDB5C */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDB5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028EDB60 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDB60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028EDB64 */ cpu->lr = cpu->r[0];
|
|
/* 028EDB68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EDB6C */ cpu->r[3] = 0x00000000u;
|
|
/* 028EDB70 */ return;
|
|
}
|
|
|
|
// fn_028EDB18 @ 0x28edb18
|
|
void Gambit_fn_028EDB18(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028EDB18: ; // 0x28edb18
|
|
/* 028EDB18 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EDB18 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EDB18 */ cpu->r[1] = _t0;
|
|
/* 028EDB1C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDB1C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EDB20 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EDB24 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028EDB28 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDB28 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028EDB2C */ _t3 = cpu->r[3] + 0xFFFF9AA0u;
|
|
/* 028EDB2C */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028EDB30 */ Gambit_fn_028ED090(cpu);
|
|
/* 028EDB34 */ cpu->r[4] = cpu->r[3];
|
|
/* 028EDB34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028EDB38 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDB38 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EDB38 */ if (_t5) goto L_028EDB5C; else goto L_028EDB3C;
|
|
L_028EDB3C: ; // 0x28edb3c
|
|
/* 028EDB3C */ cpu->r[3] = cpu->r[31];
|
|
/* 028EDB40 */ Gambit_fn_028EDAF0(cpu);
|
|
/* 028EDB44 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDB44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028EDB48 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDB48 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028EDB4C */ cpu->lr = cpu->r[0];
|
|
/* 028EDB50 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EDB54 */ cpu->r[3] = 0x00000001u;
|
|
/* 028EDB58 */ return;
|
|
L_028EDB5C: ; // 0x28edb5c
|
|
/* 028EDB5C */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDB5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028EDB60 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDB60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028EDB64 */ cpu->lr = cpu->r[0];
|
|
/* 028EDB68 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EDB6C */ cpu->r[3] = 0x00000000u;
|
|
/* 028EDB70 */ return;
|
|
}
|
|
|
|
// fn_028EDB74 @ 0x28edb74
|
|
void Gambit_fn_028EDB74(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028EDB74: ; // 0x28edb74
|
|
/* 028EDB74 */ _t0 = cpu->r[3] + 0x00000058u;
|
|
/* 028EDB74 */ rbrew_write_f32(cpu->mem, _t0, cpu->f[1]);
|
|
/* 028EDB78 */ _t1 = cpu->r[3] + 0x00000030u;
|
|
/* 028EDB78 */ rbrew_write_f32(cpu->mem, _t1, cpu->f[1]);
|
|
/* 028EDB7C */ return;
|
|
}
|
|
|
|
// fn_028EDB88 @ 0x28edb88
|
|
void Gambit_fn_028EDB88(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028EDB88: ; // 0x28edb88
|
|
/* 028EDB88 */ cpu->r[0] = cpu->lr;
|
|
/* 028EDB8C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028EDB8C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EDB8C */ cpu->r[1] = _t0;
|
|
/* 028EDB90 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDB90 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028EDB94 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EDB94 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028EDB98 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDB98 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028EDB9C */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028EDB9C */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028EDBA0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EDBA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EDBA4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EDBA4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028EDBA8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDBA8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EDBA8 */ if (_t7) goto L_028EDBAC; else goto L_028EDBBC;
|
|
L_028EDBAC: ; // 0x28edbac
|
|
/* 028EDBAC */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028EDBB0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDBB4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EDBB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EDBB8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDBB8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EDBB8 */ if (_t9) goto L_028EDC80; else goto L_028EDBBC;
|
|
L_028EDBBC: ; // 0x28edbbc
|
|
/* 028EDBBC */ cpu->r[28] = cpu->r[31];
|
|
/* 028EDBBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028EDBC0 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDBC0 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028EDBC0 */ if (_t11) goto L_028EDBC4; else goto L_028EDBD4;
|
|
L_028EDBC4: ; // 0x28edbc4
|
|
/* 028EDBC4 */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028EDBC8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDBCC */ cpu->r[28] = cpu->r[3];
|
|
/* 028EDBCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028EDBD0 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDBD0 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028EDBD0 */ if (_t13) goto L_028EDC74; else goto L_028EDBD4;
|
|
L_028EDBD4: ; // 0x28edbd4
|
|
/* 028EDBD4 */ cpu->r[29] = 0x10140000u;
|
|
/* 028EDBD8 */ cpu->r[30] = cpu->r[28];
|
|
/* 028EDBD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EDBDC */ cpu->r[29] = cpu->r[29] + 0xFFFFC21Cu;
|
|
/* 028EDBE0 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDBE0 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028EDBE0 */ if (_t15) goto L_028EDBE4; else goto L_028EDBF4;
|
|
L_028EDBE4: ; // 0x28edbe4
|
|
/* 028EDBE4 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028EDBE8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDBEC */ cpu->r[30] = cpu->r[3];
|
|
/* 028EDBEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EDBF0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDBF0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EDBF0 */ if (_t17) goto L_028EDC34; else goto L_028EDBF4;
|
|
L_028EDBF4: ; // 0x28edbf4
|
|
/* 028EDBF4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EDBF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDBF8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDBF8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EDBF8 */ if (_t19) goto L_028EDBFC; else goto L_028EDC0C;
|
|
L_028EDBFC: ; // 0x28edbfc
|
|
/* 028EDBFC */ cpu->r[3] = 0x00000008u;
|
|
/* 028EDC00 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDC04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDC08 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDC08 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028EDC08 */ if (_t21) goto L_028EDC1C; else goto L_028EDC0C;
|
|
L_028EDC0C: ; // 0x28edc0c
|
|
/* 028EDC0C */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDC10 */ _t22 = cpu->r[3] + 0x00000004u;
|
|
/* 028EDC10 */ rbrew_write32(cpu->mem, _t22, cpu->r[29]);
|
|
/* 028EDC14 */ cpu->r[0] = cpu->r[0] + 0xFFFFC218u;
|
|
/* 028EDC18 */ _t23 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDC18 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
L_028EDC1C: ; // 0x28edc1c
|
|
/* 028EDC1C */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDC20 */ cpu->r[7] = 0x10140000u;
|
|
/* 028EDC24 */ cpu->r[0] = cpu->r[0] + 0xFFFFC234u;
|
|
/* 028EDC28 */ cpu->r[7] = cpu->r[7] + 0xFFFFC274u;
|
|
/* 028EDC2C */ _t24 = cpu->r[30] + 0x00000008u;
|
|
/* 028EDC2C */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028EDC30 */ _t25 = cpu->r[30] + 0x00000000u;
|
|
/* 028EDC30 */ rbrew_write32(cpu->mem, _t25, cpu->r[7]);
|
|
L_028EDC34: ; // 0x28edc34
|
|
/* 028EDC34 */ cpu->r[8] = 0x10140000u;
|
|
/* 028EDC38 */ cpu->r[8] = cpu->r[8] + 0xFFFFC24Cu;
|
|
/* 028EDC3C */ cpu->r[3] = cpu->r[28] + 0x0000000Cu;
|
|
/* 028EDC3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDC40 */ _t26 = cpu->r[28] + 0x00000008u;
|
|
/* 028EDC40 */ rbrew_write32(cpu->mem, _t26, cpu->r[8]);
|
|
/* 028EDC44 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDC44 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028EDC44 */ if (_t28) goto L_028EDC48; else goto L_028EDC58;
|
|
L_028EDC48: ; // 0x28edc48
|
|
/* 028EDC48 */ cpu->r[3] = 0x00000008u;
|
|
/* 028EDC4C */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDC50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDC54 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDC54 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028EDC54 */ if (_t30) goto L_028EDC68; else goto L_028EDC58;
|
|
L_028EDC58: ; // 0x28edc58
|
|
/* 028EDC58 */ cpu->r[9] = 0x10140000u;
|
|
/* 028EDC5C */ _t31 = cpu->r[3] + 0x00000004u;
|
|
/* 028EDC5C */ rbrew_write32(cpu->mem, _t31, cpu->r[29]);
|
|
/* 028EDC60 */ cpu->r[9] = cpu->r[9] + 0xFFFFC28Cu;
|
|
/* 028EDC64 */ _t32 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDC64 */ rbrew_write32(cpu->mem, _t32, cpu->r[9]);
|
|
L_028EDC68: ; // 0x28edc68
|
|
/* 028EDC68 */ cpu->r[10] = 0x00000000u;
|
|
/* 028EDC6C */ _t33 = cpu->r[28] + 0x00000018u;
|
|
/* 028EDC6C */ rbrew_write32(cpu->mem, _t33, cpu->r[10]);
|
|
/* 028EDC70 */ _t34 = cpu->r[28] + 0x00000014u;
|
|
/* 028EDC70 */ rbrew_write32(cpu->mem, _t34, cpu->r[10]);
|
|
L_028EDC74: ; // 0x28edc74
|
|
/* 028EDC74 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDC78 */ cpu->r[0] = cpu->r[0] + 0xFFFFC48Cu;
|
|
/* 028EDC7C */ _t35 = cpu->r[31] + 0x00000008u;
|
|
/* 028EDC7C */ rbrew_write32(cpu->mem, _t35, cpu->r[0]);
|
|
L_028EDC80: ; // 0x28edc80
|
|
/* 028EDC80 */ _t36 = cpu->r[1] + 0x00000008u;
|
|
/* 028EDC80 */ cpu->r[28] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028EDC84 */ _t37 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDC84 */ cpu->r[29] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028EDC88 */ _t38 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EDC88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028EDC8C */ cpu->r[3] = cpu->r[31];
|
|
/* 028EDC90 */ _t39 = cpu->r[1] + 0x00000010u;
|
|
/* 028EDC90 */ cpu->r[30] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028EDC94 */ cpu->lr = cpu->r[0];
|
|
/* 028EDC98 */ _t40 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDC98 */ cpu->r[31] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028EDC9C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EDCA0 */ return;
|
|
}
|
|
|
|
// fn_028EDB8C @ 0x28edb8c
|
|
void Gambit_fn_028EDB8C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028EDB8C: ; // 0x28edb8c
|
|
/* 028EDB8C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028EDB8C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EDB8C */ cpu->r[1] = _t0;
|
|
/* 028EDB90 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDB90 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028EDB94 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EDB94 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028EDB98 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDB98 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028EDB9C */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028EDB9C */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028EDBA0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EDBA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EDBA4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EDBA4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028EDBA8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDBA8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EDBA8 */ if (_t7) goto L_028EDBAC; else goto L_028EDBBC;
|
|
L_028EDBAC: ; // 0x28edbac
|
|
/* 028EDBAC */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028EDBB0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDBB4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EDBB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EDBB8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDBB8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EDBB8 */ if (_t9) goto L_028EDC80; else goto L_028EDBBC;
|
|
L_028EDBBC: ; // 0x28edbbc
|
|
/* 028EDBBC */ cpu->r[28] = cpu->r[31];
|
|
/* 028EDBBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028EDBC0 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDBC0 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028EDBC0 */ if (_t11) goto L_028EDBC4; else goto L_028EDBD4;
|
|
L_028EDBC4: ; // 0x28edbc4
|
|
/* 028EDBC4 */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028EDBC8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDBCC */ cpu->r[28] = cpu->r[3];
|
|
/* 028EDBCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028EDBD0 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDBD0 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028EDBD0 */ if (_t13) goto L_028EDC74; else goto L_028EDBD4;
|
|
L_028EDBD4: ; // 0x28edbd4
|
|
/* 028EDBD4 */ cpu->r[29] = 0x10140000u;
|
|
/* 028EDBD8 */ cpu->r[30] = cpu->r[28];
|
|
/* 028EDBD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EDBDC */ cpu->r[29] = cpu->r[29] + 0xFFFFC21Cu;
|
|
/* 028EDBE0 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDBE0 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028EDBE0 */ if (_t15) goto L_028EDBE4; else goto L_028EDBF4;
|
|
L_028EDBE4: ; // 0x28edbe4
|
|
/* 028EDBE4 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028EDBE8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDBEC */ cpu->r[30] = cpu->r[3];
|
|
/* 028EDBEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EDBF0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDBF0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EDBF0 */ if (_t17) goto L_028EDC34; else goto L_028EDBF4;
|
|
L_028EDBF4: ; // 0x28edbf4
|
|
/* 028EDBF4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EDBF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDBF8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDBF8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EDBF8 */ if (_t19) goto L_028EDBFC; else goto L_028EDC0C;
|
|
L_028EDBFC: ; // 0x28edbfc
|
|
/* 028EDBFC */ cpu->r[3] = 0x00000008u;
|
|
/* 028EDC00 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDC04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDC08 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDC08 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028EDC08 */ if (_t21) goto L_028EDC1C; else goto L_028EDC0C;
|
|
L_028EDC0C: ; // 0x28edc0c
|
|
/* 028EDC0C */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDC10 */ _t22 = cpu->r[3] + 0x00000004u;
|
|
/* 028EDC10 */ rbrew_write32(cpu->mem, _t22, cpu->r[29]);
|
|
/* 028EDC14 */ cpu->r[0] = cpu->r[0] + 0xFFFFC218u;
|
|
/* 028EDC18 */ _t23 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDC18 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
L_028EDC1C: ; // 0x28edc1c
|
|
/* 028EDC1C */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDC20 */ cpu->r[7] = 0x10140000u;
|
|
/* 028EDC24 */ cpu->r[0] = cpu->r[0] + 0xFFFFC234u;
|
|
/* 028EDC28 */ cpu->r[7] = cpu->r[7] + 0xFFFFC274u;
|
|
/* 028EDC2C */ _t24 = cpu->r[30] + 0x00000008u;
|
|
/* 028EDC2C */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028EDC30 */ _t25 = cpu->r[30] + 0x00000000u;
|
|
/* 028EDC30 */ rbrew_write32(cpu->mem, _t25, cpu->r[7]);
|
|
L_028EDC34: ; // 0x28edc34
|
|
/* 028EDC34 */ cpu->r[8] = 0x10140000u;
|
|
/* 028EDC38 */ cpu->r[8] = cpu->r[8] + 0xFFFFC24Cu;
|
|
/* 028EDC3C */ cpu->r[3] = cpu->r[28] + 0x0000000Cu;
|
|
/* 028EDC3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDC40 */ _t26 = cpu->r[28] + 0x00000008u;
|
|
/* 028EDC40 */ rbrew_write32(cpu->mem, _t26, cpu->r[8]);
|
|
/* 028EDC44 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDC44 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028EDC44 */ if (_t28) goto L_028EDC48; else goto L_028EDC58;
|
|
L_028EDC48: ; // 0x28edc48
|
|
/* 028EDC48 */ cpu->r[3] = 0x00000008u;
|
|
/* 028EDC4C */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDC50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDC54 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDC54 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028EDC54 */ if (_t30) goto L_028EDC68; else goto L_028EDC58;
|
|
L_028EDC58: ; // 0x28edc58
|
|
/* 028EDC58 */ cpu->r[9] = 0x10140000u;
|
|
/* 028EDC5C */ _t31 = cpu->r[3] + 0x00000004u;
|
|
/* 028EDC5C */ rbrew_write32(cpu->mem, _t31, cpu->r[29]);
|
|
/* 028EDC60 */ cpu->r[9] = cpu->r[9] + 0xFFFFC28Cu;
|
|
/* 028EDC64 */ _t32 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDC64 */ rbrew_write32(cpu->mem, _t32, cpu->r[9]);
|
|
L_028EDC68: ; // 0x28edc68
|
|
/* 028EDC68 */ cpu->r[10] = 0x00000000u;
|
|
/* 028EDC6C */ _t33 = cpu->r[28] + 0x00000018u;
|
|
/* 028EDC6C */ rbrew_write32(cpu->mem, _t33, cpu->r[10]);
|
|
/* 028EDC70 */ _t34 = cpu->r[28] + 0x00000014u;
|
|
/* 028EDC70 */ rbrew_write32(cpu->mem, _t34, cpu->r[10]);
|
|
L_028EDC74: ; // 0x28edc74
|
|
/* 028EDC74 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDC78 */ cpu->r[0] = cpu->r[0] + 0xFFFFC48Cu;
|
|
/* 028EDC7C */ _t35 = cpu->r[31] + 0x00000008u;
|
|
/* 028EDC7C */ rbrew_write32(cpu->mem, _t35, cpu->r[0]);
|
|
L_028EDC80: ; // 0x28edc80
|
|
/* 028EDC80 */ _t36 = cpu->r[1] + 0x00000008u;
|
|
/* 028EDC80 */ cpu->r[28] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028EDC84 */ _t37 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDC84 */ cpu->r[29] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028EDC88 */ _t38 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EDC88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028EDC8C */ cpu->r[3] = cpu->r[31];
|
|
/* 028EDC90 */ _t39 = cpu->r[1] + 0x00000010u;
|
|
/* 028EDC90 */ cpu->r[30] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028EDC94 */ cpu->lr = cpu->r[0];
|
|
/* 028EDC98 */ _t40 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDC98 */ cpu->r[31] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028EDC9C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EDCA0 */ return;
|
|
}
|
|
|
|
// fn_028EDCA4 @ 0x28edca4
|
|
void Gambit_fn_028EDCA4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028EDCA4: ; // 0x28edca4
|
|
/* 028EDCA4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EDCA8 */ _t0 = cpu->r[12] + 0xFFFFC328u;
|
|
/* 028EDCA8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028EDCAC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[1]);
|
|
/* 028EDCB0 */ cpu->r[0] = 0x00000000u;
|
|
/* 028EDCB4 */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EDCB4 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028EDCB4 */ if (_t2) goto L_028EDCB8; else goto L_028EDCCC;
|
|
L_028EDCB8: ; // 0x28edcb8
|
|
/* 028EDCB8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EDCBC */ _t3 = cpu->r[12] + 0xFFFFC32Cu;
|
|
/* 028EDCBC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028EDCC0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028EDCC4 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EDCC4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EDCC4 */ if (_t5) goto L_028EDCC8; else goto L_028EDCCC;
|
|
L_028EDCC8: ; // 0x28edcc8
|
|
/* 028EDCC8 */ cpu->r[0] = 0x00000001u;
|
|
L_028EDCCC: ; // 0x28edccc
|
|
/* 028EDCCC */ cpu->r[3] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028EDCD0 */ return;
|
|
}
|
|
|
|
// fn_028EDCD4 @ 0x28edcd4
|
|
void Gambit_fn_028EDCD4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028EDCD4: ; // 0x28edcd4
|
|
/* 028EDCD4 */ cpu->r[0] = cpu->lr;
|
|
/* 028EDCD8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[2]);
|
|
/* 028EDCDC */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028EDCDC */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028EDCE0 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EDCE0 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028EDCE0 */ cpu->r[1] = _t1;
|
|
/* 028EDCE4 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EDCE4 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028EDCE4 */ if (_t3) goto L_028EDD00; else goto L_028EDCE8;
|
|
L_028EDCE8: ; // 0x28edce8
|
|
/* 028EDCE8 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDCE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028EDCEC */ cpu->r[12] = 0x10140000u;
|
|
/* 028EDCF0 */ cpu->lr = cpu->r[0];
|
|
/* 028EDCF4 */ _t5 = cpu->r[12] + 0xFFFFC330u;
|
|
/* 028EDCF4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 028EDCF8 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EDCFC */ return;
|
|
L_028EDD00: ; // 0x28edd00
|
|
/* 028EDD00 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[3]);
|
|
/* 028EDD04 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EDD04 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EDD04 */ if (_t7) goto L_028EDD0C; else goto L_028EDD08;
|
|
L_028EDD08: ; // 0x28edd08
|
|
/* 028EDD08 */ cpu->f[1] = cpu->f[3];
|
|
L_028EDD0C: ; // 0x28edd0c
|
|
/* 028EDD0C */ cpu->f[0] = cpu->f[1] - cpu->f[2];
|
|
/* 028EDD10 */ cpu->f[12] = fma(cpu->f[4], cpu->f[0], cpu->f[2]);
|
|
/* 028EDD14 */ cpu->f[13] = cpu->f[2] / cpu->f[12];
|
|
/* 028EDD18 */ cpu->f[1] = cpu->f[13];
|
|
/* 028EDD1C */ Gambit_fn_028EDCA4(cpu);
|
|
/* 028EDD20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDD24 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDD24 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EDD24 */ if (_t9) goto L_028EDD30; else goto L_028EDD28;
|
|
L_028EDD28: ; // 0x28edd28
|
|
/* 028EDD28 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EDD2C */ _t10 = cpu->r[12] + 0xFFFFC334u;
|
|
/* 028EDD2C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t10);
|
|
L_028EDD30: ; // 0x28edd30
|
|
/* 028EDD30 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDD30 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EDD34 */ cpu->lr = cpu->r[0];
|
|
/* 028EDD38 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EDD3C */ cpu->f[1] = cpu->f[13];
|
|
/* 028EDD40 */ return;
|
|
}
|
|
|
|
// fn_028EDCE0 @ 0x28edce0
|
|
void Gambit_fn_028EDCE0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028EDCE0: ; // 0x28edce0
|
|
/* 028EDCE0 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EDCE0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EDCE0 */ cpu->r[1] = _t0;
|
|
/* 028EDCE4 */ _t1 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EDCE4 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028EDCE4 */ if (_t2) goto L_028EDD00; else goto L_028EDCE8;
|
|
L_028EDCE8: ; // 0x28edce8
|
|
/* 028EDCE8 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDCE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028EDCEC */ cpu->r[12] = 0x10140000u;
|
|
/* 028EDCF0 */ cpu->lr = cpu->r[0];
|
|
/* 028EDCF4 */ _t4 = cpu->r[12] + 0xFFFFC330u;
|
|
/* 028EDCF4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028EDCF8 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EDCFC */ return;
|
|
L_028EDD00: ; // 0x28edd00
|
|
/* 028EDD00 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[3]);
|
|
/* 028EDD04 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EDD04 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028EDD04 */ if (_t6) goto L_028EDD0C; else goto L_028EDD08;
|
|
L_028EDD08: ; // 0x28edd08
|
|
/* 028EDD08 */ cpu->f[1] = cpu->f[3];
|
|
L_028EDD0C: ; // 0x28edd0c
|
|
/* 028EDD0C */ cpu->f[0] = cpu->f[1] - cpu->f[2];
|
|
/* 028EDD10 */ cpu->f[12] = fma(cpu->f[4], cpu->f[0], cpu->f[2]);
|
|
/* 028EDD14 */ cpu->f[13] = cpu->f[2] / cpu->f[12];
|
|
/* 028EDD18 */ cpu->f[1] = cpu->f[13];
|
|
/* 028EDD1C */ Gambit_fn_028EDCA4(cpu);
|
|
/* 028EDD20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDD24 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDD24 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028EDD24 */ if (_t8) goto L_028EDD30; else goto L_028EDD28;
|
|
L_028EDD28: ; // 0x28edd28
|
|
/* 028EDD28 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EDD2C */ _t9 = cpu->r[12] + 0xFFFFC334u;
|
|
/* 028EDD2C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t9);
|
|
L_028EDD30: ; // 0x28edd30
|
|
/* 028EDD30 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDD30 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EDD34 */ cpu->lr = cpu->r[0];
|
|
/* 028EDD38 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EDD3C */ cpu->f[1] = cpu->f[13];
|
|
/* 028EDD40 */ return;
|
|
}
|
|
|
|
// fn_028EDD44 @ 0x28edd44
|
|
void Gambit_fn_028EDD44(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028EDD44: ; // 0x28edd44
|
|
/* 028EDD44 */ cpu->r[0] = cpu->lr;
|
|
/* 028EDD48 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028EDD48 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EDD48 */ cpu->r[1] = _t0;
|
|
/* 028EDD4C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDD4C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028EDD50 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EDD50 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028EDD54 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDD54 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028EDD58 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028EDD58 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028EDD5C */ cpu->r[31] = cpu->r[3];
|
|
/* 028EDD5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EDD60 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EDD60 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028EDD64 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDD64 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EDD64 */ if (_t7) goto L_028EDD68; else goto L_028EDD78;
|
|
L_028EDD68: ; // 0x28edd68
|
|
/* 028EDD68 */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028EDD6C */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDD70 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EDD70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EDD74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDD74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EDD74 */ if (_t9) goto L_028EDE3C; else goto L_028EDD78;
|
|
L_028EDD78: ; // 0x28edd78
|
|
/* 028EDD78 */ cpu->r[28] = cpu->r[31];
|
|
/* 028EDD78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028EDD7C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDD7C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028EDD7C */ if (_t11) goto L_028EDD80; else goto L_028EDD90;
|
|
L_028EDD80: ; // 0x28edd80
|
|
/* 028EDD80 */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028EDD84 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDD88 */ cpu->r[28] = cpu->r[3];
|
|
/* 028EDD88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028EDD8C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDD8C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028EDD8C */ if (_t13) goto L_028EDE30; else goto L_028EDD90;
|
|
L_028EDD90: ; // 0x28edd90
|
|
/* 028EDD90 */ cpu->r[29] = 0x10140000u;
|
|
/* 028EDD94 */ cpu->r[30] = cpu->r[28];
|
|
/* 028EDD94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EDD98 */ cpu->r[29] = cpu->r[29] + 0xFFFFC21Cu;
|
|
/* 028EDD9C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDD9C */ _t15 = _t14 & 0x00000001u;
|
|
/* 028EDD9C */ if (_t15) goto L_028EDDA0; else goto L_028EDDB0;
|
|
L_028EDDA0: ; // 0x28edda0
|
|
/* 028EDDA0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028EDDA4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDDA8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028EDDA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EDDAC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDDAC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EDDAC */ if (_t17) goto L_028EDDF0; else goto L_028EDDB0;
|
|
L_028EDDB0: ; // 0x28eddb0
|
|
/* 028EDDB0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EDDB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDDB4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDDB4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EDDB4 */ if (_t19) goto L_028EDDB8; else goto L_028EDDC8;
|
|
L_028EDDB8: ; // 0x28eddb8
|
|
/* 028EDDB8 */ cpu->r[3] = 0x00000008u;
|
|
/* 028EDDBC */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDDC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDDC4 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDDC4 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028EDDC4 */ if (_t21) goto L_028EDDD8; else goto L_028EDDC8;
|
|
L_028EDDC8: ; // 0x28eddc8
|
|
/* 028EDDC8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDDCC */ _t22 = cpu->r[3] + 0x00000004u;
|
|
/* 028EDDCC */ rbrew_write32(cpu->mem, _t22, cpu->r[29]);
|
|
/* 028EDDD0 */ cpu->r[0] = cpu->r[0] + 0xFFFFC218u;
|
|
/* 028EDDD4 */ _t23 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDDD4 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
L_028EDDD8: ; // 0x28eddd8
|
|
/* 028EDDD8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDDDC */ cpu->r[7] = 0x10140000u;
|
|
/* 028EDDE0 */ cpu->r[0] = cpu->r[0] + 0xFFFFC234u;
|
|
/* 028EDDE4 */ cpu->r[7] = cpu->r[7] + 0xFFFFC338u;
|
|
/* 028EDDE8 */ _t24 = cpu->r[30] + 0x00000008u;
|
|
/* 028EDDE8 */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028EDDEC */ _t25 = cpu->r[30] + 0x00000000u;
|
|
/* 028EDDEC */ rbrew_write32(cpu->mem, _t25, cpu->r[7]);
|
|
L_028EDDF0: ; // 0x28eddf0
|
|
/* 028EDDF0 */ cpu->r[8] = 0x10140000u;
|
|
/* 028EDDF4 */ cpu->r[8] = cpu->r[8] + 0xFFFFC24Cu;
|
|
/* 028EDDF8 */ cpu->r[3] = cpu->r[28] + 0x0000000Cu;
|
|
/* 028EDDF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDDFC */ _t26 = cpu->r[28] + 0x00000008u;
|
|
/* 028EDDFC */ rbrew_write32(cpu->mem, _t26, cpu->r[8]);
|
|
/* 028EDE00 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDE00 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028EDE00 */ if (_t28) goto L_028EDE04; else goto L_028EDE14;
|
|
L_028EDE04: ; // 0x28ede04
|
|
/* 028EDE04 */ cpu->r[3] = 0x00000008u;
|
|
/* 028EDE08 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDE0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDE10 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDE10 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028EDE10 */ if (_t30) goto L_028EDE24; else goto L_028EDE14;
|
|
L_028EDE14: ; // 0x28ede14
|
|
/* 028EDE14 */ cpu->r[9] = 0x10140000u;
|
|
/* 028EDE18 */ _t31 = cpu->r[3] + 0x00000004u;
|
|
/* 028EDE18 */ rbrew_write32(cpu->mem, _t31, cpu->r[29]);
|
|
/* 028EDE1C */ cpu->r[9] = cpu->r[9] + 0xFFFFC350u;
|
|
/* 028EDE20 */ _t32 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDE20 */ rbrew_write32(cpu->mem, _t32, cpu->r[9]);
|
|
L_028EDE24: ; // 0x28ede24
|
|
/* 028EDE24 */ cpu->r[10] = 0x00000000u;
|
|
/* 028EDE28 */ _t33 = cpu->r[28] + 0x00000018u;
|
|
/* 028EDE28 */ rbrew_write32(cpu->mem, _t33, cpu->r[10]);
|
|
/* 028EDE2C */ _t34 = cpu->r[28] + 0x00000014u;
|
|
/* 028EDE2C */ rbrew_write32(cpu->mem, _t34, cpu->r[10]);
|
|
L_028EDE30: ; // 0x28ede30
|
|
/* 028EDE30 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDE34 */ cpu->r[0] = cpu->r[0] + 0xFFFFC4B4u;
|
|
/* 028EDE38 */ _t35 = cpu->r[31] + 0x00000008u;
|
|
/* 028EDE38 */ rbrew_write32(cpu->mem, _t35, cpu->r[0]);
|
|
L_028EDE3C: ; // 0x28ede3c
|
|
/* 028EDE3C */ _t36 = cpu->r[1] + 0x00000008u;
|
|
/* 028EDE3C */ cpu->r[28] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028EDE40 */ _t37 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDE40 */ cpu->r[29] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028EDE44 */ _t38 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EDE44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028EDE48 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EDE4C */ _t39 = cpu->r[1] + 0x00000010u;
|
|
/* 028EDE4C */ cpu->r[30] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028EDE50 */ cpu->lr = cpu->r[0];
|
|
/* 028EDE54 */ _t40 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDE54 */ cpu->r[31] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028EDE58 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EDE5C */ return;
|
|
}
|
|
|
|
// fn_028EDD48 @ 0x28edd48
|
|
void Gambit_fn_028EDD48(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028EDD48: ; // 0x28edd48
|
|
/* 028EDD48 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028EDD48 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EDD48 */ cpu->r[1] = _t0;
|
|
/* 028EDD4C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDD4C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028EDD50 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EDD50 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028EDD54 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDD54 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028EDD58 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028EDD58 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028EDD5C */ cpu->r[31] = cpu->r[3];
|
|
/* 028EDD5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EDD60 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EDD60 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028EDD64 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDD64 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EDD64 */ if (_t7) goto L_028EDD68; else goto L_028EDD78;
|
|
L_028EDD68: ; // 0x28edd68
|
|
/* 028EDD68 */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028EDD6C */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDD70 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EDD70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EDD74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDD74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EDD74 */ if (_t9) goto L_028EDE3C; else goto L_028EDD78;
|
|
L_028EDD78: ; // 0x28edd78
|
|
/* 028EDD78 */ cpu->r[28] = cpu->r[31];
|
|
/* 028EDD78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028EDD7C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDD7C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028EDD7C */ if (_t11) goto L_028EDD80; else goto L_028EDD90;
|
|
L_028EDD80: ; // 0x28edd80
|
|
/* 028EDD80 */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028EDD84 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDD88 */ cpu->r[28] = cpu->r[3];
|
|
/* 028EDD88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028EDD8C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDD8C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028EDD8C */ if (_t13) goto L_028EDE30; else goto L_028EDD90;
|
|
L_028EDD90: ; // 0x28edd90
|
|
/* 028EDD90 */ cpu->r[29] = 0x10140000u;
|
|
/* 028EDD94 */ cpu->r[30] = cpu->r[28];
|
|
/* 028EDD94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EDD98 */ cpu->r[29] = cpu->r[29] + 0xFFFFC21Cu;
|
|
/* 028EDD9C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDD9C */ _t15 = _t14 & 0x00000001u;
|
|
/* 028EDD9C */ if (_t15) goto L_028EDDA0; else goto L_028EDDB0;
|
|
L_028EDDA0: ; // 0x28edda0
|
|
/* 028EDDA0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028EDDA4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDDA8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028EDDA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EDDAC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDDAC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EDDAC */ if (_t17) goto L_028EDDF0; else goto L_028EDDB0;
|
|
L_028EDDB0: ; // 0x28eddb0
|
|
/* 028EDDB0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EDDB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDDB4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDDB4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EDDB4 */ if (_t19) goto L_028EDDB8; else goto L_028EDDC8;
|
|
L_028EDDB8: ; // 0x28eddb8
|
|
/* 028EDDB8 */ cpu->r[3] = 0x00000008u;
|
|
/* 028EDDBC */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDDC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDDC4 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDDC4 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028EDDC4 */ if (_t21) goto L_028EDDD8; else goto L_028EDDC8;
|
|
L_028EDDC8: ; // 0x28eddc8
|
|
/* 028EDDC8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDDCC */ _t22 = cpu->r[3] + 0x00000004u;
|
|
/* 028EDDCC */ rbrew_write32(cpu->mem, _t22, cpu->r[29]);
|
|
/* 028EDDD0 */ cpu->r[0] = cpu->r[0] + 0xFFFFC218u;
|
|
/* 028EDDD4 */ _t23 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDDD4 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
L_028EDDD8: ; // 0x28eddd8
|
|
/* 028EDDD8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDDDC */ cpu->r[7] = 0x10140000u;
|
|
/* 028EDDE0 */ cpu->r[0] = cpu->r[0] + 0xFFFFC234u;
|
|
/* 028EDDE4 */ cpu->r[7] = cpu->r[7] + 0xFFFFC338u;
|
|
/* 028EDDE8 */ _t24 = cpu->r[30] + 0x00000008u;
|
|
/* 028EDDE8 */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028EDDEC */ _t25 = cpu->r[30] + 0x00000000u;
|
|
/* 028EDDEC */ rbrew_write32(cpu->mem, _t25, cpu->r[7]);
|
|
L_028EDDF0: ; // 0x28eddf0
|
|
/* 028EDDF0 */ cpu->r[8] = 0x10140000u;
|
|
/* 028EDDF4 */ cpu->r[8] = cpu->r[8] + 0xFFFFC24Cu;
|
|
/* 028EDDF8 */ cpu->r[3] = cpu->r[28] + 0x0000000Cu;
|
|
/* 028EDDF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDDFC */ _t26 = cpu->r[28] + 0x00000008u;
|
|
/* 028EDDFC */ rbrew_write32(cpu->mem, _t26, cpu->r[8]);
|
|
/* 028EDE00 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDE00 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028EDE00 */ if (_t28) goto L_028EDE04; else goto L_028EDE14;
|
|
L_028EDE04: ; // 0x28ede04
|
|
/* 028EDE04 */ cpu->r[3] = 0x00000008u;
|
|
/* 028EDE08 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDE0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDE10 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDE10 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028EDE10 */ if (_t30) goto L_028EDE24; else goto L_028EDE14;
|
|
L_028EDE14: ; // 0x28ede14
|
|
/* 028EDE14 */ cpu->r[9] = 0x10140000u;
|
|
/* 028EDE18 */ _t31 = cpu->r[3] + 0x00000004u;
|
|
/* 028EDE18 */ rbrew_write32(cpu->mem, _t31, cpu->r[29]);
|
|
/* 028EDE1C */ cpu->r[9] = cpu->r[9] + 0xFFFFC350u;
|
|
/* 028EDE20 */ _t32 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDE20 */ rbrew_write32(cpu->mem, _t32, cpu->r[9]);
|
|
L_028EDE24: ; // 0x28ede24
|
|
/* 028EDE24 */ cpu->r[10] = 0x00000000u;
|
|
/* 028EDE28 */ _t33 = cpu->r[28] + 0x00000018u;
|
|
/* 028EDE28 */ rbrew_write32(cpu->mem, _t33, cpu->r[10]);
|
|
/* 028EDE2C */ _t34 = cpu->r[28] + 0x00000014u;
|
|
/* 028EDE2C */ rbrew_write32(cpu->mem, _t34, cpu->r[10]);
|
|
L_028EDE30: ; // 0x28ede30
|
|
/* 028EDE30 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDE34 */ cpu->r[0] = cpu->r[0] + 0xFFFFC4B4u;
|
|
/* 028EDE38 */ _t35 = cpu->r[31] + 0x00000008u;
|
|
/* 028EDE38 */ rbrew_write32(cpu->mem, _t35, cpu->r[0]);
|
|
L_028EDE3C: ; // 0x28ede3c
|
|
/* 028EDE3C */ _t36 = cpu->r[1] + 0x00000008u;
|
|
/* 028EDE3C */ cpu->r[28] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028EDE40 */ _t37 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDE40 */ cpu->r[29] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028EDE44 */ _t38 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EDE44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028EDE48 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EDE4C */ _t39 = cpu->r[1] + 0x00000010u;
|
|
/* 028EDE4C */ cpu->r[30] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028EDE50 */ cpu->lr = cpu->r[0];
|
|
/* 028EDE54 */ _t40 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDE54 */ cpu->r[31] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028EDE58 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EDE5C */ return;
|
|
}
|
|
|
|
// fn_028EDE60 @ 0x28ede60
|
|
void Gambit_fn_028EDE60(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028EDE60: ; // 0x28ede60
|
|
/* 028EDE60 */ cpu->r[0] = cpu->lr;
|
|
/* 028EDE64 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[2]);
|
|
/* 028EDE68 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028EDE68 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028EDE6C */ cpu->r[12] = 0x10140000u;
|
|
/* 028EDE70 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EDE70 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028EDE70 */ cpu->r[1] = _t1;
|
|
/* 028EDE74 */ _t2 = cpu->r[12] + 0xFFFFC330u;
|
|
/* 028EDE74 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t2);
|
|
/* 028EDE78 */ _t3 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EDE78 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028EDE78 */ if (_t4) goto L_028EDE7C; else goto L_028EDEA8;
|
|
L_028EDE7C: ; // 0x28ede7c
|
|
/* 028EDE7C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[3]);
|
|
/* 028EDE80 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EDE80 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028EDE80 */ if (_t6) goto L_028EDE88; else goto L_028EDE84;
|
|
L_028EDE84: ; // 0x28ede84
|
|
/* 028EDE84 */ cpu->f[1] = cpu->f[3];
|
|
L_028EDE88: ; // 0x28ede88
|
|
/* 028EDE88 */ cpu->f[12] = cpu->f[1] - cpu->f[2];
|
|
/* 028EDE8C */ cpu->f[13] = -fma(cpu->f[12], cpu->f[5], -(cpu->f[13]));
|
|
/* 028EDE90 */ cpu->f[1] = cpu->f[13];
|
|
/* 028EDE94 */ Gambit_fn_028EDCA4(cpu);
|
|
/* 028EDE98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDE9C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDE9C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028EDE9C */ if (_t8) goto L_028EDEA8; else goto L_028EDEA0;
|
|
L_028EDEA0: ; // 0x28edea0
|
|
/* 028EDEA0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EDEA4 */ _t9 = cpu->r[12] + 0xFFFFC334u;
|
|
/* 028EDEA4 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t9);
|
|
L_028EDEA8: ; // 0x28edea8
|
|
/* 028EDEA8 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDEA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EDEAC */ cpu->lr = cpu->r[0];
|
|
/* 028EDEB0 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EDEB4 */ cpu->f[1] = cpu->f[13];
|
|
/* 028EDEB8 */ return;
|
|
}
|
|
|
|
// fn_028EDE70 @ 0x28ede70
|
|
void Gambit_fn_028EDE70(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028EDE70: ; // 0x28ede70
|
|
/* 028EDE70 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EDE70 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EDE70 */ cpu->r[1] = _t0;
|
|
/* 028EDE74 */ _t1 = cpu->r[12] + 0xFFFFC330u;
|
|
/* 028EDE74 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028EDE78 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EDE78 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028EDE78 */ if (_t3) goto L_028EDE7C; else goto L_028EDEA8;
|
|
L_028EDE7C: ; // 0x28ede7c
|
|
/* 028EDE7C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[3]);
|
|
/* 028EDE80 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EDE80 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EDE80 */ if (_t5) goto L_028EDE88; else goto L_028EDE84;
|
|
L_028EDE84: ; // 0x28ede84
|
|
/* 028EDE84 */ cpu->f[1] = cpu->f[3];
|
|
L_028EDE88: ; // 0x28ede88
|
|
/* 028EDE88 */ cpu->f[12] = cpu->f[1] - cpu->f[2];
|
|
/* 028EDE8C */ cpu->f[13] = -fma(cpu->f[12], cpu->f[5], -(cpu->f[13]));
|
|
/* 028EDE90 */ cpu->f[1] = cpu->f[13];
|
|
/* 028EDE94 */ Gambit_fn_028EDCA4(cpu);
|
|
/* 028EDE98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDE9C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDE9C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EDE9C */ if (_t7) goto L_028EDEA8; else goto L_028EDEA0;
|
|
L_028EDEA0: ; // 0x28edea0
|
|
/* 028EDEA0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EDEA4 */ _t8 = cpu->r[12] + 0xFFFFC334u;
|
|
/* 028EDEA4 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t8);
|
|
L_028EDEA8: ; // 0x28edea8
|
|
/* 028EDEA8 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDEA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028EDEAC */ cpu->lr = cpu->r[0];
|
|
/* 028EDEB0 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EDEB4 */ cpu->f[1] = cpu->f[13];
|
|
/* 028EDEB8 */ return;
|
|
}
|
|
|
|
// fn_028EDEBC @ 0x28edebc
|
|
void Gambit_fn_028EDEBC(CPUState* cpu) {
|
|
L_028EDEBC: ; // 0x28edebc
|
|
/* 028EDEBC */ cpu->f[0] = cpu->f[2] - cpu->f[1];
|
|
/* 028EDEC0 */ cpu->f[1] = cpu->f[3] / cpu->f[0];
|
|
/* 028EDEC4 */ return;
|
|
}
|
|
|
|
// fn_028EDEC8 @ 0x28edec8
|
|
void Gambit_fn_028EDEC8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028EDEC8: ; // 0x28edec8
|
|
/* 028EDEC8 */ cpu->r[0] = cpu->lr;
|
|
/* 028EDECC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028EDECC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EDECC */ cpu->r[1] = _t0;
|
|
/* 028EDED0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDED0 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028EDED4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EDED4 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028EDED8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDED8 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028EDEDC */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028EDEDC */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028EDEE0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EDEE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EDEE4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EDEE4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028EDEE8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDEE8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EDEE8 */ if (_t7) goto L_028EDEEC; else goto L_028EDEFC;
|
|
L_028EDEEC: ; // 0x28edeec
|
|
/* 028EDEEC */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028EDEF0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDEF4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EDEF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EDEF8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDEF8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EDEF8 */ if (_t9) goto L_028EDFC0; else goto L_028EDEFC;
|
|
L_028EDEFC: ; // 0x28edefc
|
|
/* 028EDEFC */ cpu->r[28] = cpu->r[31];
|
|
/* 028EDEFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028EDF00 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDF00 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028EDF00 */ if (_t11) goto L_028EDF04; else goto L_028EDF14;
|
|
L_028EDF04: ; // 0x28edf04
|
|
/* 028EDF04 */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028EDF08 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDF0C */ cpu->r[28] = cpu->r[3];
|
|
/* 028EDF0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028EDF10 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDF10 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028EDF10 */ if (_t13) goto L_028EDFB4; else goto L_028EDF14;
|
|
L_028EDF14: ; // 0x28edf14
|
|
/* 028EDF14 */ cpu->r[29] = 0x10140000u;
|
|
/* 028EDF18 */ cpu->r[30] = cpu->r[28];
|
|
/* 028EDF18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EDF1C */ cpu->r[29] = cpu->r[29] + 0xFFFFC21Cu;
|
|
/* 028EDF20 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDF20 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028EDF20 */ if (_t15) goto L_028EDF24; else goto L_028EDF34;
|
|
L_028EDF24: ; // 0x28edf24
|
|
/* 028EDF24 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028EDF28 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDF2C */ cpu->r[30] = cpu->r[3];
|
|
/* 028EDF2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EDF30 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDF30 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EDF30 */ if (_t17) goto L_028EDF74; else goto L_028EDF34;
|
|
L_028EDF34: ; // 0x28edf34
|
|
/* 028EDF34 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EDF34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDF38 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDF38 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EDF38 */ if (_t19) goto L_028EDF3C; else goto L_028EDF4C;
|
|
L_028EDF3C: ; // 0x28edf3c
|
|
/* 028EDF3C */ cpu->r[3] = 0x00000008u;
|
|
/* 028EDF40 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDF44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDF48 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDF48 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028EDF48 */ if (_t21) goto L_028EDF5C; else goto L_028EDF4C;
|
|
L_028EDF4C: ; // 0x28edf4c
|
|
/* 028EDF4C */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDF50 */ _t22 = cpu->r[3] + 0x00000004u;
|
|
/* 028EDF50 */ rbrew_write32(cpu->mem, _t22, cpu->r[29]);
|
|
/* 028EDF54 */ cpu->r[0] = cpu->r[0] + 0xFFFFC218u;
|
|
/* 028EDF58 */ _t23 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDF58 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
L_028EDF5C: ; // 0x28edf5c
|
|
/* 028EDF5C */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDF60 */ cpu->r[7] = 0x10140000u;
|
|
/* 028EDF64 */ cpu->r[0] = cpu->r[0] + 0xFFFFC234u;
|
|
/* 028EDF68 */ cpu->r[7] = cpu->r[7] + 0xFFFFC3DCu;
|
|
/* 028EDF6C */ _t24 = cpu->r[30] + 0x00000008u;
|
|
/* 028EDF6C */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028EDF70 */ _t25 = cpu->r[30] + 0x00000000u;
|
|
/* 028EDF70 */ rbrew_write32(cpu->mem, _t25, cpu->r[7]);
|
|
L_028EDF74: ; // 0x28edf74
|
|
/* 028EDF74 */ cpu->r[8] = 0x10140000u;
|
|
/* 028EDF78 */ cpu->r[8] = cpu->r[8] + 0xFFFFC24Cu;
|
|
/* 028EDF7C */ cpu->r[3] = cpu->r[28] + 0x0000000Cu;
|
|
/* 028EDF7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDF80 */ _t26 = cpu->r[28] + 0x00000008u;
|
|
/* 028EDF80 */ rbrew_write32(cpu->mem, _t26, cpu->r[8]);
|
|
/* 028EDF84 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDF84 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028EDF84 */ if (_t28) goto L_028EDF88; else goto L_028EDF98;
|
|
L_028EDF88: ; // 0x28edf88
|
|
/* 028EDF88 */ cpu->r[3] = 0x00000008u;
|
|
/* 028EDF8C */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDF90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDF94 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDF94 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028EDF94 */ if (_t30) goto L_028EDFA8; else goto L_028EDF98;
|
|
L_028EDF98: ; // 0x28edf98
|
|
/* 028EDF98 */ cpu->r[9] = 0x10140000u;
|
|
/* 028EDF9C */ _t31 = cpu->r[3] + 0x00000004u;
|
|
/* 028EDF9C */ rbrew_write32(cpu->mem, _t31, cpu->r[29]);
|
|
/* 028EDFA0 */ cpu->r[9] = cpu->r[9] + 0xFFFFC3F8u;
|
|
/* 028EDFA4 */ _t32 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDFA4 */ rbrew_write32(cpu->mem, _t32, cpu->r[9]);
|
|
L_028EDFA8: ; // 0x28edfa8
|
|
/* 028EDFA8 */ cpu->r[10] = 0x00000000u;
|
|
/* 028EDFAC */ _t33 = cpu->r[28] + 0x00000018u;
|
|
/* 028EDFAC */ rbrew_write32(cpu->mem, _t33, cpu->r[10]);
|
|
/* 028EDFB0 */ _t34 = cpu->r[28] + 0x00000014u;
|
|
/* 028EDFB0 */ rbrew_write32(cpu->mem, _t34, cpu->r[10]);
|
|
L_028EDFB4: ; // 0x28edfb4
|
|
/* 028EDFB4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDFB8 */ cpu->r[0] = cpu->r[0] + 0xFFFFC4DCu;
|
|
/* 028EDFBC */ _t35 = cpu->r[31] + 0x00000008u;
|
|
/* 028EDFBC */ rbrew_write32(cpu->mem, _t35, cpu->r[0]);
|
|
L_028EDFC0: ; // 0x28edfc0
|
|
/* 028EDFC0 */ _t36 = cpu->r[1] + 0x00000008u;
|
|
/* 028EDFC0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028EDFC4 */ _t37 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDFC4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028EDFC8 */ _t38 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EDFC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028EDFCC */ cpu->r[3] = cpu->r[31];
|
|
/* 028EDFD0 */ _t39 = cpu->r[1] + 0x00000010u;
|
|
/* 028EDFD0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028EDFD4 */ cpu->lr = cpu->r[0];
|
|
/* 028EDFD8 */ _t40 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDFD8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028EDFDC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EDFE0 */ return;
|
|
}
|
|
|
|
// fn_028EDECC @ 0x28edecc
|
|
void Gambit_fn_028EDECC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028EDECC: ; // 0x28edecc
|
|
/* 028EDECC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028EDECC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EDECC */ cpu->r[1] = _t0;
|
|
/* 028EDED0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDED0 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028EDED4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EDED4 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028EDED8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDED8 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028EDEDC */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028EDEDC */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028EDEE0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EDEE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EDEE4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EDEE4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028EDEE8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDEE8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EDEE8 */ if (_t7) goto L_028EDEEC; else goto L_028EDEFC;
|
|
L_028EDEEC: ; // 0x28edeec
|
|
/* 028EDEEC */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028EDEF0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDEF4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EDEF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EDEF8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDEF8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EDEF8 */ if (_t9) goto L_028EDFC0; else goto L_028EDEFC;
|
|
L_028EDEFC: ; // 0x28edefc
|
|
/* 028EDEFC */ cpu->r[28] = cpu->r[31];
|
|
/* 028EDEFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028EDF00 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDF00 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028EDF00 */ if (_t11) goto L_028EDF04; else goto L_028EDF14;
|
|
L_028EDF04: ; // 0x28edf04
|
|
/* 028EDF04 */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028EDF08 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDF0C */ cpu->r[28] = cpu->r[3];
|
|
/* 028EDF0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028EDF10 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDF10 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028EDF10 */ if (_t13) goto L_028EDFB4; else goto L_028EDF14;
|
|
L_028EDF14: ; // 0x28edf14
|
|
/* 028EDF14 */ cpu->r[29] = 0x10140000u;
|
|
/* 028EDF18 */ cpu->r[30] = cpu->r[28];
|
|
/* 028EDF18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EDF1C */ cpu->r[29] = cpu->r[29] + 0xFFFFC21Cu;
|
|
/* 028EDF20 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDF20 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028EDF20 */ if (_t15) goto L_028EDF24; else goto L_028EDF34;
|
|
L_028EDF24: ; // 0x28edf24
|
|
/* 028EDF24 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028EDF28 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDF2C */ cpu->r[30] = cpu->r[3];
|
|
/* 028EDF2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EDF30 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDF30 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EDF30 */ if (_t17) goto L_028EDF74; else goto L_028EDF34;
|
|
L_028EDF34: ; // 0x28edf34
|
|
/* 028EDF34 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EDF34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDF38 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDF38 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EDF38 */ if (_t19) goto L_028EDF3C; else goto L_028EDF4C;
|
|
L_028EDF3C: ; // 0x28edf3c
|
|
/* 028EDF3C */ cpu->r[3] = 0x00000008u;
|
|
/* 028EDF40 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDF44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDF48 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDF48 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028EDF48 */ if (_t21) goto L_028EDF5C; else goto L_028EDF4C;
|
|
L_028EDF4C: ; // 0x28edf4c
|
|
/* 028EDF4C */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDF50 */ _t22 = cpu->r[3] + 0x00000004u;
|
|
/* 028EDF50 */ rbrew_write32(cpu->mem, _t22, cpu->r[29]);
|
|
/* 028EDF54 */ cpu->r[0] = cpu->r[0] + 0xFFFFC218u;
|
|
/* 028EDF58 */ _t23 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDF58 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
L_028EDF5C: ; // 0x28edf5c
|
|
/* 028EDF5C */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDF60 */ cpu->r[7] = 0x10140000u;
|
|
/* 028EDF64 */ cpu->r[0] = cpu->r[0] + 0xFFFFC234u;
|
|
/* 028EDF68 */ cpu->r[7] = cpu->r[7] + 0xFFFFC3DCu;
|
|
/* 028EDF6C */ _t24 = cpu->r[30] + 0x00000008u;
|
|
/* 028EDF6C */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028EDF70 */ _t25 = cpu->r[30] + 0x00000000u;
|
|
/* 028EDF70 */ rbrew_write32(cpu->mem, _t25, cpu->r[7]);
|
|
L_028EDF74: ; // 0x28edf74
|
|
/* 028EDF74 */ cpu->r[8] = 0x10140000u;
|
|
/* 028EDF78 */ cpu->r[8] = cpu->r[8] + 0xFFFFC24Cu;
|
|
/* 028EDF7C */ cpu->r[3] = cpu->r[28] + 0x0000000Cu;
|
|
/* 028EDF7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDF80 */ _t26 = cpu->r[28] + 0x00000008u;
|
|
/* 028EDF80 */ rbrew_write32(cpu->mem, _t26, cpu->r[8]);
|
|
/* 028EDF84 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDF84 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028EDF84 */ if (_t28) goto L_028EDF88; else goto L_028EDF98;
|
|
L_028EDF88: ; // 0x28edf88
|
|
/* 028EDF88 */ cpu->r[3] = 0x00000008u;
|
|
/* 028EDF8C */ Gambit_fn_02801A78(cpu);
|
|
/* 028EDF90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EDF94 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EDF94 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028EDF94 */ if (_t30) goto L_028EDFA8; else goto L_028EDF98;
|
|
L_028EDF98: ; // 0x28edf98
|
|
/* 028EDF98 */ cpu->r[9] = 0x10140000u;
|
|
/* 028EDF9C */ _t31 = cpu->r[3] + 0x00000004u;
|
|
/* 028EDF9C */ rbrew_write32(cpu->mem, _t31, cpu->r[29]);
|
|
/* 028EDFA0 */ cpu->r[9] = cpu->r[9] + 0xFFFFC3F8u;
|
|
/* 028EDFA4 */ _t32 = cpu->r[3] + 0x00000000u;
|
|
/* 028EDFA4 */ rbrew_write32(cpu->mem, _t32, cpu->r[9]);
|
|
L_028EDFA8: ; // 0x28edfa8
|
|
/* 028EDFA8 */ cpu->r[10] = 0x00000000u;
|
|
/* 028EDFAC */ _t33 = cpu->r[28] + 0x00000018u;
|
|
/* 028EDFAC */ rbrew_write32(cpu->mem, _t33, cpu->r[10]);
|
|
/* 028EDFB0 */ _t34 = cpu->r[28] + 0x00000014u;
|
|
/* 028EDFB0 */ rbrew_write32(cpu->mem, _t34, cpu->r[10]);
|
|
L_028EDFB4: ; // 0x28edfb4
|
|
/* 028EDFB4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EDFB8 */ cpu->r[0] = cpu->r[0] + 0xFFFFC4DCu;
|
|
/* 028EDFBC */ _t35 = cpu->r[31] + 0x00000008u;
|
|
/* 028EDFBC */ rbrew_write32(cpu->mem, _t35, cpu->r[0]);
|
|
L_028EDFC0: ; // 0x28edfc0
|
|
/* 028EDFC0 */ _t36 = cpu->r[1] + 0x00000008u;
|
|
/* 028EDFC0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028EDFC4 */ _t37 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EDFC4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028EDFC8 */ _t38 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EDFC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028EDFCC */ cpu->r[3] = cpu->r[31];
|
|
/* 028EDFD0 */ _t39 = cpu->r[1] + 0x00000010u;
|
|
/* 028EDFD0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028EDFD4 */ cpu->lr = cpu->r[0];
|
|
/* 028EDFD8 */ _t40 = cpu->r[1] + 0x00000014u;
|
|
/* 028EDFD8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028EDFDC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EDFE0 */ return;
|
|
}
|
|
|
|
// fn_028EDFE4 @ 0x28edfe4
|
|
void Gambit_fn_028EDFE4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _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_028EDFE4: ; // 0x28edfe4
|
|
/* 028EDFE4 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028EDFE4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EDFE4 */ cpu->r[1] = _t0;
|
|
/* 028EDFE8 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028EDFE8 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[30]);
|
|
/* 028EDFEC */ /* nop */
|
|
/* 028EDFF0 */ cpu->r[0] = cpu->lr;
|
|
/* 028EDFF4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EDFF4 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[29]);
|
|
/* 028EDFF8 */ /* nop */
|
|
/* 028EDFFC */ _t3 = cpu->r[1] + 0x00000020u;
|
|
/* 028EDFFC */ rbrew_write_f32(cpu->mem, _t3, cpu->f[30]);
|
|
/* 028EE000 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[2]);
|
|
/* 028EE004 */ _t4 = cpu->r[1] + 0x00000028u;
|
|
/* 028EE004 */ rbrew_write_f64(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028EE008 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE00C */ _t5 = cpu->r[1] + 0x00000010u;
|
|
/* 028EE00C */ rbrew_write_f32(cpu->mem, _t5, cpu->f[29]);
|
|
/* 028EE010 */ /* nop */
|
|
/* 028EE014 */ _t6 = cpu->r[12] + 0xFFFFC330u;
|
|
/* 028EE014 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028EE018 */ _t7 = cpu->r[1] + 0x00000030u;
|
|
/* 028EE018 */ rbrew_write_f32(cpu->mem, _t7, cpu->f[31]);
|
|
/* 028EE01C */ cpu->f[30] = cpu->f[5];
|
|
/* 028EE020 */ _t8 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028EE020 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028EE024 */ _t9 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EE024 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028EE024 */ if (_t10) goto L_028EE028; else goto L_028EE094;
|
|
L_028EE028: ; // 0x28ee028
|
|
/* 028EE028 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[3]);
|
|
/* 028EE02C */ _t11 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EE02C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028EE02C */ if (_t12) goto L_028EE034; else goto L_028EE030;
|
|
L_028EE030: ; // 0x28ee030
|
|
/* 028EE030 */ cpu->f[1] = cpu->f[3];
|
|
L_028EE034: ; // 0x28ee034
|
|
/* 028EE034 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE038 */ _t13 = cpu->r[12] + 0xFFFFC334u;
|
|
/* 028EE038 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028EE03C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[31]);
|
|
/* 028EE040 */ cpu->f[29] = -cpu->f[4];
|
|
/* 028EE044 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE044 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028EE044 */ if (_t15) goto L_028EE048; else goto L_028EE070;
|
|
L_028EE048: ; // 0x28ee048
|
|
/* 028EE048 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE04C */ _t16 = cpu->r[12] + 0xFFFFC488u;
|
|
/* 028EE04C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028EE050 */ /* nop */
|
|
/* 028EE054 */ /* nop */
|
|
/* 028EE058 */ cpu->f[13] = cpu->f[1] * cpu->f[30];
|
|
/* 028EE05C */ cpu->f[1] = cpu->f[13];
|
|
/* 028EE060 */ Gambit_fn_028EDCA4(cpu);
|
|
/* 028EE064 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE068 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE068 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028EE068 */ if (_t18) goto L_028EE06C; else goto L_028EE090;
|
|
L_028EE06C: ; // 0x28ee06c
|
|
/* 028EE06C */ goto L_028EE094;
|
|
L_028EE070: ; // 0x28ee070
|
|
/* 028EE070 */ Gambit_fn_02827650(cpu);
|
|
/* 028EE074 */ cpu->f[1] = cpu->f[1] * cpu->f[29];
|
|
/* 028EE078 */ Gambit_fn_02827584(cpu);
|
|
/* 028EE07C */ cpu->f[13] = cpu->f[1] * cpu->f[30];
|
|
/* 028EE080 */ cpu->f[1] = cpu->f[13];
|
|
/* 028EE084 */ Gambit_fn_028EDCA4(cpu);
|
|
/* 028EE088 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE08C */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE08C */ _t20 = _t19 & 0x00000001u;
|
|
/* 028EE08C */ if (_t20) goto L_028EE094; else goto L_028EE090;
|
|
L_028EE090: ; // 0x28ee090
|
|
/* 028EE090 */ cpu->f[13] = cpu->f[31];
|
|
L_028EE094: ; // 0x28ee094
|
|
/* 028EE094 */ _t21 = cpu->r[1] + 0x00000020u;
|
|
/* 028EE094 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028EE098 */ _t22 = cpu->r[1] + 0x00000030u;
|
|
/* 028EE098 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028EE09C */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 028EE09C */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t23);
|
|
/* 028EE0A0 */ _t24 = cpu->r[1] + 0x00000010u;
|
|
/* 028EE0A0 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 028EE0A4 */ _t25 = cpu->r[1] + 0x00000028u;
|
|
/* 028EE0A4 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t25);
|
|
/* 028EE0A8 */ _t26 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE0A8 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t26);
|
|
/* 028EE0AC */ cpu->f[1] = cpu->f[13];
|
|
/* 028EE0B0 */ _t27 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EE0B0 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028EE0B0 */ if (_t28) goto L_028EE0B4; // else: addr-0 trap, fall-through
|
|
L_028EE0B4: ; // 0x28ee0b4
|
|
/* 028EE0B4 */ _t29 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028EE0B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028EE0B8 */ cpu->lr = cpu->r[0];
|
|
/* 028EE0BC */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028EE0C0 */ return;
|
|
}
|
|
|
|
// fn_028EE0C4 @ 0x28ee0c4
|
|
void Gambit_fn_028EE0C4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028EE0C4: ; // 0x28ee0c4
|
|
/* 028EE0C4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE0C8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028EE0C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE0C8 */ cpu->r[1] = _t0;
|
|
/* 028EE0CC */ _t1 = cpu->r[12] + 0xFFFFC330u;
|
|
/* 028EE0CC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028EE0D0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE0D4 */ cpu->f[1] = cpu->f[13] / cpu->f[1];
|
|
/* 028EE0D8 */ _t2 = cpu->r[12] + 0xFFFFC334u;
|
|
/* 028EE0D8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t2);
|
|
/* 028EE0DC */ cpu->r[0] = cpu->lr;
|
|
/* 028EE0E0 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EE0E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EE0E4 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[12]);
|
|
/* 028EE0E8 */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE0E8 */ rbrew_write_f64(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028EE0EC */ /* nop */
|
|
/* 028EE0F0 */ _t5 = cpu->r[1] + 0x00000010u;
|
|
/* 028EE0F0 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[31]);
|
|
/* 028EE0F4 */ cpu->f[31] = -cpu->f[3];
|
|
/* 028EE0F8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE0F8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EE0F8 */ if (_t7) goto L_028EE0FC; else goto L_028EE128;
|
|
L_028EE0FC: ; // 0x28ee0fc
|
|
/* 028EE0FC */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE100 */ _t8 = cpu->r[12] + 0xFFFFC488u;
|
|
/* 028EE100 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EE104 */ /* nop */
|
|
/* 028EE108 */ _t9 = cpu->r[1] + 0x00000010u;
|
|
/* 028EE108 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028EE10C */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE10C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t10);
|
|
/* 028EE110 */ /* nop */
|
|
/* 028EE114 */ _t11 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EE114 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028EE114 */ if (_t12) goto L_028EE118; // else: addr-0 trap, fall-through
|
|
L_028EE118: ; // 0x28ee118
|
|
/* 028EE118 */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EE118 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EE11C */ cpu->lr = cpu->r[0];
|
|
/* 028EE120 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EE124 */ return;
|
|
L_028EE128: ; // 0x28ee128
|
|
/* 028EE128 */ Gambit_fn_02827650(cpu);
|
|
/* 028EE12C */ cpu->f[1] = cpu->f[1] * cpu->f[31];
|
|
/* 028EE130 */ Gambit_fn_02827584(cpu);
|
|
/* 028EE134 */ _t14 = cpu->r[1] + 0x00000010u;
|
|
/* 028EE134 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028EE138 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE138 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t15);
|
|
/* 028EE13C */ _t16 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EE13C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EE13C */ if (_t17) goto L_028EE140; // else: addr-0 trap, fall-through
|
|
L_028EE140: ; // 0x28ee140
|
|
/* 028EE140 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EE140 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028EE144 */ cpu->lr = cpu->r[0];
|
|
/* 028EE148 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EE14C */ return;
|
|
}
|
|
|
|
// fn_028EE0C8 @ 0x28ee0c8
|
|
void Gambit_fn_028EE0C8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028EE0C8: ; // 0x28ee0c8
|
|
/* 028EE0C8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028EE0C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE0C8 */ cpu->r[1] = _t0;
|
|
/* 028EE0CC */ _t1 = cpu->r[12] + 0xFFFFC330u;
|
|
/* 028EE0CC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028EE0D0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE0D4 */ cpu->f[1] = cpu->f[13] / cpu->f[1];
|
|
/* 028EE0D8 */ _t2 = cpu->r[12] + 0xFFFFC334u;
|
|
/* 028EE0D8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t2);
|
|
/* 028EE0DC */ cpu->r[0] = cpu->lr;
|
|
/* 028EE0E0 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EE0E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EE0E4 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[12]);
|
|
/* 028EE0E8 */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE0E8 */ rbrew_write_f64(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028EE0EC */ /* nop */
|
|
/* 028EE0F0 */ _t5 = cpu->r[1] + 0x00000010u;
|
|
/* 028EE0F0 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[31]);
|
|
/* 028EE0F4 */ cpu->f[31] = -cpu->f[3];
|
|
/* 028EE0F8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE0F8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EE0F8 */ if (_t7) goto L_028EE0FC; else goto L_028EE128;
|
|
L_028EE0FC: ; // 0x28ee0fc
|
|
/* 028EE0FC */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE100 */ _t8 = cpu->r[12] + 0xFFFFC488u;
|
|
/* 028EE100 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EE104 */ /* nop */
|
|
/* 028EE108 */ _t9 = cpu->r[1] + 0x00000010u;
|
|
/* 028EE108 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028EE10C */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE10C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t10);
|
|
/* 028EE110 */ /* nop */
|
|
/* 028EE114 */ _t11 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EE114 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028EE114 */ if (_t12) goto L_028EE118; // else: addr-0 trap, fall-through
|
|
L_028EE118: ; // 0x28ee118
|
|
/* 028EE118 */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EE118 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EE11C */ cpu->lr = cpu->r[0];
|
|
/* 028EE120 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EE124 */ return;
|
|
L_028EE128: ; // 0x28ee128
|
|
/* 028EE128 */ Gambit_fn_02827650(cpu);
|
|
/* 028EE12C */ cpu->f[1] = cpu->f[1] * cpu->f[31];
|
|
/* 028EE130 */ Gambit_fn_02827584(cpu);
|
|
/* 028EE134 */ _t14 = cpu->r[1] + 0x00000010u;
|
|
/* 028EE134 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028EE138 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE138 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t15);
|
|
/* 028EE13C */ _t16 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EE13C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EE13C */ if (_t17) goto L_028EE140; // else: addr-0 trap, fall-through
|
|
L_028EE140: ; // 0x28ee140
|
|
/* 028EE140 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EE140 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028EE144 */ cpu->lr = cpu->r[0];
|
|
/* 028EE148 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EE14C */ return;
|
|
}
|
|
|
|
// fn_028EE150 @ 0x28ee150
|
|
void Gambit_fn_028EE150(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_028EE150: ; // 0x28ee150
|
|
/* 028EE150 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE154 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE154 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EE154 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EE154 */ goto L_028EE158;
|
|
L_028EE158: ; // 0x28ee158
|
|
/* 028EE158 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EE158 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EE15C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE15C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EE15C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EE15C */ goto L_028EE160;
|
|
L_028EE160: ; // 0x28ee160
|
|
/* 028EE160 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028EE164 @ 0x28ee164
|
|
void Gambit_fn_028EE164(CPUState* cpu) {
|
|
L_028EE164: ; // 0x28ee164
|
|
/* 028EE164 */ return;
|
|
}
|
|
|
|
// fn_028EE168 @ 0x28ee168
|
|
void Gambit_fn_028EE168(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028EE168: ; // 0x28ee168
|
|
/* 028EE168 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028EE168 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028EE16C */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 028EE16C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028EE170 */ return;
|
|
}
|
|
|
|
// fn_028EE174 @ 0x28ee174
|
|
void Gambit_fn_028EE174(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_028EE174: ; // 0x28ee174
|
|
/* 028EE174 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE178 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE178 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EE178 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EE178 */ goto L_028EE17C;
|
|
L_028EE17C: ; // 0x28ee17c
|
|
/* 028EE17C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EE17C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EE180 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE180 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EE180 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EE180 */ goto L_028EE184;
|
|
L_028EE184: ; // 0x28ee184
|
|
/* 028EE184 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028EE188 @ 0x28ee188
|
|
void Gambit_fn_028EE188(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_028EE188: ; // 0x28ee188
|
|
/* 028EE188 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE18C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE18C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EE18C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EE18C */ goto L_028EE190;
|
|
L_028EE190: ; // 0x28ee190
|
|
/* 028EE190 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EE190 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EE194 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE194 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EE194 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EE194 */ goto L_028EE198;
|
|
L_028EE198: ; // 0x28ee198
|
|
/* 028EE198 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028EE19C @ 0x28ee19c
|
|
void Gambit_fn_028EE19C(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028EE19C: ; // 0x28ee19c
|
|
/* 028EE19C */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE1A0 */ _t0 = cpu->r[12] + 0xFFFFC334u;
|
|
/* 028EE1A0 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028EE1A4 */ return;
|
|
}
|
|
|
|
// fn_028EE1A8 @ 0x28ee1a8
|
|
void Gambit_fn_028EE1A8(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_028EE1A8: ; // 0x28ee1a8
|
|
/* 028EE1A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE1AC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE1AC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EE1AC */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EE1AC */ goto L_028EE1B0;
|
|
L_028EE1B0: ; // 0x28ee1b0
|
|
/* 028EE1B0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EE1B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EE1B4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE1B4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EE1B4 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EE1B4 */ goto L_028EE1B8;
|
|
L_028EE1B8: ; // 0x28ee1b8
|
|
/* 028EE1B8 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028EE1BC @ 0x28ee1bc
|
|
void Gambit_fn_028EE1BC(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_028EE1BC: ; // 0x28ee1bc
|
|
/* 028EE1BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE1C0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE1C0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EE1C0 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EE1C0 */ goto L_028EE1C4;
|
|
L_028EE1C4: ; // 0x28ee1c4
|
|
/* 028EE1C4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EE1C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EE1C8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE1C8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EE1C8 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EE1C8 */ goto L_028EE1CC;
|
|
L_028EE1CC: ; // 0x28ee1cc
|
|
/* 028EE1CC */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028EE1D0 @ 0x28ee1d0
|
|
void Gambit_fn_028EE1D0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028EE1D0: ; // 0x28ee1d0
|
|
/* 028EE1D0 */ cpu->r[0] = cpu->lr;
|
|
/* 028EE1D4 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028EE1D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028EE1D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE1DC */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE1DC */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028EE1DC */ cpu->r[1] = _t1;
|
|
/* 028EE1E0 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE1E0 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028EE1E0 */ if (_t3) goto L_028EE1E4; else goto L_028EE1F4;
|
|
L_028EE1E4: ; // 0x28ee1e4
|
|
/* 028EE1E4 */ cpu->r[3] = 0x0000005Cu;
|
|
/* 028EE1E8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EE1EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE1F0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE1F0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EE1F0 */ if (_t5) goto L_028EE280; else goto L_028EE1F4;
|
|
L_028EE1F4: ; // 0x28ee1f4
|
|
/* 028EE1F4 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EE1F8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EE1FC */ cpu->r[9] = 0x10140000u;
|
|
/* 028EE200 */ cpu->r[11] = cpu->r[11] + 0xFFFFC5ECu;
|
|
/* 028EE204 */ cpu->r[0] = cpu->r[0] + 0xFFFFC62Cu;
|
|
/* 028EE208 */ _t6 = cpu->r[3] + 0x00000044u;
|
|
/* 028EE208 */ rbrew_write32(cpu->mem, _t6, cpu->r[11]);
|
|
/* 028EE20C */ cpu->r[9] = cpu->r[9] + 0xFFFFC66Cu;
|
|
/* 028EE210 */ cpu->r[8] = 0x10140000u;
|
|
/* 028EE214 */ _t7 = cpu->r[3] + 0x0000004Cu;
|
|
/* 028EE214 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028EE218 */ cpu->r[10] = 0x10140000u;
|
|
/* 028EE21C */ cpu->r[8] = cpu->r[8] + 0xFFFFC64Cu;
|
|
/* 028EE220 */ _t8 = cpu->r[3] + 0x00000054u;
|
|
/* 028EE220 */ rbrew_write32(cpu->mem, _t8, cpu->r[9]);
|
|
/* 028EE224 */ cpu->r[10] = cpu->r[10] + 0xFFFFC5CCu;
|
|
/* 028EE228 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE22C */ _t9 = cpu->r[3] + 0x00000050u;
|
|
/* 028EE22C */ rbrew_write32(cpu->mem, _t9, cpu->r[8]);
|
|
/* 028EE230 */ cpu->r[12] = cpu->r[12] + 0xFFFFC60Cu;
|
|
/* 028EE234 */ _t10 = cpu->r[3] + 0x00000040u;
|
|
/* 028EE234 */ rbrew_write32(cpu->mem, _t10, cpu->r[10]);
|
|
/* 028EE238 */ cpu->r[10] = 0x10140000u;
|
|
/* 028EE23C */ _t11 = cpu->r[3] + 0x00000048u;
|
|
/* 028EE23C */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
/* 028EE240 */ cpu->r[10] = cpu->r[10] + 0xFFFFC68Cu;
|
|
/* 028EE244 */ cpu->r[12] = cpu->r[3];
|
|
/* 028EE248 */ cpu->r[8] = 0x00000000u;
|
|
/* 028EE24C */ _t12 = cpu->r[3] + 0x00000058u;
|
|
/* 028EE24C */ rbrew_write32(cpu->mem, _t12, cpu->r[10]);
|
|
/* 028EE250 */ goto L_028EE25C;
|
|
L_028EE254: ; // 0x28ee254
|
|
/* 028EE254 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], 0x00000010u);
|
|
/* 028EE258 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EE258 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028EE258 */ if (_t14) goto L_028EE25C; else goto L_028EE268;
|
|
L_028EE25C: ; // 0x28ee25c
|
|
/* 028EE25C */ cpu->r[9] = cpu->r[12];
|
|
/* 028EE260 */ cpu->r[0] = 0x00000000u;
|
|
/* 028EE264 */ goto L_028EE26C;
|
|
L_028EE268: ; // 0x28ee268
|
|
/* 028EE268 */ cpu->r[9] = cpu->r[3];
|
|
L_028EE26C: ; // 0x28ee26c
|
|
/* 028EE26C */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 028EE270 */ _t15 = cpu->r[9] + 0x00000000u;
|
|
/* 028EE270 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028EE274 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000010u);
|
|
/* 028EE278 */ cpu->r[12] = cpu->r[12] + 0x00000004u;
|
|
/* 028EE27C */ _t16 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EE27C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EE27C */ if (_t17) goto L_028EE254; else goto L_028EE280;
|
|
L_028EE280: ; // 0x28ee280
|
|
/* 028EE280 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE280 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028EE284 */ cpu->lr = cpu->r[0];
|
|
/* 028EE288 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE28C */ return;
|
|
}
|
|
|
|
// fn_028EE1DC @ 0x28ee1dc
|
|
void Gambit_fn_028EE1DC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028EE1DC: ; // 0x28ee1dc
|
|
/* 028EE1DC */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE1DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE1DC */ cpu->r[1] = _t0;
|
|
/* 028EE1E0 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE1E0 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028EE1E0 */ if (_t2) goto L_028EE1E4; else goto L_028EE1F4;
|
|
L_028EE1E4: ; // 0x28ee1e4
|
|
/* 028EE1E4 */ cpu->r[3] = 0x0000005Cu;
|
|
/* 028EE1E8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EE1EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE1F0 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE1F0 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028EE1F0 */ if (_t4) goto L_028EE280; else goto L_028EE1F4;
|
|
L_028EE1F4: ; // 0x28ee1f4
|
|
/* 028EE1F4 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EE1F8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EE1FC */ cpu->r[9] = 0x10140000u;
|
|
/* 028EE200 */ cpu->r[11] = cpu->r[11] + 0xFFFFC5ECu;
|
|
/* 028EE204 */ cpu->r[0] = cpu->r[0] + 0xFFFFC62Cu;
|
|
/* 028EE208 */ _t5 = cpu->r[3] + 0x00000044u;
|
|
/* 028EE208 */ rbrew_write32(cpu->mem, _t5, cpu->r[11]);
|
|
/* 028EE20C */ cpu->r[9] = cpu->r[9] + 0xFFFFC66Cu;
|
|
/* 028EE210 */ cpu->r[8] = 0x10140000u;
|
|
/* 028EE214 */ _t6 = cpu->r[3] + 0x0000004Cu;
|
|
/* 028EE214 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028EE218 */ cpu->r[10] = 0x10140000u;
|
|
/* 028EE21C */ cpu->r[8] = cpu->r[8] + 0xFFFFC64Cu;
|
|
/* 028EE220 */ _t7 = cpu->r[3] + 0x00000054u;
|
|
/* 028EE220 */ rbrew_write32(cpu->mem, _t7, cpu->r[9]);
|
|
/* 028EE224 */ cpu->r[10] = cpu->r[10] + 0xFFFFC5CCu;
|
|
/* 028EE228 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE22C */ _t8 = cpu->r[3] + 0x00000050u;
|
|
/* 028EE22C */ rbrew_write32(cpu->mem, _t8, cpu->r[8]);
|
|
/* 028EE230 */ cpu->r[12] = cpu->r[12] + 0xFFFFC60Cu;
|
|
/* 028EE234 */ _t9 = cpu->r[3] + 0x00000040u;
|
|
/* 028EE234 */ rbrew_write32(cpu->mem, _t9, cpu->r[10]);
|
|
/* 028EE238 */ cpu->r[10] = 0x10140000u;
|
|
/* 028EE23C */ _t10 = cpu->r[3] + 0x00000048u;
|
|
/* 028EE23C */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028EE240 */ cpu->r[10] = cpu->r[10] + 0xFFFFC68Cu;
|
|
/* 028EE244 */ cpu->r[12] = cpu->r[3];
|
|
/* 028EE248 */ cpu->r[8] = 0x00000000u;
|
|
/* 028EE24C */ _t11 = cpu->r[3] + 0x00000058u;
|
|
/* 028EE24C */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 028EE250 */ goto L_028EE25C;
|
|
L_028EE254: ; // 0x28ee254
|
|
/* 028EE254 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], 0x00000010u);
|
|
/* 028EE258 */ _t12 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EE258 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028EE258 */ if (_t13) goto L_028EE25C; else goto L_028EE268;
|
|
L_028EE25C: ; // 0x28ee25c
|
|
/* 028EE25C */ cpu->r[9] = cpu->r[12];
|
|
/* 028EE260 */ cpu->r[0] = 0x00000000u;
|
|
/* 028EE264 */ goto L_028EE26C;
|
|
L_028EE268: ; // 0x28ee268
|
|
/* 028EE268 */ cpu->r[9] = cpu->r[3];
|
|
L_028EE26C: ; // 0x28ee26c
|
|
/* 028EE26C */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 028EE270 */ _t14 = cpu->r[9] + 0x00000000u;
|
|
/* 028EE270 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028EE274 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000010u);
|
|
/* 028EE278 */ cpu->r[12] = cpu->r[12] + 0x00000004u;
|
|
/* 028EE27C */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EE27C */ _t16 = _t15 & 0x00000001u;
|
|
/* 028EE27C */ if (_t16) goto L_028EE254; else goto L_028EE280;
|
|
L_028EE280: ; // 0x28ee280
|
|
/* 028EE280 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE280 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028EE284 */ cpu->lr = cpu->r[0];
|
|
/* 028EE288 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE28C */ return;
|
|
}
|
|
|
|
// fn_028EE290 @ 0x28ee290
|
|
void Gambit_fn_028EE290(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028EE290: ; // 0x28ee290
|
|
/* 028EE290 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000010u);
|
|
/* 028EE294 */ _t0 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EE294 */ _t1 = _t0 & 0x00000001u;
|
|
/* 028EE294 */ _t2 = _t1 ^ 0x00000001u;
|
|
/* 028EE294 */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EE294 */ goto L_028EE298;
|
|
L_028EE298: ; // 0x28ee298
|
|
/* 028EE298 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000010u);
|
|
/* 028EE29C */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EE29C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028EE29C */ if (_t4) goto L_028EE2A0; else goto L_028EE2A8;
|
|
L_028EE2A0: ; // 0x28ee2a0
|
|
/* 028EE2A0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028EE2A4 */ cpu->r[3] = cpu->r[3] + cpu->r[0];
|
|
L_028EE2A8: ; // 0x28ee2a8
|
|
/* 028EE2A8 */ _t5 = cpu->r[3] + 0x00000000u;
|
|
/* 028EE2A8 */ rbrew_write32(cpu->mem, _t5, cpu->r[5]);
|
|
/* 028EE2AC */ return;
|
|
}
|
|
|
|
// fn_028EE2B0 @ 0x28ee2b0
|
|
void Gambit_fn_028EE2B0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028EE2B0: ; // 0x28ee2b0
|
|
/* 028EE2B0 */ cpu->r[0] = cpu->lr;
|
|
/* 028EE2B4 */ cpu->r[5] = cpu->r[3] + 0x00000040u;
|
|
/* 028EE2B8 */ cpu->r[4] = 0x00000000u;
|
|
/* 028EE2BC */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028EE2BC */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028EE2C0 */ cpu->r[12] = cpu->r[3];
|
|
/* 028EE2C4 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE2C4 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028EE2C4 */ cpu->r[1] = _t1;
|
|
/* 028EE2C8 */ Gambit_fn_028EE290(cpu);
|
|
/* 028EE2CC */ cpu->r[3] = cpu->r[12];
|
|
/* 028EE2D0 */ cpu->r[5] = cpu->r[12] + 0x00000044u;
|
|
/* 028EE2D4 */ cpu->r[4] = 0x00000001u;
|
|
/* 028EE2D8 */ Gambit_fn_028EE290(cpu);
|
|
/* 028EE2DC */ cpu->r[3] = cpu->r[12];
|
|
/* 028EE2E0 */ cpu->r[5] = cpu->r[12] + 0x00000048u;
|
|
/* 028EE2E4 */ cpu->r[4] = 0x00000002u;
|
|
/* 028EE2E8 */ Gambit_fn_028EE290(cpu);
|
|
/* 028EE2EC */ cpu->r[3] = cpu->r[12];
|
|
/* 028EE2F0 */ cpu->r[4] = 0x00000003u;
|
|
/* 028EE2F4 */ cpu->r[5] = cpu->r[12] + 0x0000004Cu;
|
|
/* 028EE2F8 */ Gambit_fn_028EE290(cpu);
|
|
/* 028EE2FC */ cpu->r[4] = 0x00000004u;
|
|
/* 028EE300 */ cpu->r[5] = cpu->r[12] + 0x00000050u;
|
|
/* 028EE304 */ cpu->r[3] = cpu->r[12];
|
|
/* 028EE308 */ Gambit_fn_028EE290(cpu);
|
|
/* 028EE30C */ cpu->r[4] = 0x00000005u;
|
|
/* 028EE310 */ cpu->r[5] = cpu->r[12] + 0x00000054u;
|
|
/* 028EE314 */ cpu->r[3] = cpu->r[12];
|
|
/* 028EE318 */ Gambit_fn_028EE290(cpu);
|
|
/* 028EE31C */ cpu->r[4] = 0x00000006u;
|
|
/* 028EE320 */ cpu->r[5] = cpu->r[12] + 0x00000058u;
|
|
/* 028EE324 */ cpu->r[3] = cpu->r[12];
|
|
/* 028EE328 */ Gambit_fn_028EE290(cpu);
|
|
/* 028EE32C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE32C */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028EE330 */ cpu->lr = cpu->r[0];
|
|
/* 028EE334 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE338 */ return;
|
|
}
|
|
|
|
// fn_028EE2C4 @ 0x28ee2c4
|
|
void Gambit_fn_028EE2C4(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028EE2C4: ; // 0x28ee2c4
|
|
/* 028EE2C4 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE2C4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE2C4 */ cpu->r[1] = _t0;
|
|
/* 028EE2C8 */ Gambit_fn_028EE290(cpu);
|
|
/* 028EE2CC */ cpu->r[3] = cpu->r[12];
|
|
/* 028EE2D0 */ cpu->r[5] = cpu->r[12] + 0x00000044u;
|
|
/* 028EE2D4 */ cpu->r[4] = 0x00000001u;
|
|
/* 028EE2D8 */ Gambit_fn_028EE290(cpu);
|
|
/* 028EE2DC */ cpu->r[3] = cpu->r[12];
|
|
/* 028EE2E0 */ cpu->r[5] = cpu->r[12] + 0x00000048u;
|
|
/* 028EE2E4 */ cpu->r[4] = 0x00000002u;
|
|
/* 028EE2E8 */ Gambit_fn_028EE290(cpu);
|
|
/* 028EE2EC */ cpu->r[3] = cpu->r[12];
|
|
/* 028EE2F0 */ cpu->r[4] = 0x00000003u;
|
|
/* 028EE2F4 */ cpu->r[5] = cpu->r[12] + 0x0000004Cu;
|
|
/* 028EE2F8 */ Gambit_fn_028EE290(cpu);
|
|
/* 028EE2FC */ cpu->r[4] = 0x00000004u;
|
|
/* 028EE300 */ cpu->r[5] = cpu->r[12] + 0x00000050u;
|
|
/* 028EE304 */ cpu->r[3] = cpu->r[12];
|
|
/* 028EE308 */ Gambit_fn_028EE290(cpu);
|
|
/* 028EE30C */ cpu->r[4] = 0x00000005u;
|
|
/* 028EE310 */ cpu->r[5] = cpu->r[12] + 0x00000054u;
|
|
/* 028EE314 */ cpu->r[3] = cpu->r[12];
|
|
/* 028EE318 */ Gambit_fn_028EE290(cpu);
|
|
/* 028EE31C */ cpu->r[4] = 0x00000006u;
|
|
/* 028EE320 */ cpu->r[5] = cpu->r[12] + 0x00000058u;
|
|
/* 028EE324 */ cpu->r[3] = cpu->r[12];
|
|
/* 028EE328 */ Gambit_fn_028EE290(cpu);
|
|
/* 028EE32C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE32C */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028EE330 */ cpu->lr = cpu->r[0];
|
|
/* 028EE334 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE338 */ return;
|
|
}
|
|
|
|
// fn_028EE33C @ 0x28ee33c
|
|
void Gambit_fn_028EE33C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028EE33C: ; // 0x28ee33c
|
|
/* 028EE33C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000010u);
|
|
/* 028EE340 */ _t0 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EE340 */ _t1 = _t0 & 0x00000001u;
|
|
/* 028EE340 */ if (_t1) goto L_028EE344; else goto L_028EE36C;
|
|
L_028EE344: ; // 0x28ee344
|
|
/* 028EE344 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000010u);
|
|
/* 028EE348 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EE348 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028EE348 */ if (_t3) goto L_028EE34C; else goto L_028EE360;
|
|
L_028EE34C: ; // 0x28ee34c
|
|
/* 028EE34C */ cpu->r[10] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028EE350 */ _t4 = cpu->r[3] + cpu->r[10];
|
|
/* 028EE350 */ cpu->r[11] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028EE354 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028EE358 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE358 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028EE358 */ if (_t6) goto L_028EE35C; else goto L_028EE374;
|
|
L_028EE35C: ; // 0x28ee35c
|
|
/* 028EE35C */ goto L_028EE36C;
|
|
L_028EE360: ; // 0x28ee360
|
|
/* 028EE360 */ _t7 = cpu->r[3] + 0x00000000u;
|
|
/* 028EE360 */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028EE364 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028EE368 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE368 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EE368 */ if (_t9) goto L_028EE36C; else goto L_028EE374;
|
|
L_028EE36C: ; // 0x28ee36c
|
|
/* 028EE36C */ cpu->r[3] = 0x00000000u;
|
|
/* 028EE370 */ return;
|
|
L_028EE374: ; // 0x28ee374
|
|
/* 028EE374 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000010u);
|
|
/* 028EE378 */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EE378 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028EE378 */ if (_t11) goto L_028EE37C; else goto L_028EE384;
|
|
L_028EE37C: ; // 0x28ee37c
|
|
/* 028EE37C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028EE380 */ cpu->r[3] = cpu->r[3] + cpu->r[0];
|
|
L_028EE384: ; // 0x28ee384
|
|
/* 028EE384 */ _t12 = cpu->r[3] + 0x00000000u;
|
|
/* 028EE384 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EE388 */ _t13 = cpu->r[3] + 0x00000000u;
|
|
/* 028EE388 */ cpu->r[11] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EE38C */ _t14 = cpu->r[11] + 0x00000014u;
|
|
/* 028EE38C */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028EE390 */ cpu->ctr = cpu->r[12];
|
|
/* 028EE394 */ cpu->r[4] = cpu->r[5];
|
|
/* 028EE398 */ rbrew_dispatch(cpu, cpu->ctr); return;
|
|
}
|
|
|
|
// fn_028EE39C @ 0x28ee39c
|
|
void Gambit_fn_028EE39C(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028EE39C: ; // 0x28ee39c
|
|
/* 028EE39C */ cpu->r[12] = 0x101F0000u;
|
|
/* 028EE3A0 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EE3A4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EE3A8 */ cpu->r[12] = cpu->r[12] + 0x0000722Cu;
|
|
/* 028EE3AC */ cpu->r[11] = cpu->r[11] + 0xFFFFC538u;
|
|
/* 028EE3B0 */ cpu->r[0] = cpu->r[0] + 0xFFFFC550u;
|
|
/* 028EE3B4 */ _t0 = cpu->r[12] + 0x00000004u;
|
|
/* 028EE3B4 */ rbrew_write32(cpu->mem, _t0, cpu->r[11]);
|
|
/* 028EE3B8 */ _t1 = cpu->r[12] + 0x00000000u;
|
|
/* 028EE3B8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028EE3BC */ return;
|
|
}
|
|
|
|
// fn_028EE3C0 @ 0x28ee3c0
|
|
void Gambit_fn_028EE3C0(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_028EE3C0: ; // 0x28ee3c0
|
|
/* 028EE3C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE3C4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE3C4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EE3C4 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EE3C4 */ goto L_028EE3C8;
|
|
L_028EE3C8: ; // 0x28ee3c8
|
|
/* 028EE3C8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EE3C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EE3CC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE3CC */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EE3CC */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EE3CC */ goto L_028EE3D0;
|
|
L_028EE3D0: ; // 0x28ee3d0
|
|
/* 028EE3D0 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028EE3D4 @ 0x28ee3d4
|
|
void Gambit_fn_028EE3D4(CPUState* cpu) {
|
|
L_028EE3D4: ; // 0x28ee3d4
|
|
/* 028EE3D4 */ return;
|
|
}
|
|
|
|
// fn_028EE3D8 @ 0x28ee3d8
|
|
void Gambit_fn_028EE3D8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028EE3D8: ; // 0x28ee3d8
|
|
/* 028EE3D8 */ cpu->r[0] = cpu->lr;
|
|
/* 028EE3DC */ cpu->r[5] = 0x10140000u;
|
|
/* 028EE3E0 */ cpu->r[3] = 0x0000009Cu;
|
|
/* 028EE3E4 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028EE3E4 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028EE3E8 */ cpu->r[5] = cpu->r[5] + 0xFFFFC558u;
|
|
/* 028EE3EC */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE3EC */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028EE3EC */ cpu->r[1] = _t1;
|
|
/* 028EE3F0 */ Gambit_fn_02801AF0(cpu);
|
|
/* 028EE3F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE3F8 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE3F8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028EE3F8 */ if (_t3) goto L_028EE408; else goto L_028EE3FC;
|
|
L_028EE3FC: ; // 0x28ee3fc
|
|
/* 028EE3FC */ cpu->r[4] = 0x101F0000u;
|
|
/* 028EE400 */ cpu->r[4] = cpu->r[4] + 0x00007234u;
|
|
/* 028EE404 */ Gambit_fn_028EE954(cpu);
|
|
L_028EE408: ; // 0x28ee408
|
|
/* 028EE408 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE408 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028EE40C */ cpu->lr = cpu->r[0];
|
|
/* 028EE410 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE414 */ return;
|
|
}
|
|
|
|
// fn_028EE3EC @ 0x28ee3ec
|
|
void Gambit_fn_028EE3EC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028EE3EC: ; // 0x28ee3ec
|
|
/* 028EE3EC */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE3EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE3EC */ cpu->r[1] = _t0;
|
|
/* 028EE3F0 */ Gambit_fn_02801AF0(cpu);
|
|
/* 028EE3F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE3F8 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE3F8 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028EE3F8 */ if (_t2) goto L_028EE408; else goto L_028EE3FC;
|
|
L_028EE3FC: ; // 0x28ee3fc
|
|
/* 028EE3FC */ cpu->r[4] = 0x101F0000u;
|
|
/* 028EE400 */ cpu->r[4] = cpu->r[4] + 0x00007234u;
|
|
/* 028EE404 */ Gambit_fn_028EE954(cpu);
|
|
L_028EE408: ; // 0x28ee408
|
|
/* 028EE408 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE408 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028EE40C */ cpu->lr = cpu->r[0];
|
|
/* 028EE410 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE414 */ return;
|
|
}
|
|
|
|
// fn_028EE418 @ 0x28ee418
|
|
void Gambit_fn_028EE418(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028EE418: ; // 0x28ee418
|
|
/* 028EE418 */ cpu->r[0] = cpu->lr;
|
|
/* 028EE41C */ cpu->r[5] = 0x10140000u;
|
|
/* 028EE420 */ cpu->r[3] = 0x000000A0u;
|
|
/* 028EE424 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028EE424 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028EE428 */ cpu->r[5] = cpu->r[5] + 0xFFFFC558u;
|
|
/* 028EE42C */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE42C */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028EE42C */ cpu->r[1] = _t1;
|
|
/* 028EE430 */ Gambit_fn_02801AF0(cpu);
|
|
/* 028EE434 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE438 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE438 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028EE438 */ if (_t3) goto L_028EE448; else goto L_028EE43C;
|
|
L_028EE43C: ; // 0x28ee43c
|
|
/* 028EE43C */ cpu->r[4] = 0x101F0000u;
|
|
/* 028EE440 */ cpu->r[4] = cpu->r[4] + 0x0000723Cu;
|
|
/* 028EE444 */ Gambit_fn_028EF190(cpu);
|
|
L_028EE448: ; // 0x28ee448
|
|
/* 028EE448 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE448 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028EE44C */ cpu->lr = cpu->r[0];
|
|
/* 028EE450 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE454 */ return;
|
|
}
|
|
|
|
// fn_028EE42C @ 0x28ee42c
|
|
void Gambit_fn_028EE42C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028EE42C: ; // 0x28ee42c
|
|
/* 028EE42C */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE42C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE42C */ cpu->r[1] = _t0;
|
|
/* 028EE430 */ Gambit_fn_02801AF0(cpu);
|
|
/* 028EE434 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE438 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE438 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028EE438 */ if (_t2) goto L_028EE448; else goto L_028EE43C;
|
|
L_028EE43C: ; // 0x28ee43c
|
|
/* 028EE43C */ cpu->r[4] = 0x101F0000u;
|
|
/* 028EE440 */ cpu->r[4] = cpu->r[4] + 0x0000723Cu;
|
|
/* 028EE444 */ Gambit_fn_028EF190(cpu);
|
|
L_028EE448: ; // 0x28ee448
|
|
/* 028EE448 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE448 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028EE44C */ cpu->lr = cpu->r[0];
|
|
/* 028EE450 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE454 */ return;
|
|
}
|
|
|
|
// fn_028EE458 @ 0x28ee458
|
|
void Gambit_fn_028EE458(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028EE458: ; // 0x28ee458
|
|
/* 028EE458 */ cpu->r[0] = cpu->lr;
|
|
/* 028EE45C */ cpu->r[5] = 0x10140000u;
|
|
/* 028EE460 */ cpu->r[3] = 0x000000A8u;
|
|
/* 028EE464 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028EE464 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028EE468 */ cpu->r[5] = cpu->r[5] + 0xFFFFC558u;
|
|
/* 028EE46C */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE46C */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028EE46C */ cpu->r[1] = _t1;
|
|
/* 028EE470 */ Gambit_fn_02801AF0(cpu);
|
|
/* 028EE474 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE478 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE478 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028EE478 */ if (_t3) goto L_028EE488; else goto L_028EE47C;
|
|
L_028EE47C: ; // 0x28ee47c
|
|
/* 028EE47C */ cpu->r[4] = 0x101F0000u;
|
|
/* 028EE480 */ cpu->r[4] = cpu->r[4] + 0x00007244u;
|
|
/* 028EE484 */ Gambit_fn_028EEF04(cpu);
|
|
L_028EE488: ; // 0x28ee488
|
|
/* 028EE488 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE488 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028EE48C */ cpu->lr = cpu->r[0];
|
|
/* 028EE490 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE494 */ return;
|
|
}
|
|
|
|
// fn_028EE46C @ 0x28ee46c
|
|
void Gambit_fn_028EE46C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028EE46C: ; // 0x28ee46c
|
|
/* 028EE46C */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE46C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE46C */ cpu->r[1] = _t0;
|
|
/* 028EE470 */ Gambit_fn_02801AF0(cpu);
|
|
/* 028EE474 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE478 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE478 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028EE478 */ if (_t2) goto L_028EE488; else goto L_028EE47C;
|
|
L_028EE47C: ; // 0x28ee47c
|
|
/* 028EE47C */ cpu->r[4] = 0x101F0000u;
|
|
/* 028EE480 */ cpu->r[4] = cpu->r[4] + 0x00007244u;
|
|
/* 028EE484 */ Gambit_fn_028EEF04(cpu);
|
|
L_028EE488: ; // 0x28ee488
|
|
/* 028EE488 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE488 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028EE48C */ cpu->lr = cpu->r[0];
|
|
/* 028EE490 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE494 */ return;
|
|
}
|
|
|
|
// fn_028EE498 @ 0x28ee498
|
|
void Gambit_fn_028EE498(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028EE498: ; // 0x28ee498
|
|
/* 028EE498 */ cpu->r[0] = cpu->lr;
|
|
/* 028EE49C */ cpu->r[5] = 0x10140000u;
|
|
/* 028EE4A0 */ cpu->r[3] = 0x000000ACu;
|
|
/* 028EE4A4 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028EE4A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028EE4A8 */ cpu->r[5] = cpu->r[5] + 0xFFFFC558u;
|
|
/* 028EE4AC */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE4AC */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028EE4AC */ cpu->r[1] = _t1;
|
|
/* 028EE4B0 */ Gambit_fn_02801AF0(cpu);
|
|
/* 028EE4B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE4B8 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE4B8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028EE4B8 */ if (_t3) goto L_028EE4C8; else goto L_028EE4BC;
|
|
L_028EE4BC: ; // 0x28ee4bc
|
|
/* 028EE4BC */ cpu->r[4] = 0x101F0000u;
|
|
/* 028EE4C0 */ cpu->r[4] = cpu->r[4] + 0x0000724Cu;
|
|
/* 028EE4C4 */ Gambit_fn_028EF59C(cpu);
|
|
L_028EE4C8: ; // 0x28ee4c8
|
|
/* 028EE4C8 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE4C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028EE4CC */ cpu->lr = cpu->r[0];
|
|
/* 028EE4D0 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE4D4 */ return;
|
|
}
|
|
|
|
// fn_028EE4AC @ 0x28ee4ac
|
|
void Gambit_fn_028EE4AC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028EE4AC: ; // 0x28ee4ac
|
|
/* 028EE4AC */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE4AC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE4AC */ cpu->r[1] = _t0;
|
|
/* 028EE4B0 */ Gambit_fn_02801AF0(cpu);
|
|
/* 028EE4B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE4B8 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE4B8 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028EE4B8 */ if (_t2) goto L_028EE4C8; else goto L_028EE4BC;
|
|
L_028EE4BC: ; // 0x28ee4bc
|
|
/* 028EE4BC */ cpu->r[4] = 0x101F0000u;
|
|
/* 028EE4C0 */ cpu->r[4] = cpu->r[4] + 0x0000724Cu;
|
|
/* 028EE4C4 */ Gambit_fn_028EF59C(cpu);
|
|
L_028EE4C8: ; // 0x28ee4c8
|
|
/* 028EE4C8 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE4C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028EE4CC */ cpu->lr = cpu->r[0];
|
|
/* 028EE4D0 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE4D4 */ return;
|
|
}
|
|
|
|
// fn_028EE4D8 @ 0x28ee4d8
|
|
void Gambit_fn_028EE4D8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028EE4D8: ; // 0x28ee4d8
|
|
/* 028EE4D8 */ cpu->r[0] = cpu->lr;
|
|
/* 028EE4DC */ cpu->r[5] = 0x10140000u;
|
|
/* 028EE4E0 */ cpu->r[3] = 0x000000A0u;
|
|
/* 028EE4E4 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028EE4E4 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028EE4E8 */ cpu->r[5] = cpu->r[5] + 0xFFFFC558u;
|
|
/* 028EE4EC */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE4EC */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028EE4EC */ cpu->r[1] = _t1;
|
|
/* 028EE4F0 */ Gambit_fn_02801AF0(cpu);
|
|
/* 028EE4F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE4F8 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE4F8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028EE4F8 */ if (_t3) goto L_028EE508; else goto L_028EE4FC;
|
|
L_028EE4FC: ; // 0x28ee4fc
|
|
/* 028EE4FC */ cpu->r[4] = 0x101F0000u;
|
|
/* 028EE500 */ cpu->r[4] = cpu->r[4] + 0x00007254u;
|
|
/* 028EE504 */ Gambit_fn_028EE83C(cpu);
|
|
L_028EE508: ; // 0x28ee508
|
|
/* 028EE508 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE508 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028EE50C */ cpu->lr = cpu->r[0];
|
|
/* 028EE510 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE514 */ return;
|
|
}
|
|
|
|
// fn_028EE4EC @ 0x28ee4ec
|
|
void Gambit_fn_028EE4EC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028EE4EC: ; // 0x28ee4ec
|
|
/* 028EE4EC */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE4EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE4EC */ cpu->r[1] = _t0;
|
|
/* 028EE4F0 */ Gambit_fn_02801AF0(cpu);
|
|
/* 028EE4F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE4F8 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE4F8 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028EE4F8 */ if (_t2) goto L_028EE508; else goto L_028EE4FC;
|
|
L_028EE4FC: ; // 0x28ee4fc
|
|
/* 028EE4FC */ cpu->r[4] = 0x101F0000u;
|
|
/* 028EE500 */ cpu->r[4] = cpu->r[4] + 0x00007254u;
|
|
/* 028EE504 */ Gambit_fn_028EE83C(cpu);
|
|
L_028EE508: ; // 0x28ee508
|
|
/* 028EE508 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE508 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028EE50C */ cpu->lr = cpu->r[0];
|
|
/* 028EE510 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE514 */ return;
|
|
}
|
|
|
|
// fn_028EE518 @ 0x28ee518
|
|
void Gambit_fn_028EE518(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028EE518: ; // 0x28ee518
|
|
/* 028EE518 */ cpu->r[0] = cpu->lr;
|
|
/* 028EE51C */ cpu->r[5] = 0x10140000u;
|
|
/* 028EE520 */ cpu->r[3] = 0x000000A0u;
|
|
/* 028EE524 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028EE524 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028EE528 */ cpu->r[5] = cpu->r[5] + 0xFFFFC558u;
|
|
/* 028EE52C */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE52C */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028EE52C */ cpu->r[1] = _t1;
|
|
/* 028EE530 */ Gambit_fn_02801AF0(cpu);
|
|
/* 028EE534 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE538 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE538 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028EE538 */ if (_t3) goto L_028EE548; else goto L_028EE53C;
|
|
L_028EE53C: ; // 0x28ee53c
|
|
/* 028EE53C */ cpu->r[4] = 0x101F0000u;
|
|
/* 028EE540 */ cpu->r[4] = cpu->r[4] + 0x0000725Cu;
|
|
/* 028EE544 */ Gambit_fn_028EEC54(cpu);
|
|
L_028EE548: ; // 0x28ee548
|
|
/* 028EE548 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE548 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028EE54C */ cpu->lr = cpu->r[0];
|
|
/* 028EE550 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE554 */ return;
|
|
}
|
|
|
|
// fn_028EE52C @ 0x28ee52c
|
|
void Gambit_fn_028EE52C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028EE52C: ; // 0x28ee52c
|
|
/* 028EE52C */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE52C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE52C */ cpu->r[1] = _t0;
|
|
/* 028EE530 */ Gambit_fn_02801AF0(cpu);
|
|
/* 028EE534 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE538 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE538 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028EE538 */ if (_t2) goto L_028EE548; else goto L_028EE53C;
|
|
L_028EE53C: ; // 0x28ee53c
|
|
/* 028EE53C */ cpu->r[4] = 0x101F0000u;
|
|
/* 028EE540 */ cpu->r[4] = cpu->r[4] + 0x0000725Cu;
|
|
/* 028EE544 */ Gambit_fn_028EEC54(cpu);
|
|
L_028EE548: ; // 0x28ee548
|
|
/* 028EE548 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE548 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028EE54C */ cpu->lr = cpu->r[0];
|
|
/* 028EE550 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE554 */ return;
|
|
}
|
|
|
|
// fn_028EE558 @ 0x28ee558
|
|
void Gambit_fn_028EE558(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028EE558: ; // 0x28ee558
|
|
/* 028EE558 */ cpu->r[0] = cpu->lr;
|
|
/* 028EE55C */ cpu->r[5] = 0x10140000u;
|
|
/* 028EE560 */ cpu->r[3] = 0x000000A8u;
|
|
/* 028EE564 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028EE564 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028EE568 */ cpu->r[5] = cpu->r[5] + 0xFFFFC558u;
|
|
/* 028EE56C */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE56C */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028EE56C */ cpu->r[1] = _t1;
|
|
/* 028EE570 */ Gambit_fn_02801AF0(cpu);
|
|
/* 028EE574 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE578 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE578 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028EE578 */ if (_t3) goto L_028EE588; else goto L_028EE57C;
|
|
L_028EE57C: ; // 0x28ee57c
|
|
/* 028EE57C */ cpu->r[4] = 0x101F0000u;
|
|
/* 028EE580 */ cpu->r[4] = cpu->r[4] + 0x00007264u;
|
|
/* 028EE584 */ Gambit_fn_028EF8E8(cpu);
|
|
L_028EE588: ; // 0x28ee588
|
|
/* 028EE588 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE588 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028EE58C */ cpu->lr = cpu->r[0];
|
|
/* 028EE590 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE594 */ return;
|
|
}
|
|
|
|
// fn_028EE56C @ 0x28ee56c
|
|
void Gambit_fn_028EE56C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028EE56C: ; // 0x28ee56c
|
|
/* 028EE56C */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EE56C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE56C */ cpu->r[1] = _t0;
|
|
/* 028EE570 */ Gambit_fn_02801AF0(cpu);
|
|
/* 028EE574 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE578 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE578 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028EE578 */ if (_t2) goto L_028EE588; else goto L_028EE57C;
|
|
L_028EE57C: ; // 0x28ee57c
|
|
/* 028EE57C */ cpu->r[4] = 0x101F0000u;
|
|
/* 028EE580 */ cpu->r[4] = cpu->r[4] + 0x00007264u;
|
|
/* 028EE584 */ Gambit_fn_028EF8E8(cpu);
|
|
L_028EE588: ; // 0x28ee588
|
|
/* 028EE588 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE588 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028EE58C */ cpu->lr = cpu->r[0];
|
|
/* 028EE590 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE594 */ return;
|
|
}
|
|
|
|
// fn_028EE598 @ 0x28ee598
|
|
void Gambit_fn_028EE598(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028EE598: ; // 0x28ee598
|
|
/* 028EE598 */ cpu->r[11] = 0x101F0000u;
|
|
/* 028EE59C */ cpu->r[6] = 0x10140000u;
|
|
/* 028EE5A0 */ cpu->r[7] = 0x10140000u;
|
|
/* 028EE5A4 */ cpu->r[11] = cpu->r[11] + 0x00007234u;
|
|
/* 028EE5A8 */ cpu->r[6] = cpu->r[6] + 0xFFFFC55Cu;
|
|
/* 028EE5AC */ cpu->r[7] = cpu->r[7] + 0xFFFFC574u;
|
|
/* 028EE5B0 */ cpu->r[10] = 0x101F0000u;
|
|
/* 028EE5B4 */ _t0 = cpu->r[11] + 0x00000004u;
|
|
/* 028EE5B4 */ rbrew_write32(cpu->mem, _t0, cpu->r[6]);
|
|
/* 028EE5B8 */ cpu->r[10] = cpu->r[10] + 0x0000724Cu;
|
|
/* 028EE5BC */ _t1 = cpu->r[11] + 0x00000000u;
|
|
/* 028EE5BC */ rbrew_write32(cpu->mem, _t1, cpu->r[7]);
|
|
/* 028EE5C0 */ cpu->r[11] = 0x101F0000u;
|
|
/* 028EE5C4 */ cpu->r[9] = 0x10140000u;
|
|
/* 028EE5C8 */ _t2 = cpu->r[10] + 0x00000004u;
|
|
/* 028EE5C8 */ rbrew_write32(cpu->mem, _t2, cpu->r[6]);
|
|
/* 028EE5CC */ cpu->r[11] = cpu->r[11] + 0x00007244u;
|
|
/* 028EE5D0 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028EE5D4 */ cpu->r[9] = cpu->r[9] + 0xFFFFC584u;
|
|
/* 028EE5D8 */ _t3 = cpu->r[11] + 0x00000004u;
|
|
/* 028EE5D8 */ rbrew_write32(cpu->mem, _t3, cpu->r[6]);
|
|
/* 028EE5DC */ cpu->r[12] = cpu->r[12] + 0x0000723Cu;
|
|
/* 028EE5E0 */ _t4 = cpu->r[11] + 0x00000000u;
|
|
/* 028EE5E0 */ rbrew_write32(cpu->mem, _t4, cpu->r[9]);
|
|
/* 028EE5E4 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EE5E8 */ cpu->r[8] = 0x10140000u;
|
|
/* 028EE5EC */ _t5 = cpu->r[12] + 0x00000004u;
|
|
/* 028EE5EC */ rbrew_write32(cpu->mem, _t5, cpu->r[6]);
|
|
/* 028EE5F0 */ cpu->r[11] = cpu->r[11] + 0xFFFFC590u;
|
|
/* 028EE5F4 */ cpu->r[8] = cpu->r[8] + 0xFFFFC57Cu;
|
|
/* 028EE5F8 */ _t6 = cpu->r[10] + 0x00000000u;
|
|
/* 028EE5F8 */ rbrew_write32(cpu->mem, _t6, cpu->r[11]);
|
|
/* 028EE5FC */ cpu->r[9] = 0x101F0000u;
|
|
/* 028EE600 */ _t7 = cpu->r[12] + 0x00000000u;
|
|
/* 028EE600 */ rbrew_write32(cpu->mem, _t7, cpu->r[8]);
|
|
/* 028EE604 */ cpu->r[9] = cpu->r[9] + 0x00007254u;
|
|
/* 028EE608 */ cpu->r[8] = 0x101F0000u;
|
|
/* 028EE60C */ cpu->r[0] = 0x10140000u;
|
|
/* 028EE610 */ _t8 = cpu->r[9] + 0x00000004u;
|
|
/* 028EE610 */ rbrew_write32(cpu->mem, _t8, cpu->r[6]);
|
|
/* 028EE614 */ cpu->r[8] = cpu->r[8] + 0x0000725Cu;
|
|
/* 028EE618 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE61C */ cpu->r[0] = cpu->r[0] + 0xFFFFC5B0u;
|
|
/* 028EE620 */ _t9 = cpu->r[8] + 0x00000004u;
|
|
/* 028EE620 */ rbrew_write32(cpu->mem, _t9, cpu->r[6]);
|
|
/* 028EE624 */ cpu->r[12] = cpu->r[12] + 0xFFFFC5A0u;
|
|
/* 028EE628 */ cpu->r[7] = 0x101F0000u;
|
|
/* 028EE62C */ _t10 = cpu->r[8] + 0x00000000u;
|
|
/* 028EE62C */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028EE630 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EE634 */ cpu->r[7] = cpu->r[7] + 0x00007264u;
|
|
/* 028EE638 */ _t11 = cpu->r[9] + 0x00000000u;
|
|
/* 028EE638 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
/* 028EE63C */ cpu->r[0] = cpu->r[0] + 0xFFFFC5BCu;
|
|
/* 028EE640 */ _t12 = cpu->r[7] + 0x00000004u;
|
|
/* 028EE640 */ rbrew_write32(cpu->mem, _t12, cpu->r[6]);
|
|
/* 028EE644 */ _t13 = cpu->r[7] + 0x00000000u;
|
|
/* 028EE644 */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
/* 028EE648 */ return;
|
|
}
|
|
|
|
// fn_028EE64C @ 0x28ee64c
|
|
void Gambit_fn_028EE64C(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_028EE64C: ; // 0x28ee64c
|
|
/* 028EE64C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EE650 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE650 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EE650 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EE650 */ goto L_028EE654;
|
|
L_028EE654: ; // 0x28ee654
|
|
/* 028EE654 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EE654 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EE658 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE658 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EE658 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EE658 */ goto L_028EE65C;
|
|
L_028EE65C: ; // 0x28ee65c
|
|
/* 028EE65C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028EE660 @ 0x28ee660
|
|
void Gambit_fn_028EE660(CPUState* cpu) {
|
|
L_028EE660: ; // 0x28ee660
|
|
/* 028EE660 */ return;
|
|
}
|
|
|
|
// fn_028EE664 @ 0x28ee664
|
|
void Gambit_fn_028EE664(CPUState* 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_028E8604: ; // 0x28e8604
|
|
/* 028E8604 */ cpu->r[0] = cpu->lr;
|
|
/* 028E8608 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028E8608 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028E8608 */ cpu->r[1] = _t0;
|
|
/* 028E860C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028E860C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028E8610 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8610 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028E8614 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8614 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028E8618 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8618 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028E861C */ cpu->r[29] = cpu->r[6];
|
|
/* 028E8620 */ cpu->r[31] = cpu->r[5];
|
|
/* 028E8624 */ cpu->r[5] = cpu->r[29];
|
|
/* 028E8628 */ cpu->r[30] = cpu->r[4];
|
|
/* 028E862C */ Gambit_fn_028E8584(cpu);
|
|
/* 028E8630 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028E8634 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028E8634 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028E8634 */ if (_t6) goto L_028E8638; else goto L_028E8674;
|
|
L_028E8638: ; // 0x28e8638
|
|
/* 028E8638 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028E863C */ _t7 = cpu->r[12] + 0x00006338u;
|
|
/* 028E863C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028E863C */ cpu->r[12] = _t7;
|
|
/* 028E8640 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028E8640 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[0]);
|
|
/* 028E8644 */ _t9 = cpu->r[12] + 0x00000004u;
|
|
/* 028E8644 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028E8648 */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 028E8648 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028E864C */ _t11 = cpu->r[12] + 0x00000008u;
|
|
/* 028E864C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028E8650 */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 028E8650 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 028E8654 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8654 */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028E8658 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8658 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028E865C */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 028E865C */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028E8660 */ cpu->lr = cpu->r[0];
|
|
/* 028E8664 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8664 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028E8668 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028E866C */ cpu->r[3] = 0x00000000u;
|
|
/* 028E8670 */ return;
|
|
L_028E8674: ; // 0x28e8674
|
|
/* 028E8674 */ cpu->r[5] = cpu->r[29];
|
|
/* 028E8678 */ cpu->r[4] = cpu->r[31];
|
|
/* 028E867C */ cpu->r[3] = cpu->r[30];
|
|
/* 028E8680 */ Gambit_fn_028D60D8(cpu);
|
|
/* 028E8684 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8684 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028E8688 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8688 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028E868C */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028E868C */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028E8690 */ cpu->lr = cpu->r[0];
|
|
/* 028E8694 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8694 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028E8698 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028E869C */ cpu->r[3] = 0x00000001u;
|
|
/* 028E86A0 */ return;
|
|
L_028EE664: ; // 0x28ee664
|
|
/* 028EE664 */ cpu->r[3] = cpu->r[3] + 0xFFFFFFF4u;
|
|
/* 028EE668 */ goto L_028E8604;
|
|
}
|
|
|
|
// fn_028EE66C @ 0x28ee66c
|
|
void Gambit_fn_028EE66C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028EE66C: ; // 0x28ee66c
|
|
/* 028EE66C */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE670 */ _t0 = cpu->r[12] + 0xFFFFC6ACu;
|
|
/* 028EE670 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028EE674 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028EE678 */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EE678 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028EE678 */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EE678 */ goto L_028EE67C;
|
|
L_028EE67C: ; // 0x28ee67c
|
|
/* 028EE67C */ _t3 = cpu->r[3] + 0x0000009Cu;
|
|
/* 028EE67C */ rbrew_write_f32(cpu->mem, _t3, cpu->f[1]);
|
|
/* 028EE680 */ return;
|
|
}
|
|
|
|
// fn_028EE684 @ 0x28ee684
|
|
void Gambit_fn_028EE684(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56;
|
|
double _ft36, _ft37;
|
|
|
|
L_028EE684: ; // 0x28ee684
|
|
/* 028EE684 */ cpu->r[0] = cpu->lr;
|
|
/* 028EE688 */ _t0 = cpu->r[1] + 0xFFFFFF70u;
|
|
/* 028EE688 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE688 */ cpu->r[1] = _t0;
|
|
/* 028EE68C */ _t1 = cpu->r[1] + 0x00000088u;
|
|
/* 028EE68C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EE690 */ _t2 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028EE690 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EE694 */ cpu->r[31] = cpu->r[5];
|
|
/* 028EE694 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EE698 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EE69C */ _t3 = cpu->r[1] + 0x00000084u;
|
|
/* 028EE69C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028EE6A0 */ _t4 = cpu->r[1] + 0x00000094u;
|
|
/* 028EE6A0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028EE6A4 */ cpu->r[29] = cpu->r[3];
|
|
/* 028EE6A8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE6A8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028EE6A8 */ if (_t6) goto L_028EE820; else goto L_028EE6AC;
|
|
L_028EE6AC: ; // 0x28ee6ac
|
|
/* 028EE6AC */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028EE6B0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028EE6B4 */ Gambit_fn_028E89EC(cpu);
|
|
/* 028EE6B8 */ /* nop */
|
|
/* 028EE6BC */ /* nop */
|
|
/* 028EE6C0 */ _t7 = cpu->r[30] + 0x00000008u;
|
|
/* 028EE6C0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028EE6C4 */ /* nop */
|
|
/* 028EE6C8 */ _t8 = cpu->r[1] + 0x00000028u;
|
|
/* 028EE6C8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EE6CC */ /* nop */
|
|
/* 028EE6D0 */ _t9 = cpu->r[1] + 0x00000038u;
|
|
/* 028EE6D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028EE6D4 */ cpu->f[12] = cpu->f[13] - cpu->f[0];
|
|
/* 028EE6D8 */ _t10 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028EE6D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EE6DC */ _t11 = cpu->r[1] + 0x00000044u;
|
|
/* 028EE6DC */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028EE6E0 */ _t12 = cpu->r[1] + 0x00000040u;
|
|
/* 028EE6E0 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[12]);
|
|
/* 028EE6E4 */ _t13 = cpu->r[1] + 0x00000040u;
|
|
/* 028EE6E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EE6E8 */ cpu->r[4] = cpu->r[1] + 0x00000050u;
|
|
/* 028EE6EC */ _t14 = cpu->r[1] + 0x00000048u;
|
|
/* 028EE6EC */ rbrew_write32(cpu->mem, _t14, cpu->r[12]);
|
|
/* 028EE6F0 */ cpu->r[3] = cpu->r[29] + 0x00000044u;
|
|
/* 028EE6F4 */ _t15 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028EE6F4 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028EE6F8 */ Gambit_fn_02C69628(cpu);
|
|
/* 028EE6FC */ cpu->r[3] = cpu->r[1] + 0x00000050u;
|
|
/* 028EE700 */ cpu->r[4] = cpu->r[1] + 0x00000044u;
|
|
/* 028EE704 */ cpu->r[5] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EE708 */ Gambit_fn_02C69468(cpu);
|
|
/* 028EE70C */ _t16 = cpu->r[1] + 0x00000034u;
|
|
/* 028EE70C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028EE710 */ _t17 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EE710 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028EE714 */ cpu->f[10] = cpu->f[11] * cpu->f[11];
|
|
/* 028EE718 */ cpu->r[8] = 0x10140000u;
|
|
/* 028EE71C */ cpu->f[8] = fma(cpu->f[12], cpu->f[12], cpu->f[10]);
|
|
/* 028EE720 */ _t18 = cpu->r[8] + 0xFFFFC6ACu;
|
|
/* 028EE720 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028EE724 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[8], cpu->f[13]);
|
|
/* 028EE728 */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EE728 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028EE728 */ if (_t20) goto L_028EE798; else goto L_028EE72C;
|
|
L_028EE72C: ; // 0x28ee72c
|
|
/* 028EE72C */ cpu->f[9] = cpu->f[13] * cpu->f[8];
|
|
/* 028EE730 */ _t21 = cpu->r[29] + 0x0000009Cu;
|
|
/* 028EE730 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028EE734 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[9], cpu->f[8]);
|
|
/* 028EE738 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE738 */ rbrew_write_f32(cpu->mem, _t22, cpu->f[13]);
|
|
/* 028EE73C */ _t23 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EE73C */ _t24 = _t23 & 0x00000001u;
|
|
/* 028EE73C */ if (_t24) goto L_028EE740; else goto L_028EE7D8;
|
|
L_028EE740: ; // 0x28ee740
|
|
/* 028EE740 */ cpu->f[10] = cpu->f[8] / cpu->f[9];
|
|
/* 028EE744 */ cpu->f[0] = cpu->f[12] * cpu->f[10];
|
|
/* 028EE748 */ cpu->f[11] = cpu->f[11] * cpu->f[10];
|
|
/* 028EE74C */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE74C */ rbrew_write_f32(cpu->mem, _t25, cpu->f[0]);
|
|
/* 028EE750 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028EE754 */ cpu->r[3] = cpu->r[29] + 0x00000044u;
|
|
/* 028EE758 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE75C */ _t26 = cpu->r[1] + 0x00000010u;
|
|
/* 028EE75C */ rbrew_write_f32(cpu->mem, _t26, cpu->f[11]);
|
|
/* 028EE760 */ Gambit_fn_02C69468(cpu);
|
|
/* 028EE764 */ /* nop */
|
|
/* 028EE768 */ /* nop */
|
|
/* 028EE76C */ _t27 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EE76C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 028EE770 */ /* nop */
|
|
/* 028EE774 */ _t28 = cpu->r[1] + 0x00000028u;
|
|
/* 028EE774 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 028EE778 */ /* nop */
|
|
/* 028EE77C */ _t29 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE77C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t29);
|
|
/* 028EE780 */ _t30 = cpu->r[1] + 0x00000018u;
|
|
/* 028EE780 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 028EE784 */ cpu->f[13] = cpu->f[12] + cpu->f[13];
|
|
/* 028EE788 */ _t31 = cpu->r[31] + 0x00000000u;
|
|
/* 028EE788 */ rbrew_write_f32(cpu->mem, _t31, cpu->f[0]);
|
|
/* 028EE78C */ _t32 = cpu->r[31] + 0x00000004u;
|
|
/* 028EE78C */ rbrew_write_f32(cpu->mem, _t32, cpu->f[8]);
|
|
/* 028EE790 */ _t33 = cpu->r[31] + 0x00000008u;
|
|
/* 028EE790 */ rbrew_write_f32(cpu->mem, _t33, cpu->f[13]);
|
|
/* 028EE794 */ goto L_028EE820;
|
|
L_028EE798: ; // 0x28ee798
|
|
/* 028EE798 */ cpu->r[7] = 0x10140000u;
|
|
/* 028EE79C */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE7A0 */ _t34 = cpu->r[7] + 0xFFFFC6B0u;
|
|
/* 028EE7A0 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t34);
|
|
/* 028EE7A4 */ _t35 = cpu->r[12] + 0xFFFFC6B4u;
|
|
/* 028EE7A4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 028EE7A8 */ _ft36 = sqrt(cpu->f[8]);
|
|
/* 028EE7A8 */ _ft37 = (double)(int32_t)0x00000001u;
|
|
/* 028EE7A8 */ cpu->f[0] = _ft37 / _ft36;
|
|
/* 028EE7AC */ cpu->f[9] = cpu->f[0] * cpu->f[0];
|
|
/* 028EE7B0 */ cpu->f[11] = cpu->f[0] * cpu->f[10];
|
|
/* 028EE7B4 */ cpu->f[9] = -fma(cpu->f[9], cpu->f[8], -(cpu->f[12]));
|
|
/* 028EE7B8 */ cpu->f[0] = cpu->f[9] * cpu->f[11];
|
|
/* 028EE7BC */ cpu->f[9] = cpu->f[0] * cpu->f[8];
|
|
/* 028EE7C0 */ _t38 = cpu->r[29] + 0x0000009Cu;
|
|
/* 028EE7C0 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 028EE7C4 */ _t39 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EE7C4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t39);
|
|
/* 028EE7C8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[9], cpu->f[8]);
|
|
/* 028EE7CC */ _t40 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE7CC */ rbrew_write_f32(cpu->mem, _t40, cpu->f[13]);
|
|
/* 028EE7D0 */ _t41 = cpu->r[1] + 0x00000034u;
|
|
/* 028EE7D0 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 028EE7D4 */ _t42 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EE7D4 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028EE7D4 */ if (_t43) goto L_028EE740; else goto L_028EE7D8;
|
|
L_028EE7D8: ; // 0x28ee7d8
|
|
/* 028EE7D8 */ _t44 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE7D8 */ rbrew_write_f32(cpu->mem, _t44, cpu->f[12]);
|
|
/* 028EE7DC */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028EE7E0 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE7E4 */ _t45 = cpu->r[1] + 0x00000010u;
|
|
/* 028EE7E4 */ rbrew_write_f32(cpu->mem, _t45, cpu->f[11]);
|
|
/* 028EE7E8 */ cpu->r[3] = cpu->r[29] + 0x00000044u;
|
|
/* 028EE7EC */ Gambit_fn_02C69468(cpu);
|
|
/* 028EE7F0 */ /* nop */
|
|
/* 028EE7F4 */ /* nop */
|
|
/* 028EE7F8 */ _t46 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EE7F8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t46);
|
|
/* 028EE7FC */ /* nop */
|
|
/* 028EE800 */ /* nop */
|
|
/* 028EE804 */ _t47 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE804 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 028EE808 */ _t48 = cpu->r[1] + 0x00000028u;
|
|
/* 028EE808 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t48);
|
|
/* 028EE80C */ _t49 = cpu->r[1] + 0x00000018u;
|
|
/* 028EE80C */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t49);
|
|
/* 028EE810 */ cpu->f[13] = cpu->f[12] + cpu->f[13];
|
|
/* 028EE814 */ _t50 = cpu->r[31] + 0x00000000u;
|
|
/* 028EE814 */ rbrew_write_f32(cpu->mem, _t50, cpu->f[0]);
|
|
/* 028EE818 */ _t51 = cpu->r[31] + 0x00000004u;
|
|
/* 028EE818 */ rbrew_write_f32(cpu->mem, _t51, cpu->f[8]);
|
|
/* 028EE81C */ _t52 = cpu->r[31] + 0x00000008u;
|
|
/* 028EE81C */ rbrew_write_f32(cpu->mem, _t52, cpu->f[13]);
|
|
L_028EE820: ; // 0x28ee820
|
|
/* 028EE820 */ _t53 = cpu->r[1] + 0x00000084u;
|
|
/* 028EE820 */ cpu->r[29] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028EE824 */ _t54 = cpu->r[1] + 0x00000094u;
|
|
/* 028EE824 */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028EE828 */ _t55 = cpu->r[1] + 0x00000088u;
|
|
/* 028EE828 */ cpu->r[30] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028EE82C */ cpu->lr = cpu->r[0];
|
|
/* 028EE830 */ _t56 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028EE830 */ cpu->r[31] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028EE834 */ cpu->r[1] = cpu->r[1] + 0x00000090u;
|
|
/* 028EE838 */ return;
|
|
}
|
|
|
|
// fn_028EE688 @ 0x28ee688
|
|
void Gambit_fn_028EE688(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56;
|
|
double _ft36, _ft37;
|
|
|
|
L_028EE688: ; // 0x28ee688
|
|
/* 028EE688 */ _t0 = cpu->r[1] + 0xFFFFFF70u;
|
|
/* 028EE688 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE688 */ cpu->r[1] = _t0;
|
|
/* 028EE68C */ _t1 = cpu->r[1] + 0x00000088u;
|
|
/* 028EE68C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EE690 */ _t2 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028EE690 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EE694 */ cpu->r[31] = cpu->r[5];
|
|
/* 028EE694 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EE698 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EE69C */ _t3 = cpu->r[1] + 0x00000084u;
|
|
/* 028EE69C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028EE6A0 */ _t4 = cpu->r[1] + 0x00000094u;
|
|
/* 028EE6A0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028EE6A4 */ cpu->r[29] = cpu->r[3];
|
|
/* 028EE6A8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE6A8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028EE6A8 */ if (_t6) goto L_028EE820; else goto L_028EE6AC;
|
|
L_028EE6AC: ; // 0x28ee6ac
|
|
/* 028EE6AC */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028EE6B0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028EE6B4 */ Gambit_fn_028E89EC(cpu);
|
|
/* 028EE6B8 */ /* nop */
|
|
/* 028EE6BC */ /* nop */
|
|
/* 028EE6C0 */ _t7 = cpu->r[30] + 0x00000008u;
|
|
/* 028EE6C0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028EE6C4 */ /* nop */
|
|
/* 028EE6C8 */ _t8 = cpu->r[1] + 0x00000028u;
|
|
/* 028EE6C8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EE6CC */ /* nop */
|
|
/* 028EE6D0 */ _t9 = cpu->r[1] + 0x00000038u;
|
|
/* 028EE6D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028EE6D4 */ cpu->f[12] = cpu->f[13] - cpu->f[0];
|
|
/* 028EE6D8 */ _t10 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028EE6D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EE6DC */ _t11 = cpu->r[1] + 0x00000044u;
|
|
/* 028EE6DC */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028EE6E0 */ _t12 = cpu->r[1] + 0x00000040u;
|
|
/* 028EE6E0 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[12]);
|
|
/* 028EE6E4 */ _t13 = cpu->r[1] + 0x00000040u;
|
|
/* 028EE6E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EE6E8 */ cpu->r[4] = cpu->r[1] + 0x00000050u;
|
|
/* 028EE6EC */ _t14 = cpu->r[1] + 0x00000048u;
|
|
/* 028EE6EC */ rbrew_write32(cpu->mem, _t14, cpu->r[12]);
|
|
/* 028EE6F0 */ cpu->r[3] = cpu->r[29] + 0x00000044u;
|
|
/* 028EE6F4 */ _t15 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028EE6F4 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028EE6F8 */ Gambit_fn_02C69628(cpu);
|
|
/* 028EE6FC */ cpu->r[3] = cpu->r[1] + 0x00000050u;
|
|
/* 028EE700 */ cpu->r[4] = cpu->r[1] + 0x00000044u;
|
|
/* 028EE704 */ cpu->r[5] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EE708 */ Gambit_fn_02C69468(cpu);
|
|
/* 028EE70C */ _t16 = cpu->r[1] + 0x00000034u;
|
|
/* 028EE70C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028EE710 */ _t17 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EE710 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028EE714 */ cpu->f[10] = cpu->f[11] * cpu->f[11];
|
|
/* 028EE718 */ cpu->r[8] = 0x10140000u;
|
|
/* 028EE71C */ cpu->f[8] = fma(cpu->f[12], cpu->f[12], cpu->f[10]);
|
|
/* 028EE720 */ _t18 = cpu->r[8] + 0xFFFFC6ACu;
|
|
/* 028EE720 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028EE724 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[8], cpu->f[13]);
|
|
/* 028EE728 */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EE728 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028EE728 */ if (_t20) goto L_028EE798; else goto L_028EE72C;
|
|
L_028EE72C: ; // 0x28ee72c
|
|
/* 028EE72C */ cpu->f[9] = cpu->f[13] * cpu->f[8];
|
|
/* 028EE730 */ _t21 = cpu->r[29] + 0x0000009Cu;
|
|
/* 028EE730 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028EE734 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[9], cpu->f[8]);
|
|
/* 028EE738 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE738 */ rbrew_write_f32(cpu->mem, _t22, cpu->f[13]);
|
|
/* 028EE73C */ _t23 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EE73C */ _t24 = _t23 & 0x00000001u;
|
|
/* 028EE73C */ if (_t24) goto L_028EE740; else goto L_028EE7D8;
|
|
L_028EE740: ; // 0x28ee740
|
|
/* 028EE740 */ cpu->f[10] = cpu->f[8] / cpu->f[9];
|
|
/* 028EE744 */ cpu->f[0] = cpu->f[12] * cpu->f[10];
|
|
/* 028EE748 */ cpu->f[11] = cpu->f[11] * cpu->f[10];
|
|
/* 028EE74C */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE74C */ rbrew_write_f32(cpu->mem, _t25, cpu->f[0]);
|
|
/* 028EE750 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028EE754 */ cpu->r[3] = cpu->r[29] + 0x00000044u;
|
|
/* 028EE758 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE75C */ _t26 = cpu->r[1] + 0x00000010u;
|
|
/* 028EE75C */ rbrew_write_f32(cpu->mem, _t26, cpu->f[11]);
|
|
/* 028EE760 */ Gambit_fn_02C69468(cpu);
|
|
/* 028EE764 */ /* nop */
|
|
/* 028EE768 */ /* nop */
|
|
/* 028EE76C */ _t27 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EE76C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 028EE770 */ /* nop */
|
|
/* 028EE774 */ _t28 = cpu->r[1] + 0x00000028u;
|
|
/* 028EE774 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 028EE778 */ /* nop */
|
|
/* 028EE77C */ _t29 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE77C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t29);
|
|
/* 028EE780 */ _t30 = cpu->r[1] + 0x00000018u;
|
|
/* 028EE780 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 028EE784 */ cpu->f[13] = cpu->f[12] + cpu->f[13];
|
|
/* 028EE788 */ _t31 = cpu->r[31] + 0x00000000u;
|
|
/* 028EE788 */ rbrew_write_f32(cpu->mem, _t31, cpu->f[0]);
|
|
/* 028EE78C */ _t32 = cpu->r[31] + 0x00000004u;
|
|
/* 028EE78C */ rbrew_write_f32(cpu->mem, _t32, cpu->f[8]);
|
|
/* 028EE790 */ _t33 = cpu->r[31] + 0x00000008u;
|
|
/* 028EE790 */ rbrew_write_f32(cpu->mem, _t33, cpu->f[13]);
|
|
/* 028EE794 */ goto L_028EE820;
|
|
L_028EE798: ; // 0x28ee798
|
|
/* 028EE798 */ cpu->r[7] = 0x10140000u;
|
|
/* 028EE79C */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE7A0 */ _t34 = cpu->r[7] + 0xFFFFC6B0u;
|
|
/* 028EE7A0 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t34);
|
|
/* 028EE7A4 */ _t35 = cpu->r[12] + 0xFFFFC6B4u;
|
|
/* 028EE7A4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 028EE7A8 */ _ft36 = sqrt(cpu->f[8]);
|
|
/* 028EE7A8 */ _ft37 = (double)(int32_t)0x00000001u;
|
|
/* 028EE7A8 */ cpu->f[0] = _ft37 / _ft36;
|
|
/* 028EE7AC */ cpu->f[9] = cpu->f[0] * cpu->f[0];
|
|
/* 028EE7B0 */ cpu->f[11] = cpu->f[0] * cpu->f[10];
|
|
/* 028EE7B4 */ cpu->f[9] = -fma(cpu->f[9], cpu->f[8], -(cpu->f[12]));
|
|
/* 028EE7B8 */ cpu->f[0] = cpu->f[9] * cpu->f[11];
|
|
/* 028EE7BC */ cpu->f[9] = cpu->f[0] * cpu->f[8];
|
|
/* 028EE7C0 */ _t38 = cpu->r[29] + 0x0000009Cu;
|
|
/* 028EE7C0 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 028EE7C4 */ _t39 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EE7C4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t39);
|
|
/* 028EE7C8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[9], cpu->f[8]);
|
|
/* 028EE7CC */ _t40 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE7CC */ rbrew_write_f32(cpu->mem, _t40, cpu->f[13]);
|
|
/* 028EE7D0 */ _t41 = cpu->r[1] + 0x00000034u;
|
|
/* 028EE7D0 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 028EE7D4 */ _t42 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EE7D4 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028EE7D4 */ if (_t43) goto L_028EE740; else goto L_028EE7D8;
|
|
L_028EE7D8: ; // 0x28ee7d8
|
|
/* 028EE7D8 */ _t44 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE7D8 */ rbrew_write_f32(cpu->mem, _t44, cpu->f[12]);
|
|
/* 028EE7DC */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028EE7E0 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028EE7E4 */ _t45 = cpu->r[1] + 0x00000010u;
|
|
/* 028EE7E4 */ rbrew_write_f32(cpu->mem, _t45, cpu->f[11]);
|
|
/* 028EE7E8 */ cpu->r[3] = cpu->r[29] + 0x00000044u;
|
|
/* 028EE7EC */ Gambit_fn_02C69468(cpu);
|
|
/* 028EE7F0 */ /* nop */
|
|
/* 028EE7F4 */ /* nop */
|
|
/* 028EE7F8 */ _t46 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EE7F8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t46);
|
|
/* 028EE7FC */ /* nop */
|
|
/* 028EE800 */ /* nop */
|
|
/* 028EE804 */ _t47 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE804 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 028EE808 */ _t48 = cpu->r[1] + 0x00000028u;
|
|
/* 028EE808 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t48);
|
|
/* 028EE80C */ _t49 = cpu->r[1] + 0x00000018u;
|
|
/* 028EE80C */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t49);
|
|
/* 028EE810 */ cpu->f[13] = cpu->f[12] + cpu->f[13];
|
|
/* 028EE814 */ _t50 = cpu->r[31] + 0x00000000u;
|
|
/* 028EE814 */ rbrew_write_f32(cpu->mem, _t50, cpu->f[0]);
|
|
/* 028EE818 */ _t51 = cpu->r[31] + 0x00000004u;
|
|
/* 028EE818 */ rbrew_write_f32(cpu->mem, _t51, cpu->f[8]);
|
|
/* 028EE81C */ _t52 = cpu->r[31] + 0x00000008u;
|
|
/* 028EE81C */ rbrew_write_f32(cpu->mem, _t52, cpu->f[13]);
|
|
L_028EE820: ; // 0x28ee820
|
|
/* 028EE820 */ _t53 = cpu->r[1] + 0x00000084u;
|
|
/* 028EE820 */ cpu->r[29] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028EE824 */ _t54 = cpu->r[1] + 0x00000094u;
|
|
/* 028EE824 */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028EE828 */ _t55 = cpu->r[1] + 0x00000088u;
|
|
/* 028EE828 */ cpu->r[30] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028EE82C */ cpu->lr = cpu->r[0];
|
|
/* 028EE830 */ _t56 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028EE830 */ cpu->r[31] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028EE834 */ cpu->r[1] = cpu->r[1] + 0x00000090u;
|
|
/* 028EE838 */ return;
|
|
}
|
|
|
|
// fn_028EE83C @ 0x28ee83c
|
|
void Gambit_fn_028EE83C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028EE83C: ; // 0x28ee83c
|
|
/* 028EE83C */ cpu->r[0] = cpu->lr;
|
|
/* 028EE840 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EE840 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE840 */ cpu->r[1] = _t0;
|
|
/* 028EE844 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE844 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EE848 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE848 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EE84C */ cpu->r[31] = cpu->r[3];
|
|
/* 028EE84C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EE850 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EE854 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE854 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EE858 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE858 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EE858 */ if (_t5) goto L_028EE85C; else goto L_028EE86C;
|
|
L_028EE85C: ; // 0x28ee85c
|
|
/* 028EE85C */ cpu->r[3] = 0x000000A0u;
|
|
/* 028EE860 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EE864 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EE864 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EE868 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE868 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EE868 */ if (_t7) goto L_028EE8A8; else goto L_028EE86C;
|
|
L_028EE86C: ; // 0x28ee86c
|
|
/* 028EE86C */ cpu->r[3] = cpu->r[31];
|
|
/* 028EE870 */ cpu->r[4] = cpu->r[30];
|
|
/* 028EE874 */ Gambit_fn_028E87F0(cpu);
|
|
/* 028EE878 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EE87C */ cpu->r[11] = 0x10140000u;
|
|
/* 028EE880 */ cpu->r[0] = cpu->r[0] + 0xFFFFC6F4u;
|
|
/* 028EE884 */ _t8 = cpu->r[11] + 0xFFFFC6C8u;
|
|
/* 028EE884 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EE888 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE88C */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028EE88C */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028EE890 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EE894 */ cpu->r[12] = cpu->r[12] + 0xFFFFC6CCu;
|
|
/* 028EE898 */ _t10 = cpu->r[31] + 0x0000009Cu;
|
|
/* 028EE898 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028EE89C */ cpu->r[0] = cpu->r[0] + 0xFFFFC6E4u;
|
|
/* 028EE8A0 */ _t11 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EE8A0 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
/* 028EE8A4 */ _t12 = cpu->r[31] + 0x00000020u;
|
|
/* 028EE8A4 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_028EE8A8: ; // 0x28ee8a8
|
|
/* 028EE8A8 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE8A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EE8AC */ cpu->r[3] = cpu->r[31];
|
|
/* 028EE8B0 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE8B0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028EE8B4 */ cpu->lr = cpu->r[0];
|
|
/* 028EE8B8 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE8B8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EE8BC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EE8C0 */ return;
|
|
}
|
|
|
|
// fn_028EE840 @ 0x28ee840
|
|
void Gambit_fn_028EE840(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028EE840: ; // 0x28ee840
|
|
/* 028EE840 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EE840 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE840 */ cpu->r[1] = _t0;
|
|
/* 028EE844 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE844 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EE848 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE848 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EE84C */ cpu->r[31] = cpu->r[3];
|
|
/* 028EE84C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EE850 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EE854 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE854 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EE858 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE858 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EE858 */ if (_t5) goto L_028EE85C; else goto L_028EE86C;
|
|
L_028EE85C: ; // 0x28ee85c
|
|
/* 028EE85C */ cpu->r[3] = 0x000000A0u;
|
|
/* 028EE860 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EE864 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EE864 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EE868 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE868 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EE868 */ if (_t7) goto L_028EE8A8; else goto L_028EE86C;
|
|
L_028EE86C: ; // 0x28ee86c
|
|
/* 028EE86C */ cpu->r[3] = cpu->r[31];
|
|
/* 028EE870 */ cpu->r[4] = cpu->r[30];
|
|
/* 028EE874 */ Gambit_fn_028E87F0(cpu);
|
|
/* 028EE878 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EE87C */ cpu->r[11] = 0x10140000u;
|
|
/* 028EE880 */ cpu->r[0] = cpu->r[0] + 0xFFFFC6F4u;
|
|
/* 028EE884 */ _t8 = cpu->r[11] + 0xFFFFC6C8u;
|
|
/* 028EE884 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EE888 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE88C */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028EE88C */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028EE890 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EE894 */ cpu->r[12] = cpu->r[12] + 0xFFFFC6CCu;
|
|
/* 028EE898 */ _t10 = cpu->r[31] + 0x0000009Cu;
|
|
/* 028EE898 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028EE89C */ cpu->r[0] = cpu->r[0] + 0xFFFFC6E4u;
|
|
/* 028EE8A0 */ _t11 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EE8A0 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
/* 028EE8A4 */ _t12 = cpu->r[31] + 0x00000020u;
|
|
/* 028EE8A4 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_028EE8A8: ; // 0x28ee8a8
|
|
/* 028EE8A8 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE8A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EE8AC */ cpu->r[3] = cpu->r[31];
|
|
/* 028EE8B0 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE8B0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028EE8B4 */ cpu->lr = cpu->r[0];
|
|
/* 028EE8B8 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE8B8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EE8BC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EE8C0 */ return;
|
|
}
|
|
|
|
// fn_028EE8C4 @ 0x28ee8c4
|
|
void Gambit_fn_028EE8C4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028EE8C4: ; // 0x28ee8c4
|
|
/* 028EE8C4 */ cpu->r[0] = cpu->lr;
|
|
/* 028EE8C8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EE8C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE8C8 */ cpu->r[1] = _t0;
|
|
/* 028EE8CC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE8CC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EE8D0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE8D0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EE8D4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028EE8D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EE8D8 */ cpu->r[31] = cpu->r[4];
|
|
/* 028EE8DC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE8DC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EE8E0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE8E0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EE8E0 */ if (_t5) goto L_028EE918; else goto L_028EE8E4;
|
|
L_028EE8E4: ; // 0x28ee8e4
|
|
/* 028EE8E4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE8E8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EE8EC */ cpu->r[12] = cpu->r[12] + 0xFFFFC6CCu;
|
|
/* 028EE8F0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EE8F4 */ _t6 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028EE8F4 */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028EE8F8 */ cpu->r[0] = cpu->r[0] + 0xFFFFC6E4u;
|
|
/* 028EE8FC */ cpu->r[4] = 0x00000000u;
|
|
/* 028EE900 */ _t7 = cpu->r[30] + 0x00000020u;
|
|
/* 028EE900 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028EE904 */ Gambit_fn_028E8510(cpu);
|
|
/* 028EE908 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EE908 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EE90C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE90C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EE90C */ if (_t9) goto L_028EE918; else goto L_028EE910;
|
|
L_028EE910: ; // 0x28ee910
|
|
/* 028EE910 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EE914 */ Gambit_fn_02801BB0(cpu);
|
|
L_028EE918: ; // 0x28ee918
|
|
/* 028EE918 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE918 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EE91C */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE91C */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EE920 */ cpu->lr = cpu->r[0];
|
|
/* 028EE924 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE924 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EE928 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EE92C */ return;
|
|
}
|
|
|
|
// fn_028EE8C8 @ 0x28ee8c8
|
|
void Gambit_fn_028EE8C8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028EE8C8: ; // 0x28ee8c8
|
|
/* 028EE8C8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EE8C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE8C8 */ cpu->r[1] = _t0;
|
|
/* 028EE8CC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE8CC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EE8D0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE8D0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EE8D4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028EE8D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EE8D8 */ cpu->r[31] = cpu->r[4];
|
|
/* 028EE8DC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE8DC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EE8E0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE8E0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EE8E0 */ if (_t5) goto L_028EE918; else goto L_028EE8E4;
|
|
L_028EE8E4: ; // 0x28ee8e4
|
|
/* 028EE8E4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE8E8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EE8EC */ cpu->r[12] = cpu->r[12] + 0xFFFFC6CCu;
|
|
/* 028EE8F0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EE8F4 */ _t6 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028EE8F4 */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028EE8F8 */ cpu->r[0] = cpu->r[0] + 0xFFFFC6E4u;
|
|
/* 028EE8FC */ cpu->r[4] = 0x00000000u;
|
|
/* 028EE900 */ _t7 = cpu->r[30] + 0x00000020u;
|
|
/* 028EE900 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028EE904 */ Gambit_fn_028E8510(cpu);
|
|
/* 028EE908 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EE908 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EE90C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE90C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EE90C */ if (_t9) goto L_028EE918; else goto L_028EE910;
|
|
L_028EE910: ; // 0x28ee910
|
|
/* 028EE910 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EE914 */ Gambit_fn_02801BB0(cpu);
|
|
L_028EE918: ; // 0x28ee918
|
|
/* 028EE918 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE918 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EE91C */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE91C */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EE920 */ cpu->lr = cpu->r[0];
|
|
/* 028EE924 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE924 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EE928 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EE92C */ return;
|
|
}
|
|
|
|
// fn_028EE930 @ 0x28ee930
|
|
void Gambit_fn_028EE930(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028EE930: ; // 0x28ee930
|
|
/* 028EE930 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028EE930 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028EE934 */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 028EE934 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028EE938 */ return;
|
|
}
|
|
|
|
// fn_028EE93C @ 0x28ee93c
|
|
void Gambit_fn_028EE93C(CPUState* cpu) {
|
|
L_028EE93C: ; // 0x28ee93c
|
|
/* 028EE93C */ return;
|
|
}
|
|
|
|
// fn_028EE940 @ 0x28ee940
|
|
void Gambit_fn_028EE940(CPUState* 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_028E8604: ; // 0x28e8604
|
|
/* 028E8604 */ cpu->r[0] = cpu->lr;
|
|
/* 028E8608 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028E8608 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028E8608 */ cpu->r[1] = _t0;
|
|
/* 028E860C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028E860C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028E8610 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8610 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028E8614 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8614 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028E8618 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8618 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028E861C */ cpu->r[29] = cpu->r[6];
|
|
/* 028E8620 */ cpu->r[31] = cpu->r[5];
|
|
/* 028E8624 */ cpu->r[5] = cpu->r[29];
|
|
/* 028E8628 */ cpu->r[30] = cpu->r[4];
|
|
/* 028E862C */ Gambit_fn_028E8584(cpu);
|
|
/* 028E8630 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028E8634 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028E8634 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028E8634 */ if (_t6) goto L_028E8638; else goto L_028E8674;
|
|
L_028E8638: ; // 0x28e8638
|
|
/* 028E8638 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028E863C */ _t7 = cpu->r[12] + 0x00006338u;
|
|
/* 028E863C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028E863C */ cpu->r[12] = _t7;
|
|
/* 028E8640 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028E8640 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[0]);
|
|
/* 028E8644 */ _t9 = cpu->r[12] + 0x00000004u;
|
|
/* 028E8644 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028E8648 */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 028E8648 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028E864C */ _t11 = cpu->r[12] + 0x00000008u;
|
|
/* 028E864C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028E8650 */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 028E8650 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 028E8654 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8654 */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028E8658 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8658 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028E865C */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 028E865C */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028E8660 */ cpu->lr = cpu->r[0];
|
|
/* 028E8664 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8664 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028E8668 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028E866C */ cpu->r[3] = 0x00000000u;
|
|
/* 028E8670 */ return;
|
|
L_028E8674: ; // 0x28e8674
|
|
/* 028E8674 */ cpu->r[5] = cpu->r[29];
|
|
/* 028E8678 */ cpu->r[4] = cpu->r[31];
|
|
/* 028E867C */ cpu->r[3] = cpu->r[30];
|
|
/* 028E8680 */ Gambit_fn_028D60D8(cpu);
|
|
/* 028E8684 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8684 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028E8688 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8688 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028E868C */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028E868C */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028E8690 */ cpu->lr = cpu->r[0];
|
|
/* 028E8694 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8694 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028E8698 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028E869C */ cpu->r[3] = 0x00000001u;
|
|
/* 028E86A0 */ return;
|
|
L_028EE940: ; // 0x28ee940
|
|
/* 028EE940 */ cpu->r[3] = cpu->r[3] + 0xFFFFFFF4u;
|
|
/* 028EE944 */ goto L_028E8604;
|
|
}
|
|
|
|
// fn_028EE948 @ 0x28ee948
|
|
void Gambit_fn_028EE948(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _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_028E89EC: ; // 0x28e89ec
|
|
/* 028E89EC */ cpu->r[0] = cpu->lr;
|
|
/* 028E89F0 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028E89F0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028E89F0 */ cpu->r[1] = _t0;
|
|
/* 028E89F4 */ _t1 = cpu->r[1] + 0x00000030u;
|
|
/* 028E89F4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028E89F8 */ _t2 = cpu->r[1] + 0x00000034u;
|
|
/* 028E89F8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028E89FC */ cpu->r[31] = cpu->r[4];
|
|
/* 028E89FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028E8A00 */ cpu->r[30] = cpu->r[3];
|
|
/* 028E8A04 */ _t3 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028E8A04 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028E8A08 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028E8A08 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028E8A08 */ if (_t5) goto L_028E8A6C; else goto L_028E8A0C;
|
|
L_028E8A0C: ; // 0x28e8a0c
|
|
/* 028E8A0C */ cpu->r[5] = cpu->r[1] + 0x00000020u;
|
|
/* 028E8A10 */ cpu->r[4] = cpu->r[30] + 0x00000038u;
|
|
/* 028E8A14 */ cpu->r[3] = cpu->r[30] + 0x00000044u;
|
|
/* 028E8A18 */ Gambit_fn_02C69468(cpu);
|
|
/* 028E8A1C */ /* nop */
|
|
/* 028E8A20 */ /* nop */
|
|
/* 028E8A24 */ /* nop */
|
|
/* 028E8A28 */ _t6 = cpu->r[30] + 0x00000034u;
|
|
/* 028E8A28 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028E8A2C */ /* nop */
|
|
/* 028E8A30 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8A30 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028E8A34 */ _t8 = cpu->r[1] + 0x00000028u;
|
|
/* 028E8A34 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028E8A38 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028E8A38 */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028E8A3C */ cpu->f[0] = cpu->f[12] + cpu->f[11];
|
|
/* 028E8A40 */ _t10 = cpu->r[1] + 0x00000018u;
|
|
/* 028E8A40 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028E8A44 */ _t11 = cpu->r[1] + 0x00000018u;
|
|
/* 028E8A44 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028E8A48 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8A48 */ rbrew_write32(cpu->mem, _t12, cpu->r[11]);
|
|
/* 028E8A4C */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8A4C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028E8A50 */ _t14 = cpu->r[1] + 0x00000010u;
|
|
/* 028E8A50 */ rbrew_write_f32(cpu->mem, _t14, cpu->f[0]);
|
|
/* 028E8A54 */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 028E8A54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028E8A58 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 028E8A58 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[13]);
|
|
/* 028E8A5C */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8A5C */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028E8A60 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8A60 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028E8A64 */ _t19 = cpu->r[31] + 0x00000004u;
|
|
/* 028E8A64 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[12]);
|
|
/* 028E8A68 */ _t20 = cpu->r[31] + 0x00000008u;
|
|
/* 028E8A68 */ rbrew_write_f32(cpu->mem, _t20, cpu->f[13]);
|
|
L_028E8A6C: ; // 0x28e8a6c
|
|
/* 028E8A6C */ _t21 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028E8A6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028E8A70 */ _t22 = cpu->r[1] + 0x00000030u;
|
|
/* 028E8A70 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028E8A74 */ cpu->lr = cpu->r[0];
|
|
/* 028E8A78 */ _t23 = cpu->r[1] + 0x00000034u;
|
|
/* 028E8A78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028E8A7C */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028E8A80 */ return;
|
|
L_028EE948: ; // 0x28ee948
|
|
/* 028EE948 */ cpu->r[4] = cpu->r[5];
|
|
/* 028EE948 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028EE94C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE94C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028EE94C */ if (_t25) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EE94C */ goto L_028EE950;
|
|
L_028EE950: ; // 0x28ee950
|
|
/* 028EE950 */ goto L_028E89EC;
|
|
}
|
|
|
|
// fn_028EE954 @ 0x28ee954
|
|
void Gambit_fn_028EE954(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028EE954: ; // 0x28ee954
|
|
/* 028EE954 */ cpu->r[0] = cpu->lr;
|
|
/* 028EE958 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EE958 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE958 */ cpu->r[1] = _t0;
|
|
/* 028EE95C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE95C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EE960 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE960 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EE964 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EE964 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EE968 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EE96C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE96C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EE970 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE970 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EE970 */ if (_t5) goto L_028EE974; else goto L_028EE984;
|
|
L_028EE974: ; // 0x28ee974
|
|
/* 028EE974 */ cpu->r[3] = 0x0000009Cu;
|
|
/* 028EE978 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EE97C */ cpu->r[31] = cpu->r[3];
|
|
/* 028EE97C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EE980 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE980 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EE980 */ if (_t7) goto L_028EE9B4; else goto L_028EE984;
|
|
L_028EE984: ; // 0x28ee984
|
|
/* 028EE984 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EE988 */ cpu->r[4] = cpu->r[30];
|
|
/* 028EE98C */ Gambit_fn_028E87F0(cpu);
|
|
/* 028EE990 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EE994 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EE998 */ cpu->r[0] = cpu->r[0] + 0xFFFFC774u;
|
|
/* 028EE99C */ cpu->r[11] = cpu->r[11] + 0xFFFFC7E4u;
|
|
/* 028EE9A0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE9A4 */ _t8 = cpu->r[31] + 0x00000008u;
|
|
/* 028EE9A4 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028EE9A8 */ cpu->r[12] = cpu->r[12] + 0xFFFFC7FCu;
|
|
/* 028EE9AC */ _t9 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EE9AC */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 028EE9B0 */ _t10 = cpu->r[31] + 0x00000020u;
|
|
/* 028EE9B0 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
L_028EE9B4: ; // 0x28ee9b4
|
|
/* 028EE9B4 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE9B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EE9B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EE9BC */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE9BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EE9C0 */ cpu->lr = cpu->r[0];
|
|
/* 028EE9C4 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE9C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EE9C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EE9CC */ return;
|
|
}
|
|
|
|
// fn_028EE958 @ 0x28ee958
|
|
void Gambit_fn_028EE958(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028EE958: ; // 0x28ee958
|
|
/* 028EE958 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EE958 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE958 */ cpu->r[1] = _t0;
|
|
/* 028EE95C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE95C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EE960 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE960 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EE964 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EE964 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EE968 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EE96C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE96C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EE970 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE970 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EE970 */ if (_t5) goto L_028EE974; else goto L_028EE984;
|
|
L_028EE974: ; // 0x28ee974
|
|
/* 028EE974 */ cpu->r[3] = 0x0000009Cu;
|
|
/* 028EE978 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EE97C */ cpu->r[31] = cpu->r[3];
|
|
/* 028EE97C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EE980 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE980 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EE980 */ if (_t7) goto L_028EE9B4; else goto L_028EE984;
|
|
L_028EE984: ; // 0x28ee984
|
|
/* 028EE984 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EE988 */ cpu->r[4] = cpu->r[30];
|
|
/* 028EE98C */ Gambit_fn_028E87F0(cpu);
|
|
/* 028EE990 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EE994 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EE998 */ cpu->r[0] = cpu->r[0] + 0xFFFFC774u;
|
|
/* 028EE99C */ cpu->r[11] = cpu->r[11] + 0xFFFFC7E4u;
|
|
/* 028EE9A0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE9A4 */ _t8 = cpu->r[31] + 0x00000008u;
|
|
/* 028EE9A4 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028EE9A8 */ cpu->r[12] = cpu->r[12] + 0xFFFFC7FCu;
|
|
/* 028EE9AC */ _t9 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EE9AC */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 028EE9B0 */ _t10 = cpu->r[31] + 0x00000020u;
|
|
/* 028EE9B0 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
L_028EE9B4: ; // 0x28ee9b4
|
|
/* 028EE9B4 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE9B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EE9B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EE9BC */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE9BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EE9C0 */ cpu->lr = cpu->r[0];
|
|
/* 028EE9C4 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE9C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EE9C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EE9CC */ return;
|
|
}
|
|
|
|
// fn_028EE9D0 @ 0x28ee9d0
|
|
void Gambit_fn_028EE9D0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028EE9D0: ; // 0x28ee9d0
|
|
/* 028EE9D0 */ cpu->r[0] = cpu->lr;
|
|
/* 028EE9D4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EE9D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE9D4 */ cpu->r[1] = _t0;
|
|
/* 028EE9D8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE9D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EE9DC */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE9DC */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EE9E0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028EE9E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EE9E4 */ cpu->r[31] = cpu->r[4];
|
|
/* 028EE9E8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE9E8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EE9EC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE9EC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EE9EC */ if (_t5) goto L_028EEA24; else goto L_028EE9F0;
|
|
L_028EE9F0: ; // 0x28ee9f0
|
|
/* 028EE9F0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE9F4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EE9F8 */ cpu->r[12] = cpu->r[12] + 0xFFFFC7E4u;
|
|
/* 028EE9FC */ cpu->r[0] = 0x10140000u;
|
|
/* 028EEA00 */ _t6 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028EEA00 */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028EEA04 */ cpu->r[0] = cpu->r[0] + 0xFFFFC7FCu;
|
|
/* 028EEA08 */ cpu->r[4] = 0x00000000u;
|
|
/* 028EEA0C */ _t7 = cpu->r[30] + 0x00000020u;
|
|
/* 028EEA0C */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028EEA10 */ Gambit_fn_028E8510(cpu);
|
|
/* 028EEA14 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EEA14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EEA18 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEA18 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EEA18 */ if (_t9) goto L_028EEA24; else goto L_028EEA1C;
|
|
L_028EEA1C: ; // 0x28eea1c
|
|
/* 028EEA1C */ cpu->r[3] = cpu->r[30];
|
|
/* 028EEA20 */ Gambit_fn_02801BB0(cpu);
|
|
L_028EEA24: ; // 0x28eea24
|
|
/* 028EEA24 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEA24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EEA28 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEA28 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EEA2C */ cpu->lr = cpu->r[0];
|
|
/* 028EEA30 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEA30 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EEA34 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EEA38 */ return;
|
|
}
|
|
|
|
// fn_028EE9D4 @ 0x28ee9d4
|
|
void Gambit_fn_028EE9D4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028EE9D4: ; // 0x28ee9d4
|
|
/* 028EE9D4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EE9D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EE9D4 */ cpu->r[1] = _t0;
|
|
/* 028EE9D8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EE9D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EE9DC */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EE9DC */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EE9E0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028EE9E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EE9E4 */ cpu->r[31] = cpu->r[4];
|
|
/* 028EE9E8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EE9E8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EE9EC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EE9EC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EE9EC */ if (_t5) goto L_028EEA24; else goto L_028EE9F0;
|
|
L_028EE9F0: ; // 0x28ee9f0
|
|
/* 028EE9F0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EE9F4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EE9F8 */ cpu->r[12] = cpu->r[12] + 0xFFFFC7E4u;
|
|
/* 028EE9FC */ cpu->r[0] = 0x10140000u;
|
|
/* 028EEA00 */ _t6 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028EEA00 */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028EEA04 */ cpu->r[0] = cpu->r[0] + 0xFFFFC7FCu;
|
|
/* 028EEA08 */ cpu->r[4] = 0x00000000u;
|
|
/* 028EEA0C */ _t7 = cpu->r[30] + 0x00000020u;
|
|
/* 028EEA0C */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028EEA10 */ Gambit_fn_028E8510(cpu);
|
|
/* 028EEA14 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EEA14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EEA18 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEA18 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EEA18 */ if (_t9) goto L_028EEA24; else goto L_028EEA1C;
|
|
L_028EEA1C: ; // 0x28eea1c
|
|
/* 028EEA1C */ cpu->r[3] = cpu->r[30];
|
|
/* 028EEA20 */ Gambit_fn_02801BB0(cpu);
|
|
L_028EEA24: ; // 0x28eea24
|
|
/* 028EEA24 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEA24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EEA28 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEA28 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EEA2C */ cpu->lr = cpu->r[0];
|
|
/* 028EEA30 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEA30 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EEA34 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EEA38 */ return;
|
|
}
|
|
|
|
// fn_028EEA3C @ 0x28eea3c
|
|
void Gambit_fn_028EEA3C(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028EEA3C: ; // 0x28eea3c
|
|
/* 028EEA3C */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028EEA3C */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028EEA40 */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 028EEA40 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028EEA44 */ return;
|
|
}
|
|
|
|
// fn_028EEA48 @ 0x28eea48
|
|
void Gambit_fn_028EEA48(CPUState* cpu) {
|
|
L_028EEA48: ; // 0x28eea48
|
|
/* 028EEA48 */ return;
|
|
}
|
|
|
|
// fn_028EEA4C @ 0x28eea4c
|
|
void Gambit_fn_028EEA4C(CPUState* cpu) {
|
|
L_028EEA4C: ; // 0x28eea4c
|
|
/* 028EEA4C */ return;
|
|
}
|
|
|
|
// fn_028EEA50 @ 0x28eea50
|
|
void Gambit_fn_028EEA50(CPUState* 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_028E8604: ; // 0x28e8604
|
|
/* 028E8604 */ cpu->r[0] = cpu->lr;
|
|
/* 028E8608 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028E8608 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028E8608 */ cpu->r[1] = _t0;
|
|
/* 028E860C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028E860C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028E8610 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8610 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028E8614 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8614 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028E8618 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8618 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028E861C */ cpu->r[29] = cpu->r[6];
|
|
/* 028E8620 */ cpu->r[31] = cpu->r[5];
|
|
/* 028E8624 */ cpu->r[5] = cpu->r[29];
|
|
/* 028E8628 */ cpu->r[30] = cpu->r[4];
|
|
/* 028E862C */ Gambit_fn_028E8584(cpu);
|
|
/* 028E8630 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028E8634 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028E8634 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028E8634 */ if (_t6) goto L_028E8638; else goto L_028E8674;
|
|
L_028E8638: ; // 0x28e8638
|
|
/* 028E8638 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028E863C */ _t7 = cpu->r[12] + 0x00006338u;
|
|
/* 028E863C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028E863C */ cpu->r[12] = _t7;
|
|
/* 028E8640 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028E8640 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[0]);
|
|
/* 028E8644 */ _t9 = cpu->r[12] + 0x00000004u;
|
|
/* 028E8644 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028E8648 */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 028E8648 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028E864C */ _t11 = cpu->r[12] + 0x00000008u;
|
|
/* 028E864C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028E8650 */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 028E8650 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 028E8654 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8654 */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028E8658 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8658 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028E865C */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 028E865C */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028E8660 */ cpu->lr = cpu->r[0];
|
|
/* 028E8664 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8664 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028E8668 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028E866C */ cpu->r[3] = 0x00000000u;
|
|
/* 028E8670 */ return;
|
|
L_028E8674: ; // 0x28e8674
|
|
/* 028E8674 */ cpu->r[5] = cpu->r[29];
|
|
/* 028E8678 */ cpu->r[4] = cpu->r[31];
|
|
/* 028E867C */ cpu->r[3] = cpu->r[30];
|
|
/* 028E8680 */ Gambit_fn_028D60D8(cpu);
|
|
/* 028E8684 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8684 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028E8688 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8688 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028E868C */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028E868C */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028E8690 */ cpu->lr = cpu->r[0];
|
|
/* 028E8694 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8694 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028E8698 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028E869C */ cpu->r[3] = 0x00000001u;
|
|
/* 028E86A0 */ return;
|
|
L_028EEA50: ; // 0x28eea50
|
|
/* 028EEA50 */ cpu->r[3] = cpu->r[3] + 0xFFFFFFF4u;
|
|
/* 028EEA54 */ goto L_028E8604;
|
|
}
|
|
|
|
// fn_028EEA58 @ 0x28eea58
|
|
void Gambit_fn_028EEA58(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028EEA58: ; // 0x28eea58
|
|
/* 028EEA58 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EEA5C */ _t0 = cpu->r[12] + 0xFFFFC80Cu;
|
|
/* 028EEA5C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028EEA60 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028EEA64 */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EEA64 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028EEA64 */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EEA64 */ goto L_028EEA68;
|
|
L_028EEA68: ; // 0x28eea68
|
|
/* 028EEA68 */ _t3 = cpu->r[3] + 0x0000009Cu;
|
|
/* 028EEA68 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[1]);
|
|
/* 028EEA6C */ return;
|
|
}
|
|
|
|
// fn_028EEA70 @ 0x28eea70
|
|
void Gambit_fn_028EEA70(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61;
|
|
double _ft39, _ft40;
|
|
|
|
L_028EEA70: ; // 0x28eea70
|
|
/* 028EEA70 */ cpu->r[0] = cpu->lr;
|
|
/* 028EEA74 */ _t0 = cpu->r[1] + 0xFFFFFF70u;
|
|
/* 028EEA74 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EEA74 */ cpu->r[1] = _t0;
|
|
/* 028EEA78 */ _t1 = cpu->r[1] + 0x00000088u;
|
|
/* 028EEA78 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EEA7C */ _t2 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028EEA7C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EEA80 */ cpu->r[31] = cpu->r[5];
|
|
/* 028EEA80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EEA84 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EEA88 */ _t3 = cpu->r[1] + 0x00000084u;
|
|
/* 028EEA88 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028EEA8C */ _t4 = cpu->r[1] + 0x00000094u;
|
|
/* 028EEA8C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028EEA90 */ cpu->r[29] = cpu->r[3];
|
|
/* 028EEA94 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEA94 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028EEA94 */ if (_t6) goto L_028EEC38; else goto L_028EEA98;
|
|
L_028EEA98: ; // 0x28eea98
|
|
/* 028EEA98 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028EEA9C */ cpu->r[3] = cpu->r[29];
|
|
/* 028EEAA0 */ Gambit_fn_028E89EC(cpu);
|
|
/* 028EEAA4 */ /* nop */
|
|
/* 028EEAA8 */ /* nop */
|
|
/* 028EEAAC */ _t7 = cpu->r[1] + 0x00000028u;
|
|
/* 028EEAAC */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028EEAB0 */ /* nop */
|
|
/* 028EEAB4 */ _t8 = cpu->r[30] + 0x00000008u;
|
|
/* 028EEAB4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EEAB8 */ /* nop */
|
|
/* 028EEABC */ _t9 = cpu->r[1] + 0x00000038u;
|
|
/* 028EEABC */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028EEAC0 */ cpu->f[12] = cpu->f[0] - cpu->f[9];
|
|
/* 028EEAC4 */ _t10 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028EEAC4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EEAC8 */ _t11 = cpu->r[1] + 0x00000044u;
|
|
/* 028EEAC8 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028EEACC */ _t12 = cpu->r[1] + 0x00000040u;
|
|
/* 028EEACC */ rbrew_write_f32(cpu->mem, _t12, cpu->f[12]);
|
|
/* 028EEAD0 */ _t13 = cpu->r[1] + 0x00000040u;
|
|
/* 028EEAD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EEAD4 */ cpu->r[4] = cpu->r[1] + 0x00000050u;
|
|
/* 028EEAD8 */ _t14 = cpu->r[1] + 0x00000048u;
|
|
/* 028EEAD8 */ rbrew_write32(cpu->mem, _t14, cpu->r[9]);
|
|
/* 028EEADC */ cpu->r[3] = cpu->r[29] + 0x00000044u;
|
|
/* 028EEAE0 */ _t15 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028EEAE0 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028EEAE4 */ Gambit_fn_02C69628(cpu);
|
|
/* 028EEAE8 */ cpu->r[3] = cpu->r[1] + 0x00000050u;
|
|
/* 028EEAEC */ cpu->r[4] = cpu->r[1] + 0x00000044u;
|
|
/* 028EEAF0 */ cpu->r[5] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EEAF4 */ Gambit_fn_02C69468(cpu);
|
|
/* 028EEAF8 */ _t16 = cpu->r[1] + 0x00000034u;
|
|
/* 028EEAF8 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028EEAFC */ _t17 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EEAFC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028EEB00 */ cpu->f[11] = cpu->f[8] * cpu->f[8];
|
|
/* 028EEB04 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EEB08 */ cpu->f[11] = fma(cpu->f[0], cpu->f[0], cpu->f[11]);
|
|
/* 028EEB0C */ _t18 = cpu->r[11] + 0xFFFFC80Cu;
|
|
/* 028EEB0C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028EEB10 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[13]);
|
|
/* 028EEB14 */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EEB14 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028EEB14 */ if (_t20) goto L_028EEB98; else goto L_028EEB18;
|
|
L_028EEB18: ; // 0x28eeb18
|
|
/* 028EEB18 */ cpu->f[10] = cpu->f[13] * cpu->f[11];
|
|
/* 028EEB1C */ cpu->r[8] = 0x10140000u;
|
|
/* 028EEB20 */ _t21 = cpu->r[8] + 0xFFFFC818u;
|
|
/* 028EEB20 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028EEB24 */ cpu->f[9] = cpu->f[10];
|
|
/* 028EEB28 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[9]);
|
|
/* 028EEB2C */ _t22 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EEB2C */ _t23 = _t22 & 0x00000001u;
|
|
/* 028EEB2C */ if (_t23) goto L_028EEB30; else goto L_028EEBD4;
|
|
L_028EEB30: ; // 0x28eeb30
|
|
/* 028EEB30 */ _t24 = cpu->r[29] + 0x0000009Cu;
|
|
/* 028EEB30 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 028EEB34 */ _t25 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EEB34 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028EEB38 */ cpu->f[8] = cpu->f[11] / cpu->f[10];
|
|
/* 028EEB3C */ cpu->f[12] = cpu->f[0] * cpu->f[8];
|
|
/* 028EEB40 */ _t26 = cpu->r[1] + 0x00000034u;
|
|
/* 028EEB40 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028EEB44 */ _t27 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEB44 */ rbrew_write_f32(cpu->mem, _t27, cpu->f[12]);
|
|
/* 028EEB48 */ cpu->f[12] = cpu->f[11] * cpu->f[8];
|
|
/* 028EEB4C */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028EEB50 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEB50 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[13]);
|
|
/* 028EEB54 */ cpu->r[3] = cpu->r[29] + 0x00000044u;
|
|
/* 028EEB58 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028EEB5C */ _t29 = cpu->r[1] + 0x00000010u;
|
|
/* 028EEB5C */ rbrew_write_f32(cpu->mem, _t29, cpu->f[12]);
|
|
/* 028EEB60 */ Gambit_fn_02C69468(cpu);
|
|
/* 028EEB64 */ /* nop */
|
|
/* 028EEB68 */ /* nop */
|
|
/* 028EEB6C */ _t30 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EEB6C */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 028EEB70 */ /* nop */
|
|
/* 028EEB74 */ _t31 = cpu->r[1] + 0x00000028u;
|
|
/* 028EEB74 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 028EEB78 */ /* nop */
|
|
/* 028EEB7C */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEB7C */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 028EEB80 */ _t33 = cpu->r[1] + 0x00000018u;
|
|
/* 028EEB80 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t33);
|
|
/* 028EEB84 */ cpu->f[9] = cpu->f[10] + cpu->f[12];
|
|
/* 028EEB88 */ _t34 = cpu->r[31] + 0x00000000u;
|
|
/* 028EEB88 */ rbrew_write_f32(cpu->mem, _t34, cpu->f[8]);
|
|
/* 028EEB8C */ _t35 = cpu->r[31] + 0x00000004u;
|
|
/* 028EEB8C */ rbrew_write_f32(cpu->mem, _t35, cpu->f[13]);
|
|
/* 028EEB90 */ _t36 = cpu->r[31] + 0x00000008u;
|
|
/* 028EEB90 */ rbrew_write_f32(cpu->mem, _t36, cpu->f[9]);
|
|
/* 028EEB94 */ goto L_028EEC38;
|
|
L_028EEB98: ; // 0x28eeb98
|
|
/* 028EEB98 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EEB9C */ cpu->r[11] = 0x10140000u;
|
|
/* 028EEBA0 */ _t37 = cpu->r[12] + 0xFFFFC814u;
|
|
/* 028EEBA0 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028EEBA4 */ _t38 = cpu->r[11] + 0xFFFFC810u;
|
|
/* 028EEBA4 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 028EEBA8 */ _ft39 = sqrt(cpu->f[11]);
|
|
/* 028EEBA8 */ _ft40 = (double)(int32_t)0x00000001u;
|
|
/* 028EEBA8 */ cpu->f[0] = _ft40 / _ft39;
|
|
/* 028EEBAC */ cpu->f[8] = cpu->f[0] * cpu->f[0];
|
|
/* 028EEBB0 */ cpu->f[12] = cpu->f[0] * cpu->f[9];
|
|
/* 028EEBB4 */ cpu->f[8] = -fma(cpu->f[8], cpu->f[11], -(cpu->f[10]));
|
|
/* 028EEBB8 */ cpu->f[0] = cpu->f[8] * cpu->f[12];
|
|
/* 028EEBBC */ cpu->f[10] = cpu->f[0] * cpu->f[11];
|
|
/* 028EEBC0 */ cpu->r[8] = 0x10140000u;
|
|
/* 028EEBC4 */ _t41 = cpu->r[8] + 0xFFFFC818u;
|
|
/* 028EEBC4 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 028EEBC8 */ cpu->f[9] = cpu->f[10];
|
|
/* 028EEBCC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[9]);
|
|
/* 028EEBD0 */ _t42 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EEBD0 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028EEBD0 */ if (_t43) goto L_028EEB30; else goto L_028EEBD4;
|
|
L_028EEBD4: ; // 0x28eebd4
|
|
/* 028EEBD4 */ cpu->r[6] = 0x10140000u;
|
|
/* 028EEBD8 */ _t44 = cpu->r[6] + 0xFFFFC81Cu;
|
|
/* 028EEBD8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t44);
|
|
/* 028EEBDC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[9], cpu->f[12]);
|
|
/* 028EEBE0 */ _t45 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EEBE0 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028EEBE0 */ if (_t46) goto L_028EEB30; else goto L_028EEBE4;
|
|
L_028EEBE4: ; // 0x28eebe4
|
|
/* 028EEBE4 */ _t47 = cpu->r[29] + 0x0000009Cu;
|
|
/* 028EEBE4 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 028EEBE8 */ _t48 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEBE8 */ rbrew_write_f32(cpu->mem, _t48, cpu->f[13]);
|
|
/* 028EEBEC */ cpu->f[12] = -cpu->f[10];
|
|
/* 028EEBF0 */ _t49 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEBF0 */ rbrew_write_f32(cpu->mem, _t49, cpu->f[13]);
|
|
/* 028EEBF4 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028EEBF8 */ cpu->r[3] = cpu->r[29] + 0x00000044u;
|
|
/* 028EEBFC */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028EEC00 */ _t50 = cpu->r[1] + 0x00000010u;
|
|
/* 028EEC00 */ rbrew_write_f32(cpu->mem, _t50, cpu->f[12]);
|
|
/* 028EEC04 */ Gambit_fn_02C69468(cpu);
|
|
/* 028EEC08 */ /* nop */
|
|
/* 028EEC0C */ /* nop */
|
|
/* 028EEC10 */ _t51 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EEC10 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t51);
|
|
/* 028EEC14 */ /* nop */
|
|
/* 028EEC18 */ /* nop */
|
|
/* 028EEC1C */ _t52 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEC1C */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028EEC20 */ _t53 = cpu->r[1] + 0x00000028u;
|
|
/* 028EEC20 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t53);
|
|
/* 028EEC24 */ _t54 = cpu->r[1] + 0x00000018u;
|
|
/* 028EEC24 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t54);
|
|
/* 028EEC28 */ cpu->f[9] = cpu->f[10] + cpu->f[12];
|
|
/* 028EEC2C */ _t55 = cpu->r[31] + 0x00000000u;
|
|
/* 028EEC2C */ rbrew_write_f32(cpu->mem, _t55, cpu->f[8]);
|
|
/* 028EEC30 */ _t56 = cpu->r[31] + 0x00000004u;
|
|
/* 028EEC30 */ rbrew_write_f32(cpu->mem, _t56, cpu->f[13]);
|
|
/* 028EEC34 */ _t57 = cpu->r[31] + 0x00000008u;
|
|
/* 028EEC34 */ rbrew_write_f32(cpu->mem, _t57, cpu->f[9]);
|
|
L_028EEC38: ; // 0x28eec38
|
|
/* 028EEC38 */ _t58 = cpu->r[1] + 0x00000084u;
|
|
/* 028EEC38 */ cpu->r[29] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028EEC3C */ _t59 = cpu->r[1] + 0x00000094u;
|
|
/* 028EEC3C */ cpu->r[0] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028EEC40 */ _t60 = cpu->r[1] + 0x00000088u;
|
|
/* 028EEC40 */ cpu->r[30] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028EEC44 */ cpu->lr = cpu->r[0];
|
|
/* 028EEC48 */ _t61 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028EEC48 */ cpu->r[31] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028EEC4C */ cpu->r[1] = cpu->r[1] + 0x00000090u;
|
|
/* 028EEC50 */ return;
|
|
}
|
|
|
|
// fn_028EEA74 @ 0x28eea74
|
|
void Gambit_fn_028EEA74(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61;
|
|
double _ft39, _ft40;
|
|
|
|
L_028EEA74: ; // 0x28eea74
|
|
/* 028EEA74 */ _t0 = cpu->r[1] + 0xFFFFFF70u;
|
|
/* 028EEA74 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EEA74 */ cpu->r[1] = _t0;
|
|
/* 028EEA78 */ _t1 = cpu->r[1] + 0x00000088u;
|
|
/* 028EEA78 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EEA7C */ _t2 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028EEA7C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EEA80 */ cpu->r[31] = cpu->r[5];
|
|
/* 028EEA80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EEA84 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EEA88 */ _t3 = cpu->r[1] + 0x00000084u;
|
|
/* 028EEA88 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028EEA8C */ _t4 = cpu->r[1] + 0x00000094u;
|
|
/* 028EEA8C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028EEA90 */ cpu->r[29] = cpu->r[3];
|
|
/* 028EEA94 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEA94 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028EEA94 */ if (_t6) goto L_028EEC38; else goto L_028EEA98;
|
|
L_028EEA98: ; // 0x28eea98
|
|
/* 028EEA98 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028EEA9C */ cpu->r[3] = cpu->r[29];
|
|
/* 028EEAA0 */ Gambit_fn_028E89EC(cpu);
|
|
/* 028EEAA4 */ /* nop */
|
|
/* 028EEAA8 */ /* nop */
|
|
/* 028EEAAC */ _t7 = cpu->r[1] + 0x00000028u;
|
|
/* 028EEAAC */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028EEAB0 */ /* nop */
|
|
/* 028EEAB4 */ _t8 = cpu->r[30] + 0x00000008u;
|
|
/* 028EEAB4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EEAB8 */ /* nop */
|
|
/* 028EEABC */ _t9 = cpu->r[1] + 0x00000038u;
|
|
/* 028EEABC */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028EEAC0 */ cpu->f[12] = cpu->f[0] - cpu->f[9];
|
|
/* 028EEAC4 */ _t10 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028EEAC4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EEAC8 */ _t11 = cpu->r[1] + 0x00000044u;
|
|
/* 028EEAC8 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028EEACC */ _t12 = cpu->r[1] + 0x00000040u;
|
|
/* 028EEACC */ rbrew_write_f32(cpu->mem, _t12, cpu->f[12]);
|
|
/* 028EEAD0 */ _t13 = cpu->r[1] + 0x00000040u;
|
|
/* 028EEAD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EEAD4 */ cpu->r[4] = cpu->r[1] + 0x00000050u;
|
|
/* 028EEAD8 */ _t14 = cpu->r[1] + 0x00000048u;
|
|
/* 028EEAD8 */ rbrew_write32(cpu->mem, _t14, cpu->r[9]);
|
|
/* 028EEADC */ cpu->r[3] = cpu->r[29] + 0x00000044u;
|
|
/* 028EEAE0 */ _t15 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028EEAE0 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028EEAE4 */ Gambit_fn_02C69628(cpu);
|
|
/* 028EEAE8 */ cpu->r[3] = cpu->r[1] + 0x00000050u;
|
|
/* 028EEAEC */ cpu->r[4] = cpu->r[1] + 0x00000044u;
|
|
/* 028EEAF0 */ cpu->r[5] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EEAF4 */ Gambit_fn_02C69468(cpu);
|
|
/* 028EEAF8 */ _t16 = cpu->r[1] + 0x00000034u;
|
|
/* 028EEAF8 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028EEAFC */ _t17 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EEAFC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028EEB00 */ cpu->f[11] = cpu->f[8] * cpu->f[8];
|
|
/* 028EEB04 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EEB08 */ cpu->f[11] = fma(cpu->f[0], cpu->f[0], cpu->f[11]);
|
|
/* 028EEB0C */ _t18 = cpu->r[11] + 0xFFFFC80Cu;
|
|
/* 028EEB0C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028EEB10 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[13]);
|
|
/* 028EEB14 */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EEB14 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028EEB14 */ if (_t20) goto L_028EEB98; else goto L_028EEB18;
|
|
L_028EEB18: ; // 0x28eeb18
|
|
/* 028EEB18 */ cpu->f[10] = cpu->f[13] * cpu->f[11];
|
|
/* 028EEB1C */ cpu->r[8] = 0x10140000u;
|
|
/* 028EEB20 */ _t21 = cpu->r[8] + 0xFFFFC818u;
|
|
/* 028EEB20 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028EEB24 */ cpu->f[9] = cpu->f[10];
|
|
/* 028EEB28 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[9]);
|
|
/* 028EEB2C */ _t22 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EEB2C */ _t23 = _t22 & 0x00000001u;
|
|
/* 028EEB2C */ if (_t23) goto L_028EEB30; else goto L_028EEBD4;
|
|
L_028EEB30: ; // 0x28eeb30
|
|
/* 028EEB30 */ _t24 = cpu->r[29] + 0x0000009Cu;
|
|
/* 028EEB30 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 028EEB34 */ _t25 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EEB34 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028EEB38 */ cpu->f[8] = cpu->f[11] / cpu->f[10];
|
|
/* 028EEB3C */ cpu->f[12] = cpu->f[0] * cpu->f[8];
|
|
/* 028EEB40 */ _t26 = cpu->r[1] + 0x00000034u;
|
|
/* 028EEB40 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028EEB44 */ _t27 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEB44 */ rbrew_write_f32(cpu->mem, _t27, cpu->f[12]);
|
|
/* 028EEB48 */ cpu->f[12] = cpu->f[11] * cpu->f[8];
|
|
/* 028EEB4C */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028EEB50 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEB50 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[13]);
|
|
/* 028EEB54 */ cpu->r[3] = cpu->r[29] + 0x00000044u;
|
|
/* 028EEB58 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028EEB5C */ _t29 = cpu->r[1] + 0x00000010u;
|
|
/* 028EEB5C */ rbrew_write_f32(cpu->mem, _t29, cpu->f[12]);
|
|
/* 028EEB60 */ Gambit_fn_02C69468(cpu);
|
|
/* 028EEB64 */ /* nop */
|
|
/* 028EEB68 */ /* nop */
|
|
/* 028EEB6C */ _t30 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EEB6C */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 028EEB70 */ /* nop */
|
|
/* 028EEB74 */ _t31 = cpu->r[1] + 0x00000028u;
|
|
/* 028EEB74 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 028EEB78 */ /* nop */
|
|
/* 028EEB7C */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEB7C */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 028EEB80 */ _t33 = cpu->r[1] + 0x00000018u;
|
|
/* 028EEB80 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t33);
|
|
/* 028EEB84 */ cpu->f[9] = cpu->f[10] + cpu->f[12];
|
|
/* 028EEB88 */ _t34 = cpu->r[31] + 0x00000000u;
|
|
/* 028EEB88 */ rbrew_write_f32(cpu->mem, _t34, cpu->f[8]);
|
|
/* 028EEB8C */ _t35 = cpu->r[31] + 0x00000004u;
|
|
/* 028EEB8C */ rbrew_write_f32(cpu->mem, _t35, cpu->f[13]);
|
|
/* 028EEB90 */ _t36 = cpu->r[31] + 0x00000008u;
|
|
/* 028EEB90 */ rbrew_write_f32(cpu->mem, _t36, cpu->f[9]);
|
|
/* 028EEB94 */ goto L_028EEC38;
|
|
L_028EEB98: ; // 0x28eeb98
|
|
/* 028EEB98 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EEB9C */ cpu->r[11] = 0x10140000u;
|
|
/* 028EEBA0 */ _t37 = cpu->r[12] + 0xFFFFC814u;
|
|
/* 028EEBA0 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028EEBA4 */ _t38 = cpu->r[11] + 0xFFFFC810u;
|
|
/* 028EEBA4 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 028EEBA8 */ _ft39 = sqrt(cpu->f[11]);
|
|
/* 028EEBA8 */ _ft40 = (double)(int32_t)0x00000001u;
|
|
/* 028EEBA8 */ cpu->f[0] = _ft40 / _ft39;
|
|
/* 028EEBAC */ cpu->f[8] = cpu->f[0] * cpu->f[0];
|
|
/* 028EEBB0 */ cpu->f[12] = cpu->f[0] * cpu->f[9];
|
|
/* 028EEBB4 */ cpu->f[8] = -fma(cpu->f[8], cpu->f[11], -(cpu->f[10]));
|
|
/* 028EEBB8 */ cpu->f[0] = cpu->f[8] * cpu->f[12];
|
|
/* 028EEBBC */ cpu->f[10] = cpu->f[0] * cpu->f[11];
|
|
/* 028EEBC0 */ cpu->r[8] = 0x10140000u;
|
|
/* 028EEBC4 */ _t41 = cpu->r[8] + 0xFFFFC818u;
|
|
/* 028EEBC4 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 028EEBC8 */ cpu->f[9] = cpu->f[10];
|
|
/* 028EEBCC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[9]);
|
|
/* 028EEBD0 */ _t42 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EEBD0 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028EEBD0 */ if (_t43) goto L_028EEB30; else goto L_028EEBD4;
|
|
L_028EEBD4: ; // 0x28eebd4
|
|
/* 028EEBD4 */ cpu->r[6] = 0x10140000u;
|
|
/* 028EEBD8 */ _t44 = cpu->r[6] + 0xFFFFC81Cu;
|
|
/* 028EEBD8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t44);
|
|
/* 028EEBDC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[9], cpu->f[12]);
|
|
/* 028EEBE0 */ _t45 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EEBE0 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028EEBE0 */ if (_t46) goto L_028EEB30; else goto L_028EEBE4;
|
|
L_028EEBE4: ; // 0x28eebe4
|
|
/* 028EEBE4 */ _t47 = cpu->r[29] + 0x0000009Cu;
|
|
/* 028EEBE4 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 028EEBE8 */ _t48 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEBE8 */ rbrew_write_f32(cpu->mem, _t48, cpu->f[13]);
|
|
/* 028EEBEC */ cpu->f[12] = -cpu->f[10];
|
|
/* 028EEBF0 */ _t49 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEBF0 */ rbrew_write_f32(cpu->mem, _t49, cpu->f[13]);
|
|
/* 028EEBF4 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028EEBF8 */ cpu->r[3] = cpu->r[29] + 0x00000044u;
|
|
/* 028EEBFC */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028EEC00 */ _t50 = cpu->r[1] + 0x00000010u;
|
|
/* 028EEC00 */ rbrew_write_f32(cpu->mem, _t50, cpu->f[12]);
|
|
/* 028EEC04 */ Gambit_fn_02C69468(cpu);
|
|
/* 028EEC08 */ /* nop */
|
|
/* 028EEC0C */ /* nop */
|
|
/* 028EEC10 */ _t51 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EEC10 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t51);
|
|
/* 028EEC14 */ /* nop */
|
|
/* 028EEC18 */ /* nop */
|
|
/* 028EEC1C */ _t52 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEC1C */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028EEC20 */ _t53 = cpu->r[1] + 0x00000028u;
|
|
/* 028EEC20 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t53);
|
|
/* 028EEC24 */ _t54 = cpu->r[1] + 0x00000018u;
|
|
/* 028EEC24 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t54);
|
|
/* 028EEC28 */ cpu->f[9] = cpu->f[10] + cpu->f[12];
|
|
/* 028EEC2C */ _t55 = cpu->r[31] + 0x00000000u;
|
|
/* 028EEC2C */ rbrew_write_f32(cpu->mem, _t55, cpu->f[8]);
|
|
/* 028EEC30 */ _t56 = cpu->r[31] + 0x00000004u;
|
|
/* 028EEC30 */ rbrew_write_f32(cpu->mem, _t56, cpu->f[13]);
|
|
/* 028EEC34 */ _t57 = cpu->r[31] + 0x00000008u;
|
|
/* 028EEC34 */ rbrew_write_f32(cpu->mem, _t57, cpu->f[9]);
|
|
L_028EEC38: ; // 0x28eec38
|
|
/* 028EEC38 */ _t58 = cpu->r[1] + 0x00000084u;
|
|
/* 028EEC38 */ cpu->r[29] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028EEC3C */ _t59 = cpu->r[1] + 0x00000094u;
|
|
/* 028EEC3C */ cpu->r[0] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028EEC40 */ _t60 = cpu->r[1] + 0x00000088u;
|
|
/* 028EEC40 */ cpu->r[30] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028EEC44 */ cpu->lr = cpu->r[0];
|
|
/* 028EEC48 */ _t61 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028EEC48 */ cpu->r[31] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028EEC4C */ cpu->r[1] = cpu->r[1] + 0x00000090u;
|
|
/* 028EEC50 */ return;
|
|
}
|
|
|
|
// fn_028EEC54 @ 0x28eec54
|
|
void Gambit_fn_028EEC54(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028EEC54: ; // 0x28eec54
|
|
/* 028EEC54 */ cpu->r[0] = cpu->lr;
|
|
/* 028EEC58 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EEC58 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EEC58 */ cpu->r[1] = _t0;
|
|
/* 028EEC5C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEC5C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EEC60 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEC60 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EEC64 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EEC64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EEC68 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EEC6C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEC6C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EEC70 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEC70 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EEC70 */ if (_t5) goto L_028EEC74; else goto L_028EEC84;
|
|
L_028EEC74: ; // 0x28eec74
|
|
/* 028EEC74 */ cpu->r[3] = 0x000000A0u;
|
|
/* 028EEC78 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EEC7C */ cpu->r[31] = cpu->r[3];
|
|
/* 028EEC7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EEC80 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEC80 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EEC80 */ if (_t7) goto L_028EECC0; else goto L_028EEC84;
|
|
L_028EEC84: ; // 0x28eec84
|
|
/* 028EEC84 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EEC88 */ cpu->r[4] = cpu->r[30];
|
|
/* 028EEC8C */ Gambit_fn_028E87F0(cpu);
|
|
/* 028EEC90 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EEC94 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EEC98 */ cpu->r[0] = cpu->r[0] + 0xFFFFC85Cu;
|
|
/* 028EEC9C */ _t8 = cpu->r[11] + 0xFFFFC830u;
|
|
/* 028EEC9C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EECA0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EECA4 */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028EECA4 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028EECA8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EECAC */ cpu->r[12] = cpu->r[12] + 0xFFFFC834u;
|
|
/* 028EECB0 */ _t10 = cpu->r[31] + 0x0000009Cu;
|
|
/* 028EECB0 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028EECB4 */ cpu->r[0] = cpu->r[0] + 0xFFFFC84Cu;
|
|
/* 028EECB8 */ _t11 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EECB8 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
/* 028EECBC */ _t12 = cpu->r[31] + 0x00000020u;
|
|
/* 028EECBC */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_028EECC0: ; // 0x28eecc0
|
|
/* 028EECC0 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028EECC0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EECC4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EECC8 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EECC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028EECCC */ cpu->lr = cpu->r[0];
|
|
/* 028EECD0 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028EECD0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EECD4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EECD8 */ return;
|
|
}
|
|
|
|
// fn_028EEC58 @ 0x28eec58
|
|
void Gambit_fn_028EEC58(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028EEC58: ; // 0x28eec58
|
|
/* 028EEC58 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EEC58 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EEC58 */ cpu->r[1] = _t0;
|
|
/* 028EEC5C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEC5C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EEC60 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEC60 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EEC64 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EEC64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EEC68 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EEC6C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEC6C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EEC70 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEC70 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EEC70 */ if (_t5) goto L_028EEC74; else goto L_028EEC84;
|
|
L_028EEC74: ; // 0x28eec74
|
|
/* 028EEC74 */ cpu->r[3] = 0x000000A0u;
|
|
/* 028EEC78 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EEC7C */ cpu->r[31] = cpu->r[3];
|
|
/* 028EEC7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EEC80 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEC80 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EEC80 */ if (_t7) goto L_028EECC0; else goto L_028EEC84;
|
|
L_028EEC84: ; // 0x28eec84
|
|
/* 028EEC84 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EEC88 */ cpu->r[4] = cpu->r[30];
|
|
/* 028EEC8C */ Gambit_fn_028E87F0(cpu);
|
|
/* 028EEC90 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EEC94 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EEC98 */ cpu->r[0] = cpu->r[0] + 0xFFFFC85Cu;
|
|
/* 028EEC9C */ _t8 = cpu->r[11] + 0xFFFFC830u;
|
|
/* 028EEC9C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EECA0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EECA4 */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028EECA4 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028EECA8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EECAC */ cpu->r[12] = cpu->r[12] + 0xFFFFC834u;
|
|
/* 028EECB0 */ _t10 = cpu->r[31] + 0x0000009Cu;
|
|
/* 028EECB0 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028EECB4 */ cpu->r[0] = cpu->r[0] + 0xFFFFC84Cu;
|
|
/* 028EECB8 */ _t11 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EECB8 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
/* 028EECBC */ _t12 = cpu->r[31] + 0x00000020u;
|
|
/* 028EECBC */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_028EECC0: ; // 0x28eecc0
|
|
/* 028EECC0 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028EECC0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EECC4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EECC8 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EECC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028EECCC */ cpu->lr = cpu->r[0];
|
|
/* 028EECD0 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028EECD0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EECD4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EECD8 */ return;
|
|
}
|
|
|
|
// fn_028EECDC @ 0x28eecdc
|
|
void Gambit_fn_028EECDC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028EECDC: ; // 0x28eecdc
|
|
/* 028EECDC */ cpu->r[0] = cpu->lr;
|
|
/* 028EECE0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EECE0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EECE0 */ cpu->r[1] = _t0;
|
|
/* 028EECE4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EECE4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EECE8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EECE8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EECEC */ cpu->r[30] = cpu->r[3];
|
|
/* 028EECEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EECF0 */ cpu->r[31] = cpu->r[4];
|
|
/* 028EECF4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EECF4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EECF8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EECF8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EECF8 */ if (_t5) goto L_028EED30; else goto L_028EECFC;
|
|
L_028EECFC: ; // 0x28eecfc
|
|
/* 028EECFC */ cpu->r[12] = 0x10140000u;
|
|
/* 028EED00 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EED04 */ cpu->r[12] = cpu->r[12] + 0xFFFFC834u;
|
|
/* 028EED08 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EED0C */ _t6 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028EED0C */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028EED10 */ cpu->r[0] = cpu->r[0] + 0xFFFFC84Cu;
|
|
/* 028EED14 */ cpu->r[4] = 0x00000000u;
|
|
/* 028EED18 */ _t7 = cpu->r[30] + 0x00000020u;
|
|
/* 028EED18 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028EED1C */ Gambit_fn_028E8510(cpu);
|
|
/* 028EED20 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EED20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EED24 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EED24 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EED24 */ if (_t9) goto L_028EED30; else goto L_028EED28;
|
|
L_028EED28: ; // 0x28eed28
|
|
/* 028EED28 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EED2C */ Gambit_fn_02801BB0(cpu);
|
|
L_028EED30: ; // 0x28eed30
|
|
/* 028EED30 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028EED30 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EED34 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028EED34 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EED38 */ cpu->lr = cpu->r[0];
|
|
/* 028EED3C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EED3C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EED40 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EED44 */ return;
|
|
}
|
|
|
|
// fn_028EECE0 @ 0x28eece0
|
|
void Gambit_fn_028EECE0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028EECE0: ; // 0x28eece0
|
|
/* 028EECE0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EECE0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EECE0 */ cpu->r[1] = _t0;
|
|
/* 028EECE4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EECE4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EECE8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EECE8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EECEC */ cpu->r[30] = cpu->r[3];
|
|
/* 028EECEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EECF0 */ cpu->r[31] = cpu->r[4];
|
|
/* 028EECF4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EECF4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EECF8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EECF8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EECF8 */ if (_t5) goto L_028EED30; else goto L_028EECFC;
|
|
L_028EECFC: ; // 0x28eecfc
|
|
/* 028EECFC */ cpu->r[12] = 0x10140000u;
|
|
/* 028EED00 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EED04 */ cpu->r[12] = cpu->r[12] + 0xFFFFC834u;
|
|
/* 028EED08 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EED0C */ _t6 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028EED0C */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028EED10 */ cpu->r[0] = cpu->r[0] + 0xFFFFC84Cu;
|
|
/* 028EED14 */ cpu->r[4] = 0x00000000u;
|
|
/* 028EED18 */ _t7 = cpu->r[30] + 0x00000020u;
|
|
/* 028EED18 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028EED1C */ Gambit_fn_028E8510(cpu);
|
|
/* 028EED20 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EED20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EED24 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EED24 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EED24 */ if (_t9) goto L_028EED30; else goto L_028EED28;
|
|
L_028EED28: ; // 0x28eed28
|
|
/* 028EED28 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EED2C */ Gambit_fn_02801BB0(cpu);
|
|
L_028EED30: ; // 0x28eed30
|
|
/* 028EED30 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028EED30 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EED34 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028EED34 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EED38 */ cpu->lr = cpu->r[0];
|
|
/* 028EED3C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EED3C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EED40 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EED44 */ return;
|
|
}
|
|
|
|
// fn_028EED48 @ 0x28eed48
|
|
void Gambit_fn_028EED48(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028EED48: ; // 0x28eed48
|
|
/* 028EED48 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028EED48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028EED4C */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 028EED4C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028EED50 */ return;
|
|
}
|
|
|
|
// fn_028EED54 @ 0x28eed54
|
|
void Gambit_fn_028EED54(CPUState* cpu) {
|
|
L_028EED54: ; // 0x28eed54
|
|
/* 028EED54 */ return;
|
|
}
|
|
|
|
// fn_028EED58 @ 0x28eed58
|
|
void Gambit_fn_028EED58(CPUState* 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_028E8604: ; // 0x28e8604
|
|
/* 028E8604 */ cpu->r[0] = cpu->lr;
|
|
/* 028E8608 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028E8608 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028E8608 */ cpu->r[1] = _t0;
|
|
/* 028E860C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028E860C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028E8610 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8610 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028E8614 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8614 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028E8618 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8618 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028E861C */ cpu->r[29] = cpu->r[6];
|
|
/* 028E8620 */ cpu->r[31] = cpu->r[5];
|
|
/* 028E8624 */ cpu->r[5] = cpu->r[29];
|
|
/* 028E8628 */ cpu->r[30] = cpu->r[4];
|
|
/* 028E862C */ Gambit_fn_028E8584(cpu);
|
|
/* 028E8630 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028E8634 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028E8634 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028E8634 */ if (_t6) goto L_028E8638; else goto L_028E8674;
|
|
L_028E8638: ; // 0x28e8638
|
|
/* 028E8638 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028E863C */ _t7 = cpu->r[12] + 0x00006338u;
|
|
/* 028E863C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028E863C */ cpu->r[12] = _t7;
|
|
/* 028E8640 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028E8640 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[0]);
|
|
/* 028E8644 */ _t9 = cpu->r[12] + 0x00000004u;
|
|
/* 028E8644 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028E8648 */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 028E8648 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028E864C */ _t11 = cpu->r[12] + 0x00000008u;
|
|
/* 028E864C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028E8650 */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 028E8650 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 028E8654 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8654 */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028E8658 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8658 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028E865C */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 028E865C */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028E8660 */ cpu->lr = cpu->r[0];
|
|
/* 028E8664 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8664 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028E8668 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028E866C */ cpu->r[3] = 0x00000000u;
|
|
/* 028E8670 */ return;
|
|
L_028E8674: ; // 0x28e8674
|
|
/* 028E8674 */ cpu->r[5] = cpu->r[29];
|
|
/* 028E8678 */ cpu->r[4] = cpu->r[31];
|
|
/* 028E867C */ cpu->r[3] = cpu->r[30];
|
|
/* 028E8680 */ Gambit_fn_028D60D8(cpu);
|
|
/* 028E8684 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8684 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028E8688 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8688 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028E868C */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028E868C */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028E8690 */ cpu->lr = cpu->r[0];
|
|
/* 028E8694 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8694 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028E8698 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028E869C */ cpu->r[3] = 0x00000001u;
|
|
/* 028E86A0 */ return;
|
|
L_028EED58: ; // 0x28eed58
|
|
/* 028EED58 */ cpu->r[3] = cpu->r[3] + 0xFFFFFFF4u;
|
|
/* 028EED5C */ goto L_028E8604;
|
|
}
|
|
|
|
// fn_028EED60 @ 0x28eed60
|
|
void Gambit_fn_028EED60(CPUState* cpu) {
|
|
L_028EED60: ; // 0x28eed60
|
|
/* 028EED60 */ cpu->r[5] = cpu->r[4];
|
|
/* 028EED64 */ cpu->r[4] = cpu->r[3] + 0x0000009Cu;
|
|
/* 028EED68 */ cpu->r[3] = cpu->r[3] + 0x00000044u;
|
|
/* 028EED6C */ goto L_02C69468;
|
|
L_02C69468: ; // 0x2c69468
|
|
/* 02C69468 */ /* nop */
|
|
/* 02C6946C */ /* nop */
|
|
/* 02C69470 */ /* nop */
|
|
/* 02C69474 */ /* nop */
|
|
/* 02C69478 */ /* nop */
|
|
/* 02C6947C */ /* nop */
|
|
/* 02C69480 */ /* nop */
|
|
/* 02C69484 */ /* nop */
|
|
/* 02C69488 */ /* nop */
|
|
/* 02C6948C */ /* nop */
|
|
/* 02C69490 */ /* nop */
|
|
/* 02C69494 */ /* nop */
|
|
/* 02C69498 */ /* nop */
|
|
/* 02C6949C */ /* nop */
|
|
/* 02C694A0 */ /* nop */
|
|
/* 02C694A4 */ /* nop */
|
|
/* 02C694A8 */ /* nop */
|
|
/* 02C694AC */ /* nop */
|
|
/* 02C694B0 */ /* nop */
|
|
/* 02C694B4 */ /* nop */
|
|
/* 02C694B8 */ return;
|
|
}
|
|
|
|
// fn_028EED70 @ 0x28eed70
|
|
void Gambit_fn_028EED70(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028EED70: ; // 0x28eed70
|
|
/* 028EED70 */ cpu->r[0] = cpu->lr;
|
|
/* 028EED74 */ _t0 = cpu->r[1] + 0xFFFFFF70u;
|
|
/* 028EED74 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EED74 */ cpu->r[1] = _t0;
|
|
/* 028EED78 */ _t1 = cpu->r[1] + 0x00000088u;
|
|
/* 028EED78 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EED7C */ _t2 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028EED7C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EED80 */ cpu->r[31] = cpu->r[5];
|
|
/* 028EED80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EED84 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EED88 */ _t3 = cpu->r[1] + 0x00000084u;
|
|
/* 028EED88 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028EED8C */ _t4 = cpu->r[1] + 0x00000094u;
|
|
/* 028EED8C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028EED90 */ cpu->r[29] = cpu->r[3];
|
|
/* 028EED94 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EED94 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028EED94 */ if (_t6) goto L_028EEEE8; else goto L_028EED98;
|
|
L_028EED98: ; // 0x28eed98
|
|
/* 028EED98 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028EED9C */ cpu->r[3] = cpu->r[29];
|
|
/* 028EEDA0 */ Gambit_fn_028E89EC(cpu);
|
|
/* 028EEDA4 */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 028EEDA8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028EEDAC */ Gambit_fn_028EED60(cpu);
|
|
/* 028EEDB0 */ cpu->r[10] = 0x10140000u;
|
|
/* 028EEDB4 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEDB4 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028EEDB8 */ _t8 = cpu->r[10] + 0xFFFFC8CCu;
|
|
/* 028EEDB8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EEDBC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[10], cpu->f[0]);
|
|
/* 028EEDC0 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEDC0 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028EEDC0 */ if (_t10) goto L_028EEDC4; else goto L_028EEDD0;
|
|
L_028EEDC4: ; // 0x28eedc4
|
|
/* 028EEDC4 */ _t11 = cpu->r[1] + 0x00000018u;
|
|
/* 028EEDC4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028EEDC8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[0]);
|
|
/* 028EEDCC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEDCC */ _t13 = _t12 & 0x00000001u;
|
|
/* 028EEDCC */ if (_t13) goto L_028EEEC4; else goto L_028EEDD0;
|
|
L_028EEDD0: ; // 0x28eedd0
|
|
/* 028EEDD0 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EEDD0 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t14);
|
|
L_028EEDD4: ; // 0x28eedd4
|
|
/* 028EEDD4 */ /* nop */
|
|
/* 028EEDD8 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEDD8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EEDDC */ /* nop */
|
|
/* 028EEDE0 */ _t16 = cpu->r[1] + 0x00000070u;
|
|
/* 028EEDE0 */ rbrew_write32(cpu->mem, _t16, cpu->r[10]);
|
|
/* 028EEDE4 */ /* nop */
|
|
/* 028EEDE8 */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 028EEDE8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028EEDEC */ /* nop */
|
|
/* 028EEDF0 */ _t18 = cpu->r[1] + 0x00000024u;
|
|
/* 028EEDF0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028EEDF4 */ cpu->f[11] = cpu->f[12] + cpu->f[11];
|
|
/* 028EEDF8 */ _t19 = cpu->r[1] + 0x00000028u;
|
|
/* 028EEDF8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028EEDFC */ _t20 = cpu->r[1] + 0x00000060u;
|
|
/* 028EEDFC */ rbrew_write32(cpu->mem, _t20, cpu->r[11]);
|
|
/* 028EEE00 */ _t21 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EEE00 */ rbrew_write_f32(cpu->mem, _t21, cpu->f[11]);
|
|
/* 028EEE04 */ _t22 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EEE04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028EEE08 */ _t23 = cpu->r[1] + 0x00000064u;
|
|
/* 028EEE08 */ rbrew_write32(cpu->mem, _t23, cpu->r[8]);
|
|
/* 028EEE0C */ _t24 = cpu->r[1] + 0x00000068u;
|
|
/* 028EEE0C */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028EEE10 */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEE10 */ cpu->r[6] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028EEE14 */ _t26 = cpu->r[1] + 0x00000078u;
|
|
/* 028EEE14 */ rbrew_write32(cpu->mem, _t26, cpu->r[11]);
|
|
/* 028EEE18 */ _t27 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028EEE18 */ rbrew_write32(cpu->mem, _t27, cpu->r[6]);
|
|
/* 028EEE1C */ _t28 = cpu->r[1] + 0x00000010u;
|
|
/* 028EEE1C */ cpu->r[12] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028EEE20 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EEE24 */ _t29 = cpu->r[1] + 0x00000080u;
|
|
/* 028EEE24 */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 028EEE28 */ cpu->r[5] = cpu->r[1] + 0x00000020u;
|
|
/* 028EEE2C */ _t30 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028EEE2C */ rbrew_write32(cpu->mem, _t30, cpu->r[8]);
|
|
/* 028EEE30 */ cpu->r[4] = cpu->r[1] + 0x0000006Cu;
|
|
/* 028EEE34 */ _t31 = cpu->r[1] + 0x00000074u;
|
|
/* 028EEE34 */ rbrew_write32(cpu->mem, _t31, cpu->r[12]);
|
|
/* 028EEE38 */ Gambit_fn_02819764(cpu);
|
|
/* 028EEE3C */ /* nop */
|
|
/* 028EEE40 */ _t32 = cpu->r[1] + 0x00000020u;
|
|
/* 028EEE40 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 028EEE44 */ /* nop */
|
|
/* 028EEE48 */ /* nop */
|
|
/* 028EEE4C */ _t33 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EEE4C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t33);
|
|
/* 028EEE50 */ /* nop */
|
|
/* 028EEE54 */ _t34 = cpu->r[1] + 0x00000030u;
|
|
/* 028EEE54 */ cpu->r[5] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028EEE58 */ _t35 = cpu->r[1] + 0x00000034u;
|
|
/* 028EEE58 */ cpu->r[6] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028EEE5C */ _t36 = cpu->r[1] + 0x00000054u;
|
|
/* 028EEE5C */ rbrew_write32(cpu->mem, _t36, cpu->r[5]);
|
|
/* 028EEE60 */ cpu->f[13] = cpu->f[11] * cpu->f[10];
|
|
/* 028EEE64 */ _t37 = cpu->r[1] + 0x00000058u;
|
|
/* 028EEE64 */ rbrew_write32(cpu->mem, _t37, cpu->r[6]);
|
|
/* 028EEE68 */ /* nop */
|
|
/* 028EEE6C */ _t38 = cpu->r[1] + 0x00000010u;
|
|
/* 028EEE6C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 028EEE70 */ _t39 = cpu->r[1] + 0x00000038u;
|
|
/* 028EEE70 */ rbrew_write_f32(cpu->mem, _t39, cpu->f[13]);
|
|
/* 028EEE74 */ /* nop */
|
|
/* 028EEE78 */ _t40 = cpu->r[1] + 0x00000038u;
|
|
/* 028EEE78 */ cpu->r[7] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028EEE7C */ /* nop */
|
|
/* 028EEE80 */ _t41 = cpu->r[1] + 0x00000040u;
|
|
/* 028EEE80 */ cpu->r[11] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028EEE84 */ _t42 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028EEE84 */ rbrew_write32(cpu->mem, _t42, cpu->r[7]);
|
|
/* 028EEE88 */ _t43 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028EEE88 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t43);
|
|
/* 028EEE8C */ _t44 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028EEE8C */ cpu->r[9] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028EEE90 */ _t45 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028EEE90 */ rbrew_write32(cpu->mem, _t45, cpu->r[11]);
|
|
/* 028EEE94 */ cpu->f[11] = cpu->f[12] + cpu->f[13];
|
|
/* 028EEE98 */ _t46 = cpu->r[1] + 0x00000048u;
|
|
/* 028EEE98 */ rbrew_write32(cpu->mem, _t46, cpu->r[9]);
|
|
/* 028EEE9C */ _t47 = cpu->r[1] + 0x00000048u;
|
|
/* 028EEE9C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 028EEEA0 */ _t48 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028EEEA0 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t48);
|
|
/* 028EEEA4 */ _t49 = cpu->r[1] + 0x00000044u;
|
|
/* 028EEEA4 */ rbrew_write_f32(cpu->mem, _t49, cpu->f[11]);
|
|
/* 028EEEA8 */ _t50 = cpu->r[1] + 0x00000044u;
|
|
/* 028EEEA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028EEEAC */ _t51 = cpu->r[31] + 0x00000000u;
|
|
/* 028EEEAC */ rbrew_write_f32(cpu->mem, _t51, cpu->f[0]);
|
|
/* 028EEEB0 */ _t52 = cpu->r[1] + 0x00000050u;
|
|
/* 028EEEB0 */ rbrew_write32(cpu->mem, _t52, cpu->r[0]);
|
|
/* 028EEEB4 */ _t53 = cpu->r[1] + 0x00000050u;
|
|
/* 028EEEB4 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t53);
|
|
/* 028EEEB8 */ _t54 = cpu->r[31] + 0x00000004u;
|
|
/* 028EEEB8 */ rbrew_write_f32(cpu->mem, _t54, cpu->f[12]);
|
|
/* 028EEEBC */ _t55 = cpu->r[31] + 0x00000008u;
|
|
/* 028EEEBC */ rbrew_write_f32(cpu->mem, _t55, cpu->f[10]);
|
|
/* 028EEEC0 */ goto L_028EEEE8;
|
|
L_028EEEC4: ; // 0x28eeec4
|
|
/* 028EEEC4 */ _t56 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EEEC4 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 028EEEC8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[0]);
|
|
/* 028EEECC */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEECC */ _t58 = _t57 & 0x00000001u;
|
|
/* 028EEECC */ if (_t58) goto L_028EEED0; else goto L_028EEDD4;
|
|
L_028EEED0: ; // 0x28eeed0
|
|
/* 028EEED0 */ _t59 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEED0 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t59);
|
|
/* 028EEED4 */ _t60 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEED4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t60);
|
|
/* 028EEED8 */ _t61 = cpu->r[31] + 0x00000000u;
|
|
/* 028EEED8 */ rbrew_write_f32(cpu->mem, _t61, cpu->f[10]);
|
|
/* 028EEEDC */ _t62 = cpu->r[1] + 0x00000010u;
|
|
/* 028EEEDC */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t62);
|
|
/* 028EEEE0 */ _t63 = cpu->r[31] + 0x00000004u;
|
|
/* 028EEEE0 */ rbrew_write_f32(cpu->mem, _t63, cpu->f[12]);
|
|
/* 028EEEE4 */ _t64 = cpu->r[31] + 0x00000008u;
|
|
/* 028EEEE4 */ rbrew_write_f32(cpu->mem, _t64, cpu->f[10]);
|
|
L_028EEEE8: ; // 0x28eeee8
|
|
/* 028EEEE8 */ _t65 = cpu->r[1] + 0x00000084u;
|
|
/* 028EEEE8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028EEEEC */ _t66 = cpu->r[1] + 0x00000094u;
|
|
/* 028EEEEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028EEEF0 */ _t67 = cpu->r[1] + 0x00000088u;
|
|
/* 028EEEF0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028EEEF4 */ cpu->lr = cpu->r[0];
|
|
/* 028EEEF8 */ _t68 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028EEEF8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028EEEFC */ cpu->r[1] = cpu->r[1] + 0x00000090u;
|
|
/* 028EEF00 */ return;
|
|
}
|
|
|
|
// fn_028EED74 @ 0x28eed74
|
|
void Gambit_fn_028EED74(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028EED74: ; // 0x28eed74
|
|
/* 028EED74 */ _t0 = cpu->r[1] + 0xFFFFFF70u;
|
|
/* 028EED74 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EED74 */ cpu->r[1] = _t0;
|
|
/* 028EED78 */ _t1 = cpu->r[1] + 0x00000088u;
|
|
/* 028EED78 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EED7C */ _t2 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028EED7C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EED80 */ cpu->r[31] = cpu->r[5];
|
|
/* 028EED80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EED84 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EED88 */ _t3 = cpu->r[1] + 0x00000084u;
|
|
/* 028EED88 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028EED8C */ _t4 = cpu->r[1] + 0x00000094u;
|
|
/* 028EED8C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028EED90 */ cpu->r[29] = cpu->r[3];
|
|
/* 028EED94 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EED94 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028EED94 */ if (_t6) goto L_028EEEE8; else goto L_028EED98;
|
|
L_028EED98: ; // 0x28eed98
|
|
/* 028EED98 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028EED9C */ cpu->r[3] = cpu->r[29];
|
|
/* 028EEDA0 */ Gambit_fn_028E89EC(cpu);
|
|
/* 028EEDA4 */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 028EEDA8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028EEDAC */ Gambit_fn_028EED60(cpu);
|
|
/* 028EEDB0 */ cpu->r[10] = 0x10140000u;
|
|
/* 028EEDB4 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEDB4 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028EEDB8 */ _t8 = cpu->r[10] + 0xFFFFC8CCu;
|
|
/* 028EEDB8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EEDBC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[10], cpu->f[0]);
|
|
/* 028EEDC0 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEDC0 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028EEDC0 */ if (_t10) goto L_028EEDC4; else goto L_028EEDD0;
|
|
L_028EEDC4: ; // 0x28eedc4
|
|
/* 028EEDC4 */ _t11 = cpu->r[1] + 0x00000018u;
|
|
/* 028EEDC4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028EEDC8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[0]);
|
|
/* 028EEDCC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEDCC */ _t13 = _t12 & 0x00000001u;
|
|
/* 028EEDCC */ if (_t13) goto L_028EEEC4; else goto L_028EEDD0;
|
|
L_028EEDD0: ; // 0x28eedd0
|
|
/* 028EEDD0 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EEDD0 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t14);
|
|
L_028EEDD4: ; // 0x28eedd4
|
|
/* 028EEDD4 */ /* nop */
|
|
/* 028EEDD8 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEDD8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EEDDC */ /* nop */
|
|
/* 028EEDE0 */ _t16 = cpu->r[1] + 0x00000070u;
|
|
/* 028EEDE0 */ rbrew_write32(cpu->mem, _t16, cpu->r[10]);
|
|
/* 028EEDE4 */ /* nop */
|
|
/* 028EEDE8 */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 028EEDE8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028EEDEC */ /* nop */
|
|
/* 028EEDF0 */ _t18 = cpu->r[1] + 0x00000024u;
|
|
/* 028EEDF0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028EEDF4 */ cpu->f[11] = cpu->f[12] + cpu->f[11];
|
|
/* 028EEDF8 */ _t19 = cpu->r[1] + 0x00000028u;
|
|
/* 028EEDF8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028EEDFC */ _t20 = cpu->r[1] + 0x00000060u;
|
|
/* 028EEDFC */ rbrew_write32(cpu->mem, _t20, cpu->r[11]);
|
|
/* 028EEE00 */ _t21 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EEE00 */ rbrew_write_f32(cpu->mem, _t21, cpu->f[11]);
|
|
/* 028EEE04 */ _t22 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EEE04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028EEE08 */ _t23 = cpu->r[1] + 0x00000064u;
|
|
/* 028EEE08 */ rbrew_write32(cpu->mem, _t23, cpu->r[8]);
|
|
/* 028EEE0C */ _t24 = cpu->r[1] + 0x00000068u;
|
|
/* 028EEE0C */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028EEE10 */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEE10 */ cpu->r[6] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028EEE14 */ _t26 = cpu->r[1] + 0x00000078u;
|
|
/* 028EEE14 */ rbrew_write32(cpu->mem, _t26, cpu->r[11]);
|
|
/* 028EEE18 */ _t27 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028EEE18 */ rbrew_write32(cpu->mem, _t27, cpu->r[6]);
|
|
/* 028EEE1C */ _t28 = cpu->r[1] + 0x00000010u;
|
|
/* 028EEE1C */ cpu->r[12] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028EEE20 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EEE24 */ _t29 = cpu->r[1] + 0x00000080u;
|
|
/* 028EEE24 */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 028EEE28 */ cpu->r[5] = cpu->r[1] + 0x00000020u;
|
|
/* 028EEE2C */ _t30 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028EEE2C */ rbrew_write32(cpu->mem, _t30, cpu->r[8]);
|
|
/* 028EEE30 */ cpu->r[4] = cpu->r[1] + 0x0000006Cu;
|
|
/* 028EEE34 */ _t31 = cpu->r[1] + 0x00000074u;
|
|
/* 028EEE34 */ rbrew_write32(cpu->mem, _t31, cpu->r[12]);
|
|
/* 028EEE38 */ Gambit_fn_02819764(cpu);
|
|
/* 028EEE3C */ /* nop */
|
|
/* 028EEE40 */ _t32 = cpu->r[1] + 0x00000020u;
|
|
/* 028EEE40 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 028EEE44 */ /* nop */
|
|
/* 028EEE48 */ /* nop */
|
|
/* 028EEE4C */ _t33 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EEE4C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t33);
|
|
/* 028EEE50 */ /* nop */
|
|
/* 028EEE54 */ _t34 = cpu->r[1] + 0x00000030u;
|
|
/* 028EEE54 */ cpu->r[5] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028EEE58 */ _t35 = cpu->r[1] + 0x00000034u;
|
|
/* 028EEE58 */ cpu->r[6] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028EEE5C */ _t36 = cpu->r[1] + 0x00000054u;
|
|
/* 028EEE5C */ rbrew_write32(cpu->mem, _t36, cpu->r[5]);
|
|
/* 028EEE60 */ cpu->f[13] = cpu->f[11] * cpu->f[10];
|
|
/* 028EEE64 */ _t37 = cpu->r[1] + 0x00000058u;
|
|
/* 028EEE64 */ rbrew_write32(cpu->mem, _t37, cpu->r[6]);
|
|
/* 028EEE68 */ /* nop */
|
|
/* 028EEE6C */ _t38 = cpu->r[1] + 0x00000010u;
|
|
/* 028EEE6C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 028EEE70 */ _t39 = cpu->r[1] + 0x00000038u;
|
|
/* 028EEE70 */ rbrew_write_f32(cpu->mem, _t39, cpu->f[13]);
|
|
/* 028EEE74 */ /* nop */
|
|
/* 028EEE78 */ _t40 = cpu->r[1] + 0x00000038u;
|
|
/* 028EEE78 */ cpu->r[7] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028EEE7C */ /* nop */
|
|
/* 028EEE80 */ _t41 = cpu->r[1] + 0x00000040u;
|
|
/* 028EEE80 */ cpu->r[11] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028EEE84 */ _t42 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028EEE84 */ rbrew_write32(cpu->mem, _t42, cpu->r[7]);
|
|
/* 028EEE88 */ _t43 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028EEE88 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t43);
|
|
/* 028EEE8C */ _t44 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028EEE8C */ cpu->r[9] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028EEE90 */ _t45 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028EEE90 */ rbrew_write32(cpu->mem, _t45, cpu->r[11]);
|
|
/* 028EEE94 */ cpu->f[11] = cpu->f[12] + cpu->f[13];
|
|
/* 028EEE98 */ _t46 = cpu->r[1] + 0x00000048u;
|
|
/* 028EEE98 */ rbrew_write32(cpu->mem, _t46, cpu->r[9]);
|
|
/* 028EEE9C */ _t47 = cpu->r[1] + 0x00000048u;
|
|
/* 028EEE9C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 028EEEA0 */ _t48 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028EEEA0 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t48);
|
|
/* 028EEEA4 */ _t49 = cpu->r[1] + 0x00000044u;
|
|
/* 028EEEA4 */ rbrew_write_f32(cpu->mem, _t49, cpu->f[11]);
|
|
/* 028EEEA8 */ _t50 = cpu->r[1] + 0x00000044u;
|
|
/* 028EEEA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028EEEAC */ _t51 = cpu->r[31] + 0x00000000u;
|
|
/* 028EEEAC */ rbrew_write_f32(cpu->mem, _t51, cpu->f[0]);
|
|
/* 028EEEB0 */ _t52 = cpu->r[1] + 0x00000050u;
|
|
/* 028EEEB0 */ rbrew_write32(cpu->mem, _t52, cpu->r[0]);
|
|
/* 028EEEB4 */ _t53 = cpu->r[1] + 0x00000050u;
|
|
/* 028EEEB4 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t53);
|
|
/* 028EEEB8 */ _t54 = cpu->r[31] + 0x00000004u;
|
|
/* 028EEEB8 */ rbrew_write_f32(cpu->mem, _t54, cpu->f[12]);
|
|
/* 028EEEBC */ _t55 = cpu->r[31] + 0x00000008u;
|
|
/* 028EEEBC */ rbrew_write_f32(cpu->mem, _t55, cpu->f[10]);
|
|
/* 028EEEC0 */ goto L_028EEEE8;
|
|
L_028EEEC4: ; // 0x28eeec4
|
|
/* 028EEEC4 */ _t56 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EEEC4 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 028EEEC8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[0]);
|
|
/* 028EEECC */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEECC */ _t58 = _t57 & 0x00000001u;
|
|
/* 028EEECC */ if (_t58) goto L_028EEED0; else goto L_028EEDD4;
|
|
L_028EEED0: ; // 0x28eeed0
|
|
/* 028EEED0 */ _t59 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEED0 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t59);
|
|
/* 028EEED4 */ _t60 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEED4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t60);
|
|
/* 028EEED8 */ _t61 = cpu->r[31] + 0x00000000u;
|
|
/* 028EEED8 */ rbrew_write_f32(cpu->mem, _t61, cpu->f[10]);
|
|
/* 028EEEDC */ _t62 = cpu->r[1] + 0x00000010u;
|
|
/* 028EEEDC */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t62);
|
|
/* 028EEEE0 */ _t63 = cpu->r[31] + 0x00000004u;
|
|
/* 028EEEE0 */ rbrew_write_f32(cpu->mem, _t63, cpu->f[12]);
|
|
/* 028EEEE4 */ _t64 = cpu->r[31] + 0x00000008u;
|
|
/* 028EEEE4 */ rbrew_write_f32(cpu->mem, _t64, cpu->f[10]);
|
|
L_028EEEE8: ; // 0x28eeee8
|
|
/* 028EEEE8 */ _t65 = cpu->r[1] + 0x00000084u;
|
|
/* 028EEEE8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028EEEEC */ _t66 = cpu->r[1] + 0x00000094u;
|
|
/* 028EEEEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028EEEF0 */ _t67 = cpu->r[1] + 0x00000088u;
|
|
/* 028EEEF0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028EEEF4 */ cpu->lr = cpu->r[0];
|
|
/* 028EEEF8 */ _t68 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028EEEF8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028EEEFC */ cpu->r[1] = cpu->r[1] + 0x00000090u;
|
|
/* 028EEF00 */ return;
|
|
}
|
|
|
|
// fn_028EEF04 @ 0x28eef04
|
|
void Gambit_fn_028EEF04(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_028EEF04: ; // 0x28eef04
|
|
/* 028EEF04 */ cpu->r[0] = cpu->lr;
|
|
/* 028EEF08 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EEF08 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EEF08 */ cpu->r[1] = _t0;
|
|
/* 028EEF0C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEF0C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EEF10 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEF10 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EEF14 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EEF14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EEF18 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EEF1C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEF1C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EEF20 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEF20 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EEF20 */ if (_t5) goto L_028EEF24; else goto L_028EEF34;
|
|
L_028EEF24: ; // 0x28eef24
|
|
/* 028EEF24 */ cpu->r[3] = 0x000000A8u;
|
|
/* 028EEF28 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EEF2C */ cpu->r[31] = cpu->r[3];
|
|
/* 028EEF2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EEF30 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEF30 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EEF30 */ if (_t7) goto L_028EEF80; else goto L_028EEF34;
|
|
L_028EEF34: ; // 0x28eef34
|
|
/* 028EEF34 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EEF38 */ cpu->r[4] = cpu->r[30];
|
|
/* 028EEF3C */ Gambit_fn_028E87F0(cpu);
|
|
/* 028EEF40 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EEF44 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EEF48 */ cpu->r[0] = cpu->r[0] + 0xFFFFC8E0u;
|
|
/* 028EEF4C */ cpu->r[12] = cpu->r[12] + 0xFFFFC950u;
|
|
/* 028EEF50 */ _t8 = cpu->r[31] + 0x00000008u;
|
|
/* 028EEF50 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028EEF54 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EEF58 */ _t9 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EEF58 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 028EEF5C */ cpu->r[0] = cpu->r[0] + 0xFFFFC968u;
|
|
/* 028EEF60 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028EEF64 */ _t10 = cpu->r[31] + 0x00000020u;
|
|
/* 028EEF64 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028EEF68 */ _t11 = cpu->r[12] + 0x00006344u;
|
|
/* 028EEF68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EEF68 */ cpu->r[12] = _t11;
|
|
/* 028EEF6C */ _t12 = cpu->r[31] + 0x0000009Cu;
|
|
/* 028EEF6C */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 028EEF70 */ _t13 = cpu->r[12] + 0x00000004u;
|
|
/* 028EEF70 */ cpu->r[11] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EEF74 */ _t14 = cpu->r[31] + 0x000000A0u;
|
|
/* 028EEF74 */ rbrew_write32(cpu->mem, _t14, cpu->r[11]);
|
|
/* 028EEF78 */ _t15 = cpu->r[12] + 0x00000008u;
|
|
/* 028EEF78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EEF7C */ _t16 = cpu->r[31] + 0x000000A4u;
|
|
/* 028EEF7C */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
L_028EEF80: ; // 0x28eef80
|
|
/* 028EEF80 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEF80 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028EEF84 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EEF88 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEF88 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028EEF8C */ cpu->lr = cpu->r[0];
|
|
/* 028EEF90 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEF90 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028EEF94 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EEF98 */ return;
|
|
}
|
|
|
|
// fn_028EEF08 @ 0x28eef08
|
|
void Gambit_fn_028EEF08(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_028EEF08: ; // 0x28eef08
|
|
/* 028EEF08 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EEF08 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EEF08 */ cpu->r[1] = _t0;
|
|
/* 028EEF0C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEF0C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EEF10 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEF10 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EEF14 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EEF14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EEF18 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EEF1C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEF1C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EEF20 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEF20 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EEF20 */ if (_t5) goto L_028EEF24; else goto L_028EEF34;
|
|
L_028EEF24: ; // 0x28eef24
|
|
/* 028EEF24 */ cpu->r[3] = 0x000000A8u;
|
|
/* 028EEF28 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EEF2C */ cpu->r[31] = cpu->r[3];
|
|
/* 028EEF2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EEF30 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEF30 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EEF30 */ if (_t7) goto L_028EEF80; else goto L_028EEF34;
|
|
L_028EEF34: ; // 0x28eef34
|
|
/* 028EEF34 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EEF38 */ cpu->r[4] = cpu->r[30];
|
|
/* 028EEF3C */ Gambit_fn_028E87F0(cpu);
|
|
/* 028EEF40 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EEF44 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EEF48 */ cpu->r[0] = cpu->r[0] + 0xFFFFC8E0u;
|
|
/* 028EEF4C */ cpu->r[12] = cpu->r[12] + 0xFFFFC950u;
|
|
/* 028EEF50 */ _t8 = cpu->r[31] + 0x00000008u;
|
|
/* 028EEF50 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028EEF54 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EEF58 */ _t9 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EEF58 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 028EEF5C */ cpu->r[0] = cpu->r[0] + 0xFFFFC968u;
|
|
/* 028EEF60 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028EEF64 */ _t10 = cpu->r[31] + 0x00000020u;
|
|
/* 028EEF64 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028EEF68 */ _t11 = cpu->r[12] + 0x00006344u;
|
|
/* 028EEF68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EEF68 */ cpu->r[12] = _t11;
|
|
/* 028EEF6C */ _t12 = cpu->r[31] + 0x0000009Cu;
|
|
/* 028EEF6C */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 028EEF70 */ _t13 = cpu->r[12] + 0x00000004u;
|
|
/* 028EEF70 */ cpu->r[11] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EEF74 */ _t14 = cpu->r[31] + 0x000000A0u;
|
|
/* 028EEF74 */ rbrew_write32(cpu->mem, _t14, cpu->r[11]);
|
|
/* 028EEF78 */ _t15 = cpu->r[12] + 0x00000008u;
|
|
/* 028EEF78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EEF7C */ _t16 = cpu->r[31] + 0x000000A4u;
|
|
/* 028EEF7C */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
L_028EEF80: ; // 0x28eef80
|
|
/* 028EEF80 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEF80 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028EEF84 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EEF88 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEF88 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028EEF8C */ cpu->lr = cpu->r[0];
|
|
/* 028EEF90 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEF90 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028EEF94 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EEF98 */ return;
|
|
}
|
|
|
|
// fn_028EEF9C @ 0x28eef9c
|
|
void Gambit_fn_028EEF9C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028EEF9C: ; // 0x28eef9c
|
|
/* 028EEF9C */ cpu->r[0] = cpu->lr;
|
|
/* 028EEFA0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EEFA0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EEFA0 */ cpu->r[1] = _t0;
|
|
/* 028EEFA4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEFA4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EEFA8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEFA8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EEFAC */ cpu->r[30] = cpu->r[3];
|
|
/* 028EEFAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EEFB0 */ cpu->r[31] = cpu->r[4];
|
|
/* 028EEFB4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEFB4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EEFB8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEFB8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EEFB8 */ if (_t5) goto L_028EEFF0; else goto L_028EEFBC;
|
|
L_028EEFBC: ; // 0x28eefbc
|
|
/* 028EEFBC */ cpu->r[12] = 0x10140000u;
|
|
/* 028EEFC0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EEFC4 */ cpu->r[12] = cpu->r[12] + 0xFFFFC950u;
|
|
/* 028EEFC8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EEFCC */ _t6 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028EEFCC */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028EEFD0 */ cpu->r[0] = cpu->r[0] + 0xFFFFC968u;
|
|
/* 028EEFD4 */ cpu->r[4] = 0x00000000u;
|
|
/* 028EEFD8 */ _t7 = cpu->r[30] + 0x00000020u;
|
|
/* 028EEFD8 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028EEFDC */ Gambit_fn_028E8510(cpu);
|
|
/* 028EEFE0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EEFE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EEFE4 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEFE4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EEFE4 */ if (_t9) goto L_028EEFF0; else goto L_028EEFE8;
|
|
L_028EEFE8: ; // 0x28eefe8
|
|
/* 028EEFE8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EEFEC */ Gambit_fn_02801BB0(cpu);
|
|
L_028EEFF0: ; // 0x28eeff0
|
|
/* 028EEFF0 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEFF0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EEFF4 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEFF4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EEFF8 */ cpu->lr = cpu->r[0];
|
|
/* 028EEFFC */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEFFC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EF000 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EF004 */ return;
|
|
}
|
|
|
|
// fn_028EEFA0 @ 0x28eefa0
|
|
void Gambit_fn_028EEFA0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028EEFA0: ; // 0x28eefa0
|
|
/* 028EEFA0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EEFA0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EEFA0 */ cpu->r[1] = _t0;
|
|
/* 028EEFA4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEFA4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EEFA8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEFA8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EEFAC */ cpu->r[30] = cpu->r[3];
|
|
/* 028EEFAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EEFB0 */ cpu->r[31] = cpu->r[4];
|
|
/* 028EEFB4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEFB4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EEFB8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEFB8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EEFB8 */ if (_t5) goto L_028EEFF0; else goto L_028EEFBC;
|
|
L_028EEFBC: ; // 0x28eefbc
|
|
/* 028EEFBC */ cpu->r[12] = 0x10140000u;
|
|
/* 028EEFC0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EEFC4 */ cpu->r[12] = cpu->r[12] + 0xFFFFC950u;
|
|
/* 028EEFC8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EEFCC */ _t6 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028EEFCC */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028EEFD0 */ cpu->r[0] = cpu->r[0] + 0xFFFFC968u;
|
|
/* 028EEFD4 */ cpu->r[4] = 0x00000000u;
|
|
/* 028EEFD8 */ _t7 = cpu->r[30] + 0x00000020u;
|
|
/* 028EEFD8 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028EEFDC */ Gambit_fn_028E8510(cpu);
|
|
/* 028EEFE0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EEFE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EEFE4 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EEFE4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EEFE4 */ if (_t9) goto L_028EEFF0; else goto L_028EEFE8;
|
|
L_028EEFE8: ; // 0x28eefe8
|
|
/* 028EEFE8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EEFEC */ Gambit_fn_02801BB0(cpu);
|
|
L_028EEFF0: ; // 0x28eeff0
|
|
/* 028EEFF0 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028EEFF0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EEFF4 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028EEFF4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EEFF8 */ cpu->lr = cpu->r[0];
|
|
/* 028EEFFC */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EEFFC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EF000 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EF004 */ return;
|
|
}
|
|
|
|
// fn_028EF008 @ 0x28ef008
|
|
void Gambit_fn_028EF008(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028EF008: ; // 0x28ef008
|
|
/* 028EF008 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028EF008 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028EF00C */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 028EF00C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028EF010 */ return;
|
|
}
|
|
|
|
// fn_028EF014 @ 0x28ef014
|
|
void Gambit_fn_028EF014(CPUState* cpu) {
|
|
L_028EF014: ; // 0x28ef014
|
|
/* 028EF014 */ return;
|
|
}
|
|
|
|
// fn_028EF018 @ 0x28ef018
|
|
void Gambit_fn_028EF018(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028EF018: ; // 0x28ef018
|
|
/* 028EF018 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028EF018 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028EF01C */ _t1 = cpu->r[3] + 0x0000009Cu;
|
|
/* 028EF01C */ rbrew_write_f32(cpu->mem, _t1, cpu->f[0]);
|
|
/* 028EF020 */ _t2 = cpu->r[4] + 0x00000004u;
|
|
/* 028EF020 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t2);
|
|
/* 028EF024 */ _t3 = cpu->r[3] + 0x000000A0u;
|
|
/* 028EF024 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[0]);
|
|
/* 028EF028 */ _t4 = cpu->r[4] + 0x00000008u;
|
|
/* 028EF028 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028EF02C */ _t5 = cpu->r[3] + 0x000000A4u;
|
|
/* 028EF02C */ rbrew_write_f32(cpu->mem, _t5, cpu->f[0]);
|
|
/* 028EF030 */ return;
|
|
}
|
|
|
|
// fn_028EF034 @ 0x28ef034
|
|
void Gambit_fn_028EF034(CPUState* 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_028E8604: ; // 0x28e8604
|
|
/* 028E8604 */ cpu->r[0] = cpu->lr;
|
|
/* 028E8608 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028E8608 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028E8608 */ cpu->r[1] = _t0;
|
|
/* 028E860C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028E860C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028E8610 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8610 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028E8614 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8614 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028E8618 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8618 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028E861C */ cpu->r[29] = cpu->r[6];
|
|
/* 028E8620 */ cpu->r[31] = cpu->r[5];
|
|
/* 028E8624 */ cpu->r[5] = cpu->r[29];
|
|
/* 028E8628 */ cpu->r[30] = cpu->r[4];
|
|
/* 028E862C */ Gambit_fn_028E8584(cpu);
|
|
/* 028E8630 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028E8634 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028E8634 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028E8634 */ if (_t6) goto L_028E8638; else goto L_028E8674;
|
|
L_028E8638: ; // 0x28e8638
|
|
/* 028E8638 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028E863C */ _t7 = cpu->r[12] + 0x00006338u;
|
|
/* 028E863C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028E863C */ cpu->r[12] = _t7;
|
|
/* 028E8640 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028E8640 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[0]);
|
|
/* 028E8644 */ _t9 = cpu->r[12] + 0x00000004u;
|
|
/* 028E8644 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028E8648 */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 028E8648 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028E864C */ _t11 = cpu->r[12] + 0x00000008u;
|
|
/* 028E864C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028E8650 */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 028E8650 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 028E8654 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8654 */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028E8658 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8658 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028E865C */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 028E865C */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028E8660 */ cpu->lr = cpu->r[0];
|
|
/* 028E8664 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8664 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028E8668 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028E866C */ cpu->r[3] = 0x00000000u;
|
|
/* 028E8670 */ return;
|
|
L_028E8674: ; // 0x28e8674
|
|
/* 028E8674 */ cpu->r[5] = cpu->r[29];
|
|
/* 028E8678 */ cpu->r[4] = cpu->r[31];
|
|
/* 028E867C */ cpu->r[3] = cpu->r[30];
|
|
/* 028E8680 */ Gambit_fn_028D60D8(cpu);
|
|
/* 028E8684 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8684 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028E8688 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8688 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028E868C */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028E868C */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028E8690 */ cpu->lr = cpu->r[0];
|
|
/* 028E8694 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8694 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028E8698 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028E869C */ cpu->r[3] = 0x00000001u;
|
|
/* 028E86A0 */ return;
|
|
L_028EF034: ; // 0x28ef034
|
|
/* 028EF034 */ cpu->r[3] = cpu->r[3] + 0xFFFFFFF4u;
|
|
/* 028EF038 */ goto L_028E8604;
|
|
}
|
|
|
|
// fn_028EF03C @ 0x28ef03c
|
|
void Gambit_fn_028EF03C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028EF03C: ; // 0x28ef03c
|
|
/* 028EF03C */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF040 */ _t0 = cpu->r[12] + 0xFFFFC978u;
|
|
/* 028EF040 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028EF044 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028EF048 */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EF048 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028EF048 */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EF048 */ goto L_028EF04C;
|
|
L_028EF04C: ; // 0x28ef04c
|
|
/* 028EF04C */ _t3 = cpu->r[3] + 0x0000009Cu;
|
|
/* 028EF04C */ rbrew_write_f32(cpu->mem, _t3, cpu->f[1]);
|
|
/* 028EF050 */ return;
|
|
}
|
|
|
|
// fn_028EF054 @ 0x28ef054
|
|
void Gambit_fn_028EF054(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028EF054: ; // 0x28ef054
|
|
/* 028EF054 */ cpu->r[0] = cpu->lr;
|
|
/* 028EF058 */ _t0 = cpu->r[1] + 0xFFFFFF98u;
|
|
/* 028EF058 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF058 */ cpu->r[1] = _t0;
|
|
/* 028EF05C */ _t1 = cpu->r[1] + 0x00000060u;
|
|
/* 028EF05C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EF060 */ _t2 = cpu->r[1] + 0x00000064u;
|
|
/* 028EF060 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EF064 */ cpu->r[31] = cpu->r[5];
|
|
/* 028EF064 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EF068 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EF06C */ _t3 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028EF06C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028EF070 */ _t4 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028EF070 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028EF074 */ cpu->r[29] = cpu->r[3];
|
|
/* 028EF078 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF078 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028EF078 */ if (_t6) goto L_028EF174; else goto L_028EF07C;
|
|
L_028EF07C: ; // 0x28ef07c
|
|
/* 028EF07C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028EF080 */ cpu->r[3] = cpu->r[29];
|
|
/* 028EF084 */ Gambit_fn_028E89EC(cpu);
|
|
/* 028EF088 */ /* nop */
|
|
/* 028EF08C */ /* nop */
|
|
/* 028EF090 */ _t7 = cpu->r[1] + 0x00000010u;
|
|
/* 028EF090 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028EF094 */ /* nop */
|
|
/* 028EF098 */ _t8 = cpu->r[30] + 0x00000008u;
|
|
/* 028EF098 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EF09C */ /* nop */
|
|
/* 028EF0A0 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF0A0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028EF0A4 */ cpu->f[0] = cpu->f[8] - cpu->f[9];
|
|
/* 028EF0A8 */ _t10 = cpu->r[1] + 0x00000018u;
|
|
/* 028EF0A8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EF0AC */ _t11 = cpu->r[1] + 0x00000038u;
|
|
/* 028EF0AC */ rbrew_write32(cpu->mem, _t11, cpu->r[8]);
|
|
/* 028EF0B0 */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EF0B0 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 028EF0B4 */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EF0B4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EF0B8 */ _t14 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028EF0B8 */ rbrew_write32(cpu->mem, _t14, cpu->r[9]);
|
|
/* 028EF0BC */ cpu->r[3] = cpu->r[1] + 0x00000038u;
|
|
/* 028EF0C0 */ _t15 = cpu->r[1] + 0x00000040u;
|
|
/* 028EF0C0 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 028EF0C4 */ Gambit_fn_02C69350(cpu);
|
|
/* 028EF0C8 */ _t16 = cpu->r[29] + 0x0000009Cu;
|
|
/* 028EF0C8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028EF0CC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028EF0D0 */ _t17 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF0D0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028EF0D0 */ if (_t18) goto L_028EF0F0; else goto L_028EF0D4;
|
|
L_028EF0D4: ; // 0x28ef0d4
|
|
/* 028EF0D4 */ _t19 = cpu->r[30] + 0x00000000u;
|
|
/* 028EF0D4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 028EF0D8 */ _t20 = cpu->r[31] + 0x00000000u;
|
|
/* 028EF0D8 */ rbrew_write_f32(cpu->mem, _t20, cpu->f[0]);
|
|
/* 028EF0DC */ _t21 = cpu->r[30] + 0x00000004u;
|
|
/* 028EF0DC */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028EF0E0 */ _t22 = cpu->r[31] + 0x00000004u;
|
|
/* 028EF0E0 */ rbrew_write_f32(cpu->mem, _t22, cpu->f[8]);
|
|
/* 028EF0E4 */ _t23 = cpu->r[30] + 0x00000008u;
|
|
/* 028EF0E4 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 028EF0E8 */ _t24 = cpu->r[31] + 0x00000008u;
|
|
/* 028EF0E8 */ rbrew_write_f32(cpu->mem, _t24, cpu->f[13]);
|
|
/* 028EF0EC */ goto L_028EF174;
|
|
L_028EF0F0: ; // 0x28ef0f0
|
|
/* 028EF0F0 */ cpu->f[11] = cpu->f[0] / cpu->f[1];
|
|
/* 028EF0F4 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 028EF0F4 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028EF0F8 */ /* nop */
|
|
/* 028EF0FC */ /* nop */
|
|
/* 028EF100 */ _t26 = cpu->r[1] + 0x00000040u;
|
|
/* 028EF100 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028EF104 */ /* nop */
|
|
/* 028EF108 */ /* nop */
|
|
/* 028EF10C */ _t27 = cpu->r[1] + 0x00000024u;
|
|
/* 028EF10C */ cpu->r[7] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028EF110 */ _t28 = cpu->r[1] + 0x00000020u;
|
|
/* 028EF110 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028EF114 */ cpu->f[11] = cpu->f[12] * cpu->f[11];
|
|
/* 028EF118 */ _t29 = cpu->r[1] + 0x00000054u;
|
|
/* 028EF118 */ rbrew_write32(cpu->mem, _t29, cpu->r[7]);
|
|
/* 028EF11C */ _t30 = cpu->r[1] + 0x00000050u;
|
|
/* 028EF11C */ rbrew_write32(cpu->mem, _t30, cpu->r[0]);
|
|
/* 028EF120 */ /* nop */
|
|
/* 028EF124 */ _t31 = cpu->r[1] + 0x00000028u;
|
|
/* 028EF124 */ rbrew_write_f32(cpu->mem, _t31, cpu->f[11]);
|
|
/* 028EF128 */ _t32 = cpu->r[1] + 0x00000028u;
|
|
/* 028EF128 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028EF12C */ /* nop */
|
|
/* 028EF130 */ /* nop */
|
|
/* 028EF134 */ _t33 = cpu->r[1] + 0x00000030u;
|
|
/* 028EF134 */ cpu->r[12] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028EF138 */ _t34 = cpu->r[1] + 0x00000058u;
|
|
/* 028EF138 */ rbrew_write32(cpu->mem, _t34, cpu->r[0]);
|
|
/* 028EF13C */ _t35 = cpu->r[1] + 0x00000058u;
|
|
/* 028EF13C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 028EF140 */ _t36 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EF140 */ cpu->r[11] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028EF144 */ _t37 = cpu->r[1] + 0x00000048u;
|
|
/* 028EF144 */ rbrew_write32(cpu->mem, _t37, cpu->r[12]);
|
|
/* 028EF148 */ _t38 = cpu->r[1] + 0x00000048u;
|
|
/* 028EF148 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 028EF14C */ cpu->f[0] = cpu->f[8] + cpu->f[11];
|
|
/* 028EF150 */ _t39 = cpu->r[1] + 0x00000044u;
|
|
/* 028EF150 */ rbrew_write32(cpu->mem, _t39, cpu->r[11]);
|
|
/* 028EF154 */ _t40 = cpu->r[1] + 0x00000044u;
|
|
/* 028EF154 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 028EF158 */ _t41 = cpu->r[1] + 0x00000034u;
|
|
/* 028EF158 */ rbrew_write_f32(cpu->mem, _t41, cpu->f[0]);
|
|
/* 028EF15C */ _t42 = cpu->r[1] + 0x00000034u;
|
|
/* 028EF15C */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028EF160 */ _t43 = cpu->r[31] + 0x00000004u;
|
|
/* 028EF160 */ rbrew_write_f32(cpu->mem, _t43, cpu->f[13]);
|
|
/* 028EF164 */ _t44 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028EF164 */ rbrew_write32(cpu->mem, _t44, cpu->r[0]);
|
|
/* 028EF168 */ _t45 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028EF168 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t45);
|
|
/* 028EF16C */ _t46 = cpu->r[31] + 0x00000000u;
|
|
/* 028EF16C */ rbrew_write_f32(cpu->mem, _t46, cpu->f[10]);
|
|
/* 028EF170 */ _t47 = cpu->r[31] + 0x00000008u;
|
|
/* 028EF170 */ rbrew_write_f32(cpu->mem, _t47, cpu->f[13]);
|
|
L_028EF174: ; // 0x28ef174
|
|
/* 028EF174 */ _t48 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028EF174 */ cpu->r[29] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028EF178 */ _t49 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028EF178 */ cpu->r[0] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028EF17C */ _t50 = cpu->r[1] + 0x00000060u;
|
|
/* 028EF17C */ cpu->r[30] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028EF180 */ cpu->lr = cpu->r[0];
|
|
/* 028EF184 */ _t51 = cpu->r[1] + 0x00000064u;
|
|
/* 028EF184 */ cpu->r[31] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028EF188 */ cpu->r[1] = cpu->r[1] + 0x00000068u;
|
|
/* 028EF18C */ return;
|
|
}
|
|
|
|
// fn_028EF058 @ 0x28ef058
|
|
void Gambit_fn_028EF058(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028EF058: ; // 0x28ef058
|
|
/* 028EF058 */ _t0 = cpu->r[1] + 0xFFFFFF98u;
|
|
/* 028EF058 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF058 */ cpu->r[1] = _t0;
|
|
/* 028EF05C */ _t1 = cpu->r[1] + 0x00000060u;
|
|
/* 028EF05C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EF060 */ _t2 = cpu->r[1] + 0x00000064u;
|
|
/* 028EF060 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EF064 */ cpu->r[31] = cpu->r[5];
|
|
/* 028EF064 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EF068 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EF06C */ _t3 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028EF06C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028EF070 */ _t4 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028EF070 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028EF074 */ cpu->r[29] = cpu->r[3];
|
|
/* 028EF078 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF078 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028EF078 */ if (_t6) goto L_028EF174; else goto L_028EF07C;
|
|
L_028EF07C: ; // 0x28ef07c
|
|
/* 028EF07C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028EF080 */ cpu->r[3] = cpu->r[29];
|
|
/* 028EF084 */ Gambit_fn_028E89EC(cpu);
|
|
/* 028EF088 */ /* nop */
|
|
/* 028EF08C */ /* nop */
|
|
/* 028EF090 */ _t7 = cpu->r[1] + 0x00000010u;
|
|
/* 028EF090 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028EF094 */ /* nop */
|
|
/* 028EF098 */ _t8 = cpu->r[30] + 0x00000008u;
|
|
/* 028EF098 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EF09C */ /* nop */
|
|
/* 028EF0A0 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF0A0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028EF0A4 */ cpu->f[0] = cpu->f[8] - cpu->f[9];
|
|
/* 028EF0A8 */ _t10 = cpu->r[1] + 0x00000018u;
|
|
/* 028EF0A8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EF0AC */ _t11 = cpu->r[1] + 0x00000038u;
|
|
/* 028EF0AC */ rbrew_write32(cpu->mem, _t11, cpu->r[8]);
|
|
/* 028EF0B0 */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EF0B0 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 028EF0B4 */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EF0B4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EF0B8 */ _t14 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028EF0B8 */ rbrew_write32(cpu->mem, _t14, cpu->r[9]);
|
|
/* 028EF0BC */ cpu->r[3] = cpu->r[1] + 0x00000038u;
|
|
/* 028EF0C0 */ _t15 = cpu->r[1] + 0x00000040u;
|
|
/* 028EF0C0 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 028EF0C4 */ Gambit_fn_02C69350(cpu);
|
|
/* 028EF0C8 */ _t16 = cpu->r[29] + 0x0000009Cu;
|
|
/* 028EF0C8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028EF0CC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028EF0D0 */ _t17 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF0D0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028EF0D0 */ if (_t18) goto L_028EF0F0; else goto L_028EF0D4;
|
|
L_028EF0D4: ; // 0x28ef0d4
|
|
/* 028EF0D4 */ _t19 = cpu->r[30] + 0x00000000u;
|
|
/* 028EF0D4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 028EF0D8 */ _t20 = cpu->r[31] + 0x00000000u;
|
|
/* 028EF0D8 */ rbrew_write_f32(cpu->mem, _t20, cpu->f[0]);
|
|
/* 028EF0DC */ _t21 = cpu->r[30] + 0x00000004u;
|
|
/* 028EF0DC */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028EF0E0 */ _t22 = cpu->r[31] + 0x00000004u;
|
|
/* 028EF0E0 */ rbrew_write_f32(cpu->mem, _t22, cpu->f[8]);
|
|
/* 028EF0E4 */ _t23 = cpu->r[30] + 0x00000008u;
|
|
/* 028EF0E4 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 028EF0E8 */ _t24 = cpu->r[31] + 0x00000008u;
|
|
/* 028EF0E8 */ rbrew_write_f32(cpu->mem, _t24, cpu->f[13]);
|
|
/* 028EF0EC */ goto L_028EF174;
|
|
L_028EF0F0: ; // 0x28ef0f0
|
|
/* 028EF0F0 */ cpu->f[11] = cpu->f[0] / cpu->f[1];
|
|
/* 028EF0F4 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 028EF0F4 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028EF0F8 */ /* nop */
|
|
/* 028EF0FC */ /* nop */
|
|
/* 028EF100 */ _t26 = cpu->r[1] + 0x00000040u;
|
|
/* 028EF100 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028EF104 */ /* nop */
|
|
/* 028EF108 */ /* nop */
|
|
/* 028EF10C */ _t27 = cpu->r[1] + 0x00000024u;
|
|
/* 028EF10C */ cpu->r[7] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028EF110 */ _t28 = cpu->r[1] + 0x00000020u;
|
|
/* 028EF110 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028EF114 */ cpu->f[11] = cpu->f[12] * cpu->f[11];
|
|
/* 028EF118 */ _t29 = cpu->r[1] + 0x00000054u;
|
|
/* 028EF118 */ rbrew_write32(cpu->mem, _t29, cpu->r[7]);
|
|
/* 028EF11C */ _t30 = cpu->r[1] + 0x00000050u;
|
|
/* 028EF11C */ rbrew_write32(cpu->mem, _t30, cpu->r[0]);
|
|
/* 028EF120 */ /* nop */
|
|
/* 028EF124 */ _t31 = cpu->r[1] + 0x00000028u;
|
|
/* 028EF124 */ rbrew_write_f32(cpu->mem, _t31, cpu->f[11]);
|
|
/* 028EF128 */ _t32 = cpu->r[1] + 0x00000028u;
|
|
/* 028EF128 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028EF12C */ /* nop */
|
|
/* 028EF130 */ /* nop */
|
|
/* 028EF134 */ _t33 = cpu->r[1] + 0x00000030u;
|
|
/* 028EF134 */ cpu->r[12] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028EF138 */ _t34 = cpu->r[1] + 0x00000058u;
|
|
/* 028EF138 */ rbrew_write32(cpu->mem, _t34, cpu->r[0]);
|
|
/* 028EF13C */ _t35 = cpu->r[1] + 0x00000058u;
|
|
/* 028EF13C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 028EF140 */ _t36 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EF140 */ cpu->r[11] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028EF144 */ _t37 = cpu->r[1] + 0x00000048u;
|
|
/* 028EF144 */ rbrew_write32(cpu->mem, _t37, cpu->r[12]);
|
|
/* 028EF148 */ _t38 = cpu->r[1] + 0x00000048u;
|
|
/* 028EF148 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 028EF14C */ cpu->f[0] = cpu->f[8] + cpu->f[11];
|
|
/* 028EF150 */ _t39 = cpu->r[1] + 0x00000044u;
|
|
/* 028EF150 */ rbrew_write32(cpu->mem, _t39, cpu->r[11]);
|
|
/* 028EF154 */ _t40 = cpu->r[1] + 0x00000044u;
|
|
/* 028EF154 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 028EF158 */ _t41 = cpu->r[1] + 0x00000034u;
|
|
/* 028EF158 */ rbrew_write_f32(cpu->mem, _t41, cpu->f[0]);
|
|
/* 028EF15C */ _t42 = cpu->r[1] + 0x00000034u;
|
|
/* 028EF15C */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028EF160 */ _t43 = cpu->r[31] + 0x00000004u;
|
|
/* 028EF160 */ rbrew_write_f32(cpu->mem, _t43, cpu->f[13]);
|
|
/* 028EF164 */ _t44 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028EF164 */ rbrew_write32(cpu->mem, _t44, cpu->r[0]);
|
|
/* 028EF168 */ _t45 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028EF168 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t45);
|
|
/* 028EF16C */ _t46 = cpu->r[31] + 0x00000000u;
|
|
/* 028EF16C */ rbrew_write_f32(cpu->mem, _t46, cpu->f[10]);
|
|
/* 028EF170 */ _t47 = cpu->r[31] + 0x00000008u;
|
|
/* 028EF170 */ rbrew_write_f32(cpu->mem, _t47, cpu->f[13]);
|
|
L_028EF174: ; // 0x28ef174
|
|
/* 028EF174 */ _t48 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028EF174 */ cpu->r[29] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028EF178 */ _t49 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028EF178 */ cpu->r[0] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028EF17C */ _t50 = cpu->r[1] + 0x00000060u;
|
|
/* 028EF17C */ cpu->r[30] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028EF180 */ cpu->lr = cpu->r[0];
|
|
/* 028EF184 */ _t51 = cpu->r[1] + 0x00000064u;
|
|
/* 028EF184 */ cpu->r[31] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028EF188 */ cpu->r[1] = cpu->r[1] + 0x00000068u;
|
|
/* 028EF18C */ return;
|
|
}
|
|
|
|
// fn_028EF190 @ 0x28ef190
|
|
void Gambit_fn_028EF190(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028EF190: ; // 0x28ef190
|
|
/* 028EF190 */ cpu->r[0] = cpu->lr;
|
|
/* 028EF194 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EF194 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF194 */ cpu->r[1] = _t0;
|
|
/* 028EF198 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF198 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EF19C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF19C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EF1A0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EF1A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EF1A4 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EF1A8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF1A8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EF1AC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF1AC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EF1AC */ if (_t5) goto L_028EF1B0; else goto L_028EF1C0;
|
|
L_028EF1B0: ; // 0x28ef1b0
|
|
/* 028EF1B0 */ cpu->r[3] = 0x000000A0u;
|
|
/* 028EF1B4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EF1B8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EF1B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EF1BC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF1BC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EF1BC */ if (_t7) goto L_028EF1FC; else goto L_028EF1C0;
|
|
L_028EF1C0: ; // 0x28ef1c0
|
|
/* 028EF1C0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EF1C4 */ cpu->r[4] = cpu->r[30];
|
|
/* 028EF1C8 */ Gambit_fn_028E87F0(cpu);
|
|
/* 028EF1CC */ cpu->r[0] = 0x10140000u;
|
|
/* 028EF1D0 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EF1D4 */ cpu->r[0] = cpu->r[0] + 0xFFFFC990u;
|
|
/* 028EF1D8 */ _t8 = cpu->r[11] + 0xFFFFC98Cu;
|
|
/* 028EF1D8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EF1DC */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF1E0 */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028EF1E0 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028EF1E4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EF1E8 */ cpu->r[12] = cpu->r[12] + 0xFFFFCA00u;
|
|
/* 028EF1EC */ _t10 = cpu->r[31] + 0x0000009Cu;
|
|
/* 028EF1EC */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028EF1F0 */ cpu->r[0] = cpu->r[0] + 0xFFFFCA18u;
|
|
/* 028EF1F4 */ _t11 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EF1F4 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
/* 028EF1F8 */ _t12 = cpu->r[31] + 0x00000020u;
|
|
/* 028EF1F8 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_028EF1FC: ; // 0x28ef1fc
|
|
/* 028EF1FC */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF1FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EF200 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EF204 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF204 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028EF208 */ cpu->lr = cpu->r[0];
|
|
/* 028EF20C */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF20C */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EF210 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EF214 */ return;
|
|
}
|
|
|
|
// fn_028EF194 @ 0x28ef194
|
|
void Gambit_fn_028EF194(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028EF194: ; // 0x28ef194
|
|
/* 028EF194 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EF194 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF194 */ cpu->r[1] = _t0;
|
|
/* 028EF198 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF198 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EF19C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF19C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EF1A0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EF1A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EF1A4 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EF1A8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF1A8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EF1AC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF1AC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EF1AC */ if (_t5) goto L_028EF1B0; else goto L_028EF1C0;
|
|
L_028EF1B0: ; // 0x28ef1b0
|
|
/* 028EF1B0 */ cpu->r[3] = 0x000000A0u;
|
|
/* 028EF1B4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EF1B8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EF1B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EF1BC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF1BC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EF1BC */ if (_t7) goto L_028EF1FC; else goto L_028EF1C0;
|
|
L_028EF1C0: ; // 0x28ef1c0
|
|
/* 028EF1C0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EF1C4 */ cpu->r[4] = cpu->r[30];
|
|
/* 028EF1C8 */ Gambit_fn_028E87F0(cpu);
|
|
/* 028EF1CC */ cpu->r[0] = 0x10140000u;
|
|
/* 028EF1D0 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EF1D4 */ cpu->r[0] = cpu->r[0] + 0xFFFFC990u;
|
|
/* 028EF1D8 */ _t8 = cpu->r[11] + 0xFFFFC98Cu;
|
|
/* 028EF1D8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EF1DC */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF1E0 */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028EF1E0 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028EF1E4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EF1E8 */ cpu->r[12] = cpu->r[12] + 0xFFFFCA00u;
|
|
/* 028EF1EC */ _t10 = cpu->r[31] + 0x0000009Cu;
|
|
/* 028EF1EC */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028EF1F0 */ cpu->r[0] = cpu->r[0] + 0xFFFFCA18u;
|
|
/* 028EF1F4 */ _t11 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EF1F4 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
/* 028EF1F8 */ _t12 = cpu->r[31] + 0x00000020u;
|
|
/* 028EF1F8 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_028EF1FC: ; // 0x28ef1fc
|
|
/* 028EF1FC */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF1FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EF200 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EF204 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF204 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028EF208 */ cpu->lr = cpu->r[0];
|
|
/* 028EF20C */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF20C */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EF210 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EF214 */ return;
|
|
}
|
|
|
|
// fn_028EF218 @ 0x28ef218
|
|
void Gambit_fn_028EF218(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028EF218: ; // 0x28ef218
|
|
/* 028EF218 */ cpu->r[0] = cpu->lr;
|
|
/* 028EF21C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EF21C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF21C */ cpu->r[1] = _t0;
|
|
/* 028EF220 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF220 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EF224 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF224 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EF228 */ cpu->r[30] = cpu->r[3];
|
|
/* 028EF228 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EF22C */ cpu->r[31] = cpu->r[4];
|
|
/* 028EF230 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF230 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EF234 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF234 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EF234 */ if (_t5) goto L_028EF26C; else goto L_028EF238;
|
|
L_028EF238: ; // 0x28ef238
|
|
/* 028EF238 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF23C */ cpu->r[3] = cpu->r[30];
|
|
/* 028EF240 */ cpu->r[12] = cpu->r[12] + 0xFFFFCA00u;
|
|
/* 028EF244 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EF248 */ _t6 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028EF248 */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028EF24C */ cpu->r[0] = cpu->r[0] + 0xFFFFCA18u;
|
|
/* 028EF250 */ cpu->r[4] = 0x00000000u;
|
|
/* 028EF254 */ _t7 = cpu->r[30] + 0x00000020u;
|
|
/* 028EF254 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028EF258 */ Gambit_fn_028E8510(cpu);
|
|
/* 028EF25C */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EF25C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EF260 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF260 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EF260 */ if (_t9) goto L_028EF26C; else goto L_028EF264;
|
|
L_028EF264: ; // 0x28ef264
|
|
/* 028EF264 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EF268 */ Gambit_fn_02801BB0(cpu);
|
|
L_028EF26C: ; // 0x28ef26c
|
|
/* 028EF26C */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF26C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EF270 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF270 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EF274 */ cpu->lr = cpu->r[0];
|
|
/* 028EF278 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF278 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EF27C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EF280 */ return;
|
|
}
|
|
|
|
// fn_028EF21C @ 0x28ef21c
|
|
void Gambit_fn_028EF21C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028EF21C: ; // 0x28ef21c
|
|
/* 028EF21C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EF21C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF21C */ cpu->r[1] = _t0;
|
|
/* 028EF220 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF220 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EF224 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF224 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EF228 */ cpu->r[30] = cpu->r[3];
|
|
/* 028EF228 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EF22C */ cpu->r[31] = cpu->r[4];
|
|
/* 028EF230 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF230 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EF234 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF234 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EF234 */ if (_t5) goto L_028EF26C; else goto L_028EF238;
|
|
L_028EF238: ; // 0x28ef238
|
|
/* 028EF238 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF23C */ cpu->r[3] = cpu->r[30];
|
|
/* 028EF240 */ cpu->r[12] = cpu->r[12] + 0xFFFFCA00u;
|
|
/* 028EF244 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EF248 */ _t6 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028EF248 */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028EF24C */ cpu->r[0] = cpu->r[0] + 0xFFFFCA18u;
|
|
/* 028EF250 */ cpu->r[4] = 0x00000000u;
|
|
/* 028EF254 */ _t7 = cpu->r[30] + 0x00000020u;
|
|
/* 028EF254 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028EF258 */ Gambit_fn_028E8510(cpu);
|
|
/* 028EF25C */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EF25C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EF260 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF260 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EF260 */ if (_t9) goto L_028EF26C; else goto L_028EF264;
|
|
L_028EF264: ; // 0x28ef264
|
|
/* 028EF264 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EF268 */ Gambit_fn_02801BB0(cpu);
|
|
L_028EF26C: ; // 0x28ef26c
|
|
/* 028EF26C */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF26C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EF270 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF270 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EF274 */ cpu->lr = cpu->r[0];
|
|
/* 028EF278 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF278 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EF27C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EF280 */ return;
|
|
}
|
|
|
|
// fn_028EF284 @ 0x28ef284
|
|
void Gambit_fn_028EF284(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028EF284: ; // 0x28ef284
|
|
/* 028EF284 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028EF284 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028EF288 */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 028EF288 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028EF28C */ return;
|
|
}
|
|
|
|
// fn_028EF290 @ 0x28ef290
|
|
void Gambit_fn_028EF290(CPUState* cpu) {
|
|
L_028EF290: ; // 0x28ef290
|
|
/* 028EF290 */ return;
|
|
}
|
|
|
|
// fn_028EF294 @ 0x28ef294
|
|
void Gambit_fn_028EF294(CPUState* 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_028E8604: ; // 0x28e8604
|
|
/* 028E8604 */ cpu->r[0] = cpu->lr;
|
|
/* 028E8608 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028E8608 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028E8608 */ cpu->r[1] = _t0;
|
|
/* 028E860C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028E860C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028E8610 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8610 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028E8614 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8614 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028E8618 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8618 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028E861C */ cpu->r[29] = cpu->r[6];
|
|
/* 028E8620 */ cpu->r[31] = cpu->r[5];
|
|
/* 028E8624 */ cpu->r[5] = cpu->r[29];
|
|
/* 028E8628 */ cpu->r[30] = cpu->r[4];
|
|
/* 028E862C */ Gambit_fn_028E8584(cpu);
|
|
/* 028E8630 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028E8634 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028E8634 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028E8634 */ if (_t6) goto L_028E8638; else goto L_028E8674;
|
|
L_028E8638: ; // 0x28e8638
|
|
/* 028E8638 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028E863C */ _t7 = cpu->r[12] + 0x00006338u;
|
|
/* 028E863C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028E863C */ cpu->r[12] = _t7;
|
|
/* 028E8640 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028E8640 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[0]);
|
|
/* 028E8644 */ _t9 = cpu->r[12] + 0x00000004u;
|
|
/* 028E8644 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028E8648 */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 028E8648 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028E864C */ _t11 = cpu->r[12] + 0x00000008u;
|
|
/* 028E864C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028E8650 */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 028E8650 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 028E8654 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8654 */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028E8658 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8658 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028E865C */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 028E865C */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028E8660 */ cpu->lr = cpu->r[0];
|
|
/* 028E8664 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8664 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028E8668 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028E866C */ cpu->r[3] = 0x00000000u;
|
|
/* 028E8670 */ return;
|
|
L_028E8674: ; // 0x28e8674
|
|
/* 028E8674 */ cpu->r[5] = cpu->r[29];
|
|
/* 028E8678 */ cpu->r[4] = cpu->r[31];
|
|
/* 028E867C */ cpu->r[3] = cpu->r[30];
|
|
/* 028E8680 */ Gambit_fn_028D60D8(cpu);
|
|
/* 028E8684 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8684 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028E8688 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8688 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028E868C */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028E868C */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028E8690 */ cpu->lr = cpu->r[0];
|
|
/* 028E8694 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8694 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028E8698 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028E869C */ cpu->r[3] = 0x00000001u;
|
|
/* 028E86A0 */ return;
|
|
L_028EF294: ; // 0x28ef294
|
|
/* 028EF294 */ cpu->r[3] = cpu->r[3] + 0xFFFFFFF4u;
|
|
/* 028EF298 */ goto L_028E8604;
|
|
}
|
|
|
|
// fn_028EF29C @ 0x28ef29c
|
|
void Gambit_fn_028EF29C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028EF29C: ; // 0x28ef29c
|
|
/* 028EF29C */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF2A0 */ _t0 = cpu->r[12] + 0xFFFFCA28u;
|
|
/* 028EF2A0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028EF2A4 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028EF2A8 */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EF2A8 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028EF2A8 */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EF2A8 */ goto L_028EF2AC;
|
|
L_028EF2AC: ; // 0x28ef2ac
|
|
/* 028EF2AC */ _t3 = cpu->r[3] + 0x000000A8u;
|
|
/* 028EF2AC */ rbrew_write_f32(cpu->mem, _t3, cpu->f[1]);
|
|
/* 028EF2B0 */ return;
|
|
}
|
|
|
|
// fn_028EF2B4 @ 0x28ef2b4
|
|
void Gambit_fn_028EF2B4(CPUState* cpu) {
|
|
L_028EF2B4: ; // 0x28ef2b4
|
|
/* 028EF2B4 */ cpu->r[5] = cpu->r[4];
|
|
/* 028EF2B8 */ cpu->r[4] = cpu->r[3] + 0x0000009Cu;
|
|
/* 028EF2BC */ cpu->r[3] = cpu->r[3] + 0x00000044u;
|
|
/* 028EF2C0 */ goto L_02C69468;
|
|
L_02C69468: ; // 0x2c69468
|
|
/* 02C69468 */ /* nop */
|
|
/* 02C6946C */ /* nop */
|
|
/* 02C69470 */ /* nop */
|
|
/* 02C69474 */ /* nop */
|
|
/* 02C69478 */ /* nop */
|
|
/* 02C6947C */ /* nop */
|
|
/* 02C69480 */ /* nop */
|
|
/* 02C69484 */ /* nop */
|
|
/* 02C69488 */ /* nop */
|
|
/* 02C6948C */ /* nop */
|
|
/* 02C69490 */ /* nop */
|
|
/* 02C69494 */ /* nop */
|
|
/* 02C69498 */ /* nop */
|
|
/* 02C6949C */ /* nop */
|
|
/* 02C694A0 */ /* nop */
|
|
/* 02C694A4 */ /* nop */
|
|
/* 02C694A8 */ /* nop */
|
|
/* 02C694AC */ /* nop */
|
|
/* 02C694B0 */ /* nop */
|
|
/* 02C694B4 */ /* nop */
|
|
/* 02C694B8 */ return;
|
|
}
|
|
|
|
// fn_028EF2C4 @ 0x28ef2c4
|
|
void Gambit_fn_028EF2C4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028EF2C4: ; // 0x28ef2c4
|
|
/* 028EF2C4 */ cpu->r[0] = cpu->lr;
|
|
/* 028EF2C8 */ _t0 = cpu->r[1] + 0xFFFFFF08u;
|
|
/* 028EF2C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF2C8 */ cpu->r[1] = _t0;
|
|
/* 028EF2CC */ _t1 = cpu->r[1] + 0x000000E8u;
|
|
/* 028EF2CC */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028EF2D0 */ /* nop */
|
|
/* 028EF2D4 */ _t2 = cpu->r[1] + 0x000000E4u;
|
|
/* 028EF2D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EF2D8 */ _t3 = cpu->r[1] + 0x000000F0u;
|
|
/* 028EF2D8 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 028EF2DC */ cpu->r[31] = cpu->r[3];
|
|
/* 028EF2E0 */ _t4 = cpu->r[1] + 0x000000E0u;
|
|
/* 028EF2E0 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028EF2E4 */ _t5 = cpu->r[1] + 0x000000DCu;
|
|
/* 028EF2E4 */ rbrew_write32(cpu->mem, _t5, cpu->r[29]);
|
|
/* 028EF2E8 */ cpu->r[30] = cpu->r[5];
|
|
/* 028EF2E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EF2EC */ _t6 = cpu->r[1] + 0x000000FCu;
|
|
/* 028EF2EC */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028EF2F0 */ cpu->r[29] = cpu->r[4];
|
|
/* 028EF2F4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF2F4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028EF2F4 */ if (_t8) goto L_028EF574; else goto L_028EF2F8;
|
|
L_028EF2F8: ; // 0x28ef2f8
|
|
/* 028EF2F8 */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 028EF2FC */ cpu->r[3] = cpu->r[31];
|
|
/* 028EF300 */ Gambit_fn_028E89EC(cpu);
|
|
/* 028EF304 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028EF308 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EF30C */ Gambit_fn_028EF2B4(cpu);
|
|
/* 028EF310 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EF314 */ _t9 = cpu->r[1] + 0x00000020u;
|
|
/* 028EF314 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028EF318 */ _t10 = cpu->r[11] + 0xFFFFCA28u;
|
|
/* 028EF318 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028EF31C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[0]);
|
|
/* 028EF320 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF320 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028EF320 */ if (_t12) goto L_028EF324; else goto L_028EF330;
|
|
L_028EF324: ; // 0x28ef324
|
|
/* 028EF324 */ _t13 = cpu->r[1] + 0x00000024u;
|
|
/* 028EF324 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028EF328 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028EF32C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF32C */ _t15 = _t14 & 0x00000001u;
|
|
/* 028EF32C */ if (_t15) goto L_028EF338; else goto L_028EF330;
|
|
L_028EF330: ; // 0x28ef330
|
|
/* 028EF330 */ _t16 = cpu->r[1] + 0x00000028u;
|
|
/* 028EF330 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028EF334 */ goto L_028EF428;
|
|
L_028EF338: ; // 0x28ef338
|
|
/* 028EF338 */ _t17 = cpu->r[1] + 0x00000028u;
|
|
/* 028EF338 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028EF33C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[0]);
|
|
/* 028EF340 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF340 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EF340 */ if (_t19) goto L_028EF344; else goto L_028EF428;
|
|
L_028EF344: ; // 0x28ef344
|
|
/* 028EF344 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF344 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028EF348 */ _t21 = cpu->r[1] + 0x00000018u;
|
|
/* 028EF348 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028EF34C */ _t22 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF34C */ rbrew_write_f32(cpu->mem, _t22, cpu->f[0]);
|
|
/* 028EF350 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF350 */ rbrew_write_f32(cpu->mem, _t23, cpu->f[11]);
|
|
/* 028EF354 */ /* nop */
|
|
/* 028EF358 */ _t24 = cpu->r[29] + 0x00000008u;
|
|
/* 028EF358 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 028EF35C */ _t25 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EF35C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028EF360 */ /* nop */
|
|
/* 028EF364 */ cpu->f[0] = cpu->f[11] - cpu->f[12];
|
|
/* 028EF368 */ _t26 = cpu->r[1] + 0x00000010u;
|
|
/* 028EF368 */ rbrew_write_f32(cpu->mem, _t26, cpu->f[12]);
|
|
/* 028EF36C */ /* nop */
|
|
/* 028EF370 */ /* nop */
|
|
/* 028EF374 */ _t27 = cpu->r[1] + 0x00000054u;
|
|
/* 028EF374 */ cpu->r[11] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028EF378 */ _t28 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028EF378 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[0]);
|
|
/* 028EF37C */ _t29 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028EF37C */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028EF380 */ _t30 = cpu->r[1] + 0x00000058u;
|
|
/* 028EF380 */ cpu->r[12] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028EF384 */ _t31 = cpu->r[1] + 0x00000078u;
|
|
/* 028EF384 */ rbrew_write32(cpu->mem, _t31, cpu->r[11]);
|
|
/* 028EF388 */ _t32 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028EF388 */ rbrew_write32(cpu->mem, _t32, cpu->r[12]);
|
|
/* 028EF38C */ cpu->r[3] = cpu->r[1] + 0x00000078u;
|
|
/* 028EF390 */ _t33 = cpu->r[1] + 0x00000080u;
|
|
/* 028EF390 */ rbrew_write32(cpu->mem, _t33, cpu->r[0]);
|
|
/* 028EF394 */ Gambit_fn_02C69350(cpu);
|
|
/* 028EF398 */ _t34 = cpu->r[31] + 0x000000A8u;
|
|
/* 028EF398 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t34);
|
|
/* 028EF39C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028EF3A0 */ _t35 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF3A0 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028EF3A0 */ if (_t36) goto L_028EF3A4; else goto L_028EF55C;
|
|
L_028EF3A4: ; // 0x28ef3a4
|
|
/* 028EF3A4 */ cpu->f[0] = cpu->f[0] / cpu->f[1];
|
|
/* 028EF3A8 */ _t37 = cpu->r[1] + 0x00000080u;
|
|
/* 028EF3A8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028EF3AC */ /* nop */
|
|
/* 028EF3B0 */ /* nop */
|
|
/* 028EF3B4 */ /* nop */
|
|
/* 028EF3B8 */ _t38 = cpu->r[1] + 0x00000060u;
|
|
/* 028EF3B8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028EF3BC */ _t39 = cpu->r[1] + 0x00000064u;
|
|
/* 028EF3BC */ cpu->r[7] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028EF3C0 */ cpu->f[13] = cpu->f[12] * cpu->f[0];
|
|
/* 028EF3C4 */ _t40 = cpu->r[1] + 0x000000A8u;
|
|
/* 028EF3C4 */ rbrew_write32(cpu->mem, _t40, cpu->r[12]);
|
|
/* 028EF3C8 */ _t41 = cpu->r[1] + 0x000000ACu;
|
|
/* 028EF3C8 */ rbrew_write32(cpu->mem, _t41, cpu->r[7]);
|
|
/* 028EF3CC */ /* nop */
|
|
/* 028EF3D0 */ _t42 = cpu->r[1] + 0x00000068u;
|
|
/* 028EF3D0 */ rbrew_write_f32(cpu->mem, _t42, cpu->f[13]);
|
|
/* 028EF3D4 */ _t43 = cpu->r[1] + 0x00000068u;
|
|
/* 028EF3D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028EF3D8 */ /* nop */
|
|
/* 028EF3DC */ _t44 = cpu->r[1] + 0x00000010u;
|
|
/* 028EF3DC */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t44);
|
|
/* 028EF3E0 */ /* nop */
|
|
/* 028EF3E4 */ _t45 = cpu->r[1] + 0x000000B0u;
|
|
/* 028EF3E4 */ rbrew_write32(cpu->mem, _t45, cpu->r[0]);
|
|
/* 028EF3E8 */ _t46 = cpu->r[1] + 0x000000B0u;
|
|
/* 028EF3E8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t46);
|
|
/* 028EF3EC */ _t47 = cpu->r[1] + 0x00000070u;
|
|
/* 028EF3EC */ cpu->r[8] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028EF3F0 */ _t48 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028EF3F0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028EF3F4 */ cpu->f[12] = cpu->f[11] + cpu->f[12];
|
|
/* 028EF3F8 */ _t49 = cpu->r[1] + 0x00000094u;
|
|
/* 028EF3F8 */ rbrew_write32(cpu->mem, _t49, cpu->r[8]);
|
|
/* 028EF3FC */ _t50 = cpu->r[1] + 0x00000094u;
|
|
/* 028EF3FC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t50);
|
|
/* 028EF400 */ _t51 = cpu->r[1] + 0x00000090u;
|
|
/* 028EF400 */ rbrew_write32(cpu->mem, _t51, cpu->r[6]);
|
|
/* 028EF404 */ _t52 = cpu->r[1] + 0x00000090u;
|
|
/* 028EF404 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028EF408 */ _t53 = cpu->r[1] + 0x00000074u;
|
|
/* 028EF408 */ rbrew_write_f32(cpu->mem, _t53, cpu->f[12]);
|
|
/* 028EF40C */ _t54 = cpu->r[1] + 0x00000074u;
|
|
/* 028EF40C */ cpu->r[10] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028EF410 */ _t55 = cpu->r[30] + 0x00000004u;
|
|
/* 028EF410 */ rbrew_write_f32(cpu->mem, _t55, cpu->f[0]);
|
|
/* 028EF414 */ _t56 = cpu->r[1] + 0x00000098u;
|
|
/* 028EF414 */ rbrew_write32(cpu->mem, _t56, cpu->r[10]);
|
|
/* 028EF418 */ _t57 = cpu->r[1] + 0x00000098u;
|
|
/* 028EF418 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t57);
|
|
/* 028EF41C */ _t58 = cpu->r[30] + 0x00000000u;
|
|
/* 028EF41C */ rbrew_write_f32(cpu->mem, _t58, cpu->f[13]);
|
|
/* 028EF420 */ _t59 = cpu->r[30] + 0x00000008u;
|
|
/* 028EF420 */ rbrew_write_f32(cpu->mem, _t59, cpu->f[0]);
|
|
/* 028EF424 */ goto L_028EF574;
|
|
L_028EF428: ; // 0x28ef428
|
|
/* 028EF428 */ /* nop */
|
|
/* 028EF42C */ _t60 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EF42C */ cpu->r[8] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028EF430 */ /* nop */
|
|
/* 028EF434 */ _t61 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EF434 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t61);
|
|
/* 028EF438 */ /* nop */
|
|
/* 028EF43C */ _t62 = cpu->r[1] + 0x00000018u;
|
|
/* 028EF43C */ cpu->r[6] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028EF440 */ cpu->f[12] = cpu->f[0] + cpu->f[11];
|
|
/* 028EF444 */ /* nop */
|
|
/* 028EF448 */ _t63 = cpu->r[1] + 0x00000030u;
|
|
/* 028EF448 */ cpu->r[7] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028EF44C */ _t64 = cpu->r[1] + 0x00000034u;
|
|
/* 028EF44C */ cpu->r[9] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028EF450 */ _t65 = cpu->r[1] + 0x00000038u;
|
|
/* 028EF450 */ rbrew_write_f32(cpu->mem, _t65, cpu->f[12]);
|
|
/* 028EF454 */ _t66 = cpu->r[1] + 0x00000038u;
|
|
/* 028EF454 */ cpu->r[5] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028EF458 */ _t67 = cpu->r[1] + 0x000000B4u;
|
|
/* 028EF458 */ rbrew_write32(cpu->mem, _t67, cpu->r[7]);
|
|
/* 028EF45C */ _t68 = cpu->r[1] + 0x000000D4u;
|
|
/* 028EF45C */ rbrew_write32(cpu->mem, _t68, cpu->r[5]);
|
|
/* 028EF460 */ _t69 = cpu->r[1] + 0x000000BCu;
|
|
/* 028EF460 */ rbrew_write32(cpu->mem, _t69, cpu->r[5]);
|
|
/* 028EF464 */ _t70 = cpu->r[1] + 0x000000C4u;
|
|
/* 028EF464 */ rbrew_write32(cpu->mem, _t70, cpu->r[6]);
|
|
/* 028EF468 */ _t71 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF468 */ cpu->r[12] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028EF46C */ _t72 = cpu->r[1] + 0x000000D0u;
|
|
/* 028EF46C */ rbrew_write32(cpu->mem, _t72, cpu->r[9]);
|
|
/* 028EF470 */ _t73 = cpu->r[1] + 0x000000C0u;
|
|
/* 028EF470 */ rbrew_write32(cpu->mem, _t73, cpu->r[12]);
|
|
/* 028EF474 */ cpu->r[4] = cpu->r[1] + 0x000000C0u;
|
|
/* 028EF478 */ _t74 = cpu->r[1] + 0x000000CCu;
|
|
/* 028EF478 */ rbrew_write32(cpu->mem, _t74, cpu->r[7]);
|
|
/* 028EF47C */ cpu->r[5] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EF480 */ _t75 = cpu->r[1] + 0x000000C8u;
|
|
/* 028EF480 */ rbrew_write32(cpu->mem, _t75, cpu->r[8]);
|
|
/* 028EF484 */ cpu->r[3] = cpu->r[29];
|
|
/* 028EF488 */ _t76 = cpu->r[1] + 0x000000B8u;
|
|
/* 028EF488 */ rbrew_write32(cpu->mem, _t76, cpu->r[9]);
|
|
/* 028EF48C */ Gambit_fn_02819764(cpu);
|
|
/* 028EF490 */ _t77 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EF490 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t77);
|
|
/* 028EF494 */ /* nop */
|
|
/* 028EF498 */ _t78 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EF498 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t78);
|
|
/* 028EF49C */ /* nop */
|
|
/* 028EF4A0 */ _t79 = cpu->r[1] + 0x00000028u;
|
|
/* 028EF4A0 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t79);
|
|
/* 028EF4A4 */ /* nop */
|
|
/* 028EF4A8 */ _t80 = cpu->r[1] + 0x00000040u;
|
|
/* 028EF4A8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028EF4AC */ _t81 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028EF4AC */ cpu->r[6] = rbrew_read32(cpu->mem, _t81);
|
|
/* 028EF4B0 */ _t82 = cpu->r[1] + 0x000000A0u;
|
|
/* 028EF4B0 */ rbrew_write32(cpu->mem, _t82, cpu->r[7]);
|
|
/* 028EF4B4 */ cpu->f[12] = cpu->f[11] * cpu->f[12];
|
|
/* 028EF4B8 */ _t83 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028EF4B8 */ rbrew_write32(cpu->mem, _t83, cpu->r[6]);
|
|
/* 028EF4BC */ /* nop */
|
|
/* 028EF4C0 */ /* nop */
|
|
/* 028EF4C4 */ _t84 = cpu->r[1] + 0x00000044u;
|
|
/* 028EF4C4 */ rbrew_write_f32(cpu->mem, _t84, cpu->f[12]);
|
|
/* 028EF4C8 */ _t85 = cpu->r[1] + 0x00000044u;
|
|
/* 028EF4C8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t85);
|
|
/* 028EF4CC */ /* nop */
|
|
/* 028EF4D0 */ /* nop */
|
|
/* 028EF4D4 */ _t86 = cpu->r[1] + 0x00000048u;
|
|
/* 028EF4D4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t86);
|
|
/* 028EF4D8 */ _t87 = cpu->r[1] + 0x000000A4u;
|
|
/* 028EF4D8 */ rbrew_write32(cpu->mem, _t87, cpu->r[8]);
|
|
/* 028EF4DC */ _t88 = cpu->r[1] + 0x000000A4u;
|
|
/* 028EF4DC */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t88);
|
|
/* 028EF4E0 */ _t89 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028EF4E0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t89);
|
|
/* 028EF4E4 */ _t90 = cpu->r[1] + 0x00000084u;
|
|
/* 028EF4E4 */ rbrew_write32(cpu->mem, _t90, cpu->r[11]);
|
|
/* 028EF4E8 */ _t91 = cpu->r[1] + 0x00000084u;
|
|
/* 028EF4E8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t91);
|
|
/* 028EF4EC */ cpu->f[12] = cpu->f[0] + cpu->f[11];
|
|
/* 028EF4F0 */ _t92 = cpu->r[1] + 0x00000088u;
|
|
/* 028EF4F0 */ rbrew_write32(cpu->mem, _t92, cpu->r[12]);
|
|
/* 028EF4F4 */ _t93 = cpu->r[1] + 0x00000088u;
|
|
/* 028EF4F4 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t93);
|
|
/* 028EF4F8 */ _t94 = cpu->r[1] + 0x00000050u;
|
|
/* 028EF4F8 */ rbrew_write_f32(cpu->mem, _t94, cpu->f[12]);
|
|
/* 028EF4FC */ _t95 = cpu->r[1] + 0x00000050u;
|
|
/* 028EF4FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t95);
|
|
/* 028EF500 */ _t96 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF500 */ rbrew_write_f32(cpu->mem, _t96, cpu->f[11]);
|
|
/* 028EF504 */ _t97 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF504 */ rbrew_write_f32(cpu->mem, _t97, cpu->f[13]);
|
|
/* 028EF508 */ /* nop */
|
|
/* 028EF50C */ _t98 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028EF50C */ rbrew_write32(cpu->mem, _t98, cpu->r[0]);
|
|
/* 028EF510 */ _t99 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028EF510 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t99);
|
|
/* 028EF514 */ _t100 = cpu->r[29] + 0x00000008u;
|
|
/* 028EF514 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t100);
|
|
/* 028EF518 */ /* nop */
|
|
/* 028EF51C */ cpu->f[0] = cpu->f[11] - cpu->f[12];
|
|
/* 028EF520 */ _t101 = cpu->r[1] + 0x00000010u;
|
|
/* 028EF520 */ rbrew_write_f32(cpu->mem, _t101, cpu->f[12]);
|
|
/* 028EF524 */ /* nop */
|
|
/* 028EF528 */ /* nop */
|
|
/* 028EF52C */ _t102 = cpu->r[1] + 0x00000054u;
|
|
/* 028EF52C */ cpu->r[11] = rbrew_read32(cpu->mem, _t102);
|
|
/* 028EF530 */ _t103 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028EF530 */ rbrew_write_f32(cpu->mem, _t103, cpu->f[0]);
|
|
/* 028EF534 */ _t104 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028EF534 */ cpu->r[0] = rbrew_read32(cpu->mem, _t104);
|
|
/* 028EF538 */ _t105 = cpu->r[1] + 0x00000058u;
|
|
/* 028EF538 */ cpu->r[12] = rbrew_read32(cpu->mem, _t105);
|
|
/* 028EF53C */ _t106 = cpu->r[1] + 0x00000078u;
|
|
/* 028EF53C */ rbrew_write32(cpu->mem, _t106, cpu->r[11]);
|
|
/* 028EF540 */ _t107 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028EF540 */ rbrew_write32(cpu->mem, _t107, cpu->r[12]);
|
|
/* 028EF544 */ cpu->r[3] = cpu->r[1] + 0x00000078u;
|
|
/* 028EF548 */ _t108 = cpu->r[1] + 0x00000080u;
|
|
/* 028EF548 */ rbrew_write32(cpu->mem, _t108, cpu->r[0]);
|
|
/* 028EF54C */ Gambit_fn_02C69350(cpu);
|
|
/* 028EF550 */ _t109 = cpu->r[31] + 0x000000A8u;
|
|
/* 028EF550 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t109);
|
|
/* 028EF554 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028EF558 */ _t110 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF558 */ _t111 = _t110 & 0x00000001u;
|
|
/* 028EF558 */ if (_t111) goto L_028EF3A4; else goto L_028EF55C;
|
|
L_028EF55C: ; // 0x28ef55c
|
|
/* 028EF55C */ _t112 = cpu->r[29] + 0x00000000u;
|
|
/* 028EF55C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t112);
|
|
/* 028EF560 */ _t113 = cpu->r[30] + 0x00000000u;
|
|
/* 028EF560 */ rbrew_write_f32(cpu->mem, _t113, cpu->f[11]);
|
|
/* 028EF564 */ _t114 = cpu->r[29] + 0x00000004u;
|
|
/* 028EF564 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t114);
|
|
/* 028EF568 */ _t115 = cpu->r[30] + 0x00000004u;
|
|
/* 028EF568 */ rbrew_write_f32(cpu->mem, _t115, cpu->f[0]);
|
|
/* 028EF56C */ _t116 = cpu->r[29] + 0x00000008u;
|
|
/* 028EF56C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t116);
|
|
/* 028EF570 */ _t117 = cpu->r[30] + 0x00000008u;
|
|
/* 028EF570 */ rbrew_write_f32(cpu->mem, _t117, cpu->f[0]);
|
|
L_028EF574: ; // 0x28ef574
|
|
/* 028EF574 */ _t118 = cpu->r[1] + 0x000000DCu;
|
|
/* 028EF574 */ cpu->r[29] = rbrew_read32(cpu->mem, _t118);
|
|
/* 028EF578 */ _t119 = cpu->r[1] + 0x000000F0u;
|
|
/* 028EF578 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t119);
|
|
/* 028EF57C */ _t120 = cpu->r[1] + 0x000000E0u;
|
|
/* 028EF57C */ cpu->r[30] = rbrew_read32(cpu->mem, _t120);
|
|
/* 028EF580 */ _t121 = cpu->r[1] + 0x000000E8u;
|
|
/* 028EF580 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t121);
|
|
/* 028EF584 */ _t122 = cpu->r[1] + 0x000000E4u;
|
|
/* 028EF584 */ cpu->r[31] = rbrew_read32(cpu->mem, _t122);
|
|
/* 028EF588 */ _t123 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EF588 */ _t124 = _t123 & 0x00000001u;
|
|
/* 028EF588 */ if (_t124) goto L_028EF58C; // else: addr-0 trap, fall-through
|
|
L_028EF58C: ; // 0x28ef58c
|
|
/* 028EF58C */ _t125 = cpu->r[1] + 0x000000FCu;
|
|
/* 028EF58C */ cpu->r[0] = rbrew_read32(cpu->mem, _t125);
|
|
/* 028EF590 */ cpu->lr = cpu->r[0];
|
|
/* 028EF594 */ cpu->r[1] = cpu->r[1] + 0x000000F8u;
|
|
/* 028EF598 */ return;
|
|
}
|
|
|
|
// fn_028EF2C8 @ 0x28ef2c8
|
|
void Gambit_fn_028EF2C8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028EF2C8: ; // 0x28ef2c8
|
|
/* 028EF2C8 */ _t0 = cpu->r[1] + 0xFFFFFF08u;
|
|
/* 028EF2C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF2C8 */ cpu->r[1] = _t0;
|
|
/* 028EF2CC */ _t1 = cpu->r[1] + 0x000000E8u;
|
|
/* 028EF2CC */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028EF2D0 */ /* nop */
|
|
/* 028EF2D4 */ _t2 = cpu->r[1] + 0x000000E4u;
|
|
/* 028EF2D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EF2D8 */ _t3 = cpu->r[1] + 0x000000F0u;
|
|
/* 028EF2D8 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 028EF2DC */ cpu->r[31] = cpu->r[3];
|
|
/* 028EF2E0 */ _t4 = cpu->r[1] + 0x000000E0u;
|
|
/* 028EF2E0 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028EF2E4 */ _t5 = cpu->r[1] + 0x000000DCu;
|
|
/* 028EF2E4 */ rbrew_write32(cpu->mem, _t5, cpu->r[29]);
|
|
/* 028EF2E8 */ cpu->r[30] = cpu->r[5];
|
|
/* 028EF2E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EF2EC */ _t6 = cpu->r[1] + 0x000000FCu;
|
|
/* 028EF2EC */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028EF2F0 */ cpu->r[29] = cpu->r[4];
|
|
/* 028EF2F4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF2F4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028EF2F4 */ if (_t8) goto L_028EF574; else goto L_028EF2F8;
|
|
L_028EF2F8: ; // 0x28ef2f8
|
|
/* 028EF2F8 */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 028EF2FC */ cpu->r[3] = cpu->r[31];
|
|
/* 028EF300 */ Gambit_fn_028E89EC(cpu);
|
|
/* 028EF304 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028EF308 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EF30C */ Gambit_fn_028EF2B4(cpu);
|
|
/* 028EF310 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EF314 */ _t9 = cpu->r[1] + 0x00000020u;
|
|
/* 028EF314 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028EF318 */ _t10 = cpu->r[11] + 0xFFFFCA28u;
|
|
/* 028EF318 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028EF31C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[0]);
|
|
/* 028EF320 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF320 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028EF320 */ if (_t12) goto L_028EF324; else goto L_028EF330;
|
|
L_028EF324: ; // 0x28ef324
|
|
/* 028EF324 */ _t13 = cpu->r[1] + 0x00000024u;
|
|
/* 028EF324 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028EF328 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028EF32C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF32C */ _t15 = _t14 & 0x00000001u;
|
|
/* 028EF32C */ if (_t15) goto L_028EF338; else goto L_028EF330;
|
|
L_028EF330: ; // 0x28ef330
|
|
/* 028EF330 */ _t16 = cpu->r[1] + 0x00000028u;
|
|
/* 028EF330 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028EF334 */ goto L_028EF428;
|
|
L_028EF338: ; // 0x28ef338
|
|
/* 028EF338 */ _t17 = cpu->r[1] + 0x00000028u;
|
|
/* 028EF338 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028EF33C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[0]);
|
|
/* 028EF340 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF340 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EF340 */ if (_t19) goto L_028EF344; else goto L_028EF428;
|
|
L_028EF344: ; // 0x28ef344
|
|
/* 028EF344 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF344 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028EF348 */ _t21 = cpu->r[1] + 0x00000018u;
|
|
/* 028EF348 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028EF34C */ _t22 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF34C */ rbrew_write_f32(cpu->mem, _t22, cpu->f[0]);
|
|
/* 028EF350 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF350 */ rbrew_write_f32(cpu->mem, _t23, cpu->f[11]);
|
|
/* 028EF354 */ /* nop */
|
|
/* 028EF358 */ _t24 = cpu->r[29] + 0x00000008u;
|
|
/* 028EF358 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 028EF35C */ _t25 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EF35C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028EF360 */ /* nop */
|
|
/* 028EF364 */ cpu->f[0] = cpu->f[11] - cpu->f[12];
|
|
/* 028EF368 */ _t26 = cpu->r[1] + 0x00000010u;
|
|
/* 028EF368 */ rbrew_write_f32(cpu->mem, _t26, cpu->f[12]);
|
|
/* 028EF36C */ /* nop */
|
|
/* 028EF370 */ /* nop */
|
|
/* 028EF374 */ _t27 = cpu->r[1] + 0x00000054u;
|
|
/* 028EF374 */ cpu->r[11] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028EF378 */ _t28 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028EF378 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[0]);
|
|
/* 028EF37C */ _t29 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028EF37C */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028EF380 */ _t30 = cpu->r[1] + 0x00000058u;
|
|
/* 028EF380 */ cpu->r[12] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028EF384 */ _t31 = cpu->r[1] + 0x00000078u;
|
|
/* 028EF384 */ rbrew_write32(cpu->mem, _t31, cpu->r[11]);
|
|
/* 028EF388 */ _t32 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028EF388 */ rbrew_write32(cpu->mem, _t32, cpu->r[12]);
|
|
/* 028EF38C */ cpu->r[3] = cpu->r[1] + 0x00000078u;
|
|
/* 028EF390 */ _t33 = cpu->r[1] + 0x00000080u;
|
|
/* 028EF390 */ rbrew_write32(cpu->mem, _t33, cpu->r[0]);
|
|
/* 028EF394 */ Gambit_fn_02C69350(cpu);
|
|
/* 028EF398 */ _t34 = cpu->r[31] + 0x000000A8u;
|
|
/* 028EF398 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t34);
|
|
/* 028EF39C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028EF3A0 */ _t35 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF3A0 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028EF3A0 */ if (_t36) goto L_028EF3A4; else goto L_028EF55C;
|
|
L_028EF3A4: ; // 0x28ef3a4
|
|
/* 028EF3A4 */ cpu->f[0] = cpu->f[0] / cpu->f[1];
|
|
/* 028EF3A8 */ _t37 = cpu->r[1] + 0x00000080u;
|
|
/* 028EF3A8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028EF3AC */ /* nop */
|
|
/* 028EF3B0 */ /* nop */
|
|
/* 028EF3B4 */ /* nop */
|
|
/* 028EF3B8 */ _t38 = cpu->r[1] + 0x00000060u;
|
|
/* 028EF3B8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028EF3BC */ _t39 = cpu->r[1] + 0x00000064u;
|
|
/* 028EF3BC */ cpu->r[7] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028EF3C0 */ cpu->f[13] = cpu->f[12] * cpu->f[0];
|
|
/* 028EF3C4 */ _t40 = cpu->r[1] + 0x000000A8u;
|
|
/* 028EF3C4 */ rbrew_write32(cpu->mem, _t40, cpu->r[12]);
|
|
/* 028EF3C8 */ _t41 = cpu->r[1] + 0x000000ACu;
|
|
/* 028EF3C8 */ rbrew_write32(cpu->mem, _t41, cpu->r[7]);
|
|
/* 028EF3CC */ /* nop */
|
|
/* 028EF3D0 */ _t42 = cpu->r[1] + 0x00000068u;
|
|
/* 028EF3D0 */ rbrew_write_f32(cpu->mem, _t42, cpu->f[13]);
|
|
/* 028EF3D4 */ _t43 = cpu->r[1] + 0x00000068u;
|
|
/* 028EF3D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028EF3D8 */ /* nop */
|
|
/* 028EF3DC */ _t44 = cpu->r[1] + 0x00000010u;
|
|
/* 028EF3DC */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t44);
|
|
/* 028EF3E0 */ /* nop */
|
|
/* 028EF3E4 */ _t45 = cpu->r[1] + 0x000000B0u;
|
|
/* 028EF3E4 */ rbrew_write32(cpu->mem, _t45, cpu->r[0]);
|
|
/* 028EF3E8 */ _t46 = cpu->r[1] + 0x000000B0u;
|
|
/* 028EF3E8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t46);
|
|
/* 028EF3EC */ _t47 = cpu->r[1] + 0x00000070u;
|
|
/* 028EF3EC */ cpu->r[8] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028EF3F0 */ _t48 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028EF3F0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028EF3F4 */ cpu->f[12] = cpu->f[11] + cpu->f[12];
|
|
/* 028EF3F8 */ _t49 = cpu->r[1] + 0x00000094u;
|
|
/* 028EF3F8 */ rbrew_write32(cpu->mem, _t49, cpu->r[8]);
|
|
/* 028EF3FC */ _t50 = cpu->r[1] + 0x00000094u;
|
|
/* 028EF3FC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t50);
|
|
/* 028EF400 */ _t51 = cpu->r[1] + 0x00000090u;
|
|
/* 028EF400 */ rbrew_write32(cpu->mem, _t51, cpu->r[6]);
|
|
/* 028EF404 */ _t52 = cpu->r[1] + 0x00000090u;
|
|
/* 028EF404 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028EF408 */ _t53 = cpu->r[1] + 0x00000074u;
|
|
/* 028EF408 */ rbrew_write_f32(cpu->mem, _t53, cpu->f[12]);
|
|
/* 028EF40C */ _t54 = cpu->r[1] + 0x00000074u;
|
|
/* 028EF40C */ cpu->r[10] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028EF410 */ _t55 = cpu->r[30] + 0x00000004u;
|
|
/* 028EF410 */ rbrew_write_f32(cpu->mem, _t55, cpu->f[0]);
|
|
/* 028EF414 */ _t56 = cpu->r[1] + 0x00000098u;
|
|
/* 028EF414 */ rbrew_write32(cpu->mem, _t56, cpu->r[10]);
|
|
/* 028EF418 */ _t57 = cpu->r[1] + 0x00000098u;
|
|
/* 028EF418 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t57);
|
|
/* 028EF41C */ _t58 = cpu->r[30] + 0x00000000u;
|
|
/* 028EF41C */ rbrew_write_f32(cpu->mem, _t58, cpu->f[13]);
|
|
/* 028EF420 */ _t59 = cpu->r[30] + 0x00000008u;
|
|
/* 028EF420 */ rbrew_write_f32(cpu->mem, _t59, cpu->f[0]);
|
|
/* 028EF424 */ goto L_028EF574;
|
|
L_028EF428: ; // 0x28ef428
|
|
/* 028EF428 */ /* nop */
|
|
/* 028EF42C */ _t60 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EF42C */ cpu->r[8] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028EF430 */ /* nop */
|
|
/* 028EF434 */ _t61 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EF434 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t61);
|
|
/* 028EF438 */ /* nop */
|
|
/* 028EF43C */ _t62 = cpu->r[1] + 0x00000018u;
|
|
/* 028EF43C */ cpu->r[6] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028EF440 */ cpu->f[12] = cpu->f[0] + cpu->f[11];
|
|
/* 028EF444 */ /* nop */
|
|
/* 028EF448 */ _t63 = cpu->r[1] + 0x00000030u;
|
|
/* 028EF448 */ cpu->r[7] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028EF44C */ _t64 = cpu->r[1] + 0x00000034u;
|
|
/* 028EF44C */ cpu->r[9] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028EF450 */ _t65 = cpu->r[1] + 0x00000038u;
|
|
/* 028EF450 */ rbrew_write_f32(cpu->mem, _t65, cpu->f[12]);
|
|
/* 028EF454 */ _t66 = cpu->r[1] + 0x00000038u;
|
|
/* 028EF454 */ cpu->r[5] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028EF458 */ _t67 = cpu->r[1] + 0x000000B4u;
|
|
/* 028EF458 */ rbrew_write32(cpu->mem, _t67, cpu->r[7]);
|
|
/* 028EF45C */ _t68 = cpu->r[1] + 0x000000D4u;
|
|
/* 028EF45C */ rbrew_write32(cpu->mem, _t68, cpu->r[5]);
|
|
/* 028EF460 */ _t69 = cpu->r[1] + 0x000000BCu;
|
|
/* 028EF460 */ rbrew_write32(cpu->mem, _t69, cpu->r[5]);
|
|
/* 028EF464 */ _t70 = cpu->r[1] + 0x000000C4u;
|
|
/* 028EF464 */ rbrew_write32(cpu->mem, _t70, cpu->r[6]);
|
|
/* 028EF468 */ _t71 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF468 */ cpu->r[12] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028EF46C */ _t72 = cpu->r[1] + 0x000000D0u;
|
|
/* 028EF46C */ rbrew_write32(cpu->mem, _t72, cpu->r[9]);
|
|
/* 028EF470 */ _t73 = cpu->r[1] + 0x000000C0u;
|
|
/* 028EF470 */ rbrew_write32(cpu->mem, _t73, cpu->r[12]);
|
|
/* 028EF474 */ cpu->r[4] = cpu->r[1] + 0x000000C0u;
|
|
/* 028EF478 */ _t74 = cpu->r[1] + 0x000000CCu;
|
|
/* 028EF478 */ rbrew_write32(cpu->mem, _t74, cpu->r[7]);
|
|
/* 028EF47C */ cpu->r[5] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EF480 */ _t75 = cpu->r[1] + 0x000000C8u;
|
|
/* 028EF480 */ rbrew_write32(cpu->mem, _t75, cpu->r[8]);
|
|
/* 028EF484 */ cpu->r[3] = cpu->r[29];
|
|
/* 028EF488 */ _t76 = cpu->r[1] + 0x000000B8u;
|
|
/* 028EF488 */ rbrew_write32(cpu->mem, _t76, cpu->r[9]);
|
|
/* 028EF48C */ Gambit_fn_02819764(cpu);
|
|
/* 028EF490 */ _t77 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EF490 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t77);
|
|
/* 028EF494 */ /* nop */
|
|
/* 028EF498 */ _t78 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EF498 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t78);
|
|
/* 028EF49C */ /* nop */
|
|
/* 028EF4A0 */ _t79 = cpu->r[1] + 0x00000028u;
|
|
/* 028EF4A0 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t79);
|
|
/* 028EF4A4 */ /* nop */
|
|
/* 028EF4A8 */ _t80 = cpu->r[1] + 0x00000040u;
|
|
/* 028EF4A8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028EF4AC */ _t81 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028EF4AC */ cpu->r[6] = rbrew_read32(cpu->mem, _t81);
|
|
/* 028EF4B0 */ _t82 = cpu->r[1] + 0x000000A0u;
|
|
/* 028EF4B0 */ rbrew_write32(cpu->mem, _t82, cpu->r[7]);
|
|
/* 028EF4B4 */ cpu->f[12] = cpu->f[11] * cpu->f[12];
|
|
/* 028EF4B8 */ _t83 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028EF4B8 */ rbrew_write32(cpu->mem, _t83, cpu->r[6]);
|
|
/* 028EF4BC */ /* nop */
|
|
/* 028EF4C0 */ /* nop */
|
|
/* 028EF4C4 */ _t84 = cpu->r[1] + 0x00000044u;
|
|
/* 028EF4C4 */ rbrew_write_f32(cpu->mem, _t84, cpu->f[12]);
|
|
/* 028EF4C8 */ _t85 = cpu->r[1] + 0x00000044u;
|
|
/* 028EF4C8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t85);
|
|
/* 028EF4CC */ /* nop */
|
|
/* 028EF4D0 */ /* nop */
|
|
/* 028EF4D4 */ _t86 = cpu->r[1] + 0x00000048u;
|
|
/* 028EF4D4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t86);
|
|
/* 028EF4D8 */ _t87 = cpu->r[1] + 0x000000A4u;
|
|
/* 028EF4D8 */ rbrew_write32(cpu->mem, _t87, cpu->r[8]);
|
|
/* 028EF4DC */ _t88 = cpu->r[1] + 0x000000A4u;
|
|
/* 028EF4DC */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t88);
|
|
/* 028EF4E0 */ _t89 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028EF4E0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t89);
|
|
/* 028EF4E4 */ _t90 = cpu->r[1] + 0x00000084u;
|
|
/* 028EF4E4 */ rbrew_write32(cpu->mem, _t90, cpu->r[11]);
|
|
/* 028EF4E8 */ _t91 = cpu->r[1] + 0x00000084u;
|
|
/* 028EF4E8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t91);
|
|
/* 028EF4EC */ cpu->f[12] = cpu->f[0] + cpu->f[11];
|
|
/* 028EF4F0 */ _t92 = cpu->r[1] + 0x00000088u;
|
|
/* 028EF4F0 */ rbrew_write32(cpu->mem, _t92, cpu->r[12]);
|
|
/* 028EF4F4 */ _t93 = cpu->r[1] + 0x00000088u;
|
|
/* 028EF4F4 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t93);
|
|
/* 028EF4F8 */ _t94 = cpu->r[1] + 0x00000050u;
|
|
/* 028EF4F8 */ rbrew_write_f32(cpu->mem, _t94, cpu->f[12]);
|
|
/* 028EF4FC */ _t95 = cpu->r[1] + 0x00000050u;
|
|
/* 028EF4FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t95);
|
|
/* 028EF500 */ _t96 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF500 */ rbrew_write_f32(cpu->mem, _t96, cpu->f[11]);
|
|
/* 028EF504 */ _t97 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF504 */ rbrew_write_f32(cpu->mem, _t97, cpu->f[13]);
|
|
/* 028EF508 */ /* nop */
|
|
/* 028EF50C */ _t98 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028EF50C */ rbrew_write32(cpu->mem, _t98, cpu->r[0]);
|
|
/* 028EF510 */ _t99 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028EF510 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t99);
|
|
/* 028EF514 */ _t100 = cpu->r[29] + 0x00000008u;
|
|
/* 028EF514 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t100);
|
|
/* 028EF518 */ /* nop */
|
|
/* 028EF51C */ cpu->f[0] = cpu->f[11] - cpu->f[12];
|
|
/* 028EF520 */ _t101 = cpu->r[1] + 0x00000010u;
|
|
/* 028EF520 */ rbrew_write_f32(cpu->mem, _t101, cpu->f[12]);
|
|
/* 028EF524 */ /* nop */
|
|
/* 028EF528 */ /* nop */
|
|
/* 028EF52C */ _t102 = cpu->r[1] + 0x00000054u;
|
|
/* 028EF52C */ cpu->r[11] = rbrew_read32(cpu->mem, _t102);
|
|
/* 028EF530 */ _t103 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028EF530 */ rbrew_write_f32(cpu->mem, _t103, cpu->f[0]);
|
|
/* 028EF534 */ _t104 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028EF534 */ cpu->r[0] = rbrew_read32(cpu->mem, _t104);
|
|
/* 028EF538 */ _t105 = cpu->r[1] + 0x00000058u;
|
|
/* 028EF538 */ cpu->r[12] = rbrew_read32(cpu->mem, _t105);
|
|
/* 028EF53C */ _t106 = cpu->r[1] + 0x00000078u;
|
|
/* 028EF53C */ rbrew_write32(cpu->mem, _t106, cpu->r[11]);
|
|
/* 028EF540 */ _t107 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028EF540 */ rbrew_write32(cpu->mem, _t107, cpu->r[12]);
|
|
/* 028EF544 */ cpu->r[3] = cpu->r[1] + 0x00000078u;
|
|
/* 028EF548 */ _t108 = cpu->r[1] + 0x00000080u;
|
|
/* 028EF548 */ rbrew_write32(cpu->mem, _t108, cpu->r[0]);
|
|
/* 028EF54C */ Gambit_fn_02C69350(cpu);
|
|
/* 028EF550 */ _t109 = cpu->r[31] + 0x000000A8u;
|
|
/* 028EF550 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t109);
|
|
/* 028EF554 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[0]);
|
|
/* 028EF558 */ _t110 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF558 */ _t111 = _t110 & 0x00000001u;
|
|
/* 028EF558 */ if (_t111) goto L_028EF3A4; else goto L_028EF55C;
|
|
L_028EF55C: ; // 0x28ef55c
|
|
/* 028EF55C */ _t112 = cpu->r[29] + 0x00000000u;
|
|
/* 028EF55C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t112);
|
|
/* 028EF560 */ _t113 = cpu->r[30] + 0x00000000u;
|
|
/* 028EF560 */ rbrew_write_f32(cpu->mem, _t113, cpu->f[11]);
|
|
/* 028EF564 */ _t114 = cpu->r[29] + 0x00000004u;
|
|
/* 028EF564 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t114);
|
|
/* 028EF568 */ _t115 = cpu->r[30] + 0x00000004u;
|
|
/* 028EF568 */ rbrew_write_f32(cpu->mem, _t115, cpu->f[0]);
|
|
/* 028EF56C */ _t116 = cpu->r[29] + 0x00000008u;
|
|
/* 028EF56C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t116);
|
|
/* 028EF570 */ _t117 = cpu->r[30] + 0x00000008u;
|
|
/* 028EF570 */ rbrew_write_f32(cpu->mem, _t117, cpu->f[0]);
|
|
L_028EF574: ; // 0x28ef574
|
|
/* 028EF574 */ _t118 = cpu->r[1] + 0x000000DCu;
|
|
/* 028EF574 */ cpu->r[29] = rbrew_read32(cpu->mem, _t118);
|
|
/* 028EF578 */ _t119 = cpu->r[1] + 0x000000F0u;
|
|
/* 028EF578 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t119);
|
|
/* 028EF57C */ _t120 = cpu->r[1] + 0x000000E0u;
|
|
/* 028EF57C */ cpu->r[30] = rbrew_read32(cpu->mem, _t120);
|
|
/* 028EF580 */ _t121 = cpu->r[1] + 0x000000E8u;
|
|
/* 028EF580 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t121);
|
|
/* 028EF584 */ _t122 = cpu->r[1] + 0x000000E4u;
|
|
/* 028EF584 */ cpu->r[31] = rbrew_read32(cpu->mem, _t122);
|
|
/* 028EF588 */ _t123 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EF588 */ _t124 = _t123 & 0x00000001u;
|
|
/* 028EF588 */ if (_t124) goto L_028EF58C; // else: addr-0 trap, fall-through
|
|
L_028EF58C: ; // 0x28ef58c
|
|
/* 028EF58C */ _t125 = cpu->r[1] + 0x000000FCu;
|
|
/* 028EF58C */ cpu->r[0] = rbrew_read32(cpu->mem, _t125);
|
|
/* 028EF590 */ cpu->lr = cpu->r[0];
|
|
/* 028EF594 */ cpu->r[1] = cpu->r[1] + 0x000000F8u;
|
|
/* 028EF598 */ return;
|
|
}
|
|
|
|
// fn_028EF59C @ 0x28ef59c
|
|
void Gambit_fn_028EF59C(CPUState* cpu) {
|
|
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_028EF59C: ; // 0x28ef59c
|
|
/* 028EF59C */ cpu->r[0] = cpu->lr;
|
|
/* 028EF5A0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EF5A0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF5A0 */ cpu->r[1] = _t0;
|
|
/* 028EF5A4 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF5A4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EF5A8 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF5A8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EF5AC */ cpu->r[31] = cpu->r[3];
|
|
/* 028EF5AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EF5B0 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EF5B4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF5B4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EF5B8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF5B8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EF5B8 */ if (_t5) goto L_028EF5BC; else goto L_028EF5CC;
|
|
L_028EF5BC: ; // 0x28ef5bc
|
|
/* 028EF5BC */ cpu->r[3] = 0x000000ACu;
|
|
/* 028EF5C0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EF5C4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EF5C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EF5C8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF5C8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EF5C8 */ if (_t7) goto L_028EF624; else goto L_028EF5CC;
|
|
L_028EF5CC: ; // 0x28ef5cc
|
|
/* 028EF5CC */ cpu->r[3] = cpu->r[31];
|
|
/* 028EF5D0 */ cpu->r[4] = cpu->r[30];
|
|
/* 028EF5D4 */ Gambit_fn_028E87F0(cpu);
|
|
/* 028EF5D8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EF5DC */ cpu->r[0] = 0x10140000u;
|
|
/* 028EF5E0 */ cpu->r[11] = cpu->r[11] + 0xFFFFCA40u;
|
|
/* 028EF5E4 */ cpu->r[0] = cpu->r[0] + 0xFFFFCAC8u;
|
|
/* 028EF5E8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF5EC */ _t8 = cpu->r[31] + 0x00000008u;
|
|
/* 028EF5EC */ rbrew_write32(cpu->mem, _t8, cpu->r[11]);
|
|
/* 028EF5F0 */ cpu->r[12] = cpu->r[12] + 0xFFFFCAB0u;
|
|
/* 028EF5F4 */ _t9 = cpu->r[31] + 0x00000020u;
|
|
/* 028EF5F4 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028EF5F8 */ cpu->r[10] = 0x101F0000u;
|
|
/* 028EF5FC */ _t10 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EF5FC */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028EF600 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF604 */ _t11 = cpu->r[10] + 0x00006344u;
|
|
/* 028EF604 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EF604 */ cpu->r[10] = _t11;
|
|
/* 028EF608 */ _t12 = cpu->r[12] + 0xFFFFCA3Cu;
|
|
/* 028EF608 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028EF60C */ _t13 = cpu->r[31] + 0x0000009Cu;
|
|
/* 028EF60C */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
/* 028EF610 */ _t14 = cpu->r[10] + 0x00000004u;
|
|
/* 028EF610 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028EF614 */ _t15 = cpu->r[31] + 0x000000A0u;
|
|
/* 028EF614 */ rbrew_write32(cpu->mem, _t15, cpu->r[12]);
|
|
/* 028EF618 */ _t16 = cpu->r[10] + 0x00000008u;
|
|
/* 028EF618 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028EF61C */ _t17 = cpu->r[31] + 0x000000A8u;
|
|
/* 028EF61C */ rbrew_write_f32(cpu->mem, _t17, cpu->f[0]);
|
|
/* 028EF620 */ _t18 = cpu->r[31] + 0x000000A4u;
|
|
/* 028EF620 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
L_028EF624: ; // 0x28ef624
|
|
/* 028EF624 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF624 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028EF628 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EF62C */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF62C */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028EF630 */ cpu->lr = cpu->r[0];
|
|
/* 028EF634 */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF634 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028EF638 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EF63C */ return;
|
|
}
|
|
|
|
// fn_028EF5A0 @ 0x28ef5a0
|
|
void Gambit_fn_028EF5A0(CPUState* cpu) {
|
|
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_028EF5A0: ; // 0x28ef5a0
|
|
/* 028EF5A0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EF5A0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF5A0 */ cpu->r[1] = _t0;
|
|
/* 028EF5A4 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF5A4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EF5A8 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF5A8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EF5AC */ cpu->r[31] = cpu->r[3];
|
|
/* 028EF5AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EF5B0 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EF5B4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF5B4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EF5B8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF5B8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EF5B8 */ if (_t5) goto L_028EF5BC; else goto L_028EF5CC;
|
|
L_028EF5BC: ; // 0x28ef5bc
|
|
/* 028EF5BC */ cpu->r[3] = 0x000000ACu;
|
|
/* 028EF5C0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EF5C4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EF5C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EF5C8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF5C8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EF5C8 */ if (_t7) goto L_028EF624; else goto L_028EF5CC;
|
|
L_028EF5CC: ; // 0x28ef5cc
|
|
/* 028EF5CC */ cpu->r[3] = cpu->r[31];
|
|
/* 028EF5D0 */ cpu->r[4] = cpu->r[30];
|
|
/* 028EF5D4 */ Gambit_fn_028E87F0(cpu);
|
|
/* 028EF5D8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EF5DC */ cpu->r[0] = 0x10140000u;
|
|
/* 028EF5E0 */ cpu->r[11] = cpu->r[11] + 0xFFFFCA40u;
|
|
/* 028EF5E4 */ cpu->r[0] = cpu->r[0] + 0xFFFFCAC8u;
|
|
/* 028EF5E8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF5EC */ _t8 = cpu->r[31] + 0x00000008u;
|
|
/* 028EF5EC */ rbrew_write32(cpu->mem, _t8, cpu->r[11]);
|
|
/* 028EF5F0 */ cpu->r[12] = cpu->r[12] + 0xFFFFCAB0u;
|
|
/* 028EF5F4 */ _t9 = cpu->r[31] + 0x00000020u;
|
|
/* 028EF5F4 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028EF5F8 */ cpu->r[10] = 0x101F0000u;
|
|
/* 028EF5FC */ _t10 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EF5FC */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028EF600 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF604 */ _t11 = cpu->r[10] + 0x00006344u;
|
|
/* 028EF604 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EF604 */ cpu->r[10] = _t11;
|
|
/* 028EF608 */ _t12 = cpu->r[12] + 0xFFFFCA3Cu;
|
|
/* 028EF608 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 028EF60C */ _t13 = cpu->r[31] + 0x0000009Cu;
|
|
/* 028EF60C */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
/* 028EF610 */ _t14 = cpu->r[10] + 0x00000004u;
|
|
/* 028EF610 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028EF614 */ _t15 = cpu->r[31] + 0x000000A0u;
|
|
/* 028EF614 */ rbrew_write32(cpu->mem, _t15, cpu->r[12]);
|
|
/* 028EF618 */ _t16 = cpu->r[10] + 0x00000008u;
|
|
/* 028EF618 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028EF61C */ _t17 = cpu->r[31] + 0x000000A8u;
|
|
/* 028EF61C */ rbrew_write_f32(cpu->mem, _t17, cpu->f[0]);
|
|
/* 028EF620 */ _t18 = cpu->r[31] + 0x000000A4u;
|
|
/* 028EF620 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
L_028EF624: ; // 0x28ef624
|
|
/* 028EF624 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF624 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028EF628 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EF62C */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF62C */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028EF630 */ cpu->lr = cpu->r[0];
|
|
/* 028EF634 */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF634 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028EF638 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EF63C */ return;
|
|
}
|
|
|
|
// fn_028EF640 @ 0x28ef640
|
|
void Gambit_fn_028EF640(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028EF640: ; // 0x28ef640
|
|
/* 028EF640 */ cpu->r[0] = cpu->lr;
|
|
/* 028EF644 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EF644 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF644 */ cpu->r[1] = _t0;
|
|
/* 028EF648 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF648 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EF64C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF64C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EF650 */ cpu->r[30] = cpu->r[3];
|
|
/* 028EF650 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EF654 */ cpu->r[31] = cpu->r[4];
|
|
/* 028EF658 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF658 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EF65C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF65C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EF65C */ if (_t5) goto L_028EF694; else goto L_028EF660;
|
|
L_028EF660: ; // 0x28ef660
|
|
/* 028EF660 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF664 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EF668 */ cpu->r[12] = cpu->r[12] + 0xFFFFCAB0u;
|
|
/* 028EF66C */ cpu->r[0] = 0x10140000u;
|
|
/* 028EF670 */ _t6 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028EF670 */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028EF674 */ cpu->r[0] = cpu->r[0] + 0xFFFFCAC8u;
|
|
/* 028EF678 */ cpu->r[4] = 0x00000000u;
|
|
/* 028EF67C */ _t7 = cpu->r[30] + 0x00000020u;
|
|
/* 028EF67C */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028EF680 */ Gambit_fn_028E8510(cpu);
|
|
/* 028EF684 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EF684 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EF688 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF688 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EF688 */ if (_t9) goto L_028EF694; else goto L_028EF68C;
|
|
L_028EF68C: ; // 0x28ef68c
|
|
/* 028EF68C */ cpu->r[3] = cpu->r[30];
|
|
/* 028EF690 */ Gambit_fn_02801BB0(cpu);
|
|
L_028EF694: ; // 0x28ef694
|
|
/* 028EF694 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF694 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EF698 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF698 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EF69C */ cpu->lr = cpu->r[0];
|
|
/* 028EF6A0 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF6A0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EF6A4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EF6A8 */ return;
|
|
}
|
|
|
|
// fn_028EF644 @ 0x28ef644
|
|
void Gambit_fn_028EF644(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028EF644: ; // 0x28ef644
|
|
/* 028EF644 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EF644 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF644 */ cpu->r[1] = _t0;
|
|
/* 028EF648 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF648 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EF64C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF64C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EF650 */ cpu->r[30] = cpu->r[3];
|
|
/* 028EF650 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EF654 */ cpu->r[31] = cpu->r[4];
|
|
/* 028EF658 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF658 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EF65C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF65C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EF65C */ if (_t5) goto L_028EF694; else goto L_028EF660;
|
|
L_028EF660: ; // 0x28ef660
|
|
/* 028EF660 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF664 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EF668 */ cpu->r[12] = cpu->r[12] + 0xFFFFCAB0u;
|
|
/* 028EF66C */ cpu->r[0] = 0x10140000u;
|
|
/* 028EF670 */ _t6 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028EF670 */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028EF674 */ cpu->r[0] = cpu->r[0] + 0xFFFFCAC8u;
|
|
/* 028EF678 */ cpu->r[4] = 0x00000000u;
|
|
/* 028EF67C */ _t7 = cpu->r[30] + 0x00000020u;
|
|
/* 028EF67C */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028EF680 */ Gambit_fn_028E8510(cpu);
|
|
/* 028EF684 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EF684 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EF688 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF688 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EF688 */ if (_t9) goto L_028EF694; else goto L_028EF68C;
|
|
L_028EF68C: ; // 0x28ef68c
|
|
/* 028EF68C */ cpu->r[3] = cpu->r[30];
|
|
/* 028EF690 */ Gambit_fn_02801BB0(cpu);
|
|
L_028EF694: ; // 0x28ef694
|
|
/* 028EF694 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF694 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EF698 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF698 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EF69C */ cpu->lr = cpu->r[0];
|
|
/* 028EF6A0 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF6A0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EF6A4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EF6A8 */ return;
|
|
}
|
|
|
|
// fn_028EF6AC @ 0x28ef6ac
|
|
void Gambit_fn_028EF6AC(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028EF6AC: ; // 0x28ef6ac
|
|
/* 028EF6AC */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028EF6AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028EF6B0 */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 028EF6B0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028EF6B4 */ return;
|
|
}
|
|
|
|
// fn_028EF6B8 @ 0x28ef6b8
|
|
void Gambit_fn_028EF6B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028EF6B8: ; // 0x28ef6b8
|
|
/* 028EF6B8 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028EF6B8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028EF6BC */ _t1 = cpu->r[3] + 0x0000009Cu;
|
|
/* 028EF6BC */ rbrew_write_f32(cpu->mem, _t1, cpu->f[0]);
|
|
/* 028EF6C0 */ _t2 = cpu->r[4] + 0x00000004u;
|
|
/* 028EF6C0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t2);
|
|
/* 028EF6C4 */ _t3 = cpu->r[3] + 0x000000A0u;
|
|
/* 028EF6C4 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[0]);
|
|
/* 028EF6C8 */ _t4 = cpu->r[4] + 0x00000008u;
|
|
/* 028EF6C8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028EF6CC */ _t5 = cpu->r[3] + 0x000000A4u;
|
|
/* 028EF6CC */ rbrew_write_f32(cpu->mem, _t5, cpu->f[0]);
|
|
/* 028EF6D0 */ return;
|
|
}
|
|
|
|
// fn_028EF6D4 @ 0x28ef6d4
|
|
void Gambit_fn_028EF6D4(CPUState* 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_028E8604: ; // 0x28e8604
|
|
/* 028E8604 */ cpu->r[0] = cpu->lr;
|
|
/* 028E8608 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028E8608 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028E8608 */ cpu->r[1] = _t0;
|
|
/* 028E860C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028E860C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028E8610 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8610 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028E8614 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8614 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028E8618 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8618 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028E861C */ cpu->r[29] = cpu->r[6];
|
|
/* 028E8620 */ cpu->r[31] = cpu->r[5];
|
|
/* 028E8624 */ cpu->r[5] = cpu->r[29];
|
|
/* 028E8628 */ cpu->r[30] = cpu->r[4];
|
|
/* 028E862C */ Gambit_fn_028E8584(cpu);
|
|
/* 028E8630 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028E8634 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028E8634 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028E8634 */ if (_t6) goto L_028E8638; else goto L_028E8674;
|
|
L_028E8638: ; // 0x28e8638
|
|
/* 028E8638 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028E863C */ _t7 = cpu->r[12] + 0x00006338u;
|
|
/* 028E863C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028E863C */ cpu->r[12] = _t7;
|
|
/* 028E8640 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028E8640 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[0]);
|
|
/* 028E8644 */ _t9 = cpu->r[12] + 0x00000004u;
|
|
/* 028E8644 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028E8648 */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 028E8648 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028E864C */ _t11 = cpu->r[12] + 0x00000008u;
|
|
/* 028E864C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028E8650 */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 028E8650 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 028E8654 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8654 */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028E8658 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8658 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028E865C */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 028E865C */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028E8660 */ cpu->lr = cpu->r[0];
|
|
/* 028E8664 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8664 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028E8668 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028E866C */ cpu->r[3] = 0x00000000u;
|
|
/* 028E8670 */ return;
|
|
L_028E8674: ; // 0x28e8674
|
|
/* 028E8674 */ cpu->r[5] = cpu->r[29];
|
|
/* 028E8678 */ cpu->r[4] = cpu->r[31];
|
|
/* 028E867C */ cpu->r[3] = cpu->r[30];
|
|
/* 028E8680 */ Gambit_fn_028D60D8(cpu);
|
|
/* 028E8684 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028E8684 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028E8688 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028E8688 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028E868C */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028E868C */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028E8690 */ cpu->lr = cpu->r[0];
|
|
/* 028E8694 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028E8694 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028E8698 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028E869C */ cpu->r[3] = 0x00000001u;
|
|
/* 028E86A0 */ return;
|
|
L_028EF6D4: ; // 0x28ef6d4
|
|
/* 028EF6D4 */ cpu->r[3] = cpu->r[3] + 0xFFFFFFF4u;
|
|
/* 028EF6D8 */ goto L_028E8604;
|
|
}
|
|
|
|
// fn_028EF6DC @ 0x28ef6dc
|
|
void Gambit_fn_028EF6DC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028EF6DC: ; // 0x28ef6dc
|
|
/* 028EF6DC */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF6E0 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028EF6E0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028EF6E4 */ _t1 = cpu->r[12] + 0xFFFFCAD8u;
|
|
/* 028EF6E4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028EF6E8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[13], cpu->f[0]);
|
|
/* 028EF6EC */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EF6EC */ _t3 = _t2 & 0x00000001u;
|
|
/* 028EF6EC */ if (_t3) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EF6EC */ goto L_028EF6F0;
|
|
L_028EF6F0: ; // 0x28ef6f0
|
|
/* 028EF6F0 */ _t4 = cpu->r[4] + 0x00000004u;
|
|
/* 028EF6F0 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 028EF6F4 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[0]);
|
|
/* 028EF6F8 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EF6F8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028EF6F8 */ if (_t6) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EF6F8 */ goto L_028EF6FC;
|
|
L_028EF6FC: ; // 0x28ef6fc
|
|
/* 028EF6FC */ _t7 = cpu->r[4] + 0x00000008u;
|
|
/* 028EF6FC */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028EF700 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[0]);
|
|
/* 028EF704 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EF704 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EF704 */ if (_t9) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EF704 */ goto L_028EF708;
|
|
L_028EF708: ; // 0x28ef708
|
|
/* 028EF708 */ _t10 = cpu->r[3] + 0x0000009Cu;
|
|
/* 028EF708 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[13]);
|
|
/* 028EF70C */ _t11 = cpu->r[4] + 0x00000004u;
|
|
/* 028EF70C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028EF710 */ _t12 = cpu->r[3] + 0x000000A0u;
|
|
/* 028EF710 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 028EF714 */ _t13 = cpu->r[4] + 0x00000008u;
|
|
/* 028EF714 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028EF718 */ _t14 = cpu->r[3] + 0x000000A4u;
|
|
/* 028EF718 */ rbrew_write_f32(cpu->mem, _t14, cpu->f[13]);
|
|
/* 028EF71C */ return;
|
|
}
|
|
|
|
// fn_028EF720 @ 0x28ef720
|
|
void Gambit_fn_028EF720(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65;
|
|
|
|
L_028EF720: ; // 0x28ef720
|
|
/* 028EF720 */ cpu->r[0] = cpu->lr;
|
|
/* 028EF724 */ _t0 = cpu->r[1] + 0xFFFFFF80u;
|
|
/* 028EF724 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF724 */ cpu->r[1] = _t0;
|
|
/* 028EF728 */ _t1 = cpu->r[1] + 0x00000078u;
|
|
/* 028EF728 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EF72C */ _t2 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028EF72C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EF730 */ cpu->r[31] = cpu->r[5];
|
|
/* 028EF730 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EF734 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EF738 */ _t3 = cpu->r[1] + 0x00000074u;
|
|
/* 028EF738 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028EF73C */ _t4 = cpu->r[1] + 0x00000084u;
|
|
/* 028EF73C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028EF740 */ cpu->r[29] = cpu->r[3];
|
|
/* 028EF744 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF744 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028EF744 */ if (_t6) goto L_028EF8CC; else goto L_028EF748;
|
|
L_028EF748: ; // 0x28ef748
|
|
/* 028EF748 */ cpu->r[3] = cpu->r[29];
|
|
/* 028EF74C */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028EF750 */ Gambit_fn_028E89EC(cpu);
|
|
/* 028EF754 */ /* nop */
|
|
/* 028EF758 */ /* nop */
|
|
/* 028EF75C */ _t7 = cpu->r[1] + 0x00000028u;
|
|
/* 028EF75C */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028EF760 */ /* nop */
|
|
/* 028EF764 */ _t8 = cpu->r[30] + 0x00000008u;
|
|
/* 028EF764 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EF768 */ /* nop */
|
|
/* 028EF76C */ _t9 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EF76C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028EF770 */ cpu->f[0] = cpu->f[9] - cpu->f[10];
|
|
/* 028EF774 */ _t10 = cpu->r[1] + 0x00000030u;
|
|
/* 028EF774 */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EF778 */ _t11 = cpu->r[1] + 0x00000038u;
|
|
/* 028EF778 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028EF77C */ _t12 = cpu->r[1] + 0x00000034u;
|
|
/* 028EF77C */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 028EF780 */ _t13 = cpu->r[1] + 0x00000034u;
|
|
/* 028EF780 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EF784 */ cpu->r[4] = cpu->r[1] + 0x00000044u;
|
|
/* 028EF788 */ _t14 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028EF788 */ rbrew_write32(cpu->mem, _t14, cpu->r[10]);
|
|
/* 028EF78C */ cpu->r[3] = cpu->r[29] + 0x00000044u;
|
|
/* 028EF790 */ _t15 = cpu->r[1] + 0x00000040u;
|
|
/* 028EF790 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028EF794 */ Gambit_fn_02C69628(cpu);
|
|
/* 028EF798 */ cpu->r[3] = cpu->r[1] + 0x00000044u;
|
|
/* 028EF79C */ cpu->r[4] = cpu->r[1] + 0x00000038u;
|
|
/* 028EF7A0 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028EF7A4 */ Gambit_fn_02C69468(cpu);
|
|
/* 028EF7A8 */ _t16 = cpu->r[29] + 0x0000009Cu;
|
|
/* 028EF7A8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028EF7AC */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF7B0 */ _t17 = cpu->r[12] + 0xFFFFCADCu;
|
|
/* 028EF7B0 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028EF7B4 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF7B4 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028EF7B8 */ cpu->f[13] = cpu->f[13] * cpu->f[12];
|
|
/* 028EF7BC */ _t19 = cpu->r[29] + 0x000000A0u;
|
|
/* 028EF7BC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 028EF7C0 */ cpu->f[10] = fabs(cpu->f[8]);
|
|
/* 028EF7C4 */ cpu->f[11] = cpu->f[0] * cpu->f[12];
|
|
/* 028EF7C8 */ _t20 = cpu->r[29] + 0x000000A4u;
|
|
/* 028EF7C8 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028EF7CC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[10], cpu->f[13]);
|
|
/* 028EF7D0 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028EF7D0 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028EF7D4 */ cpu->f[10] = cpu->f[9] * cpu->f[12];
|
|
/* 028EF7D8 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF7D8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028EF7DC */ _t23 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF7DC */ _t24 = _t23 & 0x00000001u;
|
|
/* 028EF7DC */ if (_t24) goto L_028EF7E0; else goto L_028EF7F0;
|
|
L_028EF7E0: ; // 0x28ef7e0
|
|
/* 028EF7E0 */ cpu->f[0] = -cpu->f[13];
|
|
/* 028EF7E4 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[8], cpu->f[0]);
|
|
/* 028EF7E8 */ _t25 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EF7E8 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028EF7E8 */ if (_t26) goto L_028EF7EC; else goto L_028EF848;
|
|
L_028EF7EC: ; // 0x28ef7ec
|
|
/* 028EF7EC */ goto L_028EF840;
|
|
L_028EF7F0: ; // 0x28ef7f0
|
|
/* 028EF7F0 */ cpu->f[0] = fabs(cpu->f[12]);
|
|
/* 028EF7F4 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[11]);
|
|
/* 028EF7F8 */ _t27 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF7F8 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028EF7F8 */ if (_t28) goto L_028EF7FC; else goto L_028EF80C;
|
|
L_028EF7FC: ; // 0x28ef7fc
|
|
/* 028EF7FC */ cpu->f[0] = -cpu->f[13];
|
|
/* 028EF800 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[8], cpu->f[0]);
|
|
/* 028EF804 */ _t29 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EF804 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028EF804 */ if (_t30) goto L_028EF808; else goto L_028EF848;
|
|
L_028EF808: ; // 0x28ef808
|
|
/* 028EF808 */ goto L_028EF840;
|
|
L_028EF80C: ; // 0x28ef80c
|
|
/* 028EF80C */ cpu->f[9] = fabs(cpu->f[7]);
|
|
/* 028EF810 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[9], cpu->f[10]);
|
|
/* 028EF814 */ _t31 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF814 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028EF814 */ if (_t32) goto L_028EF834; else goto L_028EF818;
|
|
L_028EF818: ; // 0x28ef818
|
|
/* 028EF818 */ _t33 = cpu->r[30] + 0x00000000u;
|
|
/* 028EF818 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t33);
|
|
/* 028EF81C */ _t34 = cpu->r[31] + 0x00000000u;
|
|
/* 028EF81C */ rbrew_write_f32(cpu->mem, _t34, cpu->f[11]);
|
|
/* 028EF820 */ _t35 = cpu->r[30] + 0x00000004u;
|
|
/* 028EF820 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 028EF824 */ _t36 = cpu->r[31] + 0x00000004u;
|
|
/* 028EF824 */ rbrew_write_f32(cpu->mem, _t36, cpu->f[12]);
|
|
/* 028EF828 */ _t37 = cpu->r[30] + 0x00000008u;
|
|
/* 028EF828 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028EF82C */ _t38 = cpu->r[31] + 0x00000008u;
|
|
/* 028EF82C */ rbrew_write_f32(cpu->mem, _t38, cpu->f[10]);
|
|
/* 028EF830 */ goto L_028EF8CC;
|
|
L_028EF834: ; // 0x28ef834
|
|
/* 028EF834 */ cpu->f[0] = -cpu->f[13];
|
|
/* 028EF838 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[8], cpu->f[0]);
|
|
/* 028EF83C */ _t39 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EF83C */ _t40 = _t39 & 0x00000001u;
|
|
/* 028EF83C */ if (_t40) goto L_028EF840; else goto L_028EF848;
|
|
L_028EF840: ; // 0x28ef840
|
|
/* 028EF840 */ _t41 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF840 */ rbrew_write_f32(cpu->mem, _t41, cpu->f[0]);
|
|
/* 028EF844 */ goto L_028EF854;
|
|
L_028EF848: ; // 0x28ef848
|
|
/* 028EF848 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[8], cpu->f[13]);
|
|
/* 028EF84C */ _t42 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF84C */ _t43 = _t42 & 0x00000001u;
|
|
/* 028EF84C */ if (_t43) goto L_028EF850; else goto L_028EF854;
|
|
L_028EF850: ; // 0x28ef850
|
|
/* 028EF850 */ _t44 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF850 */ rbrew_write_f32(cpu->mem, _t44, cpu->f[13]);
|
|
L_028EF854: ; // 0x28ef854
|
|
/* 028EF854 */ cpu->f[9] = -cpu->f[11];
|
|
/* 028EF858 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[9]);
|
|
/* 028EF85C */ _t45 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EF85C */ _t46 = _t45 & 0x00000001u;
|
|
/* 028EF85C */ if (_t46) goto L_028EF86C; else goto L_028EF860;
|
|
L_028EF860: ; // 0x28ef860
|
|
/* 028EF860 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[11]);
|
|
/* 028EF864 */ _t47 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF864 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028EF864 */ if (_t48) goto L_028EF868; else goto L_028EF870;
|
|
L_028EF868: ; // 0x28ef868
|
|
/* 028EF868 */ cpu->f[9] = cpu->f[11];
|
|
L_028EF86C: ; // 0x28ef86c
|
|
/* 028EF86C */ _t49 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF86C */ rbrew_write_f32(cpu->mem, _t49, cpu->f[9]);
|
|
L_028EF870: ; // 0x28ef870
|
|
/* 028EF870 */ cpu->f[11] = -cpu->f[10];
|
|
/* 028EF874 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[7], cpu->f[11]);
|
|
/* 028EF878 */ _t50 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EF878 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028EF878 */ if (_t51) goto L_028EF888; else goto L_028EF87C;
|
|
L_028EF87C: ; // 0x28ef87c
|
|
/* 028EF87C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[7], cpu->f[10]);
|
|
/* 028EF880 */ _t52 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF880 */ _t53 = _t52 & 0x00000001u;
|
|
/* 028EF880 */ if (_t53) goto L_028EF884; else goto L_028EF88C;
|
|
L_028EF884: ; // 0x28ef884
|
|
/* 028EF884 */ cpu->f[11] = cpu->f[10];
|
|
L_028EF888: ; // 0x28ef888
|
|
/* 028EF888 */ _t54 = cpu->r[1] + 0x00000010u;
|
|
/* 028EF888 */ rbrew_write_f32(cpu->mem, _t54, cpu->f[11]);
|
|
L_028EF88C: ; // 0x28ef88c
|
|
/* 028EF88C */ cpu->r[3] = cpu->r[29] + 0x00000044u;
|
|
/* 028EF890 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028EF894 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028EF898 */ Gambit_fn_02C69468(cpu);
|
|
/* 028EF89C */ /* nop */
|
|
/* 028EF8A0 */ /* nop */
|
|
/* 028EF8A4 */ _t55 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EF8A4 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t55);
|
|
/* 028EF8A8 */ /* nop */
|
|
/* 028EF8AC */ /* nop */
|
|
/* 028EF8B0 */ _t56 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF8B0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 028EF8B4 */ _t57 = cpu->r[1] + 0x00000028u;
|
|
/* 028EF8B4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t57);
|
|
/* 028EF8B8 */ _t58 = cpu->r[1] + 0x00000018u;
|
|
/* 028EF8B8 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t58);
|
|
/* 028EF8BC */ cpu->f[10] = cpu->f[10] + cpu->f[12];
|
|
/* 028EF8C0 */ _t59 = cpu->r[31] + 0x00000000u;
|
|
/* 028EF8C0 */ rbrew_write_f32(cpu->mem, _t59, cpu->f[13]);
|
|
/* 028EF8C4 */ _t60 = cpu->r[31] + 0x00000004u;
|
|
/* 028EF8C4 */ rbrew_write_f32(cpu->mem, _t60, cpu->f[11]);
|
|
/* 028EF8C8 */ _t61 = cpu->r[31] + 0x00000008u;
|
|
/* 028EF8C8 */ rbrew_write_f32(cpu->mem, _t61, cpu->f[10]);
|
|
L_028EF8CC: ; // 0x28ef8cc
|
|
/* 028EF8CC */ _t62 = cpu->r[1] + 0x00000074u;
|
|
/* 028EF8CC */ cpu->r[29] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028EF8D0 */ _t63 = cpu->r[1] + 0x00000084u;
|
|
/* 028EF8D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028EF8D4 */ _t64 = cpu->r[1] + 0x00000078u;
|
|
/* 028EF8D4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028EF8D8 */ cpu->lr = cpu->r[0];
|
|
/* 028EF8DC */ _t65 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028EF8DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028EF8E0 */ cpu->r[1] = cpu->r[1] + 0x00000080u;
|
|
/* 028EF8E4 */ return;
|
|
}
|
|
|
|
// fn_028EF724 @ 0x28ef724
|
|
void Gambit_fn_028EF724(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65;
|
|
|
|
L_028EF724: ; // 0x28ef724
|
|
/* 028EF724 */ _t0 = cpu->r[1] + 0xFFFFFF80u;
|
|
/* 028EF724 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF724 */ cpu->r[1] = _t0;
|
|
/* 028EF728 */ _t1 = cpu->r[1] + 0x00000078u;
|
|
/* 028EF728 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EF72C */ _t2 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028EF72C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EF730 */ cpu->r[31] = cpu->r[5];
|
|
/* 028EF730 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EF734 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EF738 */ _t3 = cpu->r[1] + 0x00000074u;
|
|
/* 028EF738 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028EF73C */ _t4 = cpu->r[1] + 0x00000084u;
|
|
/* 028EF73C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028EF740 */ cpu->r[29] = cpu->r[3];
|
|
/* 028EF744 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF744 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028EF744 */ if (_t6) goto L_028EF8CC; else goto L_028EF748;
|
|
L_028EF748: ; // 0x28ef748
|
|
/* 028EF748 */ cpu->r[3] = cpu->r[29];
|
|
/* 028EF74C */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 028EF750 */ Gambit_fn_028E89EC(cpu);
|
|
/* 028EF754 */ /* nop */
|
|
/* 028EF758 */ /* nop */
|
|
/* 028EF75C */ _t7 = cpu->r[1] + 0x00000028u;
|
|
/* 028EF75C */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028EF760 */ /* nop */
|
|
/* 028EF764 */ _t8 = cpu->r[30] + 0x00000008u;
|
|
/* 028EF764 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028EF768 */ /* nop */
|
|
/* 028EF76C */ _t9 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EF76C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028EF770 */ cpu->f[0] = cpu->f[9] - cpu->f[10];
|
|
/* 028EF774 */ _t10 = cpu->r[1] + 0x00000030u;
|
|
/* 028EF774 */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EF778 */ _t11 = cpu->r[1] + 0x00000038u;
|
|
/* 028EF778 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028EF77C */ _t12 = cpu->r[1] + 0x00000034u;
|
|
/* 028EF77C */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 028EF780 */ _t13 = cpu->r[1] + 0x00000034u;
|
|
/* 028EF780 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EF784 */ cpu->r[4] = cpu->r[1] + 0x00000044u;
|
|
/* 028EF788 */ _t14 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028EF788 */ rbrew_write32(cpu->mem, _t14, cpu->r[10]);
|
|
/* 028EF78C */ cpu->r[3] = cpu->r[29] + 0x00000044u;
|
|
/* 028EF790 */ _t15 = cpu->r[1] + 0x00000040u;
|
|
/* 028EF790 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028EF794 */ Gambit_fn_02C69628(cpu);
|
|
/* 028EF798 */ cpu->r[3] = cpu->r[1] + 0x00000044u;
|
|
/* 028EF79C */ cpu->r[4] = cpu->r[1] + 0x00000038u;
|
|
/* 028EF7A0 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028EF7A4 */ Gambit_fn_02C69468(cpu);
|
|
/* 028EF7A8 */ _t16 = cpu->r[29] + 0x0000009Cu;
|
|
/* 028EF7A8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028EF7AC */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF7B0 */ _t17 = cpu->r[12] + 0xFFFFCADCu;
|
|
/* 028EF7B0 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028EF7B4 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF7B4 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t18);
|
|
/* 028EF7B8 */ cpu->f[13] = cpu->f[13] * cpu->f[12];
|
|
/* 028EF7BC */ _t19 = cpu->r[29] + 0x000000A0u;
|
|
/* 028EF7BC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 028EF7C0 */ cpu->f[10] = fabs(cpu->f[8]);
|
|
/* 028EF7C4 */ cpu->f[11] = cpu->f[0] * cpu->f[12];
|
|
/* 028EF7C8 */ _t20 = cpu->r[29] + 0x000000A4u;
|
|
/* 028EF7C8 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028EF7CC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[10], cpu->f[13]);
|
|
/* 028EF7D0 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028EF7D0 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028EF7D4 */ cpu->f[10] = cpu->f[9] * cpu->f[12];
|
|
/* 028EF7D8 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF7D8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028EF7DC */ _t23 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF7DC */ _t24 = _t23 & 0x00000001u;
|
|
/* 028EF7DC */ if (_t24) goto L_028EF7E0; else goto L_028EF7F0;
|
|
L_028EF7E0: ; // 0x28ef7e0
|
|
/* 028EF7E0 */ cpu->f[0] = -cpu->f[13];
|
|
/* 028EF7E4 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[8], cpu->f[0]);
|
|
/* 028EF7E8 */ _t25 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EF7E8 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028EF7E8 */ if (_t26) goto L_028EF7EC; else goto L_028EF848;
|
|
L_028EF7EC: ; // 0x28ef7ec
|
|
/* 028EF7EC */ goto L_028EF840;
|
|
L_028EF7F0: ; // 0x28ef7f0
|
|
/* 028EF7F0 */ cpu->f[0] = fabs(cpu->f[12]);
|
|
/* 028EF7F4 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[11]);
|
|
/* 028EF7F8 */ _t27 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF7F8 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028EF7F8 */ if (_t28) goto L_028EF7FC; else goto L_028EF80C;
|
|
L_028EF7FC: ; // 0x28ef7fc
|
|
/* 028EF7FC */ cpu->f[0] = -cpu->f[13];
|
|
/* 028EF800 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[8], cpu->f[0]);
|
|
/* 028EF804 */ _t29 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EF804 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028EF804 */ if (_t30) goto L_028EF808; else goto L_028EF848;
|
|
L_028EF808: ; // 0x28ef808
|
|
/* 028EF808 */ goto L_028EF840;
|
|
L_028EF80C: ; // 0x28ef80c
|
|
/* 028EF80C */ cpu->f[9] = fabs(cpu->f[7]);
|
|
/* 028EF810 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[9], cpu->f[10]);
|
|
/* 028EF814 */ _t31 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF814 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028EF814 */ if (_t32) goto L_028EF834; else goto L_028EF818;
|
|
L_028EF818: ; // 0x28ef818
|
|
/* 028EF818 */ _t33 = cpu->r[30] + 0x00000000u;
|
|
/* 028EF818 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t33);
|
|
/* 028EF81C */ _t34 = cpu->r[31] + 0x00000000u;
|
|
/* 028EF81C */ rbrew_write_f32(cpu->mem, _t34, cpu->f[11]);
|
|
/* 028EF820 */ _t35 = cpu->r[30] + 0x00000004u;
|
|
/* 028EF820 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 028EF824 */ _t36 = cpu->r[31] + 0x00000004u;
|
|
/* 028EF824 */ rbrew_write_f32(cpu->mem, _t36, cpu->f[12]);
|
|
/* 028EF828 */ _t37 = cpu->r[30] + 0x00000008u;
|
|
/* 028EF828 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028EF82C */ _t38 = cpu->r[31] + 0x00000008u;
|
|
/* 028EF82C */ rbrew_write_f32(cpu->mem, _t38, cpu->f[10]);
|
|
/* 028EF830 */ goto L_028EF8CC;
|
|
L_028EF834: ; // 0x28ef834
|
|
/* 028EF834 */ cpu->f[0] = -cpu->f[13];
|
|
/* 028EF838 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[8], cpu->f[0]);
|
|
/* 028EF83C */ _t39 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EF83C */ _t40 = _t39 & 0x00000001u;
|
|
/* 028EF83C */ if (_t40) goto L_028EF840; else goto L_028EF848;
|
|
L_028EF840: ; // 0x28ef840
|
|
/* 028EF840 */ _t41 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF840 */ rbrew_write_f32(cpu->mem, _t41, cpu->f[0]);
|
|
/* 028EF844 */ goto L_028EF854;
|
|
L_028EF848: ; // 0x28ef848
|
|
/* 028EF848 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[8], cpu->f[13]);
|
|
/* 028EF84C */ _t42 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF84C */ _t43 = _t42 & 0x00000001u;
|
|
/* 028EF84C */ if (_t43) goto L_028EF850; else goto L_028EF854;
|
|
L_028EF850: ; // 0x28ef850
|
|
/* 028EF850 */ _t44 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF850 */ rbrew_write_f32(cpu->mem, _t44, cpu->f[13]);
|
|
L_028EF854: ; // 0x28ef854
|
|
/* 028EF854 */ cpu->f[9] = -cpu->f[11];
|
|
/* 028EF858 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[9]);
|
|
/* 028EF85C */ _t45 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EF85C */ _t46 = _t45 & 0x00000001u;
|
|
/* 028EF85C */ if (_t46) goto L_028EF86C; else goto L_028EF860;
|
|
L_028EF860: ; // 0x28ef860
|
|
/* 028EF860 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[11]);
|
|
/* 028EF864 */ _t47 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF864 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028EF864 */ if (_t48) goto L_028EF868; else goto L_028EF870;
|
|
L_028EF868: ; // 0x28ef868
|
|
/* 028EF868 */ cpu->f[9] = cpu->f[11];
|
|
L_028EF86C: ; // 0x28ef86c
|
|
/* 028EF86C */ _t49 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF86C */ rbrew_write_f32(cpu->mem, _t49, cpu->f[9]);
|
|
L_028EF870: ; // 0x28ef870
|
|
/* 028EF870 */ cpu->f[11] = -cpu->f[10];
|
|
/* 028EF874 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[7], cpu->f[11]);
|
|
/* 028EF878 */ _t50 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EF878 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028EF878 */ if (_t51) goto L_028EF888; else goto L_028EF87C;
|
|
L_028EF87C: ; // 0x28ef87c
|
|
/* 028EF87C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[7], cpu->f[10]);
|
|
/* 028EF880 */ _t52 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028EF880 */ _t53 = _t52 & 0x00000001u;
|
|
/* 028EF880 */ if (_t53) goto L_028EF884; else goto L_028EF88C;
|
|
L_028EF884: ; // 0x28ef884
|
|
/* 028EF884 */ cpu->f[11] = cpu->f[10];
|
|
L_028EF888: ; // 0x28ef888
|
|
/* 028EF888 */ _t54 = cpu->r[1] + 0x00000010u;
|
|
/* 028EF888 */ rbrew_write_f32(cpu->mem, _t54, cpu->f[11]);
|
|
L_028EF88C: ; // 0x28ef88c
|
|
/* 028EF88C */ cpu->r[3] = cpu->r[29] + 0x00000044u;
|
|
/* 028EF890 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028EF894 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028EF898 */ Gambit_fn_02C69468(cpu);
|
|
/* 028EF89C */ /* nop */
|
|
/* 028EF8A0 */ /* nop */
|
|
/* 028EF8A4 */ _t55 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EF8A4 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t55);
|
|
/* 028EF8A8 */ /* nop */
|
|
/* 028EF8AC */ /* nop */
|
|
/* 028EF8B0 */ _t56 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF8B0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 028EF8B4 */ _t57 = cpu->r[1] + 0x00000028u;
|
|
/* 028EF8B4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t57);
|
|
/* 028EF8B8 */ _t58 = cpu->r[1] + 0x00000018u;
|
|
/* 028EF8B8 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t58);
|
|
/* 028EF8BC */ cpu->f[10] = cpu->f[10] + cpu->f[12];
|
|
/* 028EF8C0 */ _t59 = cpu->r[31] + 0x00000000u;
|
|
/* 028EF8C0 */ rbrew_write_f32(cpu->mem, _t59, cpu->f[13]);
|
|
/* 028EF8C4 */ _t60 = cpu->r[31] + 0x00000004u;
|
|
/* 028EF8C4 */ rbrew_write_f32(cpu->mem, _t60, cpu->f[11]);
|
|
/* 028EF8C8 */ _t61 = cpu->r[31] + 0x00000008u;
|
|
/* 028EF8C8 */ rbrew_write_f32(cpu->mem, _t61, cpu->f[10]);
|
|
L_028EF8CC: ; // 0x28ef8cc
|
|
/* 028EF8CC */ _t62 = cpu->r[1] + 0x00000074u;
|
|
/* 028EF8CC */ cpu->r[29] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028EF8D0 */ _t63 = cpu->r[1] + 0x00000084u;
|
|
/* 028EF8D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028EF8D4 */ _t64 = cpu->r[1] + 0x00000078u;
|
|
/* 028EF8D4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028EF8D8 */ cpu->lr = cpu->r[0];
|
|
/* 028EF8DC */ _t65 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028EF8DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028EF8E0 */ cpu->r[1] = cpu->r[1] + 0x00000080u;
|
|
/* 028EF8E4 */ return;
|
|
}
|
|
|
|
// fn_028EF8E8 @ 0x28ef8e8
|
|
void Gambit_fn_028EF8E8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028EF8E8: ; // 0x28ef8e8
|
|
/* 028EF8E8 */ cpu->r[0] = cpu->lr;
|
|
/* 028EF8EC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EF8EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF8EC */ cpu->r[1] = _t0;
|
|
/* 028EF8F0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF8F0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EF8F4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF8F4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EF8F8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EF8F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EF8FC */ cpu->r[30] = cpu->r[4];
|
|
/* 028EF900 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF900 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EF904 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF904 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EF904 */ if (_t5) goto L_028EF908; else goto L_028EF918;
|
|
L_028EF908: ; // 0x28ef908
|
|
/* 028EF908 */ cpu->r[3] = 0x000000A8u;
|
|
/* 028EF90C */ Gambit_fn_02801A78(cpu);
|
|
/* 028EF910 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EF910 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EF914 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF914 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EF914 */ if (_t7) goto L_028EF958; else goto L_028EF918;
|
|
L_028EF918: ; // 0x28ef918
|
|
/* 028EF918 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EF91C */ cpu->r[4] = cpu->r[30];
|
|
/* 028EF920 */ Gambit_fn_028E87F0(cpu);
|
|
/* 028EF924 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EF928 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF92C */ cpu->r[11] = cpu->r[11] + 0xFFFFCAF0u;
|
|
/* 028EF930 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EF934 */ _t8 = cpu->r[31] + 0x00000008u;
|
|
/* 028EF934 */ rbrew_write32(cpu->mem, _t8, cpu->r[11]);
|
|
/* 028EF938 */ cpu->r[0] = cpu->r[0] + 0xFFFFCB78u;
|
|
/* 028EF93C */ cpu->r[12] = cpu->r[12] + 0xFFFFCB60u;
|
|
/* 028EF940 */ _t9 = cpu->r[31] + 0x00000020u;
|
|
/* 028EF940 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028EF944 */ cpu->r[0] = cpu->r[31] + 0x0000009Cu;
|
|
/* 028EF944 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EF948 */ _t10 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EF948 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028EF94C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF94C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028EF94C */ if (_t12) goto L_028EF950; else goto L_028EF958;
|
|
L_028EF950: ; // 0x28ef950
|
|
/* 028EF950 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028EF954 */ Gambit_fn_02801A78(cpu);
|
|
L_028EF958: ; // 0x28ef958
|
|
/* 028EF958 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF958 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EF95C */ cpu->r[3] = cpu->r[31];
|
|
/* 028EF960 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF960 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028EF964 */ cpu->lr = cpu->r[0];
|
|
/* 028EF968 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF968 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EF96C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EF970 */ return;
|
|
}
|
|
|
|
// fn_028EF8EC @ 0x28ef8ec
|
|
void Gambit_fn_028EF8EC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028EF8EC: ; // 0x28ef8ec
|
|
/* 028EF8EC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EF8EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF8EC */ cpu->r[1] = _t0;
|
|
/* 028EF8F0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF8F0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EF8F4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF8F4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EF8F8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EF8F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EF8FC */ cpu->r[30] = cpu->r[4];
|
|
/* 028EF900 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF900 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EF904 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF904 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EF904 */ if (_t5) goto L_028EF908; else goto L_028EF918;
|
|
L_028EF908: ; // 0x28ef908
|
|
/* 028EF908 */ cpu->r[3] = 0x000000A8u;
|
|
/* 028EF90C */ Gambit_fn_02801A78(cpu);
|
|
/* 028EF910 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EF910 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EF914 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF914 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EF914 */ if (_t7) goto L_028EF958; else goto L_028EF918;
|
|
L_028EF918: ; // 0x28ef918
|
|
/* 028EF918 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EF91C */ cpu->r[4] = cpu->r[30];
|
|
/* 028EF920 */ Gambit_fn_028E87F0(cpu);
|
|
/* 028EF924 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EF928 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF92C */ cpu->r[11] = cpu->r[11] + 0xFFFFCAF0u;
|
|
/* 028EF930 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EF934 */ _t8 = cpu->r[31] + 0x00000008u;
|
|
/* 028EF934 */ rbrew_write32(cpu->mem, _t8, cpu->r[11]);
|
|
/* 028EF938 */ cpu->r[0] = cpu->r[0] + 0xFFFFCB78u;
|
|
/* 028EF93C */ cpu->r[12] = cpu->r[12] + 0xFFFFCB60u;
|
|
/* 028EF940 */ _t9 = cpu->r[31] + 0x00000020u;
|
|
/* 028EF940 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028EF944 */ cpu->r[0] = cpu->r[31] + 0x0000009Cu;
|
|
/* 028EF944 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EF948 */ _t10 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EF948 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028EF94C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF94C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028EF94C */ if (_t12) goto L_028EF950; else goto L_028EF958;
|
|
L_028EF950: ; // 0x28ef950
|
|
/* 028EF950 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028EF954 */ Gambit_fn_02801A78(cpu);
|
|
L_028EF958: ; // 0x28ef958
|
|
/* 028EF958 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF958 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EF95C */ cpu->r[3] = cpu->r[31];
|
|
/* 028EF960 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF960 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028EF964 */ cpu->lr = cpu->r[0];
|
|
/* 028EF968 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF968 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EF96C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EF970 */ return;
|
|
}
|
|
|
|
// fn_028EF974 @ 0x28ef974
|
|
void Gambit_fn_028EF974(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028EF974: ; // 0x28ef974
|
|
/* 028EF974 */ cpu->r[0] = cpu->lr;
|
|
/* 028EF978 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EF978 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF978 */ cpu->r[1] = _t0;
|
|
/* 028EF97C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF97C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EF980 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF980 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EF984 */ cpu->r[30] = cpu->r[3];
|
|
/* 028EF984 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EF988 */ cpu->r[31] = cpu->r[4];
|
|
/* 028EF98C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF98C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EF990 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF990 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EF990 */ if (_t5) goto L_028EF9C8; else goto L_028EF994;
|
|
L_028EF994: ; // 0x28ef994
|
|
/* 028EF994 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF998 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EF99C */ cpu->r[12] = cpu->r[12] + 0xFFFFCB60u;
|
|
/* 028EF9A0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EF9A4 */ _t6 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028EF9A4 */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028EF9A8 */ cpu->r[0] = cpu->r[0] + 0xFFFFCB78u;
|
|
/* 028EF9AC */ cpu->r[4] = 0x00000000u;
|
|
/* 028EF9B0 */ _t7 = cpu->r[30] + 0x00000020u;
|
|
/* 028EF9B0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028EF9B4 */ Gambit_fn_028E8510(cpu);
|
|
/* 028EF9B8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EF9B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EF9BC */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF9BC */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EF9BC */ if (_t9) goto L_028EF9C8; else goto L_028EF9C0;
|
|
L_028EF9C0: ; // 0x28ef9c0
|
|
/* 028EF9C0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EF9C4 */ Gambit_fn_02801BB0(cpu);
|
|
L_028EF9C8: ; // 0x28ef9c8
|
|
/* 028EF9C8 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF9C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EF9CC */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF9CC */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EF9D0 */ cpu->lr = cpu->r[0];
|
|
/* 028EF9D4 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF9D4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EF9D8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EF9DC */ return;
|
|
}
|
|
|
|
// fn_028EF978 @ 0x28ef978
|
|
void Gambit_fn_028EF978(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028EF978: ; // 0x28ef978
|
|
/* 028EF978 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EF978 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EF978 */ cpu->r[1] = _t0;
|
|
/* 028EF97C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF97C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EF980 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF980 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EF984 */ cpu->r[30] = cpu->r[3];
|
|
/* 028EF984 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028EF988 */ cpu->r[31] = cpu->r[4];
|
|
/* 028EF98C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF98C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EF990 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF990 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EF990 */ if (_t5) goto L_028EF9C8; else goto L_028EF994;
|
|
L_028EF994: ; // 0x28ef994
|
|
/* 028EF994 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EF998 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EF99C */ cpu->r[12] = cpu->r[12] + 0xFFFFCB60u;
|
|
/* 028EF9A0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EF9A4 */ _t6 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028EF9A4 */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028EF9A8 */ cpu->r[0] = cpu->r[0] + 0xFFFFCB78u;
|
|
/* 028EF9AC */ cpu->r[4] = 0x00000000u;
|
|
/* 028EF9B0 */ _t7 = cpu->r[30] + 0x00000020u;
|
|
/* 028EF9B0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028EF9B4 */ Gambit_fn_028E8510(cpu);
|
|
/* 028EF9B8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EF9B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EF9BC */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF9BC */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EF9BC */ if (_t9) goto L_028EF9C8; else goto L_028EF9C0;
|
|
L_028EF9C0: ; // 0x28ef9c0
|
|
/* 028EF9C0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EF9C4 */ Gambit_fn_02801BB0(cpu);
|
|
L_028EF9C8: ; // 0x28ef9c8
|
|
/* 028EF9C8 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028EF9C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EF9CC */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028EF9CC */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EF9D0 */ cpu->lr = cpu->r[0];
|
|
/* 028EF9D4 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EF9D4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EF9D8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EF9DC */ return;
|
|
}
|
|
|
|
// fn_028EF9E0 @ 0x28ef9e0
|
|
void Gambit_fn_028EF9E0(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028EF9E0: ; // 0x28ef9e0
|
|
/* 028EF9E0 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028EF9E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028EF9E4 */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 028EF9E4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028EF9E8 */ return;
|
|
}
|
|
|
|
// fn_028EF9EC @ 0x28ef9ec
|
|
void Gambit_fn_028EF9EC(CPUState* cpu) {
|
|
L_028EF9EC: ; // 0x28ef9ec
|
|
/* 028EF9EC */ return;
|
|
}
|
|
|
|
// fn_028EF9F0 @ 0x28ef9f0
|
|
void Gambit_fn_028EF9F0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028EF9F0: ; // 0x28ef9f0
|
|
/* 028EF9F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028EF9F4 */ cpu->r[12] = cpu->r[4];
|
|
/* 028EF9F8 */ _t0 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028EF9F8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t0);
|
|
/* 028EF9FC */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EF9FC */ _t2 = _t1 & 0x00000001u;
|
|
/* 028EF9FC */ if (_t2) goto L_028EFA04; else goto L_028EFA00;
|
|
L_028EFA00: ; // 0x28efa00
|
|
/* 028EFA00 */ cpu->r[12] = cpu->r[5];
|
|
L_028EFA04: ; // 0x28efa04
|
|
/* 028EFA04 */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028EFA04 */ rbrew_write32(cpu->mem, _t3, cpu->r[12]);
|
|
/* 028EFA08 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000000u, 0x0000001Eu);
|
|
/* 028EFA0C */ _t4 = cpu->r[3] + 0x00000000u;
|
|
/* 028EFA0C */ rbrew_write32(cpu->mem, _t4, cpu->r[4]);
|
|
/* 028EFA10 */ _t5 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028EFA10 */ rbrew_write8(cpu->mem, _t5, (uint8_t)cpu->r[0]);
|
|
/* 028EFA14 */ return;
|
|
}
|
|
|
|
// fn_028EFA18 @ 0x28efa18
|
|
void Gambit_fn_028EFA18(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028EFA18: ; // 0x28efa18
|
|
/* 028EFA18 */ _t0 = cpu->r[3] + 0x00000008u;
|
|
/* 028EFA18 */ rbrew_write32(cpu->mem, _t0, cpu->r[4]);
|
|
/* 028EFA1C */ cpu->r[11] = cpu->r[4] + 0xFFFFFFFFu;
|
|
/* 028EFA20 */ cpu->r[0] = cpu->r[4] - cpu->r[11];
|
|
/* 028EFA20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EFA24 */ _t1 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028EFA24 */ cpu->r[12] = rbrew_read8(cpu->mem, _t1);
|
|
/* 028EFA28 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFA28 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028EFA28 */ if (_t3) goto L_028EFA38; else goto L_028EFA2C;
|
|
L_028EFA2C: ; // 0x28efa2c
|
|
/* 028EFA2C */ cpu->r[12] = cpu->r[12] | 0x00000002u;
|
|
/* 028EFA30 */ _t4 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028EFA30 */ rbrew_write8(cpu->mem, _t4, (uint8_t)cpu->r[12]);
|
|
/* 028EFA34 */ return;
|
|
L_028EFA38: ; // 0x28efa38
|
|
/* 028EFA38 */ cpu->r[12] = rbrew_rlwinm(cpu->r[12], 0x00000000u, 0x0000001Fu, 0x0000001Du);
|
|
/* 028EFA3C */ _t5 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028EFA3C */ rbrew_write8(cpu->mem, _t5, (uint8_t)cpu->r[12]);
|
|
/* 028EFA40 */ return;
|
|
}
|
|
|
|
// fn_028EFA44 @ 0x28efa44
|
|
void Gambit_fn_028EFA44(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028EFA44: ; // 0x28efa44
|
|
/* 028EFA44 */ cpu->r[0] = cpu->lr;
|
|
/* 028EFA48 */ cpu->r[4] = 0x00000000u;
|
|
/* 028EFA4C */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028EFA4C */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028EFA50 */ cpu->r[5] = cpu->r[4];
|
|
/* 028EFA54 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EFA54 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028EFA54 */ cpu->r[1] = _t1;
|
|
/* 028EFA58 */ Gambit_fn_028EF9F0(cpu);
|
|
/* 028EFA5C */ Gambit_fn_028EFA18(cpu);
|
|
/* 028EFA60 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFA60 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028EFA64 */ cpu->lr = cpu->r[0];
|
|
/* 028EFA68 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EFA6C */ return;
|
|
}
|
|
|
|
// fn_028EFA54 @ 0x28efa54
|
|
void Gambit_fn_028EFA54(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028EFA54: ; // 0x28efa54
|
|
/* 028EFA54 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EFA54 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFA54 */ cpu->r[1] = _t0;
|
|
/* 028EFA58 */ Gambit_fn_028EF9F0(cpu);
|
|
/* 028EFA5C */ Gambit_fn_028EFA18(cpu);
|
|
/* 028EFA60 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFA60 */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028EFA64 */ cpu->lr = cpu->r[0];
|
|
/* 028EFA68 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EFA6C */ return;
|
|
}
|
|
|
|
// fn_028EFA70 @ 0x28efa70
|
|
void Gambit_fn_028EFA70(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028EFA70: ; // 0x28efa70
|
|
/* 028EFA70 */ cpu->r[0] = cpu->lr;
|
|
/* 028EFA74 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EFA74 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFA74 */ cpu->r[1] = _t0;
|
|
/* 028EFA78 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFA78 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EFA7C */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFA7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EFA80 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFA80 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028EFA84 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFA84 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028EFA84 */ if (_t4) goto L_028EFA88; else goto L_028EFA98;
|
|
L_028EFA88: ; // 0x28efa88
|
|
/* 028EFA88 */ cpu->r[3] = 0x00000018u;
|
|
/* 028EFA8C */ Gambit_fn_02801A78(cpu);
|
|
/* 028EFA90 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFA90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EFA94 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFA94 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028EFA94 */ if (_t6) goto L_028EFAD8; else goto L_028EFA98;
|
|
L_028EFA98: ; // 0x28efa98
|
|
/* 028EFA98 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EFA9C */ cpu->r[12] = cpu->r[12] + 0xFFFFCBACu;
|
|
/* 028EFAA0 */ cpu->r[3] = cpu->r[31] + 0x0000000Cu;
|
|
/* 028EFAA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EFAA4 */ _t7 = cpu->r[31] + 0x00000014u;
|
|
/* 028EFAA4 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 028EFAA8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFAA8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EFAA8 */ if (_t9) goto L_028EFAAC; else goto L_028EFABC;
|
|
L_028EFAAC: ; // 0x28efaac
|
|
/* 028EFAAC */ cpu->r[3] = 0x00000001u;
|
|
/* 028EFAB0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EFAB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EFAB8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFAB8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028EFAB8 */ if (_t11) goto L_028EFAC4; else goto L_028EFABC;
|
|
L_028EFABC: ; // 0x28efabc
|
|
/* 028EFABC */ cpu->r[0] = 0x00000000u;
|
|
/* 028EFAC0 */ _t12 = cpu->r[3] + 0x00000000u;
|
|
/* 028EFAC0 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[0]);
|
|
L_028EFAC4: ; // 0x28efac4
|
|
/* 028EFAC4 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EFAC8 */ cpu->r[11] = cpu->r[11] + 0xFFFFCBA0u;
|
|
/* 028EFACC */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFAD0 */ _t13 = cpu->r[31] + 0x00000010u;
|
|
/* 028EFAD0 */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
/* 028EFAD4 */ Gambit_fn_028EFA44(cpu);
|
|
L_028EFAD8: ; // 0x28efad8
|
|
/* 028EFAD8 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFAD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028EFADC */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFAE0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFAE0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EFAE4 */ cpu->lr = cpu->r[0];
|
|
/* 028EFAE8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EFAEC */ return;
|
|
}
|
|
|
|
// fn_028EFA74 @ 0x28efa74
|
|
void Gambit_fn_028EFA74(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028EFA74: ; // 0x28efa74
|
|
/* 028EFA74 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EFA74 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFA74 */ cpu->r[1] = _t0;
|
|
/* 028EFA78 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFA78 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EFA7C */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFA7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EFA80 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFA80 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028EFA84 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFA84 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028EFA84 */ if (_t4) goto L_028EFA88; else goto L_028EFA98;
|
|
L_028EFA88: ; // 0x28efa88
|
|
/* 028EFA88 */ cpu->r[3] = 0x00000018u;
|
|
/* 028EFA8C */ Gambit_fn_02801A78(cpu);
|
|
/* 028EFA90 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFA90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EFA94 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFA94 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028EFA94 */ if (_t6) goto L_028EFAD8; else goto L_028EFA98;
|
|
L_028EFA98: ; // 0x28efa98
|
|
/* 028EFA98 */ cpu->r[12] = 0x10140000u;
|
|
/* 028EFA9C */ cpu->r[12] = cpu->r[12] + 0xFFFFCBACu;
|
|
/* 028EFAA0 */ cpu->r[3] = cpu->r[31] + 0x0000000Cu;
|
|
/* 028EFAA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EFAA4 */ _t7 = cpu->r[31] + 0x00000014u;
|
|
/* 028EFAA4 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 028EFAA8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFAA8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028EFAA8 */ if (_t9) goto L_028EFAAC; else goto L_028EFABC;
|
|
L_028EFAAC: ; // 0x28efaac
|
|
/* 028EFAAC */ cpu->r[3] = 0x00000001u;
|
|
/* 028EFAB0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EFAB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EFAB8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFAB8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028EFAB8 */ if (_t11) goto L_028EFAC4; else goto L_028EFABC;
|
|
L_028EFABC: ; // 0x28efabc
|
|
/* 028EFABC */ cpu->r[0] = 0x00000000u;
|
|
/* 028EFAC0 */ _t12 = cpu->r[3] + 0x00000000u;
|
|
/* 028EFAC0 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[0]);
|
|
L_028EFAC4: ; // 0x28efac4
|
|
/* 028EFAC4 */ cpu->r[11] = 0x10140000u;
|
|
/* 028EFAC8 */ cpu->r[11] = cpu->r[11] + 0xFFFFCBA0u;
|
|
/* 028EFACC */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFAD0 */ _t13 = cpu->r[31] + 0x00000010u;
|
|
/* 028EFAD0 */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
/* 028EFAD4 */ Gambit_fn_028EFA44(cpu);
|
|
L_028EFAD8: ; // 0x28efad8
|
|
/* 028EFAD8 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFAD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028EFADC */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFAE0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFAE0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EFAE4 */ cpu->lr = cpu->r[0];
|
|
/* 028EFAE8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EFAEC */ return;
|
|
}
|
|
|
|
// fn_028EFAF0 @ 0x28efaf0
|
|
void Gambit_fn_028EFAF0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028EFAF0: ; // 0x28efaf0
|
|
/* 028EFAF0 */ cpu->r[0] = cpu->lr;
|
|
/* 028EFAF4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EFAF4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFAF4 */ cpu->r[1] = _t0;
|
|
/* 028EFAF8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFAF8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EFAFC */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFB00 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFB00 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028EFB04 */ _t3 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028EFB04 */ cpu->r[0] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028EFB08 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EFB08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028EFB0C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFB0C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EFB0C */ if (_t5) goto L_028EFB18; else goto L_028EFB10;
|
|
L_028EFB10: ; // 0x28efb10
|
|
/* 028EFB10 */ _t6 = cpu->r[31] + 0x00000000u;
|
|
/* 028EFB10 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028EFB14 */ Gambit_fn_02801BB0(cpu);
|
|
L_028EFB18: ; // 0x28efb18
|
|
/* 028EFB18 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFB1C */ Gambit_fn_028EFA44(cpu);
|
|
/* 028EFB20 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFB20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028EFB24 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFB24 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028EFB28 */ cpu->lr = cpu->r[0];
|
|
/* 028EFB2C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EFB30 */ return;
|
|
}
|
|
|
|
// fn_028EFAF4 @ 0x28efaf4
|
|
void Gambit_fn_028EFAF4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028EFAF4: ; // 0x28efaf4
|
|
/* 028EFAF4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EFAF4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFAF4 */ cpu->r[1] = _t0;
|
|
/* 028EFAF8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFAF8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EFAFC */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFB00 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFB00 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028EFB04 */ _t3 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028EFB04 */ cpu->r[0] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028EFB08 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EFB08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028EFB0C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFB0C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EFB0C */ if (_t5) goto L_028EFB18; else goto L_028EFB10;
|
|
L_028EFB10: ; // 0x28efb10
|
|
/* 028EFB10 */ _t6 = cpu->r[31] + 0x00000000u;
|
|
/* 028EFB10 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028EFB14 */ Gambit_fn_02801BB0(cpu);
|
|
L_028EFB18: ; // 0x28efb18
|
|
/* 028EFB18 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFB1C */ Gambit_fn_028EFA44(cpu);
|
|
/* 028EFB20 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFB20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028EFB24 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFB24 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028EFB28 */ cpu->lr = cpu->r[0];
|
|
/* 028EFB2C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EFB30 */ return;
|
|
}
|
|
|
|
// fn_028EFB34 @ 0x28efb34
|
|
void Gambit_fn_028EFB34(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028EFB34: ; // 0x28efb34
|
|
/* 028EFB34 */ cpu->r[0] = cpu->lr;
|
|
/* 028EFB38 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EFB38 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFB38 */ cpu->r[1] = _t0;
|
|
/* 028EFB3C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFB3C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EFB40 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFB40 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EFB44 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFB44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EFB48 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EFB4C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFB4C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EFB50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFB50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EFB50 */ if (_t5) goto L_028EFB78; else goto L_028EFB54;
|
|
L_028EFB54: ; // 0x28efb54
|
|
/* 028EFB54 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EFB58 */ cpu->r[0] = cpu->r[0] + 0xFFFFCBACu;
|
|
/* 028EFB5C */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFB60 */ _t6 = cpu->r[31] + 0x00000014u;
|
|
/* 028EFB60 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028EFB64 */ Gambit_fn_028EFAF0(cpu);
|
|
/* 028EFB68 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EFB68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EFB6C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFB6C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028EFB6C */ if (_t8) goto L_028EFB78; else goto L_028EFB70;
|
|
L_028EFB70: ; // 0x28efb70
|
|
/* 028EFB70 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFB74 */ Gambit_fn_02801BB0(cpu);
|
|
L_028EFB78: ; // 0x28efb78
|
|
/* 028EFB78 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFB78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028EFB7C */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFB7C */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EFB80 */ cpu->lr = cpu->r[0];
|
|
/* 028EFB84 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFB84 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EFB88 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EFB8C */ return;
|
|
}
|
|
|
|
// fn_028EFB38 @ 0x28efb38
|
|
void Gambit_fn_028EFB38(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028EFB38: ; // 0x28efb38
|
|
/* 028EFB38 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EFB38 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFB38 */ cpu->r[1] = _t0;
|
|
/* 028EFB3C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFB3C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EFB40 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFB40 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EFB44 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFB44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EFB48 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EFB4C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFB4C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EFB50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFB50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EFB50 */ if (_t5) goto L_028EFB78; else goto L_028EFB54;
|
|
L_028EFB54: ; // 0x28efb54
|
|
/* 028EFB54 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EFB58 */ cpu->r[0] = cpu->r[0] + 0xFFFFCBACu;
|
|
/* 028EFB5C */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFB60 */ _t6 = cpu->r[31] + 0x00000014u;
|
|
/* 028EFB60 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028EFB64 */ Gambit_fn_028EFAF0(cpu);
|
|
/* 028EFB68 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EFB68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EFB6C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFB6C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028EFB6C */ if (_t8) goto L_028EFB78; else goto L_028EFB70;
|
|
L_028EFB70: ; // 0x28efb70
|
|
/* 028EFB70 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFB74 */ Gambit_fn_02801BB0(cpu);
|
|
L_028EFB78: ; // 0x28efb78
|
|
/* 028EFB78 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFB78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028EFB7C */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFB7C */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EFB80 */ cpu->lr = cpu->r[0];
|
|
/* 028EFB84 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFB84 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EFB88 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EFB8C */ return;
|
|
}
|
|
|
|
// fn_028EFB90 @ 0x28efb90
|
|
void Gambit_fn_028EFB90(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028EFB90: ; // 0x28efb90
|
|
/* 028EFB90 */ cpu->r[0] = cpu->lr;
|
|
/* 028EFB94 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028EFB94 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028EFB98 */ cpu->r[10] = cpu->r[3];
|
|
/* 028EFB9C */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EFB9C */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028EFB9C */ cpu->r[1] = _t1;
|
|
/* 028EFBA0 */ _t2 = cpu->r[10] + 0x00000008u;
|
|
/* 028EFBA0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028EFBA4 */ cpu->r[3] = cpu->r[4];
|
|
/* 028EFBA8 */ _t3 = cpu->r[10] + 0x00000000u;
|
|
/* 028EFBA8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028EFBAC */ Gambit_fn_028EF9F0(cpu);
|
|
/* 028EFBB0 */ cpu->r[4] = cpu->r[5];
|
|
/* 028EFBB4 */ Gambit_fn_028EFA18(cpu);
|
|
/* 028EFBB8 */ _t4 = cpu->r[10] + 0x00000004u;
|
|
/* 028EFBB8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028EFBBC */ _t5 = cpu->r[3] + 0x00000004u;
|
|
/* 028EFBBC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028EFBC0 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFBC0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028EFBC4 */ cpu->lr = cpu->r[0];
|
|
/* 028EFBC8 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EFBCC */ return;
|
|
}
|
|
|
|
// fn_028EFB9C @ 0x28efb9c
|
|
void Gambit_fn_028EFB9C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028EFB9C: ; // 0x28efb9c
|
|
/* 028EFB9C */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EFB9C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFB9C */ cpu->r[1] = _t0;
|
|
/* 028EFBA0 */ _t1 = cpu->r[10] + 0x00000008u;
|
|
/* 028EFBA0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028EFBA4 */ cpu->r[3] = cpu->r[4];
|
|
/* 028EFBA8 */ _t2 = cpu->r[10] + 0x00000000u;
|
|
/* 028EFBA8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028EFBAC */ Gambit_fn_028EF9F0(cpu);
|
|
/* 028EFBB0 */ cpu->r[4] = cpu->r[5];
|
|
/* 028EFBB4 */ Gambit_fn_028EFA18(cpu);
|
|
/* 028EFBB8 */ _t3 = cpu->r[10] + 0x00000004u;
|
|
/* 028EFBB8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028EFBBC */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028EFBBC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028EFBC0 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFBC0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028EFBC4 */ cpu->lr = cpu->r[0];
|
|
/* 028EFBC8 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EFBCC */ return;
|
|
}
|
|
|
|
// fn_028EFBD0 @ 0x28efbd0
|
|
void Gambit_fn_028EFBD0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028EFBD0: ; // 0x28efbd0
|
|
/* 028EFBD0 */ cpu->r[0] = cpu->lr;
|
|
/* 028EFBD4 */ cpu->r[10] = cpu->r[4];
|
|
/* 028EFBD8 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028EFBD8 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028EFBDC */ cpu->r[4] = 0x00000000u;
|
|
/* 028EFBE0 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EFBE0 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028EFBE0 */ cpu->r[1] = _t1;
|
|
/* 028EFBE4 */ Gambit_fn_028EFA18(cpu);
|
|
/* 028EFBE8 */ _t2 = cpu->r[3] + 0x00000004u;
|
|
/* 028EFBE8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028EFBEC */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)cpu->r[10]);
|
|
/* 028EFBF0 */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028EFBF0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028EFBF4 */ cpu->r[5] = 0x00000000u;
|
|
/* 028EFBF8 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
/* 028EFBFC */ rbrew_dispatch(cpu, 0x02d05838u);
|
|
/* 028EFC00 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFC00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028EFC04 */ cpu->lr = cpu->r[0];
|
|
/* 028EFC08 */ cpu->r[3] = 0x00000001u;
|
|
/* 028EFC0C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EFC10 */ return;
|
|
}
|
|
|
|
// fn_028EFBE0 @ 0x28efbe0
|
|
void Gambit_fn_028EFBE0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028EFBE0: ; // 0x28efbe0
|
|
/* 028EFBE0 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028EFBE0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFBE0 */ cpu->r[1] = _t0;
|
|
/* 028EFBE4 */ Gambit_fn_028EFA18(cpu);
|
|
/* 028EFBE8 */ _t1 = cpu->r[3] + 0x00000004u;
|
|
/* 028EFBE8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028EFBEC */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)cpu->r[10]);
|
|
/* 028EFBF0 */ _t2 = cpu->r[3] + 0x00000000u;
|
|
/* 028EFBF0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028EFBF4 */ cpu->r[5] = 0x00000000u;
|
|
/* 028EFBF8 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
/* 028EFBFC */ rbrew_dispatch(cpu, 0x02d05838u);
|
|
/* 028EFC00 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFC00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028EFC04 */ cpu->lr = cpu->r[0];
|
|
/* 028EFC08 */ cpu->r[3] = 0x00000001u;
|
|
/* 028EFC0C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028EFC10 */ return;
|
|
}
|
|
|
|
// fn_028EFC14 @ 0x28efc14
|
|
void Gambit_fn_028EFC14(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028EFC14: ; // 0x28efc14
|
|
/* 028EFC14 */ cpu->r[0] = cpu->lr;
|
|
/* 028EFC18 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028EFC18 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFC18 */ cpu->r[1] = _t0;
|
|
/* 028EFC1C */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFC1C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EFC20 */ cpu->r[31] = cpu->r[4];
|
|
/* 028EFC24 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFC24 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EFC28 */ cpu->r[30] = cpu->r[3];
|
|
/* 028EFC2C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028EFC30 */ cpu->r[4] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFC34 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFC34 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EFC38 */ rbrew_dispatch(cpu, 0x02d059e0u);
|
|
/* 028EFC3C */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFC3C */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028EFC40 */ rbrew_dispatch(cpu, 0x02d05950u);
|
|
/* 028EFC44 */ _t5 = cpu->r[30] + 0x00000004u;
|
|
/* 028EFC44 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028EFC48 */ _t6 = cpu->r[30] + 0x00000000u;
|
|
/* 028EFC48 */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028EFC4C */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)cpu->r[9]);
|
|
/* 028EFC50 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFC50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028EFC54 */ cpu->r[10] = cpu->r[11] + cpu->r[8];
|
|
/* 028EFC58 */ cpu->r[12] = cpu->r[0] - cpu->r[10];
|
|
/* 028EFC5C */ cpu->r[4] = cpu->r[3] + cpu->r[12];
|
|
/* 028EFC60 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EFC64 */ Gambit_fn_028EFA18(cpu);
|
|
/* 028EFC68 */ _t8 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFC68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028EFC6C */ _t9 = cpu->r[30] + 0x00000008u;
|
|
/* 028EFC6C */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028EFC70 */ cpu->lr = cpu->r[0];
|
|
/* 028EFC74 */ _t10 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFC74 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EFC78 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFC78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EFC7C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EFC80 */ return;
|
|
}
|
|
|
|
// fn_028EFC18 @ 0x28efc18
|
|
void Gambit_fn_028EFC18(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028EFC18: ; // 0x28efc18
|
|
/* 028EFC18 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028EFC18 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFC18 */ cpu->r[1] = _t0;
|
|
/* 028EFC1C */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFC1C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EFC20 */ cpu->r[31] = cpu->r[4];
|
|
/* 028EFC24 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFC24 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EFC28 */ cpu->r[30] = cpu->r[3];
|
|
/* 028EFC2C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028EFC30 */ cpu->r[4] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFC34 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFC34 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EFC38 */ rbrew_dispatch(cpu, 0x02d059e0u);
|
|
/* 028EFC3C */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFC3C */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028EFC40 */ rbrew_dispatch(cpu, 0x02d05950u);
|
|
/* 028EFC44 */ _t5 = cpu->r[30] + 0x00000004u;
|
|
/* 028EFC44 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028EFC48 */ _t6 = cpu->r[30] + 0x00000000u;
|
|
/* 028EFC48 */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028EFC4C */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)cpu->r[9]);
|
|
/* 028EFC50 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFC50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028EFC54 */ cpu->r[10] = cpu->r[11] + cpu->r[8];
|
|
/* 028EFC58 */ cpu->r[12] = cpu->r[0] - cpu->r[10];
|
|
/* 028EFC5C */ cpu->r[4] = cpu->r[3] + cpu->r[12];
|
|
/* 028EFC60 */ cpu->r[3] = cpu->r[30];
|
|
/* 028EFC64 */ Gambit_fn_028EFA18(cpu);
|
|
/* 028EFC68 */ _t8 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFC68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028EFC6C */ _t9 = cpu->r[30] + 0x00000008u;
|
|
/* 028EFC6C */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028EFC70 */ cpu->lr = cpu->r[0];
|
|
/* 028EFC74 */ _t10 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFC74 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EFC78 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFC78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EFC7C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EFC80 */ return;
|
|
}
|
|
|
|
// fn_028EFC84 @ 0x28efc84
|
|
void Gambit_fn_028EFC84(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028EFC84: ; // 0x28efc84
|
|
/* 028EFC84 */ cpu->r[0] = cpu->lr;
|
|
/* 028EFC88 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028EFC88 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFC88 */ cpu->r[1] = _t0;
|
|
/* 028EFC8C */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFC8C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EFC90 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFC90 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EFC94 */ cpu->r[30] = cpu->r[5];
|
|
/* 028EFC98 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFC9C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFC9C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028EFCA0 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFCA0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028EFCA4 */ cpu->r[29] = cpu->r[4];
|
|
/* 028EFCA8 */ cpu->r[4] = cpu->r[30];
|
|
/* 028EFCAC */ cpu->r[3] = cpu->r[29];
|
|
/* 028EFCB0 */ rbrew_dispatch(cpu, 0x02d09330u);
|
|
/* 028EFCB4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFCB8 */ cpu->r[4] = cpu->r[29];
|
|
/* 028EFCBC */ cpu->r[5] = cpu->r[30];
|
|
/* 028EFCC0 */ Gambit_fn_028EF9F0(cpu);
|
|
/* 028EFCC4 */ cpu->r[4] = 0x00000000u;
|
|
/* 028EFCC8 */ Gambit_fn_028EFBD0(cpu);
|
|
/* 028EFCCC */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFCCC */ cpu->r[29] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028EFCD0 */ _t6 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFCD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028EFCD4 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFCD4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028EFCD8 */ cpu->lr = cpu->r[0];
|
|
/* 028EFCDC */ _t8 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFCDC */ cpu->r[30] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028EFCE0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EFCE4 */ return;
|
|
}
|
|
|
|
// fn_028EFC88 @ 0x28efc88
|
|
void Gambit_fn_028EFC88(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028EFC88: ; // 0x28efc88
|
|
/* 028EFC88 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028EFC88 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFC88 */ cpu->r[1] = _t0;
|
|
/* 028EFC8C */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFC8C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EFC90 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFC90 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EFC94 */ cpu->r[30] = cpu->r[5];
|
|
/* 028EFC98 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFC9C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFC9C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028EFCA0 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFCA0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028EFCA4 */ cpu->r[29] = cpu->r[4];
|
|
/* 028EFCA8 */ cpu->r[4] = cpu->r[30];
|
|
/* 028EFCAC */ cpu->r[3] = cpu->r[29];
|
|
/* 028EFCB0 */ rbrew_dispatch(cpu, 0x02d09330u);
|
|
/* 028EFCB4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFCB8 */ cpu->r[4] = cpu->r[29];
|
|
/* 028EFCBC */ cpu->r[5] = cpu->r[30];
|
|
/* 028EFCC0 */ Gambit_fn_028EF9F0(cpu);
|
|
/* 028EFCC4 */ cpu->r[4] = 0x00000000u;
|
|
/* 028EFCC8 */ Gambit_fn_028EFBD0(cpu);
|
|
/* 028EFCCC */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFCCC */ cpu->r[29] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028EFCD0 */ _t6 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFCD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028EFCD4 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFCD4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028EFCD8 */ cpu->lr = cpu->r[0];
|
|
/* 028EFCDC */ _t8 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFCDC */ cpu->r[30] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028EFCE0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EFCE4 */ return;
|
|
}
|
|
|
|
// fn_028EFCE8 @ 0x28efce8
|
|
void Gambit_fn_028EFCE8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028EFCE8: ; // 0x28efce8
|
|
/* 028EFCE8 */ cpu->r[0] = cpu->lr;
|
|
/* 028EFCEC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028EFCEC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFCEC */ cpu->r[1] = _t0;
|
|
/* 028EFCF0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFCF0 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028EFCF4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFCF4 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028EFCF8 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFCF8 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028EFCFC */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFCFC */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028EFD00 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFD00 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028EFD04 */ cpu->r[29] = 0x00000000u;
|
|
/* 028EFD08 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EFD0C */ cpu->r[4] = cpu->r[29];
|
|
/* 028EFD10 */ cpu->r[28] = cpu->r[3];
|
|
/* 028EFD14 */ Gambit_fn_028EFC14(cpu);
|
|
/* 028EFD18 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFD18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EFD1C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFD1C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EFD1C */ if (_t7) goto L_028EFD68; else goto L_028EFD20;
|
|
L_028EFD20: ; // 0x28efd20
|
|
/* 028EFD20 */ _t8 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028EFD20 */ cpu->r[0] = rbrew_read8(cpu->mem, _t8);
|
|
/* 028EFD24 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFD28 */ cpu->r[4] = cpu->r[30];
|
|
/* 028EFD2C */ cpu->r[0] = cpu->r[0] | 0x00000001u;
|
|
/* 028EFD30 */ cpu->r[5] = 0x00000020u;
|
|
/* 028EFD34 */ _t9 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028EFD34 */ rbrew_write8(cpu->mem, _t9, (uint8_t)cpu->r[0]);
|
|
/* 028EFD38 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028EFD3C */ cpu->r[29] = cpu->r[3];
|
|
/* 028EFD40 */ cpu->r[5] = cpu->r[31];
|
|
/* 028EFD44 */ _t10 = cpu->r[28] + 0x00000000u;
|
|
/* 028EFD44 */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EFD48 */ cpu->r[6] = 0x00000000u;
|
|
/* 028EFD4C */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028EFD50 */ _t11 = cpu->r[28] + 0x00000000u;
|
|
/* 028EFD50 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EFD54 */ cpu->r[4] = cpu->r[31];
|
|
/* 028EFD58 */ rbrew_dispatch(cpu, 0x02d09330u);
|
|
/* 028EFD5C */ cpu->r[3] = cpu->r[29];
|
|
/* 028EFD60 */ cpu->r[4] = cpu->r[31];
|
|
/* 028EFD64 */ rbrew_dispatch(cpu, 0x02d09320u);
|
|
L_028EFD68: ; // 0x28efd68
|
|
/* 028EFD68 */ cpu->r[5] = cpu->r[31];
|
|
/* 028EFD6C */ cpu->r[4] = cpu->r[29];
|
|
/* 028EFD70 */ cpu->r[3] = cpu->r[28];
|
|
/* 028EFD74 */ Gambit_fn_028EF9F0(cpu);
|
|
/* 028EFD78 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFD78 */ cpu->r[28] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EFD7C */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFD7C */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EFD80 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFD80 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028EFD84 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFD88 */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFD88 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EFD8C */ cpu->lr = cpu->r[0];
|
|
/* 028EFD90 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFD90 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028EFD94 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EFD98 */ return;
|
|
}
|
|
|
|
// fn_028EFCEC @ 0x28efcec
|
|
void Gambit_fn_028EFCEC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028EFCEC: ; // 0x28efcec
|
|
/* 028EFCEC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028EFCEC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFCEC */ cpu->r[1] = _t0;
|
|
/* 028EFCF0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFCF0 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028EFCF4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFCF4 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028EFCF8 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFCF8 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028EFCFC */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFCFC */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028EFD00 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFD00 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028EFD04 */ cpu->r[29] = 0x00000000u;
|
|
/* 028EFD08 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EFD0C */ cpu->r[4] = cpu->r[29];
|
|
/* 028EFD10 */ cpu->r[28] = cpu->r[3];
|
|
/* 028EFD14 */ Gambit_fn_028EFC14(cpu);
|
|
/* 028EFD18 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFD18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EFD1C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFD1C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EFD1C */ if (_t7) goto L_028EFD68; else goto L_028EFD20;
|
|
L_028EFD20: ; // 0x28efd20
|
|
/* 028EFD20 */ _t8 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028EFD20 */ cpu->r[0] = rbrew_read8(cpu->mem, _t8);
|
|
/* 028EFD24 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFD28 */ cpu->r[4] = cpu->r[30];
|
|
/* 028EFD2C */ cpu->r[0] = cpu->r[0] | 0x00000001u;
|
|
/* 028EFD30 */ cpu->r[5] = 0x00000020u;
|
|
/* 028EFD34 */ _t9 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028EFD34 */ rbrew_write8(cpu->mem, _t9, (uint8_t)cpu->r[0]);
|
|
/* 028EFD38 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028EFD3C */ cpu->r[29] = cpu->r[3];
|
|
/* 028EFD40 */ cpu->r[5] = cpu->r[31];
|
|
/* 028EFD44 */ _t10 = cpu->r[28] + 0x00000000u;
|
|
/* 028EFD44 */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028EFD48 */ cpu->r[6] = 0x00000000u;
|
|
/* 028EFD4C */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028EFD50 */ _t11 = cpu->r[28] + 0x00000000u;
|
|
/* 028EFD50 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028EFD54 */ cpu->r[4] = cpu->r[31];
|
|
/* 028EFD58 */ rbrew_dispatch(cpu, 0x02d09330u);
|
|
/* 028EFD5C */ cpu->r[3] = cpu->r[29];
|
|
/* 028EFD60 */ cpu->r[4] = cpu->r[31];
|
|
/* 028EFD64 */ rbrew_dispatch(cpu, 0x02d09320u);
|
|
L_028EFD68: ; // 0x28efd68
|
|
/* 028EFD68 */ cpu->r[5] = cpu->r[31];
|
|
/* 028EFD6C */ cpu->r[4] = cpu->r[29];
|
|
/* 028EFD70 */ cpu->r[3] = cpu->r[28];
|
|
/* 028EFD74 */ Gambit_fn_028EF9F0(cpu);
|
|
/* 028EFD78 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFD78 */ cpu->r[28] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EFD7C */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFD7C */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EFD80 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFD80 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028EFD84 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFD88 */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFD88 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028EFD8C */ cpu->lr = cpu->r[0];
|
|
/* 028EFD90 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFD90 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028EFD94 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EFD98 */ return;
|
|
}
|
|
|
|
// fn_028EFD9C @ 0x28efd9c
|
|
void Gambit_fn_028EFD9C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _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_028EFD9C: ; // 0x28efd9c
|
|
/* 028EFD9C */ cpu->r[0] = cpu->lr;
|
|
/* 028EFDA0 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028EFDA0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFDA0 */ cpu->r[1] = _t0;
|
|
/* 028EFDA4 */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 028EFDA4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EFDA8 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFDA8 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028EFDAC */ _t3 = cpu->r[1] + 0x00000018u;
|
|
/* 028EFDAC */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028EFDB0 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 028EFDB0 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028EFDB4 */ cpu->r[28] = cpu->r[3];
|
|
/* 028EFDB8 */ _t5 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EFDB8 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028EFDBC */ _t6 = cpu->r[28] + 0x00000000u;
|
|
/* 028EFDBC */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028EFDC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EFDC4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFDC4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028EFDC4 */ if (_t8) goto L_028EFE3C; else goto L_028EFDC8;
|
|
L_028EFDC8: ; // 0x28efdc8
|
|
/* 028EFDC8 */ _t9 = cpu->r[28] + 0x00000008u;
|
|
/* 028EFDC8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028EFDCC */ cpu->r[12] = rbrew_rlwinm(cpu->r[10], 0x0000001Bu, 0x00000005u, 0x0000001Fu);
|
|
/* 028EFDD0 */ cpu->r[29] = 0x00000000u;
|
|
/* 028EFDD4 */ cpu->r[11] = cpu->r[12] + 0x00000004u;
|
|
/* 028EFDD8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[11]);
|
|
/* 028EFDDC */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EFDDC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028EFDDC */ if (_t11) goto L_028EFDE0; else goto L_028EFE3C;
|
|
L_028EFDE0: ; // 0x28efde0
|
|
/* 028EFDE0 */ cpu->r[9] = 0x101F0000u;
|
|
/* 028EFDE4 */ _t12 = cpu->r[9] + 0x00006C30u;
|
|
/* 028EFDE4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EFDE4 */ cpu->r[9] = _t12;
|
|
/* 028EFDE8 */ _t13 = cpu->r[9] + 0x00000004u;
|
|
/* 028EFDE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EFDEC */ cpu->r[6] = 0x000003E8u;
|
|
/* 028EFDF0 */ cpu->r[3] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 028EFDF4 */ cpu->r[5] = 0x00000000u;
|
|
/* 028EFDF8 */ cpu->r[4] = rbrew_rlwinm(cpu->r[0], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 028EFDFC */ _t14 = rbrew_rlwinm(cpu->r[0], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EFDFC */ _t15 = cpu->r[3] & 0xFFFFFFFEu;
|
|
/* 028EFDFC */ cpu->r[3] = _t15 | _t14;
|
|
/* 028EFE00 */ Gambit_fn_02C89EC8(cpu);
|
|
/* 028EFE04 */ cpu->r[30] = cpu->r[3];
|
|
/* 028EFE08 */ cpu->r[31] = cpu->r[4];
|
|
L_028EFE0C: ; // 0x28efe0c
|
|
/* 028EFE0C */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFE0C */ rbrew_write32(cpu->mem, _t16, cpu->r[31]);
|
|
/* 028EFE10 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028EFE14 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFE14 */ rbrew_write32(cpu->mem, _t17, cpu->r[31]);
|
|
/* 028EFE18 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFE18 */ rbrew_write32(cpu->mem, _t18, cpu->r[30]);
|
|
/* 028EFE1C */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFE1C */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
/* 028EFE20 */ Gambit_fn_02837C54(cpu);
|
|
/* 028EFE24 */ _t20 = cpu->r[28] + 0x00000008u;
|
|
/* 028EFE24 */ cpu->r[11] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028EFE28 */ cpu->r[10] = rbrew_rlwinm(cpu->r[11], 0x0000001Bu, 0x00000005u, 0x0000001Fu);
|
|
/* 028EFE2C */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028EFE30 */ cpu->r[0] = cpu->r[10] + 0x00000004u;
|
|
/* 028EFE34 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 028EFE38 */ _t21 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EFE38 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028EFE38 */ if (_t22) goto L_028EFE0C; else goto L_028EFE3C;
|
|
L_028EFE3C: ; // 0x28efe3c
|
|
/* 028EFE3C */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 028EFE3C */ cpu->r[28] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028EFE40 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFE40 */ cpu->r[29] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028EFE44 */ _t25 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EFE44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028EFE48 */ _t26 = cpu->r[1] + 0x00000020u;
|
|
/* 028EFE48 */ cpu->r[30] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028EFE4C */ cpu->lr = cpu->r[0];
|
|
/* 028EFE50 */ _t27 = cpu->r[1] + 0x00000024u;
|
|
/* 028EFE50 */ cpu->r[31] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028EFE54 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028EFE58 */ return;
|
|
}
|
|
|
|
// fn_028EFDA0 @ 0x28efda0
|
|
void Gambit_fn_028EFDA0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _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_028EFDA0: ; // 0x28efda0
|
|
/* 028EFDA0 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028EFDA0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFDA0 */ cpu->r[1] = _t0;
|
|
/* 028EFDA4 */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 028EFDA4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EFDA8 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFDA8 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028EFDAC */ _t3 = cpu->r[1] + 0x00000018u;
|
|
/* 028EFDAC */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028EFDB0 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 028EFDB0 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028EFDB4 */ cpu->r[28] = cpu->r[3];
|
|
/* 028EFDB8 */ _t5 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EFDB8 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028EFDBC */ _t6 = cpu->r[28] + 0x00000000u;
|
|
/* 028EFDBC */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028EFDC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EFDC4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFDC4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028EFDC4 */ if (_t8) goto L_028EFE3C; else goto L_028EFDC8;
|
|
L_028EFDC8: ; // 0x28efdc8
|
|
/* 028EFDC8 */ _t9 = cpu->r[28] + 0x00000008u;
|
|
/* 028EFDC8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028EFDCC */ cpu->r[12] = rbrew_rlwinm(cpu->r[10], 0x0000001Bu, 0x00000005u, 0x0000001Fu);
|
|
/* 028EFDD0 */ cpu->r[29] = 0x00000000u;
|
|
/* 028EFDD4 */ cpu->r[11] = cpu->r[12] + 0x00000004u;
|
|
/* 028EFDD8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[11]);
|
|
/* 028EFDDC */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EFDDC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028EFDDC */ if (_t11) goto L_028EFDE0; else goto L_028EFE3C;
|
|
L_028EFDE0: ; // 0x28efde0
|
|
/* 028EFDE0 */ cpu->r[9] = 0x101F0000u;
|
|
/* 028EFDE4 */ _t12 = cpu->r[9] + 0x00006C30u;
|
|
/* 028EFDE4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028EFDE4 */ cpu->r[9] = _t12;
|
|
/* 028EFDE8 */ _t13 = cpu->r[9] + 0x00000004u;
|
|
/* 028EFDE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028EFDEC */ cpu->r[6] = 0x000003E8u;
|
|
/* 028EFDF0 */ cpu->r[3] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 028EFDF4 */ cpu->r[5] = 0x00000000u;
|
|
/* 028EFDF8 */ cpu->r[4] = rbrew_rlwinm(cpu->r[0], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 028EFDFC */ _t14 = rbrew_rlwinm(cpu->r[0], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EFDFC */ _t15 = cpu->r[3] & 0xFFFFFFFEu;
|
|
/* 028EFDFC */ cpu->r[3] = _t15 | _t14;
|
|
/* 028EFE00 */ Gambit_fn_02C89EC8(cpu);
|
|
/* 028EFE04 */ cpu->r[30] = cpu->r[3];
|
|
/* 028EFE08 */ cpu->r[31] = cpu->r[4];
|
|
L_028EFE0C: ; // 0x28efe0c
|
|
/* 028EFE0C */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFE0C */ rbrew_write32(cpu->mem, _t16, cpu->r[31]);
|
|
/* 028EFE10 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028EFE14 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFE14 */ rbrew_write32(cpu->mem, _t17, cpu->r[31]);
|
|
/* 028EFE18 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFE18 */ rbrew_write32(cpu->mem, _t18, cpu->r[30]);
|
|
/* 028EFE1C */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFE1C */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
/* 028EFE20 */ Gambit_fn_02837C54(cpu);
|
|
/* 028EFE24 */ _t20 = cpu->r[28] + 0x00000008u;
|
|
/* 028EFE24 */ cpu->r[11] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028EFE28 */ cpu->r[10] = rbrew_rlwinm(cpu->r[11], 0x0000001Bu, 0x00000005u, 0x0000001Fu);
|
|
/* 028EFE2C */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028EFE30 */ cpu->r[0] = cpu->r[10] + 0x00000004u;
|
|
/* 028EFE34 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 028EFE38 */ _t21 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028EFE38 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028EFE38 */ if (_t22) goto L_028EFE0C; else goto L_028EFE3C;
|
|
L_028EFE3C: ; // 0x28efe3c
|
|
/* 028EFE3C */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 028EFE3C */ cpu->r[28] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028EFE40 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFE40 */ cpu->r[29] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028EFE44 */ _t25 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028EFE44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028EFE48 */ _t26 = cpu->r[1] + 0x00000020u;
|
|
/* 028EFE48 */ cpu->r[30] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028EFE4C */ cpu->lr = cpu->r[0];
|
|
/* 028EFE50 */ _t27 = cpu->r[1] + 0x00000024u;
|
|
/* 028EFE50 */ cpu->r[31] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028EFE54 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028EFE58 */ return;
|
|
}
|
|
|
|
// fn_028EFE5C @ 0x28efe5c
|
|
void Gambit_fn_028EFE5C(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_028EFE5C: ; // 0x28efe5c
|
|
/* 028EFE5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EFE60 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFE60 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028EFE60 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EFE60 */ goto L_028EFE64;
|
|
L_028EFE64: ; // 0x28efe64
|
|
/* 028EFE64 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028EFE64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028EFE68 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFE68 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028EFE68 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028EFE68 */ goto L_028EFE6C;
|
|
L_028EFE6C: ; // 0x28efe6c
|
|
/* 028EFE6C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028EFE70 @ 0x28efe70
|
|
void Gambit_fn_028EFE70(CPUState* cpu) {
|
|
L_028EFE70: ; // 0x28efe70
|
|
/* 028EFE70 */ return;
|
|
}
|
|
|
|
// fn_028EFE74 @ 0x28efe74
|
|
void Gambit_fn_028EFE74(CPUState* cpu) {
|
|
L_028EFE74: ; // 0x28efe74
|
|
/* 028EFE74 */ cpu->r[3] = 0x00000020u;
|
|
/* 028EFE78 */ return;
|
|
}
|
|
|
|
// fn_028EFE7C @ 0x28efe7c
|
|
void Gambit_fn_028EFE7C(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_028EFE7C: ; // 0x28efe7c
|
|
/* 028EFE7C */ cpu->r[0] = cpu->lr;
|
|
/* 028EFE80 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EFE80 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFE80 */ cpu->r[1] = _t0;
|
|
/* 028EFE84 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFE84 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EFE88 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFE88 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EFE8C */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFE8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EFE90 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFE90 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EFE94 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFE94 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EFE94 */ if (_t5) goto L_028EFE98; else goto L_028EFEA8;
|
|
L_028EFE98: ; // 0x28efe98
|
|
/* 028EFE98 */ cpu->r[3] = 0x00000114u;
|
|
/* 028EFE9C */ Gambit_fn_02801A78(cpu);
|
|
/* 028EFEA0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFEA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EFEA4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFEA4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EFEA4 */ if (_t7) goto L_028EFF00; else goto L_028EFEA8;
|
|
L_028EFEA8: ; // 0x28efea8
|
|
/* 028EFEA8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EFEAC */ cpu->r[3] = cpu->r[31] + 0x00000014u;
|
|
/* 028EFEAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EFEB0 */ cpu->r[0] = cpu->r[0] + 0xFFFFCC04u;
|
|
/* 028EFEB4 */ cpu->r[30] = 0x00000000u;
|
|
/* 028EFEB8 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028EFEB8 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028EFEBC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFEBC */ _t10 = _t9 & 0x00000001u;
|
|
/* 028EFEBC */ if (_t10) goto L_028EFEC0; else goto L_028EFED0;
|
|
L_028EFEC0: ; // 0x28efec0
|
|
/* 028EFEC0 */ cpu->r[3] = 0x00000004u;
|
|
/* 028EFEC4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EFEC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EFECC */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFECC */ _t12 = _t11 & 0x00000001u;
|
|
/* 028EFECC */ if (_t12) goto L_028EFED4; else goto L_028EFED0;
|
|
L_028EFED0: ; // 0x28efed0
|
|
/* 028EFED0 */ _t13 = cpu->r[3] + 0x00000000u;
|
|
/* 028EFED0 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
L_028EFED4: ; // 0x28efed4
|
|
/* 028EFED4 */ cpu->r[5] = 0x0000003Cu;
|
|
/* 028EFED8 */ cpu->r[6] = 0x028F0000u;
|
|
/* 028EFEDC */ cpu->r[4] = 0x00000003u;
|
|
/* 028EFEE0 */ cpu->r[3] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EFEE4 */ cpu->r[6] = cpu->r[6] + 0x00000258u;
|
|
/* 028EFEE8 */ _t14 = cpu->r[31] + 0x00000018u;
|
|
/* 028EFEE8 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 028EFEEC */ Gambit_fn_02C82E00(cpu);
|
|
/* 028EFEF0 */ cpu->r[3] = cpu->r[31] + 0x000000D0u;
|
|
/* 028EFEF4 */ Gambit_fn_02836EBC(cpu);
|
|
/* 028EFEF8 */ _t15 = cpu->r[31] + 0x0000010Cu;
|
|
/* 028EFEF8 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
/* 028EFEFC */ _t16 = cpu->r[31] + 0x00000110u;
|
|
/* 028EFEFC */ rbrew_write32(cpu->mem, _t16, cpu->r[30]);
|
|
L_028EFF00: ; // 0x28eff00
|
|
/* 028EFF00 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFF00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028EFF04 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFF08 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFF08 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028EFF0C */ cpu->lr = cpu->r[0];
|
|
/* 028EFF10 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFF10 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028EFF14 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EFF18 */ return;
|
|
}
|
|
|
|
// fn_028EFE80 @ 0x28efe80
|
|
void Gambit_fn_028EFE80(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_028EFE80: ; // 0x28efe80
|
|
/* 028EFE80 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EFE80 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFE80 */ cpu->r[1] = _t0;
|
|
/* 028EFE84 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFE84 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028EFE88 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFE88 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028EFE8C */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFE8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EFE90 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFE90 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EFE94 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFE94 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EFE94 */ if (_t5) goto L_028EFE98; else goto L_028EFEA8;
|
|
L_028EFE98: ; // 0x28efe98
|
|
/* 028EFE98 */ cpu->r[3] = 0x00000114u;
|
|
/* 028EFE9C */ Gambit_fn_02801A78(cpu);
|
|
/* 028EFEA0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFEA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EFEA4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFEA4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028EFEA4 */ if (_t7) goto L_028EFF00; else goto L_028EFEA8;
|
|
L_028EFEA8: ; // 0x28efea8
|
|
/* 028EFEA8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EFEAC */ cpu->r[3] = cpu->r[31] + 0x00000014u;
|
|
/* 028EFEAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EFEB0 */ cpu->r[0] = cpu->r[0] + 0xFFFFCC04u;
|
|
/* 028EFEB4 */ cpu->r[30] = 0x00000000u;
|
|
/* 028EFEB8 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028EFEB8 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028EFEBC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFEBC */ _t10 = _t9 & 0x00000001u;
|
|
/* 028EFEBC */ if (_t10) goto L_028EFEC0; else goto L_028EFED0;
|
|
L_028EFEC0: ; // 0x28efec0
|
|
/* 028EFEC0 */ cpu->r[3] = 0x00000004u;
|
|
/* 028EFEC4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028EFEC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EFECC */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFECC */ _t12 = _t11 & 0x00000001u;
|
|
/* 028EFECC */ if (_t12) goto L_028EFED4; else goto L_028EFED0;
|
|
L_028EFED0: ; // 0x28efed0
|
|
/* 028EFED0 */ _t13 = cpu->r[3] + 0x00000000u;
|
|
/* 028EFED0 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
L_028EFED4: ; // 0x28efed4
|
|
/* 028EFED4 */ cpu->r[5] = 0x0000003Cu;
|
|
/* 028EFED8 */ cpu->r[6] = 0x028F0000u;
|
|
/* 028EFEDC */ cpu->r[4] = 0x00000003u;
|
|
/* 028EFEE0 */ cpu->r[3] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EFEE4 */ cpu->r[6] = cpu->r[6] + 0x00000258u;
|
|
/* 028EFEE8 */ _t14 = cpu->r[31] + 0x00000018u;
|
|
/* 028EFEE8 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 028EFEEC */ Gambit_fn_02C82E00(cpu);
|
|
/* 028EFEF0 */ cpu->r[3] = cpu->r[31] + 0x000000D0u;
|
|
/* 028EFEF4 */ Gambit_fn_02836EBC(cpu);
|
|
/* 028EFEF8 */ _t15 = cpu->r[31] + 0x0000010Cu;
|
|
/* 028EFEF8 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
/* 028EFEFC */ _t16 = cpu->r[31] + 0x00000110u;
|
|
/* 028EFEFC */ rbrew_write32(cpu->mem, _t16, cpu->r[30]);
|
|
L_028EFF00: ; // 0x28eff00
|
|
/* 028EFF00 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFF00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028EFF04 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFF08 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFF08 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028EFF0C */ cpu->lr = cpu->r[0];
|
|
/* 028EFF10 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFF10 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028EFF14 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028EFF18 */ return;
|
|
}
|
|
|
|
// fn_028EFF1C @ 0x28eff1c
|
|
void Gambit_fn_028EFF1C(CPUState* 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_028EFF1C: ; // 0x28eff1c
|
|
/* 028EFF1C */ cpu->r[0] = cpu->lr;
|
|
/* 028EFF20 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028EFF20 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFF20 */ cpu->r[1] = _t0;
|
|
/* 028EFF24 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFF24 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EFF28 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFF28 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028EFF2C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFF2C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028EFF30 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFF30 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028EFF34 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFF34 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028EFF38 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028EFF3C */ cpu->r[30] = cpu->r[3];
|
|
/* 028EFF40 */ _t6 = cpu->r[29] + 0xFFFF9B14u;
|
|
/* 028EFF40 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028EFF40 */ cpu->r[29] = _t6;
|
|
/* 028EFF44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EFF48 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFF48 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028EFF48 */ if (_t8) goto L_028EFF4C; else goto L_028EFF9C;
|
|
L_028EFF4C: ; // 0x28eff4c
|
|
/* 028EFF4C */ cpu->r[4] = cpu->r[30];
|
|
/* 028EFF50 */ cpu->r[3] = 0x00000114u;
|
|
/* 028EFF54 */ cpu->r[5] = 0x00000004u;
|
|
/* 028EFF58 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028EFF5C */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFF60 */ cpu->r[28] = cpu->r[31] + 0x00000004u;
|
|
/* 028EFF60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028EFF64 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFF64 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028EFF64 */ if (_t10) goto L_028EFF84; else goto L_028EFF68;
|
|
L_028EFF68: ; // 0x28eff68
|
|
/* 028EFF68 */ cpu->r[5] = 0x00000003u;
|
|
/* 028EFF6C */ cpu->r[4] = cpu->r[30];
|
|
/* 028EFF70 */ cpu->r[3] = cpu->r[28];
|
|
/* 028EFF74 */ Gambit_fn_02821D88(cpu);
|
|
/* 028EFF78 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EFF7C */ cpu->r[0] = cpu->r[0] + 0xFFFFCBF4u;
|
|
/* 028EFF80 */ _t11 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028EFF80 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028EFF84: ; // 0x28eff84
|
|
/* 028EFF84 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028EFF88 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFF88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EFF8C */ _t12 = cpu->r[12] + 0xFFFF9B18u;
|
|
/* 028EFF8C */ rbrew_write32(cpu->mem, _t12, cpu->r[28]);
|
|
/* 028EFF90 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFF90 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028EFF90 */ if (_t14) goto L_028EFF98; else goto L_028EFF94;
|
|
L_028EFF94: ; // 0x28eff94
|
|
/* 028EFF94 */ Gambit_fn_028EFE7C(cpu);
|
|
L_028EFF98: ; // 0x28eff98
|
|
/* 028EFF98 */ _t15 = cpu->r[29] + 0x00000000u;
|
|
/* 028EFF98 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
L_028EFF9C: ; // 0x28eff9c
|
|
/* 028EFF9C */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFF9C */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028EFFA0 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFFA0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028EFFA4 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFFA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028EFFA8 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFFA8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028EFFAC */ cpu->lr = cpu->r[0];
|
|
/* 028EFFB0 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFFB0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028EFFB4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EFFB8 */ return;
|
|
}
|
|
|
|
// fn_028EFF20 @ 0x28eff20
|
|
void Gambit_fn_028EFF20(CPUState* 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_028EFF20: ; // 0x28eff20
|
|
/* 028EFF20 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028EFF20 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFF20 */ cpu->r[1] = _t0;
|
|
/* 028EFF24 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFF24 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EFF28 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFF28 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028EFF2C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFF2C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028EFF30 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFF30 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028EFF34 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFF34 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028EFF38 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028EFF3C */ cpu->r[30] = cpu->r[3];
|
|
/* 028EFF40 */ _t6 = cpu->r[29] + 0xFFFF9B14u;
|
|
/* 028EFF40 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028EFF40 */ cpu->r[29] = _t6;
|
|
/* 028EFF44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EFF48 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFF48 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028EFF48 */ if (_t8) goto L_028EFF4C; else goto L_028EFF9C;
|
|
L_028EFF4C: ; // 0x28eff4c
|
|
/* 028EFF4C */ cpu->r[4] = cpu->r[30];
|
|
/* 028EFF50 */ cpu->r[3] = 0x00000114u;
|
|
/* 028EFF54 */ cpu->r[5] = 0x00000004u;
|
|
/* 028EFF58 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028EFF5C */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFF60 */ cpu->r[28] = cpu->r[31] + 0x00000004u;
|
|
/* 028EFF60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028EFF64 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFF64 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028EFF64 */ if (_t10) goto L_028EFF84; else goto L_028EFF68;
|
|
L_028EFF68: ; // 0x28eff68
|
|
/* 028EFF68 */ cpu->r[5] = 0x00000003u;
|
|
/* 028EFF6C */ cpu->r[4] = cpu->r[30];
|
|
/* 028EFF70 */ cpu->r[3] = cpu->r[28];
|
|
/* 028EFF74 */ Gambit_fn_02821D88(cpu);
|
|
/* 028EFF78 */ cpu->r[0] = 0x10140000u;
|
|
/* 028EFF7C */ cpu->r[0] = cpu->r[0] + 0xFFFFCBF4u;
|
|
/* 028EFF80 */ _t11 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028EFF80 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028EFF84: ; // 0x28eff84
|
|
/* 028EFF84 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028EFF88 */ cpu->r[3] = cpu->r[31];
|
|
/* 028EFF88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028EFF8C */ _t12 = cpu->r[12] + 0xFFFF9B18u;
|
|
/* 028EFF8C */ rbrew_write32(cpu->mem, _t12, cpu->r[28]);
|
|
/* 028EFF90 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFF90 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028EFF90 */ if (_t14) goto L_028EFF98; else goto L_028EFF94;
|
|
L_028EFF94: ; // 0x28eff94
|
|
/* 028EFF94 */ Gambit_fn_028EFE7C(cpu);
|
|
L_028EFF98: ; // 0x28eff98
|
|
/* 028EFF98 */ _t15 = cpu->r[29] + 0x00000000u;
|
|
/* 028EFF98 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
L_028EFF9C: ; // 0x28eff9c
|
|
/* 028EFF9C */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFF9C */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028EFFA0 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFFA0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028EFFA4 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028EFFA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028EFFA8 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028EFFA8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028EFFAC */ cpu->lr = cpu->r[0];
|
|
/* 028EFFB0 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFFB0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028EFFB4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028EFFB8 */ return;
|
|
}
|
|
|
|
// fn_028EFFBC @ 0x28effbc
|
|
void Gambit_fn_028EFFBC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028EFFBC: ; // 0x28effbc
|
|
/* 028EFFBC */ cpu->r[0] = cpu->lr;
|
|
/* 028EFFC0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EFFC0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFFC0 */ cpu->r[1] = _t0;
|
|
/* 028EFFC4 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFFC4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EFFC8 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFFC8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EFFCC */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFFCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EFFD0 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EFFD4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFFD4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EFFD8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFFD8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EFFD8 */ if (_t5) goto L_028F0018; else goto L_028EFFDC;
|
|
L_028EFFDC: ; // 0x28effdc
|
|
/* 028EFFDC */ cpu->r[3] = cpu->r[31] + 0x000000D0u;
|
|
/* 028EFFE0 */ cpu->r[4] = 0x00000002u;
|
|
/* 028EFFE4 */ Gambit_fn_02836FA8(cpu);
|
|
/* 028EFFE8 */ cpu->r[6] = 0x028F0000u;
|
|
/* 028EFFEC */ cpu->r[3] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EFFF0 */ cpu->r[7] = 0x00000000u;
|
|
/* 028EFFF4 */ cpu->r[6] = cpu->r[6] + 0x000002A0u;
|
|
/* 028EFFF8 */ cpu->r[4] = 0x00000003u;
|
|
/* 028EFFFC */ cpu->r[8] = cpu->r[7];
|
|
/* 028F0000 */ cpu->r[5] = 0x0000003Cu;
|
|
/* 028F0004 */ Gambit_fn_02C82F38(cpu);
|
|
/* 028F0008 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F0008 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F000C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F000C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F000C */ if (_t7) goto L_028F0018; else goto L_028F0010;
|
|
L_028F0010: ; // 0x28f0010
|
|
/* 028F0010 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F0014 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F0018: ; // 0x28f0018
|
|
/* 028F0018 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0018 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F001C */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028F001C */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F0020 */ cpu->lr = cpu->r[0];
|
|
/* 028F0024 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0024 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F0028 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F002C */ return;
|
|
}
|
|
|
|
// fn_028EFFC0 @ 0x28effc0
|
|
void Gambit_fn_028EFFC0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028EFFC0: ; // 0x28effc0
|
|
/* 028EFFC0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028EFFC0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028EFFC0 */ cpu->r[1] = _t0;
|
|
/* 028EFFC4 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028EFFC4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028EFFC8 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028EFFC8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028EFFCC */ cpu->r[31] = cpu->r[3];
|
|
/* 028EFFCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028EFFD0 */ cpu->r[30] = cpu->r[4];
|
|
/* 028EFFD4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028EFFD4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028EFFD8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028EFFD8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028EFFD8 */ if (_t5) goto L_028F0018; else goto L_028EFFDC;
|
|
L_028EFFDC: ; // 0x28effdc
|
|
/* 028EFFDC */ cpu->r[3] = cpu->r[31] + 0x000000D0u;
|
|
/* 028EFFE0 */ cpu->r[4] = 0x00000002u;
|
|
/* 028EFFE4 */ Gambit_fn_02836FA8(cpu);
|
|
/* 028EFFE8 */ cpu->r[6] = 0x028F0000u;
|
|
/* 028EFFEC */ cpu->r[3] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028EFFF0 */ cpu->r[7] = 0x00000000u;
|
|
/* 028EFFF4 */ cpu->r[6] = cpu->r[6] + 0x000002A0u;
|
|
/* 028EFFF8 */ cpu->r[4] = 0x00000003u;
|
|
/* 028EFFFC */ cpu->r[8] = cpu->r[7];
|
|
/* 028F0000 */ cpu->r[5] = 0x0000003Cu;
|
|
/* 028F0004 */ Gambit_fn_02C82F38(cpu);
|
|
/* 028F0008 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F0008 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F000C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F000C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F000C */ if (_t7) goto L_028F0018; else goto L_028F0010;
|
|
L_028F0010: ; // 0x28f0010
|
|
/* 028F0010 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F0014 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F0018: ; // 0x28f0018
|
|
/* 028F0018 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0018 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F001C */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028F001C */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F0020 */ cpu->lr = cpu->r[0];
|
|
/* 028F0024 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0024 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F0028 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F002C */ return;
|
|
}
|
|
|
|
// fn_028F0030 @ 0x28f0030
|
|
void Gambit_fn_028F0030(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028F0030: ; // 0x28f0030
|
|
/* 028F0030 */ _t0 = cpu->r[3] + 0x00000018u;
|
|
/* 028F0030 */ rbrew_write32(cpu->mem, _t0, cpu->r[4]);
|
|
/* 028F0034 */ return;
|
|
}
|
|
|
|
// fn_028F0038 @ 0x28f0038
|
|
void Gambit_fn_028F0038(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028F0038: ; // 0x28f0038
|
|
/* 028F0038 */ cpu->r[0] = cpu->lr;
|
|
/* 028F003C */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028F003C */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028F0040 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028F0040 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028F0040 */ cpu->r[1] = _t1;
|
|
/* 028F0044 */ rbrew_dispatch(cpu, 0x02d0a9f0u);
|
|
/* 028F0048 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028F004C */ cpu->r[0] = rbrew_rlwinm(cpu->r[3], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F0050 */ cpu->r[12] = cpu->r[12] + 0x000065D0u;
|
|
/* 028F0054 */ _t2 = cpu->r[12] + cpu->r[0];
|
|
/* 028F0054 */ cpu->r[3] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F0058 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0058 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F005C */ cpu->lr = cpu->r[0];
|
|
/* 028F0060 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028F0064 */ return;
|
|
}
|
|
|
|
// fn_028F0040 @ 0x28f0040
|
|
void Gambit_fn_028F0040(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028F0040: ; // 0x28f0040
|
|
/* 028F0040 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028F0040 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F0040 */ cpu->r[1] = _t0;
|
|
/* 028F0044 */ rbrew_dispatch(cpu, 0x02d0a9f0u);
|
|
/* 028F0048 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028F004C */ cpu->r[0] = rbrew_rlwinm(cpu->r[3], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F0050 */ cpu->r[12] = cpu->r[12] + 0x000065D0u;
|
|
/* 028F0054 */ _t1 = cpu->r[12] + cpu->r[0];
|
|
/* 028F0054 */ cpu->r[3] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028F0058 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0058 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F005C */ cpu->lr = cpu->r[0];
|
|
/* 028F0060 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028F0064 */ return;
|
|
}
|
|
|
|
// fn_028F006C @ 0x28f006c
|
|
void Gambit_fn_028F006C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028F006C: ; // 0x28f006c
|
|
/* 028F006C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F006C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F006C */ cpu->r[1] = _t0;
|
|
/* 028F0070 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0070 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F0074 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F0078 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0078 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F007C */ Gambit_fn_028F0038(cpu);
|
|
/* 028F0080 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x0000003Cu);
|
|
/* 028F0084 */ cpu->r[12] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F0088 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
/* 028F008C */ Gambit_fn_02836FFC(cpu);
|
|
/* 028F0090 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0090 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F0094 */ cpu->lr = cpu->r[0];
|
|
/* 028F0098 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0098 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F009C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F00A0 */ return;
|
|
}
|
|
|
|
// fn_028F00A4 @ 0x28f00a4
|
|
void Gambit_fn_028F00A4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_0281DFD8: ; // 0x281dfd8
|
|
/* 0281DFD8 */ cpu->r[0] = cpu->lr;
|
|
/* 0281DFDC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0281DFDC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0281DFDC */ cpu->r[1] = _t0;
|
|
/* 0281DFE0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0281DFE0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0281DFE4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0281DFE4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0281DFE8 */ cpu->r[30] = cpu->r[3];
|
|
/* 0281DFEC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0281DFEC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0281DFF0 */ _t4 = cpu->r[30] + 0x00000054u;
|
|
/* 0281DFF0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0281DFF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0281DFF8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0281DFF8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 0281DFF8 */ if (_t6) goto L_0281E020; else goto L_0281DFFC;
|
|
L_0281DFFC: ; // 0x281dffc
|
|
/* 0281DFFC */ cpu->ctr = cpu->r[0];
|
|
/* 0281E000 */ cpu->r[3] = 0x00000001u;
|
|
/* 0281E004 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0281E008 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 0281E008 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0281E00C */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 0281E00C */ cpu->r[30] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0281E010 */ cpu->lr = cpu->r[0];
|
|
/* 0281E014 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0281E014 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0281E018 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0281E01C */ return;
|
|
L_0281E020: ; // 0x281e020
|
|
/* 0281E020 */ cpu->r[12] = 0x101D0000u;
|
|
/* 0281E024 */ _t10 = cpu->r[12] + 0xFFFF994Cu;
|
|
/* 0281E024 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0281E028 */ _t11 = cpu->r[12] + 0x00000060u;
|
|
/* 0281E028 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0281E02C */ rbrew_dispatch(cpu, 0x02d0ab60u);
|
|
/* 0281E030 */ _t12 = cpu->r[30] + 0x00000010u;
|
|
/* 0281E030 */ cpu->r[7] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0281E034 */ cpu->r[31] = cpu->r[3];
|
|
/* 0281E038 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[7]);
|
|
/* 0281E03C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0281E03C */ _t14 = _t13 & 0x00000001u;
|
|
/* 0281E03C */ if (_t14) goto L_0281E040; else goto L_0281E06C;
|
|
L_0281E040: ; // 0x281e040
|
|
/* 0281E040 */ _t15 = cpu->r[30] + 0x00000014u;
|
|
/* 0281E040 */ cpu->r[5] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0281E044 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 0281E048 */ _t16 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0281E048 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0281E048 */ if (_t17) goto L_0281E04C; else goto L_0281E06C;
|
|
L_0281E04C: ; // 0x281e04c
|
|
/* 0281E04C */ cpu->r[8] = cpu->r[5] + 0x00000001u;
|
|
/* 0281E050 */ _t18 = cpu->r[30] + 0x00000014u;
|
|
/* 0281E050 */ rbrew_write32(cpu->mem, _t18, cpu->r[8]);
|
|
/* 0281E054 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 0281E054 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0281E058 */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 0281E058 */ cpu->r[30] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0281E05C */ cpu->lr = cpu->r[0];
|
|
/* 0281E060 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0281E060 */ cpu->r[31] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0281E064 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0281E068 */ return;
|
|
L_0281E06C: ; // 0x281e06c
|
|
/* 0281E06C */ cpu->r[3] = cpu->r[30] + 0x00000018u;
|
|
/* 0281E070 */ Gambit_fn_02836FFC(cpu);
|
|
/* 0281E074 */ _t22 = cpu->r[30] + 0x0000000Cu;
|
|
/* 0281E074 */ cpu->r[9] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0281E078 */ _t23 = cpu->r[9] + 0x0000008Cu;
|
|
/* 0281E078 */ cpu->r[10] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0281E07C */ cpu->ctr = cpu->r[10];
|
|
/* 0281E080 */ cpu->r[3] = cpu->r[30];
|
|
/* 0281E084 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0281E088 */ _t24 = cpu->r[30] + 0x00000010u;
|
|
/* 0281E088 */ rbrew_write32(cpu->mem, _t24, cpu->r[31]);
|
|
/* 0281E08C */ cpu->r[0] = 0x00000001u;
|
|
/* 0281E090 */ _t25 = cpu->r[30] + 0x00000014u;
|
|
/* 0281E090 */ rbrew_write32(cpu->mem, _t25, cpu->r[0]);
|
|
/* 0281E094 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 0281E094 */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0281E098 */ _t27 = cpu->r[1] + 0x00000008u;
|
|
/* 0281E098 */ cpu->r[30] = rbrew_read32(cpu->mem, _t27);
|
|
/* 0281E09C */ cpu->lr = cpu->r[0];
|
|
/* 0281E0A0 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0281E0A0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0281E0A4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0281E0A8 */ return;
|
|
L_028F0068: ; // 0x28f0068
|
|
/* 028F0068 */ cpu->r[0] = cpu->lr;
|
|
/* 028F006C */ _t29 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F006C */ rbrew_write32(cpu->mem, _t29, cpu->r[1]);
|
|
/* 028F006C */ cpu->r[1] = _t29;
|
|
/* 028F0070 */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0070 */ rbrew_write32(cpu->mem, _t30, cpu->r[31]);
|
|
/* 028F0074 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F0078 */ _t31 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0078 */ rbrew_write32(cpu->mem, _t31, cpu->r[0]);
|
|
/* 028F007C */ Gambit_fn_028F0038(cpu);
|
|
/* 028F0080 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x0000003Cu);
|
|
/* 028F0084 */ cpu->r[12] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F0088 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
/* 028F008C */ Gambit_fn_02836FFC(cpu);
|
|
/* 028F0090 */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0090 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F0094 */ cpu->lr = cpu->r[0];
|
|
/* 028F0098 */ _t33 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0098 */ cpu->r[31] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F009C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F00A0 */ return;
|
|
L_028F00A4: ; // 0x28f00a4
|
|
/* 028F00A4 */ _t34 = cpu->r[3] + 0x00000018u;
|
|
/* 028F00A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F00A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028F00AC */ _t35 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F00AC */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F00AC */ if (_t36) goto L_028F00B8; else goto L_028F00B0;
|
|
L_028F00B0: ; // 0x28f00b0
|
|
/* 028F00B0 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F00B0 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028F00B0 */ if (_t38) goto L_028F00C4; else goto L_028F00B4;
|
|
L_028F00B4: ; // 0x28f00b4
|
|
/* 028F00B4 */ return;
|
|
L_028F00B8: ; // 0x28f00b8
|
|
/* 028F00B8 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F00BC */ _t39 = cpu->r[3] + 0xFFFF98A8u;
|
|
/* 028F00BC */ cpu->r[3] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F00C0 */ goto L_0281DFD8;
|
|
L_028F00C4: ; // 0x28f00c4
|
|
/* 028F00C4 */ goto L_028F0068;
|
|
}
|
|
|
|
// fn_028F00CC @ 0x28f00cc
|
|
void Gambit_fn_028F00CC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028F00CC: ; // 0x28f00cc
|
|
/* 028F00CC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F00CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F00CC */ cpu->r[1] = _t0;
|
|
/* 028F00D0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F00D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F00D4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F00D8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F00D8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F00DC */ Gambit_fn_028F0038(cpu);
|
|
/* 028F00E0 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x0000003Cu);
|
|
/* 028F00E4 */ cpu->r[12] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F00E8 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
/* 028F00EC */ Gambit_fn_02837030(cpu);
|
|
/* 028F00F0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F00F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F00F4 */ cpu->lr = cpu->r[0];
|
|
/* 028F00F8 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F00F8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F00FC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F0100 */ return;
|
|
}
|
|
|
|
// fn_028F0104 @ 0x28f0104
|
|
void Gambit_fn_028F0104(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _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_0281E0AC: ; // 0x281e0ac
|
|
/* 0281E0AC */ cpu->r[0] = cpu->lr;
|
|
/* 0281E0B0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0281E0B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0281E0B0 */ cpu->r[1] = _t0;
|
|
/* 0281E0B4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0281E0B4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0281E0B8 */ cpu->r[31] = cpu->r[3];
|
|
/* 0281E0BC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0281E0BC */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0281E0C0 */ _t3 = cpu->r[31] + 0x00000054u;
|
|
/* 0281E0C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0281E0C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0281E0C8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0281E0C8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0281E0C8 */ if (_t5) goto L_0281E0EC; else goto L_0281E0CC;
|
|
L_0281E0CC: ; // 0x281e0cc
|
|
/* 0281E0CC */ cpu->ctr = cpu->r[0];
|
|
/* 0281E0D0 */ cpu->r[3] = 0x00000000u;
|
|
/* 0281E0D4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0281E0D8 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 0281E0D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0281E0DC */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0281E0DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0281E0E0 */ cpu->lr = cpu->r[0];
|
|
/* 0281E0E4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0281E0E8 */ return;
|
|
L_0281E0EC: ; // 0x281e0ec
|
|
/* 0281E0EC */ cpu->r[12] = 0x101D0000u;
|
|
/* 0281E0F0 */ _t8 = cpu->r[12] + 0xFFFF994Cu;
|
|
/* 0281E0F0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0281E0F4 */ _t9 = cpu->r[12] + 0x00000060u;
|
|
/* 0281E0F4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0281E0F8 */ rbrew_dispatch(cpu, 0x02d0ab60u);
|
|
/* 0281E0FC */ _t10 = cpu->r[31] + 0x00000014u;
|
|
/* 0281E0FC */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0281E100 */ cpu->r[12] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 0281E100 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0281E104 */ _t11 = cpu->r[31] + 0x00000014u;
|
|
/* 0281E104 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
/* 0281E108 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0281E108 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0281E108 */ if (_t13) goto L_0281E10C; else goto L_0281E130;
|
|
L_0281E10C: ; // 0x281e10c
|
|
/* 0281E10C */ _t14 = cpu->r[31] + 0x0000000Cu;
|
|
/* 0281E10C */ cpu->r[11] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0281E110 */ cpu->r[0] = 0x00000000u;
|
|
/* 0281E114 */ _t15 = cpu->r[31] + 0x00000010u;
|
|
/* 0281E114 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 0281E118 */ _t16 = cpu->r[11] + 0x00000094u;
|
|
/* 0281E118 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0281E11C */ cpu->ctr = cpu->r[0];
|
|
/* 0281E120 */ cpu->r[3] = cpu->r[31];
|
|
/* 0281E124 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0281E128 */ cpu->r[3] = cpu->r[31] + 0x00000018u;
|
|
/* 0281E12C */ Gambit_fn_02837030(cpu);
|
|
L_0281E130: ; // 0x281e130
|
|
/* 0281E130 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 0281E130 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0281E134 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0281E134 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0281E138 */ cpu->lr = cpu->r[0];
|
|
/* 0281E13C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0281E140 */ return;
|
|
L_028F00C8: ; // 0x28f00c8
|
|
/* 028F00C8 */ cpu->r[0] = cpu->lr;
|
|
/* 028F00CC */ _t19 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F00CC */ rbrew_write32(cpu->mem, _t19, cpu->r[1]);
|
|
/* 028F00CC */ cpu->r[1] = _t19;
|
|
/* 028F00D0 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F00D0 */ rbrew_write32(cpu->mem, _t20, cpu->r[31]);
|
|
/* 028F00D4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F00D8 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028F00D8 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
/* 028F00DC */ Gambit_fn_028F0038(cpu);
|
|
/* 028F00E0 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x0000003Cu);
|
|
/* 028F00E4 */ cpu->r[12] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F00E8 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
/* 028F00EC */ Gambit_fn_02837030(cpu);
|
|
/* 028F00F0 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028F00F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F00F4 */ cpu->lr = cpu->r[0];
|
|
/* 028F00F8 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F00F8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F00FC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F0100 */ return;
|
|
L_028F0104: ; // 0x28f0104
|
|
/* 028F0104 */ _t24 = cpu->r[3] + 0x00000018u;
|
|
/* 028F0104 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F0108 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028F010C */ _t25 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F010C */ _t26 = _t25 & 0x00000001u;
|
|
/* 028F010C */ if (_t26) goto L_028F0118; else goto L_028F0110;
|
|
L_028F0110: ; // 0x28f0110
|
|
/* 028F0110 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0110 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F0110 */ if (_t28) goto L_028F0124; else goto L_028F0114;
|
|
L_028F0114: ; // 0x28f0114
|
|
/* 028F0114 */ return;
|
|
L_028F0118: ; // 0x28f0118
|
|
/* 028F0118 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F011C */ _t29 = cpu->r[3] + 0xFFFF98A8u;
|
|
/* 028F011C */ cpu->r[3] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F0120 */ goto L_0281E0AC;
|
|
L_028F0124: ; // 0x28f0124
|
|
/* 028F0124 */ goto L_028F00C8;
|
|
}
|
|
|
|
// fn_028F0178 @ 0x28f0178
|
|
void Gambit_fn_028F0178(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028F0068: ; // 0x28f0068
|
|
/* 028F0068 */ cpu->r[0] = cpu->lr;
|
|
/* 028F006C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F006C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F006C */ cpu->r[1] = _t0;
|
|
/* 028F0070 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0070 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F0074 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F0078 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0078 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F007C */ Gambit_fn_028F0038(cpu);
|
|
/* 028F0080 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x0000003Cu);
|
|
/* 028F0084 */ cpu->r[12] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F0088 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
/* 028F008C */ Gambit_fn_02836FFC(cpu);
|
|
/* 028F0090 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0090 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F0094 */ cpu->lr = cpu->r[0];
|
|
/* 028F0098 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0098 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F009C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F00A0 */ return;
|
|
L_028F0178: ; // 0x28f0178
|
|
/* 028F0178 */ _t5 = cpu->r[3] + 0x00000018u;
|
|
/* 028F0178 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F017C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028F0180 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0180 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F0180 */ _t8 = _t7 ^ 0x00000001u;
|
|
/* 028F0180 */ if (_t8) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F0180 */ goto L_028F0184;
|
|
L_028F0184: ; // 0x28f0184
|
|
/* 028F0184 */ goto L_028F0068;
|
|
}
|
|
|
|
// fn_028F0188 @ 0x28f0188
|
|
void Gambit_fn_028F0188(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028F00C8: ; // 0x28f00c8
|
|
/* 028F00C8 */ cpu->r[0] = cpu->lr;
|
|
/* 028F00CC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F00CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F00CC */ cpu->r[1] = _t0;
|
|
/* 028F00D0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F00D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F00D4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F00D8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F00D8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F00DC */ Gambit_fn_028F0038(cpu);
|
|
/* 028F00E0 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x0000003Cu);
|
|
/* 028F00E4 */ cpu->r[12] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F00E8 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
/* 028F00EC */ Gambit_fn_02837030(cpu);
|
|
/* 028F00F0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F00F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F00F4 */ cpu->lr = cpu->r[0];
|
|
/* 028F00F8 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F00F8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F00FC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F0100 */ return;
|
|
L_028F0188: ; // 0x28f0188
|
|
/* 028F0188 */ _t5 = cpu->r[3] + 0x00000018u;
|
|
/* 028F0188 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F018C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028F0190 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0190 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F0190 */ _t8 = _t7 ^ 0x00000001u;
|
|
/* 028F0190 */ if (_t8) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F0190 */ goto L_028F0194;
|
|
L_028F0194: ; // 0x28f0194
|
|
/* 028F0194 */ goto L_028F00C8;
|
|
}
|
|
|
|
// fn_028F0198 @ 0x28f0198
|
|
void Gambit_fn_028F0198(CPUState* cpu) {
|
|
uint32_t _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_028F0198: ; // 0x28f0198
|
|
/* 028F0198 */ cpu->r[0] = cpu->lr;
|
|
/* 028F019C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F019C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F019C */ cpu->r[1] = _t0;
|
|
/* 028F01A0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F01A0 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028F01A4 */ cpu->r[28] = cpu->r[4];
|
|
/* 028F01A8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F01A8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F01AC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F01AC */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028F01B0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F01B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F01B4 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028F01B4 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028F01B8 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F01B8 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F01BC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F01BC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F01BC */ if (_t7) goto L_028F0220; else goto L_028F01C0;
|
|
L_028F01C0: ; // 0x28f01c0
|
|
/* 028F01C0 */ cpu->r[6] = 0x10140000u;
|
|
/* 028F01C4 */ cpu->r[6] = cpu->r[6] + 0xFFFFCBF4u;
|
|
/* 028F01C8 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028F01CC */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F01CC */ rbrew_write32(cpu->mem, _t8, cpu->r[6]);
|
|
/* 028F01D0 */ _t9 = cpu->r[12] + 0xFFFF9B18u;
|
|
/* 028F01D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F01D0 */ cpu->r[12] = _t9;
|
|
/* 028F01D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 028F01D8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F01D8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F01D8 */ if (_t11) goto L_028F01DC; else goto L_028F0204;
|
|
L_028F01DC: ; // 0x28f01dc
|
|
/* 028F01DC */ cpu->r[30] = 0x101D0000u;
|
|
/* 028F01E0 */ cpu->r[29] = 0x00000000u;
|
|
/* 028F01E4 */ _t12 = cpu->r[30] + 0xFFFF9B14u;
|
|
/* 028F01E4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F01E8 */ _t13 = cpu->r[12] + 0x00000000u;
|
|
/* 028F01E8 */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 028F01EC */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028F01EC */ cpu->r[8] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F01F0 */ _t15 = cpu->r[8] + 0x00000014u;
|
|
/* 028F01F0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F01F4 */ cpu->ctr = cpu->r[10];
|
|
/* 028F01F8 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F01FC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F0200 */ _t16 = cpu->r[30] + 0xFFFF9B14u;
|
|
/* 028F0200 */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
L_028F0204: ; // 0x28f0204
|
|
/* 028F0204 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F0208 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F020C */ Gambit_fn_02821E68(cpu);
|
|
/* 028F0210 */ cpu->r[0] = rbrew_rlwinm(cpu->r[28], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F0210 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F0214 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0214 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F0214 */ if (_t18) goto L_028F0220; else goto L_028F0218;
|
|
L_028F0218: ; // 0x28f0218
|
|
/* 028F0218 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F021C */ Gambit_fn_02801BB0(cpu);
|
|
L_028F0220: ; // 0x28f0220
|
|
/* 028F0220 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028F0220 */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F0224 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0224 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F0228 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F0228 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F022C */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028F022C */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F0230 */ cpu->lr = cpu->r[0];
|
|
/* 028F0234 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0234 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F0238 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F023C */ return;
|
|
}
|
|
|
|
// fn_028F019C @ 0x28f019c
|
|
void Gambit_fn_028F019C(CPUState* cpu) {
|
|
uint32_t _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_028F019C: ; // 0x28f019c
|
|
/* 028F019C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F019C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F019C */ cpu->r[1] = _t0;
|
|
/* 028F01A0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F01A0 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028F01A4 */ cpu->r[28] = cpu->r[4];
|
|
/* 028F01A8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F01A8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F01AC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F01AC */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028F01B0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F01B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F01B4 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028F01B4 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028F01B8 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F01B8 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F01BC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F01BC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F01BC */ if (_t7) goto L_028F0220; else goto L_028F01C0;
|
|
L_028F01C0: ; // 0x28f01c0
|
|
/* 028F01C0 */ cpu->r[6] = 0x10140000u;
|
|
/* 028F01C4 */ cpu->r[6] = cpu->r[6] + 0xFFFFCBF4u;
|
|
/* 028F01C8 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028F01CC */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F01CC */ rbrew_write32(cpu->mem, _t8, cpu->r[6]);
|
|
/* 028F01D0 */ _t9 = cpu->r[12] + 0xFFFF9B18u;
|
|
/* 028F01D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F01D0 */ cpu->r[12] = _t9;
|
|
/* 028F01D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 028F01D8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F01D8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F01D8 */ if (_t11) goto L_028F01DC; else goto L_028F0204;
|
|
L_028F01DC: ; // 0x28f01dc
|
|
/* 028F01DC */ cpu->r[30] = 0x101D0000u;
|
|
/* 028F01E0 */ cpu->r[29] = 0x00000000u;
|
|
/* 028F01E4 */ _t12 = cpu->r[30] + 0xFFFF9B14u;
|
|
/* 028F01E4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F01E8 */ _t13 = cpu->r[12] + 0x00000000u;
|
|
/* 028F01E8 */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 028F01EC */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028F01EC */ cpu->r[8] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F01F0 */ _t15 = cpu->r[8] + 0x00000014u;
|
|
/* 028F01F0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F01F4 */ cpu->ctr = cpu->r[10];
|
|
/* 028F01F8 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F01FC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F0200 */ _t16 = cpu->r[30] + 0xFFFF9B14u;
|
|
/* 028F0200 */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
L_028F0204: ; // 0x28f0204
|
|
/* 028F0204 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F0208 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F020C */ Gambit_fn_02821E68(cpu);
|
|
/* 028F0210 */ cpu->r[0] = rbrew_rlwinm(cpu->r[28], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F0210 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F0214 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0214 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F0214 */ if (_t18) goto L_028F0220; else goto L_028F0218;
|
|
L_028F0218: ; // 0x28f0218
|
|
/* 028F0218 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F021C */ Gambit_fn_02801BB0(cpu);
|
|
L_028F0220: ; // 0x28f0220
|
|
/* 028F0220 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028F0220 */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F0224 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0224 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F0228 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F0228 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F022C */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028F022C */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F0230 */ cpu->lr = cpu->r[0];
|
|
/* 028F0234 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0234 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F0238 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F023C */ return;
|
|
}
|
|
|
|
// fn_028F0240 @ 0x28f0240
|
|
void Gambit_fn_028F0240(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_028F0240: ; // 0x28f0240
|
|
/* 028F0240 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F0244 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0244 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F0244 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F0244 */ goto L_028F0248;
|
|
L_028F0248: ; // 0x28f0248
|
|
/* 028F0248 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F0248 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F024C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F024C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F024C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F024C */ goto L_028F0250;
|
|
L_028F0250: ; // 0x28f0250
|
|
/* 028F0250 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028F0254 @ 0x28f0254
|
|
void Gambit_fn_028F0254(CPUState* cpu) {
|
|
L_028F0254: ; // 0x28f0254
|
|
/* 028F0254 */ return;
|
|
}
|
|
|
|
// fn_028F025C @ 0x28f025c
|
|
void Gambit_fn_028F025C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028F025C: ; // 0x28f025c
|
|
/* 028F025C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F025C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F025C */ cpu->r[1] = _t0;
|
|
/* 028F0260 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0260 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F0264 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F0264 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F0268 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0268 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F026C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F026C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F026C */ if (_t4) goto L_028F0270; else goto L_028F0280;
|
|
L_028F0270: ; // 0x28f0270
|
|
/* 028F0270 */ cpu->r[3] = 0x0000003Cu;
|
|
/* 028F0274 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F0278 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F0278 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F027C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F027C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F027C */ if (_t6) goto L_028F0288; else goto L_028F0280;
|
|
L_028F0280: ; // 0x28f0280
|
|
/* 028F0280 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F0284 */ Gambit_fn_02836EBC(cpu);
|
|
L_028F0288: ; // 0x28f0288
|
|
/* 028F0288 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0288 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F028C */ cpu->r[3] = cpu->r[31];
|
|
/* 028F0290 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0290 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F0294 */ cpu->lr = cpu->r[0];
|
|
/* 028F0298 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F029C */ return;
|
|
}
|
|
|
|
// fn_028F02A4 @ 0x28f02a4
|
|
void Gambit_fn_028F02A4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028F02A4: ; // 0x28f02a4
|
|
/* 028F02A4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F02A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F02A4 */ cpu->r[1] = _t0;
|
|
/* 028F02A8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F02A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F02AC */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F02AC */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F02B0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F02B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F02B4 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F02B8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F02B8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F02BC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F02BC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F02BC */ if (_t5) goto L_028F02DC; else goto L_028F02C0;
|
|
L_028F02C0: ; // 0x28f02c0
|
|
/* 028F02C0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F02C4 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F02C8 */ Gambit_fn_02836FA8(cpu);
|
|
/* 028F02CC */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F02CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F02D0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F02D0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F02D0 */ if (_t7) goto L_028F02DC; else goto L_028F02D4;
|
|
L_028F02D4: ; // 0x28f02d4
|
|
/* 028F02D4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F02D8 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F02DC: ; // 0x28f02dc
|
|
/* 028F02DC */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028F02DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F02E0 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028F02E0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F02E4 */ cpu->lr = cpu->r[0];
|
|
/* 028F02E8 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F02E8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F02EC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F02F0 */ return;
|
|
}
|
|
|
|
// fn_028F02F4 @ 0x28f02f4
|
|
void Gambit_fn_028F02F4(CPUState* cpu) {
|
|
L_028F02F4: ; // 0x28f02f4
|
|
/* 028F02F4 */ return;
|
|
}
|
|
|
|
// fn_028F02F8 @ 0x28f02f8
|
|
void Gambit_fn_028F02F8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028F02F8: ; // 0x28f02f8
|
|
/* 028F02F8 */ cpu->r[0] = cpu->lr;
|
|
/* 028F02FC */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028F02FC */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028F0300 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F0304 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028F0304 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028F0304 */ cpu->r[1] = _t1;
|
|
/* 028F0308 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0308 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F0308 */ if (_t3) goto L_028F030C; else goto L_028F031C;
|
|
L_028F030C: ; // 0x28f030c
|
|
/* 028F030C */ cpu->r[3] = 0x00000018u;
|
|
/* 028F0310 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F0314 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F0318 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0318 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F0318 */ if (_t5) goto L_028F0344; else goto L_028F031C;
|
|
L_028F031C: ; // 0x28f031c
|
|
/* 028F031C */ cpu->r[12] = 0x00000004u;
|
|
/* 028F0320 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F0324 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F0328 */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 028F0328 */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028F032C */ cpu->r[0] = cpu->r[0] + 0xFFFFCC1Cu;
|
|
/* 028F0330 */ _t7 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F0330 */ rbrew_write32(cpu->mem, _t7, cpu->r[10]);
|
|
/* 028F0334 */ _t8 = cpu->r[3] + 0x00000014u;
|
|
/* 028F0334 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028F0338 */ _t9 = cpu->r[3] + 0x00000010u;
|
|
/* 028F0338 */ rbrew_write32(cpu->mem, _t9, cpu->r[10]);
|
|
/* 028F033C */ _t10 = cpu->r[3] + 0x00000004u;
|
|
/* 028F033C */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028F0340 */ _t11 = cpu->r[3] + 0x00000008u;
|
|
/* 028F0340 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
L_028F0344: ; // 0x28f0344
|
|
/* 028F0344 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0344 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F0348 */ cpu->lr = cpu->r[0];
|
|
/* 028F034C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028F0350 */ return;
|
|
}
|
|
|
|
// fn_028F0304 @ 0x28f0304
|
|
void Gambit_fn_028F0304(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028F0304: ; // 0x28f0304
|
|
/* 028F0304 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028F0304 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F0304 */ cpu->r[1] = _t0;
|
|
/* 028F0308 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0308 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028F0308 */ if (_t2) goto L_028F030C; else goto L_028F031C;
|
|
L_028F030C: ; // 0x28f030c
|
|
/* 028F030C */ cpu->r[3] = 0x00000018u;
|
|
/* 028F0310 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F0314 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F0318 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0318 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F0318 */ if (_t4) goto L_028F0344; else goto L_028F031C;
|
|
L_028F031C: ; // 0x28f031c
|
|
/* 028F031C */ cpu->r[12] = 0x00000004u;
|
|
/* 028F0320 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F0324 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F0328 */ _t5 = cpu->r[3] + 0x00000000u;
|
|
/* 028F0328 */ rbrew_write32(cpu->mem, _t5, cpu->r[12]);
|
|
/* 028F032C */ cpu->r[0] = cpu->r[0] + 0xFFFFCC1Cu;
|
|
/* 028F0330 */ _t6 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F0330 */ rbrew_write32(cpu->mem, _t6, cpu->r[10]);
|
|
/* 028F0334 */ _t7 = cpu->r[3] + 0x00000014u;
|
|
/* 028F0334 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028F0338 */ _t8 = cpu->r[3] + 0x00000010u;
|
|
/* 028F0338 */ rbrew_write32(cpu->mem, _t8, cpu->r[10]);
|
|
/* 028F033C */ _t9 = cpu->r[3] + 0x00000004u;
|
|
/* 028F033C */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 028F0340 */ _t10 = cpu->r[3] + 0x00000008u;
|
|
/* 028F0340 */ rbrew_write32(cpu->mem, _t10, cpu->r[10]);
|
|
L_028F0344: ; // 0x28f0344
|
|
/* 028F0344 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0344 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F0348 */ cpu->lr = cpu->r[0];
|
|
/* 028F034C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028F0350 */ return;
|
|
}
|
|
|
|
// fn_028F0354 @ 0x28f0354
|
|
void Gambit_fn_028F0354(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028F0354: ; // 0x28f0354
|
|
/* 028F0354 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F0358 */ _t0 = cpu->r[3] + 0x00000008u;
|
|
/* 028F0358 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028F035C */ _t1 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F035C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F0360 */ _t2 = cpu->r[3] + 0x00000010u;
|
|
/* 028F0360 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F0364 */ return;
|
|
}
|
|
|
|
// fn_028F0368 @ 0x28f0368
|
|
void Gambit_fn_028F0368(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028F0368: ; // 0x28f0368
|
|
/* 028F0368 */ cpu->r[0] = cpu->lr;
|
|
/* 028F036C */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028F036C */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028F0370 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F0374 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028F0374 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028F0374 */ cpu->r[1] = _t1;
|
|
/* 028F0378 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0378 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F0378 */ if (_t3) goto L_028F0398; else goto L_028F037C;
|
|
L_028F037C: ; // 0x28f037c
|
|
/* 028F037C */ cpu->r[0] = 0x10140000u;
|
|
/* 028F0380 */ cpu->r[0] = cpu->r[0] + 0xFFFFCC1Cu;
|
|
/* 028F0384 */ _t4 = cpu->r[3] + 0x00000014u;
|
|
/* 028F0384 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F0388 */ Gambit_fn_028F0354(cpu);
|
|
/* 028F038C */ cpu->r[12] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F038C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F0390 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0390 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F0390 */ if (_t6) goto L_028F0398; else goto L_028F0394;
|
|
L_028F0394: ; // 0x28f0394
|
|
/* 028F0394 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F0398: ; // 0x28f0398
|
|
/* 028F0398 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0398 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F039C */ cpu->lr = cpu->r[0];
|
|
/* 028F03A0 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028F03A4 */ return;
|
|
}
|
|
|
|
// fn_028F0374 @ 0x28f0374
|
|
void Gambit_fn_028F0374(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028F0374: ; // 0x28f0374
|
|
/* 028F0374 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028F0374 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F0374 */ cpu->r[1] = _t0;
|
|
/* 028F0378 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0378 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028F0378 */ if (_t2) goto L_028F0398; else goto L_028F037C;
|
|
L_028F037C: ; // 0x28f037c
|
|
/* 028F037C */ cpu->r[0] = 0x10140000u;
|
|
/* 028F0380 */ cpu->r[0] = cpu->r[0] + 0xFFFFCC1Cu;
|
|
/* 028F0384 */ _t3 = cpu->r[3] + 0x00000014u;
|
|
/* 028F0384 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F0388 */ Gambit_fn_028F0354(cpu);
|
|
/* 028F038C */ cpu->r[12] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F038C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F0390 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0390 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F0390 */ if (_t5) goto L_028F0398; else goto L_028F0394;
|
|
L_028F0394: ; // 0x28f0394
|
|
/* 028F0394 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F0398: ; // 0x28f0398
|
|
/* 028F0398 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0398 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F039C */ cpu->lr = cpu->r[0];
|
|
/* 028F03A0 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028F03A4 */ return;
|
|
}
|
|
|
|
// fn_028F03A8 @ 0x28f03a8
|
|
void Gambit_fn_028F03A8(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028F03A8: ; // 0x28f03a8
|
|
/* 028F03A8 */ _t0 = cpu->r[3] + 0x00000010u;
|
|
/* 028F03A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F03AC */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)cpu->r[12]);
|
|
/* 028F03B0 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028F03B0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028F03B4 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)cpu->r[12]);
|
|
/* 028F03B8 */ cpu->r[3] = cpu->r[11] + cpu->r[0];
|
|
/* 028F03BC */ rbrew_dispatch(cpu, 0x02d09328u); return;
|
|
}
|
|
|
|
// fn_028F03C0 @ 0x28f03c0
|
|
void Gambit_fn_028F03C0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028F03C0: ; // 0x28f03c0
|
|
/* 028F03C0 */ cpu->r[0] = cpu->lr;
|
|
/* 028F03C4 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028F03C4 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028F03C8 */ cpu->r[12] = cpu->r[3];
|
|
/* 028F03CC */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028F03CC */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028F03CC */ cpu->r[1] = _t1;
|
|
/* 028F03D0 */ Gambit_fn_028F0354(cpu);
|
|
/* 028F03D4 */ _t2 = cpu->r[12] + 0x00000008u;
|
|
/* 028F03D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[4]);
|
|
/* 028F03D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000004u);
|
|
/* 028F03DC */ cpu->r[0] = cpu->r[6];
|
|
/* 028F03E0 */ _t3 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028F03E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[6]);
|
|
/* 028F03E4 */ cpu->r[10] = 0x00000004u;
|
|
/* 028F03E8 */ cpu->r[3] = cpu->r[4];
|
|
/* 028F03EC */ _t4 = cpu->r[12] + 0x00000000u;
|
|
/* 028F03EC */ rbrew_write32(cpu->mem, _t4, cpu->r[5]);
|
|
/* 028F03F0 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F03F0 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F03F0 */ if (_t6) goto L_028F03F4; else goto L_028F03F8;
|
|
L_028F03F4: ; // 0x28f03f4
|
|
/* 028F03F4 */ cpu->r[10] = 0x00000002u;
|
|
L_028F03F8: ; // 0x28f03f8
|
|
/* 028F03F8 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[10] * (int32_t)cpu->r[0]);
|
|
/* 028F03FC */ _t7 = cpu->r[12] + 0x00000010u;
|
|
/* 028F03FC */ rbrew_write32(cpu->mem, _t7, cpu->r[10]);
|
|
/* 028F0400 */ rbrew_dispatch(cpu, 0x02d09328u);
|
|
/* 028F0404 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0404 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F0408 */ cpu->lr = cpu->r[0];
|
|
/* 028F040C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028F0410 */ return;
|
|
}
|
|
|
|
// fn_028F03CC @ 0x28f03cc
|
|
void Gambit_fn_028F03CC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028F03CC: ; // 0x28f03cc
|
|
/* 028F03CC */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028F03CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F03CC */ cpu->r[1] = _t0;
|
|
/* 028F03D0 */ Gambit_fn_028F0354(cpu);
|
|
/* 028F03D4 */ _t1 = cpu->r[12] + 0x00000008u;
|
|
/* 028F03D4 */ rbrew_write32(cpu->mem, _t1, cpu->r[4]);
|
|
/* 028F03D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000004u);
|
|
/* 028F03DC */ cpu->r[0] = cpu->r[6];
|
|
/* 028F03E0 */ _t2 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028F03E0 */ rbrew_write32(cpu->mem, _t2, cpu->r[6]);
|
|
/* 028F03E4 */ cpu->r[10] = 0x00000004u;
|
|
/* 028F03E8 */ cpu->r[3] = cpu->r[4];
|
|
/* 028F03EC */ _t3 = cpu->r[12] + 0x00000000u;
|
|
/* 028F03EC */ rbrew_write32(cpu->mem, _t3, cpu->r[5]);
|
|
/* 028F03F0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F03F0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F03F0 */ if (_t5) goto L_028F03F4; else goto L_028F03F8;
|
|
L_028F03F4: ; // 0x28f03f4
|
|
/* 028F03F4 */ cpu->r[10] = 0x00000002u;
|
|
L_028F03F8: ; // 0x28f03f8
|
|
/* 028F03F8 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[10] * (int32_t)cpu->r[0]);
|
|
/* 028F03FC */ _t6 = cpu->r[12] + 0x00000010u;
|
|
/* 028F03FC */ rbrew_write32(cpu->mem, _t6, cpu->r[10]);
|
|
/* 028F0400 */ rbrew_dispatch(cpu, 0x02d09328u);
|
|
/* 028F0404 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0404 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F0408 */ cpu->lr = cpu->r[0];
|
|
/* 028F040C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028F0410 */ return;
|
|
}
|
|
|
|
// fn_028F0414 @ 0x28f0414
|
|
void Gambit_fn_028F0414(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028F0414: ; // 0x28f0414
|
|
/* 028F0414 */ cpu->r[7] = 0x00000000u;
|
|
/* 028F0418 */ cpu->r[12] = cpu->r[3] + 0x0000001Cu;
|
|
/* 028F041C */ cpu->r[0] = cpu->r[7];
|
|
L_028F0420: ; // 0x28f0420
|
|
/* 028F0420 */ cpu->r[9] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F0424 */ cpu->r[7] = cpu->r[7] + 0x00000001u;
|
|
/* 028F0428 */ _t0 = cpu->r[12] + cpu->r[9];
|
|
/* 028F0428 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028F042C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000008u);
|
|
/* 028F0430 */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F0430 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028F0430 */ _t3 = _t2 ^ 0x00000001u;
|
|
/* 028F0430 */ if (_t3) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F0430 */ goto L_028F0434;
|
|
L_028F0434: ; // 0x28f0434
|
|
/* 028F0434 */ cpu->r[10] = 0x00000000u;
|
|
L_028F0438: ; // 0x28f0438
|
|
/* 028F0438 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], 0x00000008u);
|
|
/* 028F043C */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F043C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F043C */ if (_t5) goto L_028F0420; else goto L_028F0440;
|
|
L_028F0440: ; // 0x28f0440
|
|
/* 028F0440 */ cpu->r[7] = cpu->r[7] + 0x00000001u;
|
|
/* 028F0444 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000008u);
|
|
/* 028F0448 */ _t6 = cpu->r[12] + 0x00000000u;
|
|
/* 028F0448 */ rbrew_write32(cpu->mem, _t6, cpu->r[10]);
|
|
/* 028F044C */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F044C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F044C */ if (_t8) goto L_028F0438; else goto L_028F0450;
|
|
L_028F0450: ; // 0x28f0450
|
|
/* 028F0450 */ return;
|
|
}
|
|
|
|
// fn_028F0454 @ 0x28f0454
|
|
void Gambit_fn_028F0454(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028F0454: ; // 0x28f0454
|
|
/* 028F0454 */ cpu->r[0] = cpu->lr;
|
|
/* 028F0458 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028F0458 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028F045C */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028F045C */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028F045C */ cpu->r[1] = _t1;
|
|
/* 028F0460 */ Gambit_fn_028F0414(cpu);
|
|
/* 028F0464 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F0468 */ _t2 = cpu->r[3] + 0x0000003Cu;
|
|
/* 028F0468 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F046C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F046C */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F0470 */ cpu->lr = cpu->r[0];
|
|
/* 028F0474 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028F0478 */ return;
|
|
}
|
|
|
|
// fn_028F045C @ 0x28f045c
|
|
void Gambit_fn_028F045C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028F045C: ; // 0x28f045c
|
|
/* 028F045C */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028F045C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F045C */ cpu->r[1] = _t0;
|
|
/* 028F0460 */ Gambit_fn_028F0414(cpu);
|
|
/* 028F0464 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F0468 */ _t1 = cpu->r[3] + 0x0000003Cu;
|
|
/* 028F0468 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F046C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F046C */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F0470 */ cpu->lr = cpu->r[0];
|
|
/* 028F0474 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028F0478 */ return;
|
|
}
|
|
|
|
// fn_028F047C @ 0x28f047c
|
|
void Gambit_fn_028F047C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F047C: ; // 0x28f047c
|
|
/* 028F047C */ cpu->r[0] = cpu->lr;
|
|
/* 028F0480 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028F0480 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F0480 */ cpu->r[1] = _t0;
|
|
/* 028F0484 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028F0484 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028F0488 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0488 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F048C */ /* nop */
|
|
/* 028F0490 */ _t3 = cpu->r[1] + 0x00000018u;
|
|
/* 028F0490 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 028F0494 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F0494 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F0498 */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 028F0498 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028F049C */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028F049C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F04A0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F04A0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F04A0 */ if (_t7) goto L_028F04A4; else goto L_028F04B4;
|
|
L_028F04A4: ; // 0x28f04a4
|
|
/* 028F04A4 */ cpu->r[3] = 0x00000040u;
|
|
/* 028F04A8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F04AC */ cpu->r[31] = cpu->r[3];
|
|
/* 028F04AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F04B0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F04B0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F04B0 */ if (_t9) goto L_028F0544; else goto L_028F04B4;
|
|
L_028F04B4: ; // 0x28f04b4
|
|
/* 028F04B4 */ cpu->r[30] = cpu->r[31];
|
|
/* 028F04B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F04B8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F04B8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F04B8 */ if (_t11) goto L_028F04BC; else goto L_028F04CC;
|
|
L_028F04BC: ; // 0x28f04bc
|
|
/* 028F04BC */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028F04C0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F04C4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F04C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F04C8 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F04C8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F04C8 */ if (_t13) goto L_028F0530; else goto L_028F04CC;
|
|
L_028F04CC: ; // 0x28f04cc
|
|
/* 028F04CC */ cpu->r[12] = 0x10140000u;
|
|
/* 028F04D0 */ cpu->r[10] = 0x10140000u;
|
|
/* 028F04D4 */ cpu->r[12] = cpu->r[12] + 0xFFFFCC40u;
|
|
/* 028F04D8 */ _t14 = cpu->r[10] + 0xFFFFCC90u;
|
|
/* 028F04D8 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028F04DC */ cpu->r[3] = cpu->r[30];
|
|
/* 028F04DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F04E0 */ _t15 = cpu->r[30] + 0x00000018u;
|
|
/* 028F04E0 */ rbrew_write32(cpu->mem, _t15, cpu->r[12]);
|
|
/* 028F04E4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F04E4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F04E4 */ if (_t17) goto L_028F04E8; else goto L_028F04F8;
|
|
L_028F04E8: ; // 0x28f04e8
|
|
/* 028F04E8 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F04EC */ Gambit_fn_02801A78(cpu);
|
|
/* 028F04F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F04F4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F04F4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F04F4 */ if (_t19) goto L_028F0500; else goto L_028F04F8;
|
|
L_028F04F8: ; // 0x28f04f8
|
|
/* 028F04F8 */ _t20 = cpu->r[3] + 0x00000004u;
|
|
/* 028F04F8 */ rbrew_write_f32(cpu->mem, _t20, cpu->f[31]);
|
|
/* 028F04FC */ _t21 = cpu->r[3] + 0x00000000u;
|
|
/* 028F04FC */ rbrew_write_f32(cpu->mem, _t21, cpu->f[31]);
|
|
L_028F0500: ; // 0x28f0500
|
|
/* 028F0500 */ cpu->r[3] = cpu->r[30] + 0x00000008u;
|
|
/* 028F0500 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F0504 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0504 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F0504 */ if (_t23) goto L_028F0508; else goto L_028F0518;
|
|
L_028F0508: ; // 0x28f0508
|
|
/* 028F0508 */ cpu->r[3] = 0x00000010u;
|
|
/* 028F050C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F0510 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F0514 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0514 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F0514 */ if (_t25) goto L_028F0530; else goto L_028F0518;
|
|
L_028F0518: ; // 0x28f0518
|
|
/* 028F0518 */ cpu->r[11] = 0x10140000u;
|
|
/* 028F051C */ _t26 = cpu->r[11] + 0xFFFFCC94u;
|
|
/* 028F051C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028F0520 */ _t27 = cpu->r[3] + 0x00000008u;
|
|
/* 028F0520 */ rbrew_write_f32(cpu->mem, _t27, cpu->f[31]);
|
|
/* 028F0524 */ _t28 = cpu->r[3] + 0x00000004u;
|
|
/* 028F0524 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[0]);
|
|
/* 028F0528 */ _t29 = cpu->r[3] + 0x00000000u;
|
|
/* 028F0528 */ rbrew_write_f32(cpu->mem, _t29, cpu->f[0]);
|
|
/* 028F052C */ _t30 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F052C */ rbrew_write_f32(cpu->mem, _t30, cpu->f[31]);
|
|
L_028F0530: ; // 0x28f0530
|
|
/* 028F0530 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F0534 */ cpu->r[0] = cpu->r[0] + 0xFFFFCCA0u;
|
|
/* 028F0538 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F053C */ _t31 = cpu->r[31] + 0x00000018u;
|
|
/* 028F053C */ rbrew_write32(cpu->mem, _t31, cpu->r[0]);
|
|
/* 028F0540 */ Gambit_fn_028F0454(cpu);
|
|
L_028F0544: ; // 0x28f0544
|
|
/* 028F0544 */ _t32 = cpu->r[1] + 0x00000018u;
|
|
/* 028F0544 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 028F0548 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F054C */ _t33 = cpu->r[1] + 0x00000008u;
|
|
/* 028F054C */ cpu->r[30] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F0550 */ _t34 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0550 */ cpu->r[31] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F0554 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 028F0554 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t35);
|
|
/* 028F0558 */ _t36 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F0558 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F0558 */ if (_t37) goto L_028F055C; // else: addr-0 trap, fall-through
|
|
L_028F055C: ; // 0x28f055c
|
|
/* 028F055C */ _t38 = cpu->r[1] + 0x00000024u;
|
|
/* 028F055C */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F0560 */ cpu->lr = cpu->r[0];
|
|
/* 028F0564 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028F0568 */ return;
|
|
}
|
|
|
|
// fn_028F0480 @ 0x28f0480
|
|
void Gambit_fn_028F0480(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F0480: ; // 0x28f0480
|
|
/* 028F0480 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028F0480 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F0480 */ cpu->r[1] = _t0;
|
|
/* 028F0484 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028F0484 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028F0488 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0488 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F048C */ /* nop */
|
|
/* 028F0490 */ _t3 = cpu->r[1] + 0x00000018u;
|
|
/* 028F0490 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 028F0494 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F0494 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F0498 */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 028F0498 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028F049C */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028F049C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F04A0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F04A0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F04A0 */ if (_t7) goto L_028F04A4; else goto L_028F04B4;
|
|
L_028F04A4: ; // 0x28f04a4
|
|
/* 028F04A4 */ cpu->r[3] = 0x00000040u;
|
|
/* 028F04A8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F04AC */ cpu->r[31] = cpu->r[3];
|
|
/* 028F04AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F04B0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F04B0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F04B0 */ if (_t9) goto L_028F0544; else goto L_028F04B4;
|
|
L_028F04B4: ; // 0x28f04b4
|
|
/* 028F04B4 */ cpu->r[30] = cpu->r[31];
|
|
/* 028F04B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F04B8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F04B8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F04B8 */ if (_t11) goto L_028F04BC; else goto L_028F04CC;
|
|
L_028F04BC: ; // 0x28f04bc
|
|
/* 028F04BC */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028F04C0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F04C4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F04C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F04C8 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F04C8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F04C8 */ if (_t13) goto L_028F0530; else goto L_028F04CC;
|
|
L_028F04CC: ; // 0x28f04cc
|
|
/* 028F04CC */ cpu->r[12] = 0x10140000u;
|
|
/* 028F04D0 */ cpu->r[10] = 0x10140000u;
|
|
/* 028F04D4 */ cpu->r[12] = cpu->r[12] + 0xFFFFCC40u;
|
|
/* 028F04D8 */ _t14 = cpu->r[10] + 0xFFFFCC90u;
|
|
/* 028F04D8 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028F04DC */ cpu->r[3] = cpu->r[30];
|
|
/* 028F04DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F04E0 */ _t15 = cpu->r[30] + 0x00000018u;
|
|
/* 028F04E0 */ rbrew_write32(cpu->mem, _t15, cpu->r[12]);
|
|
/* 028F04E4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F04E4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F04E4 */ if (_t17) goto L_028F04E8; else goto L_028F04F8;
|
|
L_028F04E8: ; // 0x28f04e8
|
|
/* 028F04E8 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F04EC */ Gambit_fn_02801A78(cpu);
|
|
/* 028F04F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F04F4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F04F4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F04F4 */ if (_t19) goto L_028F0500; else goto L_028F04F8;
|
|
L_028F04F8: ; // 0x28f04f8
|
|
/* 028F04F8 */ _t20 = cpu->r[3] + 0x00000004u;
|
|
/* 028F04F8 */ rbrew_write_f32(cpu->mem, _t20, cpu->f[31]);
|
|
/* 028F04FC */ _t21 = cpu->r[3] + 0x00000000u;
|
|
/* 028F04FC */ rbrew_write_f32(cpu->mem, _t21, cpu->f[31]);
|
|
L_028F0500: ; // 0x28f0500
|
|
/* 028F0500 */ cpu->r[3] = cpu->r[30] + 0x00000008u;
|
|
/* 028F0500 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F0504 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0504 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F0504 */ if (_t23) goto L_028F0508; else goto L_028F0518;
|
|
L_028F0508: ; // 0x28f0508
|
|
/* 028F0508 */ cpu->r[3] = 0x00000010u;
|
|
/* 028F050C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F0510 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F0514 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0514 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F0514 */ if (_t25) goto L_028F0530; else goto L_028F0518;
|
|
L_028F0518: ; // 0x28f0518
|
|
/* 028F0518 */ cpu->r[11] = 0x10140000u;
|
|
/* 028F051C */ _t26 = cpu->r[11] + 0xFFFFCC94u;
|
|
/* 028F051C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028F0520 */ _t27 = cpu->r[3] + 0x00000008u;
|
|
/* 028F0520 */ rbrew_write_f32(cpu->mem, _t27, cpu->f[31]);
|
|
/* 028F0524 */ _t28 = cpu->r[3] + 0x00000004u;
|
|
/* 028F0524 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[0]);
|
|
/* 028F0528 */ _t29 = cpu->r[3] + 0x00000000u;
|
|
/* 028F0528 */ rbrew_write_f32(cpu->mem, _t29, cpu->f[0]);
|
|
/* 028F052C */ _t30 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F052C */ rbrew_write_f32(cpu->mem, _t30, cpu->f[31]);
|
|
L_028F0530: ; // 0x28f0530
|
|
/* 028F0530 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F0534 */ cpu->r[0] = cpu->r[0] + 0xFFFFCCA0u;
|
|
/* 028F0538 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F053C */ _t31 = cpu->r[31] + 0x00000018u;
|
|
/* 028F053C */ rbrew_write32(cpu->mem, _t31, cpu->r[0]);
|
|
/* 028F0540 */ Gambit_fn_028F0454(cpu);
|
|
L_028F0544: ; // 0x28f0544
|
|
/* 028F0544 */ _t32 = cpu->r[1] + 0x00000018u;
|
|
/* 028F0544 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 028F0548 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F054C */ _t33 = cpu->r[1] + 0x00000008u;
|
|
/* 028F054C */ cpu->r[30] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F0550 */ _t34 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0550 */ cpu->r[31] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F0554 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 028F0554 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t35);
|
|
/* 028F0558 */ _t36 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F0558 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F0558 */ if (_t37) goto L_028F055C; // else: addr-0 trap, fall-through
|
|
L_028F055C: ; // 0x28f055c
|
|
/* 028F055C */ _t38 = cpu->r[1] + 0x00000024u;
|
|
/* 028F055C */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F0560 */ cpu->lr = cpu->r[0];
|
|
/* 028F0564 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028F0568 */ return;
|
|
}
|
|
|
|
// fn_028F056C @ 0x28f056c
|
|
void Gambit_fn_028F056C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _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_028F056C: ; // 0x28f056c
|
|
/* 028F056C */ cpu->r[0] = cpu->lr;
|
|
/* 028F0570 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F0570 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F0570 */ cpu->r[1] = _t0;
|
|
/* 028F0574 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0574 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F0578 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F0578 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F057C */ cpu->r[30] = cpu->r[5];
|
|
/* 028F0580 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F0580 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F0584 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0584 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028F0588 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F0588 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F058C */ cpu->r[29] = cpu->r[4];
|
|
/* 028F0590 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0590 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F0590 */ if (_t6) goto L_028F0594; else goto L_028F05A4;
|
|
L_028F0594: ; // 0x28f0594
|
|
/* 028F0594 */ cpu->r[3] = 0x00000040u;
|
|
/* 028F0598 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F059C */ cpu->r[31] = cpu->r[3];
|
|
/* 028F059C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F05A0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F05A0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F05A0 */ if (_t8) goto L_028F060C; else goto L_028F05A4;
|
|
L_028F05A4: ; // 0x28f05a4
|
|
/* 028F05A4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F05A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F05A8 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F05A8 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F05A8 */ if (_t10) goto L_028F05AC; else goto L_028F05BC;
|
|
L_028F05AC: ; // 0x28f05ac
|
|
/* 028F05AC */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028F05B0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F05B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F05B8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F05B8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F05B8 */ if (_t12) goto L_028F05F8; else goto L_028F05BC;
|
|
L_028F05BC: ; // 0x28f05bc
|
|
/* 028F05BC */ cpu->r[12] = 0x10140000u;
|
|
/* 028F05C0 */ cpu->r[12] = cpu->r[12] + 0xFFFFCC40u;
|
|
/* 028F05C4 */ _t13 = cpu->r[3] + 0x00000018u;
|
|
/* 028F05C4 */ rbrew_write32(cpu->mem, _t13, cpu->r[12]);
|
|
/* 028F05C8 */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 028F05C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F05CC */ _t15 = cpu->r[3] + 0x00000000u;
|
|
/* 028F05CC */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028F05D0 */ _t16 = cpu->r[29] + 0x00000004u;
|
|
/* 028F05D0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F05D4 */ _t17 = cpu->r[3] + 0x00000004u;
|
|
/* 028F05D4 */ rbrew_write32(cpu->mem, _t17, cpu->r[9]);
|
|
/* 028F05D8 */ _t18 = cpu->r[30] + 0x00000000u;
|
|
/* 028F05D8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F05DC */ _t19 = cpu->r[3] + 0x00000008u;
|
|
/* 028F05DC */ rbrew_write32(cpu->mem, _t19, cpu->r[10]);
|
|
/* 028F05E0 */ _t20 = cpu->r[30] + 0x00000004u;
|
|
/* 028F05E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F05E4 */ _t21 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F05E4 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
/* 028F05E8 */ _t22 = cpu->r[30] + 0x00000008u;
|
|
/* 028F05E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F05EC */ _t23 = cpu->r[3] + 0x00000010u;
|
|
/* 028F05EC */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028F05F0 */ _t24 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F05F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F05F4 */ _t25 = cpu->r[3] + 0x00000014u;
|
|
/* 028F05F4 */ rbrew_write32(cpu->mem, _t25, cpu->r[0]);
|
|
L_028F05F8: ; // 0x28f05f8
|
|
/* 028F05F8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028F05FC */ cpu->r[11] = cpu->r[11] + 0xFFFFCCA0u;
|
|
/* 028F0600 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F0604 */ _t26 = cpu->r[31] + 0x00000018u;
|
|
/* 028F0604 */ rbrew_write32(cpu->mem, _t26, cpu->r[11]);
|
|
/* 028F0608 */ Gambit_fn_028F0454(cpu);
|
|
L_028F060C: ; // 0x28f060c
|
|
/* 028F060C */ _t27 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F060C */ cpu->r[29] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F0610 */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F0610 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F0614 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F0618 */ _t29 = cpu->r[1] + 0x00000010u;
|
|
/* 028F0618 */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F061C */ cpu->lr = cpu->r[0];
|
|
/* 028F0620 */ _t30 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0620 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F0624 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F0628 */ return;
|
|
}
|
|
|
|
// fn_028F0570 @ 0x28f0570
|
|
void Gambit_fn_028F0570(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _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_028F0570: ; // 0x28f0570
|
|
/* 028F0570 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F0570 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F0570 */ cpu->r[1] = _t0;
|
|
/* 028F0574 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0574 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F0578 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F0578 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F057C */ cpu->r[30] = cpu->r[5];
|
|
/* 028F0580 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F0580 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F0584 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0584 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028F0588 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F0588 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F058C */ cpu->r[29] = cpu->r[4];
|
|
/* 028F0590 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0590 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F0590 */ if (_t6) goto L_028F0594; else goto L_028F05A4;
|
|
L_028F0594: ; // 0x28f0594
|
|
/* 028F0594 */ cpu->r[3] = 0x00000040u;
|
|
/* 028F0598 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F059C */ cpu->r[31] = cpu->r[3];
|
|
/* 028F059C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F05A0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F05A0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F05A0 */ if (_t8) goto L_028F060C; else goto L_028F05A4;
|
|
L_028F05A4: ; // 0x28f05a4
|
|
/* 028F05A4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F05A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F05A8 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F05A8 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F05A8 */ if (_t10) goto L_028F05AC; else goto L_028F05BC;
|
|
L_028F05AC: ; // 0x28f05ac
|
|
/* 028F05AC */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028F05B0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F05B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F05B8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F05B8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F05B8 */ if (_t12) goto L_028F05F8; else goto L_028F05BC;
|
|
L_028F05BC: ; // 0x28f05bc
|
|
/* 028F05BC */ cpu->r[12] = 0x10140000u;
|
|
/* 028F05C0 */ cpu->r[12] = cpu->r[12] + 0xFFFFCC40u;
|
|
/* 028F05C4 */ _t13 = cpu->r[3] + 0x00000018u;
|
|
/* 028F05C4 */ rbrew_write32(cpu->mem, _t13, cpu->r[12]);
|
|
/* 028F05C8 */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 028F05C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F05CC */ _t15 = cpu->r[3] + 0x00000000u;
|
|
/* 028F05CC */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028F05D0 */ _t16 = cpu->r[29] + 0x00000004u;
|
|
/* 028F05D0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F05D4 */ _t17 = cpu->r[3] + 0x00000004u;
|
|
/* 028F05D4 */ rbrew_write32(cpu->mem, _t17, cpu->r[9]);
|
|
/* 028F05D8 */ _t18 = cpu->r[30] + 0x00000000u;
|
|
/* 028F05D8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F05DC */ _t19 = cpu->r[3] + 0x00000008u;
|
|
/* 028F05DC */ rbrew_write32(cpu->mem, _t19, cpu->r[10]);
|
|
/* 028F05E0 */ _t20 = cpu->r[30] + 0x00000004u;
|
|
/* 028F05E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F05E4 */ _t21 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F05E4 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
/* 028F05E8 */ _t22 = cpu->r[30] + 0x00000008u;
|
|
/* 028F05E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F05EC */ _t23 = cpu->r[3] + 0x00000010u;
|
|
/* 028F05EC */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028F05F0 */ _t24 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F05F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F05F4 */ _t25 = cpu->r[3] + 0x00000014u;
|
|
/* 028F05F4 */ rbrew_write32(cpu->mem, _t25, cpu->r[0]);
|
|
L_028F05F8: ; // 0x28f05f8
|
|
/* 028F05F8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028F05FC */ cpu->r[11] = cpu->r[11] + 0xFFFFCCA0u;
|
|
/* 028F0600 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F0604 */ _t26 = cpu->r[31] + 0x00000018u;
|
|
/* 028F0604 */ rbrew_write32(cpu->mem, _t26, cpu->r[11]);
|
|
/* 028F0608 */ Gambit_fn_028F0454(cpu);
|
|
L_028F060C: ; // 0x28f060c
|
|
/* 028F060C */ _t27 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F060C */ cpu->r[29] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F0610 */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F0610 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F0614 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F0618 */ _t29 = cpu->r[1] + 0x00000010u;
|
|
/* 028F0618 */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F061C */ cpu->lr = cpu->r[0];
|
|
/* 028F0620 */ _t30 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0620 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F0624 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F0628 */ return;
|
|
}
|
|
|
|
// fn_028F062C @ 0x28f062c
|
|
void Gambit_fn_028F062C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F062C: ; // 0x28f062c
|
|
/* 028F062C */ _t0 = cpu->r[1] + 0xFFFFFFB0u;
|
|
/* 028F062C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F062C */ cpu->r[1] = _t0;
|
|
/* 028F0630 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028F0630 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[28]);
|
|
/* 028F0634 */ /* nop */
|
|
/* 028F0638 */ _t2 = cpu->r[1] + 0x00000020u;
|
|
/* 028F0638 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[29]);
|
|
/* 028F063C */ _t3 = cpu->r[1] + 0x00000030u;
|
|
/* 028F063C */ rbrew_write_f64(cpu->mem, _t3, cpu->f[30]);
|
|
/* 028F0640 */ /* nop */
|
|
/* 028F0644 */ cpu->r[0] = cpu->lr;
|
|
/* 028F0648 */ _t4 = cpu->r[1] + 0x00000040u;
|
|
/* 028F0648 */ rbrew_write_f64(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028F064C */ /* nop */
|
|
/* 028F0650 */ _t5 = cpu->r[1] + 0x00000018u;
|
|
/* 028F0650 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[28]);
|
|
/* 028F0654 */ /* nop */
|
|
/* 028F0658 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0658 */ rbrew_write32(cpu->mem, _t6, cpu->r[31]);
|
|
/* 028F065C */ cpu->f[28] = cpu->f[1];
|
|
/* 028F0660 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028F0660 */ rbrew_write32(cpu->mem, _t7, cpu->r[30]);
|
|
/* 028F0664 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F0664 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F0668 */ _t8 = cpu->r[1] + 0x00000048u;
|
|
/* 028F0668 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[31]);
|
|
/* 028F066C */ cpu->r[30] = cpu->r[4];
|
|
/* 028F0670 */ _t9 = cpu->r[1] + 0x00000028u;
|
|
/* 028F0670 */ rbrew_write_f32(cpu->mem, _t9, cpu->f[29]);
|
|
/* 028F0674 */ cpu->f[31] = cpu->f[4];
|
|
/* 028F0678 */ _t10 = cpu->r[1] + 0x00000054u;
|
|
/* 028F0678 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028F067C */ cpu->f[29] = cpu->f[3];
|
|
/* 028F0680 */ _t11 = cpu->r[1] + 0x00000038u;
|
|
/* 028F0680 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[30]);
|
|
/* 028F0684 */ cpu->f[30] = cpu->f[2];
|
|
/* 028F0688 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0688 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F0688 */ if (_t13) goto L_028F068C; else goto L_028F069C;
|
|
L_028F068C: ; // 0x28f068c
|
|
/* 028F068C */ cpu->r[3] = 0x00000040u;
|
|
/* 028F0690 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F0694 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F0694 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F0698 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0698 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F0698 */ if (_t15) goto L_028F0740; else goto L_028F069C;
|
|
L_028F069C: ; // 0x28f069c
|
|
/* 028F069C */ cpu->r[12] = cpu->r[31];
|
|
/* 028F069C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F06A0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F06A0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F06A0 */ if (_t17) goto L_028F06A4; else goto L_028F06B4;
|
|
L_028F06A4: ; // 0x28f06a4
|
|
/* 028F06A4 */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028F06A8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F06AC */ cpu->r[12] = cpu->r[3];
|
|
/* 028F06AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F06B0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F06B0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F06B0 */ if (_t19) goto L_028F072C; else goto L_028F06B4;
|
|
L_028F06B4: ; // 0x28f06b4
|
|
/* 028F06B4 */ cpu->r[10] = 0x10140000u;
|
|
/* 028F06B8 */ cpu->r[10] = cpu->r[10] + 0xFFFFCC40u;
|
|
/* 028F06BC */ _t20 = cpu->r[12] + 0x00000018u;
|
|
/* 028F06BC */ rbrew_write32(cpu->mem, _t20, cpu->r[10]);
|
|
/* 028F06C0 */ _t21 = cpu->r[30] + 0x00000000u;
|
|
/* 028F06C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F06C4 */ cpu->f[31] = cpu->f[30] + cpu->f[31];
|
|
/* 028F06C8 */ _t22 = cpu->r[12] + 0x00000000u;
|
|
/* 028F06C8 */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
/* 028F06CC */ _t23 = cpu->r[30] + 0x00000004u;
|
|
/* 028F06CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F06D0 */ cpu->f[29] = cpu->f[28] + cpu->f[29];
|
|
/* 028F06D4 */ cpu->r[3] = cpu->r[12] + 0x00000008u;
|
|
/* 028F06D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F06D8 */ _t24 = cpu->r[12] + 0x00000004u;
|
|
/* 028F06D8 */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028F06DC */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F06DC */ _t26 = _t25 & 0x00000001u;
|
|
/* 028F06DC */ if (_t26) goto L_028F06E0; else goto L_028F06F0;
|
|
L_028F06E0: ; // 0x28f06e0
|
|
/* 028F06E0 */ cpu->r[3] = 0x00000010u;
|
|
/* 028F06E4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F06E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F06EC */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F06EC */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F06EC */ if (_t28) goto L_028F072C; else goto L_028F06F0;
|
|
L_028F06F0: ; // 0x28f06f0
|
|
/* 028F06F0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[28], cpu->f[29]);
|
|
/* 028F06F4 */ _t29 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F06F4 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F06F4 */ if (_t30) goto L_028F06F8; else goto L_028F0714;
|
|
L_028F06F8: ; // 0x28f06f8
|
|
/* 028F06F8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[30], cpu->f[31]);
|
|
/* 028F06FC */ _t31 = cpu->r[3] + 0x00000008u;
|
|
/* 028F06FC */ rbrew_write_f32(cpu->mem, _t31, cpu->f[29]);
|
|
/* 028F0700 */ _t32 = cpu->r[3] + 0x00000000u;
|
|
/* 028F0700 */ rbrew_write_f32(cpu->mem, _t32, cpu->f[28]);
|
|
/* 028F0704 */ _t33 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F0704 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F0704 */ if (_t34) goto L_028F0724; else goto L_028F0708;
|
|
L_028F0708: ; // 0x28f0708
|
|
/* 028F0708 */ _t35 = cpu->r[3] + 0x00000004u;
|
|
/* 028F0708 */ rbrew_write_f32(cpu->mem, _t35, cpu->f[31]);
|
|
/* 028F070C */ _t36 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F070C */ rbrew_write_f32(cpu->mem, _t36, cpu->f[30]);
|
|
/* 028F0710 */ goto L_028F072C;
|
|
L_028F0714: ; // 0x28f0714
|
|
/* 028F0714 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[30], cpu->f[31]);
|
|
/* 028F0718 */ _t37 = cpu->r[3] + 0x00000008u;
|
|
/* 028F0718 */ rbrew_write_f32(cpu->mem, _t37, cpu->f[28]);
|
|
/* 028F071C */ _t38 = cpu->r[3] + 0x00000000u;
|
|
/* 028F071C */ rbrew_write_f32(cpu->mem, _t38, cpu->f[29]);
|
|
/* 028F0720 */ _t39 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F0720 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028F0720 */ if (_t40) goto L_028F0724; else goto L_028F0708;
|
|
L_028F0724: ; // 0x28f0724
|
|
/* 028F0724 */ _t41 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F0724 */ rbrew_write_f32(cpu->mem, _t41, cpu->f[31]);
|
|
/* 028F0728 */ _t42 = cpu->r[3] + 0x00000004u;
|
|
/* 028F0728 */ rbrew_write_f32(cpu->mem, _t42, cpu->f[30]);
|
|
L_028F072C: ; // 0x28f072c
|
|
/* 028F072C */ cpu->r[0] = 0x10140000u;
|
|
/* 028F0730 */ cpu->r[0] = cpu->r[0] + 0xFFFFCCA0u;
|
|
/* 028F0734 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F0738 */ _t43 = cpu->r[31] + 0x00000018u;
|
|
/* 028F0738 */ rbrew_write32(cpu->mem, _t43, cpu->r[0]);
|
|
/* 028F073C */ Gambit_fn_028F0454(cpu);
|
|
L_028F0740: ; // 0x28f0740
|
|
/* 028F0740 */ _t44 = cpu->r[1] + 0x00000028u;
|
|
/* 028F0740 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t44);
|
|
/* 028F0744 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F0748 */ _t45 = cpu->r[1] + 0x00000038u;
|
|
/* 028F0748 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t45);
|
|
/* 028F074C */ _t46 = cpu->r[1] + 0x00000020u;
|
|
/* 028F074C */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t46);
|
|
/* 028F0750 */ _t47 = cpu->r[1] + 0x00000030u;
|
|
/* 028F0750 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t47);
|
|
/* 028F0754 */ _t48 = cpu->r[1] + 0x00000008u;
|
|
/* 028F0754 */ cpu->r[30] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028F0758 */ _t49 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0758 */ cpu->r[31] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028F075C */ _t50 = cpu->r[1] + 0x00000018u;
|
|
/* 028F075C */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t50);
|
|
/* 028F0760 */ _t51 = cpu->r[1] + 0x00000048u;
|
|
/* 028F0760 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t51);
|
|
/* 028F0764 */ _t52 = cpu->r[1] + 0x00000010u;
|
|
/* 028F0764 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t52);
|
|
/* 028F0768 */ _t53 = cpu->r[1] + 0x00000040u;
|
|
/* 028F0768 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t53);
|
|
/* 028F076C */ _t54 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F076C */ _t55 = _t54 & 0x00000001u;
|
|
/* 028F076C */ if (_t55) goto L_028F0770; // else: addr-0 trap, fall-through
|
|
L_028F0770: ; // 0x28f0770
|
|
/* 028F0770 */ _t56 = cpu->r[1] + 0x00000054u;
|
|
/* 028F0770 */ cpu->r[0] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028F0774 */ cpu->lr = cpu->r[0];
|
|
/* 028F0778 */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028F077C */ return;
|
|
}
|
|
|
|
// fn_028F0780 @ 0x28f0780
|
|
void Gambit_fn_028F0780(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _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_028F0780: ; // 0x28f0780
|
|
/* 028F0780 */ cpu->r[0] = cpu->lr;
|
|
/* 028F0784 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F0784 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F0784 */ cpu->r[1] = _t0;
|
|
/* 028F0788 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0788 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F078C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F078C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F0790 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F0790 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F0794 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F0798 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0798 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F079C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F079C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F079C */ if (_t5) goto L_028F0830; else goto L_028F07A0;
|
|
L_028F07A0: ; // 0x28f07a0
|
|
/* 028F07A0 */ cpu->r[7] = 0x10140000u;
|
|
/* 028F07A4 */ cpu->r[7] = cpu->r[7] + 0xFFFFCCA0u;
|
|
/* 028F07A8 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028F07AC */ _t6 = cpu->r[30] + 0x00000018u;
|
|
/* 028F07AC */ rbrew_write32(cpu->mem, _t6, cpu->r[7]);
|
|
/* 028F07B0 */ _t7 = cpu->r[12] + 0x0000726Cu;
|
|
/* 028F07B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F07B0 */ cpu->r[12] = _t7;
|
|
/* 028F07B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F07B8 */ cpu->r[8] = 0x00000000u;
|
|
/* 028F07BC */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F07BC */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F07BC */ if (_t9) goto L_028F07C0; else goto L_028F0814;
|
|
L_028F07C0: ; // 0x28f07c0
|
|
/* 028F07C0 */ cpu->r[7] = 0x00000000u;
|
|
/* 028F07C4 */ cpu->ctr = cpu->r[0];
|
|
/* 028F07C8 */ cpu->r[10] = cpu->r[7];
|
|
L_028F07CC: ; // 0x28f07cc
|
|
/* 028F07CC */ _t10 = cpu->r[12] + 0x00000000u;
|
|
/* 028F07CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F07D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[0]);
|
|
/* 028F07D4 */ _t11 = cpu->r[12] + 0x00000004u;
|
|
/* 028F07D4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F07D8 */ _t12 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F07D8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F07D8 */ if (_t13) goto L_028F07DC; else goto L_028F07EC;
|
|
L_028F07DC: ; // 0x28f07dc
|
|
/* 028F07DC */ _t14 = cpu->r[11] + cpu->r[7];
|
|
/* 028F07DC */ cpu->r[9] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F07E0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[30]);
|
|
/* 028F07E4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F07E4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F07E4 */ if (_t16) goto L_028F07E8; else goto L_028F0808;
|
|
L_028F07E8: ; // 0x28f07e8
|
|
/* 028F07E8 */ goto L_028F07F8;
|
|
L_028F07EC: ; // 0x28f07ec
|
|
/* 028F07EC */ _t17 = cpu->r[11] + 0x00000000u;
|
|
/* 028F07EC */ cpu->r[9] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F07F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[30]);
|
|
/* 028F07F4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F07F4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F07F4 */ if (_t19) goto L_028F07F8; else goto L_028F0808;
|
|
L_028F07F8: ; // 0x28f07f8
|
|
/* 028F07F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[0]);
|
|
/* 028F07FC */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F07FC */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F07FC */ if (_t21) goto L_028F0800; else goto L_028F0804;
|
|
L_028F0800: ; // 0x28f0800
|
|
/* 028F0800 */ cpu->r[11] = cpu->r[11] + cpu->r[7];
|
|
L_028F0804: ; // 0x28f0804
|
|
/* 028F0804 */ _t22 = cpu->r[11] + 0x00000000u;
|
|
/* 028F0804 */ rbrew_write32(cpu->mem, _t22, cpu->r[10]);
|
|
L_028F0808: ; // 0x28f0808
|
|
/* 028F0808 */ cpu->r[7] = cpu->r[7] + 0x00000004u;
|
|
/* 028F080C */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 028F0810 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F0810 */ _t23 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F0810 */ _t24 = _t23 >> (0x00000002u & 31u);
|
|
/* 028F0810 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F0810 */ if (_t25) goto L_028F07CC; else goto L_028F0814;
|
|
L_028F0814: ; // 0x28f0814
|
|
/* 028F0814 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F0818 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F081C */ Gambit_fn_0281BACC(cpu);
|
|
/* 028F0820 */ cpu->r[8] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F0820 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F0824 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0824 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028F0824 */ if (_t27) goto L_028F0830; else goto L_028F0828;
|
|
L_028F0828: ; // 0x28f0828
|
|
/* 028F0828 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F082C */ Gambit_fn_02801BB0(cpu);
|
|
L_028F0830: ; // 0x28f0830
|
|
/* 028F0830 */ _t28 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0830 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F0834 */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 028F0834 */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F0838 */ cpu->lr = cpu->r[0];
|
|
/* 028F083C */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F083C */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F0840 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F0844 */ return;
|
|
}
|
|
|
|
// fn_028F0784 @ 0x28f0784
|
|
void Gambit_fn_028F0784(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _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_028F0784: ; // 0x28f0784
|
|
/* 028F0784 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F0784 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F0784 */ cpu->r[1] = _t0;
|
|
/* 028F0788 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0788 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F078C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F078C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F0790 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F0790 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F0794 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F0798 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0798 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F079C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F079C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F079C */ if (_t5) goto L_028F0830; else goto L_028F07A0;
|
|
L_028F07A0: ; // 0x28f07a0
|
|
/* 028F07A0 */ cpu->r[7] = 0x10140000u;
|
|
/* 028F07A4 */ cpu->r[7] = cpu->r[7] + 0xFFFFCCA0u;
|
|
/* 028F07A8 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028F07AC */ _t6 = cpu->r[30] + 0x00000018u;
|
|
/* 028F07AC */ rbrew_write32(cpu->mem, _t6, cpu->r[7]);
|
|
/* 028F07B0 */ _t7 = cpu->r[12] + 0x0000726Cu;
|
|
/* 028F07B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F07B0 */ cpu->r[12] = _t7;
|
|
/* 028F07B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F07B8 */ cpu->r[8] = 0x00000000u;
|
|
/* 028F07BC */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F07BC */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F07BC */ if (_t9) goto L_028F07C0; else goto L_028F0814;
|
|
L_028F07C0: ; // 0x28f07c0
|
|
/* 028F07C0 */ cpu->r[7] = 0x00000000u;
|
|
/* 028F07C4 */ cpu->ctr = cpu->r[0];
|
|
/* 028F07C8 */ cpu->r[10] = cpu->r[7];
|
|
L_028F07CC: ; // 0x28f07cc
|
|
/* 028F07CC */ _t10 = cpu->r[12] + 0x00000000u;
|
|
/* 028F07CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F07D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[0]);
|
|
/* 028F07D4 */ _t11 = cpu->r[12] + 0x00000004u;
|
|
/* 028F07D4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F07D8 */ _t12 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F07D8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F07D8 */ if (_t13) goto L_028F07DC; else goto L_028F07EC;
|
|
L_028F07DC: ; // 0x28f07dc
|
|
/* 028F07DC */ _t14 = cpu->r[11] + cpu->r[7];
|
|
/* 028F07DC */ cpu->r[9] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F07E0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[30]);
|
|
/* 028F07E4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F07E4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F07E4 */ if (_t16) goto L_028F07E8; else goto L_028F0808;
|
|
L_028F07E8: ; // 0x28f07e8
|
|
/* 028F07E8 */ goto L_028F07F8;
|
|
L_028F07EC: ; // 0x28f07ec
|
|
/* 028F07EC */ _t17 = cpu->r[11] + 0x00000000u;
|
|
/* 028F07EC */ cpu->r[9] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F07F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[30]);
|
|
/* 028F07F4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F07F4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F07F4 */ if (_t19) goto L_028F07F8; else goto L_028F0808;
|
|
L_028F07F8: ; // 0x28f07f8
|
|
/* 028F07F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[0]);
|
|
/* 028F07FC */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F07FC */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F07FC */ if (_t21) goto L_028F0800; else goto L_028F0804;
|
|
L_028F0800: ; // 0x28f0800
|
|
/* 028F0800 */ cpu->r[11] = cpu->r[11] + cpu->r[7];
|
|
L_028F0804: ; // 0x28f0804
|
|
/* 028F0804 */ _t22 = cpu->r[11] + 0x00000000u;
|
|
/* 028F0804 */ rbrew_write32(cpu->mem, _t22, cpu->r[10]);
|
|
L_028F0808: ; // 0x28f0808
|
|
/* 028F0808 */ cpu->r[7] = cpu->r[7] + 0x00000004u;
|
|
/* 028F080C */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 028F0810 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F0810 */ _t23 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F0810 */ _t24 = _t23 >> (0x00000002u & 31u);
|
|
/* 028F0810 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F0810 */ if (_t25) goto L_028F07CC; else goto L_028F0814;
|
|
L_028F0814: ; // 0x28f0814
|
|
/* 028F0814 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F0818 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F081C */ Gambit_fn_0281BACC(cpu);
|
|
/* 028F0820 */ cpu->r[8] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F0820 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F0824 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0824 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028F0824 */ if (_t27) goto L_028F0830; else goto L_028F0828;
|
|
L_028F0828: ; // 0x28f0828
|
|
/* 028F0828 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F082C */ Gambit_fn_02801BB0(cpu);
|
|
L_028F0830: ; // 0x28f0830
|
|
/* 028F0830 */ _t28 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0830 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F0834 */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 028F0834 */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F0838 */ cpu->lr = cpu->r[0];
|
|
/* 028F083C */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F083C */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F0840 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F0844 */ return;
|
|
}
|
|
|
|
// fn_028F0848 @ 0x28f0848
|
|
void Gambit_fn_028F0848(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71;
|
|
|
|
L_028F0848: ; // 0x28f0848
|
|
/* 028F0848 */ _t0 = cpu->r[1] + 0xFFFFFEC8u;
|
|
/* 028F0848 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F0848 */ cpu->r[1] = _t0;
|
|
/* 028F084C */ /* nop */
|
|
/* 028F0850 */ cpu->r[0] = cpu->lr;
|
|
/* 028F0854 */ _t1 = cpu->r[1] + 0x0000013Cu;
|
|
/* 028F0854 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F0858 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F085C */ cpu->r[8] = 0x101D0000u;
|
|
/* 028F0860 */ _t2 = cpu->r[8] + 0xFFFFDD90u;
|
|
/* 028F0860 */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F0860 */ cpu->r[8] = _t2;
|
|
/* 028F0864 */ cpu->r[4] = 0x101D0000u;
|
|
/* 028F0868 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F086C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F0870 */ cpu->r[4] = cpu->r[4] + 0x00001424u;
|
|
/* 028F0874 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0874 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F0874 */ if (_t4) goto L_028F0878; else goto L_028F088C;
|
|
L_028F0878: ; // 0x28f0878
|
|
/* 028F0878 */ cpu->r[11] = 0x10140000u;
|
|
/* 028F087C */ cpu->r[10] = 0x00000001u;
|
|
/* 028F0880 */ cpu->r[11] = cpu->r[11] + 0xFFFFCC80u;
|
|
/* 028F0884 */ _t5 = cpu->r[8] + 0x00000000u;
|
|
/* 028F0884 */ rbrew_write32(cpu->mem, _t5, cpu->r[10]);
|
|
/* 028F0888 */ _t6 = cpu->r[4] + 0x00000000u;
|
|
/* 028F0888 */ rbrew_write32(cpu->mem, _t6, cpu->r[11]);
|
|
L_028F088C: ; // 0x28f088c
|
|
/* 028F088C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F0890 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0890 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F0890 */ if (_t8) goto L_028F08B0; else goto L_028F0894;
|
|
L_028F0894: ; // 0x28f0894
|
|
/* 028F0894 */ _t9 = cpu->r[31] + 0x00000008u;
|
|
/* 028F0894 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F0898 */ _t10 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028F0898 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F089C */ cpu->ctr = cpu->r[0];
|
|
/* 028F08A0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F08A4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F08A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F08AC */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F08AC */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F08AC */ if (_t12) goto L_028F08B0; else goto L_028F08B4;
|
|
L_028F08B0: ; // 0x28f08b0
|
|
/* 028F08B0 */ cpu->r[31] = 0x00000000u;
|
|
L_028F08B4: ; // 0x28f08b4
|
|
/* 028F08B4 */ _t13 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F08B4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F08B8 */ cpu->r[29] = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F08BC */ Gambit_fn_028F1A48(cpu);
|
|
/* 028F08C0 */ _t14 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F08C0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F08C4 */ Gambit_fn_028F714C(cpu);
|
|
/* 028F08C8 */ _t15 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F08C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F08CC */ cpu->r[31] = 0x00000004u;
|
|
/* 028F08D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F08D4 */ _t16 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F08D4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F08D8 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F08D8 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F08D8 */ if (_t18) goto L_028F08DC; else goto L_028F08E0;
|
|
L_028F08DC: ; // 0x28f08dc
|
|
/* 028F08DC */ cpu->r[31] = 0x00000001u;
|
|
L_028F08E0: ; // 0x28f08e0
|
|
/* 028F08E0 */ cpu->r[5] = 0x43300000u;
|
|
/* 028F08E4 */ cpu->r[10] = 0x10140000u;
|
|
/* 028F08E8 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028F08E8 */ rbrew_write32(cpu->mem, _t19, cpu->r[5]);
|
|
/* 028F08EC */ _t20 = cpu->r[12] + 0x000000A4u;
|
|
/* 028F08EC */ cpu->r[26] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F08F0 */ cpu->r[5] = 0x10140000u;
|
|
/* 028F08F4 */ _t21 = cpu->r[10] + 0xFFFFCC94u;
|
|
/* 028F08F4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028F08F8 */ cpu->r[0] = cpu->r[26] ^ 0x80000000u;
|
|
/* 028F08FC */ _t22 = cpu->r[12] + 0x000000A8u;
|
|
/* 028F08FC */ cpu->r[27] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F0900 */ cpu->f[2] = cpu->f[1];
|
|
/* 028F0904 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0904 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028F0908 */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 028F0908 */ cpu->f[10] = rbrew_read_f64(cpu->mem, _t24);
|
|
/* 028F090C */ cpu->r[7] = cpu->r[27] ^ 0x80000000u;
|
|
/* 028F0910 */ _t25 = cpu->r[5] + 0xFFFFCC98u;
|
|
/* 028F0910 */ cpu->f[0] = rbrew_read_f64(cpu->mem, _t25);
|
|
/* 028F0914 */ cpu->f[5] = cpu->f[1];
|
|
/* 028F0918 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0918 */ rbrew_write32(cpu->mem, _t26, cpu->r[7]);
|
|
/* 028F091C */ _t27 = cpu->r[1] + 0x00000008u;
|
|
/* 028F091C */ cpu->f[11] = rbrew_read_f64(cpu->mem, _t27);
|
|
/* 028F0920 */ cpu->f[12] = cpu->f[10] - cpu->f[0];
|
|
/* 028F0924 */ cpu->f[13] = cpu->f[11] - cpu->f[0];
|
|
/* 028F0928 */ cpu->f[3] = (double)(float)cpu->f[12];
|
|
/* 028F092C */ cpu->r[7] = 0x10140000u;
|
|
/* 028F0930 */ cpu->f[4] = (double)(float)cpu->f[13];
|
|
/* 028F0934 */ _t28 = cpu->r[7] + 0xFFFFCC90u;
|
|
/* 028F0934 */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 028F0938 */ cpu->r[28] = cpu->r[12] + 0x000000A0u;
|
|
/* 028F093C */ rbrew_dispatch(cpu, 0x02d062b8u);
|
|
/* 028F0940 */ cpu->r[3] = 0x00000000u;
|
|
/* 028F0944 */ cpu->r[6] = cpu->r[27];
|
|
/* 028F0948 */ cpu->r[5] = cpu->r[26];
|
|
/* 028F094C */ cpu->r[4] = cpu->r[3];
|
|
/* 028F0950 */ rbrew_dispatch(cpu, 0x02d061c8u);
|
|
/* 028F0954 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000001u);
|
|
/* 028F0958 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0958 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F0958 */ if (_t30) goto L_028F095C; else goto L_028F0A40;
|
|
L_028F095C: ; // 0x28f095c
|
|
/* 028F095C */ _t31 = cpu->r[28] + 0x00000014u;
|
|
/* 028F095C */ cpu->r[11] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F0960 */ cpu->r[0] = 0x00000001u;
|
|
/* 028F0964 */ _t32 = cpu->r[28] + 0x00000018u;
|
|
/* 028F0964 */ cpu->r[30] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F0968 */ cpu->r[9] = 0x00000000u;
|
|
/* 028F096C */ _t33 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F096C */ rbrew_write32(cpu->mem, _t33, cpu->r[0]);
|
|
/* 028F0970 */ cpu->r[12] = 0x80000000u;
|
|
/* 028F0974 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0974 */ rbrew_write32(cpu->mem, _t34, cpu->r[26]);
|
|
/* 028F0978 */ cpu->r[12] = cpu->r[12] + 0x00000003u;
|
|
/* 028F097C */ _t35 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F097C */ rbrew_write32(cpu->mem, _t35, cpu->r[9]);
|
|
/* 028F0980 */ _t36 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F0980 */ rbrew_write32(cpu->mem, _t36, cpu->r[12]);
|
|
/* 028F0984 */ _t37 = cpu->r[1] + 0x00000040u;
|
|
/* 028F0984 */ rbrew_write32(cpu->mem, _t37, cpu->r[9]);
|
|
/* 028F0988 */ _t38 = cpu->r[1] + 0x00000024u;
|
|
/* 028F0988 */ rbrew_write32(cpu->mem, _t38, cpu->r[11]);
|
|
/* 028F098C */ _t39 = cpu->r[1] + 0x00000084u;
|
|
/* 028F098C */ rbrew_write32(cpu->mem, _t39, cpu->r[9]);
|
|
/* 028F0990 */ _t40 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028F0990 */ rbrew_write32(cpu->mem, _t40, cpu->r[0]);
|
|
/* 028F0994 */ _t41 = cpu->r[1] + 0x00000088u;
|
|
/* 028F0994 */ rbrew_write32(cpu->mem, _t41, cpu->r[9]);
|
|
/* 028F0998 */ _t42 = cpu->r[1] + 0x00000020u;
|
|
/* 028F0998 */ rbrew_write32(cpu->mem, _t42, cpu->r[0]);
|
|
/* 028F099C */ _t43 = cpu->r[1] + 0x00000018u;
|
|
/* 028F099C */ rbrew_write32(cpu->mem, _t43, cpu->r[27]);
|
|
/* 028F09A0 */ _t44 = cpu->r[1] + 0x00000028u;
|
|
/* 028F09A0 */ rbrew_write32(cpu->mem, _t44, cpu->r[30]);
|
|
/* 028F09A4 */ _t45 = cpu->r[1] + 0x00000044u;
|
|
/* 028F09A4 */ rbrew_write32(cpu->mem, _t45, cpu->r[9]);
|
|
/* 028F09A8 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F09AC */ _t46 = cpu->r[1] + 0x00000010u;
|
|
/* 028F09AC */ rbrew_write32(cpu->mem, _t46, cpu->r[0]);
|
|
/* 028F09B0 */ rbrew_dispatch(cpu, 0x02d05878u);
|
|
/* 028F09B4 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F09B8 */ rbrew_dispatch(cpu, 0x02d05ba8u);
|
|
/* 028F09BC */ _t47 = cpu->r[1] + 0x00000028u;
|
|
/* 028F09BC */ cpu->r[8] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F09C0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[30]);
|
|
/* 028F09C4 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F09C4 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F09C4 */ if (_t49) goto L_028F0A08; else goto L_028F09C8;
|
|
L_028F09C8: ; // 0x28f09c8
|
|
/* 028F09C8 */ cpu->r[11] = 0x0000001Du;
|
|
/* 028F09CC */ cpu->r[9] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F09D0 */ cpu->ctr = cpu->r[11];
|
|
/* 028F09D4 */ cpu->r[10] = cpu->r[1] + 0x000000A8u;
|
|
L_028F09D8: ; // 0x28f09d8
|
|
/* 028F09D8 */ _t50 = cpu->r[9] + 0x00000004u;
|
|
/* 028F09D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F09D8 */ cpu->r[9] = _t50;
|
|
/* 028F09DC */ _t51 = cpu->r[10] + 0x00000004u;
|
|
/* 028F09DC */ rbrew_write32(cpu->mem, _t51, cpu->r[12]);
|
|
/* 028F09DC */ cpu->r[10] = _t51;
|
|
/* 028F09E0 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F09E0 */ _t52 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F09E0 */ _t53 = _t52 >> (0x00000002u & 31u);
|
|
/* 028F09E0 */ _t54 = _t53 & 0x00000001u;
|
|
/* 028F09E0 */ if (_t54) goto L_028F09D8; else goto L_028F09E4;
|
|
L_028F09E4: ; // 0x28f09e4
|
|
/* 028F09E4 */ _t55 = cpu->r[1] + 0x000000C4u;
|
|
/* 028F09E4 */ rbrew_write32(cpu->mem, _t55, cpu->r[30]);
|
|
/* 028F09E8 */ cpu->r[0] = 0x00000003u;
|
|
/* 028F09EC */ cpu->r[3] = cpu->r[1] + 0x000000ACu;
|
|
/* 028F09F0 */ _t56 = cpu->r[1] + 0x000000C8u;
|
|
/* 028F09F0 */ rbrew_write32(cpu->mem, _t56, cpu->r[0]);
|
|
/* 028F09F4 */ rbrew_dispatch(cpu, 0x02d05878u);
|
|
/* 028F09F8 */ _t57 = cpu->r[1] + 0x000000CCu;
|
|
/* 028F09F8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028F09FC */ _t58 = cpu->r[1] + 0x000000E4u;
|
|
/* 028F09FC */ cpu->r[6] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028F0A00 */ _t59 = cpu->r[1] + 0x00000030u;
|
|
/* 028F0A00 */ rbrew_write32(cpu->mem, _t59, cpu->r[5]);
|
|
/* 028F0A04 */ _t60 = cpu->r[1] + 0x00000048u;
|
|
/* 028F0A04 */ rbrew_write32(cpu->mem, _t60, cpu->r[6]);
|
|
L_028F0A08: ; // 0x28f0a08
|
|
/* 028F0A08 */ _t61 = cpu->r[28] + 0x00000024u;
|
|
/* 028F0A08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028F0A0C */ _t62 = cpu->r[1] + 0x00000034u;
|
|
/* 028F0A0C */ rbrew_write32(cpu->mem, _t62, cpu->r[0]);
|
|
/* 028F0A10 */ _t63 = cpu->r[29] + 0x00000000u;
|
|
/* 028F0A10 */ cpu->r[9] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028F0A14 */ _t64 = cpu->r[9] + 0x00000120u;
|
|
/* 028F0A14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028F0A18 */ _t65 = cpu->r[1] + 0x00000090u;
|
|
/* 028F0A18 */ rbrew_write32(cpu->mem, _t65, cpu->r[0]);
|
|
/* 028F0A1C */ _t66 = cpu->r[28] + 0x00000030u;
|
|
/* 028F0A1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028F0A20 */ cpu->r[4] = cpu->r[31];
|
|
/* 028F0A24 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F0A28 */ _t67 = cpu->r[1] + 0x00000040u;
|
|
/* 028F0A28 */ rbrew_write32(cpu->mem, _t67, cpu->r[0]);
|
|
/* 028F0A2C */ rbrew_dispatch(cpu, 0x02d058b8u);
|
|
/* 028F0A30 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F0A34 */ _t68 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F0A34 */ cpu->r[3] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028F0A38 */ Gambit_fn_02906024(cpu);
|
|
/* 028F0A3C */ goto L_028F0A5C;
|
|
L_028F0A40: ; // 0x28f0a40
|
|
/* 028F0A40 */ _t69 = cpu->r[29] + 0x00000000u;
|
|
/* 028F0A40 */ cpu->r[6] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028F0A44 */ cpu->r[4] = cpu->r[31];
|
|
/* 028F0A48 */ cpu->r[3] = cpu->r[6] + 0x000000A0u;
|
|
/* 028F0A4C */ rbrew_dispatch(cpu, 0x02d058b8u);
|
|
/* 028F0A50 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F0A54 */ _t70 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F0A54 */ cpu->r[3] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028F0A58 */ Gambit_fn_02906024(cpu);
|
|
L_028F0A5C: ; // 0x28f0a5c
|
|
/* 028F0A5C */ /* nop */
|
|
/* 028F0A60 */ _t71 = cpu->r[1] + 0x0000013Cu;
|
|
/* 028F0A60 */ cpu->r[0] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028F0A64 */ cpu->lr = cpu->r[0];
|
|
/* 028F0A68 */ cpu->r[1] = cpu->r[1] + 0x00000138u;
|
|
/* 028F0A6C */ return;
|
|
}
|
|
|
|
// fn_028F0A70 @ 0x28f0a70
|
|
void Gambit_fn_028F0A70(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64;
|
|
|
|
L_028F0A70: ; // 0x28f0a70
|
|
/* 028F0A70 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028F0A70 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F0A70 */ cpu->r[1] = _t0;
|
|
/* 028F0A74 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028F0A74 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028F0A78 */ cpu->r[0] = cpu->lr;
|
|
/* 028F0A7C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0A7C */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028F0A80 */ /* nop */
|
|
/* 028F0A84 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028F0A84 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028F0A88 */ _t4 = cpu->r[1] + 0x00000020u;
|
|
/* 028F0A88 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028F0A8C */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0A8C */ rbrew_write32(cpu->mem, _t5, cpu->r[31]);
|
|
/* 028F0A90 */ cpu->r[28] = cpu->r[3];
|
|
/* 028F0A94 */ _t6 = cpu->r[1] + 0x00000010u;
|
|
/* 028F0A94 */ rbrew_write32(cpu->mem, _t6, cpu->r[30]);
|
|
/* 028F0A98 */ cpu->f[31] = cpu->f[1];
|
|
/* 028F0A9C */ cpu->r[31] = cpu->r[7];
|
|
/* 028F0AA0 */ _t7 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F0AA0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028F0AA4 */ cpu->r[29] = cpu->r[5];
|
|
/* 028F0AA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F0AA8 */ cpu->r[30] = cpu->r[6];
|
|
/* 028F0AAC */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0AAC */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F0AAC */ if (_t9) goto L_028F0C2C; else goto L_028F0AB0;
|
|
L_028F0AB0: ; // 0x28f0ab0
|
|
/* 028F0AB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F0AB4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0AB4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F0AB4 */ if (_t11) goto L_028F0AB8; else goto L_028F0BE8;
|
|
L_028F0AB8: ; // 0x28f0ab8
|
|
/* 028F0AB8 */ _t12 = cpu->r[28] + 0x0000003Cu;
|
|
/* 028F0AB8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F0ABC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F0AC0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0AC0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F0AC0 */ if (_t14) goto L_028F0AD4; else goto L_028F0AC4;
|
|
L_028F0AC4: ; // 0x28f0ac4
|
|
/* 028F0AC4 */ cpu->f[1] = cpu->f[31];
|
|
/* 028F0AC8 */ cpu->r[3] = cpu->r[8] + 0x0000009Cu;
|
|
/* 028F0ACC */ cpu->r[4] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F0AD0 */ rbrew_dispatch(cpu, 0x02d05fe0u);
|
|
L_028F0AD4: ; // 0x28f0ad4
|
|
/* 028F0AD4 */ cpu->r[11] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F0AD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028F0AD8 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0AD8 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F0AD8 */ if (_t16) goto L_028F0B8C; else goto L_028F0ADC;
|
|
L_028F0ADC: ; // 0x28f0adc
|
|
/* 028F0ADC */ _t17 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028F0ADC */ cpu->r[9] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F0AE0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Du, 0x0000001Eu);
|
|
/* 028F0AE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F0AE4 */ cpu->r[3] = cpu->r[9] + 0x000000A0u;
|
|
/* 028F0AE8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0AE8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F0AE8 */ if (_t19) goto L_028F0AEC; else goto L_028F0B10;
|
|
L_028F0AEC: ; // 0x28f0aec
|
|
/* 028F0AEC */ _t20 = cpu->r[30] + 0x00000008u;
|
|
/* 028F0AEC */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028F0AF0 */ _t21 = cpu->r[30] + 0x00000004u;
|
|
/* 028F0AF0 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028F0AF4 */ _t22 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F0AF4 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028F0AF8 */ _t23 = cpu->r[30] + 0x00000000u;
|
|
/* 028F0AF8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 028F0AFC */ rbrew_dispatch(cpu, 0x02d058a0u);
|
|
/* 028F0B00 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F0B04 */ _t24 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F0B04 */ cpu->r[3] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F0B08 */ Gambit_fn_02906024(cpu);
|
|
/* 028F0B0C */ goto L_028F0C2C;
|
|
L_028F0B10: ; // 0x28f0b10
|
|
/* 028F0B10 */ _t25 = cpu->r[28] + 0x0000003Cu;
|
|
/* 028F0B10 */ cpu->r[10] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F0B14 */ cpu->r[7] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Eu, 0x0000001Eu);
|
|
/* 028F0B14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F0B18 */ _t26 = cpu->r[30] + 0x00000008u;
|
|
/* 028F0B18 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028F0B1C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0B1C */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F0B1C */ if (_t28) goto L_028F0B20; else goto L_028F0B50;
|
|
L_028F0B20: ; // 0x28f0b20
|
|
/* 028F0B20 */ _t29 = cpu->r[30] + 0x00000000u;
|
|
/* 028F0B20 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t29);
|
|
/* 028F0B24 */ cpu->r[4] = cpu->r[10] + 0x0000009Cu;
|
|
/* 028F0B28 */ _t30 = cpu->r[30] + 0x00000004u;
|
|
/* 028F0B28 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 028F0B2C */ cpu->f[5] = cpu->f[31];
|
|
/* 028F0B30 */ _t31 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F0B30 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 028F0B34 */ cpu->r[6] = 0x00000002u;
|
|
/* 028F0B38 */ cpu->r[5] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F0B3C */ rbrew_dispatch(cpu, 0x02d05898u);
|
|
/* 028F0B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F0B44 */ _t32 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F0B44 */ cpu->r[3] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F0B48 */ Gambit_fn_02906024(cpu);
|
|
/* 028F0B4C */ goto L_028F0C2C;
|
|
L_028F0B50: ; // 0x28f0b50
|
|
/* 028F0B50 */ cpu->r[8] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Du, 0x0000001Du);
|
|
/* 028F0B50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F0B54 */ cpu->r[6] = 0x00000003u;
|
|
/* 028F0B58 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0B58 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F0B58 */ if (_t34) goto L_028F0B5C; else goto L_028F0B60;
|
|
L_028F0B5C: ; // 0x28f0b5c
|
|
/* 028F0B5C */ cpu->r[6] = 0x00000001u;
|
|
L_028F0B60: ; // 0x28f0b60
|
|
/* 028F0B60 */ _t35 = cpu->r[30] + 0x00000000u;
|
|
/* 028F0B60 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 028F0B64 */ cpu->r[4] = cpu->r[10] + 0x0000009Cu;
|
|
/* 028F0B68 */ _t36 = cpu->r[30] + 0x00000004u;
|
|
/* 028F0B68 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t36);
|
|
/* 028F0B6C */ cpu->f[5] = cpu->f[31];
|
|
/* 028F0B70 */ _t37 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F0B70 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028F0B74 */ cpu->r[5] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F0B78 */ rbrew_dispatch(cpu, 0x02d05898u);
|
|
/* 028F0B7C */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F0B80 */ _t38 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F0B80 */ cpu->r[3] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F0B84 */ Gambit_fn_02906024(cpu);
|
|
/* 028F0B88 */ goto L_028F0C2C;
|
|
L_028F0B8C: ; // 0x28f0b8c
|
|
/* 028F0B8C */ _t39 = cpu->r[28] + 0x0000003Cu;
|
|
/* 028F0B8C */ cpu->r[7] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F0B90 */ cpu->r[12] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Eu, 0x0000001Eu);
|
|
/* 028F0B90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F0B94 */ cpu->r[3] = cpu->r[7] + 0x0000009Cu;
|
|
/* 028F0B98 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0B98 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028F0B98 */ if (_t41) goto L_028F0B9C; else goto L_028F0BBC;
|
|
L_028F0B9C: ; // 0x28f0b9c
|
|
/* 028F0B9C */ cpu->f[1] = cpu->f[31];
|
|
/* 028F0BA0 */ cpu->r[5] = 0x00000002u;
|
|
/* 028F0BA4 */ cpu->r[4] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F0BA8 */ rbrew_dispatch(cpu, 0x02d058a8u);
|
|
/* 028F0BAC */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F0BB0 */ _t42 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F0BB0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F0BB4 */ Gambit_fn_02906024(cpu);
|
|
/* 028F0BB8 */ goto L_028F0C2C;
|
|
L_028F0BBC: ; // 0x28f0bbc
|
|
/* 028F0BBC */ cpu->r[0] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Du, 0x0000001Du);
|
|
/* 028F0BBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F0BC0 */ cpu->r[5] = 0x00000003u;
|
|
/* 028F0BC4 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0BC4 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F0BC4 */ if (_t44) goto L_028F0BC8; else goto L_028F0BCC;
|
|
L_028F0BC8: ; // 0x28f0bc8
|
|
/* 028F0BC8 */ cpu->r[5] = 0x00000001u;
|
|
L_028F0BCC: ; // 0x28f0bcc
|
|
/* 028F0BCC */ cpu->f[1] = cpu->f[31];
|
|
/* 028F0BD0 */ cpu->r[4] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F0BD4 */ rbrew_dispatch(cpu, 0x02d058a8u);
|
|
/* 028F0BD8 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F0BDC */ _t45 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F0BDC */ cpu->r[3] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F0BE0 */ Gambit_fn_02906024(cpu);
|
|
/* 028F0BE4 */ goto L_028F0C2C;
|
|
L_028F0BE8: ; // 0x28f0be8
|
|
/* 028F0BE8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F0BE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F0BEC */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0BEC */ _t47 = _t46 & 0x00000001u;
|
|
/* 028F0BEC */ if (_t47) goto L_028F0C20; else goto L_028F0BF0;
|
|
L_028F0BF0: ; // 0x28f0bf0
|
|
/* 028F0BF0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000008u);
|
|
/* 028F0BF4 */ cpu->r[12] = cpu->r[28] + 0x0000001Cu;
|
|
/* 028F0BF8 */ _t48 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F0BF8 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F0BF8 */ if (_t49) goto L_028F0BFC; else goto L_028F0C04;
|
|
L_028F0BFC: ; // 0x28f0bfc
|
|
/* 028F0BFC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F0C00 */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
L_028F0C04: ; // 0x28f0c04
|
|
/* 028F0C04 */ _t50 = cpu->r[12] + 0x00000000u;
|
|
/* 028F0C04 */ cpu->r[10] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F0C08 */ _t51 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F0C08 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t51);
|
|
/* 028F0C0C */ cpu->r[3] = cpu->r[10] + 0x000000A0u;
|
|
/* 028F0C10 */ _t52 = cpu->r[30] + 0x00000008u;
|
|
/* 028F0C10 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028F0C14 */ _t53 = cpu->r[30] + 0x00000004u;
|
|
/* 028F0C14 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t53);
|
|
/* 028F0C18 */ _t54 = cpu->r[30] + 0x00000000u;
|
|
/* 028F0C18 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t54);
|
|
/* 028F0C1C */ rbrew_dispatch(cpu, 0x02d058a0u);
|
|
L_028F0C20: ; // 0x28f0c20
|
|
/* 028F0C20 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F0C24 */ _t55 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F0C24 */ cpu->r[3] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028F0C28 */ Gambit_fn_02906024(cpu);
|
|
L_028F0C2C: ; // 0x28f0c2c
|
|
/* 028F0C2C */ _t56 = cpu->r[1] + 0x00000008u;
|
|
/* 028F0C2C */ cpu->r[28] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028F0C30 */ _t57 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0C30 */ cpu->r[29] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028F0C34 */ _t58 = cpu->r[1] + 0x00000020u;
|
|
/* 028F0C34 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t58);
|
|
/* 028F0C38 */ _t59 = cpu->r[1] + 0x00000010u;
|
|
/* 028F0C38 */ cpu->r[30] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028F0C3C */ _t60 = cpu->r[1] + 0x00000018u;
|
|
/* 028F0C3C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t60);
|
|
/* 028F0C40 */ _t61 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0C40 */ cpu->r[31] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028F0C44 */ _t62 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F0C44 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028F0C44 */ if (_t63) goto L_028F0C48; // else: addr-0 trap, fall-through
|
|
L_028F0C48: ; // 0x28f0c48
|
|
/* 028F0C48 */ _t64 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F0C48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028F0C4C */ cpu->lr = cpu->r[0];
|
|
/* 028F0C50 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028F0C54 */ return;
|
|
}
|
|
|
|
// fn_028F0C58 @ 0x28f0c58
|
|
void Gambit_fn_028F0C58(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F0C58: ; // 0x28f0c58
|
|
/* 028F0C58 */ _t0 = cpu->r[1] + 0xFFFFFF70u;
|
|
/* 028F0C58 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F0C58 */ cpu->r[1] = _t0;
|
|
/* 028F0C5C */ _t1 = cpu->r[1] + 0x00000060u;
|
|
/* 028F0C5C */ rbrew_write_f64(cpu->mem, _t1, cpu->f[29]);
|
|
/* 028F0C60 */ _t2 = cpu->r[1] + 0x00000040u;
|
|
/* 028F0C60 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[27]);
|
|
/* 028F0C64 */ cpu->r[0] = cpu->lr;
|
|
/* 028F0C68 */ _t3 = cpu->r[1] + 0x00000050u;
|
|
/* 028F0C68 */ rbrew_write_f64(cpu->mem, _t3, cpu->f[28]);
|
|
/* 028F0C6C */ /* nop */
|
|
/* 028F0C70 */ _t4 = cpu->r[1] + 0x00000080u;
|
|
/* 028F0C70 */ rbrew_write_f64(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028F0C74 */ _t5 = cpu->r[1] + 0x00000070u;
|
|
/* 028F0C74 */ rbrew_write_f64(cpu->mem, _t5, cpu->f[30]);
|
|
/* 028F0C78 */ /* nop */
|
|
/* 028F0C7C */ _t6 = cpu->r[1] + 0x00000048u;
|
|
/* 028F0C7C */ rbrew_write_f32(cpu->mem, _t6, cpu->f[27]);
|
|
/* 028F0C80 */ /* nop */
|
|
/* 028F0C84 */ _t7 = cpu->r[1] + 0x00000088u;
|
|
/* 028F0C84 */ rbrew_write_f32(cpu->mem, _t7, cpu->f[31]);
|
|
/* 028F0C88 */ /* nop */
|
|
/* 028F0C8C */ _t8 = cpu->r[1] + 0x00000078u;
|
|
/* 028F0C8C */ rbrew_write_f32(cpu->mem, _t8, cpu->f[30]);
|
|
/* 028F0C90 */ /* nop */
|
|
/* 028F0C94 */ _t9 = cpu->r[1] + 0x00000094u;
|
|
/* 028F0C94 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028F0C98 */ cpu->f[31] = cpu->f[1];
|
|
/* 028F0C9C */ _t10 = cpu->r[1] + 0x00000068u;
|
|
/* 028F0C9C */ rbrew_write_f32(cpu->mem, _t10, cpu->f[29]);
|
|
/* 028F0CA0 */ _t11 = cpu->r[1] + 0x00000058u;
|
|
/* 028F0CA0 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[28]);
|
|
/* 028F0CA4 */ /* nop */
|
|
/* 028F0CA8 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F0CAC */ cpu->r[31] = cpu->r[4];
|
|
/* 028F0CB0 */ cpu->r[26] = cpu->r[5];
|
|
/* 028F0CB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F0CB4 */ cpu->r[27] = cpu->r[6];
|
|
/* 028F0CB8 */ cpu->r[30] = cpu->r[7];
|
|
/* 028F0CBC */ cpu->r[28] = cpu->r[8];
|
|
/* 028F0CC0 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0CC0 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F0CC0 */ if (_t13) goto L_028F0CC4; else goto L_028F0D08;
|
|
L_028F0CC4: ; // 0x28f0cc4
|
|
/* 028F0CC4 */ /* nop */
|
|
/* 028F0CC8 */ _t14 = cpu->r[1] + 0x00000078u;
|
|
/* 028F0CC8 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028F0CCC */ _t15 = cpu->r[1] + 0x00000068u;
|
|
/* 028F0CCC */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028F0CD0 */ _t16 = cpu->r[1] + 0x00000070u;
|
|
/* 028F0CD0 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t16);
|
|
/* 028F0CD4 */ _t17 = cpu->r[1] + 0x00000088u;
|
|
/* 028F0CD4 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028F0CD8 */ _t18 = cpu->r[1] + 0x00000060u;
|
|
/* 028F0CD8 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t18);
|
|
/* 028F0CDC */ _t19 = cpu->r[1] + 0x00000080u;
|
|
/* 028F0CDC */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t19);
|
|
/* 028F0CE0 */ _t20 = cpu->r[1] + 0x00000048u;
|
|
/* 028F0CE0 */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028F0CE4 */ _t21 = cpu->r[1] + 0x00000058u;
|
|
/* 028F0CE4 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028F0CE8 */ _t22 = cpu->r[1] + 0x00000040u;
|
|
/* 028F0CE8 */ cpu->f[27] = rbrew_read_f64(cpu->mem, _t22);
|
|
/* 028F0CEC */ _t23 = cpu->r[1] + 0x00000050u;
|
|
/* 028F0CEC */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t23);
|
|
/* 028F0CF0 */ cpu->r[3] = 0x00000004u;
|
|
/* 028F0CF4 */ _t24 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F0CF4 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F0CF4 */ if (_t25) goto L_028F0CF8; // else: addr-0 trap, fall-through
|
|
L_028F0CF8: ; // 0x28f0cf8
|
|
/* 028F0CF8 */ _t26 = cpu->r[1] + 0x00000094u;
|
|
/* 028F0CF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F0CFC */ cpu->lr = cpu->r[0];
|
|
/* 028F0D00 */ cpu->r[1] = cpu->r[1] + 0x00000090u;
|
|
/* 028F0D04 */ return;
|
|
L_028F0D08: ; // 0x28f0d08
|
|
/* 028F0D08 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028F0D0C */ cpu->r[5] = cpu->r[29];
|
|
/* 028F0D10 */ cpu->r[3] = cpu->r[28];
|
|
/* 028F0D14 */ Gambit_fn_0281DA38(cpu);
|
|
/* 028F0D18 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028F0D1C */ cpu->r[5] = cpu->r[29];
|
|
/* 028F0D20 */ cpu->r[3] = cpu->r[28];
|
|
/* 028F0D24 */ Gambit_fn_0281DC48(cpu);
|
|
/* 028F0D28 */ _t27 = cpu->r[29] + 0x00000014u;
|
|
/* 028F0D28 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 028F0D2C */ _t28 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028F0D2C */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 028F0D30 */ cpu->f[0] = cpu->f[9] - cpu->f[10];
|
|
/* 028F0D34 */ _t29 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0D34 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t29);
|
|
/* 028F0D38 */ cpu->f[11] = cpu->f[0] - cpu->f[12];
|
|
/* 028F0D3C */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0D3C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 028F0D40 */ cpu->f[13] = cpu->f[11] - cpu->f[13];
|
|
/* 028F0D44 */ cpu->r[3] = 0x00000001u;
|
|
/* 028F0D48 */ _t31 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0D48 */ rbrew_write_f32(cpu->mem, _t31, cpu->f[13]);
|
|
/* 028F0D4C */ Gambit_fn_02C6AA28(cpu);
|
|
/* 028F0D50 */ cpu->r[8] = 0x10140000u;
|
|
/* 028F0D54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F0D58 */ _t32 = cpu->r[8] + 0xFFFFCC94u;
|
|
/* 028F0D58 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 028F0D5C */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0D5C */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F0D5C */ if (_t34) goto L_028F0D60; else goto L_028F0F88;
|
|
L_028F0D60: ; // 0x28f0d60
|
|
/* 028F0D60 */ cpu->r[9] = rbrew_rlwinm(cpu->r[26], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F0D60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F0D64 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0D64 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F0D64 */ if (_t36) goto L_028F0EB0; else goto L_028F0D68;
|
|
L_028F0D68: ; // 0x28f0d68
|
|
/* 028F0D68 */ _t37 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028F0D68 */ cpu->r[7] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F0D6C */ cpu->r[0] = rbrew_rlwinm(cpu->r[26], 0x00000000u, 0x0000001Du, 0x0000001Eu);
|
|
/* 028F0D6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F0D70 */ cpu->r[28] = cpu->r[7] + 0x000000A0u;
|
|
/* 028F0D74 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0D74 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028F0D74 */ if (_t39) goto L_028F0D78; else goto L_028F0DD4;
|
|
L_028F0D78: ; // 0x28f0d78
|
|
/* 028F0D78 */ _t40 = cpu->r[27] + 0x00000000u;
|
|
/* 028F0D78 */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 028F0D7C */ cpu->r[4] = cpu->r[28];
|
|
/* 028F0D80 */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028F0D84 */ _t41 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028F0D84 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 028F0D88 */ cpu->f[31] = cpu->f[0];
|
|
/* 028F0D8C */ cpu->r[6] = cpu->r[1] + 0x00000010u;
|
|
/* 028F0D90 */ _t42 = cpu->r[27] + 0x00000004u;
|
|
/* 028F0D90 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t42);
|
|
/* 028F0D94 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028F0D98 */ _t43 = cpu->r[27] + 0x00000008u;
|
|
/* 028F0D98 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t43);
|
|
/* 028F0D9C */ Gambit_fn_028F1708(cpu);
|
|
/* 028F0DA0 */ cpu->f[1] = cpu->f[27];
|
|
/* 028F0DA4 */ cpu->r[8] = cpu->r[3];
|
|
/* 028F0DA8 */ cpu->f[5] = cpu->f[31];
|
|
/* 028F0DAC */ cpu->r[5] = 0x00000000u;
|
|
/* 028F0DB0 */ cpu->f[3] = cpu->f[29];
|
|
/* 028F0DB4 */ cpu->r[6] = cpu->r[5];
|
|
/* 028F0DB8 */ cpu->f[4] = cpu->f[30];
|
|
/* 028F0DBC */ cpu->r[7] = cpu->r[6];
|
|
/* 028F0DC0 */ cpu->f[2] = cpu->f[28];
|
|
/* 028F0DC4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028F0DC8 */ cpu->r[4] = cpu->r[7];
|
|
/* 028F0DCC */ Gambit_fn_02C6A200(cpu);
|
|
/* 028F0DD0 */ goto L_028F1004;
|
|
L_028F0DD4: ; // 0x28f0dd4
|
|
/* 028F0DD4 */ cpu->r[6] = rbrew_rlwinm(cpu->r[26], 0x00000000u, 0x0000001Eu, 0x0000001Eu);
|
|
/* 028F0DD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F0DD8 */ _t44 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028F0DD8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028F0DDC */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0DDC */ _t46 = _t45 & 0x00000001u;
|
|
/* 028F0DDC */ if (_t46) goto L_028F0DE0; else goto L_028F0E40;
|
|
L_028F0DE0: ; // 0x28f0de0
|
|
/* 028F0DE0 */ _t47 = cpu->r[27] + 0x00000008u;
|
|
/* 028F0DE0 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 028F0DE4 */ cpu->r[29] = cpu->r[11] + 0x0000009Cu;
|
|
/* 028F0DE8 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F0DEC */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028F0DF0 */ _t48 = cpu->r[27] + 0x00000004u;
|
|
/* 028F0DF0 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t48);
|
|
/* 028F0DF4 */ cpu->r[6] = cpu->r[1] + 0x00000010u;
|
|
/* 028F0DF8 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028F0DFC */ _t49 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028F0DFC */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t49);
|
|
/* 028F0E00 */ cpu->r[30] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F0E04 */ _t50 = cpu->r[27] + 0x00000000u;
|
|
/* 028F0E04 */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t50);
|
|
/* 028F0E08 */ Gambit_fn_028F1708(cpu);
|
|
/* 028F0E0C */ cpu->f[2] = cpu->f[28];
|
|
/* 028F0E10 */ cpu->r[8] = cpu->r[3];
|
|
/* 028F0E14 */ cpu->f[5] = cpu->f[31];
|
|
/* 028F0E18 */ cpu->r[3] = cpu->r[28];
|
|
/* 028F0E1C */ cpu->f[1] = cpu->f[27];
|
|
/* 028F0E20 */ cpu->f[4] = cpu->f[30];
|
|
/* 028F0E24 */ cpu->r[4] = cpu->r[29];
|
|
/* 028F0E28 */ cpu->f[3] = cpu->f[29];
|
|
/* 028F0E2C */ cpu->r[5] = cpu->r[30];
|
|
/* 028F0E30 */ cpu->r[6] = 0x00000002u;
|
|
/* 028F0E34 */ cpu->r[7] = 0x00000000u;
|
|
/* 028F0E38 */ Gambit_fn_02C6A200(cpu);
|
|
/* 028F0E3C */ goto L_028F1004;
|
|
L_028F0E40: ; // 0x28f0e40
|
|
/* 028F0E40 */ cpu->r[0] = rbrew_rlwinm(cpu->r[26], 0x00000000u, 0x0000001Du, 0x0000001Du);
|
|
/* 028F0E40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F0E44 */ cpu->r[31] = 0x00000003u;
|
|
/* 028F0E48 */ _t51 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0E48 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028F0E48 */ if (_t52) goto L_028F0E4C; else goto L_028F0E50;
|
|
L_028F0E4C: ; // 0x28f0e4c
|
|
/* 028F0E4C */ cpu->r[31] = 0x00000001u;
|
|
L_028F0E50: ; // 0x28f0e50
|
|
/* 028F0E50 */ _t53 = cpu->r[27] + 0x00000008u;
|
|
/* 028F0E50 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t53);
|
|
/* 028F0E54 */ cpu->r[29] = cpu->r[11] + 0x0000009Cu;
|
|
/* 028F0E58 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F0E5C */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028F0E60 */ _t54 = cpu->r[27] + 0x00000004u;
|
|
/* 028F0E60 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t54);
|
|
/* 028F0E64 */ cpu->r[6] = cpu->r[1] + 0x00000010u;
|
|
/* 028F0E68 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028F0E6C */ _t55 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028F0E6C */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t55);
|
|
/* 028F0E70 */ cpu->r[30] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F0E74 */ _t56 = cpu->r[27] + 0x00000000u;
|
|
/* 028F0E74 */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 028F0E78 */ Gambit_fn_028F1708(cpu);
|
|
/* 028F0E7C */ cpu->f[2] = cpu->f[28];
|
|
/* 028F0E80 */ cpu->r[8] = cpu->r[3];
|
|
/* 028F0E84 */ cpu->f[5] = cpu->f[31];
|
|
/* 028F0E88 */ cpu->r[3] = cpu->r[28];
|
|
/* 028F0E8C */ cpu->f[1] = cpu->f[27];
|
|
/* 028F0E90 */ cpu->f[4] = cpu->f[30];
|
|
/* 028F0E94 */ cpu->r[4] = cpu->r[29];
|
|
/* 028F0E98 */ cpu->f[3] = cpu->f[29];
|
|
/* 028F0E9C */ cpu->r[5] = cpu->r[30];
|
|
/* 028F0EA0 */ cpu->r[6] = cpu->r[31];
|
|
/* 028F0EA4 */ cpu->r[7] = 0x00000000u;
|
|
/* 028F0EA8 */ Gambit_fn_02C6A200(cpu);
|
|
/* 028F0EAC */ goto L_028F1004;
|
|
L_028F0EB0: ; // 0x28f0eb0
|
|
/* 028F0EB0 */ _t57 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028F0EB0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028F0EB4 */ cpu->r[9] = rbrew_rlwinm(cpu->r[26], 0x00000000u, 0x0000001Eu, 0x0000001Eu);
|
|
/* 028F0EB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F0EB8 */ cpu->r[29] = cpu->r[7] + 0x0000009Cu;
|
|
/* 028F0EBC */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0EBC */ _t59 = _t58 & 0x00000001u;
|
|
/* 028F0EBC */ if (_t59) goto L_028F0EC0; else goto L_028F0F1C;
|
|
L_028F0EC0: ; // 0x28f0ec0
|
|
/* 028F0EC0 */ cpu->f[27] = cpu->f[0];
|
|
/* 028F0EC4 */ cpu->r[30] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F0EC8 */ cpu->f[28] = cpu->f[0];
|
|
/* 028F0ECC */ cpu->r[4] = cpu->r[29];
|
|
/* 028F0ED0 */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028F0ED4 */ cpu->f[29] = cpu->f[0];
|
|
/* 028F0ED8 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028F0EDC */ cpu->r[6] = cpu->r[1] + 0x00000010u;
|
|
/* 028F0EE0 */ cpu->f[30] = cpu->f[0];
|
|
/* 028F0EE4 */ Gambit_fn_028F17CC(cpu);
|
|
/* 028F0EE8 */ cpu->r[8] = cpu->r[3];
|
|
/* 028F0EEC */ cpu->f[1] = cpu->f[27];
|
|
/* 028F0EF0 */ cpu->r[3] = 0x00000000u;
|
|
/* 028F0EF4 */ cpu->f[5] = cpu->f[31];
|
|
/* 028F0EF8 */ cpu->r[7] = cpu->r[3];
|
|
/* 028F0EFC */ cpu->f[4] = cpu->f[30];
|
|
/* 028F0F00 */ cpu->f[3] = cpu->f[29];
|
|
/* 028F0F04 */ cpu->f[2] = cpu->f[28];
|
|
/* 028F0F08 */ cpu->r[5] = cpu->r[30];
|
|
/* 028F0F0C */ cpu->r[6] = 0x00000002u;
|
|
/* 028F0F10 */ cpu->r[4] = cpu->r[29];
|
|
/* 028F0F14 */ Gambit_fn_02C6A200(cpu);
|
|
/* 028F0F18 */ goto L_028F1004;
|
|
L_028F0F1C: ; // 0x28f0f1c
|
|
/* 028F0F1C */ cpu->r[0] = rbrew_rlwinm(cpu->r[26], 0x00000000u, 0x0000001Du, 0x0000001Du);
|
|
/* 028F0F1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F0F20 */ cpu->r[31] = 0x00000003u;
|
|
/* 028F0F24 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0F24 */ _t61 = _t60 & 0x00000001u;
|
|
/* 028F0F24 */ if (_t61) goto L_028F0F28; else goto L_028F0F2C;
|
|
L_028F0F28: ; // 0x28f0f28
|
|
/* 028F0F28 */ cpu->r[31] = 0x00000001u;
|
|
L_028F0F2C: ; // 0x28f0f2c
|
|
/* 028F0F2C */ cpu->f[27] = cpu->f[0];
|
|
/* 028F0F30 */ cpu->r[30] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F0F34 */ cpu->f[28] = cpu->f[0];
|
|
/* 028F0F38 */ cpu->r[4] = cpu->r[29];
|
|
/* 028F0F3C */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028F0F40 */ cpu->f[29] = cpu->f[0];
|
|
/* 028F0F44 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028F0F48 */ cpu->r[6] = cpu->r[1] + 0x00000010u;
|
|
/* 028F0F4C */ cpu->f[30] = cpu->f[0];
|
|
/* 028F0F50 */ Gambit_fn_028F17CC(cpu);
|
|
/* 028F0F54 */ cpu->r[8] = cpu->r[3];
|
|
/* 028F0F58 */ cpu->f[1] = cpu->f[27];
|
|
/* 028F0F5C */ cpu->r[3] = 0x00000000u;
|
|
/* 028F0F60 */ cpu->f[5] = cpu->f[31];
|
|
/* 028F0F64 */ cpu->r[7] = cpu->r[3];
|
|
/* 028F0F68 */ cpu->f[4] = cpu->f[30];
|
|
/* 028F0F6C */ cpu->f[3] = cpu->f[29];
|
|
/* 028F0F70 */ cpu->f[2] = cpu->f[28];
|
|
/* 028F0F74 */ cpu->r[5] = cpu->r[30];
|
|
/* 028F0F78 */ cpu->r[6] = cpu->r[31];
|
|
/* 028F0F7C */ cpu->r[4] = cpu->r[29];
|
|
/* 028F0F80 */ Gambit_fn_02C6A200(cpu);
|
|
/* 028F0F84 */ goto L_028F1004;
|
|
L_028F0F88: ; // 0x28f0f88
|
|
/* 028F0F88 */ cpu->r[0] = rbrew_rlwinm(cpu->r[26], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F0F88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F0F8C */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0F8C */ _t63 = _t62 & 0x00000001u;
|
|
/* 028F0F8C */ if (_t63) goto L_028F1004; else goto L_028F0F90;
|
|
L_028F0F90: ; // 0x28f0f90
|
|
/* 028F0F90 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000008u);
|
|
/* 028F0F94 */ cpu->r[12] = cpu->r[29] + 0x0000001Cu;
|
|
/* 028F0F98 */ _t64 = cpu->r[27] + 0x00000000u;
|
|
/* 028F0F98 */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t64);
|
|
/* 028F0F9C */ _t65 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F0F9C */ _t66 = _t65 & 0x00000001u;
|
|
/* 028F0F9C */ if (_t66) goto L_028F0FA0; else goto L_028F0FA8;
|
|
L_028F0FA0: ; // 0x28f0fa0
|
|
/* 028F0FA0 */ cpu->r[10] = rbrew_rlwinm(cpu->r[31], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F0FA4 */ cpu->r[12] = cpu->r[12] + cpu->r[10];
|
|
L_028F0FA8: ; // 0x28f0fa8
|
|
/* 028F0FA8 */ cpu->f[31] = cpu->f[0];
|
|
/* 028F0FAC */ _t67 = cpu->r[12] + 0x00000000u;
|
|
/* 028F0FAC */ cpu->r[12] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028F0FB0 */ cpu->r[6] = cpu->r[1] + 0x00000010u;
|
|
/* 028F0FB4 */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028F0FB8 */ _t68 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028F0FB8 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t68);
|
|
/* 028F0FBC */ cpu->r[28] = cpu->r[12] + 0x000000A0u;
|
|
/* 028F0FC0 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028F0FC4 */ _t69 = cpu->r[27] + 0x00000008u;
|
|
/* 028F0FC4 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 028F0FC8 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F0FCC */ _t70 = cpu->r[27] + 0x00000004u;
|
|
/* 028F0FCC */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t70);
|
|
/* 028F0FD0 */ Gambit_fn_028F1708(cpu);
|
|
/* 028F0FD4 */ cpu->f[1] = cpu->f[27];
|
|
/* 028F0FD8 */ cpu->r[8] = cpu->r[3];
|
|
/* 028F0FDC */ cpu->f[5] = cpu->f[31];
|
|
/* 028F0FE0 */ cpu->r[5] = 0x00000000u;
|
|
/* 028F0FE4 */ cpu->f[3] = cpu->f[29];
|
|
/* 028F0FE8 */ cpu->r[6] = cpu->r[5];
|
|
/* 028F0FEC */ cpu->f[4] = cpu->f[30];
|
|
/* 028F0FF0 */ cpu->r[7] = cpu->r[6];
|
|
/* 028F0FF4 */ cpu->f[2] = cpu->f[28];
|
|
/* 028F0FF8 */ cpu->r[4] = cpu->r[7];
|
|
/* 028F0FFC */ cpu->r[3] = cpu->r[28];
|
|
/* 028F1000 */ Gambit_fn_02C6A200(cpu);
|
|
L_028F1004: ; // 0x28f1004
|
|
/* 028F1004 */ cpu->r[3] = 0x00000000u;
|
|
/* 028F1008 */ Gambit_fn_02C6AA28(cpu);
|
|
/* 028F100C */ /* nop */
|
|
/* 028F1010 */ _t71 = cpu->r[1] + 0x00000078u;
|
|
/* 028F1010 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t71);
|
|
/* 028F1014 */ _t72 = cpu->r[1] + 0x00000068u;
|
|
/* 028F1014 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t72);
|
|
/* 028F1018 */ _t73 = cpu->r[1] + 0x00000070u;
|
|
/* 028F1018 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t73);
|
|
/* 028F101C */ _t74 = cpu->r[1] + 0x00000088u;
|
|
/* 028F101C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t74);
|
|
/* 028F1020 */ _t75 = cpu->r[1] + 0x00000060u;
|
|
/* 028F1020 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t75);
|
|
/* 028F1024 */ _t76 = cpu->r[1] + 0x00000080u;
|
|
/* 028F1024 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t76);
|
|
/* 028F1028 */ _t77 = cpu->r[1] + 0x00000048u;
|
|
/* 028F1028 */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t77);
|
|
/* 028F102C */ _t78 = cpu->r[1] + 0x00000058u;
|
|
/* 028F102C */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t78);
|
|
/* 028F1030 */ _t79 = cpu->r[1] + 0x00000040u;
|
|
/* 028F1030 */ cpu->f[27] = rbrew_read_f64(cpu->mem, _t79);
|
|
/* 028F1034 */ _t80 = cpu->r[1] + 0x00000050u;
|
|
/* 028F1034 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t80);
|
|
/* 028F1038 */ cpu->r[3] = 0x00000000u;
|
|
/* 028F103C */ _t81 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F103C */ _t82 = _t81 & 0x00000001u;
|
|
/* 028F103C */ if (_t82) goto L_028F1040; // else: addr-0 trap, fall-through
|
|
L_028F1040: ; // 0x28f1040
|
|
/* 028F1040 */ _t83 = cpu->r[1] + 0x00000094u;
|
|
/* 028F1040 */ cpu->r[0] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028F1044 */ cpu->lr = cpu->r[0];
|
|
/* 028F1048 */ cpu->r[1] = cpu->r[1] + 0x00000090u;
|
|
/* 028F104C */ return;
|
|
}
|
|
|
|
// fn_028F1050 @ 0x28f1050
|
|
void Gambit_fn_028F1050(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F1050: ; // 0x28f1050
|
|
/* 028F1050 */ _t0 = cpu->r[1] + 0xFFFFFEA0u;
|
|
/* 028F1050 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1050 */ cpu->r[1] = _t0;
|
|
/* 028F1054 */ /* nop */
|
|
/* 028F1058 */ cpu->r[0] = cpu->lr;
|
|
/* 028F105C */ cpu->r[27] = cpu->r[5];
|
|
/* 028F105C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028F1060 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F1064 */ _t1 = cpu->r[1] + 0x00000150u;
|
|
/* 028F1064 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028F1068 */ /* nop */
|
|
/* 028F106C */ cpu->r[26] = cpu->r[6];
|
|
/* 028F1070 */ _t2 = cpu->r[1] + 0x00000158u;
|
|
/* 028F1070 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028F1074 */ cpu->f[31] = cpu->f[1];
|
|
/* 028F1078 */ cpu->r[28] = cpu->r[7];
|
|
/* 028F107C */ _t3 = cpu->r[1] + 0x00000164u;
|
|
/* 028F107C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F1080 */ cpu->r[29] = cpu->r[8];
|
|
/* 028F1084 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1084 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F1084 */ if (_t5) goto L_028F1330; else goto L_028F1088;
|
|
L_028F1088: ; // 0x28f1088
|
|
/* 028F1088 */ cpu->r[9] = 0x101D0000u;
|
|
/* 028F108C */ _t6 = cpu->r[9] + 0xFFFFA330u;
|
|
/* 028F108C */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F1090 */ _t7 = cpu->r[9] + 0x00000014u;
|
|
/* 028F1090 */ cpu->r[5] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F1094 */ cpu->r[25] = 0x00000000u;
|
|
/* 028F1098 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x00000032u);
|
|
/* 028F109C */ cpu->r[12] = cpu->r[25];
|
|
/* 028F10A0 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F10A0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F10A0 */ if (_t9) goto L_028F10A4; else goto L_028F10AC;
|
|
L_028F10A4: ; // 0x28f10a4
|
|
/* 028F10A4 */ _t10 = cpu->r[9] + 0x0000001Cu;
|
|
/* 028F10A4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F10A8 */ _t11 = cpu->r[7] + 0x000000C8u;
|
|
/* 028F10A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
L_028F10AC: ; // 0x28f10ac
|
|
/* 028F10AC */ _t12 = cpu->r[12] + 0x00000078u;
|
|
/* 028F10AC */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F10B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F10B4 */ cpu->r[7] = cpu->r[9] + 0x00000008u;
|
|
/* 028F10B8 */ _t13 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F10B8 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F10B8 */ if (_t14) goto L_028F10F0; else goto L_028F10BC;
|
|
L_028F10BC: ; // 0x28f10bc
|
|
/* 028F10BC */ _t15 = cpu->r[7] + 0x00000000u;
|
|
/* 028F10BC */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F10C0 */ cpu->r[5] = 0x00000001u;
|
|
/* 028F10C4 */ cpu->r[4] = cpu->r[29];
|
|
/* 028F10C8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F10CC */ Gambit_fn_028F40F4(cpu);
|
|
/* 028F10D0 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F10D4 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F10D8 */ Gambit_fn_0281E5F0(cpu);
|
|
/* 028F10DC */ cpu->r[5] = rbrew_rlwinm(cpu->r[27], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F10DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028F10E0 */ cpu->r[12] = 0x00000000u;
|
|
/* 028F10E4 */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F10E4 */ rbrew_write32(cpu->mem, _t16, cpu->r[25]);
|
|
/* 028F10E8 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F10E8 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F10E8 */ if (_t18) goto L_028F113C; else goto L_028F10EC;
|
|
L_028F10EC: ; // 0x28f10ec
|
|
/* 028F10EC */ goto L_028F1154;
|
|
L_028F10F0: ; // 0x28f10f0
|
|
/* 028F10F0 */ _t19 = cpu->r[7] + 0x00000004u;
|
|
/* 028F10F0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F10F4 */ cpu->r[10] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028F10F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[12]);
|
|
/* 028F10FC */ _t20 = cpu->r[7] + 0x00000008u;
|
|
/* 028F10FC */ cpu->r[30] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F1100 */ _t21 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F1100 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F1100 */ if (_t22) goto L_028F1104; else goto L_028F1110;
|
|
L_028F1104: ; // 0x28f1104
|
|
/* 028F1104 */ cpu->r[5] = rbrew_rlwinm(cpu->r[31], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F1108 */ cpu->r[7] = cpu->r[30] + cpu->r[5];
|
|
/* 028F110C */ cpu->r[30] = cpu->r[7] + 0xFFFFFF80u;
|
|
L_028F1110: ; // 0x28f1110
|
|
/* 028F1110 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F1114 */ cpu->r[5] = 0x00000001u;
|
|
/* 028F1118 */ cpu->r[4] = cpu->r[29];
|
|
/* 028F111C */ Gambit_fn_028F40F4(cpu);
|
|
/* 028F1120 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F1124 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F1128 */ Gambit_fn_0281E5F0(cpu);
|
|
/* 028F112C */ cpu->r[5] = rbrew_rlwinm(cpu->r[27], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F112C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028F1130 */ cpu->r[12] = 0x00000000u;
|
|
/* 028F1134 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F1134 */ rbrew_write32(cpu->mem, _t23, cpu->r[25]);
|
|
/* 028F1138 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1138 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F1138 */ if (_t25) goto L_028F113C; else goto L_028F1154;
|
|
L_028F113C: ; // 0x28f113c
|
|
/* 028F113C */ _t26 = cpu->r[1] + 0x000000FCu;
|
|
/* 028F113C */ rbrew_write32(cpu->mem, _t26, cpu->r[12]);
|
|
/* 028F1140 */ cpu->r[6] = 0x10140000u;
|
|
/* 028F1144 */ cpu->r[5] = rbrew_rlwinm(cpu->r[27], 0x00000000u, 0x0000001Eu, 0x0000001Eu);
|
|
/* 028F1144 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028F1148 */ _t27 = cpu->r[6] + 0xFFFFCC94u;
|
|
/* 028F1148 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 028F114C */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F114C */ _t29 = _t28 & 0x00000001u;
|
|
/* 028F114C */ if (_t29) goto L_028F1264; else goto L_028F1150;
|
|
L_028F1150: ; // 0x28f1150
|
|
/* 028F1150 */ goto L_028F11BC;
|
|
L_028F1154: ; // 0x28f1154
|
|
/* 028F1154 */ cpu->r[8] = rbrew_rlwinm(cpu->r[31], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F1158 */ cpu->r[10] = 0x0000000Fu;
|
|
/* 028F115C */ /* nop */
|
|
/* 028F1160 */ _t30 = cpu->r[1] + 0x000000FCu;
|
|
/* 028F1160 */ rbrew_write32(cpu->mem, _t30, cpu->r[9]);
|
|
/* 028F1164 */ _t31 = cpu->r[30] + 0x00000024u;
|
|
/* 028F1164 */ cpu->r[11] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F1168 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000008u);
|
|
/* 028F116C */ _t32 = cpu->r[30] + 0x00000028u;
|
|
/* 028F116C */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F1170 */ _t33 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F1170 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F1170 */ if (_t34) goto L_028F1174; else goto L_028F1178;
|
|
L_028F1174: ; // 0x28f1174
|
|
/* 028F1174 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
L_028F1178: ; // 0x28f1178
|
|
/* 028F1178 */ _t35 = cpu->r[31] + 0x00000008u;
|
|
/* 028F1178 */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t35);
|
|
/* 028F117C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 028F1180 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1180 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F1180 */ if (_t37) goto L_028F1194; else goto L_028F1184;
|
|
L_028F1184: ; // 0x28f1184
|
|
/* 028F1184 */ _t38 = cpu->r[31] + 0x00000008u;
|
|
/* 028F1184 */ cpu->r[3] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t38);
|
|
/* 028F1188 */ cpu->r[5] = cpu->r[26];
|
|
/* 028F118C */ cpu->r[4] = 0x00000004u;
|
|
/* 028F1190 */ rbrew_dispatch(cpu, 0x02d062a8u);
|
|
L_028F1194: ; // 0x28f1194
|
|
/* 028F1194 */ _t39 = cpu->r[31] + 0x0000000Au;
|
|
/* 028F1194 */ cpu->r[3] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t39);
|
|
/* 028F1198 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0xFFFFFFFFu);
|
|
/* 028F119C */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F119C */ _t41 = _t40 & 0x00000001u;
|
|
/* 028F119C */ if (_t41) goto L_028F11AC; else goto L_028F11A0;
|
|
L_028F11A0: ; // 0x28f11a0
|
|
/* 028F11A0 */ cpu->r[4] = 0x00000004u;
|
|
/* 028F11A4 */ cpu->r[5] = cpu->r[26];
|
|
/* 028F11A8 */ rbrew_dispatch(cpu, 0x02d06160u);
|
|
L_028F11AC: ; // 0x28f11ac
|
|
/* 028F11AC */ cpu->r[6] = 0x10140000u;
|
|
/* 028F11B0 */ cpu->r[5] = rbrew_rlwinm(cpu->r[27], 0x00000000u, 0x0000001Eu, 0x0000001Eu);
|
|
/* 028F11B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028F11B4 */ _t42 = cpu->r[6] + 0xFFFFCC94u;
|
|
/* 028F11B4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t42);
|
|
/* 028F11B8 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F11B8 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F11B8 */ if (_t44) goto L_028F1264; else goto L_028F11BC;
|
|
L_028F11BC: ; // 0x28f11bc
|
|
/* 028F11BC */ cpu->r[0] = 0x00000001u;
|
|
/* 028F11C0 */ _t45 = cpu->r[1] + 0x00000010u;
|
|
/* 028F11C0 */ rbrew_write8(cpu->mem, _t45, (uint8_t)cpu->r[0]);
|
|
/* 028F11C4 */ cpu->r[10] = 0x10140000u;
|
|
/* 028F11C8 */ _t46 = cpu->r[1] + 0x00000011u;
|
|
/* 028F11C8 */ rbrew_write8(cpu->mem, _t46, (uint8_t)cpu->r[0]);
|
|
/* 028F11CC */ cpu->r[0] = 0x00000007u;
|
|
/* 028F11D0 */ _t47 = cpu->r[10] + 0xFFFFCC90u;
|
|
/* 028F11D0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 028F11D4 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[31], cpu->f[0]);
|
|
/* 028F11D8 */ _t48 = cpu->r[1] + 0x00000014u;
|
|
/* 028F11D8 */ rbrew_write32(cpu->mem, _t48, cpu->r[0]);
|
|
/* 028F11DC */ _t49 = cpu->r[30] + 0x00000024u;
|
|
/* 028F11DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028F11E0 */ cpu->f[11] = cpu->f[31];
|
|
/* 028F11E4 */ _t50 = cpu->r[30] + 0x00000028u;
|
|
/* 028F11E4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F11E8 */ _t51 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F11E8 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028F11E8 */ if (_t52) goto L_028F11EC; else goto L_028F1200;
|
|
L_028F11EC: ; // 0x28f11ec
|
|
/* 028F11EC */ cpu->f[12] = cpu->f[0] + cpu->f[0];
|
|
/* 028F11F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000018u);
|
|
/* 028F11F4 */ cpu->f[31] = cpu->f[12] - cpu->f[13];
|
|
/* 028F11F8 */ _t53 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F11F8 */ _t54 = _t53 & 0x00000001u;
|
|
/* 028F11F8 */ if (_t54) goto L_028F121C; else goto L_028F11FC;
|
|
L_028F11FC: ; // 0x28f11fc
|
|
/* 028F11FC */ goto L_028F1220;
|
|
L_028F1200: ; // 0x28f1200
|
|
/* 028F1200 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[13]);
|
|
/* 028F1204 */ _t55 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F1204 */ _t56 = _t55 & 0x00000001u;
|
|
/* 028F1204 */ if (_t56) goto L_028F1208; else goto L_028F120C;
|
|
L_028F1208: ; // 0x28f1208
|
|
/* 028F1208 */ cpu->f[11] = cpu->f[13];
|
|
L_028F120C: ; // 0x28f120c
|
|
/* 028F120C */ cpu->f[12] = cpu->f[11] + cpu->f[11];
|
|
/* 028F1210 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000018u);
|
|
/* 028F1214 */ cpu->f[31] = cpu->f[12] - cpu->f[13];
|
|
/* 028F1218 */ _t57 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F1218 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028F1218 */ if (_t58) goto L_028F121C; else goto L_028F11FC;
|
|
L_028F121C: ; // 0x28f121c
|
|
/* 028F121C */ cpu->r[31] = cpu->r[31] + 0x00000180u;
|
|
L_028F1220: ; // 0x28f1220
|
|
/* 028F1220 */ _t59 = cpu->r[1] + 0x00000008u;
|
|
/* 028F1220 */ rbrew_write_f32(cpu->mem, _t59, cpu->f[31]);
|
|
/* 028F1224 */ _t60 = cpu->r[31] + 0x00000008u;
|
|
/* 028F1224 */ cpu->r[12] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t60);
|
|
/* 028F1228 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0xFFFFFFFFu);
|
|
/* 028F122C */ _t61 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F122C */ _t62 = _t61 & 0x00000001u;
|
|
/* 028F122C */ if (_t62) goto L_028F1240; else goto L_028F1230;
|
|
L_028F1230: ; // 0x28f1230
|
|
/* 028F1230 */ _t63 = cpu->r[31] + 0x00000008u;
|
|
/* 028F1230 */ cpu->r[3] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t63);
|
|
/* 028F1234 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028F1238 */ cpu->r[4] = 0x00000004u;
|
|
/* 028F123C */ rbrew_dispatch(cpu, 0x02d062a8u);
|
|
L_028F1240: ; // 0x28f1240
|
|
/* 028F1240 */ _t64 = cpu->r[31] + 0x0000000Au;
|
|
/* 028F1240 */ cpu->r[3] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t64);
|
|
/* 028F1244 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0xFFFFFFFFu);
|
|
/* 028F1248 */ _t65 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1248 */ _t66 = _t65 & 0x00000001u;
|
|
/* 028F1248 */ if (_t66) goto L_028F12B8; else goto L_028F124C;
|
|
L_028F124C: ; // 0x28f124c
|
|
/* 028F124C */ cpu->r[4] = 0x00000004u;
|
|
/* 028F1250 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028F1254 */ rbrew_dispatch(cpu, 0x02d06160u);
|
|
/* 028F1258 */ cpu->r[8] = rbrew_rlwinm(cpu->r[27], 0x00000000u, 0x0000001Du, 0x0000001Du);
|
|
/* 028F1258 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F125C */ _t67 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F125C */ _t68 = _t67 & 0x00000001u;
|
|
/* 028F125C */ if (_t68) goto L_028F12E8; else goto L_028F1260;
|
|
L_028F1260: ; // 0x28f1260
|
|
/* 028F1260 */ goto L_028F12C0;
|
|
L_028F1264: ; // 0x28f1264
|
|
/* 028F1264 */ _t69 = cpu->r[1] + 0x00000011u;
|
|
/* 028F1264 */ rbrew_write8(cpu->mem, _t69, (uint8_t)cpu->r[25]);
|
|
/* 028F1268 */ _t70 = cpu->r[1] + 0x00000010u;
|
|
/* 028F1268 */ rbrew_write8(cpu->mem, _t70, (uint8_t)cpu->r[25]);
|
|
/* 028F126C */ _t71 = cpu->r[30] + 0x00000024u;
|
|
/* 028F126C */ cpu->r[0] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028F1270 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000018u);
|
|
/* 028F1274 */ _t72 = cpu->r[30] + 0x00000028u;
|
|
/* 028F1274 */ cpu->r[31] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028F1278 */ _t73 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F1278 */ _t74 = _t73 & 0x00000001u;
|
|
/* 028F1278 */ if (_t74) goto L_028F127C; else goto L_028F1280;
|
|
L_028F127C: ; // 0x28f127c
|
|
/* 028F127C */ cpu->r[31] = cpu->r[31] + 0x00000180u;
|
|
L_028F1280: ; // 0x28f1280
|
|
/* 028F1280 */ _t75 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1280 */ rbrew_write_f32(cpu->mem, _t75, cpu->f[0]);
|
|
/* 028F1284 */ _t76 = cpu->r[31] + 0x00000008u;
|
|
/* 028F1284 */ cpu->r[6] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t76);
|
|
/* 028F1288 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0xFFFFFFFFu);
|
|
/* 028F128C */ _t77 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F128C */ _t78 = _t77 & 0x00000001u;
|
|
/* 028F128C */ if (_t78) goto L_028F12A0; else goto L_028F1290;
|
|
L_028F1290: ; // 0x28f1290
|
|
/* 028F1290 */ _t79 = cpu->r[31] + 0x00000008u;
|
|
/* 028F1290 */ cpu->r[3] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t79);
|
|
/* 028F1294 */ cpu->r[5] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1298 */ cpu->r[4] = 0x00000004u;
|
|
/* 028F129C */ rbrew_dispatch(cpu, 0x02d062a8u);
|
|
L_028F12A0: ; // 0x28f12a0
|
|
/* 028F12A0 */ _t80 = cpu->r[31] + 0x0000000Au;
|
|
/* 028F12A0 */ cpu->r[3] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t80);
|
|
/* 028F12A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0xFFFFFFFFu);
|
|
/* 028F12A8 */ _t81 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F12A8 */ _t82 = _t81 & 0x00000001u;
|
|
/* 028F12A8 */ if (_t82) goto L_028F12B8; else goto L_028F12AC;
|
|
L_028F12AC: ; // 0x28f12ac
|
|
/* 028F12AC */ cpu->r[4] = 0x00000004u;
|
|
/* 028F12B0 */ cpu->r[5] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F12B4 */ rbrew_dispatch(cpu, 0x02d06160u);
|
|
L_028F12B8: ; // 0x28f12b8
|
|
/* 028F12B8 */ cpu->r[8] = rbrew_rlwinm(cpu->r[27], 0x00000000u, 0x0000001Du, 0x0000001Du);
|
|
/* 028F12B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F12BC */ _t83 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F12BC */ _t84 = _t83 & 0x00000001u;
|
|
/* 028F12BC */ if (_t84) goto L_028F12E8; else goto L_028F12C0;
|
|
L_028F12C0: ; // 0x28f12c0
|
|
/* 028F12C0 */ _t85 = cpu->r[1] + 0x00000108u;
|
|
/* 028F12C0 */ rbrew_write32(cpu->mem, _t85, cpu->r[28]);
|
|
/* 028F12C4 */ cpu->r[0] = 0x00000001u;
|
|
/* 028F12C8 */ _t86 = cpu->r[1] + 0x0000010Cu;
|
|
/* 028F12C8 */ rbrew_write32(cpu->mem, _t86, cpu->r[28]);
|
|
/* 028F12CC */ cpu->r[11] = 0x00000007u;
|
|
/* 028F12D0 */ _t87 = cpu->r[1] + 0x00000100u;
|
|
/* 028F12D0 */ rbrew_write8(cpu->mem, _t87, (uint8_t)cpu->r[0]);
|
|
/* 028F12D4 */ cpu->r[0] = 0x00000002u;
|
|
/* 028F12D8 */ _t88 = cpu->r[1] + 0x00000104u;
|
|
/* 028F12D8 */ rbrew_write32(cpu->mem, _t88, cpu->r[11]);
|
|
/* 028F12DC */ _t89 = cpu->r[1] + 0x00000110u;
|
|
/* 028F12DC */ rbrew_write32(cpu->mem, _t89, cpu->r[0]);
|
|
/* 028F12E0 */ _t90 = cpu->r[1] + 0x00000114u;
|
|
/* 028F12E0 */ rbrew_write32(cpu->mem, _t90, cpu->r[0]);
|
|
/* 028F12E4 */ _t91 = cpu->r[1] + 0x00000118u;
|
|
/* 028F12E4 */ rbrew_write32(cpu->mem, _t91, cpu->r[0]);
|
|
L_028F12E8: ; // 0x28f12e8
|
|
/* 028F12E8 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F12EC */ Gambit_fn_0281E718(cpu);
|
|
/* 028F12F0 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028F12F4 */ _t92 = cpu->r[12] + 0xFFFFA544u;
|
|
/* 028F12F4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t92);
|
|
/* 028F12F8 */ cpu->r[3] = cpu->r[12] + 0x000007B0u;
|
|
/* 028F12FC */ Gambit_fn_028FB628(cpu);
|
|
/* 028F1300 */ cpu->r[11] = 0x101D0000u;
|
|
/* 028F1304 */ _t93 = cpu->r[11] + 0xFFFFA52Cu;
|
|
/* 028F1304 */ cpu->r[11] = rbrew_read32(cpu->mem, _t93);
|
|
/* 028F1308 */ _t94 = cpu->r[11] + 0x00000328u;
|
|
/* 028F1308 */ cpu->r[4] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028F130C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F1310 */ cpu->r[9] = cpu->r[11] + 0x0000031Cu;
|
|
/* 028F1314 */ _t95 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1314 */ _t96 = _t95 & 0x00000001u;
|
|
/* 028F1314 */ if (_t96) goto L_028F1330; else goto L_028F1318;
|
|
L_028F1318: ; // 0x28f1318
|
|
/* 028F1318 */ _t97 = cpu->r[9] + 0x00000000u;
|
|
/* 028F1318 */ cpu->r[5] = rbrew_read32(cpu->mem, _t97);
|
|
/* 028F131C */ cpu->r[8] = 0x00000001u;
|
|
/* 028F1320 */ _t98 = cpu->r[9] + 0x00000008u;
|
|
/* 028F1320 */ cpu->r[6] = rbrew_read32(cpu->mem, _t98);
|
|
/* 028F1324 */ cpu->r[7] = 0x00000000u;
|
|
/* 028F1328 */ _t99 = cpu->r[9] + 0x00000004u;
|
|
/* 028F1328 */ cpu->r[3] = rbrew_read32(cpu->mem, _t99);
|
|
/* 028F132C */ rbrew_dispatch(cpu, 0x02d05930u);
|
|
L_028F1330: ; // 0x28f1330
|
|
/* 028F1330 */ cpu->r[3] = cpu->r[29];
|
|
/* 028F1334 */ /* nop */
|
|
/* 028F1338 */ _t100 = cpu->r[1] + 0x00000158u;
|
|
/* 028F1338 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t100);
|
|
/* 028F133C */ _t101 = cpu->r[1] + 0x00000150u;
|
|
/* 028F133C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t101);
|
|
/* 028F1340 */ _t102 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F1340 */ _t103 = _t102 & 0x00000001u;
|
|
/* 028F1340 */ if (_t103) goto L_028F1344; // else: addr-0 trap, fall-through
|
|
L_028F1344: ; // 0x28f1344
|
|
/* 028F1344 */ _t104 = cpu->r[1] + 0x00000164u;
|
|
/* 028F1344 */ cpu->r[0] = rbrew_read32(cpu->mem, _t104);
|
|
/* 028F1348 */ cpu->lr = cpu->r[0];
|
|
/* 028F134C */ cpu->r[1] = cpu->r[1] + 0x00000160u;
|
|
/* 028F1350 */ return;
|
|
}
|
|
|
|
// fn_028F1354 @ 0x28f1354
|
|
void Gambit_fn_028F1354(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F1354: ; // 0x28f1354
|
|
/* 028F1354 */ cpu->r[0] = cpu->lr;
|
|
/* 028F1358 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F1358 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1358 */ cpu->r[1] = _t0;
|
|
/* 028F135C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F135C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F1360 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F1360 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F1364 */ cpu->r[31] = 0x101D0000u;
|
|
/* 028F1368 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1368 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F136C */ _t4 = cpu->r[31] + 0xFFFF98FCu;
|
|
/* 028F136C */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F1370 */ cpu->r[30] = 0x101F0000u;
|
|
/* 028F1374 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F1378 */ cpu->r[30] = cpu->r[30] + 0x0000726Cu;
|
|
/* 028F137C */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F137C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F137C */ if (_t6) goto L_028F1380; else goto L_028F13C4;
|
|
L_028F1380: ; // 0x28f1380
|
|
/* 028F1380 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F1384 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1384 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F1384 */ if (_t8) goto L_028F1388; else goto L_028F1394;
|
|
L_028F1388: ; // 0x28f1388
|
|
/* 028F1388 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F138C */ _t9 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F138C */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F1390 */ Gambit_fn_02826F20(cpu);
|
|
L_028F1394: ; // 0x28f1394
|
|
/* 028F1394 */ _t10 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F1394 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F1398 */ _t11 = cpu->r[9] + 0x00000034u;
|
|
/* 028F1398 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F139C */ cpu->ctr = cpu->r[11];
|
|
/* 028F13A0 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F13A4 */ cpu->r[4] = rbrew_rlwinm(cpu->r[31], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F13A8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F13AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F13B0 */ cpu->r[0] = cpu->r[31];
|
|
/* 028F13B4 */ _t12 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F13B4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F13B4 */ if (_t13) goto L_028F13BC; else goto L_028F13B8;
|
|
L_028F13B8: ; // 0x28f13b8
|
|
/* 028F13B8 */ cpu->r[0] = 0x00000001u;
|
|
L_028F13BC: ; // 0x28f13bc
|
|
/* 028F13BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F13C0 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F13C0 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F13C0 */ if (_t15) goto L_028F13C4; else goto L_028F13D8;
|
|
L_028F13C4: ; // 0x28f13c4
|
|
/* 028F13C4 */ _t16 = cpu->r[30] + 0x00000000u;
|
|
/* 028F13C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F13C8 */ cpu->r[7] = 0x00000000u;
|
|
/* 028F13CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[31]);
|
|
/* 028F13D0 */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F13D0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F13D0 */ if (_t18) goto L_028F13D4; else goto L_028F1420;
|
|
L_028F13D4: ; // 0x28f13d4
|
|
/* 028F13D4 */ goto L_028F13EC;
|
|
L_028F13D8: ; // 0x28f13d8
|
|
/* 028F13D8 */ cpu->r[7] = 0x00000000u;
|
|
/* 028F13DC */ _t19 = cpu->r[30] + 0x00000000u;
|
|
/* 028F13DC */ rbrew_write32(cpu->mem, _t19, cpu->r[31]);
|
|
/* 028F13E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[31]);
|
|
/* 028F13E4 */ _t20 = cpu->r[30] + 0x00000004u;
|
|
/* 028F13E4 */ rbrew_write32(cpu->mem, _t20, cpu->r[3]);
|
|
/* 028F13E8 */ _t21 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F13E8 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F13E8 */ if (_t22) goto L_028F13EC; else goto L_028F1420;
|
|
L_028F13EC: ; // 0x28f13ec
|
|
/* 028F13EC */ cpu->r[6] = 0x00000000u;
|
|
/* 028F13F0 */ _t23 = cpu->r[30] + 0x00000000u;
|
|
/* 028F13F0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F13F4 */ cpu->r[8] = cpu->r[6];
|
|
L_028F13F8: ; // 0x28f13f8
|
|
/* 028F13F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[10]);
|
|
/* 028F13FC */ _t24 = cpu->r[30] + 0x00000004u;
|
|
/* 028F13FC */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F1400 */ _t25 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F1400 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028F1400 */ if (_t26) goto L_028F1404; else goto L_028F1408;
|
|
L_028F1404: ; // 0x28f1404
|
|
/* 028F1404 */ cpu->r[12] = cpu->r[12] + cpu->r[6];
|
|
L_028F1408: ; // 0x28f1408
|
|
/* 028F1408 */ _t27 = cpu->r[12] + 0x00000000u;
|
|
/* 028F1408 */ rbrew_write32(cpu->mem, _t27, cpu->r[8]);
|
|
/* 028F140C */ _t28 = cpu->r[30] + 0x00000000u;
|
|
/* 028F140C */ cpu->r[10] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F1410 */ cpu->r[7] = cpu->r[7] + 0x00000001u;
|
|
/* 028F1414 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[10]);
|
|
/* 028F1418 */ cpu->r[6] = cpu->r[6] + 0x00000004u;
|
|
/* 028F141C */ _t29 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F141C */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F141C */ if (_t30) goto L_028F13F8; else goto L_028F1420;
|
|
L_028F1420: ; // 0x28f1420
|
|
/* 028F1420 */ _t31 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1420 */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F1424 */ _t32 = cpu->r[1] + 0x00000008u;
|
|
/* 028F1424 */ cpu->r[30] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F1428 */ cpu->lr = cpu->r[0];
|
|
/* 028F142C */ _t33 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F142C */ cpu->r[31] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F1430 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F1434 */ return;
|
|
}
|
|
|
|
// fn_028F1358 @ 0x28f1358
|
|
void Gambit_fn_028F1358(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F1358: ; // 0x28f1358
|
|
/* 028F1358 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F1358 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1358 */ cpu->r[1] = _t0;
|
|
/* 028F135C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F135C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F1360 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F1360 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F1364 */ cpu->r[31] = 0x101D0000u;
|
|
/* 028F1368 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1368 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F136C */ _t4 = cpu->r[31] + 0xFFFF98FCu;
|
|
/* 028F136C */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F1370 */ cpu->r[30] = 0x101F0000u;
|
|
/* 028F1374 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F1378 */ cpu->r[30] = cpu->r[30] + 0x0000726Cu;
|
|
/* 028F137C */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F137C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F137C */ if (_t6) goto L_028F1380; else goto L_028F13C4;
|
|
L_028F1380: ; // 0x28f1380
|
|
/* 028F1380 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F1384 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1384 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F1384 */ if (_t8) goto L_028F1388; else goto L_028F1394;
|
|
L_028F1388: ; // 0x28f1388
|
|
/* 028F1388 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F138C */ _t9 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F138C */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F1390 */ Gambit_fn_02826F20(cpu);
|
|
L_028F1394: ; // 0x28f1394
|
|
/* 028F1394 */ _t10 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F1394 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F1398 */ _t11 = cpu->r[9] + 0x00000034u;
|
|
/* 028F1398 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F139C */ cpu->ctr = cpu->r[11];
|
|
/* 028F13A0 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F13A4 */ cpu->r[4] = rbrew_rlwinm(cpu->r[31], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F13A8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F13AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F13B0 */ cpu->r[0] = cpu->r[31];
|
|
/* 028F13B4 */ _t12 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F13B4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F13B4 */ if (_t13) goto L_028F13BC; else goto L_028F13B8;
|
|
L_028F13B8: ; // 0x28f13b8
|
|
/* 028F13B8 */ cpu->r[0] = 0x00000001u;
|
|
L_028F13BC: ; // 0x28f13bc
|
|
/* 028F13BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F13C0 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F13C0 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F13C0 */ if (_t15) goto L_028F13C4; else goto L_028F13D8;
|
|
L_028F13C4: ; // 0x28f13c4
|
|
/* 028F13C4 */ _t16 = cpu->r[30] + 0x00000000u;
|
|
/* 028F13C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F13C8 */ cpu->r[7] = 0x00000000u;
|
|
/* 028F13CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[31]);
|
|
/* 028F13D0 */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F13D0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F13D0 */ if (_t18) goto L_028F13D4; else goto L_028F1420;
|
|
L_028F13D4: ; // 0x28f13d4
|
|
/* 028F13D4 */ goto L_028F13EC;
|
|
L_028F13D8: ; // 0x28f13d8
|
|
/* 028F13D8 */ cpu->r[7] = 0x00000000u;
|
|
/* 028F13DC */ _t19 = cpu->r[30] + 0x00000000u;
|
|
/* 028F13DC */ rbrew_write32(cpu->mem, _t19, cpu->r[31]);
|
|
/* 028F13E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[31]);
|
|
/* 028F13E4 */ _t20 = cpu->r[30] + 0x00000004u;
|
|
/* 028F13E4 */ rbrew_write32(cpu->mem, _t20, cpu->r[3]);
|
|
/* 028F13E8 */ _t21 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F13E8 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F13E8 */ if (_t22) goto L_028F13EC; else goto L_028F1420;
|
|
L_028F13EC: ; // 0x28f13ec
|
|
/* 028F13EC */ cpu->r[6] = 0x00000000u;
|
|
/* 028F13F0 */ _t23 = cpu->r[30] + 0x00000000u;
|
|
/* 028F13F0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F13F4 */ cpu->r[8] = cpu->r[6];
|
|
L_028F13F8: ; // 0x28f13f8
|
|
/* 028F13F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[10]);
|
|
/* 028F13FC */ _t24 = cpu->r[30] + 0x00000004u;
|
|
/* 028F13FC */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F1400 */ _t25 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F1400 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028F1400 */ if (_t26) goto L_028F1404; else goto L_028F1408;
|
|
L_028F1404: ; // 0x28f1404
|
|
/* 028F1404 */ cpu->r[12] = cpu->r[12] + cpu->r[6];
|
|
L_028F1408: ; // 0x28f1408
|
|
/* 028F1408 */ _t27 = cpu->r[12] + 0x00000000u;
|
|
/* 028F1408 */ rbrew_write32(cpu->mem, _t27, cpu->r[8]);
|
|
/* 028F140C */ _t28 = cpu->r[30] + 0x00000000u;
|
|
/* 028F140C */ cpu->r[10] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F1410 */ cpu->r[7] = cpu->r[7] + 0x00000001u;
|
|
/* 028F1414 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[10]);
|
|
/* 028F1418 */ cpu->r[6] = cpu->r[6] + 0x00000004u;
|
|
/* 028F141C */ _t29 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F141C */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F141C */ if (_t30) goto L_028F13F8; else goto L_028F1420;
|
|
L_028F1420: ; // 0x28f1420
|
|
/* 028F1420 */ _t31 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1420 */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F1424 */ _t32 = cpu->r[1] + 0x00000008u;
|
|
/* 028F1424 */ cpu->r[30] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F1428 */ cpu->lr = cpu->r[0];
|
|
/* 028F142C */ _t33 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F142C */ cpu->r[31] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F1430 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F1434 */ return;
|
|
}
|
|
|
|
// fn_028F1438 @ 0x28f1438
|
|
void Gambit_fn_028F1438(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028F1438: ; // 0x28f1438
|
|
/* 028F1438 */ cpu->r[0] = cpu->lr;
|
|
/* 028F143C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F143C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F143C */ cpu->r[1] = _t0;
|
|
/* 028F1440 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1440 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F1444 */ cpu->r[31] = 0x101F0000u;
|
|
/* 028F1448 */ cpu->r[31] = cpu->r[31] + 0x0000726Cu;
|
|
/* 028F144C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F144C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F1450 */ _t3 = cpu->r[31] + 0x00000004u;
|
|
/* 028F1450 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F1454 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F1458 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1458 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F1458 */ if (_t5) goto L_028F1490; else goto L_028F145C;
|
|
L_028F145C: ; // 0x28f145c
|
|
/* 028F145C */ _t6 = cpu->r[31] + 0x00000000u;
|
|
/* 028F145C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F1460 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F1464 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F1468 */ _t7 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F1468 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F146C */ Gambit_fn_02826B90(cpu);
|
|
/* 028F1470 */ _t8 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F1470 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F1474 */ _t9 = cpu->r[12] + 0x0000003Cu;
|
|
/* 028F1474 */ cpu->r[8] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F1478 */ cpu->ctr = cpu->r[8];
|
|
/* 028F147C */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 028F147C */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F1480 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F1484 */ cpu->r[9] = 0x00000000u;
|
|
/* 028F1488 */ _t11 = cpu->r[31] + 0x00000004u;
|
|
/* 028F1488 */ rbrew_write32(cpu->mem, _t11, cpu->r[9]);
|
|
/* 028F148C */ _t12 = cpu->r[31] + 0x00000000u;
|
|
/* 028F148C */ rbrew_write32(cpu->mem, _t12, cpu->r[9]);
|
|
L_028F1490: ; // 0x28f1490
|
|
/* 028F1490 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1490 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F1494 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1494 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F1498 */ cpu->lr = cpu->r[0];
|
|
/* 028F149C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F14A0 */ return;
|
|
}
|
|
|
|
// fn_028F143C @ 0x28f143c
|
|
void Gambit_fn_028F143C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028F143C: ; // 0x28f143c
|
|
/* 028F143C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F143C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F143C */ cpu->r[1] = _t0;
|
|
/* 028F1440 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1440 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F1444 */ cpu->r[31] = 0x101F0000u;
|
|
/* 028F1448 */ cpu->r[31] = cpu->r[31] + 0x0000726Cu;
|
|
/* 028F144C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F144C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F1450 */ _t3 = cpu->r[31] + 0x00000004u;
|
|
/* 028F1450 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F1454 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F1458 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1458 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F1458 */ if (_t5) goto L_028F1490; else goto L_028F145C;
|
|
L_028F145C: ; // 0x28f145c
|
|
/* 028F145C */ _t6 = cpu->r[31] + 0x00000000u;
|
|
/* 028F145C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F1460 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F1464 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F1468 */ _t7 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F1468 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F146C */ Gambit_fn_02826B90(cpu);
|
|
/* 028F1470 */ _t8 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F1470 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F1474 */ _t9 = cpu->r[12] + 0x0000003Cu;
|
|
/* 028F1474 */ cpu->r[8] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F1478 */ cpu->ctr = cpu->r[8];
|
|
/* 028F147C */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 028F147C */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F1480 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F1484 */ cpu->r[9] = 0x00000000u;
|
|
/* 028F1488 */ _t11 = cpu->r[31] + 0x00000004u;
|
|
/* 028F1488 */ rbrew_write32(cpu->mem, _t11, cpu->r[9]);
|
|
/* 028F148C */ _t12 = cpu->r[31] + 0x00000000u;
|
|
/* 028F148C */ rbrew_write32(cpu->mem, _t12, cpu->r[9]);
|
|
L_028F1490: ; // 0x28f1490
|
|
/* 028F1490 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1490 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F1494 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1494 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F1498 */ cpu->lr = cpu->r[0];
|
|
/* 028F149C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F14A0 */ return;
|
|
}
|
|
|
|
// fn_028F14A4 @ 0x28f14a4
|
|
void Gambit_fn_028F14A4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F14A4: ; // 0x28f14a4
|
|
/* 028F14A4 */ _t0 = cpu->r[1] + 0xFFFFFF38u;
|
|
/* 028F14A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F14A4 */ cpu->r[1] = _t0;
|
|
/* 028F14A8 */ /* nop */
|
|
/* 028F14AC */ cpu->r[0] = cpu->lr;
|
|
/* 028F14B0 */ cpu->r[27] = cpu->r[3];
|
|
/* 028F14B4 */ cpu->r[25] = cpu->r[4];
|
|
/* 028F14B8 */ _t1 = cpu->r[1] + 0x000000CCu;
|
|
/* 028F14B8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F14BC */ rbrew_dispatch(cpu, 0x02d0a9f0u);
|
|
/* 028F14C0 */ cpu->r[7] = rbrew_rlwinm(cpu->r[3], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F14C4 */ cpu->r[6] = cpu->r[7] + 0x101F0000u;
|
|
/* 028F14C8 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028F14CC */ _t2 = cpu->r[12] + 0x0000726Cu;
|
|
/* 028F14CC */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F14CC */ cpu->r[12] = _t2;
|
|
/* 028F14D0 */ _t3 = cpu->r[6] + 0x000065D0u;
|
|
/* 028F14D0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F14D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[9]);
|
|
/* 028F14D8 */ _t4 = cpu->r[12] + 0x00000004u;
|
|
/* 028F14D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F14DC */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F14DC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F14DC */ if (_t6) goto L_028F14E0; else goto L_028F14E8;
|
|
L_028F14E0: ; // 0x28f14e0
|
|
/* 028F14E0 */ cpu->r[10] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F14E4 */ cpu->r[12] = cpu->r[12] + cpu->r[10];
|
|
L_028F14E8: ; // 0x28f14e8
|
|
/* 028F14E8 */ cpu->r[30] = cpu->r[27] + 0x0000003Cu;
|
|
/* 028F14EC */ cpu->r[31] = cpu->r[27] + 0x0000001Cu;
|
|
/* 028F14F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F14F4 */ _t7 = cpu->r[12] + 0x00000000u;
|
|
/* 028F14F4 */ rbrew_write32(cpu->mem, _t7, cpu->r[27]);
|
|
/* 028F14F8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F14F8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F14F8 */ if (_t9) goto L_028F15D0; else goto L_028F14FC;
|
|
L_028F14FC: ; // 0x28f14fc
|
|
/* 028F14FC */ cpu->r[26] = 0x00000000u;
|
|
/* 028F1500 */ cpu->r[24] = 0x00000001u;
|
|
/* 028F1504 */ cpu->r[29] = cpu->r[31];
|
|
L_028F1508: ; // 0x28f1508
|
|
/* 028F1508 */ _t10 = cpu->r[29] + 0x00000000u;
|
|
/* 028F1508 */ cpu->r[28] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F150C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F1510 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1510 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F1510 */ if (_t12) goto L_028F15C4; else goto L_028F1514;
|
|
L_028F1514: ; // 0x28f1514
|
|
/* 028F1514 */ cpu->r[11] = cpu->r[29] - cpu->r[31];
|
|
/* 028F1518 */ /* nop */
|
|
/* 028F151C */ /* nop */
|
|
/* 028F1520 */ cpu->r[0] = cpu->r[25] & cpu->r[12];
|
|
/* 028F1520 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F1524 */ _t13 = cpu->r[28] + 0x00000088u;
|
|
/* 028F1524 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F1528 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1528 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F1528 */ if (_t15) goto L_028F159C; else goto L_028F152C;
|
|
L_028F152C: ; // 0x28f152c
|
|
/* 028F152C */ cpu->r[0] = 0x0000000Du;
|
|
/* 028F1530 */ cpu->r[6] = cpu->r[28] + 0x0000009Cu;
|
|
/* 028F1534 */ cpu->ctr = cpu->r[0];
|
|
/* 028F1538 */ cpu->r[7] = cpu->r[1] + 0x00000004u;
|
|
L_028F153C: ; // 0x28f153c
|
|
/* 028F153C */ _t16 = cpu->r[6] + 0x00000004u;
|
|
/* 028F153C */ cpu->r[9] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F1540 */ _t17 = cpu->r[7] + 0x00000004u;
|
|
/* 028F1540 */ rbrew_write32(cpu->mem, _t17, cpu->r[9]);
|
|
/* 028F1544 */ _t18 = cpu->r[6] + 0x00000008u;
|
|
/* 028F1544 */ cpu->r[11] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F1548 */ _t19 = cpu->r[7] + 0x00000008u;
|
|
/* 028F1548 */ rbrew_write32(cpu->mem, _t19, cpu->r[11]);
|
|
/* 028F154C */ _t20 = cpu->r[6] + 0x0000000Cu;
|
|
/* 028F154C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F154C */ cpu->r[6] = _t20;
|
|
/* 028F1550 */ _t21 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028F1550 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
/* 028F1550 */ cpu->r[7] = _t21;
|
|
/* 028F1554 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F1554 */ _t22 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F1554 */ _t23 = _t22 >> (0x00000002u & 31u);
|
|
/* 028F1554 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028F1554 */ if (_t24) goto L_028F153C; else goto L_028F1558;
|
|
L_028F1558: ; // 0x28f1558
|
|
/* 028F1558 */ _t25 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F1558 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F155C */ _t26 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028F155C */ rbrew_write32(cpu->mem, _t26, cpu->r[10]);
|
|
/* 028F1560 */ cpu->r[0] = cpu->r[0] | 0x00000400u;
|
|
/* 028F1564 */ _t27 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F1564 */ rbrew_write32(cpu->mem, _t27, cpu->r[0]);
|
|
/* 028F1568 */ _t28 = cpu->r[29] + 0x00000000u;
|
|
/* 028F1568 */ cpu->r[10] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F156C */ _t29 = cpu->r[10] + 0x0000008Cu;
|
|
/* 028F156C */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F1570 */ _t30 = cpu->r[1] + 0x00000084u;
|
|
/* 028F1570 */ rbrew_write32(cpu->mem, _t30, cpu->r[24]);
|
|
/* 028F1574 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F1578 */ _t31 = cpu->r[1] + 0x00000080u;
|
|
/* 028F1578 */ rbrew_write32(cpu->mem, _t31, cpu->r[0]);
|
|
/* 028F157C */ rbrew_dispatch(cpu, 0x02d05ba8u);
|
|
/* 028F1580 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F1584 */ cpu->r[4] = cpu->r[23];
|
|
/* 028F1588 */ rbrew_dispatch(cpu, 0x02d05ff0u);
|
|
/* 028F158C */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 028F1590 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 028F1594 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1594 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028F1594 */ if (_t33) goto L_028F1598; else goto L_028F1508;
|
|
L_028F1598: ; // 0x28f1598
|
|
/* 028F1598 */ goto L_028F15D0;
|
|
L_028F159C: ; // 0x28f159c
|
|
/* 028F159C */ _t34 = cpu->r[28] + 0x00000084u;
|
|
/* 028F159C */ cpu->r[0] = rbrew_read8(cpu->mem, _t34);
|
|
/* 028F15A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F15A4 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F15A4 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F15A4 */ if (_t36) goto L_028F15B8; else goto L_028F15A8;
|
|
L_028F15A8: ; // 0x28f15a8
|
|
/* 028F15A8 */ cpu->r[3] = cpu->r[28];
|
|
/* 028F15AC */ Gambit_fn_028F1AC0(cpu);
|
|
/* 028F15B0 */ _t37 = cpu->r[28] + 0x00000084u;
|
|
/* 028F15B0 */ rbrew_write8(cpu->mem, _t37, (uint8_t)cpu->r[26]);
|
|
/* 028F15B4 */ _t38 = cpu->r[29] + 0x00000000u;
|
|
/* 028F15B4 */ cpu->r[28] = rbrew_read32(cpu->mem, _t38);
|
|
L_028F15B8: ; // 0x28f15b8
|
|
/* 028F15B8 */ cpu->r[3] = cpu->r[28] + 0x000000A0u;
|
|
/* 028F15BC */ cpu->r[4] = cpu->r[23];
|
|
/* 028F15C0 */ rbrew_dispatch(cpu, 0x02d05ff0u);
|
|
L_028F15C4: ; // 0x28f15c4
|
|
/* 028F15C4 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 028F15C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 028F15CC */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F15CC */ _t40 = _t39 & 0x00000001u;
|
|
/* 028F15CC */ if (_t40) goto L_028F15D0; else goto L_028F1508;
|
|
L_028F15D0: ; // 0x28f15d0
|
|
/* 028F15D0 */ _t41 = cpu->r[27] + 0x0000003Cu;
|
|
/* 028F15D0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F15D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F15D8 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F15D8 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028F15D8 */ if (_t43) goto L_028F1604; else goto L_028F15DC;
|
|
L_028F15DC: ; // 0x28f15dc
|
|
/* 028F15DC */ _t44 = cpu->r[31] + 0x00000084u;
|
|
/* 028F15DC */ cpu->r[8] = rbrew_read8(cpu->mem, _t44);
|
|
/* 028F15E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F15E4 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F15E4 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028F15E4 */ if (_t46) goto L_028F15FC; else goto L_028F15E8;
|
|
L_028F15E8: ; // 0x28f15e8
|
|
/* 028F15E8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F15EC */ Gambit_fn_028F1EAC(cpu);
|
|
/* 028F15F0 */ cpu->r[9] = 0x00000000u;
|
|
/* 028F15F4 */ _t47 = cpu->r[31] + 0x00000084u;
|
|
/* 028F15F4 */ rbrew_write8(cpu->mem, _t47, (uint8_t)cpu->r[9]);
|
|
/* 028F15F8 */ _t48 = cpu->r[27] + 0x0000003Cu;
|
|
/* 028F15F8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t48);
|
|
L_028F15FC: ; // 0x28f15fc
|
|
/* 028F15FC */ cpu->r[3] = cpu->r[31] + 0x0000009Cu;
|
|
/* 028F1600 */ rbrew_dispatch(cpu, 0x02d06088u);
|
|
L_028F1604: ; // 0x28f1604
|
|
/* 028F1604 */ /* nop */
|
|
/* 028F1608 */ _t49 = cpu->r[1] + 0x000000CCu;
|
|
/* 028F1608 */ cpu->r[0] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028F160C */ cpu->lr = cpu->r[0];
|
|
/* 028F1610 */ cpu->r[1] = cpu->r[1] + 0x000000C8u;
|
|
/* 028F1614 */ return;
|
|
}
|
|
|
|
// fn_028F1618 @ 0x28f1618
|
|
void Gambit_fn_028F1618(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028F1618: ; // 0x28f1618
|
|
/* 028F1618 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028F161C */ cpu->r[0] = 0x00000000u;
|
|
/* 028F1620 */ _t0 = cpu->r[12] + 0x0000726Cu;
|
|
/* 028F1620 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028F1620 */ cpu->r[12] = _t0;
|
|
/* 028F1624 */ _t1 = cpu->r[12] + 0x00000004u;
|
|
/* 028F1624 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F1628 */ return;
|
|
}
|
|
|
|
// fn_028F162C @ 0x28f162c
|
|
void Gambit_fn_028F162C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028F162C: ; // 0x28f162c
|
|
/* 028F162C */ cpu->r[12] = 0x101D0000u;
|
|
/* 028F1630 */ _t0 = cpu->r[12] + 0xFFFFD838u;
|
|
/* 028F1630 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F1634 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F1638 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028F163C */ cpu->r[12] = cpu->r[12] + 0x00001570u;
|
|
/* 028F1640 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1640 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028F1640 */ if (_t2) goto L_028F1644; else goto L_028F165C;
|
|
L_028F1644: ; // 0x28f1644
|
|
/* 028F1644 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F1648 */ cpu->r[9] = 0x00000001u;
|
|
/* 028F164C */ cpu->r[8] = 0x101D0000u;
|
|
/* 028F1650 */ cpu->r[0] = cpu->r[0] + 0xFFFFCC70u;
|
|
/* 028F1654 */ _t3 = cpu->r[8] + 0xFFFFD838u;
|
|
/* 028F1654 */ rbrew_write32(cpu->mem, _t3, cpu->r[9]);
|
|
/* 028F1658 */ _t4 = cpu->r[12] + 0x00000000u;
|
|
/* 028F1658 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
L_028F165C: ; // 0x28f165c
|
|
/* 028F165C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[12]);
|
|
/* 028F1660 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1660 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F1660 */ if (_t6) goto L_028F1664; else goto L_028F166C;
|
|
L_028F1664: ; // 0x28f1664
|
|
/* 028F1664 */ cpu->r[3] = 0x00000001u;
|
|
/* 028F1668 */ return;
|
|
L_028F166C: ; // 0x28f166c
|
|
/* 028F166C */ cpu->r[11] = 0x101D0000u;
|
|
/* 028F1670 */ _t7 = cpu->r[11] + 0xFFFFD82Cu;
|
|
/* 028F1670 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F1670 */ cpu->r[11] = _t7;
|
|
/* 028F1674 */ cpu->r[10] = 0x101D0000u;
|
|
/* 028F1678 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F167C */ cpu->r[10] = cpu->r[10] + 0x00001578u;
|
|
/* 028F1680 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1680 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F1680 */ if (_t9) goto L_028F1684; else goto L_028F1698;
|
|
L_028F1684: ; // 0x28f1684
|
|
/* 028F1684 */ cpu->r[12] = 0x10140000u;
|
|
/* 028F1688 */ cpu->r[9] = 0x00000001u;
|
|
/* 028F168C */ cpu->r[12] = cpu->r[12] + 0xFFFFCC60u;
|
|
/* 028F1690 */ _t10 = cpu->r[11] + 0x00000000u;
|
|
/* 028F1690 */ rbrew_write32(cpu->mem, _t10, cpu->r[9]);
|
|
/* 028F1694 */ _t11 = cpu->r[10] + 0x00000000u;
|
|
/* 028F1694 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
L_028F1698: ; // 0x28f1698
|
|
/* 028F1698 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[10]);
|
|
/* 028F169C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F169C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F169C */ if (_t13) goto L_028F16A0; else goto L_028F16A8;
|
|
L_028F16A0: ; // 0x28f16a0
|
|
/* 028F16A0 */ cpu->r[0] = 0x00000001u;
|
|
/* 028F16A4 */ goto L_028F16E0;
|
|
L_028F16A8: ; // 0x28f16a8
|
|
/* 028F16A8 */ cpu->r[8] = 0x101D0000u;
|
|
/* 028F16AC */ _t14 = cpu->r[8] + 0xFFFFD828u;
|
|
/* 028F16AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F16AC */ cpu->r[8] = _t14;
|
|
/* 028F16B0 */ cpu->r[11] = 0x101D0000u;
|
|
/* 028F16B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F16B8 */ cpu->r[11] = cpu->r[11] + 0x00001574u;
|
|
/* 028F16BC */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F16BC */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F16BC */ if (_t16) goto L_028F16C0; else goto L_028F16D4;
|
|
L_028F16C0: ; // 0x28f16c0
|
|
/* 028F16C0 */ cpu->r[10] = 0x10140000u;
|
|
/* 028F16C4 */ cpu->r[9] = 0x00000001u;
|
|
/* 028F16C8 */ cpu->r[10] = cpu->r[10] + 0xFFFFCC30u;
|
|
/* 028F16CC */ _t17 = cpu->r[8] + 0x00000000u;
|
|
/* 028F16CC */ rbrew_write32(cpu->mem, _t17, cpu->r[9]);
|
|
/* 028F16D0 */ _t18 = cpu->r[11] + 0x00000000u;
|
|
/* 028F16D0 */ rbrew_write32(cpu->mem, _t18, cpu->r[10]);
|
|
L_028F16D4: ; // 0x28f16d4
|
|
/* 028F16D4 */ cpu->r[12] = cpu->r[4] ^ cpu->r[11];
|
|
/* 028F16D8 */ cpu->r[0] = rbrew_clz32(cpu->r[12]);
|
|
/* 028F16DC */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x0000001Bu, 0x00000018u, 0x0000001Fu);
|
|
L_028F16E0: ; // 0x28f16e0
|
|
/* 028F16E0 */ cpu->r[3] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F16E4 */ return;
|
|
}
|
|
|
|
// fn_028F16E8 @ 0x28f16e8
|
|
void Gambit_fn_028F16E8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64;
|
|
|
|
L_028F0A70: ; // 0x28f0a70
|
|
/* 028F0A70 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028F0A70 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F0A70 */ cpu->r[1] = _t0;
|
|
/* 028F0A74 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028F0A74 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028F0A78 */ cpu->r[0] = cpu->lr;
|
|
/* 028F0A7C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0A7C */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028F0A80 */ /* nop */
|
|
/* 028F0A84 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028F0A84 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028F0A88 */ _t4 = cpu->r[1] + 0x00000020u;
|
|
/* 028F0A88 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028F0A8C */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0A8C */ rbrew_write32(cpu->mem, _t5, cpu->r[31]);
|
|
/* 028F0A90 */ cpu->r[28] = cpu->r[3];
|
|
/* 028F0A94 */ _t6 = cpu->r[1] + 0x00000010u;
|
|
/* 028F0A94 */ rbrew_write32(cpu->mem, _t6, cpu->r[30]);
|
|
/* 028F0A98 */ cpu->f[31] = cpu->f[1];
|
|
/* 028F0A9C */ cpu->r[31] = cpu->r[7];
|
|
/* 028F0AA0 */ _t7 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F0AA0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028F0AA4 */ cpu->r[29] = cpu->r[5];
|
|
/* 028F0AA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F0AA8 */ cpu->r[30] = cpu->r[6];
|
|
/* 028F0AAC */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0AAC */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F0AAC */ if (_t9) goto L_028F0C2C; else goto L_028F0AB0;
|
|
L_028F0AB0: ; // 0x28f0ab0
|
|
/* 028F0AB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F0AB4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0AB4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F0AB4 */ if (_t11) goto L_028F0AB8; else goto L_028F0BE8;
|
|
L_028F0AB8: ; // 0x28f0ab8
|
|
/* 028F0AB8 */ _t12 = cpu->r[28] + 0x0000003Cu;
|
|
/* 028F0AB8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F0ABC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F0AC0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0AC0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F0AC0 */ if (_t14) goto L_028F0AD4; else goto L_028F0AC4;
|
|
L_028F0AC4: ; // 0x28f0ac4
|
|
/* 028F0AC4 */ cpu->f[1] = cpu->f[31];
|
|
/* 028F0AC8 */ cpu->r[3] = cpu->r[8] + 0x0000009Cu;
|
|
/* 028F0ACC */ cpu->r[4] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F0AD0 */ rbrew_dispatch(cpu, 0x02d05fe0u);
|
|
L_028F0AD4: ; // 0x28f0ad4
|
|
/* 028F0AD4 */ cpu->r[11] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F0AD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028F0AD8 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0AD8 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F0AD8 */ if (_t16) goto L_028F0B8C; else goto L_028F0ADC;
|
|
L_028F0ADC: ; // 0x28f0adc
|
|
/* 028F0ADC */ _t17 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028F0ADC */ cpu->r[9] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F0AE0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Du, 0x0000001Eu);
|
|
/* 028F0AE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F0AE4 */ cpu->r[3] = cpu->r[9] + 0x000000A0u;
|
|
/* 028F0AE8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0AE8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F0AE8 */ if (_t19) goto L_028F0AEC; else goto L_028F0B10;
|
|
L_028F0AEC: ; // 0x28f0aec
|
|
/* 028F0AEC */ _t20 = cpu->r[30] + 0x00000008u;
|
|
/* 028F0AEC */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028F0AF0 */ _t21 = cpu->r[30] + 0x00000004u;
|
|
/* 028F0AF0 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028F0AF4 */ _t22 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F0AF4 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028F0AF8 */ _t23 = cpu->r[30] + 0x00000000u;
|
|
/* 028F0AF8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 028F0AFC */ rbrew_dispatch(cpu, 0x02d058a0u);
|
|
/* 028F0B00 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F0B04 */ _t24 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F0B04 */ cpu->r[3] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F0B08 */ Gambit_fn_02906024(cpu);
|
|
/* 028F0B0C */ goto L_028F0C2C;
|
|
L_028F0B10: ; // 0x28f0b10
|
|
/* 028F0B10 */ _t25 = cpu->r[28] + 0x0000003Cu;
|
|
/* 028F0B10 */ cpu->r[10] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F0B14 */ cpu->r[7] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Eu, 0x0000001Eu);
|
|
/* 028F0B14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F0B18 */ _t26 = cpu->r[30] + 0x00000008u;
|
|
/* 028F0B18 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028F0B1C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0B1C */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F0B1C */ if (_t28) goto L_028F0B20; else goto L_028F0B50;
|
|
L_028F0B20: ; // 0x28f0b20
|
|
/* 028F0B20 */ _t29 = cpu->r[30] + 0x00000000u;
|
|
/* 028F0B20 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t29);
|
|
/* 028F0B24 */ cpu->r[4] = cpu->r[10] + 0x0000009Cu;
|
|
/* 028F0B28 */ _t30 = cpu->r[30] + 0x00000004u;
|
|
/* 028F0B28 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 028F0B2C */ cpu->f[5] = cpu->f[31];
|
|
/* 028F0B30 */ _t31 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F0B30 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 028F0B34 */ cpu->r[6] = 0x00000002u;
|
|
/* 028F0B38 */ cpu->r[5] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F0B3C */ rbrew_dispatch(cpu, 0x02d05898u);
|
|
/* 028F0B40 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F0B44 */ _t32 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F0B44 */ cpu->r[3] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F0B48 */ Gambit_fn_02906024(cpu);
|
|
/* 028F0B4C */ goto L_028F0C2C;
|
|
L_028F0B50: ; // 0x28f0b50
|
|
/* 028F0B50 */ cpu->r[8] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Du, 0x0000001Du);
|
|
/* 028F0B50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F0B54 */ cpu->r[6] = 0x00000003u;
|
|
/* 028F0B58 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0B58 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F0B58 */ if (_t34) goto L_028F0B5C; else goto L_028F0B60;
|
|
L_028F0B5C: ; // 0x28f0b5c
|
|
/* 028F0B5C */ cpu->r[6] = 0x00000001u;
|
|
L_028F0B60: ; // 0x28f0b60
|
|
/* 028F0B60 */ _t35 = cpu->r[30] + 0x00000000u;
|
|
/* 028F0B60 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 028F0B64 */ cpu->r[4] = cpu->r[10] + 0x0000009Cu;
|
|
/* 028F0B68 */ _t36 = cpu->r[30] + 0x00000004u;
|
|
/* 028F0B68 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t36);
|
|
/* 028F0B6C */ cpu->f[5] = cpu->f[31];
|
|
/* 028F0B70 */ _t37 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F0B70 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028F0B74 */ cpu->r[5] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F0B78 */ rbrew_dispatch(cpu, 0x02d05898u);
|
|
/* 028F0B7C */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F0B80 */ _t38 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F0B80 */ cpu->r[3] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F0B84 */ Gambit_fn_02906024(cpu);
|
|
/* 028F0B88 */ goto L_028F0C2C;
|
|
L_028F0B8C: ; // 0x28f0b8c
|
|
/* 028F0B8C */ _t39 = cpu->r[28] + 0x0000003Cu;
|
|
/* 028F0B8C */ cpu->r[7] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F0B90 */ cpu->r[12] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Eu, 0x0000001Eu);
|
|
/* 028F0B90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F0B94 */ cpu->r[3] = cpu->r[7] + 0x0000009Cu;
|
|
/* 028F0B98 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0B98 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028F0B98 */ if (_t41) goto L_028F0B9C; else goto L_028F0BBC;
|
|
L_028F0B9C: ; // 0x28f0b9c
|
|
/* 028F0B9C */ cpu->f[1] = cpu->f[31];
|
|
/* 028F0BA0 */ cpu->r[5] = 0x00000002u;
|
|
/* 028F0BA4 */ cpu->r[4] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F0BA8 */ rbrew_dispatch(cpu, 0x02d058a8u);
|
|
/* 028F0BAC */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F0BB0 */ _t42 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F0BB0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F0BB4 */ Gambit_fn_02906024(cpu);
|
|
/* 028F0BB8 */ goto L_028F0C2C;
|
|
L_028F0BBC: ; // 0x28f0bbc
|
|
/* 028F0BBC */ cpu->r[0] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Du, 0x0000001Du);
|
|
/* 028F0BBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F0BC0 */ cpu->r[5] = 0x00000003u;
|
|
/* 028F0BC4 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0BC4 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F0BC4 */ if (_t44) goto L_028F0BC8; else goto L_028F0BCC;
|
|
L_028F0BC8: ; // 0x28f0bc8
|
|
/* 028F0BC8 */ cpu->r[5] = 0x00000001u;
|
|
L_028F0BCC: ; // 0x28f0bcc
|
|
/* 028F0BCC */ cpu->f[1] = cpu->f[31];
|
|
/* 028F0BD0 */ cpu->r[4] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F0BD4 */ rbrew_dispatch(cpu, 0x02d058a8u);
|
|
/* 028F0BD8 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F0BDC */ _t45 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F0BDC */ cpu->r[3] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F0BE0 */ Gambit_fn_02906024(cpu);
|
|
/* 028F0BE4 */ goto L_028F0C2C;
|
|
L_028F0BE8: ; // 0x28f0be8
|
|
/* 028F0BE8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F0BE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F0BEC */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F0BEC */ _t47 = _t46 & 0x00000001u;
|
|
/* 028F0BEC */ if (_t47) goto L_028F0C20; else goto L_028F0BF0;
|
|
L_028F0BF0: ; // 0x28f0bf0
|
|
/* 028F0BF0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000008u);
|
|
/* 028F0BF4 */ cpu->r[12] = cpu->r[28] + 0x0000001Cu;
|
|
/* 028F0BF8 */ _t48 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F0BF8 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F0BF8 */ if (_t49) goto L_028F0BFC; else goto L_028F0C04;
|
|
L_028F0BFC: ; // 0x28f0bfc
|
|
/* 028F0BFC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F0C00 */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
L_028F0C04: ; // 0x28f0c04
|
|
/* 028F0C04 */ _t50 = cpu->r[12] + 0x00000000u;
|
|
/* 028F0C04 */ cpu->r[10] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F0C08 */ _t51 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F0C08 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t51);
|
|
/* 028F0C0C */ cpu->r[3] = cpu->r[10] + 0x000000A0u;
|
|
/* 028F0C10 */ _t52 = cpu->r[30] + 0x00000008u;
|
|
/* 028F0C10 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028F0C14 */ _t53 = cpu->r[30] + 0x00000004u;
|
|
/* 028F0C14 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t53);
|
|
/* 028F0C18 */ _t54 = cpu->r[30] + 0x00000000u;
|
|
/* 028F0C18 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t54);
|
|
/* 028F0C1C */ rbrew_dispatch(cpu, 0x02d058a0u);
|
|
L_028F0C20: ; // 0x28f0c20
|
|
/* 028F0C20 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F0C24 */ _t55 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F0C24 */ cpu->r[3] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028F0C28 */ Gambit_fn_02906024(cpu);
|
|
L_028F0C2C: ; // 0x28f0c2c
|
|
/* 028F0C2C */ _t56 = cpu->r[1] + 0x00000008u;
|
|
/* 028F0C2C */ cpu->r[28] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028F0C30 */ _t57 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F0C30 */ cpu->r[29] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028F0C34 */ _t58 = cpu->r[1] + 0x00000020u;
|
|
/* 028F0C34 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t58);
|
|
/* 028F0C38 */ _t59 = cpu->r[1] + 0x00000010u;
|
|
/* 028F0C38 */ cpu->r[30] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028F0C3C */ _t60 = cpu->r[1] + 0x00000018u;
|
|
/* 028F0C3C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t60);
|
|
/* 028F0C40 */ _t61 = cpu->r[1] + 0x00000014u;
|
|
/* 028F0C40 */ cpu->r[31] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028F0C44 */ _t62 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F0C44 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028F0C44 */ if (_t63) goto L_028F0C48; // else: addr-0 trap, fall-through
|
|
L_028F0C48: ; // 0x28f0c48
|
|
/* 028F0C48 */ _t64 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F0C48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028F0C4C */ cpu->lr = cpu->r[0];
|
|
/* 028F0C50 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028F0C54 */ return;
|
|
L_028F16E8: ; // 0x28f16e8
|
|
/* 028F16E8 */ cpu->r[7] = cpu->r[6];
|
|
/* 028F16EC */ cpu->r[6] = cpu->r[5];
|
|
/* 028F16F0 */ cpu->r[5] = cpu->r[4];
|
|
/* 028F16F4 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F16F8 */ goto L_028F0A70;
|
|
}
|
|
|
|
// fn_028F16FC @ 0x28f16fc
|
|
void Gambit_fn_028F16FC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F14A4: ; // 0x28f14a4
|
|
/* 028F14A4 */ _t0 = cpu->r[1] + 0xFFFFFF38u;
|
|
/* 028F14A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F14A4 */ cpu->r[1] = _t0;
|
|
/* 028F14A8 */ /* nop */
|
|
/* 028F14AC */ cpu->r[0] = cpu->lr;
|
|
/* 028F14B0 */ cpu->r[27] = cpu->r[3];
|
|
/* 028F14B4 */ cpu->r[25] = cpu->r[4];
|
|
/* 028F14B8 */ _t1 = cpu->r[1] + 0x000000CCu;
|
|
/* 028F14B8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F14BC */ rbrew_dispatch(cpu, 0x02d0a9f0u);
|
|
/* 028F14C0 */ cpu->r[7] = rbrew_rlwinm(cpu->r[3], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F14C4 */ cpu->r[6] = cpu->r[7] + 0x101F0000u;
|
|
/* 028F14C8 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028F14CC */ _t2 = cpu->r[12] + 0x0000726Cu;
|
|
/* 028F14CC */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F14CC */ cpu->r[12] = _t2;
|
|
/* 028F14D0 */ _t3 = cpu->r[6] + 0x000065D0u;
|
|
/* 028F14D0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F14D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[9]);
|
|
/* 028F14D8 */ _t4 = cpu->r[12] + 0x00000004u;
|
|
/* 028F14D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F14DC */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F14DC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F14DC */ if (_t6) goto L_028F14E0; else goto L_028F14E8;
|
|
L_028F14E0: ; // 0x28f14e0
|
|
/* 028F14E0 */ cpu->r[10] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F14E4 */ cpu->r[12] = cpu->r[12] + cpu->r[10];
|
|
L_028F14E8: ; // 0x28f14e8
|
|
/* 028F14E8 */ cpu->r[30] = cpu->r[27] + 0x0000003Cu;
|
|
/* 028F14EC */ cpu->r[31] = cpu->r[27] + 0x0000001Cu;
|
|
/* 028F14F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F14F4 */ _t7 = cpu->r[12] + 0x00000000u;
|
|
/* 028F14F4 */ rbrew_write32(cpu->mem, _t7, cpu->r[27]);
|
|
/* 028F14F8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F14F8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F14F8 */ if (_t9) goto L_028F15D0; else goto L_028F14FC;
|
|
L_028F14FC: ; // 0x28f14fc
|
|
/* 028F14FC */ cpu->r[26] = 0x00000000u;
|
|
/* 028F1500 */ cpu->r[24] = 0x00000001u;
|
|
/* 028F1504 */ cpu->r[29] = cpu->r[31];
|
|
L_028F1508: ; // 0x28f1508
|
|
/* 028F1508 */ _t10 = cpu->r[29] + 0x00000000u;
|
|
/* 028F1508 */ cpu->r[28] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F150C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F1510 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1510 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F1510 */ if (_t12) goto L_028F15C4; else goto L_028F1514;
|
|
L_028F1514: ; // 0x28f1514
|
|
/* 028F1514 */ cpu->r[11] = cpu->r[29] - cpu->r[31];
|
|
/* 028F1518 */ /* nop */
|
|
/* 028F151C */ /* nop */
|
|
/* 028F1520 */ cpu->r[0] = cpu->r[25] & cpu->r[12];
|
|
/* 028F1520 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F1524 */ _t13 = cpu->r[28] + 0x00000088u;
|
|
/* 028F1524 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F1528 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1528 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F1528 */ if (_t15) goto L_028F159C; else goto L_028F152C;
|
|
L_028F152C: ; // 0x28f152c
|
|
/* 028F152C */ cpu->r[0] = 0x0000000Du;
|
|
/* 028F1530 */ cpu->r[6] = cpu->r[28] + 0x0000009Cu;
|
|
/* 028F1534 */ cpu->ctr = cpu->r[0];
|
|
/* 028F1538 */ cpu->r[7] = cpu->r[1] + 0x00000004u;
|
|
L_028F153C: ; // 0x28f153c
|
|
/* 028F153C */ _t16 = cpu->r[6] + 0x00000004u;
|
|
/* 028F153C */ cpu->r[9] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F1540 */ _t17 = cpu->r[7] + 0x00000004u;
|
|
/* 028F1540 */ rbrew_write32(cpu->mem, _t17, cpu->r[9]);
|
|
/* 028F1544 */ _t18 = cpu->r[6] + 0x00000008u;
|
|
/* 028F1544 */ cpu->r[11] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F1548 */ _t19 = cpu->r[7] + 0x00000008u;
|
|
/* 028F1548 */ rbrew_write32(cpu->mem, _t19, cpu->r[11]);
|
|
/* 028F154C */ _t20 = cpu->r[6] + 0x0000000Cu;
|
|
/* 028F154C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F154C */ cpu->r[6] = _t20;
|
|
/* 028F1550 */ _t21 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028F1550 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
/* 028F1550 */ cpu->r[7] = _t21;
|
|
/* 028F1554 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F1554 */ _t22 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F1554 */ _t23 = _t22 >> (0x00000002u & 31u);
|
|
/* 028F1554 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028F1554 */ if (_t24) goto L_028F153C; else goto L_028F1558;
|
|
L_028F1558: ; // 0x28f1558
|
|
/* 028F1558 */ _t25 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F1558 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F155C */ _t26 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028F155C */ rbrew_write32(cpu->mem, _t26, cpu->r[10]);
|
|
/* 028F1560 */ cpu->r[0] = cpu->r[0] | 0x00000400u;
|
|
/* 028F1564 */ _t27 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F1564 */ rbrew_write32(cpu->mem, _t27, cpu->r[0]);
|
|
/* 028F1568 */ _t28 = cpu->r[29] + 0x00000000u;
|
|
/* 028F1568 */ cpu->r[10] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F156C */ _t29 = cpu->r[10] + 0x0000008Cu;
|
|
/* 028F156C */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F1570 */ _t30 = cpu->r[1] + 0x00000084u;
|
|
/* 028F1570 */ rbrew_write32(cpu->mem, _t30, cpu->r[24]);
|
|
/* 028F1574 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F1578 */ _t31 = cpu->r[1] + 0x00000080u;
|
|
/* 028F1578 */ rbrew_write32(cpu->mem, _t31, cpu->r[0]);
|
|
/* 028F157C */ rbrew_dispatch(cpu, 0x02d05ba8u);
|
|
/* 028F1580 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F1584 */ cpu->r[4] = cpu->r[23];
|
|
/* 028F1588 */ rbrew_dispatch(cpu, 0x02d05ff0u);
|
|
/* 028F158C */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 028F1590 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 028F1594 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1594 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028F1594 */ if (_t33) goto L_028F1598; else goto L_028F1508;
|
|
L_028F1598: ; // 0x28f1598
|
|
/* 028F1598 */ goto L_028F15D0;
|
|
L_028F159C: ; // 0x28f159c
|
|
/* 028F159C */ _t34 = cpu->r[28] + 0x00000084u;
|
|
/* 028F159C */ cpu->r[0] = rbrew_read8(cpu->mem, _t34);
|
|
/* 028F15A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F15A4 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F15A4 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F15A4 */ if (_t36) goto L_028F15B8; else goto L_028F15A8;
|
|
L_028F15A8: ; // 0x28f15a8
|
|
/* 028F15A8 */ cpu->r[3] = cpu->r[28];
|
|
/* 028F15AC */ Gambit_fn_028F1AC0(cpu);
|
|
/* 028F15B0 */ _t37 = cpu->r[28] + 0x00000084u;
|
|
/* 028F15B0 */ rbrew_write8(cpu->mem, _t37, (uint8_t)cpu->r[26]);
|
|
/* 028F15B4 */ _t38 = cpu->r[29] + 0x00000000u;
|
|
/* 028F15B4 */ cpu->r[28] = rbrew_read32(cpu->mem, _t38);
|
|
L_028F15B8: ; // 0x28f15b8
|
|
/* 028F15B8 */ cpu->r[3] = cpu->r[28] + 0x000000A0u;
|
|
/* 028F15BC */ cpu->r[4] = cpu->r[23];
|
|
/* 028F15C0 */ rbrew_dispatch(cpu, 0x02d05ff0u);
|
|
L_028F15C4: ; // 0x28f15c4
|
|
/* 028F15C4 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 028F15C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 028F15CC */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F15CC */ _t40 = _t39 & 0x00000001u;
|
|
/* 028F15CC */ if (_t40) goto L_028F15D0; else goto L_028F1508;
|
|
L_028F15D0: ; // 0x28f15d0
|
|
/* 028F15D0 */ _t41 = cpu->r[27] + 0x0000003Cu;
|
|
/* 028F15D0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F15D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F15D8 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F15D8 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028F15D8 */ if (_t43) goto L_028F1604; else goto L_028F15DC;
|
|
L_028F15DC: ; // 0x28f15dc
|
|
/* 028F15DC */ _t44 = cpu->r[31] + 0x00000084u;
|
|
/* 028F15DC */ cpu->r[8] = rbrew_read8(cpu->mem, _t44);
|
|
/* 028F15E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F15E4 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F15E4 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028F15E4 */ if (_t46) goto L_028F15FC; else goto L_028F15E8;
|
|
L_028F15E8: ; // 0x28f15e8
|
|
/* 028F15E8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F15EC */ Gambit_fn_028F1EAC(cpu);
|
|
/* 028F15F0 */ cpu->r[9] = 0x00000000u;
|
|
/* 028F15F4 */ _t47 = cpu->r[31] + 0x00000084u;
|
|
/* 028F15F4 */ rbrew_write8(cpu->mem, _t47, (uint8_t)cpu->r[9]);
|
|
/* 028F15F8 */ _t48 = cpu->r[27] + 0x0000003Cu;
|
|
/* 028F15F8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t48);
|
|
L_028F15FC: ; // 0x28f15fc
|
|
/* 028F15FC */ cpu->r[3] = cpu->r[31] + 0x0000009Cu;
|
|
/* 028F1600 */ rbrew_dispatch(cpu, 0x02d06088u);
|
|
L_028F1604: ; // 0x28f1604
|
|
/* 028F1604 */ /* nop */
|
|
/* 028F1608 */ _t49 = cpu->r[1] + 0x000000CCu;
|
|
/* 028F1608 */ cpu->r[0] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028F160C */ cpu->lr = cpu->r[0];
|
|
/* 028F1610 */ cpu->r[1] = cpu->r[1] + 0x000000C8u;
|
|
/* 028F1614 */ return;
|
|
L_028F16FC: ; // 0x28f16fc
|
|
/* 028F16FC */ cpu->r[4] = 0x00000000u;
|
|
/* 028F1700 */ goto L_028F14A4;
|
|
}
|
|
|
|
// fn_028F1704 @ 0x28f1704
|
|
void Gambit_fn_028F1704(CPUState* cpu) {
|
|
L_028F1704: ; // 0x28f1704
|
|
/* 028F1704 */ return;
|
|
}
|
|
|
|
// fn_028F1708 @ 0x28f1708
|
|
void Gambit_fn_028F1708(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _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_028F1708: ; // 0x28f1708
|
|
/* 028F1708 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F1708 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1708 */ cpu->r[1] = _t0;
|
|
/* 028F170C */ _t1 = cpu->r[5] + 0x00000000u;
|
|
/* 028F170C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028F1710 */ cpu->f[0] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028F1714 */ _t2 = cpu->r[4] + 0x00000074u;
|
|
/* 028F1714 */ cpu->r[10] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F1718 */ cpu->r[8] = cpu->r[1] + 0x00000008u;
|
|
/* 028F171C */ /* nop */
|
|
/* 028F1720 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028F1720 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F1724 */ /* nop */
|
|
/* 028F1728 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F172C */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F172C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F172C */ if (_t5) goto L_028F1730; else goto L_028F1734;
|
|
L_028F1730: ; // 0x28f1730
|
|
/* 028F1730 */ cpu->r[0] = 0x00000000u;
|
|
L_028F1734: ; // 0x28f1734
|
|
/* 028F1734 */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 028F1734 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028F1738 */ _t7 = cpu->r[5] + 0x00000004u;
|
|
/* 028F1738 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028F173C */ cpu->f[0] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028F1740 */ /* nop */
|
|
/* 028F1744 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028F1744 */ cpu->r[8] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F1748 */ _t9 = cpu->r[4] + 0x00000074u;
|
|
/* 028F1748 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F174C */ /* nop */
|
|
/* 028F1750 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F1754 */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F1754 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F1754 */ if (_t11) goto L_028F1758; else goto L_028F175C;
|
|
L_028F1758: ; // 0x28f1758
|
|
/* 028F1758 */ cpu->r[0] = 0x00000000u;
|
|
L_028F175C: ; // 0x28f175c
|
|
/* 028F175C */ _t12 = cpu->r[3] + 0x00000004u;
|
|
/* 028F175C */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 028F1760 */ _t13 = cpu->r[5] + 0x00000000u;
|
|
/* 028F1760 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028F1764 */ _t14 = cpu->r[6] + 0x00000000u;
|
|
/* 028F1764 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028F1768 */ cpu->f[0] = cpu->f[13] + cpu->f[0];
|
|
/* 028F176C */ cpu->f[0] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028F1770 */ _t15 = cpu->r[4] + 0x00000074u;
|
|
/* 028F1770 */ cpu->r[11] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F1774 */ cpu->r[12] = cpu->r[1] + 0x00000008u;
|
|
/* 028F1778 */ /* nop */
|
|
/* 028F177C */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028F177C */ cpu->r[9] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F1780 */ /* nop */
|
|
/* 028F1784 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000001u);
|
|
/* 028F1788 */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F1788 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F1788 */ if (_t18) goto L_028F178C; else goto L_028F1790;
|
|
L_028F178C: ; // 0x28f178c
|
|
/* 028F178C */ cpu->r[0] = 0x00000001u;
|
|
L_028F1790: ; // 0x28f1790
|
|
/* 028F1790 */ _t19 = cpu->r[3] + 0x00000008u;
|
|
/* 028F1790 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028F1794 */ _t20 = cpu->r[5] + 0x00000004u;
|
|
/* 028F1794 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028F1798 */ _t21 = cpu->r[6] + 0x00000004u;
|
|
/* 028F1798 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028F179C */ cpu->f[0] = cpu->f[13] + cpu->f[0];
|
|
/* 028F17A0 */ cpu->f[0] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028F17A4 */ /* nop */
|
|
/* 028F17A8 */ _t22 = cpu->r[1] + 0x00000008u;
|
|
/* 028F17A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F17AC */ _t23 = cpu->r[4] + 0x00000074u;
|
|
/* 028F17AC */ cpu->r[9] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F17B0 */ /* nop */
|
|
/* 028F17B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000001u);
|
|
/* 028F17B8 */ _t24 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F17B8 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F17B8 */ if (_t25) goto L_028F17BC; else goto L_028F17C0;
|
|
L_028F17BC: ; // 0x28f17bc
|
|
/* 028F17BC */ cpu->r[0] = 0x00000001u;
|
|
L_028F17C0: ; // 0x28f17c0
|
|
/* 028F17C0 */ _t26 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F17C0 */ rbrew_write32(cpu->mem, _t26, cpu->r[0]);
|
|
/* 028F17C4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F17C8 */ return;
|
|
}
|
|
|
|
// fn_028F17CC @ 0x28f17cc
|
|
void Gambit_fn_028F17CC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _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_028F17CC: ; // 0x28f17cc
|
|
/* 028F17CC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F17CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F17CC */ cpu->r[1] = _t0;
|
|
/* 028F17D0 */ _t1 = cpu->r[5] + 0x00000000u;
|
|
/* 028F17D0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028F17D4 */ cpu->f[0] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028F17D8 */ _t2 = cpu->r[4] + 0x00000074u;
|
|
/* 028F17D8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F17DC */ cpu->r[8] = cpu->r[1] + 0x00000008u;
|
|
/* 028F17E0 */ /* nop */
|
|
/* 028F17E4 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028F17E4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F17E8 */ /* nop */
|
|
/* 028F17EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F17F0 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F17F0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F17F0 */ if (_t5) goto L_028F17F4; else goto L_028F17F8;
|
|
L_028F17F4: ; // 0x28f17f4
|
|
/* 028F17F4 */ cpu->r[0] = 0x00000000u;
|
|
L_028F17F8: ; // 0x28f17f8
|
|
/* 028F17F8 */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 028F17F8 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028F17FC */ _t7 = cpu->r[5] + 0x00000004u;
|
|
/* 028F17FC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 028F1800 */ cpu->f[0] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028F1804 */ /* nop */
|
|
/* 028F1808 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028F1808 */ cpu->r[8] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F180C */ _t9 = cpu->r[4] + 0x00000074u;
|
|
/* 028F180C */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F1810 */ /* nop */
|
|
/* 028F1814 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F1818 */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F1818 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F1818 */ if (_t11) goto L_028F181C; else goto L_028F1820;
|
|
L_028F181C: ; // 0x28f181c
|
|
/* 028F181C */ cpu->r[0] = 0x00000000u;
|
|
L_028F1820: ; // 0x28f1820
|
|
/* 028F1820 */ _t12 = cpu->r[3] + 0x00000004u;
|
|
/* 028F1820 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 028F1824 */ _t13 = cpu->r[5] + 0x00000000u;
|
|
/* 028F1824 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028F1828 */ _t14 = cpu->r[6] + 0x00000000u;
|
|
/* 028F1828 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028F182C */ cpu->f[0] = cpu->f[13] + cpu->f[0];
|
|
/* 028F1830 */ cpu->f[0] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028F1834 */ _t15 = cpu->r[4] + 0x00000074u;
|
|
/* 028F1834 */ cpu->r[11] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F1838 */ cpu->r[12] = cpu->r[1] + 0x00000008u;
|
|
/* 028F183C */ /* nop */
|
|
/* 028F1840 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028F1840 */ cpu->r[9] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F1844 */ /* nop */
|
|
/* 028F1848 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000001u);
|
|
/* 028F184C */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F184C */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F184C */ if (_t18) goto L_028F1850; else goto L_028F1854;
|
|
L_028F1850: ; // 0x28f1850
|
|
/* 028F1850 */ cpu->r[0] = 0x00000001u;
|
|
L_028F1854: ; // 0x28f1854
|
|
/* 028F1854 */ _t19 = cpu->r[3] + 0x00000008u;
|
|
/* 028F1854 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028F1858 */ _t20 = cpu->r[5] + 0x00000004u;
|
|
/* 028F1858 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 028F185C */ _t21 = cpu->r[6] + 0x00000004u;
|
|
/* 028F185C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028F1860 */ cpu->f[0] = cpu->f[13] + cpu->f[0];
|
|
/* 028F1864 */ cpu->f[0] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028F1868 */ /* nop */
|
|
/* 028F186C */ _t22 = cpu->r[1] + 0x00000008u;
|
|
/* 028F186C */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F1870 */ _t23 = cpu->r[4] + 0x00000074u;
|
|
/* 028F1870 */ cpu->r[9] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F1874 */ /* nop */
|
|
/* 028F1878 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000001u);
|
|
/* 028F187C */ _t24 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F187C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F187C */ if (_t25) goto L_028F1880; else goto L_028F1884;
|
|
L_028F1880: ; // 0x28f1880
|
|
/* 028F1880 */ cpu->r[0] = 0x00000001u;
|
|
L_028F1884: ; // 0x28f1884
|
|
/* 028F1884 */ _t26 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F1884 */ rbrew_write32(cpu->mem, _t26, cpu->r[0]);
|
|
/* 028F1888 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F188C */ return;
|
|
}
|
|
|
|
// fn_028F1890 @ 0x28f1890
|
|
void Gambit_fn_028F1890(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028F1890: ; // 0x28f1890
|
|
/* 028F1890 */ cpu->r[9] = cpu->r[3];
|
|
/* 028F1894 */ cpu->r[5] = 0x0000001Du;
|
|
/* 028F1898 */ _t0 = cpu->r[9] + 0x00000004u;
|
|
/* 028F1898 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F189C */ cpu->ctr = cpu->r[5];
|
|
/* 028F18A0 */ cpu->r[12] = cpu->r[11] ^ 0x00000006u;
|
|
/* 028F18A4 */ cpu->r[0] = rbrew_clz32(cpu->r[12]);
|
|
/* 028F18A8 */ cpu->r[8] = cpu->r[9];
|
|
/* 028F18AC */ cpu->r[10] = rbrew_rlwinm(cpu->r[0], 0x0000001Bu, 0x00000005u, 0x0000001Fu);
|
|
/* 028F18B0 */ cpu->r[12] = cpu->r[9] + 0x0000009Cu;
|
|
/* 028F18B4 */ _t1 = cpu->r[9] + 0x00000090u;
|
|
/* 028F18B4 */ rbrew_write8(cpu->mem, _t1, (uint8_t)cpu->r[10]);
|
|
L_028F18B8: ; // 0x28f18b8
|
|
/* 028F18B8 */ _t2 = cpu->r[8] + 0x00000004u;
|
|
/* 028F18B8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F18B8 */ cpu->r[8] = _t2;
|
|
/* 028F18BC */ _t3 = cpu->r[12] + 0x00000004u;
|
|
/* 028F18BC */ rbrew_write32(cpu->mem, _t3, cpu->r[6]);
|
|
/* 028F18BC */ cpu->r[12] = _t3;
|
|
/* 028F18C0 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F18C0 */ _t4 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F18C0 */ _t5 = _t4 >> (0x00000002u & 31u);
|
|
/* 028F18C0 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F18C0 */ if (_t6) goto L_028F18B8; else goto L_028F18C4;
|
|
L_028F18C4: ; // 0x28f18c4
|
|
/* 028F18C4 */ _t7 = cpu->r[9] + 0x00000090u;
|
|
/* 028F18C4 */ cpu->r[8] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028F18C8 */ cpu->r[7] = 0x00000002u;
|
|
/* 028F18CC */ _t8 = cpu->r[9] + 0x000000BCu;
|
|
/* 028F18CC */ rbrew_write32(cpu->mem, _t8, cpu->r[7]);
|
|
/* 028F18D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F18D4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F18D4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F18D4 */ if (_t10) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F18D4 */ goto L_028F18D8;
|
|
L_028F18D8: ; // 0x28f18d8
|
|
/* 028F18D8 */ cpu->r[5] = cpu->r[9] + 0x00000098u;
|
|
/* 028F18DC */ cpu->r[4] = cpu->r[9] + 0x00000094u;
|
|
/* 028F18E0 */ cpu->r[3] = cpu->r[9] + 0x000000A0u;
|
|
/* 028F18E4 */ rbrew_dispatch(cpu, 0x02d05848u); return;
|
|
}
|
|
|
|
// fn_028F18E8 @ 0x28f18e8
|
|
void Gambit_fn_028F18E8(CPUState* cpu) {
|
|
uint32_t _t0, _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_028F18E8: ; // 0x28f18e8
|
|
/* 028F18E8 */ cpu->r[0] = cpu->lr;
|
|
/* 028F18EC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F18EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F18EC */ cpu->r[1] = _t0;
|
|
/* 028F18F0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F18F0 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F18F4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F18F4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F18F8 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028F18F8 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028F18FC */ cpu->r[31] = cpu->r[3];
|
|
/* 028F18FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F1900 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F1900 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F1904 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1904 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F1904 */ if (_t6) goto L_028F1908; else goto L_028F1918;
|
|
L_028F1908: ; // 0x28f1908
|
|
/* 028F1908 */ cpu->r[3] = 0x0000013Cu;
|
|
/* 028F190C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F1910 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1910 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F1914 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1914 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F1914 */ if (_t8) goto L_028F1974; else goto L_028F1918;
|
|
L_028F1918: ; // 0x28f1918
|
|
/* 028F1918 */ cpu->r[30] = cpu->r[31];
|
|
/* 028F1918 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F191C */ cpu->r[29] = 0x00000000u;
|
|
/* 028F1920 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1920 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F1920 */ if (_t10) goto L_028F1924; else goto L_028F1934;
|
|
L_028F1924: ; // 0x28f1924
|
|
/* 028F1924 */ cpu->r[3] = 0x00000090u;
|
|
/* 028F1928 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F192C */ cpu->r[30] = cpu->r[3];
|
|
/* 028F192C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F1930 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1930 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F1930 */ if (_t12) goto L_028F194C; else goto L_028F1934;
|
|
L_028F1934: ; // 0x28f1934
|
|
/* 028F1934 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F1938 */ Gambit_fn_028F7044(cpu);
|
|
/* 028F193C */ _t13 = cpu->r[30] + 0x0000008Cu;
|
|
/* 028F193C */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 028F1940 */ cpu->r[0] = 0x00000001u;
|
|
/* 028F1944 */ _t14 = cpu->r[30] + 0x00000088u;
|
|
/* 028F1944 */ rbrew_write32(cpu->mem, _t14, cpu->r[29]);
|
|
/* 028F1948 */ _t15 = cpu->r[30] + 0x00000084u;
|
|
/* 028F1948 */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[0]);
|
|
L_028F194C: ; // 0x28f194c
|
|
/* 028F194C */ _t16 = cpu->r[31] + 0x00000090u;
|
|
/* 028F194C */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[29]);
|
|
/* 028F1950 */ cpu->r[0] = 0x00000800u;
|
|
/* 028F1954 */ _t17 = cpu->r[31] + 0x00000094u;
|
|
/* 028F1954 */ rbrew_write32(cpu->mem, _t17, cpu->r[29]);
|
|
/* 028F1958 */ cpu->r[3] = cpu->r[31] + 0x000000A0u;
|
|
/* 028F195C */ _t18 = cpu->r[31] + 0x0000009Cu;
|
|
/* 028F195C */ rbrew_write32(cpu->mem, _t18, cpu->r[29]);
|
|
/* 028F1960 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F1964 */ cpu->r[5] = 0x0000009Cu;
|
|
/* 028F1968 */ _t19 = cpu->r[31] + 0x00000098u;
|
|
/* 028F1968 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028F196C */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028F1970 */ _t20 = cpu->r[31] + 0x00000120u;
|
|
/* 028F1970 */ rbrew_write32(cpu->mem, _t20, cpu->r[29]);
|
|
L_028F1974: ; // 0x28f1974
|
|
/* 028F1974 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1974 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F1978 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F1978 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F197C */ cpu->r[3] = cpu->r[31];
|
|
/* 028F1980 */ _t23 = cpu->r[1] + 0x00000010u;
|
|
/* 028F1980 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F1984 */ cpu->lr = cpu->r[0];
|
|
/* 028F1988 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1988 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F198C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F1990 */ return;
|
|
}
|
|
|
|
// fn_028F18EC @ 0x28f18ec
|
|
void Gambit_fn_028F18EC(CPUState* cpu) {
|
|
uint32_t _t0, _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_028F18EC: ; // 0x28f18ec
|
|
/* 028F18EC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F18EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F18EC */ cpu->r[1] = _t0;
|
|
/* 028F18F0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F18F0 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F18F4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F18F4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F18F8 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028F18F8 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028F18FC */ cpu->r[31] = cpu->r[3];
|
|
/* 028F18FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F1900 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F1900 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F1904 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1904 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F1904 */ if (_t6) goto L_028F1908; else goto L_028F1918;
|
|
L_028F1908: ; // 0x28f1908
|
|
/* 028F1908 */ cpu->r[3] = 0x0000013Cu;
|
|
/* 028F190C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F1910 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1910 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F1914 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1914 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F1914 */ if (_t8) goto L_028F1974; else goto L_028F1918;
|
|
L_028F1918: ; // 0x28f1918
|
|
/* 028F1918 */ cpu->r[30] = cpu->r[31];
|
|
/* 028F1918 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F191C */ cpu->r[29] = 0x00000000u;
|
|
/* 028F1920 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1920 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F1920 */ if (_t10) goto L_028F1924; else goto L_028F1934;
|
|
L_028F1924: ; // 0x28f1924
|
|
/* 028F1924 */ cpu->r[3] = 0x00000090u;
|
|
/* 028F1928 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F192C */ cpu->r[30] = cpu->r[3];
|
|
/* 028F192C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F1930 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1930 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F1930 */ if (_t12) goto L_028F194C; else goto L_028F1934;
|
|
L_028F1934: ; // 0x28f1934
|
|
/* 028F1934 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F1938 */ Gambit_fn_028F7044(cpu);
|
|
/* 028F193C */ _t13 = cpu->r[30] + 0x0000008Cu;
|
|
/* 028F193C */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 028F1940 */ cpu->r[0] = 0x00000001u;
|
|
/* 028F1944 */ _t14 = cpu->r[30] + 0x00000088u;
|
|
/* 028F1944 */ rbrew_write32(cpu->mem, _t14, cpu->r[29]);
|
|
/* 028F1948 */ _t15 = cpu->r[30] + 0x00000084u;
|
|
/* 028F1948 */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[0]);
|
|
L_028F194C: ; // 0x28f194c
|
|
/* 028F194C */ _t16 = cpu->r[31] + 0x00000090u;
|
|
/* 028F194C */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[29]);
|
|
/* 028F1950 */ cpu->r[0] = 0x00000800u;
|
|
/* 028F1954 */ _t17 = cpu->r[31] + 0x00000094u;
|
|
/* 028F1954 */ rbrew_write32(cpu->mem, _t17, cpu->r[29]);
|
|
/* 028F1958 */ cpu->r[3] = cpu->r[31] + 0x000000A0u;
|
|
/* 028F195C */ _t18 = cpu->r[31] + 0x0000009Cu;
|
|
/* 028F195C */ rbrew_write32(cpu->mem, _t18, cpu->r[29]);
|
|
/* 028F1960 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F1964 */ cpu->r[5] = 0x0000009Cu;
|
|
/* 028F1968 */ _t19 = cpu->r[31] + 0x00000098u;
|
|
/* 028F1968 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028F196C */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028F1970 */ _t20 = cpu->r[31] + 0x00000120u;
|
|
/* 028F1970 */ rbrew_write32(cpu->mem, _t20, cpu->r[29]);
|
|
L_028F1974: ; // 0x28f1974
|
|
/* 028F1974 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1974 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F1978 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F1978 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F197C */ cpu->r[3] = cpu->r[31];
|
|
/* 028F1980 */ _t23 = cpu->r[1] + 0x00000010u;
|
|
/* 028F1980 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F1984 */ cpu->lr = cpu->r[0];
|
|
/* 028F1988 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1988 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F198C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F1990 */ return;
|
|
}
|
|
|
|
// fn_028F1994 @ 0x28f1994
|
|
void Gambit_fn_028F1994(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028F1994: ; // 0x28f1994
|
|
/* 028F1994 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028F1994 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1994 */ cpu->r[1] = _t0;
|
|
/* 028F1998 */ cpu->r[0] = cpu->lr;
|
|
/* 028F199C */ /* nop */
|
|
/* 028F19A0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F19A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F19A4 */ cpu->r[30] = cpu->r[5];
|
|
/* 028F19A8 */ cpu->r[27] = cpu->r[6];
|
|
/* 028F19AC */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028F19AC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F19B0 */ cpu->r[29] = cpu->r[4];
|
|
/* 028F19B4 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F19B4 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F19B4 */ if (_t3) goto L_028F19B8; else goto L_028F19C8;
|
|
L_028F19B8: ; // 0x28f19b8
|
|
/* 028F19B8 */ cpu->r[3] = 0x0000013Cu;
|
|
/* 028F19BC */ Gambit_fn_02801A78(cpu);
|
|
/* 028F19C0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F19C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F19C4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F19C4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F19C4 */ if (_t5) goto L_028F1A30; else goto L_028F19C8;
|
|
L_028F19C8: ; // 0x28f19c8
|
|
/* 028F19C8 */ cpu->r[28] = cpu->r[31];
|
|
/* 028F19C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F19CC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F19CC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F19CC */ if (_t7) goto L_028F19D0; else goto L_028F19E0;
|
|
L_028F19D0: ; // 0x28f19d0
|
|
/* 028F19D0 */ cpu->r[3] = 0x00000090u;
|
|
/* 028F19D4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F19D8 */ cpu->r[28] = cpu->r[3];
|
|
/* 028F19D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F19DC */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F19DC */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F19DC */ if (_t9) goto L_028F19F8; else goto L_028F19E0;
|
|
L_028F19E0: ; // 0x28f19e0
|
|
/* 028F19E0 */ cpu->r[3] = cpu->r[28];
|
|
/* 028F19E4 */ Gambit_fn_028F7044(cpu);
|
|
/* 028F19E8 */ _t10 = cpu->r[28] + 0x0000008Cu;
|
|
/* 028F19E8 */ rbrew_write32(cpu->mem, _t10, cpu->r[27]);
|
|
/* 028F19EC */ cpu->r[0] = 0x00000001u;
|
|
/* 028F19F0 */ _t11 = cpu->r[28] + 0x00000088u;
|
|
/* 028F19F0 */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 028F19F4 */ _t12 = cpu->r[28] + 0x00000084u;
|
|
/* 028F19F4 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[0]);
|
|
L_028F19F8: ; // 0x28f19f8
|
|
/* 028F19F8 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F19FC */ cpu->r[11] = 0x00000800u;
|
|
/* 028F1A00 */ _t13 = cpu->r[31] + 0x00000094u;
|
|
/* 028F1A00 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 028F1A04 */ cpu->r[3] = cpu->r[31] + 0x000000A0u;
|
|
/* 028F1A08 */ _t14 = cpu->r[31] + 0x00000098u;
|
|
/* 028F1A08 */ rbrew_write32(cpu->mem, _t14, cpu->r[11]);
|
|
/* 028F1A0C */ cpu->r[5] = 0x0000009Cu;
|
|
/* 028F1A10 */ _t15 = cpu->r[31] + 0x0000009Cu;
|
|
/* 028F1A10 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
/* 028F1A14 */ cpu->r[4] = cpu->r[30];
|
|
/* 028F1A18 */ _t16 = cpu->r[31] + 0x00000090u;
|
|
/* 028F1A18 */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[30]);
|
|
/* 028F1A1C */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028F1A20 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F1A24 */ cpu->r[4] = cpu->r[29];
|
|
/* 028F1A28 */ _t17 = cpu->r[31] + 0x00000120u;
|
|
/* 028F1A28 */ rbrew_write32(cpu->mem, _t17, cpu->r[30]);
|
|
/* 028F1A2C */ Gambit_fn_020195C0(cpu);
|
|
L_028F1A30: ; // 0x28f1a30
|
|
/* 028F1A30 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F1A34 */ /* nop */
|
|
/* 028F1A38 */ _t18 = cpu->r[1] + 0x00000024u;
|
|
/* 028F1A38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F1A3C */ cpu->lr = cpu->r[0];
|
|
/* 028F1A40 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028F1A44 */ return;
|
|
}
|
|
|
|
// fn_028F1A48 @ 0x28f1a48
|
|
void Gambit_fn_028F1A48(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028F1A48: ; // 0x28f1a48
|
|
/* 028F1A48 */ cpu->r[0] = cpu->lr;
|
|
/* 028F1A4C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F1A4C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1A4C */ cpu->r[1] = _t0;
|
|
/* 028F1A50 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1A50 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F1A54 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1A58 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1A58 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F1A5C */ _t3 = cpu->r[31] + 0x00000028u;
|
|
/* 028F1A5C */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F1A60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F1A64 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1A64 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F1A64 */ if (_t5) goto L_028F1A74; else goto L_028F1A68;
|
|
L_028F1A68: ; // 0x28f1a68
|
|
/* 028F1A68 */ _t6 = cpu->r[31] + 0x00000024u;
|
|
/* 028F1A68 */ cpu->r[5] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F1A6C */ cpu->r[3] = 0x00000010u;
|
|
/* 028F1A70 */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028F1A74: ; // 0x28f1a74
|
|
/* 028F1A74 */ _t7 = cpu->r[31] + 0x00000030u;
|
|
/* 028F1A74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F1A78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F1A7C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1A7C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F1A7C */ if (_t9) goto L_028F1A90; else goto L_028F1A80;
|
|
L_028F1A80: ; // 0x28f1a80
|
|
/* 028F1A80 */ _t10 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F1A80 */ cpu->r[5] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F1A84 */ cpu->r[3] = 0x00000010u;
|
|
/* 028F1A88 */ _t11 = cpu->r[31] + 0x00000030u;
|
|
/* 028F1A88 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F1A8C */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028F1A90: ; // 0x28f1a90
|
|
/* 028F1A90 */ _t12 = cpu->r[31] + 0x0000009Cu;
|
|
/* 028F1A90 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F1A94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F1A98 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1A98 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F1A98 */ if (_t14) goto L_028F1AAC; else goto L_028F1A9C;
|
|
L_028F1A9C: ; // 0x28f1a9c
|
|
/* 028F1A9C */ _t15 = cpu->r[31] + 0x00000094u;
|
|
/* 028F1A9C */ cpu->r[5] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F1AA0 */ cpu->r[3] = 0x00000010u;
|
|
/* 028F1AA4 */ _t16 = cpu->r[31] + 0x0000009Cu;
|
|
/* 028F1AA4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F1AA8 */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028F1AAC: ; // 0x28f1aac
|
|
/* 028F1AAC */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1AAC */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F1AB0 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1AB0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F1AB4 */ cpu->lr = cpu->r[0];
|
|
/* 028F1AB8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F1ABC */ return;
|
|
}
|
|
|
|
// fn_028F1A4C @ 0x28f1a4c
|
|
void Gambit_fn_028F1A4C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028F1A4C: ; // 0x28f1a4c
|
|
/* 028F1A4C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F1A4C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1A4C */ cpu->r[1] = _t0;
|
|
/* 028F1A50 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1A50 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F1A54 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1A58 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1A58 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F1A5C */ _t3 = cpu->r[31] + 0x00000028u;
|
|
/* 028F1A5C */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F1A60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F1A64 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1A64 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F1A64 */ if (_t5) goto L_028F1A74; else goto L_028F1A68;
|
|
L_028F1A68: ; // 0x28f1a68
|
|
/* 028F1A68 */ _t6 = cpu->r[31] + 0x00000024u;
|
|
/* 028F1A68 */ cpu->r[5] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F1A6C */ cpu->r[3] = 0x00000010u;
|
|
/* 028F1A70 */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028F1A74: ; // 0x28f1a74
|
|
/* 028F1A74 */ _t7 = cpu->r[31] + 0x00000030u;
|
|
/* 028F1A74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F1A78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F1A7C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1A7C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F1A7C */ if (_t9) goto L_028F1A90; else goto L_028F1A80;
|
|
L_028F1A80: ; // 0x28f1a80
|
|
/* 028F1A80 */ _t10 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F1A80 */ cpu->r[5] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F1A84 */ cpu->r[3] = 0x00000010u;
|
|
/* 028F1A88 */ _t11 = cpu->r[31] + 0x00000030u;
|
|
/* 028F1A88 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F1A8C */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028F1A90: ; // 0x28f1a90
|
|
/* 028F1A90 */ _t12 = cpu->r[31] + 0x0000009Cu;
|
|
/* 028F1A90 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F1A94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F1A98 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1A98 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F1A98 */ if (_t14) goto L_028F1AAC; else goto L_028F1A9C;
|
|
L_028F1A9C: ; // 0x28f1a9c
|
|
/* 028F1A9C */ _t15 = cpu->r[31] + 0x00000094u;
|
|
/* 028F1A9C */ cpu->r[5] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F1AA0 */ cpu->r[3] = 0x00000010u;
|
|
/* 028F1AA4 */ _t16 = cpu->r[31] + 0x0000009Cu;
|
|
/* 028F1AA4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F1AA8 */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028F1AAC: ; // 0x28f1aac
|
|
/* 028F1AAC */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1AAC */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F1AB0 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1AB0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F1AB4 */ cpu->lr = cpu->r[0];
|
|
/* 028F1AB8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F1ABC */ return;
|
|
}
|
|
|
|
// fn_028F1AC0 @ 0x28f1ac0
|
|
void Gambit_fn_028F1AC0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028F1AC0: ; // 0x28f1ac0
|
|
/* 028F1AC0 */ cpu->r[0] = cpu->lr;
|
|
/* 028F1AC4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F1AC4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1AC4 */ cpu->r[1] = _t0;
|
|
/* 028F1AC8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1AC8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F1ACC */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1AD0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1AD0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F1AD4 */ _t3 = cpu->r[31] + 0x0000008Cu;
|
|
/* 028F1AD4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F1AD8 */ _t4 = cpu->r[31] + 0x00000088u;
|
|
/* 028F1AD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F1ADC */ _t5 = cpu->r[31] + 0x00000118u;
|
|
/* 028F1ADC */ rbrew_write32(cpu->mem, _t5, cpu->r[12]);
|
|
/* 028F1AE0 */ _t6 = cpu->r[31] + 0x00000114u;
|
|
/* 028F1AE0 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028F1AE4 */ cpu->r[0] = 0x00000001u;
|
|
/* 028F1AE8 */ cpu->r[3] = cpu->r[31] + 0x000000A0u;
|
|
/* 028F1AEC */ _t7 = cpu->r[31] + 0x0000011Cu;
|
|
/* 028F1AEC */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028F1AF0 */ rbrew_dispatch(cpu, 0x02d05ba8u);
|
|
/* 028F1AF4 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F1AF8 */ _t8 = cpu->r[31] + 0x00000084u;
|
|
/* 028F1AF8 */ rbrew_write8(cpu->mem, _t8, (uint8_t)cpu->r[0]);
|
|
/* 028F1AFC */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1AFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F1B00 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1B00 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F1B04 */ cpu->lr = cpu->r[0];
|
|
/* 028F1B08 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F1B0C */ return;
|
|
}
|
|
|
|
// fn_028F1AC4 @ 0x28f1ac4
|
|
void Gambit_fn_028F1AC4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028F1AC4: ; // 0x28f1ac4
|
|
/* 028F1AC4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F1AC4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1AC4 */ cpu->r[1] = _t0;
|
|
/* 028F1AC8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1AC8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F1ACC */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1AD0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1AD0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F1AD4 */ _t3 = cpu->r[31] + 0x0000008Cu;
|
|
/* 028F1AD4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F1AD8 */ _t4 = cpu->r[31] + 0x00000088u;
|
|
/* 028F1AD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F1ADC */ _t5 = cpu->r[31] + 0x00000118u;
|
|
/* 028F1ADC */ rbrew_write32(cpu->mem, _t5, cpu->r[12]);
|
|
/* 028F1AE0 */ _t6 = cpu->r[31] + 0x00000114u;
|
|
/* 028F1AE0 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028F1AE4 */ cpu->r[0] = 0x00000001u;
|
|
/* 028F1AE8 */ cpu->r[3] = cpu->r[31] + 0x000000A0u;
|
|
/* 028F1AEC */ _t7 = cpu->r[31] + 0x0000011Cu;
|
|
/* 028F1AEC */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028F1AF0 */ rbrew_dispatch(cpu, 0x02d05ba8u);
|
|
/* 028F1AF4 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F1AF8 */ _t8 = cpu->r[31] + 0x00000084u;
|
|
/* 028F1AF8 */ rbrew_write8(cpu->mem, _t8, (uint8_t)cpu->r[0]);
|
|
/* 028F1AFC */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1AFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F1B00 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1B00 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F1B04 */ cpu->lr = cpu->r[0];
|
|
/* 028F1B08 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F1B0C */ return;
|
|
}
|
|
|
|
// fn_028F1B10 @ 0x28f1b10
|
|
void Gambit_fn_028F1B10(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028F1B10: ; // 0x28f1b10
|
|
/* 028F1B10 */ cpu->r[0] = 0x0000001Du;
|
|
/* 028F1B14 */ cpu->r[10] = cpu->r[3];
|
|
/* 028F1B18 */ cpu->ctr = cpu->r[0];
|
|
/* 028F1B1C */ cpu->r[11] = cpu->r[10];
|
|
/* 028F1B20 */ cpu->r[12] = cpu->r[10] + 0x00000098u;
|
|
L_028F1B24: ; // 0x28f1b24
|
|
/* 028F1B24 */ _t0 = cpu->r[11] + 0x00000004u;
|
|
/* 028F1B24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F1B24 */ cpu->r[11] = _t0;
|
|
/* 028F1B28 */ _t1 = cpu->r[12] + 0x00000004u;
|
|
/* 028F1B28 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F1B28 */ cpu->r[12] = _t1;
|
|
/* 028F1B2C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F1B2C */ _t2 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F1B2C */ _t3 = _t2 >> (0x00000002u & 31u);
|
|
/* 028F1B2C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F1B2C */ if (_t4) goto L_028F1B24; else goto L_028F1B30;
|
|
L_028F1B30: ; // 0x28f1b30
|
|
/* 028F1B30 */ cpu->r[0] = 0x00000004u;
|
|
/* 028F1B34 */ cpu->r[3] = cpu->r[10] + 0x0000009Cu;
|
|
/* 028F1B38 */ cpu->r[4] = cpu->r[10] + 0x00000090u;
|
|
/* 028F1B3C */ cpu->r[5] = cpu->r[10] + 0x00000094u;
|
|
/* 028F1B40 */ _t5 = cpu->r[10] + 0x000000B8u;
|
|
/* 028F1B40 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F1B44 */ rbrew_dispatch(cpu, 0x02d05858u); return;
|
|
}
|
|
|
|
// fn_028F1B48 @ 0x28f1b48
|
|
void Gambit_fn_028F1B48(CPUState* cpu) {
|
|
uint32_t _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_028F1B48: ; // 0x28f1b48
|
|
/* 028F1B48 */ cpu->r[0] = cpu->lr;
|
|
/* 028F1B4C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F1B4C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1B4C */ cpu->r[1] = _t0;
|
|
/* 028F1B50 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1B50 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F1B54 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1B54 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F1B58 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028F1B58 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028F1B5C */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1B5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F1B60 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F1B60 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F1B64 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1B64 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F1B64 */ if (_t6) goto L_028F1B68; else goto L_028F1B78;
|
|
L_028F1B68: ; // 0x28f1b68
|
|
/* 028F1B68 */ cpu->r[3] = 0x00000148u;
|
|
/* 028F1B6C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F1B70 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F1B74 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1B74 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F1B74 */ if (_t8) goto L_028F1BDC; else goto L_028F1B78;
|
|
L_028F1B78: ; // 0x28f1b78
|
|
/* 028F1B78 */ cpu->r[30] = cpu->r[31];
|
|
/* 028F1B78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F1B7C */ cpu->r[29] = 0x00000000u;
|
|
/* 028F1B80 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1B80 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F1B80 */ if (_t10) goto L_028F1B84; else goto L_028F1B94;
|
|
L_028F1B84: ; // 0x28f1b84
|
|
/* 028F1B84 */ cpu->r[3] = 0x00000090u;
|
|
/* 028F1B88 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F1B8C */ cpu->r[30] = cpu->r[3];
|
|
/* 028F1B8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F1B90 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1B90 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F1B90 */ if (_t12) goto L_028F1BAC; else goto L_028F1B94;
|
|
L_028F1B94: ; // 0x28f1b94
|
|
/* 028F1B94 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F1B98 */ Gambit_fn_028F7044(cpu);
|
|
/* 028F1B9C */ _t13 = cpu->r[30] + 0x0000008Cu;
|
|
/* 028F1B9C */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 028F1BA0 */ cpu->r[0] = 0x00000001u;
|
|
/* 028F1BA4 */ _t14 = cpu->r[30] + 0x00000088u;
|
|
/* 028F1BA4 */ rbrew_write32(cpu->mem, _t14, cpu->r[29]);
|
|
/* 028F1BA8 */ _t15 = cpu->r[30] + 0x00000084u;
|
|
/* 028F1BA8 */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[0]);
|
|
L_028F1BAC: ; // 0x28f1bac
|
|
/* 028F1BAC */ _t16 = cpu->r[31] + 0x00000090u;
|
|
/* 028F1BAC */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
/* 028F1BB0 */ cpu->r[0] = 0x00000800u;
|
|
/* 028F1BB4 */ cpu->r[3] = cpu->r[31] + 0x0000009Cu;
|
|
/* 028F1BB8 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F1BBC */ _t17 = cpu->r[31] + 0x00000094u;
|
|
/* 028F1BBC */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028F1BC0 */ cpu->r[5] = 0x000000ACu;
|
|
/* 028F1BC4 */ _t18 = cpu->r[31] + 0x00000098u;
|
|
/* 028F1BC4 */ rbrew_write32(cpu->mem, _t18, cpu->r[29]);
|
|
/* 028F1BC8 */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028F1BCC */ cpu->r[3] = cpu->r[31] + 0x0000009Cu;
|
|
/* 028F1BD0 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F1BD4 */ _t19 = cpu->r[31] + 0x0000011Cu;
|
|
/* 028F1BD4 */ rbrew_write32(cpu->mem, _t19, cpu->r[29]);
|
|
/* 028F1BD8 */ rbrew_dispatch(cpu, 0x02d05bc0u);
|
|
L_028F1BDC: ; // 0x28f1bdc
|
|
/* 028F1BDC */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1BDC */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F1BE0 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F1BE0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F1BE4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F1BE8 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028F1BE8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F1BEC */ cpu->lr = cpu->r[0];
|
|
/* 028F1BF0 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1BF0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F1BF4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F1BF8 */ return;
|
|
}
|
|
|
|
// fn_028F1B4C @ 0x28f1b4c
|
|
void Gambit_fn_028F1B4C(CPUState* cpu) {
|
|
uint32_t _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_028F1B4C: ; // 0x28f1b4c
|
|
/* 028F1B4C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F1B4C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1B4C */ cpu->r[1] = _t0;
|
|
/* 028F1B50 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1B50 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F1B54 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1B54 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F1B58 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028F1B58 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028F1B5C */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1B5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F1B60 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F1B60 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F1B64 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1B64 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F1B64 */ if (_t6) goto L_028F1B68; else goto L_028F1B78;
|
|
L_028F1B68: ; // 0x28f1b68
|
|
/* 028F1B68 */ cpu->r[3] = 0x00000148u;
|
|
/* 028F1B6C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F1B70 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F1B74 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1B74 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F1B74 */ if (_t8) goto L_028F1BDC; else goto L_028F1B78;
|
|
L_028F1B78: ; // 0x28f1b78
|
|
/* 028F1B78 */ cpu->r[30] = cpu->r[31];
|
|
/* 028F1B78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F1B7C */ cpu->r[29] = 0x00000000u;
|
|
/* 028F1B80 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1B80 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F1B80 */ if (_t10) goto L_028F1B84; else goto L_028F1B94;
|
|
L_028F1B84: ; // 0x28f1b84
|
|
/* 028F1B84 */ cpu->r[3] = 0x00000090u;
|
|
/* 028F1B88 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F1B8C */ cpu->r[30] = cpu->r[3];
|
|
/* 028F1B8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F1B90 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1B90 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F1B90 */ if (_t12) goto L_028F1BAC; else goto L_028F1B94;
|
|
L_028F1B94: ; // 0x28f1b94
|
|
/* 028F1B94 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F1B98 */ Gambit_fn_028F7044(cpu);
|
|
/* 028F1B9C */ _t13 = cpu->r[30] + 0x0000008Cu;
|
|
/* 028F1B9C */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 028F1BA0 */ cpu->r[0] = 0x00000001u;
|
|
/* 028F1BA4 */ _t14 = cpu->r[30] + 0x00000088u;
|
|
/* 028F1BA4 */ rbrew_write32(cpu->mem, _t14, cpu->r[29]);
|
|
/* 028F1BA8 */ _t15 = cpu->r[30] + 0x00000084u;
|
|
/* 028F1BA8 */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[0]);
|
|
L_028F1BAC: ; // 0x28f1bac
|
|
/* 028F1BAC */ _t16 = cpu->r[31] + 0x00000090u;
|
|
/* 028F1BAC */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
/* 028F1BB0 */ cpu->r[0] = 0x00000800u;
|
|
/* 028F1BB4 */ cpu->r[3] = cpu->r[31] + 0x0000009Cu;
|
|
/* 028F1BB8 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F1BBC */ _t17 = cpu->r[31] + 0x00000094u;
|
|
/* 028F1BBC */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028F1BC0 */ cpu->r[5] = 0x000000ACu;
|
|
/* 028F1BC4 */ _t18 = cpu->r[31] + 0x00000098u;
|
|
/* 028F1BC4 */ rbrew_write32(cpu->mem, _t18, cpu->r[29]);
|
|
/* 028F1BC8 */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028F1BCC */ cpu->r[3] = cpu->r[31] + 0x0000009Cu;
|
|
/* 028F1BD0 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F1BD4 */ _t19 = cpu->r[31] + 0x0000011Cu;
|
|
/* 028F1BD4 */ rbrew_write32(cpu->mem, _t19, cpu->r[29]);
|
|
/* 028F1BD8 */ rbrew_dispatch(cpu, 0x02d05bc0u);
|
|
L_028F1BDC: ; // 0x28f1bdc
|
|
/* 028F1BDC */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1BDC */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F1BE0 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F1BE0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F1BE4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F1BE8 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028F1BE8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F1BEC */ cpu->lr = cpu->r[0];
|
|
/* 028F1BF0 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1BF0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F1BF4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F1BF8 */ return;
|
|
}
|
|
|
|
// fn_028F1BFC @ 0x28f1bfc
|
|
void Gambit_fn_028F1BFC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028F1BFC: ; // 0x28f1bfc
|
|
/* 028F1BFC */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028F1BFC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1BFC */ cpu->r[1] = _t0;
|
|
/* 028F1C00 */ cpu->r[0] = cpu->lr;
|
|
/* 028F1C04 */ /* nop */
|
|
/* 028F1C08 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1C08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F1C0C */ cpu->r[30] = cpu->r[5];
|
|
/* 028F1C10 */ cpu->r[27] = cpu->r[6];
|
|
/* 028F1C14 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028F1C14 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F1C18 */ cpu->r[29] = cpu->r[4];
|
|
/* 028F1C1C */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1C1C */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F1C1C */ if (_t3) goto L_028F1C20; else goto L_028F1C30;
|
|
L_028F1C20: ; // 0x28f1c20
|
|
/* 028F1C20 */ cpu->r[3] = 0x00000148u;
|
|
/* 028F1C24 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F1C28 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1C28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F1C2C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1C2C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F1C2C */ if (_t5) goto L_028F1C9C; else goto L_028F1C30;
|
|
L_028F1C30: ; // 0x28f1c30
|
|
/* 028F1C30 */ cpu->r[28] = cpu->r[31];
|
|
/* 028F1C30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F1C34 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1C34 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F1C34 */ if (_t7) goto L_028F1C38; else goto L_028F1C48;
|
|
L_028F1C38: ; // 0x28f1c38
|
|
/* 028F1C38 */ cpu->r[3] = 0x00000090u;
|
|
/* 028F1C3C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F1C40 */ cpu->r[28] = cpu->r[3];
|
|
/* 028F1C40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F1C44 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1C44 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F1C44 */ if (_t9) goto L_028F1C60; else goto L_028F1C48;
|
|
L_028F1C48: ; // 0x28f1c48
|
|
/* 028F1C48 */ cpu->r[3] = cpu->r[28];
|
|
/* 028F1C4C */ Gambit_fn_028F7044(cpu);
|
|
/* 028F1C50 */ _t10 = cpu->r[28] + 0x0000008Cu;
|
|
/* 028F1C50 */ rbrew_write32(cpu->mem, _t10, cpu->r[27]);
|
|
/* 028F1C54 */ cpu->r[0] = 0x00000001u;
|
|
/* 028F1C58 */ _t11 = cpu->r[28] + 0x00000088u;
|
|
/* 028F1C58 */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 028F1C5C */ _t12 = cpu->r[28] + 0x00000084u;
|
|
/* 028F1C5C */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[0]);
|
|
L_028F1C60: ; // 0x28f1c60
|
|
/* 028F1C60 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F1C64 */ cpu->r[11] = 0x00000800u;
|
|
/* 028F1C68 */ _t13 = cpu->r[31] + 0x00000090u;
|
|
/* 028F1C68 */ rbrew_write32(cpu->mem, _t13, cpu->r[4]);
|
|
/* 028F1C6C */ cpu->r[3] = cpu->r[31] + 0x0000009Cu;
|
|
/* 028F1C70 */ _t14 = cpu->r[31] + 0x00000094u;
|
|
/* 028F1C70 */ rbrew_write32(cpu->mem, _t14, cpu->r[11]);
|
|
/* 028F1C74 */ cpu->r[5] = 0x000000ACu;
|
|
/* 028F1C78 */ _t15 = cpu->r[31] + 0x00000098u;
|
|
/* 028F1C78 */ rbrew_write32(cpu->mem, _t15, cpu->r[4]);
|
|
/* 028F1C7C */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028F1C80 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F1C84 */ cpu->r[3] = cpu->r[31] + 0x0000009Cu;
|
|
/* 028F1C88 */ _t16 = cpu->r[31] + 0x0000011Cu;
|
|
/* 028F1C88 */ rbrew_write32(cpu->mem, _t16, cpu->r[4]);
|
|
/* 028F1C8C */ rbrew_dispatch(cpu, 0x02d05bc0u);
|
|
/* 028F1C90 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F1C94 */ cpu->r[4] = cpu->r[29];
|
|
/* 028F1C98 */ Gambit_fn_023DD260(cpu);
|
|
L_028F1C9C: ; // 0x28f1c9c
|
|
/* 028F1C9C */ cpu->r[3] = cpu->r[31];
|
|
/* 028F1CA0 */ /* nop */
|
|
/* 028F1CA4 */ _t17 = cpu->r[1] + 0x00000024u;
|
|
/* 028F1CA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F1CA8 */ cpu->lr = cpu->r[0];
|
|
/* 028F1CAC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028F1CB0 */ return;
|
|
}
|
|
|
|
// fn_028F1CB4 @ 0x28f1cb4
|
|
void Gambit_fn_028F1CB4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _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_028F1CB4: ; // 0x28f1cb4
|
|
/* 028F1CB4 */ cpu->r[0] = cpu->lr;
|
|
/* 028F1CB8 */ _t0 = cpu->r[1] + 0xFFFFFED0u;
|
|
/* 028F1CB8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1CB8 */ cpu->r[1] = _t0;
|
|
/* 028F1CBC */ _t1 = cpu->r[1] + 0x0000012Cu;
|
|
/* 028F1CBC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F1CC0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1CC4 */ cpu->r[12] = 0x0000002Bu;
|
|
/* 028F1CC8 */ cpu->r[9] = cpu->r[31] + 0x00000098u;
|
|
/* 028F1CCC */ cpu->ctr = cpu->r[12];
|
|
/* 028F1CD0 */ cpu->r[10] = cpu->r[1] + 0x00000004u;
|
|
/* 028F1CD4 */ _t2 = cpu->r[1] + 0x00000134u;
|
|
/* 028F1CD4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
L_028F1CD8: ; // 0x28f1cd8
|
|
/* 028F1CD8 */ _t3 = cpu->r[9] + 0x00000004u;
|
|
/* 028F1CD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F1CD8 */ cpu->r[9] = _t3;
|
|
/* 028F1CDC */ _t4 = cpu->r[10] + 0x00000004u;
|
|
/* 028F1CDC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F1CDC */ cpu->r[10] = _t4;
|
|
/* 028F1CE0 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F1CE0 */ _t5 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F1CE0 */ _t6 = _t5 >> (0x00000002u & 31u);
|
|
/* 028F1CE0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F1CE0 */ if (_t7) goto L_028F1CD8; else goto L_028F1CE4;
|
|
L_028F1CE4: ; // 0x28f1ce4
|
|
/* 028F1CE4 */ _t8 = cpu->r[31] + 0x000000A8u;
|
|
/* 028F1CE4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F1CE8 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F1CEC */ _t9 = cpu->r[1] + 0x00000080u;
|
|
/* 028F1CEC */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028F1CF0 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F1CF4 */ _t10 = cpu->r[1] + 0x00000084u;
|
|
/* 028F1CF4 */ rbrew_write32(cpu->mem, _t10, cpu->r[9]);
|
|
/* 028F1CF8 */ rbrew_dispatch(cpu, 0x02d05bd0u);
|
|
/* 028F1CFC */ _t11 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F1CFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F1D00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000011u);
|
|
/* 028F1D04 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1D04 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F1D04 */ if (_t13) goto L_028F1D10; else goto L_028F1D08;
|
|
L_028F1D08: ; // 0x28f1d08
|
|
/* 028F1D08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000111u);
|
|
/* 028F1D0C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1D0C */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F1D0C */ if (_t15) goto L_028F1D10; else goto L_028F1D58;
|
|
L_028F1D10: ; // 0x28f1d10
|
|
/* 028F1D10 */ cpu->r[10] = 0x0000001Du;
|
|
/* 028F1D14 */ cpu->r[9] = cpu->r[1] + 0x00000004u;
|
|
/* 028F1D18 */ cpu->ctr = cpu->r[10];
|
|
/* 028F1D1C */ cpu->r[12] = cpu->r[1] + 0x000000B0u;
|
|
L_028F1D20: ; // 0x28f1d20
|
|
/* 028F1D20 */ _t16 = cpu->r[9] + 0x00000004u;
|
|
/* 028F1D20 */ cpu->r[11] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F1D20 */ cpu->r[9] = _t16;
|
|
/* 028F1D24 */ _t17 = cpu->r[12] + 0x00000004u;
|
|
/* 028F1D24 */ rbrew_write32(cpu->mem, _t17, cpu->r[11]);
|
|
/* 028F1D24 */ cpu->r[12] = _t17;
|
|
/* 028F1D28 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F1D28 */ _t18 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F1D28 */ _t19 = _t18 >> (0x00000002u & 31u);
|
|
/* 028F1D28 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F1D28 */ if (_t20) goto L_028F1D20; else goto L_028F1D2C;
|
|
L_028F1D2C: ; // 0x28f1d2c
|
|
/* 028F1D2C */ cpu->r[12] = 0x00000001u;
|
|
/* 028F1D30 */ _t21 = cpu->r[31] + 0x00000088u;
|
|
/* 028F1D30 */ cpu->r[5] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F1D34 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F1D38 */ cpu->r[4] = cpu->r[1] + 0x000000B4u;
|
|
/* 028F1D3C */ cpu->r[6] = 0x00000000u;
|
|
/* 028F1D40 */ _t22 = cpu->r[1] + 0x000000D0u;
|
|
/* 028F1D40 */ rbrew_write32(cpu->mem, _t22, cpu->r[12]);
|
|
/* 028F1D44 */ rbrew_dispatch(cpu, 0x02d058b0u);
|
|
/* 028F1D48 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F1D4C */ _t23 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F1D4C */ cpu->r[3] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F1D50 */ Gambit_fn_02906024(cpu);
|
|
/* 028F1D54 */ goto L_028F1D78;
|
|
L_028F1D58: ; // 0x28f1d58
|
|
/* 028F1D58 */ _t24 = cpu->r[31] + 0x00000098u;
|
|
/* 028F1D58 */ cpu->r[11] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F1D5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028F1D60 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1D60 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028F1D60 */ if (_t26) goto L_028F1D78; else goto L_028F1D64;
|
|
L_028F1D64: ; // 0x28f1d64
|
|
/* 028F1D64 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F1D68 */ rbrew_dispatch(cpu, 0x02d05960u);
|
|
/* 028F1D6C */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F1D70 */ _t27 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F1D70 */ cpu->r[3] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F1D74 */ Gambit_fn_02906024(cpu);
|
|
L_028F1D78: ; // 0x28f1d78
|
|
/* 028F1D78 */ _t28 = cpu->r[1] + 0x00000134u;
|
|
/* 028F1D78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F1D7C */ _t29 = cpu->r[1] + 0x0000012Cu;
|
|
/* 028F1D7C */ cpu->r[31] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F1D80 */ cpu->lr = cpu->r[0];
|
|
/* 028F1D84 */ cpu->r[1] = cpu->r[1] + 0x00000130u;
|
|
/* 028F1D88 */ return;
|
|
}
|
|
|
|
// fn_028F1CB8 @ 0x28f1cb8
|
|
void Gambit_fn_028F1CB8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _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_028F1CB8: ; // 0x28f1cb8
|
|
/* 028F1CB8 */ _t0 = cpu->r[1] + 0xFFFFFED0u;
|
|
/* 028F1CB8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1CB8 */ cpu->r[1] = _t0;
|
|
/* 028F1CBC */ _t1 = cpu->r[1] + 0x0000012Cu;
|
|
/* 028F1CBC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F1CC0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1CC4 */ cpu->r[12] = 0x0000002Bu;
|
|
/* 028F1CC8 */ cpu->r[9] = cpu->r[31] + 0x00000098u;
|
|
/* 028F1CCC */ cpu->ctr = cpu->r[12];
|
|
/* 028F1CD0 */ cpu->r[10] = cpu->r[1] + 0x00000004u;
|
|
/* 028F1CD4 */ _t2 = cpu->r[1] + 0x00000134u;
|
|
/* 028F1CD4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
L_028F1CD8: ; // 0x28f1cd8
|
|
/* 028F1CD8 */ _t3 = cpu->r[9] + 0x00000004u;
|
|
/* 028F1CD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F1CD8 */ cpu->r[9] = _t3;
|
|
/* 028F1CDC */ _t4 = cpu->r[10] + 0x00000004u;
|
|
/* 028F1CDC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F1CDC */ cpu->r[10] = _t4;
|
|
/* 028F1CE0 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F1CE0 */ _t5 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F1CE0 */ _t6 = _t5 >> (0x00000002u & 31u);
|
|
/* 028F1CE0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F1CE0 */ if (_t7) goto L_028F1CD8; else goto L_028F1CE4;
|
|
L_028F1CE4: ; // 0x28f1ce4
|
|
/* 028F1CE4 */ _t8 = cpu->r[31] + 0x000000A8u;
|
|
/* 028F1CE4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F1CE8 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F1CEC */ _t9 = cpu->r[1] + 0x00000080u;
|
|
/* 028F1CEC */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028F1CF0 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F1CF4 */ _t10 = cpu->r[1] + 0x00000084u;
|
|
/* 028F1CF4 */ rbrew_write32(cpu->mem, _t10, cpu->r[9]);
|
|
/* 028F1CF8 */ rbrew_dispatch(cpu, 0x02d05bd0u);
|
|
/* 028F1CFC */ _t11 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F1CFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F1D00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000011u);
|
|
/* 028F1D04 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1D04 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F1D04 */ if (_t13) goto L_028F1D10; else goto L_028F1D08;
|
|
L_028F1D08: ; // 0x28f1d08
|
|
/* 028F1D08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000111u);
|
|
/* 028F1D0C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1D0C */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F1D0C */ if (_t15) goto L_028F1D10; else goto L_028F1D58;
|
|
L_028F1D10: ; // 0x28f1d10
|
|
/* 028F1D10 */ cpu->r[10] = 0x0000001Du;
|
|
/* 028F1D14 */ cpu->r[9] = cpu->r[1] + 0x00000004u;
|
|
/* 028F1D18 */ cpu->ctr = cpu->r[10];
|
|
/* 028F1D1C */ cpu->r[12] = cpu->r[1] + 0x000000B0u;
|
|
L_028F1D20: ; // 0x28f1d20
|
|
/* 028F1D20 */ _t16 = cpu->r[9] + 0x00000004u;
|
|
/* 028F1D20 */ cpu->r[11] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F1D20 */ cpu->r[9] = _t16;
|
|
/* 028F1D24 */ _t17 = cpu->r[12] + 0x00000004u;
|
|
/* 028F1D24 */ rbrew_write32(cpu->mem, _t17, cpu->r[11]);
|
|
/* 028F1D24 */ cpu->r[12] = _t17;
|
|
/* 028F1D28 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F1D28 */ _t18 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F1D28 */ _t19 = _t18 >> (0x00000002u & 31u);
|
|
/* 028F1D28 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F1D28 */ if (_t20) goto L_028F1D20; else goto L_028F1D2C;
|
|
L_028F1D2C: ; // 0x28f1d2c
|
|
/* 028F1D2C */ cpu->r[12] = 0x00000001u;
|
|
/* 028F1D30 */ _t21 = cpu->r[31] + 0x00000088u;
|
|
/* 028F1D30 */ cpu->r[5] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F1D34 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F1D38 */ cpu->r[4] = cpu->r[1] + 0x000000B4u;
|
|
/* 028F1D3C */ cpu->r[6] = 0x00000000u;
|
|
/* 028F1D40 */ _t22 = cpu->r[1] + 0x000000D0u;
|
|
/* 028F1D40 */ rbrew_write32(cpu->mem, _t22, cpu->r[12]);
|
|
/* 028F1D44 */ rbrew_dispatch(cpu, 0x02d058b0u);
|
|
/* 028F1D48 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F1D4C */ _t23 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F1D4C */ cpu->r[3] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F1D50 */ Gambit_fn_02906024(cpu);
|
|
/* 028F1D54 */ goto L_028F1D78;
|
|
L_028F1D58: ; // 0x28f1d58
|
|
/* 028F1D58 */ _t24 = cpu->r[31] + 0x00000098u;
|
|
/* 028F1D58 */ cpu->r[11] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F1D5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028F1D60 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1D60 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028F1D60 */ if (_t26) goto L_028F1D78; else goto L_028F1D64;
|
|
L_028F1D64: ; // 0x28f1d64
|
|
/* 028F1D64 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F1D68 */ rbrew_dispatch(cpu, 0x02d05960u);
|
|
/* 028F1D6C */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F1D70 */ _t27 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F1D70 */ cpu->r[3] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F1D74 */ Gambit_fn_02906024(cpu);
|
|
L_028F1D78: ; // 0x28f1d78
|
|
/* 028F1D78 */ _t28 = cpu->r[1] + 0x00000134u;
|
|
/* 028F1D78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F1D7C */ _t29 = cpu->r[1] + 0x0000012Cu;
|
|
/* 028F1D7C */ cpu->r[31] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F1D80 */ cpu->lr = cpu->r[0];
|
|
/* 028F1D84 */ cpu->r[1] = cpu->r[1] + 0x00000130u;
|
|
/* 028F1D88 */ return;
|
|
}
|
|
|
|
// fn_028F1D8C @ 0x28f1d8c
|
|
void Gambit_fn_028F1D8C(CPUState* cpu) {
|
|
uint32_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_028F1D8C: ; // 0x28f1d8c
|
|
/* 028F1D8C */ cpu->r[0] = cpu->lr;
|
|
/* 028F1D90 */ _t0 = cpu->r[1] + 0xFFFFFED0u;
|
|
/* 028F1D90 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1D90 */ cpu->r[1] = _t0;
|
|
/* 028F1D94 */ _t1 = cpu->r[1] + 0x00000128u;
|
|
/* 028F1D94 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F1D98 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F1D9C */ cpu->r[12] = 0x0000002Bu;
|
|
/* 028F1DA0 */ _t2 = cpu->r[1] + 0x0000012Cu;
|
|
/* 028F1DA0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F1DA4 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F1DA8 */ cpu->r[10] = cpu->r[30] + 0x00000098u;
|
|
/* 028F1DAC */ cpu->ctr = cpu->r[12];
|
|
/* 028F1DB0 */ cpu->r[11] = cpu->r[1] + 0x00000004u;
|
|
/* 028F1DB4 */ _t3 = cpu->r[1] + 0x00000134u;
|
|
/* 028F1DB4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
L_028F1DB8: ; // 0x28f1db8
|
|
/* 028F1DB8 */ _t4 = cpu->r[10] + 0x00000004u;
|
|
/* 028F1DB8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F1DB8 */ cpu->r[10] = _t4;
|
|
/* 028F1DBC */ _t5 = cpu->r[11] + 0x00000004u;
|
|
/* 028F1DBC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F1DBC */ cpu->r[11] = _t5;
|
|
/* 028F1DC0 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F1DC0 */ _t6 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F1DC0 */ _t7 = _t6 >> (0x00000002u & 31u);
|
|
/* 028F1DC0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F1DC0 */ if (_t8) goto L_028F1DB8; else goto L_028F1DC4;
|
|
L_028F1DC4: ; // 0x28f1dc4
|
|
/* 028F1DC4 */ cpu->r[8] = 0x00000000u;
|
|
/* 028F1DC8 */ _t9 = cpu->r[30] + 0x000000A8u;
|
|
/* 028F1DC8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F1DCC */ _t10 = cpu->r[1] + 0x00000080u;
|
|
/* 028F1DCC */ rbrew_write32(cpu->mem, _t10, cpu->r[8]);
|
|
/* 028F1DD0 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F1DD4 */ _t11 = cpu->r[1] + 0x00000084u;
|
|
/* 028F1DD4 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 028F1DD8 */ rbrew_dispatch(cpu, 0x02d05bd0u);
|
|
/* 028F1DDC */ cpu->r[11] = 0x0000001Du;
|
|
/* 028F1DE0 */ cpu->ctr = cpu->r[11];
|
|
/* 028F1DE4 */ cpu->r[9] = cpu->r[1] + 0x000000B0u;
|
|
L_028F1DE8: ; // 0x28f1de8
|
|
/* 028F1DE8 */ _t12 = cpu->r[31] + 0x00000004u;
|
|
/* 028F1DE8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F1DE8 */ cpu->r[31] = _t12;
|
|
/* 028F1DEC */ _t13 = cpu->r[9] + 0x00000004u;
|
|
/* 028F1DEC */ rbrew_write32(cpu->mem, _t13, cpu->r[12]);
|
|
/* 028F1DEC */ cpu->r[9] = _t13;
|
|
/* 028F1DF0 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F1DF0 */ _t14 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F1DF0 */ _t15 = _t14 >> (0x00000002u & 31u);
|
|
/* 028F1DF0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F1DF0 */ if (_t16) goto L_028F1DE8; else goto L_028F1DF4;
|
|
L_028F1DF4: ; // 0x28f1df4
|
|
/* 028F1DF4 */ cpu->r[0] = 0x00000001u;
|
|
/* 028F1DF8 */ _t17 = cpu->r[30] + 0x00000088u;
|
|
/* 028F1DF8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F1DFC */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F1E00 */ cpu->r[4] = cpu->r[1] + 0x000000B4u;
|
|
/* 028F1E04 */ cpu->r[6] = 0x00000000u;
|
|
/* 028F1E08 */ _t18 = cpu->r[1] + 0x000000D0u;
|
|
/* 028F1E08 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028F1E0C */ rbrew_dispatch(cpu, 0x02d058b0u);
|
|
/* 028F1E10 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F1E14 */ _t19 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F1E14 */ cpu->r[3] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F1E18 */ Gambit_fn_02906024(cpu);
|
|
/* 028F1E1C */ _t20 = cpu->r[1] + 0x00000134u;
|
|
/* 028F1E1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F1E20 */ _t21 = cpu->r[1] + 0x00000128u;
|
|
/* 028F1E20 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F1E24 */ cpu->lr = cpu->r[0];
|
|
/* 028F1E28 */ _t22 = cpu->r[1] + 0x0000012Cu;
|
|
/* 028F1E28 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F1E2C */ cpu->r[1] = cpu->r[1] + 0x00000130u;
|
|
/* 028F1E30 */ return;
|
|
}
|
|
|
|
// fn_028F1D90 @ 0x28f1d90
|
|
void Gambit_fn_028F1D90(CPUState* cpu) {
|
|
uint32_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_028F1D90: ; // 0x28f1d90
|
|
/* 028F1D90 */ _t0 = cpu->r[1] + 0xFFFFFED0u;
|
|
/* 028F1D90 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1D90 */ cpu->r[1] = _t0;
|
|
/* 028F1D94 */ _t1 = cpu->r[1] + 0x00000128u;
|
|
/* 028F1D94 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F1D98 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F1D9C */ cpu->r[12] = 0x0000002Bu;
|
|
/* 028F1DA0 */ _t2 = cpu->r[1] + 0x0000012Cu;
|
|
/* 028F1DA0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F1DA4 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F1DA8 */ cpu->r[10] = cpu->r[30] + 0x00000098u;
|
|
/* 028F1DAC */ cpu->ctr = cpu->r[12];
|
|
/* 028F1DB0 */ cpu->r[11] = cpu->r[1] + 0x00000004u;
|
|
/* 028F1DB4 */ _t3 = cpu->r[1] + 0x00000134u;
|
|
/* 028F1DB4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
L_028F1DB8: ; // 0x28f1db8
|
|
/* 028F1DB8 */ _t4 = cpu->r[10] + 0x00000004u;
|
|
/* 028F1DB8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F1DB8 */ cpu->r[10] = _t4;
|
|
/* 028F1DBC */ _t5 = cpu->r[11] + 0x00000004u;
|
|
/* 028F1DBC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F1DBC */ cpu->r[11] = _t5;
|
|
/* 028F1DC0 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F1DC0 */ _t6 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F1DC0 */ _t7 = _t6 >> (0x00000002u & 31u);
|
|
/* 028F1DC0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F1DC0 */ if (_t8) goto L_028F1DB8; else goto L_028F1DC4;
|
|
L_028F1DC4: ; // 0x28f1dc4
|
|
/* 028F1DC4 */ cpu->r[8] = 0x00000000u;
|
|
/* 028F1DC8 */ _t9 = cpu->r[30] + 0x000000A8u;
|
|
/* 028F1DC8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F1DCC */ _t10 = cpu->r[1] + 0x00000080u;
|
|
/* 028F1DCC */ rbrew_write32(cpu->mem, _t10, cpu->r[8]);
|
|
/* 028F1DD0 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F1DD4 */ _t11 = cpu->r[1] + 0x00000084u;
|
|
/* 028F1DD4 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 028F1DD8 */ rbrew_dispatch(cpu, 0x02d05bd0u);
|
|
/* 028F1DDC */ cpu->r[11] = 0x0000001Du;
|
|
/* 028F1DE0 */ cpu->ctr = cpu->r[11];
|
|
/* 028F1DE4 */ cpu->r[9] = cpu->r[1] + 0x000000B0u;
|
|
L_028F1DE8: ; // 0x28f1de8
|
|
/* 028F1DE8 */ _t12 = cpu->r[31] + 0x00000004u;
|
|
/* 028F1DE8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F1DE8 */ cpu->r[31] = _t12;
|
|
/* 028F1DEC */ _t13 = cpu->r[9] + 0x00000004u;
|
|
/* 028F1DEC */ rbrew_write32(cpu->mem, _t13, cpu->r[12]);
|
|
/* 028F1DEC */ cpu->r[9] = _t13;
|
|
/* 028F1DF0 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F1DF0 */ _t14 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F1DF0 */ _t15 = _t14 >> (0x00000002u & 31u);
|
|
/* 028F1DF0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F1DF0 */ if (_t16) goto L_028F1DE8; else goto L_028F1DF4;
|
|
L_028F1DF4: ; // 0x28f1df4
|
|
/* 028F1DF4 */ cpu->r[0] = 0x00000001u;
|
|
/* 028F1DF8 */ _t17 = cpu->r[30] + 0x00000088u;
|
|
/* 028F1DF8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F1DFC */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F1E00 */ cpu->r[4] = cpu->r[1] + 0x000000B4u;
|
|
/* 028F1E04 */ cpu->r[6] = 0x00000000u;
|
|
/* 028F1E08 */ _t18 = cpu->r[1] + 0x000000D0u;
|
|
/* 028F1E08 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028F1E0C */ rbrew_dispatch(cpu, 0x02d058b0u);
|
|
/* 028F1E10 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F1E14 */ _t19 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F1E14 */ cpu->r[3] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F1E18 */ Gambit_fn_02906024(cpu);
|
|
/* 028F1E1C */ _t20 = cpu->r[1] + 0x00000134u;
|
|
/* 028F1E1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F1E20 */ _t21 = cpu->r[1] + 0x00000128u;
|
|
/* 028F1E20 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F1E24 */ cpu->lr = cpu->r[0];
|
|
/* 028F1E28 */ _t22 = cpu->r[1] + 0x0000012Cu;
|
|
/* 028F1E28 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F1E2C */ cpu->r[1] = cpu->r[1] + 0x00000130u;
|
|
/* 028F1E30 */ return;
|
|
}
|
|
|
|
// fn_028F1E34 @ 0x28f1e34
|
|
void Gambit_fn_028F1E34(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028F1E34: ; // 0x28f1e34
|
|
/* 028F1E34 */ cpu->r[0] = cpu->lr;
|
|
/* 028F1E38 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F1E38 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1E38 */ cpu->r[1] = _t0;
|
|
/* 028F1E3C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1E3C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F1E40 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1E44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1E44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F1E48 */ _t3 = cpu->r[31] + 0x00000028u;
|
|
/* 028F1E48 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F1E4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F1E50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1E50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F1E50 */ if (_t5) goto L_028F1E60; else goto L_028F1E54;
|
|
L_028F1E54: ; // 0x28f1e54
|
|
/* 028F1E54 */ _t6 = cpu->r[31] + 0x00000024u;
|
|
/* 028F1E54 */ cpu->r[5] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F1E58 */ cpu->r[3] = 0x00000020u;
|
|
/* 028F1E5C */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028F1E60: ; // 0x28f1e60
|
|
/* 028F1E60 */ _t7 = cpu->r[31] + 0x00000030u;
|
|
/* 028F1E60 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F1E64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F1E68 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1E68 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F1E68 */ if (_t9) goto L_028F1E7C; else goto L_028F1E6C;
|
|
L_028F1E6C: ; // 0x28f1e6c
|
|
/* 028F1E6C */ _t10 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F1E6C */ cpu->r[5] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F1E70 */ cpu->r[3] = 0x00000020u;
|
|
/* 028F1E74 */ _t11 = cpu->r[31] + 0x00000030u;
|
|
/* 028F1E74 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F1E78 */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028F1E7C: ; // 0x28f1e7c
|
|
/* 028F1E7C */ _t12 = cpu->r[31] + 0x00000098u;
|
|
/* 028F1E7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F1E80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F1E84 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1E84 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F1E84 */ if (_t14) goto L_028F1E98; else goto L_028F1E88;
|
|
L_028F1E88: ; // 0x28f1e88
|
|
/* 028F1E88 */ _t15 = cpu->r[31] + 0x00000090u;
|
|
/* 028F1E88 */ cpu->r[5] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F1E8C */ cpu->r[3] = 0x00000020u;
|
|
/* 028F1E90 */ _t16 = cpu->r[31] + 0x00000098u;
|
|
/* 028F1E90 */ cpu->r[4] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F1E94 */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028F1E98: ; // 0x28f1e98
|
|
/* 028F1E98 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1E98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F1E9C */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1E9C */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F1EA0 */ cpu->lr = cpu->r[0];
|
|
/* 028F1EA4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F1EA8 */ return;
|
|
}
|
|
|
|
// fn_028F1E38 @ 0x28f1e38
|
|
void Gambit_fn_028F1E38(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028F1E38: ; // 0x28f1e38
|
|
/* 028F1E38 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F1E38 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1E38 */ cpu->r[1] = _t0;
|
|
/* 028F1E3C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1E3C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F1E40 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1E44 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1E44 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F1E48 */ _t3 = cpu->r[31] + 0x00000028u;
|
|
/* 028F1E48 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F1E4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F1E50 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1E50 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F1E50 */ if (_t5) goto L_028F1E60; else goto L_028F1E54;
|
|
L_028F1E54: ; // 0x28f1e54
|
|
/* 028F1E54 */ _t6 = cpu->r[31] + 0x00000024u;
|
|
/* 028F1E54 */ cpu->r[5] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F1E58 */ cpu->r[3] = 0x00000020u;
|
|
/* 028F1E5C */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028F1E60: ; // 0x28f1e60
|
|
/* 028F1E60 */ _t7 = cpu->r[31] + 0x00000030u;
|
|
/* 028F1E60 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F1E64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F1E68 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1E68 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F1E68 */ if (_t9) goto L_028F1E7C; else goto L_028F1E6C;
|
|
L_028F1E6C: ; // 0x28f1e6c
|
|
/* 028F1E6C */ _t10 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F1E6C */ cpu->r[5] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F1E70 */ cpu->r[3] = 0x00000020u;
|
|
/* 028F1E74 */ _t11 = cpu->r[31] + 0x00000030u;
|
|
/* 028F1E74 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F1E78 */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028F1E7C: ; // 0x28f1e7c
|
|
/* 028F1E7C */ _t12 = cpu->r[31] + 0x00000098u;
|
|
/* 028F1E7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F1E80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F1E84 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1E84 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F1E84 */ if (_t14) goto L_028F1E98; else goto L_028F1E88;
|
|
L_028F1E88: ; // 0x28f1e88
|
|
/* 028F1E88 */ _t15 = cpu->r[31] + 0x00000090u;
|
|
/* 028F1E88 */ cpu->r[5] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F1E8C */ cpu->r[3] = 0x00000020u;
|
|
/* 028F1E90 */ _t16 = cpu->r[31] + 0x00000098u;
|
|
/* 028F1E90 */ cpu->r[4] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F1E94 */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028F1E98: ; // 0x28f1e98
|
|
/* 028F1E98 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1E98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F1E9C */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1E9C */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F1EA0 */ cpu->lr = cpu->r[0];
|
|
/* 028F1EA4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F1EA8 */ return;
|
|
}
|
|
|
|
// fn_028F1EAC @ 0x28f1eac
|
|
void Gambit_fn_028F1EAC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _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_028F1EAC: ; // 0x28f1eac
|
|
/* 028F1EAC */ cpu->r[0] = cpu->lr;
|
|
/* 028F1EB0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F1EB0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1EB0 */ cpu->r[1] = _t0;
|
|
/* 028F1EB4 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F1EB4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F1EB8 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F1EBC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1EBC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F1EC0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028F1EC4 */ _t3 = cpu->r[12] + 0xFFFFCCE0u;
|
|
/* 028F1EC4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028F1EC8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1ECC */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1ECC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F1ED0 */ _t5 = cpu->r[31] + 0x0000008Cu;
|
|
/* 028F1ED0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F1ED4 */ _t6 = cpu->r[31] + 0x00000128u;
|
|
/* 028F1ED4 */ rbrew_write32(cpu->mem, _t6, cpu->r[30]);
|
|
/* 028F1ED8 */ _t7 = cpu->r[31] + 0x000000B0u;
|
|
/* 028F1ED8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F1EDC */ _t8 = cpu->r[31] + 0x00000088u;
|
|
/* 028F1EDC */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F1EE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000111u);
|
|
/* 028F1EE4 */ _t9 = cpu->r[31] + 0x00000114u;
|
|
/* 028F1EE4 */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 028F1EE8 */ _t10 = cpu->r[31] + 0x00000110u;
|
|
/* 028F1EE8 */ rbrew_write32(cpu->mem, _t10, cpu->r[10]);
|
|
/* 028F1EEC */ cpu->r[12] = 0x00000001u;
|
|
/* 028F1EF0 */ _t11 = cpu->r[31] + 0x00000124u;
|
|
/* 028F1EF0 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[0]);
|
|
/* 028F1EF4 */ cpu->r[3] = cpu->r[31] + 0x0000009Cu;
|
|
/* 028F1EF8 */ _t12 = cpu->r[31] + 0x00000118u;
|
|
/* 028F1EF8 */ rbrew_write32(cpu->mem, _t12, cpu->r[12]);
|
|
/* 028F1EFC */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1EFC */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F1EFC */ if (_t14) goto L_028F1F00; else goto L_028F1F1C;
|
|
L_028F1F00: ; // 0x28f1f00
|
|
/* 028F1F00 */ cpu->r[12] = 0x00000011u;
|
|
/* 028F1F04 */ _t15 = cpu->r[31] + 0x000000B0u;
|
|
/* 028F1F04 */ rbrew_write32(cpu->mem, _t15, cpu->r[12]);
|
|
/* 028F1F08 */ rbrew_dispatch(cpu, 0x02d05bd0u);
|
|
/* 028F1F0C */ cpu->r[0] = 0x00000111u;
|
|
/* 028F1F10 */ _t16 = cpu->r[31] + 0x00000084u;
|
|
/* 028F1F10 */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[30]);
|
|
/* 028F1F14 */ _t17 = cpu->r[31] + 0x000000B0u;
|
|
/* 028F1F14 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028F1F18 */ goto L_028F1F48;
|
|
L_028F1F1C: ; // 0x28f1f1c
|
|
/* 028F1F1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x0000011Cu);
|
|
/* 028F1F20 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1F20 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F1F20 */ if (_t19) goto L_028F1F24; else goto L_028F1F40;
|
|
L_028F1F24: ; // 0x28f1f24
|
|
/* 028F1F24 */ cpu->r[10] = 0x0000081Cu;
|
|
/* 028F1F28 */ _t20 = cpu->r[31] + 0x000000B0u;
|
|
/* 028F1F28 */ rbrew_write32(cpu->mem, _t20, cpu->r[10]);
|
|
/* 028F1F2C */ rbrew_dispatch(cpu, 0x02d05bd0u);
|
|
/* 028F1F30 */ cpu->r[11] = 0x0000011Cu;
|
|
/* 028F1F34 */ _t21 = cpu->r[31] + 0x00000084u;
|
|
/* 028F1F34 */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[30]);
|
|
/* 028F1F38 */ _t22 = cpu->r[31] + 0x000000B0u;
|
|
/* 028F1F38 */ rbrew_write32(cpu->mem, _t22, cpu->r[11]);
|
|
/* 028F1F3C */ goto L_028F1F48;
|
|
L_028F1F40: ; // 0x28f1f40
|
|
/* 028F1F40 */ rbrew_dispatch(cpu, 0x02d05bd0u);
|
|
/* 028F1F44 */ _t23 = cpu->r[31] + 0x00000084u;
|
|
/* 028F1F44 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[30]);
|
|
L_028F1F48: ; // 0x28f1f48
|
|
/* 028F1F48 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1F48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F1F4C */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 028F1F4C */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F1F50 */ cpu->lr = cpu->r[0];
|
|
/* 028F1F54 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1F54 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F1F58 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F1F5C */ return;
|
|
}
|
|
|
|
// fn_028F1EB0 @ 0x28f1eb0
|
|
void Gambit_fn_028F1EB0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _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_028F1EB0: ; // 0x28f1eb0
|
|
/* 028F1EB0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F1EB0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1EB0 */ cpu->r[1] = _t0;
|
|
/* 028F1EB4 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F1EB4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F1EB8 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F1EBC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1EBC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F1EC0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028F1EC4 */ _t3 = cpu->r[12] + 0xFFFFCCE0u;
|
|
/* 028F1EC4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028F1EC8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F1ECC */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1ECC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F1ED0 */ _t5 = cpu->r[31] + 0x0000008Cu;
|
|
/* 028F1ED0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F1ED4 */ _t6 = cpu->r[31] + 0x00000128u;
|
|
/* 028F1ED4 */ rbrew_write32(cpu->mem, _t6, cpu->r[30]);
|
|
/* 028F1ED8 */ _t7 = cpu->r[31] + 0x000000B0u;
|
|
/* 028F1ED8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F1EDC */ _t8 = cpu->r[31] + 0x00000088u;
|
|
/* 028F1EDC */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F1EE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000111u);
|
|
/* 028F1EE4 */ _t9 = cpu->r[31] + 0x00000114u;
|
|
/* 028F1EE4 */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 028F1EE8 */ _t10 = cpu->r[31] + 0x00000110u;
|
|
/* 028F1EE8 */ rbrew_write32(cpu->mem, _t10, cpu->r[10]);
|
|
/* 028F1EEC */ cpu->r[12] = 0x00000001u;
|
|
/* 028F1EF0 */ _t11 = cpu->r[31] + 0x00000124u;
|
|
/* 028F1EF0 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[0]);
|
|
/* 028F1EF4 */ cpu->r[3] = cpu->r[31] + 0x0000009Cu;
|
|
/* 028F1EF8 */ _t12 = cpu->r[31] + 0x00000118u;
|
|
/* 028F1EF8 */ rbrew_write32(cpu->mem, _t12, cpu->r[12]);
|
|
/* 028F1EFC */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1EFC */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F1EFC */ if (_t14) goto L_028F1F00; else goto L_028F1F1C;
|
|
L_028F1F00: ; // 0x28f1f00
|
|
/* 028F1F00 */ cpu->r[12] = 0x00000011u;
|
|
/* 028F1F04 */ _t15 = cpu->r[31] + 0x000000B0u;
|
|
/* 028F1F04 */ rbrew_write32(cpu->mem, _t15, cpu->r[12]);
|
|
/* 028F1F08 */ rbrew_dispatch(cpu, 0x02d05bd0u);
|
|
/* 028F1F0C */ cpu->r[0] = 0x00000111u;
|
|
/* 028F1F10 */ _t16 = cpu->r[31] + 0x00000084u;
|
|
/* 028F1F10 */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[30]);
|
|
/* 028F1F14 */ _t17 = cpu->r[31] + 0x000000B0u;
|
|
/* 028F1F14 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028F1F18 */ goto L_028F1F48;
|
|
L_028F1F1C: ; // 0x28f1f1c
|
|
/* 028F1F1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x0000011Cu);
|
|
/* 028F1F20 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1F20 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F1F20 */ if (_t19) goto L_028F1F24; else goto L_028F1F40;
|
|
L_028F1F24: ; // 0x28f1f24
|
|
/* 028F1F24 */ cpu->r[10] = 0x0000081Cu;
|
|
/* 028F1F28 */ _t20 = cpu->r[31] + 0x000000B0u;
|
|
/* 028F1F28 */ rbrew_write32(cpu->mem, _t20, cpu->r[10]);
|
|
/* 028F1F2C */ rbrew_dispatch(cpu, 0x02d05bd0u);
|
|
/* 028F1F30 */ cpu->r[11] = 0x0000011Cu;
|
|
/* 028F1F34 */ _t21 = cpu->r[31] + 0x00000084u;
|
|
/* 028F1F34 */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[30]);
|
|
/* 028F1F38 */ _t22 = cpu->r[31] + 0x000000B0u;
|
|
/* 028F1F38 */ rbrew_write32(cpu->mem, _t22, cpu->r[11]);
|
|
/* 028F1F3C */ goto L_028F1F48;
|
|
L_028F1F40: ; // 0x28f1f40
|
|
/* 028F1F40 */ rbrew_dispatch(cpu, 0x02d05bd0u);
|
|
/* 028F1F44 */ _t23 = cpu->r[31] + 0x00000084u;
|
|
/* 028F1F44 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[30]);
|
|
L_028F1F48: ; // 0x28f1f48
|
|
/* 028F1F48 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 028F1F48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F1F4C */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 028F1F4C */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F1F50 */ cpu->lr = cpu->r[0];
|
|
/* 028F1F54 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F1F54 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F1F58 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F1F5C */ return;
|
|
}
|
|
|
|
// fn_028F1F60 @ 0x28f1f60
|
|
void Gambit_fn_028F1F60(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F1F60: ; // 0x28f1f60
|
|
/* 028F1F60 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028F1F60 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F1F60 */ cpu->r[1] = _t0;
|
|
/* 028F1F64 */ /* nop */
|
|
/* 028F1F68 */ cpu->r[0] = cpu->lr;
|
|
/* 028F1F6C */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028F1F6C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F1F70 */ _t2 = cpu->r[3] + 0x00000000u;
|
|
/* 028F1F70 */ cpu->r[7] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F1F74 */ _t3 = cpu->r[7] + 0x00000004u;
|
|
/* 028F1F74 */ cpu->r[8] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F1F78 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F1F7C */ cpu->r[31] = 0x10110000u;
|
|
/* 028F1F80 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], 0x00000001u);
|
|
/* 028F1F84 */ cpu->r[9] = cpu->r[0];
|
|
/* 028F1F88 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F1F88 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F1F88 */ if (_t5) goto L_028F1FA4; else goto L_028F1F8C;
|
|
L_028F1F8C: ; // 0x28f1f8c
|
|
/* 028F1F8C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1F8C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F1F8C */ if (_t7) goto L_028F2010; else goto L_028F1F90;
|
|
L_028F1F90: ; // 0x28f1f90
|
|
/* 028F1F90 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], 0x00000002u);
|
|
/* 028F1F94 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1F94 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F1F94 */ if (_t9) goto L_028F206C; else goto L_028F1F98;
|
|
L_028F1F98: ; // 0x28f1f98
|
|
/* 028F1F98 */ cpu->r[29] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 028F1F98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F1F9C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1F9C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F1F9C */ if (_t11) goto L_028F1FA0; else goto L_028F20C4;
|
|
L_028F1FA0: ; // 0x28f1fa0
|
|
/* 028F1FA0 */ goto L_028F20E4;
|
|
L_028F1FA4: ; // 0x28f1fa4
|
|
/* 028F1FA4 */ _t12 = cpu->r[31] + 0x00007358u;
|
|
/* 028F1FA4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F1FA8 */ cpu->r[29] = cpu->r[7] + 0x0000000Cu;
|
|
/* 028F1FAC */ cpu->r[28] = 0x0000004Du;
|
|
/* 028F1FB0 */ cpu->r[27] = cpu->r[7] + 0x00000010u;
|
|
L_028F1FB4: ; // 0x28f1fb4
|
|
/* 028F1FB4 */ cpu->ctr = cpu->r[30];
|
|
/* 028F1FB8 */ _t13 = cpu->r[29] + 0x00000004u;
|
|
/* 028F1FB8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F1FB8 */ cpu->r[29] = _t13;
|
|
/* 028F1FBC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F1FC0 */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 028F1FC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F1FC4 */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 028F1FC4 */ rbrew_write32(cpu->mem, _t14, cpu->r[3]);
|
|
/* 028F1FC8 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F1FC8 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F1FC8 */ if (_t16) goto L_028F1FCC; else goto L_028F1FB4;
|
|
L_028F1FCC: ; // 0x28f1fcc
|
|
/* 028F1FCC */ _t17 = cpu->r[27] + 0x000000DCu;
|
|
/* 028F1FCC */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F1FD0 */ _t18 = cpu->r[27] + 0x000000FCu;
|
|
/* 028F1FD0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F1FD4 */ _t19 = cpu->r[27] + 0x000000E4u;
|
|
/* 028F1FD4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F1FD8 */ cpu->r[9] = cpu->r[10] + cpu->r[11];
|
|
/* 028F1FDC */ _t20 = cpu->r[27] + 0x00000104u;
|
|
/* 028F1FDC */ cpu->r[11] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F1FE0 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x00000014u);
|
|
/* 028F1FE4 */ _t21 = cpu->r[27] + 0x000000ECu;
|
|
/* 028F1FE4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F1FE8 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 028F1FEC */ cpu->r[8] = rbrew_rlwinm(cpu->r[11], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F1FF0 */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x00000014u);
|
|
/* 028F1FF4 */ cpu->r[6] = cpu->r[12] + cpu->r[0];
|
|
/* 028F1FF8 */ cpu->r[12] = cpu->r[6] + cpu->r[8];
|
|
/* 028F1FFC */ cpu->r[0] = cpu->r[12] + cpu->r[5];
|
|
/* 028F2000 */ cpu->r[29] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 028F2000 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F2004 */ cpu->r[9] = cpu->r[27] + 0x00000134u;
|
|
/* 028F2008 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2008 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F2008 */ if (_t23) goto L_028F200C; else goto L_028F20C4;
|
|
L_028F200C: ; // 0x28f200c
|
|
/* 028F200C */ goto L_028F20E4;
|
|
L_028F2010: ; // 0x28f2010
|
|
/* 028F2010 */ _t24 = cpu->r[31] + 0x00007358u;
|
|
/* 028F2010 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F2014 */ cpu->r[29] = cpu->r[7] + 0x0000000Cu;
|
|
/* 028F2018 */ cpu->r[28] = 0x0000003Au;
|
|
/* 028F201C */ cpu->r[27] = cpu->r[7] + 0x00000010u;
|
|
L_028F2020: ; // 0x28f2020
|
|
/* 028F2020 */ cpu->ctr = cpu->r[30];
|
|
/* 028F2024 */ _t25 = cpu->r[29] + 0x00000004u;
|
|
/* 028F2024 */ cpu->r[3] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F2024 */ cpu->r[29] = _t25;
|
|
/* 028F2028 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F202C */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 028F202C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F2030 */ _t26 = cpu->r[29] + 0x00000000u;
|
|
/* 028F2030 */ rbrew_write32(cpu->mem, _t26, cpu->r[3]);
|
|
/* 028F2034 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2034 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F2034 */ if (_t28) goto L_028F2038; else goto L_028F2020;
|
|
L_028F2038: ; // 0x28f2038
|
|
/* 028F2038 */ _t29 = cpu->r[27] + 0x000000B8u;
|
|
/* 028F2038 */ cpu->r[8] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F203C */ _t30 = cpu->r[27] + 0x000000C0u;
|
|
/* 028F203C */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F2040 */ _t31 = cpu->r[27] + 0x000000B0u;
|
|
/* 028F2040 */ cpu->r[12] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F2044 */ cpu->r[7] = cpu->r[8] + cpu->r[0];
|
|
/* 028F2048 */ _t32 = cpu->r[27] + 0x000000D0u;
|
|
/* 028F2048 */ cpu->r[5] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F204C */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)0x00000014u);
|
|
/* 028F2050 */ cpu->r[0] = cpu->r[12] + cpu->r[5];
|
|
/* 028F2054 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 028F2058 */ cpu->r[0] = cpu->r[10] + cpu->r[6];
|
|
/* 028F205C */ cpu->r[29] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 028F205C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F2060 */ cpu->r[9] = cpu->r[27] + 0x000000E8u;
|
|
/* 028F2064 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2064 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F2064 */ if (_t34) goto L_028F2068; else goto L_028F20C4;
|
|
L_028F2068: ; // 0x28f2068
|
|
/* 028F2068 */ goto L_028F20E4;
|
|
L_028F206C: ; // 0x28f206c
|
|
/* 028F206C */ _t35 = cpu->r[31] + 0x00007358u;
|
|
/* 028F206C */ cpu->r[30] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F2070 */ cpu->r[29] = cpu->r[7] + 0x0000000Cu;
|
|
/* 028F2074 */ cpu->r[28] = 0x00000030u;
|
|
/* 028F2078 */ cpu->r[27] = cpu->r[7] + 0x00000010u;
|
|
L_028F207C: ; // 0x28f207c
|
|
/* 028F207C */ cpu->ctr = cpu->r[30];
|
|
/* 028F2080 */ _t36 = cpu->r[29] + 0x00000004u;
|
|
/* 028F2080 */ cpu->r[3] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F2080 */ cpu->r[29] = _t36;
|
|
/* 028F2084 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F2088 */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 028F2088 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F208C */ _t37 = cpu->r[29] + 0x00000000u;
|
|
/* 028F208C */ rbrew_write32(cpu->mem, _t37, cpu->r[3]);
|
|
/* 028F2090 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2090 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028F2090 */ if (_t39) goto L_028F2094; else goto L_028F207C;
|
|
L_028F2094: ; // 0x28f2094
|
|
/* 028F2094 */ _t40 = cpu->r[27] + 0x00000070u;
|
|
/* 028F2094 */ cpu->r[9] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028F2098 */ _t41 = cpu->r[27] + 0x00000068u;
|
|
/* 028F2098 */ cpu->r[8] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F209C */ _t42 = cpu->r[27] + 0x00000080u;
|
|
/* 028F209C */ cpu->r[5] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F20A0 */ cpu->r[0] = cpu->r[8] + cpu->r[9];
|
|
/* 028F20A4 */ _t43 = cpu->r[27] + 0x00000060u;
|
|
/* 028F20A4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028F20A8 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x00000014u);
|
|
/* 028F20AC */ cpu->r[0] = cpu->r[12] + cpu->r[5];
|
|
/* 028F20B0 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 028F20B4 */ cpu->r[0] = cpu->r[10] + cpu->r[0];
|
|
/* 028F20B8 */ cpu->r[29] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 028F20B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F20BC */ cpu->r[9] = cpu->r[27] + 0x000000C0u;
|
|
/* 028F20C0 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F20C0 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028F20C0 */ if (_t45) goto L_028F20E4; else goto L_028F20C4;
|
|
L_028F20C4: ; // 0x28f20c4
|
|
/* 028F20C4 */ _t46 = cpu->r[31] + 0x00007358u;
|
|
/* 028F20C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F20C8 */ cpu->r[30] = cpu->r[9] + 0xFFFFFFFCu;
|
|
L_028F20CC: ; // 0x28f20cc
|
|
/* 028F20CC */ cpu->ctr = cpu->r[31];
|
|
/* 028F20D0 */ _t47 = cpu->r[30] + 0x00000004u;
|
|
/* 028F20D0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F20D0 */ cpu->r[30] = _t47;
|
|
/* 028F20D4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F20D8 */ cpu->r[29] = cpu->r[29] + 0xFFFFFFFFu;
|
|
/* 028F20D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F20DC */ _t48 = cpu->r[30] + 0x00000000u;
|
|
/* 028F20DC */ rbrew_write32(cpu->mem, _t48, cpu->r[3]);
|
|
/* 028F20E0 */ _t49 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F20E0 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028F20E0 */ if (_t50) goto L_028F20E4; else goto L_028F20CC;
|
|
L_028F20E4: ; // 0x28f20e4
|
|
/* 028F20E4 */ /* nop */
|
|
/* 028F20E8 */ _t51 = cpu->r[1] + 0x00000024u;
|
|
/* 028F20E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F20EC */ cpu->lr = cpu->r[0];
|
|
/* 028F20F0 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028F20F4 */ return;
|
|
}
|
|
|
|
// fn_028F20F8 @ 0x28f20f8
|
|
void Gambit_fn_028F20F8(CPUState* cpu) {
|
|
L_028F20F8: ; // 0x28f20f8
|
|
/* 028F20F8 */ cpu->r[3] = cpu->r[3] + cpu->r[4];
|
|
/* 028F20FC */ return;
|
|
}
|
|
|
|
// fn_028F2100 @ 0x28f2100
|
|
void Gambit_fn_028F2100(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F2100: ; // 0x28f2100
|
|
/* 028F2100 */ cpu->r[0] = cpu->lr;
|
|
/* 028F2104 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F2104 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F2104 */ cpu->r[1] = _t0;
|
|
/* 028F2108 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F2108 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F210C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F210C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F2110 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F2110 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F2114 */ _t4 = cpu->r[3] + 0x00000000u;
|
|
/* 028F2114 */ cpu->r[30] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F2118 */ _t5 = cpu->r[30] + 0x00000004u;
|
|
/* 028F2118 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F211C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028F2120 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F2120 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F2120 */ if (_t7) goto L_028F2148; else goto L_028F2124;
|
|
L_028F2124: ; // 0x28f2124
|
|
/* 028F2124 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2124 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F2124 */ if (_t9) goto L_028F21D4; else goto L_028F2128;
|
|
L_028F2128: ; // 0x28f2128
|
|
/* 028F2128 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000002u);
|
|
/* 028F212C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F212C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F212C */ if (_t11) goto L_028F224C; else goto L_028F2130;
|
|
L_028F2130: ; // 0x28f2130
|
|
/* 028F2130 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028F2130 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F2134 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028F2134 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F2138 */ cpu->lr = cpu->r[0];
|
|
/* 028F213C */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F213C */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F2140 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F2144 */ return;
|
|
L_028F2148: ; // 0x28f2148
|
|
/* 028F2148 */ cpu->r[31] = cpu->r[30] + 0x00000010u;
|
|
/* 028F214C */ _t15 = cpu->r[30] + 0x000000F0u;
|
|
/* 028F214C */ cpu->r[4] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F2150 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2154 */ _t16 = cpu->r[30] + 0x000000ECu;
|
|
/* 028F2154 */ cpu->r[5] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F2158 */ Gambit_fn_028F2D7C(cpu);
|
|
/* 028F215C */ _t17 = cpu->r[30] + 0x000000F8u;
|
|
/* 028F215C */ cpu->r[4] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F2160 */ _t18 = cpu->r[30] + 0x000000F4u;
|
|
/* 028F2160 */ cpu->r[5] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F2164 */ _t19 = cpu->r[30] + 0x000000F0u;
|
|
/* 028F2164 */ rbrew_write32(cpu->mem, _t19, cpu->r[3]);
|
|
/* 028F2168 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F216C */ Gambit_fn_028F2DBC(cpu);
|
|
/* 028F2170 */ _t20 = cpu->r[30] + 0x00000110u;
|
|
/* 028F2170 */ cpu->r[4] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F2174 */ _t21 = cpu->r[30] + 0x0000010Cu;
|
|
/* 028F2174 */ cpu->r[5] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F2178 */ _t22 = cpu->r[30] + 0x000000F8u;
|
|
/* 028F2178 */ rbrew_write32(cpu->mem, _t22, cpu->r[3]);
|
|
/* 028F217C */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2180 */ Gambit_fn_028F2DFC(cpu);
|
|
/* 028F2184 */ _t23 = cpu->r[30] + 0x00000118u;
|
|
/* 028F2184 */ cpu->r[4] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F2188 */ _t24 = cpu->r[30] + 0x00000114u;
|
|
/* 028F2188 */ cpu->r[5] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F218C */ _t25 = cpu->r[30] + 0x00000110u;
|
|
/* 028F218C */ rbrew_write32(cpu->mem, _t25, cpu->r[3]);
|
|
/* 028F2190 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2194 */ Gambit_fn_028F2E3C(cpu);
|
|
/* 028F2198 */ _t26 = cpu->r[30] + 0x00000108u;
|
|
/* 028F2198 */ cpu->r[4] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F219C */ _t27 = cpu->r[30] + 0x00000118u;
|
|
/* 028F219C */ rbrew_write32(cpu->mem, _t27, cpu->r[3]);
|
|
/* 028F21A0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F21A4 */ Gambit_fn_028F20F8(cpu);
|
|
/* 028F21A8 */ _t28 = cpu->r[30] + 0x000000E4u;
|
|
/* 028F21A8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F21AC */ _t29 = cpu->r[30] + 0x00000108u;
|
|
/* 028F21AC */ rbrew_write32(cpu->mem, _t29, cpu->r[3]);
|
|
/* 028F21B0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F21B4 */ Gambit_fn_028F20F8(cpu);
|
|
/* 028F21B8 */ _t30 = cpu->r[30] + 0x000000E4u;
|
|
/* 028F21B8 */ rbrew_write32(cpu->mem, _t30, cpu->r[3]);
|
|
/* 028F21BC */ _t31 = cpu->r[1] + 0x00000014u;
|
|
/* 028F21BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F21C0 */ _t32 = cpu->r[1] + 0x00000008u;
|
|
/* 028F21C0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F21C4 */ cpu->lr = cpu->r[0];
|
|
/* 028F21C8 */ _t33 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F21C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F21CC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F21D0 */ return;
|
|
L_028F21D4: ; // 0x28f21d4
|
|
/* 028F21D4 */ cpu->r[31] = cpu->r[30] + 0x00000010u;
|
|
/* 028F21D8 */ _t34 = cpu->r[30] + 0x000000C4u;
|
|
/* 028F21D8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F21DC */ cpu->r[3] = cpu->r[31];
|
|
/* 028F21E0 */ _t35 = cpu->r[30] + 0x000000C0u;
|
|
/* 028F21E0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F21E4 */ Gambit_fn_028F2D7C(cpu);
|
|
/* 028F21E8 */ _t36 = cpu->r[30] + 0x000000CCu;
|
|
/* 028F21E8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F21EC */ _t37 = cpu->r[30] + 0x000000C8u;
|
|
/* 028F21EC */ cpu->r[5] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F21F0 */ _t38 = cpu->r[30] + 0x000000C4u;
|
|
/* 028F21F0 */ rbrew_write32(cpu->mem, _t38, cpu->r[3]);
|
|
/* 028F21F4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F21F8 */ Gambit_fn_028F2DBC(cpu);
|
|
/* 028F21FC */ _t39 = cpu->r[30] + 0x000000E4u;
|
|
/* 028F21FC */ cpu->r[4] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F2200 */ _t40 = cpu->r[30] + 0x000000E0u;
|
|
/* 028F2200 */ cpu->r[5] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028F2204 */ _t41 = cpu->r[30] + 0x000000CCu;
|
|
/* 028F2204 */ rbrew_write32(cpu->mem, _t41, cpu->r[3]);
|
|
/* 028F2208 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F220C */ Gambit_fn_028F2DFC(cpu);
|
|
/* 028F2210 */ _t42 = cpu->r[30] + 0x000000E4u;
|
|
/* 028F2210 */ rbrew_write32(cpu->mem, _t42, cpu->r[3]);
|
|
/* 028F2214 */ _t43 = cpu->r[30] + 0x000000DCu;
|
|
/* 028F2214 */ cpu->r[4] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028F2218 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F221C */ Gambit_fn_028F20F8(cpu);
|
|
/* 028F2220 */ _t44 = cpu->r[30] + 0x000000DCu;
|
|
/* 028F2220 */ rbrew_write32(cpu->mem, _t44, cpu->r[3]);
|
|
/* 028F2224 */ _t45 = cpu->r[30] + 0x000000B8u;
|
|
/* 028F2224 */ cpu->r[4] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F2228 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F222C */ Gambit_fn_028F20F8(cpu);
|
|
/* 028F2230 */ _t46 = cpu->r[30] + 0x000000B8u;
|
|
/* 028F2230 */ rbrew_write32(cpu->mem, _t46, cpu->r[3]);
|
|
/* 028F2234 */ _t47 = cpu->r[1] + 0x00000014u;
|
|
/* 028F2234 */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F2238 */ _t48 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F2238 */ cpu->r[31] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028F223C */ cpu->lr = cpu->r[0];
|
|
/* 028F2240 */ _t49 = cpu->r[1] + 0x00000008u;
|
|
/* 028F2240 */ cpu->r[30] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028F2244 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F2248 */ return;
|
|
L_028F224C: ; // 0x28f224c
|
|
/* 028F224C */ cpu->r[31] = cpu->r[30] + 0x00000010u;
|
|
/* 028F2250 */ _t50 = cpu->r[30] + 0x00000074u;
|
|
/* 028F2250 */ cpu->r[4] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F2254 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2258 */ _t51 = cpu->r[30] + 0x00000070u;
|
|
/* 028F2258 */ cpu->r[5] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F225C */ Gambit_fn_028F2D7C(cpu);
|
|
/* 028F2260 */ _t52 = cpu->r[30] + 0x0000007Cu;
|
|
/* 028F2260 */ cpu->r[4] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028F2264 */ _t53 = cpu->r[30] + 0x00000078u;
|
|
/* 028F2264 */ cpu->r[5] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028F2268 */ _t54 = cpu->r[30] + 0x00000074u;
|
|
/* 028F2268 */ rbrew_write32(cpu->mem, _t54, cpu->r[3]);
|
|
/* 028F226C */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2270 */ Gambit_fn_028F2DBC(cpu);
|
|
/* 028F2274 */ _t55 = cpu->r[30] + 0x00000094u;
|
|
/* 028F2274 */ cpu->r[4] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028F2278 */ _t56 = cpu->r[30] + 0x00000090u;
|
|
/* 028F2278 */ cpu->r[5] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028F227C */ _t57 = cpu->r[30] + 0x0000007Cu;
|
|
/* 028F227C */ rbrew_write32(cpu->mem, _t57, cpu->r[3]);
|
|
/* 028F2280 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2284 */ Gambit_fn_028F2DFC(cpu);
|
|
/* 028F2288 */ _t58 = cpu->r[30] + 0x00000094u;
|
|
/* 028F2288 */ rbrew_write32(cpu->mem, _t58, cpu->r[3]);
|
|
/* 028F228C */ _t59 = cpu->r[30] + 0x0000008Cu;
|
|
/* 028F228C */ cpu->r[4] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028F2290 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2294 */ Gambit_fn_028F20F8(cpu);
|
|
/* 028F2298 */ _t60 = cpu->r[30] + 0x00000060u;
|
|
/* 028F2298 */ cpu->r[4] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028F229C */ _t61 = cpu->r[30] + 0x0000008Cu;
|
|
/* 028F229C */ rbrew_write32(cpu->mem, _t61, cpu->r[3]);
|
|
/* 028F22A0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F22A4 */ Gambit_fn_028F20F8(cpu);
|
|
/* 028F22A8 */ _t62 = cpu->r[30] + 0x00000068u;
|
|
/* 028F22A8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028F22AC */ _t63 = cpu->r[30] + 0x00000060u;
|
|
/* 028F22AC */ rbrew_write32(cpu->mem, _t63, cpu->r[3]);
|
|
/* 028F22B0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F22B4 */ Gambit_fn_028F20F8(cpu);
|
|
/* 028F22B8 */ _t64 = cpu->r[30] + 0x00000068u;
|
|
/* 028F22B8 */ rbrew_write32(cpu->mem, _t64, cpu->r[3]);
|
|
/* 028F22BC */ _t65 = cpu->r[1] + 0x00000014u;
|
|
/* 028F22BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028F22C0 */ _t66 = cpu->r[1] + 0x00000008u;
|
|
/* 028F22C0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028F22C4 */ cpu->lr = cpu->r[0];
|
|
/* 028F22C8 */ _t67 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F22C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028F22CC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F22D0 */ return;
|
|
}
|
|
|
|
// fn_028F2104 @ 0x28f2104
|
|
void Gambit_fn_028F2104(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F2104: ; // 0x28f2104
|
|
/* 028F2104 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F2104 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F2104 */ cpu->r[1] = _t0;
|
|
/* 028F2108 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F2108 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F210C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F210C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F2110 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F2110 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F2114 */ _t4 = cpu->r[3] + 0x00000000u;
|
|
/* 028F2114 */ cpu->r[30] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F2118 */ _t5 = cpu->r[30] + 0x00000004u;
|
|
/* 028F2118 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F211C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028F2120 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F2120 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F2120 */ if (_t7) goto L_028F2148; else goto L_028F2124;
|
|
L_028F2124: ; // 0x28f2124
|
|
/* 028F2124 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2124 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F2124 */ if (_t9) goto L_028F21D4; else goto L_028F2128;
|
|
L_028F2128: ; // 0x28f2128
|
|
/* 028F2128 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000002u);
|
|
/* 028F212C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F212C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F212C */ if (_t11) goto L_028F224C; else goto L_028F2130;
|
|
L_028F2130: ; // 0x28f2130
|
|
/* 028F2130 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028F2130 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F2134 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028F2134 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F2138 */ cpu->lr = cpu->r[0];
|
|
/* 028F213C */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F213C */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F2140 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F2144 */ return;
|
|
L_028F2148: ; // 0x28f2148
|
|
/* 028F2148 */ cpu->r[31] = cpu->r[30] + 0x00000010u;
|
|
/* 028F214C */ _t15 = cpu->r[30] + 0x000000F0u;
|
|
/* 028F214C */ cpu->r[4] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F2150 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2154 */ _t16 = cpu->r[30] + 0x000000ECu;
|
|
/* 028F2154 */ cpu->r[5] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F2158 */ Gambit_fn_028F2D7C(cpu);
|
|
/* 028F215C */ _t17 = cpu->r[30] + 0x000000F8u;
|
|
/* 028F215C */ cpu->r[4] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F2160 */ _t18 = cpu->r[30] + 0x000000F4u;
|
|
/* 028F2160 */ cpu->r[5] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F2164 */ _t19 = cpu->r[30] + 0x000000F0u;
|
|
/* 028F2164 */ rbrew_write32(cpu->mem, _t19, cpu->r[3]);
|
|
/* 028F2168 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F216C */ Gambit_fn_028F2DBC(cpu);
|
|
/* 028F2170 */ _t20 = cpu->r[30] + 0x00000110u;
|
|
/* 028F2170 */ cpu->r[4] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F2174 */ _t21 = cpu->r[30] + 0x0000010Cu;
|
|
/* 028F2174 */ cpu->r[5] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F2178 */ _t22 = cpu->r[30] + 0x000000F8u;
|
|
/* 028F2178 */ rbrew_write32(cpu->mem, _t22, cpu->r[3]);
|
|
/* 028F217C */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2180 */ Gambit_fn_028F2DFC(cpu);
|
|
/* 028F2184 */ _t23 = cpu->r[30] + 0x00000118u;
|
|
/* 028F2184 */ cpu->r[4] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F2188 */ _t24 = cpu->r[30] + 0x00000114u;
|
|
/* 028F2188 */ cpu->r[5] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F218C */ _t25 = cpu->r[30] + 0x00000110u;
|
|
/* 028F218C */ rbrew_write32(cpu->mem, _t25, cpu->r[3]);
|
|
/* 028F2190 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2194 */ Gambit_fn_028F2E3C(cpu);
|
|
/* 028F2198 */ _t26 = cpu->r[30] + 0x00000108u;
|
|
/* 028F2198 */ cpu->r[4] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F219C */ _t27 = cpu->r[30] + 0x00000118u;
|
|
/* 028F219C */ rbrew_write32(cpu->mem, _t27, cpu->r[3]);
|
|
/* 028F21A0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F21A4 */ Gambit_fn_028F20F8(cpu);
|
|
/* 028F21A8 */ _t28 = cpu->r[30] + 0x000000E4u;
|
|
/* 028F21A8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F21AC */ _t29 = cpu->r[30] + 0x00000108u;
|
|
/* 028F21AC */ rbrew_write32(cpu->mem, _t29, cpu->r[3]);
|
|
/* 028F21B0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F21B4 */ Gambit_fn_028F20F8(cpu);
|
|
/* 028F21B8 */ _t30 = cpu->r[30] + 0x000000E4u;
|
|
/* 028F21B8 */ rbrew_write32(cpu->mem, _t30, cpu->r[3]);
|
|
/* 028F21BC */ _t31 = cpu->r[1] + 0x00000014u;
|
|
/* 028F21BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F21C0 */ _t32 = cpu->r[1] + 0x00000008u;
|
|
/* 028F21C0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F21C4 */ cpu->lr = cpu->r[0];
|
|
/* 028F21C8 */ _t33 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F21C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F21CC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F21D0 */ return;
|
|
L_028F21D4: ; // 0x28f21d4
|
|
/* 028F21D4 */ cpu->r[31] = cpu->r[30] + 0x00000010u;
|
|
/* 028F21D8 */ _t34 = cpu->r[30] + 0x000000C4u;
|
|
/* 028F21D8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F21DC */ cpu->r[3] = cpu->r[31];
|
|
/* 028F21E0 */ _t35 = cpu->r[30] + 0x000000C0u;
|
|
/* 028F21E0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F21E4 */ Gambit_fn_028F2D7C(cpu);
|
|
/* 028F21E8 */ _t36 = cpu->r[30] + 0x000000CCu;
|
|
/* 028F21E8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F21EC */ _t37 = cpu->r[30] + 0x000000C8u;
|
|
/* 028F21EC */ cpu->r[5] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F21F0 */ _t38 = cpu->r[30] + 0x000000C4u;
|
|
/* 028F21F0 */ rbrew_write32(cpu->mem, _t38, cpu->r[3]);
|
|
/* 028F21F4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F21F8 */ Gambit_fn_028F2DBC(cpu);
|
|
/* 028F21FC */ _t39 = cpu->r[30] + 0x000000E4u;
|
|
/* 028F21FC */ cpu->r[4] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F2200 */ _t40 = cpu->r[30] + 0x000000E0u;
|
|
/* 028F2200 */ cpu->r[5] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028F2204 */ _t41 = cpu->r[30] + 0x000000CCu;
|
|
/* 028F2204 */ rbrew_write32(cpu->mem, _t41, cpu->r[3]);
|
|
/* 028F2208 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F220C */ Gambit_fn_028F2DFC(cpu);
|
|
/* 028F2210 */ _t42 = cpu->r[30] + 0x000000E4u;
|
|
/* 028F2210 */ rbrew_write32(cpu->mem, _t42, cpu->r[3]);
|
|
/* 028F2214 */ _t43 = cpu->r[30] + 0x000000DCu;
|
|
/* 028F2214 */ cpu->r[4] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028F2218 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F221C */ Gambit_fn_028F20F8(cpu);
|
|
/* 028F2220 */ _t44 = cpu->r[30] + 0x000000DCu;
|
|
/* 028F2220 */ rbrew_write32(cpu->mem, _t44, cpu->r[3]);
|
|
/* 028F2224 */ _t45 = cpu->r[30] + 0x000000B8u;
|
|
/* 028F2224 */ cpu->r[4] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F2228 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F222C */ Gambit_fn_028F20F8(cpu);
|
|
/* 028F2230 */ _t46 = cpu->r[30] + 0x000000B8u;
|
|
/* 028F2230 */ rbrew_write32(cpu->mem, _t46, cpu->r[3]);
|
|
/* 028F2234 */ _t47 = cpu->r[1] + 0x00000014u;
|
|
/* 028F2234 */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F2238 */ _t48 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F2238 */ cpu->r[31] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028F223C */ cpu->lr = cpu->r[0];
|
|
/* 028F2240 */ _t49 = cpu->r[1] + 0x00000008u;
|
|
/* 028F2240 */ cpu->r[30] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028F2244 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F2248 */ return;
|
|
L_028F224C: ; // 0x28f224c
|
|
/* 028F224C */ cpu->r[31] = cpu->r[30] + 0x00000010u;
|
|
/* 028F2250 */ _t50 = cpu->r[30] + 0x00000074u;
|
|
/* 028F2250 */ cpu->r[4] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F2254 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2258 */ _t51 = cpu->r[30] + 0x00000070u;
|
|
/* 028F2258 */ cpu->r[5] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F225C */ Gambit_fn_028F2D7C(cpu);
|
|
/* 028F2260 */ _t52 = cpu->r[30] + 0x0000007Cu;
|
|
/* 028F2260 */ cpu->r[4] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028F2264 */ _t53 = cpu->r[30] + 0x00000078u;
|
|
/* 028F2264 */ cpu->r[5] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028F2268 */ _t54 = cpu->r[30] + 0x00000074u;
|
|
/* 028F2268 */ rbrew_write32(cpu->mem, _t54, cpu->r[3]);
|
|
/* 028F226C */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2270 */ Gambit_fn_028F2DBC(cpu);
|
|
/* 028F2274 */ _t55 = cpu->r[30] + 0x00000094u;
|
|
/* 028F2274 */ cpu->r[4] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028F2278 */ _t56 = cpu->r[30] + 0x00000090u;
|
|
/* 028F2278 */ cpu->r[5] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028F227C */ _t57 = cpu->r[30] + 0x0000007Cu;
|
|
/* 028F227C */ rbrew_write32(cpu->mem, _t57, cpu->r[3]);
|
|
/* 028F2280 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2284 */ Gambit_fn_028F2DFC(cpu);
|
|
/* 028F2288 */ _t58 = cpu->r[30] + 0x00000094u;
|
|
/* 028F2288 */ rbrew_write32(cpu->mem, _t58, cpu->r[3]);
|
|
/* 028F228C */ _t59 = cpu->r[30] + 0x0000008Cu;
|
|
/* 028F228C */ cpu->r[4] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028F2290 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2294 */ Gambit_fn_028F20F8(cpu);
|
|
/* 028F2298 */ _t60 = cpu->r[30] + 0x00000060u;
|
|
/* 028F2298 */ cpu->r[4] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028F229C */ _t61 = cpu->r[30] + 0x0000008Cu;
|
|
/* 028F229C */ rbrew_write32(cpu->mem, _t61, cpu->r[3]);
|
|
/* 028F22A0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F22A4 */ Gambit_fn_028F20F8(cpu);
|
|
/* 028F22A8 */ _t62 = cpu->r[30] + 0x00000068u;
|
|
/* 028F22A8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028F22AC */ _t63 = cpu->r[30] + 0x00000060u;
|
|
/* 028F22AC */ rbrew_write32(cpu->mem, _t63, cpu->r[3]);
|
|
/* 028F22B0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F22B4 */ Gambit_fn_028F20F8(cpu);
|
|
/* 028F22B8 */ _t64 = cpu->r[30] + 0x00000068u;
|
|
/* 028F22B8 */ rbrew_write32(cpu->mem, _t64, cpu->r[3]);
|
|
/* 028F22BC */ _t65 = cpu->r[1] + 0x00000014u;
|
|
/* 028F22BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028F22C0 */ _t66 = cpu->r[1] + 0x00000008u;
|
|
/* 028F22C0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028F22C4 */ cpu->lr = cpu->r[0];
|
|
/* 028F22C8 */ _t67 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F22C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028F22CC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F22D0 */ return;
|
|
}
|
|
|
|
// fn_028F22D4 @ 0x28f22d4
|
|
void Gambit_fn_028F22D4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028F22D4: ; // 0x28f22d4
|
|
/* 028F22D4 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028F22D4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F22D8 */ _t1 = cpu->r[9] + 0x00000004u;
|
|
/* 028F22D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028F22DC */ cpu->r[10] = 0x00000000u;
|
|
/* 028F22E0 */ cpu->r[11] = cpu->r[9] + cpu->r[12];
|
|
/* 028F22E4 */ _t2 = cpu->r[9] + 0x00000008u;
|
|
/* 028F22E4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F22E8 */ cpu->r[3] = cpu->r[11] + 0x00000010u;
|
|
/* 028F22EC */ goto L_028F22F4;
|
|
L_028F22F0: ; // 0x28f22f0
|
|
/* 028F22F0 */ cpu->r[3] = cpu->r[3] + 0x00000001u;
|
|
L_028F22F4: ; // 0x28f22f4
|
|
/* 028F22F4 */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028F22F4 */ cpu->r[0] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028F22F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F22FC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F22FC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F22FC */ if (_t5) goto L_028F22F0; else goto L_028F2300;
|
|
L_028F2300: ; // 0x28f2300
|
|
/* 028F2300 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[12]);
|
|
/* 028F2304 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2304 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F2304 */ if (_t7) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F2304 */ goto L_028F2308;
|
|
L_028F2308: ; // 0x28f2308
|
|
/* 028F2308 */ _t8 = cpu->r[3] + 0x00000001u;
|
|
/* 028F2308 */ cpu->r[8] = rbrew_read8(cpu->mem, _t8);
|
|
/* 028F2308 */ cpu->r[3] = _t8;
|
|
/* 028F230C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F2310 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2310 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F2310 */ if (_t10) goto L_028F2314; else goto L_028F2308;
|
|
L_028F2314: ; // 0x28f2314
|
|
/* 028F2314 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028F2318 */ cpu->r[3] = cpu->r[3] + 0x00000001u;
|
|
/* 028F231C */ goto L_028F22F4;
|
|
}
|
|
|
|
// fn_028F2320 @ 0x28f2320
|
|
void Gambit_fn_028F2320(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028F2320: ; // 0x28f2320
|
|
/* 028F2320 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028F2320 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F2324 */ _t1 = cpu->r[12] + 0x00000004u;
|
|
/* 028F2324 */ cpu->r[10] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028F2328 */ cpu->r[12] = cpu->r[12] + cpu->r[10];
|
|
/* 028F232C */ cpu->r[9] = 0x00000000u;
|
|
/* 028F2330 */ cpu->r[3] = cpu->r[12] + 0x00000010u;
|
|
/* 028F2334 */ goto L_028F233C;
|
|
L_028F2338: ; // 0x28f2338
|
|
/* 028F2338 */ cpu->r[3] = cpu->r[3] + 0x00000001u;
|
|
L_028F233C: ; // 0x28f233c
|
|
/* 028F233C */ _t2 = cpu->r[3] + 0x00000000u;
|
|
/* 028F233C */ cpu->r[11] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028F2340 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028F2344 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2344 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F2344 */ if (_t4) goto L_028F2338; else goto L_028F2348;
|
|
L_028F2348: ; // 0x28f2348
|
|
/* 028F2348 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[4]);
|
|
/* 028F234C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F234C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F234C */ if (_t6) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F234C */ goto L_028F2350;
|
|
L_028F2350: ; // 0x28f2350
|
|
/* 028F2350 */ _t7 = cpu->r[3] + 0x00000001u;
|
|
/* 028F2350 */ cpu->r[0] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028F2350 */ cpu->r[3] = _t7;
|
|
/* 028F2354 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F2358 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2358 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F2358 */ if (_t9) goto L_028F235C; else goto L_028F2350;
|
|
L_028F235C: ; // 0x28f235c
|
|
/* 028F235C */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 028F2360 */ cpu->r[3] = cpu->r[3] + 0x00000001u;
|
|
/* 028F2364 */ goto L_028F233C;
|
|
}
|
|
|
|
// fn_028F2368 @ 0x28f2368
|
|
void Gambit_fn_028F2368(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028F2368: ; // 0x28f2368
|
|
/* 028F2368 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028F2368 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F236C */ _t1 = cpu->r[11] + 0x00000004u;
|
|
/* 028F236C */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028F2370 */ cpu->r[12] = cpu->r[11] + cpu->r[0];
|
|
/* 028F2374 */ cpu->r[11] = 0x00000000u;
|
|
/* 028F2378 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[4]);
|
|
/* 028F237C */ cpu->r[12] = cpu->r[12] + 0x00000014u;
|
|
/* 028F2380 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F2380 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F2380 */ if (_t3) goto L_028F2384; else goto L_028F2398;
|
|
L_028F2384: ; // 0x28f2384
|
|
/* 028F2384 */ _t4 = cpu->r[12] + 0x00000000u;
|
|
/* 028F2384 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F2388 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028F238C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[4]);
|
|
/* 028F2390 */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
/* 028F2394 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F2394 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F2394 */ if (_t6) goto L_028F2384; else goto L_028F2398;
|
|
L_028F2398: ; // 0x28f2398
|
|
/* 028F2398 */ cpu->r[3] = cpu->r[12];
|
|
/* 028F239C */ return;
|
|
}
|
|
|
|
// fn_028F23A0 @ 0x28f23a0
|
|
void Gambit_fn_028F23A0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028F23A0: ; // 0x28f23a0
|
|
/* 028F23A0 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028F23A0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F23A4 */ cpu->r[0] = 0x00000003u;
|
|
/* 028F23A8 */ _t1 = cpu->r[11] + 0x00000004u;
|
|
/* 028F23A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028F23AC */ cpu->ctr = cpu->r[0];
|
|
/* 028F23B0 */ cpu->r[11] = cpu->r[11] + cpu->r[12];
|
|
/* 028F23B4 */ cpu->r[12] = cpu->r[11] + 0x00000014u;
|
|
L_028F23B8: ; // 0x28f23b8
|
|
/* 028F23B8 */ _t2 = cpu->r[12] + 0x00000000u;
|
|
/* 028F23B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F23BC */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
/* 028F23C0 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F23C0 */ _t3 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F23C0 */ _t4 = _t3 >> (0x00000002u & 31u);
|
|
/* 028F23C0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F23C0 */ if (_t5) goto L_028F23B8; else goto L_028F23C4;
|
|
L_028F23C4: ; // 0x28f23c4
|
|
/* 028F23C4 */ cpu->r[3] = cpu->r[12];
|
|
/* 028F23C8 */ return;
|
|
}
|
|
|
|
// fn_028F23CC @ 0x28f23cc
|
|
void Gambit_fn_028F23CC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F23CC: ; // 0x28f23cc
|
|
/* 028F23CC */ _t0 = cpu->r[1] + 0xFFFFFF10u;
|
|
/* 028F23CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F23CC */ cpu->r[1] = _t0;
|
|
/* 028F23D0 */ /* nop */
|
|
/* 028F23D4 */ cpu->r[0] = cpu->lr;
|
|
/* 028F23D8 */ _t1 = cpu->r[1] + 0x000000F4u;
|
|
/* 028F23D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F23DC */ cpu->r[27] = cpu->r[3];
|
|
/* 028F23E0 */ _t2 = cpu->r[27] + 0x00000000u;
|
|
/* 028F23E0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F23E4 */ cpu->r[26] = 0x01000000u;
|
|
/* 028F23E8 */ _t3 = cpu->r[4] + 0x0000000Cu;
|
|
/* 028F23E8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F23EC */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 028F23F0 */ cpu->r[5] = cpu->r[26] & cpu->r[7];
|
|
/* 028F23F4 */ cpu->r[8] = cpu->r[5] + 0xFFFFFFFFu;
|
|
/* 028F23F8 */ cpu->r[3] = cpu->r[5] - cpu->r[8];
|
|
/* 028F23FC */ cpu->r[0] = cpu->r[3] ^ 0x00000001u;
|
|
/* 028F2400 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F2400 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F2404 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2404 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F2404 */ if (_t5) goto L_028F2408; else goto L_028F28B0;
|
|
L_028F2408: ; // 0x28f2408
|
|
/* 028F2408 */ cpu->r[5] = 0x00000014u;
|
|
/* 028F240C */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2410 */ _t6 = cpu->r[27] + 0x00000000u;
|
|
/* 028F2410 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F2414 */ _t7 = cpu->r[4] + 0x00000010u;
|
|
/* 028F2414 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F2418 */ _t8 = cpu->r[4] + 0x0000000Cu;
|
|
/* 028F2418 */ cpu->r[9] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F241C */ cpu->r[31] = cpu->r[4] + cpu->r[0];
|
|
/* 028F2420 */ cpu->r[8] = cpu->r[26] & cpu->r[9];
|
|
/* 028F2424 */ cpu->r[25] = cpu->r[31] + 0x00000014u;
|
|
/* 028F2428 */ cpu->r[0] = cpu->r[8] + 0xFFFFFFFFu;
|
|
/* 028F242C */ cpu->r[24] = cpu->r[8] - cpu->r[0];
|
|
/* 028F2430 */ cpu->r[4] = cpu->r[25];
|
|
/* 028F2434 */ cpu->r[5] = 0x00000008u;
|
|
/* 028F2438 */ cpu->r[3] = cpu->r[24];
|
|
/* 028F243C */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2440 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F2444 */ cpu->r[28] = cpu->r[25] + 0x00000008u;
|
|
/* 028F2448 */ _t9 = cpu->r[1] + 0x00000074u;
|
|
/* 028F2448 */ rbrew_write32(cpu->mem, _t9, cpu->r[30]);
|
|
/* 028F244C */ _t10 = cpu->r[1] + 0x00000078u;
|
|
/* 028F244C */ rbrew_write32(cpu->mem, _t10, cpu->r[28]);
|
|
/* 028F2450 */ _t11 = cpu->r[31] + 0x00000018u;
|
|
/* 028F2450 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F2454 */ cpu->r[29] = cpu->r[30];
|
|
/* 028F2458 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028F245C */ _t12 = cpu->r[1] + 0x00000094u;
|
|
/* 028F245C */ rbrew_write32(cpu->mem, _t12, cpu->r[31]);
|
|
/* 028F2460 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2460 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F2460 */ if (_t14) goto L_028F2488; else goto L_028F2464;
|
|
L_028F2464: ; // 0x28f2464
|
|
/* 028F2464 */ cpu->r[5] = 0x00000014u;
|
|
/* 028F2468 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F246C */ cpu->r[3] = cpu->r[24];
|
|
/* 028F2470 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2474 */ _t15 = cpu->r[28] + 0x00000000u;
|
|
/* 028F2474 */ cpu->r[11] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F2478 */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028F247C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028F2480 */ cpu->r[28] = cpu->r[28] + cpu->r[11];
|
|
/* 028F2484 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2484 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F2484 */ if (_t17) goto L_028F2488; else goto L_028F2464;
|
|
L_028F2488: ; // 0x28f2488
|
|
/* 028F2488 */ _t18 = cpu->r[27] + 0x00000000u;
|
|
/* 028F2488 */ cpu->r[4] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F248C */ _t19 = cpu->r[4] + 0x00000010u;
|
|
/* 028F248C */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F2490 */ _t20 = cpu->r[4] + 0x0000000Cu;
|
|
/* 028F2490 */ cpu->r[6] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F2494 */ cpu->r[12] = cpu->r[4] + cpu->r[0];
|
|
/* 028F2498 */ _t21 = cpu->r[12] + 0x00000014u;
|
|
/* 028F2498 */ cpu->r[4] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F2498 */ cpu->r[12] = _t21;
|
|
/* 028F249C */ cpu->r[5] = cpu->r[26] & cpu->r[6];
|
|
/* 028F24A0 */ cpu->r[31] = cpu->r[12] + cpu->r[4];
|
|
/* 028F24A4 */ cpu->r[7] = cpu->r[5] + 0xFFFFFFFFu;
|
|
/* 028F24A8 */ cpu->r[24] = cpu->r[5] - cpu->r[7];
|
|
/* 028F24AC */ cpu->r[5] = 0x00000008u;
|
|
/* 028F24B0 */ cpu->r[4] = cpu->r[31];
|
|
/* 028F24B4 */ cpu->r[3] = cpu->r[24];
|
|
/* 028F24B8 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F24BC */ _t22 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028F24BC */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
/* 028F24C0 */ cpu->r[28] = cpu->r[31] + 0x00000008u;
|
|
/* 028F24C4 */ _t23 = cpu->r[1] + 0x00000080u;
|
|
/* 028F24C4 */ rbrew_write32(cpu->mem, _t23, cpu->r[28]);
|
|
/* 028F24C8 */ _t24 = cpu->r[31] + 0x00000004u;
|
|
/* 028F24C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F24CC */ cpu->r[29] = cpu->r[30];
|
|
/* 028F24D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028F24D4 */ _t25 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028F24D4 */ rbrew_write32(cpu->mem, _t25, cpu->r[31]);
|
|
/* 028F24D8 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F24D8 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028F24D8 */ if (_t27) goto L_028F2500; else goto L_028F24DC;
|
|
L_028F24DC: ; // 0x28f24dc
|
|
/* 028F24DC */ cpu->r[5] = 0x00000010u;
|
|
/* 028F24E0 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F24E4 */ cpu->r[3] = cpu->r[24];
|
|
/* 028F24E8 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F24EC */ _t28 = cpu->r[28] + 0x00000000u;
|
|
/* 028F24EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F24F0 */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028F24F4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028F24F8 */ cpu->r[28] = cpu->r[28] + cpu->r[0];
|
|
/* 028F24FC */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F24FC */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F24FC */ if (_t30) goto L_028F2500; else goto L_028F24DC;
|
|
L_028F2500: ; // 0x28f2500
|
|
/* 028F2500 */ cpu->r[29] = cpu->r[25] + 0x00000008u;
|
|
/* 028F2504 */ _t31 = cpu->r[1] + 0x00000088u;
|
|
/* 028F2504 */ rbrew_write32(cpu->mem, _t31, cpu->r[29]);
|
|
/* 028F2508 */ _t32 = cpu->r[1] + 0x00000084u;
|
|
/* 028F2508 */ rbrew_write32(cpu->mem, _t32, cpu->r[30]);
|
|
/* 028F250C */ _t33 = cpu->r[25] + 0x00000004u;
|
|
/* 028F250C */ cpu->r[25] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F2510 */ cpu->r[31] = cpu->r[30];
|
|
/* 028F2514 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[25]);
|
|
/* 028F2518 */ _t34 = cpu->r[1] + 0x000000A4u;
|
|
/* 028F2518 */ rbrew_write32(cpu->mem, _t34, cpu->r[25]);
|
|
/* 028F251C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F251C */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F251C */ if (_t36) goto L_028F2824; else goto L_028F2520;
|
|
L_028F2520: ; // 0x28f2520
|
|
/* 028F2520 */ cpu->r[26] = 0x01000000u;
|
|
/* 028F2524 */ cpu->r[24] = 0x00000000u;
|
|
/* 028F2528 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
L_028F252C: ; // 0x28f252c
|
|
/* 028F252C */ cpu->r[20] = 0x00000000u;
|
|
/* 028F2530 */ cpu->r[18] = 0x00000003u;
|
|
/* 028F2534 */ cpu->r[23] = cpu->r[20];
|
|
/* 028F2538 */ _t37 = cpu->r[1] + 0x00000010u;
|
|
/* 028F2538 */ rbrew_write32(cpu->mem, _t37, cpu->r[29]);
|
|
L_028F253C: ; // 0x28f253c
|
|
/* 028F253C */ cpu->r[4] = cpu->r[20];
|
|
/* 028F2540 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F2544 */ Gambit_fn_028F2368(cpu);
|
|
/* 028F2548 */ _t38 = cpu->r[27] + 0x00000000u;
|
|
/* 028F2548 */ cpu->r[9] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F254C */ _t39 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028F254C */ cpu->r[11] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F2550 */ cpu->r[10] = cpu->r[26] & cpu->r[11];
|
|
/* 028F2554 */ cpu->r[12] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 028F2558 */ cpu->r[22] = cpu->r[3];
|
|
/* 028F255C */ cpu->r[21] = cpu->r[10] - cpu->r[12];
|
|
/* 028F2560 */ cpu->r[4] = cpu->r[22];
|
|
/* 028F2564 */ cpu->r[5] = 0x00000008u;
|
|
/* 028F2568 */ cpu->r[3] = cpu->r[21];
|
|
/* 028F256C */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2570 */ _t40 = cpu->r[1] + 0x00000014u;
|
|
/* 028F2570 */ rbrew_write32(cpu->mem, _t40, cpu->r[23]);
|
|
/* 028F2574 */ cpu->r[28] = cpu->r[22] + 0x00000008u;
|
|
/* 028F2578 */ _t41 = cpu->r[1] + 0x00000018u;
|
|
/* 028F2578 */ rbrew_write32(cpu->mem, _t41, cpu->r[28]);
|
|
/* 028F257C */ _t42 = cpu->r[22] + 0x00000004u;
|
|
/* 028F257C */ cpu->r[19] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F2580 */ cpu->r[22] = cpu->r[23];
|
|
/* 028F2584 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[22], cpu->r[19]);
|
|
/* 028F2588 */ _t43 = cpu->r[1] + 0x00000024u;
|
|
/* 028F2588 */ rbrew_write32(cpu->mem, _t43, cpu->r[19]);
|
|
/* 028F258C */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F258C */ _t45 = _t44 & 0x00000001u;
|
|
/* 028F258C */ if (_t45) goto L_028F25BC; else goto L_028F2590;
|
|
L_028F2590: ; // 0x28f2590
|
|
/* 028F2590 */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028F2594 */ cpu->r[3] = cpu->r[21];
|
|
/* 028F2598 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F259C */ _t46 = cpu->r[1] + 0x00000008u;
|
|
/* 028F259C */ rbrew_write32(cpu->mem, _t46, cpu->r[28]);
|
|
/* 028F25A0 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F25A4 */ cpu->r[22] = cpu->r[22] + 0x00000001u;
|
|
/* 028F25A8 */ _t47 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F25A8 */ rbrew_write32(cpu->mem, _t47, cpu->r[28]);
|
|
/* 028F25AC */ _t48 = cpu->r[28] + 0x00000000u;
|
|
/* 028F25AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028F25B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[22], cpu->r[19]);
|
|
/* 028F25B4 */ cpu->r[28] = cpu->r[28] + cpu->r[0];
|
|
/* 028F25B8 */ _t49 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F25B8 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028F25B8 */ if (_t50) goto L_028F25BC; else goto L_028F2590;
|
|
L_028F25BC: ; // 0x28f25bc
|
|
/* 028F25BC */ cpu->r[18] = cpu->r[18] + 0xFFFFFFFFu;
|
|
/* 028F25BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[18], 0x00000000u);
|
|
/* 028F25C0 */ cpu->r[20] = cpu->r[20] + 0x00000001u;
|
|
/* 028F25C4 */ _t51 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F25C4 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028F25C4 */ if (_t52) goto L_028F25C8; else goto L_028F253C;
|
|
L_028F25C8: ; // 0x28f25c8
|
|
/* 028F25C8 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F25CC */ Gambit_fn_028F23A0(cpu);
|
|
/* 028F25D0 */ _t53 = cpu->r[27] + 0x00000000u;
|
|
/* 028F25D0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028F25D4 */ _t54 = cpu->r[4] + 0x0000000Cu;
|
|
/* 028F25D4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028F25D8 */ cpu->r[5] = cpu->r[26] & cpu->r[6];
|
|
/* 028F25DC */ cpu->r[7] = cpu->r[5] + 0xFFFFFFFFu;
|
|
/* 028F25E0 */ cpu->r[23] = cpu->r[3];
|
|
/* 028F25E4 */ cpu->r[21] = cpu->r[5] - cpu->r[7];
|
|
/* 028F25E8 */ cpu->r[5] = 0x00000008u;
|
|
/* 028F25EC */ cpu->r[4] = cpu->r[23];
|
|
/* 028F25F0 */ cpu->r[3] = cpu->r[21];
|
|
/* 028F25F4 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F25F8 */ _t55 = cpu->r[1] + 0x00000034u;
|
|
/* 028F25F8 */ rbrew_write32(cpu->mem, _t55, cpu->r[24]);
|
|
/* 028F25FC */ cpu->r[28] = cpu->r[23] + 0x00000008u;
|
|
/* 028F2600 */ _t56 = cpu->r[1] + 0x00000038u;
|
|
/* 028F2600 */ rbrew_write32(cpu->mem, _t56, cpu->r[28]);
|
|
/* 028F2604 */ _t57 = cpu->r[23] + 0x00000004u;
|
|
/* 028F2604 */ cpu->r[22] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028F2608 */ cpu->r[23] = cpu->r[24];
|
|
/* 028F260C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[23], cpu->r[22]);
|
|
/* 028F2610 */ _t58 = cpu->r[1] + 0x00000054u;
|
|
/* 028F2610 */ rbrew_write32(cpu->mem, _t58, cpu->r[22]);
|
|
/* 028F2614 */ _t59 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2614 */ _t60 = _t59 & 0x00000001u;
|
|
/* 028F2614 */ if (_t60) goto L_028F263C; else goto L_028F2618;
|
|
L_028F2618: ; // 0x28f2618
|
|
/* 028F2618 */ cpu->r[5] = 0x00000010u;
|
|
/* 028F261C */ cpu->r[4] = cpu->r[28];
|
|
/* 028F2620 */ cpu->r[3] = cpu->r[21];
|
|
/* 028F2624 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2628 */ _t61 = cpu->r[28] + 0x00000000u;
|
|
/* 028F2628 */ cpu->r[8] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028F262C */ cpu->r[23] = cpu->r[23] + 0x00000001u;
|
|
/* 028F2630 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[23], cpu->r[22]);
|
|
/* 028F2634 */ cpu->r[28] = cpu->r[28] + cpu->r[8];
|
|
/* 028F2638 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2638 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028F2638 */ if (_t63) goto L_028F263C; else goto L_028F2618;
|
|
L_028F263C: ; // 0x28f263c
|
|
/* 028F263C */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F2640 */ Gambit_fn_028F23A0(cpu);
|
|
/* 028F2644 */ cpu->r[6] = cpu->r[3];
|
|
/* 028F2648 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F264C */ Gambit_fn_028F23A0(cpu);
|
|
/* 028F2650 */ _t64 = cpu->r[27] + 0x00000000u;
|
|
/* 028F2650 */ cpu->r[10] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028F2654 */ _t65 = cpu->r[3] + 0x00000000u;
|
|
/* 028F2654 */ cpu->r[9] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028F2658 */ _t66 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028F2658 */ cpu->r[0] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028F265C */ cpu->r[11] = cpu->r[26] & cpu->r[0];
|
|
/* 028F2660 */ cpu->r[23] = cpu->r[6] + cpu->r[9];
|
|
/* 028F2664 */ cpu->r[4] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 028F2668 */ cpu->r[21] = cpu->r[11] - cpu->r[4];
|
|
/* 028F266C */ cpu->r[4] = cpu->r[23];
|
|
/* 028F2670 */ cpu->r[5] = 0x00000008u;
|
|
/* 028F2674 */ cpu->r[3] = cpu->r[21];
|
|
/* 028F2678 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F267C */ _t67 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F267C */ rbrew_write32(cpu->mem, _t67, cpu->r[24]);
|
|
/* 028F2680 */ cpu->r[28] = cpu->r[23] + 0x00000008u;
|
|
/* 028F2684 */ _t68 = cpu->r[1] + 0x00000040u;
|
|
/* 028F2684 */ rbrew_write32(cpu->mem, _t68, cpu->r[28]);
|
|
/* 028F2688 */ _t69 = cpu->r[23] + 0x00000004u;
|
|
/* 028F2688 */ cpu->r[22] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028F268C */ cpu->r[23] = cpu->r[24];
|
|
/* 028F2690 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[23], cpu->r[22]);
|
|
/* 028F2694 */ _t70 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028F2694 */ rbrew_write32(cpu->mem, _t70, cpu->r[22]);
|
|
/* 028F2698 */ _t71 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2698 */ _t72 = _t71 & 0x00000001u;
|
|
/* 028F2698 */ if (_t72) goto L_028F26C0; else goto L_028F269C;
|
|
L_028F269C: ; // 0x28f269c
|
|
/* 028F269C */ cpu->r[5] = 0x00000010u;
|
|
/* 028F26A0 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F26A4 */ cpu->r[3] = cpu->r[21];
|
|
/* 028F26A8 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F26AC */ _t73 = cpu->r[28] + 0x00000000u;
|
|
/* 028F26AC */ cpu->r[6] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028F26B0 */ cpu->r[23] = cpu->r[23] + 0x00000001u;
|
|
/* 028F26B4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[23], cpu->r[22]);
|
|
/* 028F26B8 */ cpu->r[28] = cpu->r[28] + cpu->r[6];
|
|
/* 028F26BC */ _t74 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F26BC */ _t75 = _t74 & 0x00000001u;
|
|
/* 028F26BC */ if (_t75) goto L_028F26C0; else goto L_028F269C;
|
|
L_028F26C0: ; // 0x28f26c0
|
|
/* 028F26C0 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F26C4 */ Gambit_fn_028F23A0(cpu);
|
|
/* 028F26C8 */ cpu->r[5] = cpu->r[3];
|
|
/* 028F26CC */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F26D0 */ Gambit_fn_028F23A0(cpu);
|
|
/* 028F26D4 */ _t76 = cpu->r[3] + 0x00000000u;
|
|
/* 028F26D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028F26D8 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F26DC */ cpu->r[10] = cpu->r[5] + cpu->r[0];
|
|
/* 028F26E0 */ Gambit_fn_028F23A0(cpu);
|
|
/* 028F26E4 */ cpu->r[9] = cpu->r[3];
|
|
/* 028F26E8 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F26EC */ Gambit_fn_028F23A0(cpu);
|
|
/* 028F26F0 */ _t77 = cpu->r[27] + 0x00000000u;
|
|
/* 028F26F0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028F26F4 */ _t78 = cpu->r[3] + 0x00000000u;
|
|
/* 028F26F4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028F26F8 */ _t79 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028F26F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028F26FC */ _t80 = cpu->r[9] + cpu->r[8];
|
|
/* 028F26FC */ cpu->r[9] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028F2700 */ cpu->r[0] = cpu->r[26] & cpu->r[0];
|
|
/* 028F2704 */ cpu->r[21] = cpu->r[10] + cpu->r[9];
|
|
/* 028F2708 */ cpu->r[4] = cpu->r[0] + 0xFFFFFFFFu;
|
|
/* 028F270C */ cpu->r[20] = cpu->r[0] - cpu->r[4];
|
|
/* 028F2710 */ cpu->r[4] = cpu->r[21];
|
|
/* 028F2714 */ cpu->r[5] = 0x00000008u;
|
|
/* 028F2718 */ cpu->r[3] = cpu->r[20];
|
|
/* 028F271C */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2720 */ _t81 = cpu->r[1] + 0x00000044u;
|
|
/* 028F2720 */ rbrew_write32(cpu->mem, _t81, cpu->r[24]);
|
|
/* 028F2724 */ cpu->r[28] = cpu->r[21] + 0x00000008u;
|
|
/* 028F2728 */ _t82 = cpu->r[1] + 0x00000048u;
|
|
/* 028F2728 */ rbrew_write32(cpu->mem, _t82, cpu->r[28]);
|
|
/* 028F272C */ _t83 = cpu->r[21] + 0x00000004u;
|
|
/* 028F272C */ cpu->r[22] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028F2730 */ cpu->r[23] = cpu->r[24];
|
|
/* 028F2734 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[23], cpu->r[22]);
|
|
/* 028F2738 */ _t84 = cpu->r[1] + 0x00000064u;
|
|
/* 028F2738 */ rbrew_write32(cpu->mem, _t84, cpu->r[22]);
|
|
/* 028F273C */ _t85 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F273C */ _t86 = _t85 & 0x00000001u;
|
|
/* 028F273C */ if (_t86) goto L_028F2764; else goto L_028F2740;
|
|
L_028F2740: ; // 0x28f2740
|
|
/* 028F2740 */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028F2744 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F2748 */ cpu->r[3] = cpu->r[20];
|
|
/* 028F274C */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2750 */ _t87 = cpu->r[28] + 0x00000000u;
|
|
/* 028F2750 */ cpu->r[6] = rbrew_read32(cpu->mem, _t87);
|
|
/* 028F2754 */ cpu->r[23] = cpu->r[23] + 0x00000001u;
|
|
/* 028F2758 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[23], cpu->r[22]);
|
|
/* 028F275C */ cpu->r[28] = cpu->r[28] + cpu->r[6];
|
|
/* 028F2760 */ _t88 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2760 */ _t89 = _t88 & 0x00000001u;
|
|
/* 028F2760 */ if (_t89) goto L_028F2764; else goto L_028F2740;
|
|
L_028F2764: ; // 0x28f2764
|
|
/* 028F2764 */ _t90 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F2764 */ rbrew_write32(cpu->mem, _t90, cpu->r[24]);
|
|
/* 028F2768 */ cpu->r[22] = cpu->r[21] + 0x00000008u;
|
|
/* 028F276C */ _t91 = cpu->r[1] + 0x00000050u;
|
|
/* 028F276C */ rbrew_write32(cpu->mem, _t91, cpu->r[22]);
|
|
/* 028F2770 */ _t92 = cpu->r[21] + 0x00000004u;
|
|
/* 028F2770 */ cpu->r[28] = rbrew_read32(cpu->mem, _t92);
|
|
/* 028F2774 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[28]);
|
|
/* 028F2778 */ _t93 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028F2778 */ rbrew_write32(cpu->mem, _t93, cpu->r[28]);
|
|
/* 028F277C */ _t94 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F277C */ _t95 = _t94 & 0x00000001u;
|
|
/* 028F277C */ if (_t95) goto L_028F2810; else goto L_028F2780;
|
|
L_028F2780: ; // 0x28f2780
|
|
/* 028F2780 */ cpu->r[21] = 0x00000000u;
|
|
/* 028F2784 */ cpu->r[23] = cpu->r[24];
|
|
L_028F2788: ; // 0x28f2788
|
|
/* 028F2788 */ _t96 = cpu->r[27] + 0x00000000u;
|
|
/* 028F2788 */ cpu->r[11] = rbrew_read32(cpu->mem, _t96);
|
|
/* 028F278C */ _t97 = cpu->r[22] + 0x00000008u;
|
|
/* 028F278C */ cpu->r[9] = rbrew_read32(cpu->mem, _t97);
|
|
/* 028F2790 */ _t98 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028F2790 */ cpu->r[0] = rbrew_read32(cpu->mem, _t98);
|
|
/* 028F2794 */ cpu->r[18] = cpu->r[22] + cpu->r[9];
|
|
/* 028F2798 */ cpu->r[12] = cpu->r[26] & cpu->r[0];
|
|
/* 028F279C */ cpu->r[20] = cpu->r[18] + 0x0000000Cu;
|
|
/* 028F27A0 */ cpu->r[4] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028F27A4 */ cpu->r[19] = cpu->r[12] - cpu->r[4];
|
|
/* 028F27A8 */ cpu->r[4] = cpu->r[20];
|
|
/* 028F27AC */ cpu->r[5] = 0x00000008u;
|
|
/* 028F27B0 */ cpu->r[3] = cpu->r[19];
|
|
/* 028F27B4 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F27B8 */ _t99 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F27B8 */ rbrew_write32(cpu->mem, _t99, cpu->r[21]);
|
|
/* 028F27BC */ cpu->r[17] = cpu->r[20] + 0x00000008u;
|
|
/* 028F27C0 */ _t100 = cpu->r[1] + 0x00000020u;
|
|
/* 028F27C0 */ rbrew_write32(cpu->mem, _t100, cpu->r[17]);
|
|
/* 028F27C4 */ _t101 = cpu->r[18] + 0x00000010u;
|
|
/* 028F27C4 */ cpu->r[18] = rbrew_read32(cpu->mem, _t101);
|
|
/* 028F27C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[21], cpu->r[18]);
|
|
/* 028F27CC */ _t102 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F27CC */ rbrew_write32(cpu->mem, _t102, cpu->r[18]);
|
|
/* 028F27D0 */ _t103 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F27D0 */ _t104 = _t103 & 0x00000001u;
|
|
/* 028F27D0 */ if (_t104) goto L_028F27FC; else goto L_028F27D4;
|
|
L_028F27D4: ; // 0x28f27d4
|
|
/* 028F27D4 */ cpu->r[20] = cpu->r[21];
|
|
L_028F27D8: ; // 0x28f27d8
|
|
/* 028F27D8 */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028F27DC */ cpu->r[4] = cpu->r[17];
|
|
/* 028F27E0 */ cpu->r[3] = cpu->r[19];
|
|
/* 028F27E4 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F27E8 */ _t105 = cpu->r[17] + 0x00000000u;
|
|
/* 028F27E8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t105);
|
|
/* 028F27EC */ cpu->r[20] = cpu->r[20] + 0x00000001u;
|
|
/* 028F27F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[20], cpu->r[18]);
|
|
/* 028F27F4 */ cpu->r[17] = cpu->r[17] + cpu->r[5];
|
|
/* 028F27F8 */ _t106 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F27F8 */ _t107 = _t106 & 0x00000001u;
|
|
/* 028F27F8 */ if (_t107) goto L_028F27FC; else goto L_028F27D8;
|
|
L_028F27FC: ; // 0x28f27fc
|
|
/* 028F27FC */ _t108 = cpu->r[22] + 0x00000000u;
|
|
/* 028F27FC */ cpu->r[6] = rbrew_read32(cpu->mem, _t108);
|
|
/* 028F2800 */ cpu->r[23] = cpu->r[23] + 0x00000001u;
|
|
/* 028F2804 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[23], cpu->r[28]);
|
|
/* 028F2808 */ cpu->r[22] = cpu->r[22] + cpu->r[6];
|
|
/* 028F280C */ _t109 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F280C */ _t110 = _t109 & 0x00000001u;
|
|
/* 028F280C */ if (_t110) goto L_028F2810; else goto L_028F2788;
|
|
L_028F2810: ; // 0x28f2810
|
|
/* 028F2810 */ _t111 = cpu->r[29] + 0x00000000u;
|
|
/* 028F2810 */ cpu->r[7] = rbrew_read32(cpu->mem, _t111);
|
|
/* 028F2814 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028F2818 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[25]);
|
|
/* 028F281C */ cpu->r[29] = cpu->r[29] + cpu->r[7];
|
|
/* 028F2820 */ _t112 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2820 */ _t113 = _t112 & 0x00000001u;
|
|
/* 028F2820 */ if (_t113) goto L_028F2824; else goto L_028F252C;
|
|
L_028F2824: ; // 0x28f2824
|
|
/* 028F2824 */ _t114 = cpu->r[27] + 0x00000000u;
|
|
/* 028F2824 */ cpu->r[4] = rbrew_read32(cpu->mem, _t114);
|
|
/* 028F2828 */ _t115 = cpu->r[4] + 0x00000010u;
|
|
/* 028F2828 */ cpu->r[9] = rbrew_read32(cpu->mem, _t115);
|
|
/* 028F282C */ cpu->r[8] = cpu->r[4] + cpu->r[9];
|
|
/* 028F2830 */ _t116 = cpu->r[8] + 0x00000014u;
|
|
/* 028F2830 */ cpu->r[10] = rbrew_read32(cpu->mem, _t116);
|
|
/* 028F2834 */ _t117 = cpu->r[4] + 0x0000000Cu;
|
|
/* 028F2834 */ cpu->r[0] = rbrew_read32(cpu->mem, _t117);
|
|
/* 028F2838 */ cpu->r[5] = cpu->r[8] + cpu->r[10];
|
|
/* 028F283C */ _t118 = cpu->r[5] + 0x00000014u;
|
|
/* 028F283C */ cpu->r[11] = rbrew_read32(cpu->mem, _t118);
|
|
/* 028F283C */ cpu->r[5] = _t118;
|
|
/* 028F2840 */ cpu->r[12] = cpu->r[26] & cpu->r[0];
|
|
/* 028F2844 */ cpu->r[31] = cpu->r[5] + cpu->r[11];
|
|
/* 028F2848 */ cpu->r[4] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028F284C */ cpu->r[28] = cpu->r[12] - cpu->r[4];
|
|
/* 028F2850 */ cpu->r[4] = cpu->r[31];
|
|
/* 028F2854 */ cpu->r[5] = 0x00000008u;
|
|
/* 028F2858 */ cpu->r[3] = cpu->r[28];
|
|
/* 028F285C */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2860 */ cpu->r[29] = cpu->r[31] + 0x00000008u;
|
|
/* 028F2864 */ _t119 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028F2864 */ rbrew_write32(cpu->mem, _t119, cpu->r[30]);
|
|
/* 028F2868 */ _t120 = cpu->r[1] + 0x00000090u;
|
|
/* 028F2868 */ rbrew_write32(cpu->mem, _t120, cpu->r[29]);
|
|
/* 028F286C */ _t121 = cpu->r[31] + 0x00000004u;
|
|
/* 028F286C */ cpu->r[31] = rbrew_read32(cpu->mem, _t121);
|
|
/* 028F2870 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F2874 */ _t122 = cpu->r[1] + 0x000000ACu;
|
|
/* 028F2874 */ rbrew_write32(cpu->mem, _t122, cpu->r[31]);
|
|
/* 028F2878 */ _t123 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2878 */ _t124 = _t123 & 0x00000001u;
|
|
/* 028F2878 */ if (_t124) goto L_028F28A0; else goto L_028F287C;
|
|
L_028F287C: ; // 0x28f287c
|
|
/* 028F287C */ cpu->r[5] = 0x00000010u;
|
|
/* 028F2880 */ cpu->r[4] = cpu->r[29];
|
|
/* 028F2884 */ cpu->r[3] = cpu->r[28];
|
|
/* 028F2888 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F288C */ _t125 = cpu->r[29] + 0x00000000u;
|
|
/* 028F288C */ cpu->r[6] = rbrew_read32(cpu->mem, _t125);
|
|
/* 028F2890 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028F2894 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F2898 */ cpu->r[29] = cpu->r[29] + cpu->r[6];
|
|
/* 028F289C */ _t126 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F289C */ _t127 = _t126 & 0x00000001u;
|
|
/* 028F289C */ if (_t127) goto L_028F28A0; else goto L_028F287C;
|
|
L_028F28A0: ; // 0x28f28a0
|
|
/* 028F28A0 */ _t128 = cpu->r[27] + 0x00000000u;
|
|
/* 028F28A0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t128);
|
|
/* 028F28A4 */ _t129 = cpu->r[4] + 0x0000000Cu;
|
|
/* 028F28A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t129);
|
|
/* 028F28A8 */ cpu->r[7] = 0x00000001u - cpu->r[0];
|
|
/* 028F28AC */ _t130 = cpu->r[4] + 0x0000000Cu;
|
|
/* 028F28AC */ rbrew_write32(cpu->mem, _t130, cpu->r[7]);
|
|
L_028F28B0: ; // 0x28f28b0
|
|
/* 028F28B0 */ /* nop */
|
|
/* 028F28B4 */ _t131 = cpu->r[1] + 0x000000F4u;
|
|
/* 028F28B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t131);
|
|
/* 028F28B8 */ cpu->lr = cpu->r[0];
|
|
/* 028F28BC */ cpu->r[1] = cpu->r[1] + 0x000000F0u;
|
|
/* 028F28C0 */ cpu->r[3] = 0x00000001u;
|
|
/* 028F28C4 */ return;
|
|
}
|
|
|
|
// fn_028F28C8 @ 0x28f28c8
|
|
void Gambit_fn_028F28C8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F28C8: ; // 0x28f28c8
|
|
/* 028F28C8 */ _t0 = cpu->r[1] + 0xFFFFFF08u;
|
|
/* 028F28C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F28C8 */ cpu->r[1] = _t0;
|
|
/* 028F28CC */ /* nop */
|
|
/* 028F28D0 */ cpu->r[0] = cpu->lr;
|
|
/* 028F28D4 */ _t1 = cpu->r[1] + 0x000000FCu;
|
|
/* 028F28D4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F28D8 */ cpu->r[18] = cpu->r[3];
|
|
/* 028F28DC */ cpu->r[19] = cpu->r[4];
|
|
/* 028F28E0 */ _t2 = cpu->r[18] + 0x00000000u;
|
|
/* 028F28E0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F28E4 */ cpu->r[28] = 0x01000000u;
|
|
/* 028F28E8 */ _t3 = cpu->r[4] + 0x0000000Cu;
|
|
/* 028F28E8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F28EC */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028F28F0 */ cpu->r[0] = cpu->r[28] & cpu->r[5];
|
|
/* 028F28F4 */ cpu->r[6] = cpu->r[0] + 0xFFFFFFFFu;
|
|
/* 028F28F8 */ cpu->r[3] = cpu->r[0] - cpu->r[6];
|
|
/* 028F28FC */ cpu->r[31] = cpu->r[3] ^ 0x00000001u;
|
|
/* 028F2900 */ cpu->r[31] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F2900 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F2904 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2904 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F2904 */ if (_t5) goto L_028F2908; else goto L_028F2914;
|
|
L_028F2908: ; // 0x28f2908
|
|
/* 028F2908 */ cpu->r[5] = 0x00000018u;
|
|
/* 028F290C */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2910 */ _t6 = cpu->r[18] + 0x00000000u;
|
|
/* 028F2910 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
L_028F2914: ; // 0x28f2914
|
|
/* 028F2914 */ _t7 = cpu->r[4] + 0x00000014u;
|
|
/* 028F2914 */ cpu->r[7] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F2918 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F291C */ cpu->r[5] = cpu->r[4] + cpu->r[7];
|
|
/* 028F2920 */ cpu->r[17] = 0x00000000u;
|
|
/* 028F2924 */ cpu->r[16] = cpu->r[5] + 0x00000018u;
|
|
/* 028F2928 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2928 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F2928 */ if (_t9) goto L_028F2988; else goto L_028F292C;
|
|
L_028F292C: ; // 0x28f292c
|
|
/* 028F292C */ _t10 = cpu->r[4] + 0x00000010u;
|
|
/* 028F292C */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F2930 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F2934 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2934 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F2934 */ if (_t12) goto L_028F2938; else goto L_028F2D4C;
|
|
L_028F2938: ; // 0x28f2938
|
|
/* 028F2938 */ _t13 = cpu->r[1] + 0x00000060u;
|
|
/* 028F2938 */ rbrew_write32(cpu->mem, _t13, cpu->r[17]);
|
|
/* 028F293C */ cpu->r[30] = cpu->r[16] + 0x00000008u;
|
|
/* 028F2940 */ _t14 = cpu->r[1] + 0x00000064u;
|
|
/* 028F2940 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 028F2944 */ _t15 = cpu->r[16] + 0x00000004u;
|
|
/* 028F2944 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F2948 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[31]);
|
|
/* 028F294C */ _t16 = cpu->r[1] + 0x00000088u;
|
|
/* 028F294C */ rbrew_write32(cpu->mem, _t16, cpu->r[31]);
|
|
/* 028F2950 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2950 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F2950 */ if (_t18) goto L_028F2978; else goto L_028F2954;
|
|
L_028F2954: ; // 0x28f2954
|
|
/* 028F2954 */ cpu->r[3] = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F2958 */ _t19 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F2958 */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
/* 028F295C */ Gambit_fn_028F2100(cpu);
|
|
/* 028F2960 */ _t20 = cpu->r[30] + 0x00000000u;
|
|
/* 028F2960 */ cpu->r[11] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F2964 */ cpu->r[17] = cpu->r[17] + 0x00000001u;
|
|
/* 028F2968 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[31]);
|
|
/* 028F296C */ cpu->r[30] = cpu->r[30] + cpu->r[11];
|
|
/* 028F2970 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2970 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F2970 */ if (_t22) goto L_028F2974; else goto L_028F2954;
|
|
L_028F2974: ; // 0x28f2974
|
|
/* 028F2974 */ _t23 = cpu->r[18] + 0x00000000u;
|
|
/* 028F2974 */ cpu->r[4] = rbrew_read32(cpu->mem, _t23);
|
|
L_028F2978: ; // 0x28f2978
|
|
/* 028F2978 */ cpu->r[12] = 0x00000001u;
|
|
/* 028F297C */ cpu->r[3] = cpu->r[12];
|
|
/* 028F2980 */ _t24 = cpu->r[4] + 0x00000010u;
|
|
/* 028F2980 */ rbrew_write32(cpu->mem, _t24, cpu->r[12]);
|
|
/* 028F2984 */ goto L_028F2D50;
|
|
L_028F2988: ; // 0x28f2988
|
|
/* 028F2988 */ _t25 = cpu->r[4] + 0x0000000Cu;
|
|
/* 028F2988 */ cpu->r[4] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F298C */ cpu->r[0] = cpu->r[28] & cpu->r[4];
|
|
/* 028F2990 */ cpu->r[5] = cpu->r[0] + 0xFFFFFFFFu;
|
|
/* 028F2994 */ cpu->r[27] = cpu->r[0] - cpu->r[5];
|
|
/* 028F2998 */ cpu->r[5] = 0x00000008u;
|
|
/* 028F299C */ cpu->r[4] = cpu->r[16];
|
|
/* 028F29A0 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F29A4 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F29A8 */ _t26 = cpu->r[1] + 0x00000068u;
|
|
/* 028F29A8 */ rbrew_write32(cpu->mem, _t26, cpu->r[17]);
|
|
/* 028F29AC */ cpu->r[25] = cpu->r[16] + 0x00000008u;
|
|
/* 028F29B0 */ cpu->r[30] = cpu->r[17];
|
|
/* 028F29B4 */ _t27 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028F29B4 */ rbrew_write32(cpu->mem, _t27, cpu->r[25]);
|
|
/* 028F29B8 */ _t28 = cpu->r[16] + 0x00000004u;
|
|
/* 028F29B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F29BC */ cpu->r[29] = cpu->r[25];
|
|
/* 028F29C0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F29C4 */ _t29 = cpu->r[1] + 0x00000090u;
|
|
/* 028F29C4 */ rbrew_write32(cpu->mem, _t29, cpu->r[31]);
|
|
/* 028F29C8 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F29C8 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028F29C8 */ if (_t31) goto L_028F29F0; else goto L_028F29CC;
|
|
L_028F29CC: ; // 0x28f29cc
|
|
/* 028F29CC */ cpu->r[5] = 0x00000010u;
|
|
/* 028F29D0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028F29D4 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F29D8 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F29DC */ _t32 = cpu->r[29] + 0x00000000u;
|
|
/* 028F29DC */ cpu->r[6] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F29E0 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028F29E4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F29E8 */ cpu->r[29] = cpu->r[29] + cpu->r[6];
|
|
/* 028F29EC */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F29EC */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F29EC */ if (_t34) goto L_028F29F0; else goto L_028F29CC;
|
|
L_028F29F0: ; // 0x28f29f0
|
|
/* 028F29F0 */ _t35 = cpu->r[18] + 0x00000000u;
|
|
/* 028F29F0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F29F4 */ _t36 = cpu->r[4] + 0x00000014u;
|
|
/* 028F29F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F29F8 */ _t37 = cpu->r[4] + 0x0000000Cu;
|
|
/* 028F29F8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F29FC */ cpu->r[8] = cpu->r[4] + cpu->r[0];
|
|
/* 028F2A00 */ _t38 = cpu->r[8] + 0x00000018u;
|
|
/* 028F2A00 */ cpu->r[10] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F2A04 */ cpu->r[9] = cpu->r[8] + 0x00000018u;
|
|
/* 028F2A08 */ cpu->r[11] = cpu->r[28] & cpu->r[12];
|
|
/* 028F2A0C */ cpu->r[28] = cpu->r[9] + cpu->r[10];
|
|
/* 028F2A10 */ cpu->r[0] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 028F2A14 */ cpu->r[27] = cpu->r[11] - cpu->r[0];
|
|
/* 028F2A18 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F2A1C */ cpu->r[5] = 0x00000008u;
|
|
/* 028F2A20 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F2A24 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2A28 */ cpu->r[29] = cpu->r[28] + 0x00000008u;
|
|
/* 028F2A2C */ _t39 = cpu->r[1] + 0x00000070u;
|
|
/* 028F2A2C */ rbrew_write32(cpu->mem, _t39, cpu->r[17]);
|
|
/* 028F2A30 */ _t40 = cpu->r[1] + 0x00000074u;
|
|
/* 028F2A30 */ rbrew_write32(cpu->mem, _t40, cpu->r[29]);
|
|
/* 028F2A34 */ _t41 = cpu->r[28] + 0x00000004u;
|
|
/* 028F2A34 */ cpu->r[31] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F2A38 */ cpu->r[30] = cpu->r[17];
|
|
/* 028F2A3C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F2A40 */ _t42 = cpu->r[1] + 0x00000098u;
|
|
/* 028F2A40 */ rbrew_write32(cpu->mem, _t42, cpu->r[31]);
|
|
/* 028F2A44 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2A44 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F2A44 */ if (_t44) goto L_028F2A6C; else goto L_028F2A48;
|
|
L_028F2A48: ; // 0x28f2a48
|
|
/* 028F2A48 */ cpu->r[5] = 0x00000010u;
|
|
/* 028F2A4C */ cpu->r[4] = cpu->r[29];
|
|
/* 028F2A50 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F2A54 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2A58 */ _t45 = cpu->r[29] + 0x00000000u;
|
|
/* 028F2A58 */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F2A5C */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028F2A60 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F2A64 */ cpu->r[29] = cpu->r[29] + cpu->r[0];
|
|
/* 028F2A68 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2A68 */ _t47 = _t46 & 0x00000001u;
|
|
/* 028F2A68 */ if (_t47) goto L_028F2A6C; else goto L_028F2A48;
|
|
L_028F2A6C: ; // 0x28f2a6c
|
|
/* 028F2A6C */ _t48 = cpu->r[1] + 0x00000078u;
|
|
/* 028F2A6C */ rbrew_write32(cpu->mem, _t48, cpu->r[17]);
|
|
/* 028F2A70 */ cpu->r[0] = cpu->r[28] + 0x00000008u;
|
|
/* 028F2A74 */ _t49 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028F2A74 */ rbrew_write32(cpu->mem, _t49, cpu->r[0]);
|
|
/* 028F2A78 */ _t50 = cpu->r[28] + 0x00000004u;
|
|
/* 028F2A78 */ cpu->r[21] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F2A7C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[21]);
|
|
/* 028F2A80 */ _t51 = cpu->r[1] + 0x000000A0u;
|
|
/* 028F2A80 */ rbrew_write32(cpu->mem, _t51, cpu->r[21]);
|
|
/* 028F2A84 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2A84 */ _t53 = _t52 & 0x00000001u;
|
|
/* 028F2A84 */ if (_t53) goto L_028F2CCC; else goto L_028F2A88;
|
|
L_028F2A88: ; // 0x28f2a88
|
|
/* 028F2A88 */ cpu->r[31] = 0x01000000u;
|
|
/* 028F2A8C */ cpu->r[29] = cpu->r[0];
|
|
/* 028F2A90 */ cpu->r[30] = cpu->r[17];
|
|
/* 028F2A94 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028F2A98 */ cpu->r[15] = 0x00000000u;
|
|
L_028F2A9C: ; // 0x28f2a9c
|
|
/* 028F2A9C */ _t54 = cpu->r[18] + 0x00000000u;
|
|
/* 028F2A9C */ cpu->r[6] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028F2AA0 */ _t55 = cpu->r[29] + 0x00000004u;
|
|
/* 028F2AA0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028F2AA4 */ _t56 = cpu->r[6] + 0x0000000Cu;
|
|
/* 028F2AA4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028F2AA8 */ cpu->r[27] = cpu->r[29] + cpu->r[5];
|
|
/* 028F2AAC */ cpu->r[7] = cpu->r[31] & cpu->r[8];
|
|
/* 028F2AB0 */ cpu->r[28] = cpu->r[27] + 0x00000010u;
|
|
/* 028F2AB4 */ cpu->r[0] = cpu->r[7] + 0xFFFFFFFFu;
|
|
/* 028F2AB8 */ cpu->r[24] = cpu->r[7] - cpu->r[0];
|
|
/* 028F2ABC */ cpu->r[4] = cpu->r[28];
|
|
/* 028F2AC0 */ cpu->r[5] = 0x00000008u;
|
|
/* 028F2AC4 */ cpu->r[3] = cpu->r[24];
|
|
/* 028F2AC8 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2ACC */ _t57 = cpu->r[1] + 0x00000020u;
|
|
/* 028F2ACC */ rbrew_write32(cpu->mem, _t57, cpu->r[15]);
|
|
/* 028F2AD0 */ cpu->r[28] = cpu->r[28] + 0x00000008u;
|
|
/* 028F2AD4 */ _t58 = cpu->r[1] + 0x00000024u;
|
|
/* 028F2AD4 */ rbrew_write32(cpu->mem, _t58, cpu->r[28]);
|
|
/* 028F2AD8 */ _t59 = cpu->r[27] + 0x00000014u;
|
|
/* 028F2AD8 */ cpu->r[26] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028F2ADC */ cpu->r[27] = cpu->r[15];
|
|
/* 028F2AE0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[26]);
|
|
/* 028F2AE4 */ _t60 = cpu->r[1] + 0x00000040u;
|
|
/* 028F2AE4 */ rbrew_write32(cpu->mem, _t60, cpu->r[26]);
|
|
/* 028F2AE8 */ _t61 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2AE8 */ _t62 = _t61 & 0x00000001u;
|
|
/* 028F2AE8 */ if (_t62) goto L_028F2B10; else goto L_028F2AEC;
|
|
L_028F2AEC: ; // 0x28f2aec
|
|
/* 028F2AEC */ cpu->r[5] = 0x00000010u;
|
|
/* 028F2AF0 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F2AF4 */ cpu->r[3] = cpu->r[24];
|
|
/* 028F2AF8 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2AFC */ _t63 = cpu->r[28] + 0x00000000u;
|
|
/* 028F2AFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028F2B00 */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 028F2B04 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[26]);
|
|
/* 028F2B08 */ cpu->r[28] = cpu->r[28] + cpu->r[0];
|
|
/* 028F2B0C */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2B0C */ _t65 = _t64 & 0x00000001u;
|
|
/* 028F2B0C */ if (_t65) goto L_028F2B10; else goto L_028F2AEC;
|
|
L_028F2B10: ; // 0x28f2b10
|
|
/* 028F2B10 */ _t66 = cpu->r[29] + 0x00000004u;
|
|
/* 028F2B10 */ cpu->r[0] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028F2B14 */ _t67 = cpu->r[18] + 0x00000000u;
|
|
/* 028F2B14 */ cpu->r[4] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028F2B18 */ cpu->r[11] = cpu->r[29] + cpu->r[0];
|
|
/* 028F2B1C */ _t68 = cpu->r[4] + 0x0000000Cu;
|
|
/* 028F2B1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028F2B20 */ _t69 = cpu->r[11] + 0x00000010u;
|
|
/* 028F2B20 */ cpu->r[12] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028F2B24 */ cpu->r[4] = cpu->r[11] + 0x00000010u;
|
|
/* 028F2B28 */ cpu->r[5] = cpu->r[31] & cpu->r[0];
|
|
/* 028F2B2C */ cpu->r[22] = cpu->r[4] + cpu->r[12];
|
|
/* 028F2B30 */ cpu->r[7] = cpu->r[5] + 0xFFFFFFFFu;
|
|
/* 028F2B34 */ cpu->r[24] = cpu->r[5] - cpu->r[7];
|
|
/* 028F2B38 */ cpu->r[5] = 0x00000008u;
|
|
/* 028F2B3C */ cpu->r[4] = cpu->r[22];
|
|
/* 028F2B40 */ cpu->r[3] = cpu->r[24];
|
|
/* 028F2B44 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2B48 */ cpu->r[28] = cpu->r[22] + 0x00000008u;
|
|
/* 028F2B4C */ _t70 = cpu->r[1] + 0x00000028u;
|
|
/* 028F2B4C */ rbrew_write32(cpu->mem, _t70, cpu->r[15]);
|
|
/* 028F2B50 */ _t71 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F2B50 */ rbrew_write32(cpu->mem, _t71, cpu->r[28]);
|
|
/* 028F2B54 */ _t72 = cpu->r[22] + 0x00000004u;
|
|
/* 028F2B54 */ cpu->r[26] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028F2B58 */ cpu->r[27] = cpu->r[15];
|
|
/* 028F2B5C */ _t73 = cpu->r[1] + 0x00000048u;
|
|
/* 028F2B5C */ rbrew_write32(cpu->mem, _t73, cpu->r[26]);
|
|
/* 028F2B60 */ _t74 = cpu->r[22] + 0x00000000u;
|
|
/* 028F2B60 */ cpu->r[7] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028F2B64 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[26]);
|
|
/* 028F2B68 */ cpu->r[23] = cpu->r[22] + cpu->r[7];
|
|
/* 028F2B6C */ _t75 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2B6C */ _t76 = _t75 & 0x00000001u;
|
|
/* 028F2B6C */ if (_t76) goto L_028F2B9C; else goto L_028F2B70;
|
|
L_028F2B70: ; // 0x28f2b70
|
|
/* 028F2B70 */ cpu->r[5] = 0x00000010u;
|
|
/* 028F2B74 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F2B78 */ cpu->r[3] = cpu->r[24];
|
|
/* 028F2B7C */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2B80 */ _t77 = cpu->r[28] + 0x00000000u;
|
|
/* 028F2B80 */ cpu->r[0] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028F2B84 */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 028F2B88 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[26]);
|
|
/* 028F2B8C */ cpu->r[28] = cpu->r[28] + cpu->r[0];
|
|
/* 028F2B90 */ _t78 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2B90 */ _t79 = _t78 & 0x00000001u;
|
|
/* 028F2B90 */ if (_t79) goto L_028F2B94; else goto L_028F2B70;
|
|
L_028F2B94: ; // 0x28f2b94
|
|
/* 028F2B94 */ _t80 = cpu->r[22] + 0x00000000u;
|
|
/* 028F2B94 */ cpu->r[7] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028F2B98 */ cpu->r[23] = cpu->r[22] + cpu->r[7];
|
|
L_028F2B9C: ; // 0x28f2b9c
|
|
/* 028F2B9C */ _t81 = cpu->r[18] + 0x00000000u;
|
|
/* 028F2B9C */ cpu->r[9] = rbrew_read32(cpu->mem, _t81);
|
|
/* 028F2BA0 */ _t82 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028F2BA0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t82);
|
|
/* 028F2BA4 */ cpu->r[10] = cpu->r[31] & cpu->r[0];
|
|
/* 028F2BA8 */ cpu->r[12] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 028F2BAC */ cpu->r[22] = cpu->r[10] - cpu->r[12];
|
|
/* 028F2BB0 */ cpu->r[5] = 0x00000008u;
|
|
/* 028F2BB4 */ cpu->r[4] = cpu->r[23];
|
|
/* 028F2BB8 */ cpu->r[3] = cpu->r[22];
|
|
/* 028F2BBC */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2BC0 */ _t83 = cpu->r[1] + 0x00000030u;
|
|
/* 028F2BC0 */ rbrew_write32(cpu->mem, _t83, cpu->r[15]);
|
|
/* 028F2BC4 */ cpu->r[27] = cpu->r[23] + 0x00000008u;
|
|
/* 028F2BC8 */ _t84 = cpu->r[1] + 0x00000034u;
|
|
/* 028F2BC8 */ rbrew_write32(cpu->mem, _t84, cpu->r[27]);
|
|
/* 028F2BCC */ _t85 = cpu->r[23] + 0x00000004u;
|
|
/* 028F2BCC */ cpu->r[28] = rbrew_read32(cpu->mem, _t85);
|
|
/* 028F2BD0 */ cpu->r[24] = cpu->r[27];
|
|
/* 028F2BD4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[15], cpu->r[28]);
|
|
/* 028F2BD8 */ _t86 = cpu->r[1] + 0x00000050u;
|
|
/* 028F2BD8 */ rbrew_write32(cpu->mem, _t86, cpu->r[28]);
|
|
/* 028F2BDC */ _t87 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2BDC */ _t88 = _t87 & 0x00000001u;
|
|
/* 028F2BDC */ if (_t88) goto L_028F2C0C; else goto L_028F2BE0;
|
|
L_028F2BE0: ; // 0x28f2be0
|
|
/* 028F2BE0 */ cpu->r[26] = cpu->r[15];
|
|
L_028F2BE4: ; // 0x28f2be4
|
|
/* 028F2BE4 */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028F2BE8 */ cpu->r[4] = cpu->r[24];
|
|
/* 028F2BEC */ cpu->r[3] = cpu->r[22];
|
|
/* 028F2BF0 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2BF4 */ _t89 = cpu->r[24] + 0x00000000u;
|
|
/* 028F2BF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t89);
|
|
/* 028F2BF8 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 028F2BFC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[28]);
|
|
/* 028F2C00 */ cpu->r[24] = cpu->r[24] + cpu->r[0];
|
|
/* 028F2C04 */ _t90 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2C04 */ _t91 = _t90 & 0x00000001u;
|
|
/* 028F2C04 */ if (_t91) goto L_028F2C08; else goto L_028F2BE4;
|
|
L_028F2C08: ; // 0x28f2c08
|
|
/* 028F2C08 */ _t92 = cpu->r[23] + 0x00000004u;
|
|
/* 028F2C08 */ cpu->r[28] = rbrew_read32(cpu->mem, _t92);
|
|
L_028F2C0C: ; // 0x28f2c0c
|
|
/* 028F2C0C */ _t93 = cpu->r[1] + 0x00000058u;
|
|
/* 028F2C0C */ rbrew_write32(cpu->mem, _t93, cpu->r[28]);
|
|
/* 028F2C10 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[15], cpu->r[28]);
|
|
/* 028F2C14 */ _t94 = cpu->r[1] + 0x00000038u;
|
|
/* 028F2C14 */ rbrew_write32(cpu->mem, _t94, cpu->r[15]);
|
|
/* 028F2C18 */ _t95 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F2C18 */ rbrew_write32(cpu->mem, _t95, cpu->r[27]);
|
|
/* 028F2C1C */ _t96 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2C1C */ _t97 = _t96 & 0x00000001u;
|
|
/* 028F2C1C */ if (_t97) goto L_028F2CB8; else goto L_028F2C20;
|
|
L_028F2C20: ; // 0x28f2c20
|
|
/* 028F2C20 */ cpu->r[26] = cpu->r[27];
|
|
/* 028F2C24 */ cpu->r[17] = 0x00000000u;
|
|
/* 028F2C28 */ cpu->r[27] = cpu->r[15];
|
|
L_028F2C2C: ; // 0x28f2c2c
|
|
/* 028F2C2C */ _t98 = cpu->r[18] + 0x00000000u;
|
|
/* 028F2C2C */ cpu->r[6] = rbrew_read32(cpu->mem, _t98);
|
|
/* 028F2C30 */ _t99 = cpu->r[26] + 0x00000008u;
|
|
/* 028F2C30 */ cpu->r[5] = rbrew_read32(cpu->mem, _t99);
|
|
/* 028F2C34 */ _t100 = cpu->r[6] + 0x0000000Cu;
|
|
/* 028F2C34 */ cpu->r[8] = rbrew_read32(cpu->mem, _t100);
|
|
/* 028F2C38 */ cpu->r[24] = cpu->r[26] + cpu->r[5];
|
|
/* 028F2C3C */ cpu->r[7] = cpu->r[31] & cpu->r[8];
|
|
/* 028F2C40 */ cpu->r[23] = cpu->r[24] + 0x0000000Cu;
|
|
/* 028F2C44 */ cpu->r[12] = cpu->r[7] + 0xFFFFFFFFu;
|
|
/* 028F2C48 */ cpu->r[20] = cpu->r[7] - cpu->r[12];
|
|
/* 028F2C4C */ cpu->r[4] = cpu->r[23];
|
|
/* 028F2C50 */ cpu->r[5] = 0x00000008u;
|
|
/* 028F2C54 */ cpu->r[3] = cpu->r[20];
|
|
/* 028F2C58 */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2C5C */ _t101 = cpu->r[1] + 0x00000008u;
|
|
/* 028F2C5C */ rbrew_write32(cpu->mem, _t101, cpu->r[17]);
|
|
/* 028F2C60 */ cpu->r[0] = cpu->r[23] + 0x00000008u;
|
|
/* 028F2C64 */ _t102 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F2C64 */ rbrew_write32(cpu->mem, _t102, cpu->r[0]);
|
|
/* 028F2C68 */ _t103 = cpu->r[24] + 0x00000010u;
|
|
/* 028F2C68 */ cpu->r[24] = rbrew_read32(cpu->mem, _t103);
|
|
/* 028F2C6C */ cpu->r[23] = cpu->r[17];
|
|
/* 028F2C70 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[23], cpu->r[24]);
|
|
/* 028F2C74 */ _t104 = cpu->r[1] + 0x00000010u;
|
|
/* 028F2C74 */ rbrew_write32(cpu->mem, _t104, cpu->r[24]);
|
|
/* 028F2C78 */ _t105 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2C78 */ _t106 = _t105 & 0x00000001u;
|
|
/* 028F2C78 */ if (_t106) goto L_028F2CA4; else goto L_028F2C7C;
|
|
L_028F2C7C: ; // 0x28f2c7c
|
|
/* 028F2C7C */ cpu->r[22] = cpu->r[0];
|
|
L_028F2C80: ; // 0x28f2c80
|
|
/* 028F2C80 */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028F2C84 */ cpu->r[4] = cpu->r[22];
|
|
/* 028F2C88 */ cpu->r[3] = cpu->r[20];
|
|
/* 028F2C8C */ Gambit_fn_0295EBE8(cpu);
|
|
/* 028F2C90 */ _t107 = cpu->r[22] + 0x00000000u;
|
|
/* 028F2C90 */ cpu->r[7] = rbrew_read32(cpu->mem, _t107);
|
|
/* 028F2C94 */ cpu->r[23] = cpu->r[23] + 0x00000001u;
|
|
/* 028F2C98 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[23], cpu->r[24]);
|
|
/* 028F2C9C */ cpu->r[22] = cpu->r[22] + cpu->r[7];
|
|
/* 028F2CA0 */ _t108 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2CA0 */ _t109 = _t108 & 0x00000001u;
|
|
/* 028F2CA0 */ if (_t109) goto L_028F2CA4; else goto L_028F2C80;
|
|
L_028F2CA4: ; // 0x28f2ca4
|
|
/* 028F2CA4 */ _t110 = cpu->r[26] + 0x00000000u;
|
|
/* 028F2CA4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t110);
|
|
/* 028F2CA8 */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 028F2CAC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[28]);
|
|
/* 028F2CB0 */ cpu->r[26] = cpu->r[26] + cpu->r[8];
|
|
/* 028F2CB4 */ _t111 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2CB4 */ _t112 = _t111 & 0x00000001u;
|
|
/* 028F2CB4 */ if (_t112) goto L_028F2CB8; else goto L_028F2C2C;
|
|
L_028F2CB8: ; // 0x28f2cb8
|
|
/* 028F2CB8 */ _t113 = cpu->r[29] + 0x00000000u;
|
|
/* 028F2CB8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t113);
|
|
/* 028F2CBC */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028F2CC0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[21]);
|
|
/* 028F2CC4 */ cpu->r[29] = cpu->r[29] + cpu->r[9];
|
|
/* 028F2CC8 */ _t114 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2CC8 */ _t115 = _t114 & 0x00000001u;
|
|
/* 028F2CC8 */ if (_t115) goto L_028F2CCC; else goto L_028F2A9C;
|
|
L_028F2CCC: ; // 0x28f2ccc
|
|
/* 028F2CCC */ _t116 = cpu->r[1] + 0x00000084u;
|
|
/* 028F2CCC */ rbrew_write32(cpu->mem, _t116, cpu->r[25]);
|
|
/* 028F2CD0 */ _t117 = cpu->r[1] + 0x00000080u;
|
|
/* 028F2CD0 */ rbrew_write32(cpu->mem, _t117, cpu->r[17]);
|
|
/* 028F2CD4 */ _t118 = cpu->r[16] + 0x00000004u;
|
|
/* 028F2CD4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t118);
|
|
/* 028F2CD8 */ cpu->r[31] = cpu->r[25];
|
|
/* 028F2CDC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[30]);
|
|
/* 028F2CE0 */ _t119 = cpu->r[1] + 0x000000A8u;
|
|
/* 028F2CE0 */ rbrew_write32(cpu->mem, _t119, cpu->r[30]);
|
|
/* 028F2CE4 */ _t120 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2CE4 */ _t121 = _t120 & 0x00000001u;
|
|
/* 028F2CE4 */ if (_t121) goto L_028F2D28; else goto L_028F2CE8;
|
|
L_028F2CE8: ; // 0x28f2ce8
|
|
/* 028F2CE8 */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028F2CEC */ _t122 = cpu->r[1] + 0x00000018u;
|
|
/* 028F2CEC */ rbrew_write32(cpu->mem, _t122, cpu->r[31]);
|
|
/* 028F2CF0 */ Gambit_fn_028F1F60(cpu);
|
|
/* 028F2CF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[19], 0x00000000u);
|
|
/* 028F2CF8 */ _t123 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2CF8 */ _t124 = _t123 & 0x00000001u;
|
|
/* 028F2CF8 */ if (_t124) goto L_028F2D14; else goto L_028F2CFC;
|
|
L_028F2CFC: ; // 0x28f2cfc
|
|
/* 028F2CFC */ _t125 = cpu->r[18] + 0x00000000u;
|
|
/* 028F2CFC */ cpu->r[11] = rbrew_read32(cpu->mem, _t125);
|
|
/* 028F2D00 */ _t126 = cpu->r[11] + 0x00000010u;
|
|
/* 028F2D00 */ cpu->r[12] = rbrew_read32(cpu->mem, _t126);
|
|
/* 028F2D04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F2D08 */ _t127 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2D08 */ _t128 = _t127 & 0x00000001u;
|
|
/* 028F2D08 */ if (_t128) goto L_028F2D0C; else goto L_028F2D14;
|
|
L_028F2D0C: ; // 0x28f2d0c
|
|
/* 028F2D0C */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028F2D10 */ Gambit_fn_028F2100(cpu);
|
|
L_028F2D14: ; // 0x28f2d14
|
|
/* 028F2D14 */ _t129 = cpu->r[31] + 0x00000000u;
|
|
/* 028F2D14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t129);
|
|
/* 028F2D18 */ cpu->r[17] = cpu->r[17] + 0x00000001u;
|
|
/* 028F2D1C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[30]);
|
|
/* 028F2D20 */ cpu->r[31] = cpu->r[31] + cpu->r[0];
|
|
/* 028F2D24 */ _t130 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2D24 */ _t131 = _t130 & 0x00000001u;
|
|
/* 028F2D24 */ if (_t131) goto L_028F2D28; else goto L_028F2CE8;
|
|
L_028F2D28: ; // 0x28f2d28
|
|
/* 028F2D28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[19], 0x00000000u);
|
|
/* 028F2D2C */ _t132 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2D2C */ _t133 = _t132 & 0x00000001u;
|
|
/* 028F2D2C */ if (_t133) goto L_028F2D3C; else goto L_028F2D30;
|
|
L_028F2D30: ; // 0x28f2d30
|
|
/* 028F2D30 */ _t134 = cpu->r[18] + 0x00000000u;
|
|
/* 028F2D30 */ cpu->r[4] = rbrew_read32(cpu->mem, _t134);
|
|
/* 028F2D34 */ cpu->r[6] = 0x00000001u;
|
|
/* 028F2D38 */ _t135 = cpu->r[4] + 0x00000010u;
|
|
/* 028F2D38 */ rbrew_write32(cpu->mem, _t135, cpu->r[6]);
|
|
L_028F2D3C: ; // 0x28f2d3c
|
|
/* 028F2D3C */ _t136 = cpu->r[18] + 0x00000000u;
|
|
/* 028F2D3C */ cpu->r[4] = rbrew_read32(cpu->mem, _t136);
|
|
/* 028F2D40 */ _t137 = cpu->r[4] + 0x0000000Cu;
|
|
/* 028F2D40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t137);
|
|
/* 028F2D44 */ cpu->r[8] = 0x00000001u - cpu->r[0];
|
|
/* 028F2D48 */ _t138 = cpu->r[4] + 0x0000000Cu;
|
|
/* 028F2D48 */ rbrew_write32(cpu->mem, _t138, cpu->r[8]);
|
|
L_028F2D4C: ; // 0x28f2d4c
|
|
/* 028F2D4C */ cpu->r[3] = 0x00000001u;
|
|
L_028F2D50: ; // 0x28f2d50
|
|
/* 028F2D50 */ /* nop */
|
|
/* 028F2D54 */ _t139 = cpu->r[1] + 0x000000FCu;
|
|
/* 028F2D54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t139);
|
|
/* 028F2D58 */ cpu->lr = cpu->r[0];
|
|
/* 028F2D5C */ cpu->r[1] = cpu->r[1] + 0x000000F8u;
|
|
/* 028F2D60 */ return;
|
|
}
|
|
|
|
// fn_028F2D64 @ 0x28f2d64
|
|
void Gambit_fn_028F2D64(CPUState* cpu) {
|
|
L_028F2D64: ; // 0x28f2d64
|
|
/* 028F2D64 */ cpu->r[3] = 0x10140000u;
|
|
/* 028F2D68 */ cpu->r[3] = cpu->r[3] + 0xFFFFCCECu;
|
|
/* 028F2D6C */ return;
|
|
}
|
|
|
|
// fn_028F2D70 @ 0x28f2d70
|
|
void Gambit_fn_028F2D70(CPUState* cpu) {
|
|
L_028F2D70: ; // 0x28f2d70
|
|
/* 028F2D70 */ cpu->r[3] = 0x10140000u;
|
|
/* 028F2D74 */ cpu->r[3] = cpu->r[3] + 0xFFFFCCE4u;
|
|
/* 028F2D78 */ return;
|
|
}
|
|
|
|
// fn_028F2D7C @ 0x28f2d7c
|
|
void Gambit_fn_028F2D7C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028F2D7C: ; // 0x28f2d7c
|
|
/* 028F2D7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F2D80 */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2D80 */ _t1 = _t0 & 0x00000001u;
|
|
/* 028F2D80 */ if (_t1) goto L_028F2D84; else goto L_028F2D8C;
|
|
L_028F2D84: ; // 0x28f2d84
|
|
/* 028F2D84 */ cpu->r[3] = 0x00000000u;
|
|
/* 028F2D88 */ return;
|
|
L_028F2D8C: ; // 0x28f2d8c
|
|
/* 028F2D8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028F2D90 */ cpu->r[0] = cpu->r[3] + cpu->r[4];
|
|
/* 028F2D94 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F2D94 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F2D94 */ if (_t3) goto L_028F2D98; else goto L_028F2DB4;
|
|
L_028F2D98: ; // 0x28f2d98
|
|
/* 028F2D98 */ cpu->r[12] = cpu->r[0];
|
|
/* 028F2D9C */ cpu->ctr = cpu->r[5];
|
|
/* 028F2DA0 */ cpu->r[12] = cpu->r[12] + 0xFFFFFFF4u;
|
|
L_028F2DA4: ; // 0x28f2da4
|
|
/* 028F2DA4 */ _t4 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028F2DA4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F2DA4 */ cpu->r[12] = _t4;
|
|
/* 028F2DA8 */ cpu->r[11] = cpu->r[11] + cpu->r[3];
|
|
/* 028F2DAC */ _t5 = cpu->r[12] + 0x00000000u;
|
|
/* 028F2DAC */ rbrew_write32(cpu->mem, _t5, cpu->r[11]);
|
|
/* 028F2DB0 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F2DB0 */ _t6 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F2DB0 */ _t7 = _t6 >> (0x00000002u & 31u);
|
|
/* 028F2DB0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F2DB0 */ if (_t8) goto L_028F2DA4; else goto L_028F2DB4;
|
|
L_028F2DB4: ; // 0x28f2db4
|
|
/* 028F2DB4 */ cpu->r[3] = cpu->r[0];
|
|
/* 028F2DB8 */ return;
|
|
}
|
|
|
|
// fn_028F2DBC @ 0x28f2dbc
|
|
void Gambit_fn_028F2DBC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028F2DBC: ; // 0x28f2dbc
|
|
/* 028F2DBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F2DC0 */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2DC0 */ _t1 = _t0 & 0x00000001u;
|
|
/* 028F2DC0 */ if (_t1) goto L_028F2DC4; else goto L_028F2DCC;
|
|
L_028F2DC4: ; // 0x28f2dc4
|
|
/* 028F2DC4 */ cpu->r[3] = 0x00000000u;
|
|
/* 028F2DC8 */ return;
|
|
L_028F2DCC: ; // 0x28f2dcc
|
|
/* 028F2DCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028F2DD0 */ cpu->r[0] = cpu->r[3] + cpu->r[4];
|
|
/* 028F2DD4 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F2DD4 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F2DD4 */ if (_t3) goto L_028F2DD8; else goto L_028F2DF4;
|
|
L_028F2DD8: ; // 0x28f2dd8
|
|
/* 028F2DD8 */ cpu->r[12] = cpu->r[0];
|
|
/* 028F2DDC */ cpu->ctr = cpu->r[5];
|
|
/* 028F2DE0 */ cpu->r[12] = cpu->r[12] + 0xFFFFFFECu;
|
|
L_028F2DE4: ; // 0x28f2de4
|
|
/* 028F2DE4 */ _t4 = cpu->r[12] + 0x00000014u;
|
|
/* 028F2DE4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F2DE4 */ cpu->r[12] = _t4;
|
|
/* 028F2DE8 */ cpu->r[11] = cpu->r[11] + cpu->r[3];
|
|
/* 028F2DEC */ _t5 = cpu->r[12] + 0x00000000u;
|
|
/* 028F2DEC */ rbrew_write32(cpu->mem, _t5, cpu->r[11]);
|
|
/* 028F2DF0 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F2DF0 */ _t6 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F2DF0 */ _t7 = _t6 >> (0x00000002u & 31u);
|
|
/* 028F2DF0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F2DF0 */ if (_t8) goto L_028F2DE4; else goto L_028F2DF4;
|
|
L_028F2DF4: ; // 0x28f2df4
|
|
/* 028F2DF4 */ cpu->r[3] = cpu->r[0];
|
|
/* 028F2DF8 */ return;
|
|
}
|
|
|
|
// fn_028F2DFC @ 0x28f2dfc
|
|
void Gambit_fn_028F2DFC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028F2DFC: ; // 0x28f2dfc
|
|
/* 028F2DFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F2E00 */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2E00 */ _t1 = _t0 & 0x00000001u;
|
|
/* 028F2E00 */ if (_t1) goto L_028F2E04; else goto L_028F2E0C;
|
|
L_028F2E04: ; // 0x28f2e04
|
|
/* 028F2E04 */ cpu->r[3] = 0x00000000u;
|
|
/* 028F2E08 */ return;
|
|
L_028F2E0C: ; // 0x28f2e0c
|
|
/* 028F2E0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028F2E10 */ cpu->r[0] = cpu->r[3] + cpu->r[4];
|
|
/* 028F2E14 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F2E14 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F2E14 */ if (_t3) goto L_028F2E18; else goto L_028F2E34;
|
|
L_028F2E18: ; // 0x28f2e18
|
|
/* 028F2E18 */ cpu->r[12] = cpu->r[0];
|
|
/* 028F2E1C */ cpu->ctr = cpu->r[5];
|
|
/* 028F2E20 */ cpu->r[12] = cpu->r[12] + 0xFFFFFFF4u;
|
|
L_028F2E24: ; // 0x28f2e24
|
|
/* 028F2E24 */ _t4 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028F2E24 */ cpu->r[11] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F2E24 */ cpu->r[12] = _t4;
|
|
/* 028F2E28 */ cpu->r[11] = cpu->r[11] + cpu->r[3];
|
|
/* 028F2E2C */ _t5 = cpu->r[12] + 0x00000000u;
|
|
/* 028F2E2C */ rbrew_write32(cpu->mem, _t5, cpu->r[11]);
|
|
/* 028F2E30 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F2E30 */ _t6 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F2E30 */ _t7 = _t6 >> (0x00000002u & 31u);
|
|
/* 028F2E30 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F2E30 */ if (_t8) goto L_028F2E24; else goto L_028F2E34;
|
|
L_028F2E34: ; // 0x28f2e34
|
|
/* 028F2E34 */ cpu->r[3] = cpu->r[0];
|
|
/* 028F2E38 */ return;
|
|
}
|
|
|
|
// fn_028F2E3C @ 0x28f2e3c
|
|
void Gambit_fn_028F2E3C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028F2E3C: ; // 0x28f2e3c
|
|
/* 028F2E3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F2E40 */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2E40 */ _t1 = _t0 & 0x00000001u;
|
|
/* 028F2E40 */ if (_t1) goto L_028F2E44; else goto L_028F2E4C;
|
|
L_028F2E44: ; // 0x28f2e44
|
|
/* 028F2E44 */ cpu->r[3] = 0x00000000u;
|
|
/* 028F2E48 */ return;
|
|
L_028F2E4C: ; // 0x28f2e4c
|
|
/* 028F2E4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028F2E50 */ cpu->r[0] = cpu->r[3] + cpu->r[4];
|
|
/* 028F2E54 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F2E54 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F2E54 */ if (_t3) goto L_028F2E58; else goto L_028F2E74;
|
|
L_028F2E58: ; // 0x28f2e58
|
|
/* 028F2E58 */ cpu->r[12] = cpu->r[0];
|
|
/* 028F2E5C */ cpu->ctr = cpu->r[5];
|
|
/* 028F2E60 */ cpu->r[12] = cpu->r[12] + 0xFFFFFFF0u;
|
|
L_028F2E64: ; // 0x28f2e64
|
|
/* 028F2E64 */ _t4 = cpu->r[12] + 0x00000010u;
|
|
/* 028F2E64 */ cpu->r[11] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F2E64 */ cpu->r[12] = _t4;
|
|
/* 028F2E68 */ cpu->r[11] = cpu->r[11] + cpu->r[3];
|
|
/* 028F2E6C */ _t5 = cpu->r[12] + 0x00000000u;
|
|
/* 028F2E6C */ rbrew_write32(cpu->mem, _t5, cpu->r[11]);
|
|
/* 028F2E70 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F2E70 */ _t6 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F2E70 */ _t7 = _t6 >> (0x00000002u & 31u);
|
|
/* 028F2E70 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F2E70 */ if (_t8) goto L_028F2E64; else goto L_028F2E74;
|
|
L_028F2E74: ; // 0x28f2e74
|
|
/* 028F2E74 */ cpu->r[3] = cpu->r[0];
|
|
/* 028F2E78 */ return;
|
|
}
|
|
|
|
// fn_028F2E7C @ 0x28f2e7c
|
|
void Gambit_fn_028F2E7C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _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_028F2E7C: ; // 0x28f2e7c
|
|
/* 028F2E7C */ cpu->r[4] = cpu->r[3];
|
|
/* 028F2E80 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F2E84 */ _t0 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F2E84 */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F2E88 */ goto L_02905FDC;
|
|
L_02905F00: ; // 0x2905f00
|
|
/* 02905F00 */ cpu->r[0] = cpu->lr;
|
|
/* 02905F04 */ cpu->r[3] = cpu->r[4];
|
|
/* 02905F08 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000001u);
|
|
/* 02905F0C */ _t1 = cpu->r[1] + 0x00000004u;
|
|
/* 02905F0C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02905F10 */ cpu->r[12] = cpu->r[5];
|
|
/* 02905F14 */ _t2 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 02905F14 */ rbrew_write32(cpu->mem, _t2, cpu->r[1]);
|
|
/* 02905F14 */ cpu->r[1] = _t2;
|
|
/* 02905F18 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02905F18 */ _t4 = _t3 & 0x00000001u;
|
|
/* 02905F18 */ if (_t4) goto L_02905F38; else goto L_02905F1C;
|
|
L_02905F1C: ; // 0x2905f1c
|
|
/* 02905F1C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02905F1C */ _t6 = _t5 & 0x00000001u;
|
|
/* 02905F1C */ if (_t6) goto L_02905F64; else goto L_02905F20;
|
|
L_02905F20: ; // 0x2905f20
|
|
/* 02905F20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000002u);
|
|
/* 02905F24 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02905F24 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02905F24 */ if (_t8) goto L_02905FA0; else goto L_02905F28;
|
|
L_02905F28: ; // 0x2905f28
|
|
/* 02905F28 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02905F28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02905F2C */ cpu->lr = cpu->r[0];
|
|
/* 02905F30 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 02905F34 */ return;
|
|
L_02905F38: ; // 0x2905f38
|
|
/* 02905F38 */ _t10 = cpu->r[12] + 0x00000000u;
|
|
/* 02905F38 */ cpu->r[4] = rbrew_read8(cpu->mem, _t10);
|
|
/* 02905F3C */ cpu->r[6] = 0x00000000u;
|
|
/* 02905F40 */ _t11 = cpu->r[12] + 0x00000004u;
|
|
/* 02905F40 */ cpu->r[8] = rbrew_read8(cpu->mem, _t11);
|
|
/* 02905F44 */ cpu->r[7] = cpu->r[6];
|
|
/* 02905F48 */ _t12 = cpu->r[12] + 0x00000005u;
|
|
/* 02905F48 */ cpu->r[9] = rbrew_read8(cpu->mem, _t12);
|
|
/* 02905F4C */ _t13 = cpu->r[12] + 0x00000001u;
|
|
/* 02905F4C */ cpu->r[5] = rbrew_read8(cpu->mem, _t13);
|
|
/* 02905F50 */ rbrew_dispatch(cpu, 0x02d061e8u);
|
|
/* 02905F54 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02905F54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02905F58 */ cpu->lr = cpu->r[0];
|
|
/* 02905F5C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 02905F60 */ return;
|
|
L_02905F64: ; // 0x2905f64
|
|
/* 02905F64 */ _t15 = cpu->r[12] + 0x00000000u;
|
|
/* 02905F64 */ cpu->r[4] = rbrew_read8(cpu->mem, _t15);
|
|
/* 02905F68 */ cpu->r[6] = 0x00000000u;
|
|
/* 02905F6C */ _t16 = cpu->r[12] + 0x00000004u;
|
|
/* 02905F6C */ cpu->r[8] = rbrew_read8(cpu->mem, _t16);
|
|
/* 02905F70 */ cpu->r[7] = cpu->r[6];
|
|
/* 02905F74 */ _t17 = cpu->r[12] + 0x00000005u;
|
|
/* 02905F74 */ cpu->r[9] = rbrew_read8(cpu->mem, _t17);
|
|
/* 02905F78 */ _t18 = cpu->r[12] + 0x00000001u;
|
|
/* 02905F78 */ cpu->r[5] = rbrew_read8(cpu->mem, _t18);
|
|
/* 02905F7C */ rbrew_dispatch(cpu, 0x02d061e8u);
|
|
/* 02905F80 */ cpu->r[5] = 0xFFFFFFFFu;
|
|
/* 02905F84 */ cpu->r[4] = 0x00000000u;
|
|
/* 02905F88 */ cpu->r[3] = 0x00000008u;
|
|
/* 02905F8C */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
/* 02905F90 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02905F90 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02905F94 */ cpu->lr = cpu->r[0];
|
|
/* 02905F98 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 02905F9C */ return;
|
|
L_02905FA0: ; // 0x2905fa0
|
|
/* 02905FA0 */ _t20 = cpu->r[12] + 0x00000003u;
|
|
/* 02905FA0 */ cpu->r[5] = rbrew_read8(cpu->mem, _t20);
|
|
/* 02905FA4 */ _t21 = cpu->r[12] + 0x00000009u;
|
|
/* 02905FA4 */ cpu->r[7] = rbrew_read8(cpu->mem, _t21);
|
|
/* 02905FA8 */ _t22 = cpu->r[12] + 0x00000008u;
|
|
/* 02905FA8 */ cpu->r[6] = rbrew_read8(cpu->mem, _t22);
|
|
/* 02905FAC */ _t23 = cpu->r[12] + 0x00000007u;
|
|
/* 02905FAC */ cpu->r[9] = rbrew_read8(cpu->mem, _t23);
|
|
/* 02905FB0 */ _t24 = cpu->r[12] + 0x00000006u;
|
|
/* 02905FB0 */ cpu->r[8] = rbrew_read8(cpu->mem, _t24);
|
|
/* 02905FB4 */ _t25 = cpu->r[12] + 0x00000002u;
|
|
/* 02905FB4 */ cpu->r[4] = rbrew_read8(cpu->mem, _t25);
|
|
/* 02905FB8 */ rbrew_dispatch(cpu, 0x02d061e8u);
|
|
/* 02905FBC */ cpu->r[5] = 0xFFFFFFFFu;
|
|
/* 02905FC0 */ cpu->r[4] = 0x00000000u;
|
|
/* 02905FC4 */ cpu->r[3] = 0x00000008u;
|
|
/* 02905FC8 */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
/* 02905FCC */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02905FCC */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 02905FD0 */ cpu->lr = cpu->r[0];
|
|
/* 02905FD4 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 02905FD8 */ return;
|
|
L_02905FDC: ; // 0x2905fdc
|
|
/* 02905FDC */ _t27 = cpu->r[3] + 0x00000014u;
|
|
/* 02905FDC */ cpu->r[5] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02905FE0 */ goto L_02905F00;
|
|
}
|
|
|
|
// fn_028F2E8C @ 0x28f2e8c
|
|
void Gambit_fn_028F2E8C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F2E8C: ; // 0x28f2e8c
|
|
/* 028F2E8C */ cpu->r[0] = cpu->lr;
|
|
/* 028F2E90 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F2E90 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F2E90 */ cpu->r[1] = _t0;
|
|
/* 028F2E94 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F2E94 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F2E98 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F2E98 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F2E9C */ cpu->r[31] = cpu->r[3];
|
|
/* 028F2E9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F2EA0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F2EA0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F2EA4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2EA4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F2EA4 */ if (_t5) goto L_028F2EA8; else goto L_028F2EB8;
|
|
L_028F2EA8: ; // 0x28f2ea8
|
|
/* 028F2EA8 */ cpu->r[3] = 0x00000080u;
|
|
/* 028F2EAC */ Gambit_fn_02801A78(cpu);
|
|
/* 028F2EB0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F2EB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F2EB4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2EB4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F2EB4 */ if (_t7) goto L_028F2FB0; else goto L_028F2EB8;
|
|
L_028F2EB8: ; // 0x28f2eb8
|
|
/* 028F2EB8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F2EBC */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2EBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2EC0 */ cpu->r[0] = cpu->r[0] + 0xFFFFCDB4u;
|
|
/* 028F2EC4 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F2EC8 */ _t8 = cpu->r[31] + 0x0000007Cu;
|
|
/* 028F2EC8 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028F2ECC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2ECC */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F2ECC */ if (_t10) goto L_028F2ED0; else goto L_028F2EE0;
|
|
L_028F2ED0: ; // 0x28f2ed0
|
|
/* 028F2ED0 */ cpu->r[3] = 0x00000001u;
|
|
/* 028F2ED4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F2ED8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2EDC */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2EDC */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F2EDC */ if (_t12) goto L_028F2EE4; else goto L_028F2EE0;
|
|
L_028F2EE0: ; // 0x28f2ee0
|
|
/* 028F2EE0 */ _t13 = cpu->r[3] + 0x00000000u;
|
|
/* 028F2EE0 */ rbrew_write8(cpu->mem, _t13, (uint8_t)cpu->r[30]);
|
|
L_028F2EE4: ; // 0x28f2ee4
|
|
/* 028F2EE4 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 028F2EE8 */ _t14 = cpu->r[31] + 0x00000002u;
|
|
/* 028F2EE8 */ rbrew_write16(cpu->mem, _t14, (uint16_t)cpu->r[30]);
|
|
/* 028F2EEC */ Gambit_fn_028EFA70(cpu);
|
|
/* 028F2EF0 */ cpu->r[3] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F2EF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2EF4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2EF4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F2EF4 */ if (_t16) goto L_028F2EF8; else goto L_028F2F08;
|
|
L_028F2EF8: ; // 0x28f2ef8
|
|
/* 028F2EF8 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F2EFC */ Gambit_fn_02801A78(cpu);
|
|
/* 028F2F00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2F04 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2F04 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F2F04 */ if (_t18) goto L_028F2F10; else goto L_028F2F08;
|
|
L_028F2F08: ; // 0x28f2f08
|
|
/* 028F2F08 */ _t19 = cpu->r[3] + 0x00000004u;
|
|
/* 028F2F08 */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
/* 028F2F0C */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028F2F0C */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
L_028F2F10: ; // 0x28f2f10
|
|
/* 028F2F10 */ cpu->r[3] = cpu->r[31] + 0x00000024u;
|
|
/* 028F2F10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2F14 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2F14 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F2F14 */ if (_t22) goto L_028F2F18; else goto L_028F2F28;
|
|
L_028F2F18: ; // 0x28f2f18
|
|
/* 028F2F18 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F2F1C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F2F20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2F24 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2F24 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028F2F24 */ if (_t24) goto L_028F2F30; else goto L_028F2F28;
|
|
L_028F2F28: ; // 0x28f2f28
|
|
/* 028F2F28 */ _t25 = cpu->r[3] + 0x00000004u;
|
|
/* 028F2F28 */ rbrew_write32(cpu->mem, _t25, cpu->r[30]);
|
|
/* 028F2F2C */ _t26 = cpu->r[3] + 0x00000000u;
|
|
/* 028F2F2C */ rbrew_write32(cpu->mem, _t26, cpu->r[30]);
|
|
L_028F2F30: ; // 0x28f2f30
|
|
/* 028F2F30 */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F2F30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2F34 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2F34 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F2F34 */ if (_t28) goto L_028F2F38; else goto L_028F2F48;
|
|
L_028F2F38: ; // 0x28f2f38
|
|
/* 028F2F38 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F2F3C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F2F40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2F44 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2F44 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F2F44 */ if (_t30) goto L_028F2F50; else goto L_028F2F48;
|
|
L_028F2F48: ; // 0x28f2f48
|
|
/* 028F2F48 */ _t31 = cpu->r[3] + 0x00000004u;
|
|
/* 028F2F48 */ rbrew_write32(cpu->mem, _t31, cpu->r[30]);
|
|
/* 028F2F4C */ _t32 = cpu->r[3] + 0x00000000u;
|
|
/* 028F2F4C */ rbrew_write32(cpu->mem, _t32, cpu->r[30]);
|
|
L_028F2F50: ; // 0x28f2f50
|
|
/* 028F2F50 */ cpu->r[3] = cpu->r[31] + 0x00000034u;
|
|
/* 028F2F50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2F54 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2F54 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F2F54 */ if (_t34) goto L_028F2F58; else goto L_028F2F68;
|
|
L_028F2F58: ; // 0x28f2f58
|
|
/* 028F2F58 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F2F5C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F2F60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2F64 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2F64 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F2F64 */ if (_t36) goto L_028F2F70; else goto L_028F2F68;
|
|
L_028F2F68: ; // 0x28f2f68
|
|
/* 028F2F68 */ _t37 = cpu->r[3] + 0x00000004u;
|
|
/* 028F2F68 */ rbrew_write32(cpu->mem, _t37, cpu->r[30]);
|
|
/* 028F2F6C */ _t38 = cpu->r[3] + 0x00000000u;
|
|
/* 028F2F6C */ rbrew_write32(cpu->mem, _t38, cpu->r[30]);
|
|
L_028F2F70: ; // 0x28f2f70
|
|
/* 028F2F70 */ cpu->r[3] = cpu->r[31] + 0x0000003Cu;
|
|
/* 028F2F74 */ Gambit_fn_0295EC60(cpu);
|
|
/* 028F2F78 */ cpu->r[11] = 0x10140000u;
|
|
/* 028F2F7C */ cpu->r[11] = cpu->r[11] + 0xFFFFCCF4u;
|
|
/* 028F2F80 */ cpu->r[3] = cpu->r[31] + 0x00000050u;
|
|
/* 028F2F84 */ _t39 = cpu->r[31] + 0x0000004Cu;
|
|
/* 028F2F84 */ rbrew_write32(cpu->mem, _t39, cpu->r[11]);
|
|
/* 028F2F88 */ Gambit_fn_0295EC60(cpu);
|
|
/* 028F2F8C */ cpu->r[12] = 0x10140000u;
|
|
/* 028F2F90 */ cpu->r[12] = cpu->r[12] + 0xFFFFCD1Cu;
|
|
/* 028F2F94 */ cpu->r[3] = cpu->r[31] + 0x00000064u;
|
|
/* 028F2F98 */ _t40 = cpu->r[31] + 0x00000060u;
|
|
/* 028F2F98 */ rbrew_write32(cpu->mem, _t40, cpu->r[12]);
|
|
/* 028F2F9C */ Gambit_fn_0295EC60(cpu);
|
|
/* 028F2FA0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F2FA4 */ _t41 = cpu->r[31] + 0x00000078u;
|
|
/* 028F2FA4 */ rbrew_write32(cpu->mem, _t41, cpu->r[30]);
|
|
/* 028F2FA8 */ cpu->r[0] = cpu->r[0] + 0xFFFFCD44u;
|
|
/* 028F2FAC */ _t42 = cpu->r[31] + 0x00000074u;
|
|
/* 028F2FAC */ rbrew_write32(cpu->mem, _t42, cpu->r[0]);
|
|
L_028F2FB0: ; // 0x28f2fb0
|
|
/* 028F2FB0 */ _t43 = cpu->r[1] + 0x00000014u;
|
|
/* 028F2FB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028F2FB4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2FB8 */ _t44 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F2FB8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028F2FBC */ cpu->lr = cpu->r[0];
|
|
/* 028F2FC0 */ _t45 = cpu->r[1] + 0x00000008u;
|
|
/* 028F2FC0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F2FC4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F2FC8 */ return;
|
|
}
|
|
|
|
// fn_028F2E90 @ 0x28f2e90
|
|
void Gambit_fn_028F2E90(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F2E90: ; // 0x28f2e90
|
|
/* 028F2E90 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F2E90 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F2E90 */ cpu->r[1] = _t0;
|
|
/* 028F2E94 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F2E94 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F2E98 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F2E98 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F2E9C */ cpu->r[31] = cpu->r[3];
|
|
/* 028F2E9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F2EA0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F2EA0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F2EA4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2EA4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F2EA4 */ if (_t5) goto L_028F2EA8; else goto L_028F2EB8;
|
|
L_028F2EA8: ; // 0x28f2ea8
|
|
/* 028F2EA8 */ cpu->r[3] = 0x00000080u;
|
|
/* 028F2EAC */ Gambit_fn_02801A78(cpu);
|
|
/* 028F2EB0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F2EB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F2EB4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2EB4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F2EB4 */ if (_t7) goto L_028F2FB0; else goto L_028F2EB8;
|
|
L_028F2EB8: ; // 0x28f2eb8
|
|
/* 028F2EB8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F2EBC */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2EBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2EC0 */ cpu->r[0] = cpu->r[0] + 0xFFFFCDB4u;
|
|
/* 028F2EC4 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F2EC8 */ _t8 = cpu->r[31] + 0x0000007Cu;
|
|
/* 028F2EC8 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028F2ECC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2ECC */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F2ECC */ if (_t10) goto L_028F2ED0; else goto L_028F2EE0;
|
|
L_028F2ED0: ; // 0x28f2ed0
|
|
/* 028F2ED0 */ cpu->r[3] = 0x00000001u;
|
|
/* 028F2ED4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F2ED8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2EDC */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2EDC */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F2EDC */ if (_t12) goto L_028F2EE4; else goto L_028F2EE0;
|
|
L_028F2EE0: ; // 0x28f2ee0
|
|
/* 028F2EE0 */ _t13 = cpu->r[3] + 0x00000000u;
|
|
/* 028F2EE0 */ rbrew_write8(cpu->mem, _t13, (uint8_t)cpu->r[30]);
|
|
L_028F2EE4: ; // 0x28f2ee4
|
|
/* 028F2EE4 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 028F2EE8 */ _t14 = cpu->r[31] + 0x00000002u;
|
|
/* 028F2EE8 */ rbrew_write16(cpu->mem, _t14, (uint16_t)cpu->r[30]);
|
|
/* 028F2EEC */ Gambit_fn_028EFA70(cpu);
|
|
/* 028F2EF0 */ cpu->r[3] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F2EF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2EF4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2EF4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F2EF4 */ if (_t16) goto L_028F2EF8; else goto L_028F2F08;
|
|
L_028F2EF8: ; // 0x28f2ef8
|
|
/* 028F2EF8 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F2EFC */ Gambit_fn_02801A78(cpu);
|
|
/* 028F2F00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2F04 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2F04 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F2F04 */ if (_t18) goto L_028F2F10; else goto L_028F2F08;
|
|
L_028F2F08: ; // 0x28f2f08
|
|
/* 028F2F08 */ _t19 = cpu->r[3] + 0x00000004u;
|
|
/* 028F2F08 */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
/* 028F2F0C */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028F2F0C */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
L_028F2F10: ; // 0x28f2f10
|
|
/* 028F2F10 */ cpu->r[3] = cpu->r[31] + 0x00000024u;
|
|
/* 028F2F10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2F14 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2F14 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F2F14 */ if (_t22) goto L_028F2F18; else goto L_028F2F28;
|
|
L_028F2F18: ; // 0x28f2f18
|
|
/* 028F2F18 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F2F1C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F2F20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2F24 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2F24 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028F2F24 */ if (_t24) goto L_028F2F30; else goto L_028F2F28;
|
|
L_028F2F28: ; // 0x28f2f28
|
|
/* 028F2F28 */ _t25 = cpu->r[3] + 0x00000004u;
|
|
/* 028F2F28 */ rbrew_write32(cpu->mem, _t25, cpu->r[30]);
|
|
/* 028F2F2C */ _t26 = cpu->r[3] + 0x00000000u;
|
|
/* 028F2F2C */ rbrew_write32(cpu->mem, _t26, cpu->r[30]);
|
|
L_028F2F30: ; // 0x28f2f30
|
|
/* 028F2F30 */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F2F30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2F34 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2F34 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F2F34 */ if (_t28) goto L_028F2F38; else goto L_028F2F48;
|
|
L_028F2F38: ; // 0x28f2f38
|
|
/* 028F2F38 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F2F3C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F2F40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2F44 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2F44 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F2F44 */ if (_t30) goto L_028F2F50; else goto L_028F2F48;
|
|
L_028F2F48: ; // 0x28f2f48
|
|
/* 028F2F48 */ _t31 = cpu->r[3] + 0x00000004u;
|
|
/* 028F2F48 */ rbrew_write32(cpu->mem, _t31, cpu->r[30]);
|
|
/* 028F2F4C */ _t32 = cpu->r[3] + 0x00000000u;
|
|
/* 028F2F4C */ rbrew_write32(cpu->mem, _t32, cpu->r[30]);
|
|
L_028F2F50: ; // 0x28f2f50
|
|
/* 028F2F50 */ cpu->r[3] = cpu->r[31] + 0x00000034u;
|
|
/* 028F2F50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2F54 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2F54 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F2F54 */ if (_t34) goto L_028F2F58; else goto L_028F2F68;
|
|
L_028F2F58: ; // 0x28f2f58
|
|
/* 028F2F58 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F2F5C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F2F60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F2F64 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2F64 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F2F64 */ if (_t36) goto L_028F2F70; else goto L_028F2F68;
|
|
L_028F2F68: ; // 0x28f2f68
|
|
/* 028F2F68 */ _t37 = cpu->r[3] + 0x00000004u;
|
|
/* 028F2F68 */ rbrew_write32(cpu->mem, _t37, cpu->r[30]);
|
|
/* 028F2F6C */ _t38 = cpu->r[3] + 0x00000000u;
|
|
/* 028F2F6C */ rbrew_write32(cpu->mem, _t38, cpu->r[30]);
|
|
L_028F2F70: ; // 0x28f2f70
|
|
/* 028F2F70 */ cpu->r[3] = cpu->r[31] + 0x0000003Cu;
|
|
/* 028F2F74 */ Gambit_fn_0295EC60(cpu);
|
|
/* 028F2F78 */ cpu->r[11] = 0x10140000u;
|
|
/* 028F2F7C */ cpu->r[11] = cpu->r[11] + 0xFFFFCCF4u;
|
|
/* 028F2F80 */ cpu->r[3] = cpu->r[31] + 0x00000050u;
|
|
/* 028F2F84 */ _t39 = cpu->r[31] + 0x0000004Cu;
|
|
/* 028F2F84 */ rbrew_write32(cpu->mem, _t39, cpu->r[11]);
|
|
/* 028F2F88 */ Gambit_fn_0295EC60(cpu);
|
|
/* 028F2F8C */ cpu->r[12] = 0x10140000u;
|
|
/* 028F2F90 */ cpu->r[12] = cpu->r[12] + 0xFFFFCD1Cu;
|
|
/* 028F2F94 */ cpu->r[3] = cpu->r[31] + 0x00000064u;
|
|
/* 028F2F98 */ _t40 = cpu->r[31] + 0x00000060u;
|
|
/* 028F2F98 */ rbrew_write32(cpu->mem, _t40, cpu->r[12]);
|
|
/* 028F2F9C */ Gambit_fn_0295EC60(cpu);
|
|
/* 028F2FA0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F2FA4 */ _t41 = cpu->r[31] + 0x00000078u;
|
|
/* 028F2FA4 */ rbrew_write32(cpu->mem, _t41, cpu->r[30]);
|
|
/* 028F2FA8 */ cpu->r[0] = cpu->r[0] + 0xFFFFCD44u;
|
|
/* 028F2FAC */ _t42 = cpu->r[31] + 0x00000074u;
|
|
/* 028F2FAC */ rbrew_write32(cpu->mem, _t42, cpu->r[0]);
|
|
L_028F2FB0: ; // 0x28f2fb0
|
|
/* 028F2FB0 */ _t43 = cpu->r[1] + 0x00000014u;
|
|
/* 028F2FB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028F2FB4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F2FB8 */ _t44 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F2FB8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028F2FBC */ cpu->lr = cpu->r[0];
|
|
/* 028F2FC0 */ _t45 = cpu->r[1] + 0x00000008u;
|
|
/* 028F2FC0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F2FC4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F2FC8 */ return;
|
|
}
|
|
|
|
// fn_028F2FCC @ 0x28f2fcc
|
|
void Gambit_fn_028F2FCC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028F2FCC: ; // 0x28f2fcc
|
|
/* 028F2FCC */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028F2FCC */ cpu->r[11] = rbrew_read8(cpu->mem, _t0);
|
|
/* 028F2FD0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F2FD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F2FD4 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F2FD4 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028F2FD4 */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F2FD4 */ goto L_028F2FD8;
|
|
L_028F2FD8: ; // 0x28f2fd8
|
|
/* 028F2FD8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x00000000u, 0x0000001Eu);
|
|
/* 028F2FDC */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028F2FDC */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[12]);
|
|
/* 028F2FE0 */ return;
|
|
}
|
|
|
|
// fn_028F2FE4 @ 0x28f2fe4
|
|
void Gambit_fn_028F2FE4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _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_028F2FE4: ; // 0x28f2fe4
|
|
/* 028F2FE4 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028F2FE4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F2FE4 */ cpu->r[1] = _t0;
|
|
/* 028F2FE8 */ /* nop */
|
|
/* 028F2FEC */ cpu->r[0] = cpu->lr;
|
|
/* 028F2FF0 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028F2FF0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F2FF4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F2FF8 */ _t2 = cpu->r[31] + 0x00000020u;
|
|
/* 028F2FF8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F2FFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F3000 */ cpu->r[28] = 0x101D0000u;
|
|
/* 028F3004 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3004 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F3004 */ if (_t4) goto L_028F3038; else goto L_028F3008;
|
|
L_028F3008: ; // 0x28f3008
|
|
/* 028F3008 */ _t5 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F3008 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F300C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3010 */ _t6 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 028F3010 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F3014 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F3018 */ _t7 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F3018 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F301C */ _t8 = cpu->r[10] + 0x0000003Cu;
|
|
/* 028F301C */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F3020 */ cpu->ctr = cpu->r[11];
|
|
/* 028F3024 */ _t9 = cpu->r[31] + 0x00000020u;
|
|
/* 028F3024 */ cpu->r[4] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F3028 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F302C */ cpu->r[12] = 0x00000000u;
|
|
/* 028F3030 */ _t10 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F3030 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028F3034 */ _t11 = cpu->r[31] + 0x00000020u;
|
|
/* 028F3034 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
L_028F3038: ; // 0x28f3038
|
|
/* 028F3038 */ _t12 = cpu->r[31] + 0x00000078u;
|
|
/* 028F3038 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F303C */ _t13 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028F303C */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F3040 */ _t14 = cpu->r[11] + 0x00000010u;
|
|
/* 028F3040 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F3044 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F3048 */ cpu->r[30] = cpu->r[31] + cpu->r[0];
|
|
/* 028F304C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3050 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3050 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F3050 */ if (_t16) goto L_028F30A0; else goto L_028F3054;
|
|
L_028F3054: ; // 0x28f3054
|
|
/* 028F3054 */ cpu->r[29] = 0x00000000u;
|
|
L_028F3058: ; // 0x28f3058
|
|
/* 028F3058 */ _t17 = cpu->r[31] + 0x00000020u;
|
|
/* 028F3058 */ cpu->r[4] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F305C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F3060 */ cpu->r[27] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F3064 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3064 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F3064 */ if (_t19) goto L_028F3094; else goto L_028F3068;
|
|
L_028F3068: ; // 0x28f3068
|
|
/* 028F3068 */ _t20 = cpu->r[27] + 0x00000000u;
|
|
/* 028F3068 */ cpu->r[7] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F306C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F3070 */ _t21 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 028F3070 */ cpu->r[3] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F3074 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F3078 */ _t22 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F3078 */ cpu->r[6] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F307C */ _t23 = cpu->r[6] + 0x0000003Cu;
|
|
/* 028F307C */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F3080 */ cpu->ctr = cpu->r[0];
|
|
/* 028F3084 */ _t24 = cpu->r[27] + 0x00000004u;
|
|
/* 028F3084 */ cpu->r[4] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F3088 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F308C */ _t25 = cpu->r[27] + 0x00000000u;
|
|
/* 028F308C */ rbrew_write32(cpu->mem, _t25, cpu->r[29]);
|
|
/* 028F3090 */ _t26 = cpu->r[27] + 0x00000004u;
|
|
/* 028F3090 */ rbrew_write32(cpu->mem, _t26, cpu->r[29]);
|
|
L_028F3094: ; // 0x28f3094
|
|
/* 028F3094 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F3098 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F309C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F309C */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F309C */ if (_t28) goto L_028F30A0; else goto L_028F3058;
|
|
L_028F30A0: ; // 0x28f30a0
|
|
/* 028F30A0 */ /* nop */
|
|
/* 028F30A4 */ _t29 = cpu->r[1] + 0x00000024u;
|
|
/* 028F30A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F30A8 */ cpu->lr = cpu->r[0];
|
|
/* 028F30AC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028F30B0 */ return;
|
|
}
|
|
|
|
// fn_028F30B4 @ 0x28f30b4
|
|
void Gambit_fn_028F30B4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _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_028F30B4: ; // 0x28f30b4
|
|
/* 028F30B4 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028F30B4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F30B4 */ cpu->r[1] = _t0;
|
|
/* 028F30B8 */ /* nop */
|
|
/* 028F30BC */ cpu->r[0] = cpu->lr;
|
|
/* 028F30C0 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028F30C0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F30C4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F30C8 */ _t2 = cpu->r[31] + 0x00000028u;
|
|
/* 028F30C8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F30CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F30D0 */ cpu->r[28] = 0x101D0000u;
|
|
/* 028F30D4 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F30D4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F30D4 */ if (_t4) goto L_028F3108; else goto L_028F30D8;
|
|
L_028F30D8: ; // 0x28f30d8
|
|
/* 028F30D8 */ _t5 = cpu->r[31] + 0x00000024u;
|
|
/* 028F30D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F30DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F30E0 */ _t6 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 028F30E0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F30E4 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F30E8 */ _t7 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F30E8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F30EC */ _t8 = cpu->r[10] + 0x0000003Cu;
|
|
/* 028F30EC */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F30F0 */ cpu->ctr = cpu->r[11];
|
|
/* 028F30F4 */ _t9 = cpu->r[31] + 0x00000028u;
|
|
/* 028F30F4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F30F8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F30FC */ cpu->r[12] = 0x00000000u;
|
|
/* 028F3100 */ _t10 = cpu->r[31] + 0x00000024u;
|
|
/* 028F3100 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028F3104 */ _t11 = cpu->r[31] + 0x00000028u;
|
|
/* 028F3104 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
L_028F3108: ; // 0x28f3108
|
|
/* 028F3108 */ _t12 = cpu->r[31] + 0x00000078u;
|
|
/* 028F3108 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F310C */ _t13 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028F310C */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F3110 */ _t14 = cpu->r[11] + 0x00000010u;
|
|
/* 028F3110 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F3114 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F3118 */ cpu->r[30] = cpu->r[31] + cpu->r[0];
|
|
/* 028F311C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3120 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3120 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F3120 */ if (_t16) goto L_028F3170; else goto L_028F3124;
|
|
L_028F3124: ; // 0x28f3124
|
|
/* 028F3124 */ cpu->r[29] = 0x00000000u;
|
|
L_028F3128: ; // 0x28f3128
|
|
/* 028F3128 */ _t17 = cpu->r[31] + 0x00000028u;
|
|
/* 028F3128 */ cpu->r[4] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F312C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F3130 */ cpu->r[27] = cpu->r[31] + 0x00000024u;
|
|
/* 028F3134 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3134 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F3134 */ if (_t19) goto L_028F3164; else goto L_028F3138;
|
|
L_028F3138: ; // 0x28f3138
|
|
/* 028F3138 */ _t20 = cpu->r[27] + 0x00000000u;
|
|
/* 028F3138 */ cpu->r[7] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F313C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F3140 */ _t21 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 028F3140 */ cpu->r[3] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F3144 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F3148 */ _t22 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F3148 */ cpu->r[6] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F314C */ _t23 = cpu->r[6] + 0x0000003Cu;
|
|
/* 028F314C */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F3150 */ cpu->ctr = cpu->r[0];
|
|
/* 028F3154 */ _t24 = cpu->r[27] + 0x00000004u;
|
|
/* 028F3154 */ cpu->r[4] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F3158 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F315C */ _t25 = cpu->r[27] + 0x00000000u;
|
|
/* 028F315C */ rbrew_write32(cpu->mem, _t25, cpu->r[29]);
|
|
/* 028F3160 */ _t26 = cpu->r[27] + 0x00000004u;
|
|
/* 028F3160 */ rbrew_write32(cpu->mem, _t26, cpu->r[29]);
|
|
L_028F3164: ; // 0x28f3164
|
|
/* 028F3164 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F3168 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F316C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F316C */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F316C */ if (_t28) goto L_028F3170; else goto L_028F3128;
|
|
L_028F3170: ; // 0x28f3170
|
|
/* 028F3170 */ /* nop */
|
|
/* 028F3174 */ _t29 = cpu->r[1] + 0x00000024u;
|
|
/* 028F3174 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F3178 */ cpu->lr = cpu->r[0];
|
|
/* 028F317C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028F3180 */ return;
|
|
}
|
|
|
|
// fn_028F3184 @ 0x28f3184
|
|
void Gambit_fn_028F3184(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _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_028F3184: ; // 0x28f3184
|
|
/* 028F3184 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028F3184 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3184 */ cpu->r[1] = _t0;
|
|
/* 028F3188 */ /* nop */
|
|
/* 028F318C */ cpu->r[0] = cpu->lr;
|
|
/* 028F3190 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028F3190 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F3194 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F3198 */ _t2 = cpu->r[31] + 0x00000038u;
|
|
/* 028F3198 */ cpu->r[4] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F319C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F31A0 */ cpu->r[28] = 0x101D0000u;
|
|
/* 028F31A4 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F31A4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F31A4 */ if (_t4) goto L_028F31D8; else goto L_028F31A8;
|
|
L_028F31A8: ; // 0x28f31a8
|
|
/* 028F31A8 */ _t5 = cpu->r[31] + 0x00000034u;
|
|
/* 028F31A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F31AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F31B0 */ _t6 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 028F31B0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F31B4 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F31B8 */ _t7 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F31B8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F31BC */ _t8 = cpu->r[10] + 0x0000003Cu;
|
|
/* 028F31BC */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F31C0 */ cpu->ctr = cpu->r[11];
|
|
/* 028F31C4 */ _t9 = cpu->r[31] + 0x00000038u;
|
|
/* 028F31C4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F31C8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F31CC */ cpu->r[12] = 0x00000000u;
|
|
/* 028F31D0 */ _t10 = cpu->r[31] + 0x00000034u;
|
|
/* 028F31D0 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028F31D4 */ _t11 = cpu->r[31] + 0x00000038u;
|
|
/* 028F31D4 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
L_028F31D8: ; // 0x28f31d8
|
|
/* 028F31D8 */ _t12 = cpu->r[31] + 0x00000078u;
|
|
/* 028F31D8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F31DC */ _t13 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028F31DC */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F31E0 */ _t14 = cpu->r[11] + 0x00000010u;
|
|
/* 028F31E0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F31E4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F31E8 */ cpu->r[30] = cpu->r[31] + cpu->r[0];
|
|
/* 028F31EC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F31F0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F31F0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F31F0 */ if (_t16) goto L_028F3240; else goto L_028F31F4;
|
|
L_028F31F4: ; // 0x28f31f4
|
|
/* 028F31F4 */ cpu->r[29] = 0x00000000u;
|
|
L_028F31F8: ; // 0x28f31f8
|
|
/* 028F31F8 */ _t17 = cpu->r[31] + 0x00000038u;
|
|
/* 028F31F8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F31FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F3200 */ cpu->r[27] = cpu->r[31] + 0x00000034u;
|
|
/* 028F3204 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3204 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F3204 */ if (_t19) goto L_028F3234; else goto L_028F3208;
|
|
L_028F3208: ; // 0x28f3208
|
|
/* 028F3208 */ _t20 = cpu->r[27] + 0x00000000u;
|
|
/* 028F3208 */ cpu->r[7] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F320C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F3210 */ _t21 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 028F3210 */ cpu->r[3] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F3214 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F3218 */ _t22 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F3218 */ cpu->r[6] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F321C */ _t23 = cpu->r[6] + 0x0000003Cu;
|
|
/* 028F321C */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F3220 */ cpu->ctr = cpu->r[0];
|
|
/* 028F3224 */ _t24 = cpu->r[27] + 0x00000004u;
|
|
/* 028F3224 */ cpu->r[4] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F3228 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F322C */ _t25 = cpu->r[27] + 0x00000000u;
|
|
/* 028F322C */ rbrew_write32(cpu->mem, _t25, cpu->r[29]);
|
|
/* 028F3230 */ _t26 = cpu->r[27] + 0x00000004u;
|
|
/* 028F3230 */ rbrew_write32(cpu->mem, _t26, cpu->r[29]);
|
|
L_028F3234: ; // 0x28f3234
|
|
/* 028F3234 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F3238 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F323C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F323C */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F323C */ if (_t28) goto L_028F3240; else goto L_028F31F8;
|
|
L_028F3240: ; // 0x28f3240
|
|
/* 028F3240 */ /* nop */
|
|
/* 028F3244 */ _t29 = cpu->r[1] + 0x00000024u;
|
|
/* 028F3244 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F3248 */ cpu->lr = cpu->r[0];
|
|
/* 028F324C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028F3250 */ return;
|
|
}
|
|
|
|
// fn_028F3254 @ 0x28f3254
|
|
void Gambit_fn_028F3254(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _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_028F3254: ; // 0x28f3254
|
|
/* 028F3254 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028F3254 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3254 */ cpu->r[1] = _t0;
|
|
/* 028F3258 */ /* nop */
|
|
/* 028F325C */ cpu->r[0] = cpu->lr;
|
|
/* 028F3260 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028F3260 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F3264 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F3268 */ _t2 = cpu->r[31] + 0x00000030u;
|
|
/* 028F3268 */ cpu->r[4] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F326C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F3270 */ cpu->r[28] = 0x101D0000u;
|
|
/* 028F3274 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3274 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F3274 */ if (_t4) goto L_028F32A8; else goto L_028F3278;
|
|
L_028F3278: ; // 0x28f3278
|
|
/* 028F3278 */ _t5 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F3278 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F327C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3280 */ _t6 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 028F3280 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F3284 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F3288 */ _t7 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F3288 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F328C */ _t8 = cpu->r[10] + 0x0000003Cu;
|
|
/* 028F328C */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F3290 */ cpu->ctr = cpu->r[11];
|
|
/* 028F3294 */ _t9 = cpu->r[31] + 0x00000030u;
|
|
/* 028F3294 */ cpu->r[4] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F3298 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F329C */ cpu->r[12] = 0x00000000u;
|
|
/* 028F32A0 */ _t10 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F32A0 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028F32A4 */ _t11 = cpu->r[31] + 0x00000030u;
|
|
/* 028F32A4 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
L_028F32A8: ; // 0x28f32a8
|
|
/* 028F32A8 */ _t12 = cpu->r[31] + 0x00000078u;
|
|
/* 028F32A8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F32AC */ _t13 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028F32AC */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F32B0 */ _t14 = cpu->r[11] + 0x00000010u;
|
|
/* 028F32B0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F32B4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F32B8 */ cpu->r[30] = cpu->r[31] + cpu->r[0];
|
|
/* 028F32BC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F32C0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F32C0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F32C0 */ if (_t16) goto L_028F3310; else goto L_028F32C4;
|
|
L_028F32C4: ; // 0x28f32c4
|
|
/* 028F32C4 */ cpu->r[29] = 0x00000000u;
|
|
L_028F32C8: ; // 0x28f32c8
|
|
/* 028F32C8 */ _t17 = cpu->r[31] + 0x00000030u;
|
|
/* 028F32C8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F32CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F32D0 */ cpu->r[27] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F32D4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F32D4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F32D4 */ if (_t19) goto L_028F3304; else goto L_028F32D8;
|
|
L_028F32D8: ; // 0x28f32d8
|
|
/* 028F32D8 */ _t20 = cpu->r[27] + 0x00000000u;
|
|
/* 028F32D8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F32DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F32E0 */ _t21 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 028F32E0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F32E4 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F32E8 */ _t22 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F32E8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F32EC */ _t23 = cpu->r[6] + 0x0000003Cu;
|
|
/* 028F32EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F32F0 */ cpu->ctr = cpu->r[0];
|
|
/* 028F32F4 */ _t24 = cpu->r[27] + 0x00000004u;
|
|
/* 028F32F4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F32F8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F32FC */ _t25 = cpu->r[27] + 0x00000000u;
|
|
/* 028F32FC */ rbrew_write32(cpu->mem, _t25, cpu->r[29]);
|
|
/* 028F3300 */ _t26 = cpu->r[27] + 0x00000004u;
|
|
/* 028F3300 */ rbrew_write32(cpu->mem, _t26, cpu->r[29]);
|
|
L_028F3304: ; // 0x28f3304
|
|
/* 028F3304 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F3308 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F330C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F330C */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F330C */ if (_t28) goto L_028F3310; else goto L_028F32C8;
|
|
L_028F3310: ; // 0x28f3310
|
|
/* 028F3310 */ /* nop */
|
|
/* 028F3314 */ _t29 = cpu->r[1] + 0x00000024u;
|
|
/* 028F3314 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F3318 */ cpu->lr = cpu->r[0];
|
|
/* 028F331C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028F3320 */ return;
|
|
}
|
|
|
|
// fn_028F3324 @ 0x28f3324
|
|
void Gambit_fn_028F3324(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59;
|
|
|
|
L_028F3324: ; // 0x28f3324
|
|
/* 028F3324 */ cpu->r[0] = cpu->lr;
|
|
/* 028F3328 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028F3328 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3328 */ cpu->r[1] = _t0;
|
|
/* 028F332C */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 028F332C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F3330 */ /* nop */
|
|
/* 028F3334 */ cpu->r[28] = cpu->r[3];
|
|
/* 028F3334 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F3338 */ cpu->r[29] = cpu->r[4];
|
|
/* 028F333C */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F333C */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F333C */ if (_t3) goto L_028F34B4; else goto L_028F3340;
|
|
L_028F3340: ; // 0x28f3340
|
|
/* 028F3340 */ _t4 = cpu->r[28] + 0x00000008u;
|
|
/* 028F3340 */ cpu->r[4] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F3344 */ cpu->r[12] = 0x10140000u;
|
|
/* 028F3348 */ cpu->r[26] = 0x101D0000u;
|
|
/* 028F334C */ cpu->r[12] = cpu->r[12] + 0xFFFFCDC4u;
|
|
/* 028F3350 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F3354 */ cpu->r[27] = 0x00000000u;
|
|
/* 028F3358 */ _t5 = cpu->r[28] + 0x00000014u;
|
|
/* 028F3358 */ rbrew_write32(cpu->mem, _t5, cpu->r[12]);
|
|
/* 028F335C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F335C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F335C */ if (_t7) goto L_028F33C8; else goto L_028F3360;
|
|
L_028F3360: ; // 0x28f3360
|
|
/* 028F3360 */ _t8 = cpu->r[28] + 0x00000004u;
|
|
/* 028F3360 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F3364 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F3368 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028F336C */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F336C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F336C */ if (_t10) goto L_028F3370; else goto L_028F33A4;
|
|
L_028F3370: ; // 0x28f3370
|
|
/* 028F3370 */ cpu->r[31] = 0x00000000u;
|
|
L_028F3374: ; // 0x28f3374
|
|
/* 028F3374 */ cpu->r[3] = cpu->r[4] + cpu->r[31];
|
|
/* 028F3378 */ _t11 = cpu->r[3] + 0x0000007Cu;
|
|
/* 028F3378 */ cpu->r[5] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F337C */ _t12 = cpu->r[5] + 0x0000000Cu;
|
|
/* 028F337C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F3380 */ cpu->ctr = cpu->r[0];
|
|
/* 028F3384 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F3388 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F338C */ _t13 = cpu->r[28] + 0x00000004u;
|
|
/* 028F338C */ cpu->r[4] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F3390 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028F3394 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F3398 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[4]);
|
|
/* 028F339C */ _t14 = cpu->r[28] + 0x00000008u;
|
|
/* 028F339C */ cpu->r[4] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F33A0 */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F33A0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F33A0 */ if (_t16) goto L_028F3374; else goto L_028F33A4;
|
|
L_028F33A4: ; // 0x28f33a4
|
|
/* 028F33A4 */ _t17 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 028F33A4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F33A8 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F33AC */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F33AC */ cpu->r[8] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F33B0 */ _t19 = cpu->r[8] + 0x0000003Cu;
|
|
/* 028F33B0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F33B4 */ cpu->ctr = cpu->r[9];
|
|
/* 028F33B8 */ _t20 = cpu->r[28] + 0x00000008u;
|
|
/* 028F33B8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F33BC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F33C0 */ _t21 = cpu->r[28] + 0x00000004u;
|
|
/* 028F33C0 */ rbrew_write32(cpu->mem, _t21, cpu->r[27]);
|
|
/* 028F33C4 */ _t22 = cpu->r[28] + 0x00000008u;
|
|
/* 028F33C4 */ rbrew_write32(cpu->mem, _t22, cpu->r[27]);
|
|
L_028F33C8: ; // 0x28f33c8
|
|
/* 028F33C8 */ _t23 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028F33C8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F33CC */ _t24 = cpu->r[28] + 0x00000010u;
|
|
/* 028F33CC */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F33D0 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000001Cu);
|
|
/* 028F33D4 */ cpu->r[30] = cpu->r[31] + cpu->r[10];
|
|
/* 028F33D8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F33DC */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F33DC */ _t26 = _t25 & 0x00000001u;
|
|
/* 028F33DC */ if (_t26) goto L_028F346C; else goto L_028F33E0;
|
|
L_028F33E0: ; // 0x28f33e0
|
|
/* 028F33E0 */ cpu->r[27] = 0x00000000u;
|
|
L_028F33E4: ; // 0x28f33e4
|
|
/* 028F33E4 */ _t27 = cpu->r[31] + 0x00000014u;
|
|
/* 028F33E4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F33E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F33EC */ cpu->r[24] = cpu->r[31] + 0x00000010u;
|
|
/* 028F33F0 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F33F0 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028F33F0 */ if (_t29) goto L_028F345C; else goto L_028F33F4;
|
|
L_028F33F4: ; // 0x28f33f4
|
|
/* 028F33F4 */ _t30 = cpu->r[24] + 0x00000000u;
|
|
/* 028F33F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F33F8 */ cpu->r[25] = 0x00000000u;
|
|
/* 028F33FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[0]);
|
|
/* 028F3400 */ _t31 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F3400 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028F3400 */ if (_t32) goto L_028F3404; else goto L_028F3438;
|
|
L_028F3404: ; // 0x28f3404
|
|
/* 028F3404 */ cpu->r[23] = 0x00000000u;
|
|
L_028F3408: ; // 0x28f3408
|
|
/* 028F3408 */ cpu->r[3] = cpu->r[4] + cpu->r[23];
|
|
/* 028F340C */ _t33 = cpu->r[3] + 0x00000004u;
|
|
/* 028F340C */ cpu->r[12] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F3410 */ _t34 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028F3410 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F3414 */ cpu->ctr = cpu->r[0];
|
|
/* 028F3418 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F341C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F3420 */ _t35 = cpu->r[24] + 0x00000000u;
|
|
/* 028F3420 */ cpu->r[5] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F3424 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 028F3428 */ cpu->r[23] = cpu->r[23] + 0x00000008u;
|
|
/* 028F342C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[5]);
|
|
/* 028F3430 */ _t36 = cpu->r[24] + 0x00000004u;
|
|
/* 028F3430 */ cpu->r[4] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F3434 */ _t37 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F3434 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028F3434 */ if (_t38) goto L_028F3408; else goto L_028F3438;
|
|
L_028F3438: ; // 0x28f3438
|
|
/* 028F3438 */ _t39 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 028F3438 */ cpu->r[3] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F343C */ Gambit_fn_02826B90(cpu);
|
|
/* 028F3440 */ _t40 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F3440 */ cpu->r[7] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028F3444 */ _t41 = cpu->r[7] + 0x0000003Cu;
|
|
/* 028F3444 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F3448 */ cpu->ctr = cpu->r[0];
|
|
/* 028F344C */ _t42 = cpu->r[24] + 0x00000004u;
|
|
/* 028F344C */ cpu->r[4] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F3450 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F3454 */ _t43 = cpu->r[24] + 0x00000000u;
|
|
/* 028F3454 */ rbrew_write32(cpu->mem, _t43, cpu->r[27]);
|
|
/* 028F3458 */ _t44 = cpu->r[24] + 0x00000004u;
|
|
/* 028F3458 */ rbrew_write32(cpu->mem, _t44, cpu->r[27]);
|
|
L_028F345C: ; // 0x28f345c
|
|
/* 028F345C */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F3460 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3464 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3464 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028F3464 */ if (_t46) goto L_028F3468; else goto L_028F33E4;
|
|
L_028F3468: ; // 0x28f3468
|
|
/* 028F3468 */ _t47 = cpu->r[28] + 0x00000010u;
|
|
/* 028F3468 */ cpu->r[31] = rbrew_read32(cpu->mem, _t47);
|
|
L_028F346C: ; // 0x28f346c
|
|
/* 028F346C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F3470 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3470 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F3470 */ if (_t49) goto L_028F34A4; else goto L_028F3474;
|
|
L_028F3474: ; // 0x28f3474
|
|
/* 028F3474 */ _t50 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028F3474 */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F3478 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F347C */ _t51 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 028F347C */ cpu->r[3] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F3480 */ cpu->r[4] = cpu->r[31];
|
|
/* 028F3484 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F3488 */ _t52 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F3488 */ cpu->r[9] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028F348C */ _t53 = cpu->r[9] + 0x0000003Cu;
|
|
/* 028F348C */ cpu->r[10] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028F3490 */ cpu->ctr = cpu->r[10];
|
|
/* 028F3494 */ _t54 = cpu->r[28] + 0x00000010u;
|
|
/* 028F3494 */ cpu->r[4] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028F3498 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F349C */ _t55 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028F349C */ rbrew_write32(cpu->mem, _t55, cpu->r[27]);
|
|
/* 028F34A0 */ _t56 = cpu->r[28] + 0x00000010u;
|
|
/* 028F34A0 */ rbrew_write32(cpu->mem, _t56, cpu->r[27]);
|
|
L_028F34A4: ; // 0x28f34a4
|
|
/* 028F34A4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F34A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F34A8 */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F34A8 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028F34A8 */ if (_t58) goto L_028F34B4; else goto L_028F34AC;
|
|
L_028F34AC: ; // 0x28f34ac
|
|
/* 028F34AC */ cpu->r[3] = cpu->r[28];
|
|
/* 028F34B0 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F34B4: ; // 0x28f34b4
|
|
/* 028F34B4 */ /* nop */
|
|
/* 028F34B8 */ _t59 = cpu->r[1] + 0x00000034u;
|
|
/* 028F34B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028F34BC */ cpu->lr = cpu->r[0];
|
|
/* 028F34C0 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028F34C4 */ return;
|
|
}
|
|
|
|
// fn_028F3328 @ 0x28f3328
|
|
void Gambit_fn_028F3328(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59;
|
|
|
|
L_028F3328: ; // 0x28f3328
|
|
/* 028F3328 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028F3328 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3328 */ cpu->r[1] = _t0;
|
|
/* 028F332C */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 028F332C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F3330 */ /* nop */
|
|
/* 028F3334 */ cpu->r[28] = cpu->r[3];
|
|
/* 028F3334 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F3338 */ cpu->r[29] = cpu->r[4];
|
|
/* 028F333C */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F333C */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F333C */ if (_t3) goto L_028F34B4; else goto L_028F3340;
|
|
L_028F3340: ; // 0x28f3340
|
|
/* 028F3340 */ _t4 = cpu->r[28] + 0x00000008u;
|
|
/* 028F3340 */ cpu->r[4] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F3344 */ cpu->r[12] = 0x10140000u;
|
|
/* 028F3348 */ cpu->r[26] = 0x101D0000u;
|
|
/* 028F334C */ cpu->r[12] = cpu->r[12] + 0xFFFFCDC4u;
|
|
/* 028F3350 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F3354 */ cpu->r[27] = 0x00000000u;
|
|
/* 028F3358 */ _t5 = cpu->r[28] + 0x00000014u;
|
|
/* 028F3358 */ rbrew_write32(cpu->mem, _t5, cpu->r[12]);
|
|
/* 028F335C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F335C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F335C */ if (_t7) goto L_028F33C8; else goto L_028F3360;
|
|
L_028F3360: ; // 0x28f3360
|
|
/* 028F3360 */ _t8 = cpu->r[28] + 0x00000004u;
|
|
/* 028F3360 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F3364 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F3368 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028F336C */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F336C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F336C */ if (_t10) goto L_028F3370; else goto L_028F33A4;
|
|
L_028F3370: ; // 0x28f3370
|
|
/* 028F3370 */ cpu->r[31] = 0x00000000u;
|
|
L_028F3374: ; // 0x28f3374
|
|
/* 028F3374 */ cpu->r[3] = cpu->r[4] + cpu->r[31];
|
|
/* 028F3378 */ _t11 = cpu->r[3] + 0x0000007Cu;
|
|
/* 028F3378 */ cpu->r[5] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F337C */ _t12 = cpu->r[5] + 0x0000000Cu;
|
|
/* 028F337C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F3380 */ cpu->ctr = cpu->r[0];
|
|
/* 028F3384 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F3388 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F338C */ _t13 = cpu->r[28] + 0x00000004u;
|
|
/* 028F338C */ cpu->r[4] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F3390 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028F3394 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F3398 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[4]);
|
|
/* 028F339C */ _t14 = cpu->r[28] + 0x00000008u;
|
|
/* 028F339C */ cpu->r[4] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F33A0 */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F33A0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F33A0 */ if (_t16) goto L_028F3374; else goto L_028F33A4;
|
|
L_028F33A4: ; // 0x28f33a4
|
|
/* 028F33A4 */ _t17 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 028F33A4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F33A8 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F33AC */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F33AC */ cpu->r[8] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F33B0 */ _t19 = cpu->r[8] + 0x0000003Cu;
|
|
/* 028F33B0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F33B4 */ cpu->ctr = cpu->r[9];
|
|
/* 028F33B8 */ _t20 = cpu->r[28] + 0x00000008u;
|
|
/* 028F33B8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F33BC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F33C0 */ _t21 = cpu->r[28] + 0x00000004u;
|
|
/* 028F33C0 */ rbrew_write32(cpu->mem, _t21, cpu->r[27]);
|
|
/* 028F33C4 */ _t22 = cpu->r[28] + 0x00000008u;
|
|
/* 028F33C4 */ rbrew_write32(cpu->mem, _t22, cpu->r[27]);
|
|
L_028F33C8: ; // 0x28f33c8
|
|
/* 028F33C8 */ _t23 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028F33C8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F33CC */ _t24 = cpu->r[28] + 0x00000010u;
|
|
/* 028F33CC */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F33D0 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000001Cu);
|
|
/* 028F33D4 */ cpu->r[30] = cpu->r[31] + cpu->r[10];
|
|
/* 028F33D8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F33DC */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F33DC */ _t26 = _t25 & 0x00000001u;
|
|
/* 028F33DC */ if (_t26) goto L_028F346C; else goto L_028F33E0;
|
|
L_028F33E0: ; // 0x28f33e0
|
|
/* 028F33E0 */ cpu->r[27] = 0x00000000u;
|
|
L_028F33E4: ; // 0x28f33e4
|
|
/* 028F33E4 */ _t27 = cpu->r[31] + 0x00000014u;
|
|
/* 028F33E4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F33E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F33EC */ cpu->r[24] = cpu->r[31] + 0x00000010u;
|
|
/* 028F33F0 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F33F0 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028F33F0 */ if (_t29) goto L_028F345C; else goto L_028F33F4;
|
|
L_028F33F4: ; // 0x28f33f4
|
|
/* 028F33F4 */ _t30 = cpu->r[24] + 0x00000000u;
|
|
/* 028F33F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F33F8 */ cpu->r[25] = 0x00000000u;
|
|
/* 028F33FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[0]);
|
|
/* 028F3400 */ _t31 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F3400 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028F3400 */ if (_t32) goto L_028F3404; else goto L_028F3438;
|
|
L_028F3404: ; // 0x28f3404
|
|
/* 028F3404 */ cpu->r[23] = 0x00000000u;
|
|
L_028F3408: ; // 0x28f3408
|
|
/* 028F3408 */ cpu->r[3] = cpu->r[4] + cpu->r[23];
|
|
/* 028F340C */ _t33 = cpu->r[3] + 0x00000004u;
|
|
/* 028F340C */ cpu->r[12] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F3410 */ _t34 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028F3410 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F3414 */ cpu->ctr = cpu->r[0];
|
|
/* 028F3418 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F341C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F3420 */ _t35 = cpu->r[24] + 0x00000000u;
|
|
/* 028F3420 */ cpu->r[5] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F3424 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 028F3428 */ cpu->r[23] = cpu->r[23] + 0x00000008u;
|
|
/* 028F342C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[5]);
|
|
/* 028F3430 */ _t36 = cpu->r[24] + 0x00000004u;
|
|
/* 028F3430 */ cpu->r[4] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F3434 */ _t37 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F3434 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028F3434 */ if (_t38) goto L_028F3408; else goto L_028F3438;
|
|
L_028F3438: ; // 0x28f3438
|
|
/* 028F3438 */ _t39 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 028F3438 */ cpu->r[3] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F343C */ Gambit_fn_02826B90(cpu);
|
|
/* 028F3440 */ _t40 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F3440 */ cpu->r[7] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028F3444 */ _t41 = cpu->r[7] + 0x0000003Cu;
|
|
/* 028F3444 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F3448 */ cpu->ctr = cpu->r[0];
|
|
/* 028F344C */ _t42 = cpu->r[24] + 0x00000004u;
|
|
/* 028F344C */ cpu->r[4] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F3450 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F3454 */ _t43 = cpu->r[24] + 0x00000000u;
|
|
/* 028F3454 */ rbrew_write32(cpu->mem, _t43, cpu->r[27]);
|
|
/* 028F3458 */ _t44 = cpu->r[24] + 0x00000004u;
|
|
/* 028F3458 */ rbrew_write32(cpu->mem, _t44, cpu->r[27]);
|
|
L_028F345C: ; // 0x28f345c
|
|
/* 028F345C */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F3460 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3464 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3464 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028F3464 */ if (_t46) goto L_028F3468; else goto L_028F33E4;
|
|
L_028F3468: ; // 0x28f3468
|
|
/* 028F3468 */ _t47 = cpu->r[28] + 0x00000010u;
|
|
/* 028F3468 */ cpu->r[31] = rbrew_read32(cpu->mem, _t47);
|
|
L_028F346C: ; // 0x28f346c
|
|
/* 028F346C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F3470 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3470 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F3470 */ if (_t49) goto L_028F34A4; else goto L_028F3474;
|
|
L_028F3474: ; // 0x28f3474
|
|
/* 028F3474 */ _t50 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028F3474 */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F3478 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F347C */ _t51 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 028F347C */ cpu->r[3] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F3480 */ cpu->r[4] = cpu->r[31];
|
|
/* 028F3484 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F3488 */ _t52 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F3488 */ cpu->r[9] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028F348C */ _t53 = cpu->r[9] + 0x0000003Cu;
|
|
/* 028F348C */ cpu->r[10] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028F3490 */ cpu->ctr = cpu->r[10];
|
|
/* 028F3494 */ _t54 = cpu->r[28] + 0x00000010u;
|
|
/* 028F3494 */ cpu->r[4] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028F3498 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F349C */ _t55 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028F349C */ rbrew_write32(cpu->mem, _t55, cpu->r[27]);
|
|
/* 028F34A0 */ _t56 = cpu->r[28] + 0x00000010u;
|
|
/* 028F34A0 */ rbrew_write32(cpu->mem, _t56, cpu->r[27]);
|
|
L_028F34A4: ; // 0x28f34a4
|
|
/* 028F34A4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F34A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F34A8 */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F34A8 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028F34A8 */ if (_t58) goto L_028F34B4; else goto L_028F34AC;
|
|
L_028F34AC: ; // 0x28f34ac
|
|
/* 028F34AC */ cpu->r[3] = cpu->r[28];
|
|
/* 028F34B0 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F34B4: ; // 0x28f34b4
|
|
/* 028F34B4 */ /* nop */
|
|
/* 028F34B8 */ _t59 = cpu->r[1] + 0x00000034u;
|
|
/* 028F34B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028F34BC */ cpu->lr = cpu->r[0];
|
|
/* 028F34C0 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028F34C4 */ return;
|
|
}
|
|
|
|
// fn_028F34C8 @ 0x28f34c8
|
|
void Gambit_fn_028F34C8(CPUState* 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_028F34C8: ; // 0x28f34c8
|
|
/* 028F34C8 */ cpu->r[0] = cpu->lr;
|
|
/* 028F34CC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F34CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F34CC */ cpu->r[1] = _t0;
|
|
/* 028F34D0 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028F34D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F34D4 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F34D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F34D8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F34D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F34DC */ cpu->r[31] = cpu->r[4];
|
|
/* 028F34E0 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F34E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028F34E4 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F34E4 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F34E8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F34E8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F34E8 */ if (_t6) goto L_028F356C; else goto L_028F34EC;
|
|
L_028F34EC: ; // 0x28f34ec
|
|
/* 028F34EC */ cpu->r[0] = 0x10140000u;
|
|
/* 028F34F0 */ cpu->r[0] = cpu->r[0] + 0xFFFFCDB4u;
|
|
/* 028F34F4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F34F8 */ _t7 = cpu->r[30] + 0x0000007Cu;
|
|
/* 028F34F8 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028F34FC */ Gambit_fn_028F2FCC(cpu);
|
|
/* 028F3500 */ Gambit_fn_028F2FE4(cpu);
|
|
/* 028F3504 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F3508 */ Gambit_fn_028F30B4(cpu);
|
|
/* 028F350C */ cpu->r[3] = cpu->r[30];
|
|
/* 028F3510 */ Gambit_fn_028F3184(cpu);
|
|
/* 028F3514 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F3518 */ Gambit_fn_028F3254(cpu);
|
|
/* 028F351C */ _t8 = cpu->r[30] + 0x00000002u;
|
|
/* 028F351C */ cpu->r[0] = rbrew_read16(cpu->mem, _t8);
|
|
/* 028F3520 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3524 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3524 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F3524 */ if (_t10) goto L_028F3528; else goto L_028F3550;
|
|
L_028F3528: ; // 0x28f3528
|
|
/* 028F3528 */ _t11 = cpu->r[30] + 0x00000078u;
|
|
/* 028F3528 */ cpu->r[29] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F352C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F3530 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3530 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F3530 */ if (_t13) goto L_028F3548; else goto L_028F3534;
|
|
L_028F3534: ; // 0x28f3534
|
|
/* 028F3534 */ cpu->r[3] = cpu->r[29] + 0x00000008u;
|
|
/* 028F3538 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F353C */ Gambit_fn_028F3324(cpu);
|
|
/* 028F3540 */ cpu->r[3] = cpu->r[29];
|
|
/* 028F3544 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F3548: ; // 0x28f3548
|
|
/* 028F3548 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F354C */ _t14 = cpu->r[30] + 0x00000078u;
|
|
/* 028F354C */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
L_028F3550: ; // 0x28f3550
|
|
/* 028F3550 */ cpu->r[3] = cpu->r[30] + 0x00000004u;
|
|
/* 028F3554 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F3558 */ Gambit_fn_028EFB34(cpu);
|
|
/* 028F355C */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F355C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3560 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3560 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F3560 */ if (_t16) goto L_028F356C; else goto L_028F3564;
|
|
L_028F3564: ; // 0x28f3564
|
|
/* 028F3564 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F3568 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F356C: ; // 0x28f356c
|
|
/* 028F356C */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F356C */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F3570 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3570 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F3574 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3574 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F3578 */ cpu->lr = cpu->r[0];
|
|
/* 028F357C */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028F357C */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F3580 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F3584 */ return;
|
|
}
|
|
|
|
// fn_028F34CC @ 0x28f34cc
|
|
void Gambit_fn_028F34CC(CPUState* 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_028F34CC: ; // 0x28f34cc
|
|
/* 028F34CC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F34CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F34CC */ cpu->r[1] = _t0;
|
|
/* 028F34D0 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028F34D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F34D4 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F34D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F34D8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F34D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F34DC */ cpu->r[31] = cpu->r[4];
|
|
/* 028F34E0 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F34E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028F34E4 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F34E4 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F34E8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F34E8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F34E8 */ if (_t6) goto L_028F356C; else goto L_028F34EC;
|
|
L_028F34EC: ; // 0x28f34ec
|
|
/* 028F34EC */ cpu->r[0] = 0x10140000u;
|
|
/* 028F34F0 */ cpu->r[0] = cpu->r[0] + 0xFFFFCDB4u;
|
|
/* 028F34F4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F34F8 */ _t7 = cpu->r[30] + 0x0000007Cu;
|
|
/* 028F34F8 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028F34FC */ Gambit_fn_028F2FCC(cpu);
|
|
/* 028F3500 */ Gambit_fn_028F2FE4(cpu);
|
|
/* 028F3504 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F3508 */ Gambit_fn_028F30B4(cpu);
|
|
/* 028F350C */ cpu->r[3] = cpu->r[30];
|
|
/* 028F3510 */ Gambit_fn_028F3184(cpu);
|
|
/* 028F3514 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F3518 */ Gambit_fn_028F3254(cpu);
|
|
/* 028F351C */ _t8 = cpu->r[30] + 0x00000002u;
|
|
/* 028F351C */ cpu->r[0] = rbrew_read16(cpu->mem, _t8);
|
|
/* 028F3520 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3524 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3524 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F3524 */ if (_t10) goto L_028F3528; else goto L_028F3550;
|
|
L_028F3528: ; // 0x28f3528
|
|
/* 028F3528 */ _t11 = cpu->r[30] + 0x00000078u;
|
|
/* 028F3528 */ cpu->r[29] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F352C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F3530 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3530 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F3530 */ if (_t13) goto L_028F3548; else goto L_028F3534;
|
|
L_028F3534: ; // 0x28f3534
|
|
/* 028F3534 */ cpu->r[3] = cpu->r[29] + 0x00000008u;
|
|
/* 028F3538 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F353C */ Gambit_fn_028F3324(cpu);
|
|
/* 028F3540 */ cpu->r[3] = cpu->r[29];
|
|
/* 028F3544 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F3548: ; // 0x28f3548
|
|
/* 028F3548 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F354C */ _t14 = cpu->r[30] + 0x00000078u;
|
|
/* 028F354C */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
L_028F3550: ; // 0x28f3550
|
|
/* 028F3550 */ cpu->r[3] = cpu->r[30] + 0x00000004u;
|
|
/* 028F3554 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F3558 */ Gambit_fn_028EFB34(cpu);
|
|
/* 028F355C */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F355C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3560 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3560 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F3560 */ if (_t16) goto L_028F356C; else goto L_028F3564;
|
|
L_028F3564: ; // 0x28f3564
|
|
/* 028F3564 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F3568 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F356C: ; // 0x28f356c
|
|
/* 028F356C */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F356C */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F3570 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3570 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F3574 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3574 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F3578 */ cpu->lr = cpu->r[0];
|
|
/* 028F357C */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028F357C */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F3580 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F3584 */ return;
|
|
}
|
|
|
|
// fn_028F3588 @ 0x28f3588
|
|
void Gambit_fn_028F3588(CPUState* cpu) {
|
|
uint32_t _t0, _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_028F3588: ; // 0x28f3588
|
|
/* 028F3588 */ cpu->r[0] = cpu->lr;
|
|
/* 028F358C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F358C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F358C */ cpu->r[1] = _t0;
|
|
/* 028F3590 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3590 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F3594 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F3594 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F3598 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F3598 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F359C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F359C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F35A0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F35A0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F35A0 */ if (_t5) goto L_028F35A4; else goto L_028F35B4;
|
|
L_028F35A4: ; // 0x28f35a4
|
|
/* 028F35A4 */ cpu->r[3] = 0x00000018u;
|
|
/* 028F35A8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F35AC */ cpu->r[31] = cpu->r[3];
|
|
/* 028F35AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F35B0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F35B0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F35B0 */ if (_t7) goto L_028F3608; else goto L_028F35B4;
|
|
L_028F35B4: ; // 0x28f35b4
|
|
/* 028F35B4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F35B8 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F35BC */ cpu->r[0] = cpu->r[0] + 0xFFFFCDC4u;
|
|
/* 028F35C0 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028F35C0 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 028F35C4 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 028F35C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F35C8 */ _t9 = cpu->r[31] + 0x00000014u;
|
|
/* 028F35C8 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028F35CC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F35CC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F35CC */ if (_t11) goto L_028F35D0; else goto L_028F35E0;
|
|
L_028F35D0: ; // 0x28f35d0
|
|
/* 028F35D0 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F35D4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F35D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F35DC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F35DC */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F35DC */ if (_t13) goto L_028F35E8; else goto L_028F35E0;
|
|
L_028F35E0: ; // 0x28f35e0
|
|
/* 028F35E0 */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 028F35E0 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 028F35E4 */ _t15 = cpu->r[3] + 0x00000000u;
|
|
/* 028F35E4 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
L_028F35E8: ; // 0x28f35e8
|
|
/* 028F35E8 */ cpu->r[3] = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F35E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F35EC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F35EC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F35EC */ if (_t17) goto L_028F35F0; else goto L_028F3600;
|
|
L_028F35F0: ; // 0x28f35f0
|
|
/* 028F35F0 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F35F4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F35F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F35FC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F35FC */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F35FC */ if (_t19) goto L_028F3608; else goto L_028F3600;
|
|
L_028F3600: ; // 0x28f3600
|
|
/* 028F3600 */ _t20 = cpu->r[3] + 0x00000004u;
|
|
/* 028F3600 */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
/* 028F3604 */ _t21 = cpu->r[3] + 0x00000000u;
|
|
/* 028F3604 */ rbrew_write32(cpu->mem, _t21, cpu->r[30]);
|
|
L_028F3608: ; // 0x28f3608
|
|
/* 028F3608 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3608 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F360C */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3610 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3610 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F3614 */ cpu->lr = cpu->r[0];
|
|
/* 028F3618 */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 028F3618 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F361C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F3620 */ return;
|
|
}
|
|
|
|
// fn_028F358C @ 0x28f358c
|
|
void Gambit_fn_028F358C(CPUState* cpu) {
|
|
uint32_t _t0, _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_028F358C: ; // 0x28f358c
|
|
/* 028F358C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F358C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F358C */ cpu->r[1] = _t0;
|
|
/* 028F3590 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3590 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F3594 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F3594 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F3598 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F3598 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F359C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F359C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F35A0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F35A0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F35A0 */ if (_t5) goto L_028F35A4; else goto L_028F35B4;
|
|
L_028F35A4: ; // 0x28f35a4
|
|
/* 028F35A4 */ cpu->r[3] = 0x00000018u;
|
|
/* 028F35A8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F35AC */ cpu->r[31] = cpu->r[3];
|
|
/* 028F35AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F35B0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F35B0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F35B0 */ if (_t7) goto L_028F3608; else goto L_028F35B4;
|
|
L_028F35B4: ; // 0x28f35b4
|
|
/* 028F35B4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F35B8 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F35BC */ cpu->r[0] = cpu->r[0] + 0xFFFFCDC4u;
|
|
/* 028F35C0 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028F35C0 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 028F35C4 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 028F35C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F35C8 */ _t9 = cpu->r[31] + 0x00000014u;
|
|
/* 028F35C8 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028F35CC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F35CC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F35CC */ if (_t11) goto L_028F35D0; else goto L_028F35E0;
|
|
L_028F35D0: ; // 0x28f35d0
|
|
/* 028F35D0 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F35D4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F35D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F35DC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F35DC */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F35DC */ if (_t13) goto L_028F35E8; else goto L_028F35E0;
|
|
L_028F35E0: ; // 0x28f35e0
|
|
/* 028F35E0 */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 028F35E0 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 028F35E4 */ _t15 = cpu->r[3] + 0x00000000u;
|
|
/* 028F35E4 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
L_028F35E8: ; // 0x28f35e8
|
|
/* 028F35E8 */ cpu->r[3] = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F35E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F35EC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F35EC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F35EC */ if (_t17) goto L_028F35F0; else goto L_028F3600;
|
|
L_028F35F0: ; // 0x28f35f0
|
|
/* 028F35F0 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F35F4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F35F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F35FC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F35FC */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F35FC */ if (_t19) goto L_028F3608; else goto L_028F3600;
|
|
L_028F3600: ; // 0x28f3600
|
|
/* 028F3600 */ _t20 = cpu->r[3] + 0x00000004u;
|
|
/* 028F3600 */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
/* 028F3604 */ _t21 = cpu->r[3] + 0x00000000u;
|
|
/* 028F3604 */ rbrew_write32(cpu->mem, _t21, cpu->r[30]);
|
|
L_028F3608: ; // 0x28f3608
|
|
/* 028F3608 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3608 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F360C */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3610 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3610 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F3614 */ cpu->lr = cpu->r[0];
|
|
/* 028F3618 */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 028F3618 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F361C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F3620 */ return;
|
|
}
|
|
|
|
// fn_028F3624 @ 0x28f3624
|
|
void Gambit_fn_028F3624(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48;
|
|
|
|
L_028F3624: ; // 0x28f3624
|
|
/* 028F3624 */ cpu->r[0] = cpu->lr;
|
|
/* 028F3628 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F3628 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3628 */ cpu->r[1] = _t0;
|
|
/* 028F362C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F362C */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028F3630 */ cpu->r[28] = cpu->r[4];
|
|
/* 028F3634 */ cpu->r[4] = cpu->r[5];
|
|
/* 028F3638 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F363C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F363C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F3640 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3640 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028F3644 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F3648 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3648 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028F364C */ cpu->r[3] = 0x00000034u;
|
|
/* 028F3650 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3650 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F3654 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028F3658 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F3658 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F365C */ cpu->r[29] = 0x00000000u;
|
|
/* 028F3660 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3660 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F3660 */ if (_t7) goto L_028F36E0; else goto L_028F3664;
|
|
L_028F3664: ; // 0x28f3664
|
|
/* 028F3664 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3668 */ cpu->r[4] = 0x00000034u;
|
|
/* 028F366C */ Gambit_fn_02C89380(cpu);
|
|
/* 028F3670 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3670 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3674 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3674 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F3674 */ if (_t9) goto L_028F3678; else goto L_028F3688;
|
|
L_028F3678: ; // 0x28f3678
|
|
/* 028F3678 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F367C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F3680 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3684 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3684 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F3684 */ if (_t11) goto L_028F36A0; else goto L_028F3688;
|
|
L_028F3688: ; // 0x28f3688
|
|
/* 028F3688 */ cpu->r[7] = 0x10140000u;
|
|
/* 028F368C */ cpu->r[8] = 0x10110000u;
|
|
/* 028F3690 */ cpu->r[7] = cpu->r[7] + 0xFFFFCD6Cu;
|
|
/* 028F3694 */ cpu->r[8] = cpu->r[8] + 0x00007399u;
|
|
/* 028F3698 */ _t12 = cpu->r[3] + 0x00000004u;
|
|
/* 028F3698 */ rbrew_write32(cpu->mem, _t12, cpu->r[7]);
|
|
/* 028F369C */ _t13 = cpu->r[3] + 0x00000000u;
|
|
/* 028F369C */ rbrew_write32(cpu->mem, _t13, cpu->r[8]);
|
|
L_028F36A0: ; // 0x28f36a0
|
|
/* 028F36A0 */ cpu->r[3] = cpu->r[31] + 0x00000008u;
|
|
/* 028F36A4 */ Gambit_fn_028F3588(cpu);
|
|
/* 028F36A8 */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F36A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F36AC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F36AC */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F36AC */ if (_t15) goto L_028F36B0; else goto L_028F36C0;
|
|
L_028F36B0: ; // 0x28f36b0
|
|
/* 028F36B0 */ cpu->r[3] = 0x00000004u;
|
|
/* 028F36B4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F36B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F36BC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F36BC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F36BC */ if (_t17) goto L_028F36C4; else goto L_028F36C0;
|
|
L_028F36C0: ; // 0x28f36c0
|
|
/* 028F36C0 */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 028F36C0 */ rbrew_write32(cpu->mem, _t18, cpu->r[29]);
|
|
L_028F36C4: ; // 0x28f36c4
|
|
/* 028F36C4 */ cpu->r[3] = cpu->r[31] + 0x00000030u;
|
|
/* 028F36C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F36C8 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F36C8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F36C8 */ if (_t20) goto L_028F36CC; else goto L_028F36DC;
|
|
L_028F36CC: ; // 0x28f36cc
|
|
/* 028F36CC */ cpu->r[3] = 0x00000004u;
|
|
/* 028F36D0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F36D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F36D8 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F36D8 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F36D8 */ if (_t22) goto L_028F36E0; else goto L_028F36DC;
|
|
L_028F36DC: ; // 0x28f36dc
|
|
/* 028F36DC */ _t23 = cpu->r[3] + 0x00000000u;
|
|
/* 028F36DC */ rbrew_write32(cpu->mem, _t23, cpu->r[29]);
|
|
L_028F36E0: ; // 0x28f36e0
|
|
/* 028F36E0 */ _t24 = cpu->r[30] + 0x00000078u;
|
|
/* 028F36E0 */ rbrew_write32(cpu->mem, _t24, cpu->r[31]);
|
|
/* 028F36E4 */ _t25 = cpu->r[31] + 0x00000020u;
|
|
/* 028F36E4 */ rbrew_write32(cpu->mem, _t25, cpu->r[29]);
|
|
/* 028F36E8 */ _t26 = cpu->r[30] + 0x00000078u;
|
|
/* 028F36E8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F36EC */ _t27 = cpu->r[28] + 0x00000000u;
|
|
/* 028F36EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F36F0 */ _t28 = cpu->r[12] + 0x00000000u;
|
|
/* 028F36F0 */ rbrew_write32(cpu->mem, _t28, cpu->r[0]);
|
|
/* 028F36F4 */ _t29 = cpu->r[30] + 0x00000078u;
|
|
/* 028F36F4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F36F8 */ _t30 = cpu->r[10] + 0x00000024u;
|
|
/* 028F36F8 */ rbrew_write32(cpu->mem, _t30, cpu->r[29]);
|
|
/* 028F36FC */ _t31 = cpu->r[30] + 0x00000078u;
|
|
/* 028F36FC */ cpu->r[11] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F3700 */ _t32 = cpu->r[11] + 0x00000008u;
|
|
/* 028F3700 */ rbrew_write32(cpu->mem, _t32, cpu->r[30]);
|
|
/* 028F3704 */ _t33 = cpu->r[30] + 0x00000078u;
|
|
/* 028F3704 */ cpu->r[12] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F3708 */ cpu->r[8] = 0x00000004u;
|
|
/* 028F370C */ _t34 = cpu->r[12] + 0x00000028u;
|
|
/* 028F370C */ rbrew_write32(cpu->mem, _t34, cpu->r[8]);
|
|
/* 028F3710 */ _t35 = cpu->r[30] + 0x00000078u;
|
|
/* 028F3710 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F3714 */ _t36 = cpu->r[31] + 0x00000004u;
|
|
/* 028F3714 */ cpu->r[9] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F3718 */ _t37 = cpu->r[9] + 0x00000014u;
|
|
/* 028F3718 */ cpu->r[10] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F371C */ cpu->ctr = cpu->r[10];
|
|
/* 028F3720 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3724 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F3728 */ _t38 = cpu->r[31] + 0x00000000u;
|
|
/* 028F3728 */ cpu->r[7] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F372C */ _t39 = cpu->r[30] + 0x00000078u;
|
|
/* 028F372C */ cpu->r[11] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F3730 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F3734 */ _t40 = cpu->r[30] + 0x00000014u;
|
|
/* 028F3734 */ rbrew_write32(cpu->mem, _t40, cpu->r[7]);
|
|
/* 028F3738 */ _t41 = cpu->r[11] + 0x0000002Cu;
|
|
/* 028F3738 */ rbrew_write32(cpu->mem, _t41, cpu->r[0]);
|
|
/* 028F373C */ _t42 = cpu->r[30] + 0x00000078u;
|
|
/* 028F373C */ cpu->r[12] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F3740 */ _t43 = cpu->r[12] + 0x00000030u;
|
|
/* 028F3740 */ rbrew_write32(cpu->mem, _t43, cpu->r[0]);
|
|
/* 028F3744 */ _t44 = cpu->r[1] + 0x00000008u;
|
|
/* 028F3744 */ cpu->r[28] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028F3748 */ _t45 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3748 */ cpu->r[29] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F374C */ _t46 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F374C */ cpu->r[0] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F3750 */ _t47 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3750 */ cpu->r[30] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F3754 */ cpu->lr = cpu->r[0];
|
|
/* 028F3758 */ _t48 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3758 */ cpu->r[31] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028F375C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F3760 */ return;
|
|
}
|
|
|
|
// fn_028F3628 @ 0x28f3628
|
|
void Gambit_fn_028F3628(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48;
|
|
|
|
L_028F3628: ; // 0x28f3628
|
|
/* 028F3628 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F3628 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3628 */ cpu->r[1] = _t0;
|
|
/* 028F362C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F362C */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028F3630 */ cpu->r[28] = cpu->r[4];
|
|
/* 028F3634 */ cpu->r[4] = cpu->r[5];
|
|
/* 028F3638 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F363C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F363C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F3640 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3640 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028F3644 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F3648 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3648 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028F364C */ cpu->r[3] = 0x00000034u;
|
|
/* 028F3650 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3650 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F3654 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028F3658 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F3658 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F365C */ cpu->r[29] = 0x00000000u;
|
|
/* 028F3660 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3660 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F3660 */ if (_t7) goto L_028F36E0; else goto L_028F3664;
|
|
L_028F3664: ; // 0x28f3664
|
|
/* 028F3664 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3668 */ cpu->r[4] = 0x00000034u;
|
|
/* 028F366C */ Gambit_fn_02C89380(cpu);
|
|
/* 028F3670 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3670 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3674 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3674 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F3674 */ if (_t9) goto L_028F3678; else goto L_028F3688;
|
|
L_028F3678: ; // 0x28f3678
|
|
/* 028F3678 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F367C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F3680 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3684 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3684 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F3684 */ if (_t11) goto L_028F36A0; else goto L_028F3688;
|
|
L_028F3688: ; // 0x28f3688
|
|
/* 028F3688 */ cpu->r[7] = 0x10140000u;
|
|
/* 028F368C */ cpu->r[8] = 0x10110000u;
|
|
/* 028F3690 */ cpu->r[7] = cpu->r[7] + 0xFFFFCD6Cu;
|
|
/* 028F3694 */ cpu->r[8] = cpu->r[8] + 0x00007399u;
|
|
/* 028F3698 */ _t12 = cpu->r[3] + 0x00000004u;
|
|
/* 028F3698 */ rbrew_write32(cpu->mem, _t12, cpu->r[7]);
|
|
/* 028F369C */ _t13 = cpu->r[3] + 0x00000000u;
|
|
/* 028F369C */ rbrew_write32(cpu->mem, _t13, cpu->r[8]);
|
|
L_028F36A0: ; // 0x28f36a0
|
|
/* 028F36A0 */ cpu->r[3] = cpu->r[31] + 0x00000008u;
|
|
/* 028F36A4 */ Gambit_fn_028F3588(cpu);
|
|
/* 028F36A8 */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F36A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F36AC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F36AC */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F36AC */ if (_t15) goto L_028F36B0; else goto L_028F36C0;
|
|
L_028F36B0: ; // 0x28f36b0
|
|
/* 028F36B0 */ cpu->r[3] = 0x00000004u;
|
|
/* 028F36B4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F36B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F36BC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F36BC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F36BC */ if (_t17) goto L_028F36C4; else goto L_028F36C0;
|
|
L_028F36C0: ; // 0x28f36c0
|
|
/* 028F36C0 */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 028F36C0 */ rbrew_write32(cpu->mem, _t18, cpu->r[29]);
|
|
L_028F36C4: ; // 0x28f36c4
|
|
/* 028F36C4 */ cpu->r[3] = cpu->r[31] + 0x00000030u;
|
|
/* 028F36C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F36C8 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F36C8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F36C8 */ if (_t20) goto L_028F36CC; else goto L_028F36DC;
|
|
L_028F36CC: ; // 0x28f36cc
|
|
/* 028F36CC */ cpu->r[3] = 0x00000004u;
|
|
/* 028F36D0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F36D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F36D8 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F36D8 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F36D8 */ if (_t22) goto L_028F36E0; else goto L_028F36DC;
|
|
L_028F36DC: ; // 0x28f36dc
|
|
/* 028F36DC */ _t23 = cpu->r[3] + 0x00000000u;
|
|
/* 028F36DC */ rbrew_write32(cpu->mem, _t23, cpu->r[29]);
|
|
L_028F36E0: ; // 0x28f36e0
|
|
/* 028F36E0 */ _t24 = cpu->r[30] + 0x00000078u;
|
|
/* 028F36E0 */ rbrew_write32(cpu->mem, _t24, cpu->r[31]);
|
|
/* 028F36E4 */ _t25 = cpu->r[31] + 0x00000020u;
|
|
/* 028F36E4 */ rbrew_write32(cpu->mem, _t25, cpu->r[29]);
|
|
/* 028F36E8 */ _t26 = cpu->r[30] + 0x00000078u;
|
|
/* 028F36E8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F36EC */ _t27 = cpu->r[28] + 0x00000000u;
|
|
/* 028F36EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F36F0 */ _t28 = cpu->r[12] + 0x00000000u;
|
|
/* 028F36F0 */ rbrew_write32(cpu->mem, _t28, cpu->r[0]);
|
|
/* 028F36F4 */ _t29 = cpu->r[30] + 0x00000078u;
|
|
/* 028F36F4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F36F8 */ _t30 = cpu->r[10] + 0x00000024u;
|
|
/* 028F36F8 */ rbrew_write32(cpu->mem, _t30, cpu->r[29]);
|
|
/* 028F36FC */ _t31 = cpu->r[30] + 0x00000078u;
|
|
/* 028F36FC */ cpu->r[11] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F3700 */ _t32 = cpu->r[11] + 0x00000008u;
|
|
/* 028F3700 */ rbrew_write32(cpu->mem, _t32, cpu->r[30]);
|
|
/* 028F3704 */ _t33 = cpu->r[30] + 0x00000078u;
|
|
/* 028F3704 */ cpu->r[12] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F3708 */ cpu->r[8] = 0x00000004u;
|
|
/* 028F370C */ _t34 = cpu->r[12] + 0x00000028u;
|
|
/* 028F370C */ rbrew_write32(cpu->mem, _t34, cpu->r[8]);
|
|
/* 028F3710 */ _t35 = cpu->r[30] + 0x00000078u;
|
|
/* 028F3710 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F3714 */ _t36 = cpu->r[31] + 0x00000004u;
|
|
/* 028F3714 */ cpu->r[9] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F3718 */ _t37 = cpu->r[9] + 0x00000014u;
|
|
/* 028F3718 */ cpu->r[10] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F371C */ cpu->ctr = cpu->r[10];
|
|
/* 028F3720 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3724 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F3728 */ _t38 = cpu->r[31] + 0x00000000u;
|
|
/* 028F3728 */ cpu->r[7] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F372C */ _t39 = cpu->r[30] + 0x00000078u;
|
|
/* 028F372C */ cpu->r[11] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F3730 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F3734 */ _t40 = cpu->r[30] + 0x00000014u;
|
|
/* 028F3734 */ rbrew_write32(cpu->mem, _t40, cpu->r[7]);
|
|
/* 028F3738 */ _t41 = cpu->r[11] + 0x0000002Cu;
|
|
/* 028F3738 */ rbrew_write32(cpu->mem, _t41, cpu->r[0]);
|
|
/* 028F373C */ _t42 = cpu->r[30] + 0x00000078u;
|
|
/* 028F373C */ cpu->r[12] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F3740 */ _t43 = cpu->r[12] + 0x00000030u;
|
|
/* 028F3740 */ rbrew_write32(cpu->mem, _t43, cpu->r[0]);
|
|
/* 028F3744 */ _t44 = cpu->r[1] + 0x00000008u;
|
|
/* 028F3744 */ cpu->r[28] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028F3748 */ _t45 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3748 */ cpu->r[29] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F374C */ _t46 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F374C */ cpu->r[0] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F3750 */ _t47 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3750 */ cpu->r[30] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F3754 */ cpu->lr = cpu->r[0];
|
|
/* 028F3758 */ _t48 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3758 */ cpu->r[31] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028F375C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F3760 */ return;
|
|
}
|
|
|
|
// fn_028F3768 @ 0x28f3768
|
|
void Gambit_fn_028F3768(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _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_028F3768: ; // 0x28f3768
|
|
/* 028F3768 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F3768 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3768 */ cpu->r[1] = _t0;
|
|
/* 028F376C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F376C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F3770 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F3774 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3774 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F3778 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F3778 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F377C */ cpu->r[3] = cpu->r[5];
|
|
/* 028F3780 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3780 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F3784 */ _t4 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F3784 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F3784 */ if (_t5) goto L_028F3788; else goto L_028F381C;
|
|
L_028F3788: ; // 0x28f3788
|
|
/* 028F3788 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F378C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F378C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F378C */ if (_t7) goto L_028F3790; else goto L_028F379C;
|
|
L_028F3790: ; // 0x28f3790
|
|
/* 028F3790 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F3794 */ _t8 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F3794 */ cpu->r[3] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F3798 */ Gambit_fn_02826F20(cpu);
|
|
L_028F379C: ; // 0x28f379c
|
|
/* 028F379C */ _t9 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F379C */ cpu->r[5] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F37A0 */ _t10 = cpu->r[5] + 0x00000034u;
|
|
/* 028F37A0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F37A4 */ cpu->ctr = cpu->r[6];
|
|
/* 028F37A8 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F37AC */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000001Cu);
|
|
/* 028F37B0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F37B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F37B8 */ cpu->r[7] = cpu->r[31];
|
|
/* 028F37BC */ cpu->r[10] = 0x00000000u;
|
|
/* 028F37C0 */ _t11 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F37C0 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F37C0 */ if (_t12) goto L_028F37C8; else goto L_028F37C4;
|
|
L_028F37C4: ; // 0x28f37c4
|
|
/* 028F37C4 */ cpu->r[7] = 0x00000001u;
|
|
L_028F37C8: ; // 0x28f37c8
|
|
/* 028F37C8 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[10] * (int32_t)0x0000001Cu);
|
|
/* 028F37CC */ cpu->r[12] = 0x10110000u;
|
|
/* 028F37D0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F37D4 */ cpu->ctr = cpu->r[7];
|
|
/* 028F37D8 */ cpu->r[11] = 0x00000000u;
|
|
/* 028F37DC */ cpu->r[12] = cpu->r[12] + 0x00007399u;
|
|
/* 028F37E0 */ cpu->r[0] = cpu->r[0] + 0xFFFFCD6Cu;
|
|
L_028F37E4: ; // 0x28f37e4
|
|
/* 028F37E4 */ cpu->r[8] = cpu->r[3] + cpu->r[9];
|
|
/* 028F37E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F37E8 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F37E8 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F37E8 */ if (_t14) goto L_028F3804; else goto L_028F37EC;
|
|
L_028F37EC: ; // 0x28f37ec
|
|
/* 028F37EC */ _t15 = cpu->r[8] + 0x00000004u;
|
|
/* 028F37EC */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028F37F0 */ _t16 = cpu->r[8] + 0x00000010u;
|
|
/* 028F37F0 */ rbrew_write32(cpu->mem, _t16, cpu->r[11]);
|
|
/* 028F37F4 */ _t17 = cpu->r[8] + 0x00000014u;
|
|
/* 028F37F4 */ rbrew_write32(cpu->mem, _t17, cpu->r[11]);
|
|
/* 028F37F8 */ _t18 = cpu->r[8] + 0x00000008u;
|
|
/* 028F37F8 */ rbrew_write32(cpu->mem, _t18, cpu->r[12]);
|
|
/* 028F37FC */ _t19 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028F37FC */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028F3800 */ _t20 = cpu->r[8] + 0x00000000u;
|
|
/* 028F3800 */ rbrew_write32(cpu->mem, _t20, cpu->r[12]);
|
|
L_028F3804: ; // 0x28f3804
|
|
/* 028F3804 */ cpu->r[9] = cpu->r[9] + 0x0000001Cu;
|
|
/* 028F3808 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F3808 */ _t21 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F3808 */ _t22 = _t21 >> (0x00000002u & 31u);
|
|
/* 028F3808 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F3808 */ if (_t23) goto L_028F37E4; else goto L_028F380C;
|
|
L_028F380C: ; // 0x28f380c
|
|
/* 028F380C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3810 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3810 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F3810 */ if (_t25) goto L_028F381C; else goto L_028F3814;
|
|
L_028F3814: ; // 0x28f3814
|
|
/* 028F3814 */ _t26 = cpu->r[30] + 0x00000010u;
|
|
/* 028F3814 */ rbrew_write32(cpu->mem, _t26, cpu->r[3]);
|
|
/* 028F3818 */ _t27 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F3818 */ rbrew_write32(cpu->mem, _t27, cpu->r[31]);
|
|
L_028F381C: ; // 0x28f381c
|
|
/* 028F381C */ _t28 = cpu->r[1] + 0x00000014u;
|
|
/* 028F381C */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F3820 */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 028F3820 */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F3824 */ cpu->lr = cpu->r[0];
|
|
/* 028F3828 */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3828 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F382C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F3830 */ return;
|
|
}
|
|
|
|
// fn_028F3834 @ 0x28f3834
|
|
void Gambit_fn_028F3834(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _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_028F3764: ; // 0x28f3764
|
|
/* 028F3764 */ cpu->r[0] = cpu->lr;
|
|
/* 028F3768 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F3768 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3768 */ cpu->r[1] = _t0;
|
|
/* 028F376C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F376C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F3770 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F3774 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3774 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F3778 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F3778 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F377C */ cpu->r[3] = cpu->r[5];
|
|
/* 028F3780 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3780 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F3784 */ _t4 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F3784 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F3784 */ if (_t5) goto L_028F3788; else goto L_028F381C;
|
|
L_028F3788: ; // 0x28f3788
|
|
/* 028F3788 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F378C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F378C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F378C */ if (_t7) goto L_028F3790; else goto L_028F379C;
|
|
L_028F3790: ; // 0x28f3790
|
|
/* 028F3790 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F3794 */ _t8 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F3794 */ cpu->r[3] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F3798 */ Gambit_fn_02826F20(cpu);
|
|
L_028F379C: ; // 0x28f379c
|
|
/* 028F379C */ _t9 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F379C */ cpu->r[5] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F37A0 */ _t10 = cpu->r[5] + 0x00000034u;
|
|
/* 028F37A0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F37A4 */ cpu->ctr = cpu->r[6];
|
|
/* 028F37A8 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F37AC */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000001Cu);
|
|
/* 028F37B0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F37B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F37B8 */ cpu->r[7] = cpu->r[31];
|
|
/* 028F37BC */ cpu->r[10] = 0x00000000u;
|
|
/* 028F37C0 */ _t11 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F37C0 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F37C0 */ if (_t12) goto L_028F37C8; else goto L_028F37C4;
|
|
L_028F37C4: ; // 0x28f37c4
|
|
/* 028F37C4 */ cpu->r[7] = 0x00000001u;
|
|
L_028F37C8: ; // 0x28f37c8
|
|
/* 028F37C8 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[10] * (int32_t)0x0000001Cu);
|
|
/* 028F37CC */ cpu->r[12] = 0x10110000u;
|
|
/* 028F37D0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F37D4 */ cpu->ctr = cpu->r[7];
|
|
/* 028F37D8 */ cpu->r[11] = 0x00000000u;
|
|
/* 028F37DC */ cpu->r[12] = cpu->r[12] + 0x00007399u;
|
|
/* 028F37E0 */ cpu->r[0] = cpu->r[0] + 0xFFFFCD6Cu;
|
|
L_028F37E4: ; // 0x28f37e4
|
|
/* 028F37E4 */ cpu->r[8] = cpu->r[3] + cpu->r[9];
|
|
/* 028F37E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F37E8 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F37E8 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F37E8 */ if (_t14) goto L_028F3804; else goto L_028F37EC;
|
|
L_028F37EC: ; // 0x28f37ec
|
|
/* 028F37EC */ _t15 = cpu->r[8] + 0x00000004u;
|
|
/* 028F37EC */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028F37F0 */ _t16 = cpu->r[8] + 0x00000010u;
|
|
/* 028F37F0 */ rbrew_write32(cpu->mem, _t16, cpu->r[11]);
|
|
/* 028F37F4 */ _t17 = cpu->r[8] + 0x00000014u;
|
|
/* 028F37F4 */ rbrew_write32(cpu->mem, _t17, cpu->r[11]);
|
|
/* 028F37F8 */ _t18 = cpu->r[8] + 0x00000008u;
|
|
/* 028F37F8 */ rbrew_write32(cpu->mem, _t18, cpu->r[12]);
|
|
/* 028F37FC */ _t19 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028F37FC */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028F3800 */ _t20 = cpu->r[8] + 0x00000000u;
|
|
/* 028F3800 */ rbrew_write32(cpu->mem, _t20, cpu->r[12]);
|
|
L_028F3804: ; // 0x28f3804
|
|
/* 028F3804 */ cpu->r[9] = cpu->r[9] + 0x0000001Cu;
|
|
/* 028F3808 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F3808 */ _t21 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F3808 */ _t22 = _t21 >> (0x00000002u & 31u);
|
|
/* 028F3808 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F3808 */ if (_t23) goto L_028F37E4; else goto L_028F380C;
|
|
L_028F380C: ; // 0x28f380c
|
|
/* 028F380C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3810 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3810 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F3810 */ if (_t25) goto L_028F381C; else goto L_028F3814;
|
|
L_028F3814: ; // 0x28f3814
|
|
/* 028F3814 */ _t26 = cpu->r[30] + 0x00000010u;
|
|
/* 028F3814 */ rbrew_write32(cpu->mem, _t26, cpu->r[3]);
|
|
/* 028F3818 */ _t27 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F3818 */ rbrew_write32(cpu->mem, _t27, cpu->r[31]);
|
|
L_028F381C: ; // 0x28f381c
|
|
/* 028F381C */ _t28 = cpu->r[1] + 0x00000014u;
|
|
/* 028F381C */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F3820 */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 028F3820 */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F3824 */ cpu->lr = cpu->r[0];
|
|
/* 028F3828 */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3828 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F382C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F3830 */ return;
|
|
L_028F3834: ; // 0x28f3834
|
|
/* 028F3834 */ _t31 = cpu->r[3] + 0x00000078u;
|
|
/* 028F3834 */ cpu->r[12] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F3838 */ cpu->r[3] = cpu->r[12] + 0x00000008u;
|
|
/* 028F383C */ goto L_028F3764;
|
|
}
|
|
|
|
// fn_028F3844 @ 0x28f3844
|
|
void Gambit_fn_028F3844(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F3844: ; // 0x28f3844
|
|
/* 028F3844 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F3844 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3844 */ cpu->r[1] = _t0;
|
|
/* 028F3848 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F3848 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F384C */ cpu->r[30] = cpu->r[7];
|
|
/* 028F3850 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3850 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F3854 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3854 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F3858 */ _t4 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F3858 */ cpu->r[7] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F385C */ _t5 = cpu->r[3] + 0x00000010u;
|
|
/* 028F385C */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F3860 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[7]);
|
|
/* 028F3864 */ _t6 = cpu->r[5] + 0x00000000u;
|
|
/* 028F3864 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F3868 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F3868 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F3868 */ if (_t8) goto L_028F386C; else goto L_028F3874;
|
|
L_028F386C: ; // 0x28f386c
|
|
/* 028F386C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000001Cu);
|
|
/* 028F3870 */ cpu->r[31] = cpu->r[31] + cpu->r[9];
|
|
L_028F3874: ; // 0x28f3874
|
|
/* 028F3874 */ _t9 = cpu->r[31] + 0x00000000u;
|
|
/* 028F3874 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028F3878 */ cpu->r[9] = 0x00000001u;
|
|
/* 028F387C */ _t10 = cpu->r[6] + 0x00000000u;
|
|
/* 028F387C */ cpu->r[7] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F3880 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F3884 */ _t11 = cpu->r[31] + 0x00000018u;
|
|
/* 028F3884 */ rbrew_write16(cpu->mem, _t11, (uint16_t)cpu->r[9]);
|
|
/* 028F3888 */ cpu->r[3] = cpu->r[8];
|
|
/* 028F388C */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 028F388C */ rbrew_write32(cpu->mem, _t12, cpu->r[7]);
|
|
/* 028F3890 */ _t13 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F3890 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F3890 */ if (_t14) goto L_028F3894; else goto L_028F3914;
|
|
L_028F3894: ; // 0x28f3894
|
|
/* 028F3894 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3898 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3898 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F3898 */ if (_t16) goto L_028F389C; else goto L_028F38A8;
|
|
L_028F389C: ; // 0x28f389c
|
|
/* 028F389C */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F38A0 */ _t17 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F38A0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F38A4 */ Gambit_fn_02826F20(cpu);
|
|
L_028F38A8: ; // 0x28f38a8
|
|
/* 028F38A8 */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F38A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F38AC */ _t19 = cpu->r[12] + 0x00000034u;
|
|
/* 028F38AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F38B0 */ cpu->ctr = cpu->r[0];
|
|
/* 028F38B4 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F38B8 */ cpu->r[4] = rbrew_rlwinm(cpu->r[30], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028F38BC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F38C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F38C4 */ cpu->r[12] = cpu->r[30];
|
|
/* 028F38C8 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F38CC */ _t20 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F38CC */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F38CC */ if (_t21) goto L_028F38D4; else goto L_028F38D0;
|
|
L_028F38D0: ; // 0x28f38d0
|
|
/* 028F38D0 */ cpu->r[12] = 0x00000001u;
|
|
L_028F38D4: ; // 0x28f38d4
|
|
/* 028F38D4 */ cpu->r[8] = 0x10110000u;
|
|
/* 028F38D8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028F38DC */ cpu->ctr = cpu->r[12];
|
|
/* 028F38E0 */ cpu->r[6] = rbrew_rlwinm(cpu->r[10], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028F38E4 */ cpu->r[8] = cpu->r[8] + 0x00007399u;
|
|
/* 028F38E8 */ cpu->r[11] = cpu->r[11] + 0xFFFFCD6Cu;
|
|
L_028F38EC: ; // 0x28f38ec
|
|
/* 028F38EC */ cpu->r[10] = cpu->r[3] + cpu->r[6];
|
|
/* 028F38EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F38F0 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F38F0 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F38F0 */ if (_t23) goto L_028F38FC; else goto L_028F38F4;
|
|
L_028F38F4: ; // 0x28f38f4
|
|
/* 028F38F4 */ _t24 = cpu->r[10] + 0x00000000u;
|
|
/* 028F38F4 */ rbrew_write32(cpu->mem, _t24, cpu->r[8]);
|
|
/* 028F38F8 */ _t25 = cpu->r[10] + 0x00000004u;
|
|
/* 028F38F8 */ rbrew_write32(cpu->mem, _t25, cpu->r[11]);
|
|
L_028F38FC: ; // 0x28f38fc
|
|
/* 028F38FC */ cpu->r[6] = cpu->r[6] + 0x00000008u;
|
|
/* 028F3900 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F3900 */ _t26 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F3900 */ _t27 = _t26 >> (0x00000002u & 31u);
|
|
/* 028F3900 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F3900 */ if (_t28) goto L_028F38EC; else goto L_028F3904;
|
|
L_028F3904: ; // 0x28f3904
|
|
/* 028F3904 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3908 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3908 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F3908 */ if (_t30) goto L_028F3914; else goto L_028F390C;
|
|
L_028F390C: ; // 0x28f390c
|
|
/* 028F390C */ _t31 = cpu->r[31] + 0x00000014u;
|
|
/* 028F390C */ rbrew_write32(cpu->mem, _t31, cpu->r[3]);
|
|
/* 028F3910 */ _t32 = cpu->r[31] + 0x00000010u;
|
|
/* 028F3910 */ rbrew_write32(cpu->mem, _t32, cpu->r[30]);
|
|
L_028F3914: ; // 0x28f3914
|
|
/* 028F3914 */ _t33 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3914 */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F3918 */ _t34 = cpu->r[1] + 0x00000008u;
|
|
/* 028F3918 */ cpu->r[30] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F391C */ cpu->lr = cpu->r[0];
|
|
/* 028F3920 */ _t35 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3920 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F3924 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F3928 */ return;
|
|
}
|
|
|
|
// fn_028F392C @ 0x28f392c
|
|
void Gambit_fn_028F392C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F3840: ; // 0x28f3840
|
|
/* 028F3840 */ cpu->r[0] = cpu->lr;
|
|
/* 028F3844 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F3844 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3844 */ cpu->r[1] = _t0;
|
|
/* 028F3848 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F3848 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F384C */ cpu->r[30] = cpu->r[7];
|
|
/* 028F3850 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3850 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F3854 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3854 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F3858 */ _t4 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F3858 */ cpu->r[7] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F385C */ _t5 = cpu->r[3] + 0x00000010u;
|
|
/* 028F385C */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F3860 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[7]);
|
|
/* 028F3864 */ _t6 = cpu->r[5] + 0x00000000u;
|
|
/* 028F3864 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F3868 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F3868 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F3868 */ if (_t8) goto L_028F386C; else goto L_028F3874;
|
|
L_028F386C: ; // 0x28f386c
|
|
/* 028F386C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000001Cu);
|
|
/* 028F3870 */ cpu->r[31] = cpu->r[31] + cpu->r[9];
|
|
L_028F3874: ; // 0x28f3874
|
|
/* 028F3874 */ _t9 = cpu->r[31] + 0x00000000u;
|
|
/* 028F3874 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028F3878 */ cpu->r[9] = 0x00000001u;
|
|
/* 028F387C */ _t10 = cpu->r[6] + 0x00000000u;
|
|
/* 028F387C */ cpu->r[7] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F3880 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F3884 */ _t11 = cpu->r[31] + 0x00000018u;
|
|
/* 028F3884 */ rbrew_write16(cpu->mem, _t11, (uint16_t)cpu->r[9]);
|
|
/* 028F3888 */ cpu->r[3] = cpu->r[8];
|
|
/* 028F388C */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 028F388C */ rbrew_write32(cpu->mem, _t12, cpu->r[7]);
|
|
/* 028F3890 */ _t13 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F3890 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F3890 */ if (_t14) goto L_028F3894; else goto L_028F3914;
|
|
L_028F3894: ; // 0x28f3894
|
|
/* 028F3894 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3898 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3898 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F3898 */ if (_t16) goto L_028F389C; else goto L_028F38A8;
|
|
L_028F389C: ; // 0x28f389c
|
|
/* 028F389C */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F38A0 */ _t17 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F38A0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F38A4 */ Gambit_fn_02826F20(cpu);
|
|
L_028F38A8: ; // 0x28f38a8
|
|
/* 028F38A8 */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F38A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F38AC */ _t19 = cpu->r[12] + 0x00000034u;
|
|
/* 028F38AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F38B0 */ cpu->ctr = cpu->r[0];
|
|
/* 028F38B4 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F38B8 */ cpu->r[4] = rbrew_rlwinm(cpu->r[30], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028F38BC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F38C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F38C4 */ cpu->r[12] = cpu->r[30];
|
|
/* 028F38C8 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F38CC */ _t20 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F38CC */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F38CC */ if (_t21) goto L_028F38D4; else goto L_028F38D0;
|
|
L_028F38D0: ; // 0x28f38d0
|
|
/* 028F38D0 */ cpu->r[12] = 0x00000001u;
|
|
L_028F38D4: ; // 0x28f38d4
|
|
/* 028F38D4 */ cpu->r[8] = 0x10110000u;
|
|
/* 028F38D8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028F38DC */ cpu->ctr = cpu->r[12];
|
|
/* 028F38E0 */ cpu->r[6] = rbrew_rlwinm(cpu->r[10], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028F38E4 */ cpu->r[8] = cpu->r[8] + 0x00007399u;
|
|
/* 028F38E8 */ cpu->r[11] = cpu->r[11] + 0xFFFFCD6Cu;
|
|
L_028F38EC: ; // 0x28f38ec
|
|
/* 028F38EC */ cpu->r[10] = cpu->r[3] + cpu->r[6];
|
|
/* 028F38EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F38F0 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F38F0 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F38F0 */ if (_t23) goto L_028F38FC; else goto L_028F38F4;
|
|
L_028F38F4: ; // 0x28f38f4
|
|
/* 028F38F4 */ _t24 = cpu->r[10] + 0x00000000u;
|
|
/* 028F38F4 */ rbrew_write32(cpu->mem, _t24, cpu->r[8]);
|
|
/* 028F38F8 */ _t25 = cpu->r[10] + 0x00000004u;
|
|
/* 028F38F8 */ rbrew_write32(cpu->mem, _t25, cpu->r[11]);
|
|
L_028F38FC: ; // 0x28f38fc
|
|
/* 028F38FC */ cpu->r[6] = cpu->r[6] + 0x00000008u;
|
|
/* 028F3900 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F3900 */ _t26 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F3900 */ _t27 = _t26 >> (0x00000002u & 31u);
|
|
/* 028F3900 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F3900 */ if (_t28) goto L_028F38EC; else goto L_028F3904;
|
|
L_028F3904: ; // 0x28f3904
|
|
/* 028F3904 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3908 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3908 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F3908 */ if (_t30) goto L_028F3914; else goto L_028F390C;
|
|
L_028F390C: ; // 0x28f390c
|
|
/* 028F390C */ _t31 = cpu->r[31] + 0x00000014u;
|
|
/* 028F390C */ rbrew_write32(cpu->mem, _t31, cpu->r[3]);
|
|
/* 028F3910 */ _t32 = cpu->r[31] + 0x00000010u;
|
|
/* 028F3910 */ rbrew_write32(cpu->mem, _t32, cpu->r[30]);
|
|
L_028F3914: ; // 0x28f3914
|
|
/* 028F3914 */ _t33 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3914 */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F3918 */ _t34 = cpu->r[1] + 0x00000008u;
|
|
/* 028F3918 */ cpu->r[30] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F391C */ cpu->lr = cpu->r[0];
|
|
/* 028F3920 */ _t35 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3920 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F3924 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F3928 */ return;
|
|
L_028F392C: ; // 0x28f392c
|
|
/* 028F392C */ _t36 = cpu->r[3] + 0x00000078u;
|
|
/* 028F392C */ cpu->r[12] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F3930 */ cpu->r[3] = cpu->r[12] + 0x00000008u;
|
|
/* 028F3934 */ goto L_028F3840;
|
|
}
|
|
|
|
// fn_028F3974 @ 0x28f3974
|
|
void Gambit_fn_028F3974(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028F3938: ; // 0x28f3938
|
|
/* 028F3938 */ _t0 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F3938 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F393C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[12]);
|
|
/* 028F3940 */ _t1 = cpu->r[3] + 0x00000010u;
|
|
/* 028F3940 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028F3944 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F3944 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F3944 */ if (_t3) goto L_028F3948; else goto L_028F3950;
|
|
L_028F3948: ; // 0x28f3948
|
|
/* 028F3948 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000001Cu);
|
|
/* 028F394C */ cpu->r[12] = cpu->r[12] + cpu->r[8];
|
|
L_028F3950: ; // 0x28f3950
|
|
/* 028F3950 */ _t4 = cpu->r[12] + 0x00000010u;
|
|
/* 028F3950 */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F3954 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[9]);
|
|
/* 028F3958 */ _t5 = cpu->r[12] + 0x00000014u;
|
|
/* 028F3958 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F395C */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F395C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F395C */ if (_t7) goto L_028F3960; else goto L_028F3968;
|
|
L_028F3960: ; // 0x28f3960
|
|
/* 028F3960 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028F3964 */ cpu->r[11] = cpu->r[11] + cpu->r[0];
|
|
L_028F3968: ; // 0x28f3968
|
|
/* 028F3968 */ _t8 = cpu->r[6] + 0x00000000u;
|
|
/* 028F3968 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F396C */ _t9 = cpu->r[11] + 0x00000000u;
|
|
/* 028F396C */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028F3970 */ return;
|
|
L_028F3974: ; // 0x28f3974
|
|
/* 028F3974 */ _t10 = cpu->r[3] + 0x00000078u;
|
|
/* 028F3974 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F3978 */ cpu->r[3] = cpu->r[12] + 0x00000008u;
|
|
/* 028F397C */ goto L_028F3938;
|
|
}
|
|
|
|
// fn_028F3980 @ 0x28f3980
|
|
void Gambit_fn_028F3980(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F3980: ; // 0x28f3980
|
|
/* 028F3980 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028F3980 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3980 */ cpu->r[1] = _t0;
|
|
/* 028F3984 */ /* nop */
|
|
/* 028F3988 */ cpu->r[0] = cpu->lr;
|
|
/* 028F398C */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028F398C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F3990 */ cpu->r[28] = cpu->r[3];
|
|
/* 028F3994 */ _t2 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028F3994 */ cpu->r[6] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F3998 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000001Cu);
|
|
/* 028F399C */ _t3 = cpu->r[28] + 0x00000010u;
|
|
/* 028F399C */ cpu->r[11] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F39A0 */ cpu->r[3] = cpu->r[4];
|
|
/* 028F39A4 */ cpu->r[0] = cpu->r[11] + cpu->r[0];
|
|
/* 028F39A8 */ cpu->r[31] = 0x00000001u;
|
|
/* 028F39AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 028F39B0 */ cpu->r[12] = cpu->r[11];
|
|
/* 028F39B4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F39B4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F39B4 */ if (_t5) goto L_028F3A2C; else goto L_028F39B8;
|
|
L_028F39B8: ; // 0x28f39b8
|
|
/* 028F39B8 */ cpu->r[7] = 0x24920000u;
|
|
/* 028F39BC */ cpu->r[9] = cpu->r[11] - cpu->r[12];
|
|
/* 028F39C0 */ cpu->r[7] = cpu->r[7] + 0x00004925u;
|
|
/* 028F39C4 */ cpu->r[10] = rbrew_rlwinm(cpu->r[9], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 028F39C8 */ /* nop */
|
|
/* 028F39CC */ cpu->r[5] = cpu->r[10] + 0x00000001u;
|
|
/* 028F39D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], cpu->r[6]);
|
|
/* 028F39D4 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F39D4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F39D4 */ if (_t7) goto L_028F39D8; else goto L_028F3A18;
|
|
L_028F39D8: ; // 0x28f39d8
|
|
/* 028F39D8 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x0000001Cu);
|
|
/* 028F39DC */ _t8 = cpu->r[11] + 0x00000018u;
|
|
/* 028F39DC */ cpu->r[7] = rbrew_read16(cpu->mem, _t8);
|
|
/* 028F39E0 */ cpu->r[8] = cpu->r[11] + 0x00000018u;
|
|
L_028F39E4: ; // 0x28f39e4
|
|
/* 028F39E4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[6]);
|
|
/* 028F39E8 */ _t9 = cpu->r[28] + 0x00000010u;
|
|
/* 028F39E8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F39EC */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F39EC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F39EC */ if (_t11) goto L_028F39F0; else goto L_028F39F4;
|
|
L_028F39F0: ; // 0x28f39f0
|
|
/* 028F39F0 */ cpu->r[10] = cpu->r[10] + cpu->r[4];
|
|
L_028F39F4: ; // 0x28f39f4
|
|
/* 028F39F4 */ _t12 = cpu->r[10] + 0x00000012u;
|
|
/* 028F39F4 */ cpu->r[9] = rbrew_read16(cpu->mem, _t12);
|
|
/* 028F39F8 */ cpu->r[7] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)cpu->r[9]);
|
|
/* 028F39FC */ cpu->r[7] = rbrew_rlwinm(cpu->r[7], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028F3A00 */ _t13 = cpu->r[8] + 0x00000000u;
|
|
/* 028F3A00 */ rbrew_write16(cpu->mem, _t13, (uint16_t)cpu->r[7]);
|
|
/* 028F3A04 */ _t14 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028F3A04 */ cpu->r[6] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F3A08 */ cpu->r[5] = cpu->r[5] + 0x00000001u;
|
|
/* 028F3A0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], cpu->r[6]);
|
|
/* 028F3A10 */ cpu->r[4] = cpu->r[4] + 0x0000001Cu;
|
|
/* 028F3A14 */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F3A14 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F3A14 */ if (_t16) goto L_028F39E4; else goto L_028F3A18;
|
|
L_028F3A18: ; // 0x28f3a18
|
|
/* 028F3A18 */ _t17 = cpu->r[11] + 0x00000010u;
|
|
/* 028F3A18 */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F3A1C */ cpu->r[11] = cpu->r[11] + 0x0000001Cu;
|
|
/* 028F3A20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 028F3A24 */ cpu->r[31] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)cpu->r[10]);
|
|
/* 028F3A28 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3A28 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F3A28 */ if (_t19) goto L_028F3A2C; else goto L_028F39B8;
|
|
L_028F3A2C: ; // 0x28f3a2c
|
|
/* 028F3A2C */ cpu->r[29] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028F3A2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F3A30 */ _t20 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F3A30 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F3A30 */ if (_t21) goto L_028F3A34; else goto L_028F3A98;
|
|
L_028F3A34: ; // 0x28f3a34
|
|
/* 028F3A34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3A38 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3A38 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F3A38 */ if (_t23) goto L_028F3A3C; else goto L_028F3A48;
|
|
L_028F3A3C: ; // 0x28f3a3c
|
|
/* 028F3A3C */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F3A40 */ _t24 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F3A40 */ cpu->r[3] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F3A44 */ Gambit_fn_02826F20(cpu);
|
|
L_028F3A48: ; // 0x28f3a48
|
|
/* 028F3A48 */ _t25 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F3A48 */ cpu->r[12] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F3A4C */ _t26 = cpu->r[12] + 0x00000034u;
|
|
/* 028F3A4C */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F3A50 */ cpu->ctr = cpu->r[0];
|
|
/* 028F3A54 */ cpu->r[4] = rbrew_rlwinm(cpu->r[29], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F3A58 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F3A5C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F3A60 */ cpu->r[30] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028F3A60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F3A64 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F3A68 */ _t27 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F3A68 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F3A68 */ if (_t28) goto L_028F3A6C; else goto L_028F3A90;
|
|
L_028F3A6C: ; // 0x28f3a6c
|
|
/* 028F3A6C */ cpu->r[27] = 0x00000000u;
|
|
L_028F3A70: ; // 0x28f3a70
|
|
/* 028F3A70 */ cpu->r[3] = cpu->r[31] + cpu->r[27];
|
|
/* 028F3A70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3A74 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3A74 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F3A74 */ if (_t30) goto L_028F3A7C; else goto L_028F3A78;
|
|
L_028F3A78: ; // 0x28f3a78
|
|
/* 028F3A78 */ Gambit_fn_028F2E8C(cpu);
|
|
L_028F3A7C: ; // 0x28f3a7c
|
|
/* 028F3A7C */ cpu->r[30] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 028F3A7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F3A80 */ cpu->r[27] = cpu->r[27] + 0x00000080u;
|
|
/* 028F3A84 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3A84 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028F3A84 */ if (_t32) goto L_028F3A88; else goto L_028F3A70;
|
|
L_028F3A88: ; // 0x28f3a88
|
|
/* 028F3A88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F3A8C */ _t33 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F3A8C */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F3A8C */ if (_t34) goto L_028F3A90; else goto L_028F3A98;
|
|
L_028F3A90: ; // 0x28f3a90
|
|
/* 028F3A90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F3A94 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3A94 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F3A94 */ if (_t36) goto L_028F3A98; else goto L_028F3AB8;
|
|
L_028F3A98: ; // 0x28f3a98
|
|
/* 028F3A98 */ _t37 = cpu->r[28] + 0x00000004u;
|
|
/* 028F3A98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F3A9C */ _t38 = cpu->r[28] + 0x00000008u;
|
|
/* 028F3A9C */ cpu->r[31] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F3AA0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F3AA4 */ cpu->r[30] = cpu->r[31];
|
|
/* 028F3AA8 */ cpu->r[29] = cpu->r[31] + cpu->r[0];
|
|
/* 028F3AAC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028F3AB0 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3AB0 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028F3AB0 */ if (_t40) goto L_028F3B18; else goto L_028F3AB4;
|
|
L_028F3AB4: ; // 0x28f3ab4
|
|
/* 028F3AB4 */ goto L_028F3AD4;
|
|
L_028F3AB8: ; // 0x28f3ab8
|
|
/* 028F3AB8 */ _t41 = cpu->r[28] + 0x00000004u;
|
|
/* 028F3AB8 */ rbrew_write32(cpu->mem, _t41, cpu->r[29]);
|
|
/* 028F3ABC */ cpu->r[0] = rbrew_rlwinm(cpu->r[29], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F3AC0 */ cpu->r[30] = cpu->r[31];
|
|
/* 028F3AC4 */ _t42 = cpu->r[28] + 0x00000008u;
|
|
/* 028F3AC4 */ rbrew_write32(cpu->mem, _t42, cpu->r[31]);
|
|
/* 028F3AC8 */ cpu->r[29] = cpu->r[31] + cpu->r[0];
|
|
/* 028F3ACC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028F3AD0 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3AD0 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F3AD0 */ if (_t44) goto L_028F3B18; else goto L_028F3AD4;
|
|
L_028F3AD4: ; // 0x28f3ad4
|
|
/* 028F3AD4 */ _t45 = cpu->r[28] + 0x00000000u;
|
|
/* 028F3AD4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F3AD8 */ cpu->r[0] = cpu->r[30] - cpu->r[31];
|
|
/* 028F3ADC */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000019u, 0x00000007u, 0x0000001Fu);
|
|
/* 028F3AE0 */ _t46 = cpu->r[10] + 0x00000078u;
|
|
/* 028F3AE0 */ cpu->r[27] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F3AE4 */ cpu->r[4] = cpu->r[12] + 0x00000001u;
|
|
/* 028F3AE8 */ _t47 = cpu->r[30] + 0x00000002u;
|
|
/* 028F3AE8 */ rbrew_write16(cpu->mem, _t47, (uint16_t)cpu->r[4]);
|
|
/* 028F3AEC */ _t48 = cpu->r[30] + 0x00000078u;
|
|
/* 028F3AEC */ rbrew_write32(cpu->mem, _t48, cpu->r[27]);
|
|
/* 028F3AF0 */ _t49 = cpu->r[27] + 0x00000004u;
|
|
/* 028F3AF0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028F3AF4 */ _t50 = cpu->r[5] + 0x00000014u;
|
|
/* 028F3AF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F3AF8 */ cpu->ctr = cpu->r[0];
|
|
/* 028F3AFC */ cpu->r[3] = cpu->r[27];
|
|
/* 028F3B00 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F3B04 */ _t51 = cpu->r[27] + 0x00000000u;
|
|
/* 028F3B04 */ cpu->r[8] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F3B08 */ _t52 = cpu->r[30] + 0x00000014u;
|
|
/* 028F3B08 */ rbrew_write32(cpu->mem, _t52, cpu->r[8]);
|
|
/* 028F3B0C */ cpu->r[30] = cpu->r[30] + 0x00000080u;
|
|
/* 028F3B10 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028F3B14 */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3B14 */ _t54 = _t53 & 0x00000001u;
|
|
/* 028F3B14 */ if (_t54) goto L_028F3B18; else goto L_028F3AD4;
|
|
L_028F3B18: ; // 0x28f3b18
|
|
/* 028F3B18 */ /* nop */
|
|
/* 028F3B1C */ _t55 = cpu->r[1] + 0x00000024u;
|
|
/* 028F3B1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028F3B20 */ cpu->lr = cpu->r[0];
|
|
/* 028F3B24 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028F3B28 */ return;
|
|
}
|
|
|
|
// fn_028F3B2C @ 0x28f3b2c
|
|
void Gambit_fn_028F3B2C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F3980: ; // 0x28f3980
|
|
/* 028F3980 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028F3980 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3980 */ cpu->r[1] = _t0;
|
|
/* 028F3984 */ /* nop */
|
|
/* 028F3988 */ cpu->r[0] = cpu->lr;
|
|
/* 028F398C */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028F398C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F3990 */ cpu->r[28] = cpu->r[3];
|
|
/* 028F3994 */ _t2 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028F3994 */ cpu->r[6] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F3998 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000001Cu);
|
|
/* 028F399C */ _t3 = cpu->r[28] + 0x00000010u;
|
|
/* 028F399C */ cpu->r[11] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F39A0 */ cpu->r[3] = cpu->r[4];
|
|
/* 028F39A4 */ cpu->r[0] = cpu->r[11] + cpu->r[0];
|
|
/* 028F39A8 */ cpu->r[31] = 0x00000001u;
|
|
/* 028F39AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 028F39B0 */ cpu->r[12] = cpu->r[11];
|
|
/* 028F39B4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F39B4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F39B4 */ if (_t5) goto L_028F3A2C; else goto L_028F39B8;
|
|
L_028F39B8: ; // 0x28f39b8
|
|
/* 028F39B8 */ cpu->r[7] = 0x24920000u;
|
|
/* 028F39BC */ cpu->r[9] = cpu->r[11] - cpu->r[12];
|
|
/* 028F39C0 */ cpu->r[7] = cpu->r[7] + 0x00004925u;
|
|
/* 028F39C4 */ cpu->r[10] = rbrew_rlwinm(cpu->r[9], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 028F39C8 */ /* nop */
|
|
/* 028F39CC */ cpu->r[5] = cpu->r[10] + 0x00000001u;
|
|
/* 028F39D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], cpu->r[6]);
|
|
/* 028F39D4 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F39D4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F39D4 */ if (_t7) goto L_028F39D8; else goto L_028F3A18;
|
|
L_028F39D8: ; // 0x28f39d8
|
|
/* 028F39D8 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x0000001Cu);
|
|
/* 028F39DC */ _t8 = cpu->r[11] + 0x00000018u;
|
|
/* 028F39DC */ cpu->r[7] = rbrew_read16(cpu->mem, _t8);
|
|
/* 028F39E0 */ cpu->r[8] = cpu->r[11] + 0x00000018u;
|
|
L_028F39E4: ; // 0x28f39e4
|
|
/* 028F39E4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[6]);
|
|
/* 028F39E8 */ _t9 = cpu->r[28] + 0x00000010u;
|
|
/* 028F39E8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F39EC */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F39EC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F39EC */ if (_t11) goto L_028F39F0; else goto L_028F39F4;
|
|
L_028F39F0: ; // 0x28f39f0
|
|
/* 028F39F0 */ cpu->r[10] = cpu->r[10] + cpu->r[4];
|
|
L_028F39F4: ; // 0x28f39f4
|
|
/* 028F39F4 */ _t12 = cpu->r[10] + 0x00000012u;
|
|
/* 028F39F4 */ cpu->r[9] = rbrew_read16(cpu->mem, _t12);
|
|
/* 028F39F8 */ cpu->r[7] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)cpu->r[9]);
|
|
/* 028F39FC */ cpu->r[7] = rbrew_rlwinm(cpu->r[7], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028F3A00 */ _t13 = cpu->r[8] + 0x00000000u;
|
|
/* 028F3A00 */ rbrew_write16(cpu->mem, _t13, (uint16_t)cpu->r[7]);
|
|
/* 028F3A04 */ _t14 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028F3A04 */ cpu->r[6] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F3A08 */ cpu->r[5] = cpu->r[5] + 0x00000001u;
|
|
/* 028F3A0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], cpu->r[6]);
|
|
/* 028F3A10 */ cpu->r[4] = cpu->r[4] + 0x0000001Cu;
|
|
/* 028F3A14 */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F3A14 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F3A14 */ if (_t16) goto L_028F39E4; else goto L_028F3A18;
|
|
L_028F3A18: ; // 0x28f3a18
|
|
/* 028F3A18 */ _t17 = cpu->r[11] + 0x00000010u;
|
|
/* 028F3A18 */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F3A1C */ cpu->r[11] = cpu->r[11] + 0x0000001Cu;
|
|
/* 028F3A20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 028F3A24 */ cpu->r[31] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)cpu->r[10]);
|
|
/* 028F3A28 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3A28 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F3A28 */ if (_t19) goto L_028F3A2C; else goto L_028F39B8;
|
|
L_028F3A2C: ; // 0x28f3a2c
|
|
/* 028F3A2C */ cpu->r[29] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028F3A2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F3A30 */ _t20 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F3A30 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F3A30 */ if (_t21) goto L_028F3A34; else goto L_028F3A98;
|
|
L_028F3A34: ; // 0x28f3a34
|
|
/* 028F3A34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3A38 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3A38 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F3A38 */ if (_t23) goto L_028F3A3C; else goto L_028F3A48;
|
|
L_028F3A3C: ; // 0x28f3a3c
|
|
/* 028F3A3C */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F3A40 */ _t24 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F3A40 */ cpu->r[3] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F3A44 */ Gambit_fn_02826F20(cpu);
|
|
L_028F3A48: ; // 0x28f3a48
|
|
/* 028F3A48 */ _t25 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F3A48 */ cpu->r[12] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F3A4C */ _t26 = cpu->r[12] + 0x00000034u;
|
|
/* 028F3A4C */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F3A50 */ cpu->ctr = cpu->r[0];
|
|
/* 028F3A54 */ cpu->r[4] = rbrew_rlwinm(cpu->r[29], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F3A58 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F3A5C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F3A60 */ cpu->r[30] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028F3A60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F3A64 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F3A68 */ _t27 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F3A68 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F3A68 */ if (_t28) goto L_028F3A6C; else goto L_028F3A90;
|
|
L_028F3A6C: ; // 0x28f3a6c
|
|
/* 028F3A6C */ cpu->r[27] = 0x00000000u;
|
|
L_028F3A70: ; // 0x28f3a70
|
|
/* 028F3A70 */ cpu->r[3] = cpu->r[31] + cpu->r[27];
|
|
/* 028F3A70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3A74 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3A74 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F3A74 */ if (_t30) goto L_028F3A7C; else goto L_028F3A78;
|
|
L_028F3A78: ; // 0x28f3a78
|
|
/* 028F3A78 */ Gambit_fn_028F2E8C(cpu);
|
|
L_028F3A7C: ; // 0x28f3a7c
|
|
/* 028F3A7C */ cpu->r[30] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 028F3A7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F3A80 */ cpu->r[27] = cpu->r[27] + 0x00000080u;
|
|
/* 028F3A84 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3A84 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028F3A84 */ if (_t32) goto L_028F3A88; else goto L_028F3A70;
|
|
L_028F3A88: ; // 0x28f3a88
|
|
/* 028F3A88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F3A8C */ _t33 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F3A8C */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F3A8C */ if (_t34) goto L_028F3A90; else goto L_028F3A98;
|
|
L_028F3A90: ; // 0x28f3a90
|
|
/* 028F3A90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F3A94 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3A94 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F3A94 */ if (_t36) goto L_028F3A98; else goto L_028F3AB8;
|
|
L_028F3A98: ; // 0x28f3a98
|
|
/* 028F3A98 */ _t37 = cpu->r[28] + 0x00000004u;
|
|
/* 028F3A98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F3A9C */ _t38 = cpu->r[28] + 0x00000008u;
|
|
/* 028F3A9C */ cpu->r[31] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F3AA0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F3AA4 */ cpu->r[30] = cpu->r[31];
|
|
/* 028F3AA8 */ cpu->r[29] = cpu->r[31] + cpu->r[0];
|
|
/* 028F3AAC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028F3AB0 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3AB0 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028F3AB0 */ if (_t40) goto L_028F3B18; else goto L_028F3AB4;
|
|
L_028F3AB4: ; // 0x28f3ab4
|
|
/* 028F3AB4 */ goto L_028F3AD4;
|
|
L_028F3AB8: ; // 0x28f3ab8
|
|
/* 028F3AB8 */ _t41 = cpu->r[28] + 0x00000004u;
|
|
/* 028F3AB8 */ rbrew_write32(cpu->mem, _t41, cpu->r[29]);
|
|
/* 028F3ABC */ cpu->r[0] = rbrew_rlwinm(cpu->r[29], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F3AC0 */ cpu->r[30] = cpu->r[31];
|
|
/* 028F3AC4 */ _t42 = cpu->r[28] + 0x00000008u;
|
|
/* 028F3AC4 */ rbrew_write32(cpu->mem, _t42, cpu->r[31]);
|
|
/* 028F3AC8 */ cpu->r[29] = cpu->r[31] + cpu->r[0];
|
|
/* 028F3ACC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028F3AD0 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3AD0 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F3AD0 */ if (_t44) goto L_028F3B18; else goto L_028F3AD4;
|
|
L_028F3AD4: ; // 0x28f3ad4
|
|
/* 028F3AD4 */ _t45 = cpu->r[28] + 0x00000000u;
|
|
/* 028F3AD4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F3AD8 */ cpu->r[0] = cpu->r[30] - cpu->r[31];
|
|
/* 028F3ADC */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000019u, 0x00000007u, 0x0000001Fu);
|
|
/* 028F3AE0 */ _t46 = cpu->r[10] + 0x00000078u;
|
|
/* 028F3AE0 */ cpu->r[27] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F3AE4 */ cpu->r[4] = cpu->r[12] + 0x00000001u;
|
|
/* 028F3AE8 */ _t47 = cpu->r[30] + 0x00000002u;
|
|
/* 028F3AE8 */ rbrew_write16(cpu->mem, _t47, (uint16_t)cpu->r[4]);
|
|
/* 028F3AEC */ _t48 = cpu->r[30] + 0x00000078u;
|
|
/* 028F3AEC */ rbrew_write32(cpu->mem, _t48, cpu->r[27]);
|
|
/* 028F3AF0 */ _t49 = cpu->r[27] + 0x00000004u;
|
|
/* 028F3AF0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028F3AF4 */ _t50 = cpu->r[5] + 0x00000014u;
|
|
/* 028F3AF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F3AF8 */ cpu->ctr = cpu->r[0];
|
|
/* 028F3AFC */ cpu->r[3] = cpu->r[27];
|
|
/* 028F3B00 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F3B04 */ _t51 = cpu->r[27] + 0x00000000u;
|
|
/* 028F3B04 */ cpu->r[8] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F3B08 */ _t52 = cpu->r[30] + 0x00000014u;
|
|
/* 028F3B08 */ rbrew_write32(cpu->mem, _t52, cpu->r[8]);
|
|
/* 028F3B0C */ cpu->r[30] = cpu->r[30] + 0x00000080u;
|
|
/* 028F3B10 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028F3B14 */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3B14 */ _t54 = _t53 & 0x00000001u;
|
|
/* 028F3B14 */ if (_t54) goto L_028F3B18; else goto L_028F3AD4;
|
|
L_028F3B18: ; // 0x28f3b18
|
|
/* 028F3B18 */ /* nop */
|
|
/* 028F3B1C */ _t55 = cpu->r[1] + 0x00000024u;
|
|
/* 028F3B1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028F3B20 */ cpu->lr = cpu->r[0];
|
|
/* 028F3B24 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028F3B28 */ return;
|
|
L_028F3B2C: ; // 0x28f3b2c
|
|
/* 028F3B2C */ _t56 = cpu->r[3] + 0x00000078u;
|
|
/* 028F3B2C */ cpu->r[12] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028F3B30 */ cpu->r[3] = cpu->r[12] + 0x00000008u;
|
|
/* 028F3B34 */ goto L_028F3980;
|
|
}
|
|
|
|
// fn_028F3B38 @ 0x28f3b38
|
|
void Gambit_fn_028F3B38(CPUState* cpu) {
|
|
uint32_t _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_028F3B38: ; // 0x28f3b38
|
|
/* 028F3B38 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028F3B38 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3B38 */ cpu->r[1] = _t0;
|
|
/* 028F3B3C */ /* nop */
|
|
/* 028F3B40 */ cpu->r[0] = cpu->lr;
|
|
/* 028F3B44 */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 028F3B44 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F3B48 */ cpu->r[24] = cpu->r[3];
|
|
/* 028F3B4C */ _t2 = cpu->r[24] + 0x0000000Cu;
|
|
/* 028F3B4C */ cpu->r[3] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F3B50 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x0000001Cu);
|
|
/* 028F3B54 */ _t3 = cpu->r[24] + 0x00000010u;
|
|
/* 028F3B54 */ cpu->r[29] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F3B58 */ cpu->r[25] = cpu->r[4];
|
|
/* 028F3B5C */ cpu->r[26] = cpu->r[5];
|
|
/* 028F3B60 */ cpu->r[31] = cpu->r[29] + cpu->r[10];
|
|
/* 028F3B64 */ cpu->r[27] = cpu->r[6];
|
|
/* 028F3B68 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028F3B6C */ cpu->r[30] = cpu->r[29];
|
|
/* 028F3B70 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3B70 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F3B70 */ if (_t5) goto L_028F3C04; else goto L_028F3B74;
|
|
L_028F3B74: ; // 0x28f3b74
|
|
/* 028F3B74 */ _t6 = cpu->r[29] + 0x00000018u;
|
|
/* 028F3B74 */ cpu->r[0] = rbrew_read16(cpu->mem, _t6);
|
|
/* 028F3B78 */ _t7 = cpu->r[29] + 0x00000004u;
|
|
/* 028F3B78 */ cpu->r[7] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F3B7C */ cpu->r[23] = (uint32_t)((int32_t)cpu->r[25] / (int32_t)cpu->r[0]);
|
|
/* 028F3B80 */ cpu->r[5] = cpu->r[29] - cpu->r[30];
|
|
/* 028F3B84 */ _t8 = cpu->r[7] + 0x00000014u;
|
|
/* 028F3B84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F3B88 */ cpu->r[6] = 0x24920000u;
|
|
/* 028F3B8C */ cpu->ctr = cpu->r[0];
|
|
/* 028F3B90 */ cpu->r[8] = rbrew_rlwinm(cpu->r[5], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 028F3B94 */ cpu->r[6] = cpu->r[6] + 0x00004925u;
|
|
/* 028F3B98 */ cpu->r[3] = cpu->r[29];
|
|
/* 028F3B9C */ /* nop */
|
|
/* 028F3BA0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F3BA4 */ _t9 = cpu->r[29] + 0x00000000u;
|
|
/* 028F3BA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F3BA8 */ cpu->r[9] = rbrew_rlwinm(cpu->r[22], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F3BAC */ _t10 = cpu->r[9] + cpu->r[26];
|
|
/* 028F3BAC */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028F3BB0 */ _t11 = cpu->r[29] + 0x00000010u;
|
|
/* 028F3BB0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F3BB4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[23], cpu->r[10]);
|
|
/* 028F3BB8 */ _t12 = cpu->r[29] + 0x00000014u;
|
|
/* 028F3BB8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F3BBC */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F3BBC */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F3BBC */ if (_t14) goto L_028F3BC0; else goto L_028F3BC8;
|
|
L_028F3BC0: ; // 0x28f3bc0
|
|
/* 028F3BC0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[23], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028F3BC4 */ cpu->r[28] = cpu->r[28] + cpu->r[0];
|
|
L_028F3BC8: ; // 0x28f3bc8
|
|
/* 028F3BC8 */ _t15 = cpu->r[28] + 0x00000004u;
|
|
/* 028F3BC8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F3BCC */ _t16 = cpu->r[12] + 0x00000014u;
|
|
/* 028F3BCC */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F3BD0 */ cpu->ctr = cpu->r[0];
|
|
/* 028F3BD4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028F3BD8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F3BDC */ _t17 = cpu->r[28] + 0x00000000u;
|
|
/* 028F3BDC */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F3BE0 */ cpu->r[5] = rbrew_rlwinm(cpu->r[22], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F3BE4 */ _t18 = cpu->r[5] + cpu->r[27];
|
|
/* 028F3BE4 */ rbrew_write32(cpu->mem, _t18, cpu->r[11]);
|
|
/* 028F3BE8 */ _t19 = cpu->r[29] + 0x00000018u;
|
|
/* 028F3BE8 */ cpu->r[7] = rbrew_read16(cpu->mem, _t19);
|
|
/* 028F3BEC */ cpu->r[29] = cpu->r[29] + 0x0000001Cu;
|
|
/* 028F3BF0 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[23] * (int32_t)cpu->r[7]);
|
|
/* 028F3BF4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028F3BF8 */ cpu->r[25] = cpu->r[25] - cpu->r[6];
|
|
/* 028F3BFC */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3BFC */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F3BFC */ if (_t21) goto L_028F3C00; else goto L_028F3B74;
|
|
L_028F3C00: ; // 0x28f3c00
|
|
/* 028F3C00 */ _t22 = cpu->r[24] + 0x0000000Cu;
|
|
/* 028F3C00 */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
L_028F3C04: ; // 0x28f3c04
|
|
/* 028F3C04 */ /* nop */
|
|
/* 028F3C08 */ _t23 = cpu->r[1] + 0x00000034u;
|
|
/* 028F3C08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F3C0C */ cpu->lr = cpu->r[0];
|
|
/* 028F3C10 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028F3C14 */ return;
|
|
}
|
|
|
|
// fn_028F3C18 @ 0x28f3c18
|
|
void Gambit_fn_028F3C18(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028F3C18: ; // 0x28f3c18
|
|
/* 028F3C18 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000001u);
|
|
/* 028F3C1C */ _t0 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F3C1C */ _t1 = _t0 & 0x00000001u;
|
|
/* 028F3C1C */ if (_t1) goto L_028F3C34; else goto L_028F3C20;
|
|
L_028F3C20: ; // 0x28f3c20
|
|
/* 028F3C20 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3C20 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F3C20 */ if (_t3) goto L_028F3C3C; else goto L_028F3C24;
|
|
L_028F3C24: ; // 0x28f3c24
|
|
/* 028F3C24 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000002u);
|
|
/* 028F3C28 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3C28 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F3C28 */ if (_t5) goto L_028F3C44; else goto L_028F3C2C;
|
|
L_028F3C2C: ; // 0x28f3c2c
|
|
/* 028F3C2C */ cpu->r[3] = 0x00000000u;
|
|
/* 028F3C30 */ return;
|
|
L_028F3C34: ; // 0x28f3c34
|
|
/* 028F3C34 */ cpu->r[3] = cpu->r[3] + 0x0000003Cu;
|
|
/* 028F3C38 */ return;
|
|
L_028F3C3C: ; // 0x28f3c3c
|
|
/* 028F3C3C */ cpu->r[3] = cpu->r[3] + 0x00000050u;
|
|
/* 028F3C40 */ return;
|
|
L_028F3C44: ; // 0x28f3c44
|
|
/* 028F3C44 */ cpu->r[3] = cpu->r[3] + 0x00000064u;
|
|
/* 028F3C48 */ return;
|
|
}
|
|
|
|
// fn_028F3C4C @ 0x28f3c4c
|
|
void Gambit_fn_028F3C4C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028F3C4C: ; // 0x28f3c4c
|
|
/* 028F3C4C */ _t0 = cpu->r[1] + 0xFFFFFEC8u;
|
|
/* 028F3C4C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3C4C */ cpu->r[1] = _t0;
|
|
/* 028F3C50 */ /* nop */
|
|
/* 028F3C54 */ cpu->r[0] = cpu->lr;
|
|
/* 028F3C58 */ _t1 = cpu->r[1] + 0x0000013Cu;
|
|
/* 028F3C58 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F3C5C */ cpu->r[21] = cpu->r[3];
|
|
/* 028F3C60 */ cpu->r[6] = cpu->r[1] + 0x00000088u;
|
|
/* 028F3C64 */ _t2 = cpu->r[21] + 0x00000078u;
|
|
/* 028F3C64 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F3C68 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028F3C6C */ _t3 = cpu->r[21] + 0x00000002u;
|
|
/* 028F3C6C */ cpu->r[4] = rbrew_read16(cpu->mem, _t3);
|
|
/* 028F3C70 */ cpu->r[3] = cpu->r[12] + 0x00000008u;
|
|
/* 028F3C74 */ _t4 = cpu->r[12] + 0x00000008u;
|
|
/* 028F3C74 */ cpu->r[22] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F3C78 */ Gambit_fn_028F3B38(cpu);
|
|
/* 028F3C7C */ cpu->r[29] = cpu->r[1] + 0x00000088u;
|
|
/* 028F3C80 */ cpu->r[28] = cpu->r[1] + 0x00000008u;
|
|
/* 028F3C84 */ cpu->r[25] = 0x00000003u;
|
|
/* 028F3C88 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F3C8C */ cpu->r[23] = cpu->r[3];
|
|
L_028F3C90: ; // 0x28f3c90
|
|
/* 028F3C90 */ cpu->r[3] = cpu->r[22];
|
|
/* 028F3C94 */ cpu->r[4] = cpu->r[30];
|
|
/* 028F3C98 */ Gambit_fn_028F3C18(cpu);
|
|
/* 028F3C9C */ _t5 = cpu->r[3] + 0x00000004u;
|
|
/* 028F3C9C */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F3CA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F3CA4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3CA4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F3CA4 */ if (_t7) goto L_028F3CE8; else goto L_028F3CA8;
|
|
L_028F3CA8: ; // 0x28f3ca8
|
|
/* 028F3CA8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3CAC */ Gambit_fn_0295F124(cpu);
|
|
/* 028F3CB0 */ cpu->r[24] = cpu->r[23];
|
|
/* 028F3CB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 028F3CB4 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F3CB4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F3CB4 */ if (_t9) goto L_028F3CB8; else goto L_028F3CD8;
|
|
L_028F3CB8: ; // 0x28f3cb8
|
|
/* 028F3CB8 */ cpu->r[26] = cpu->r[29] + 0xFFFFFFFCu;
|
|
/* 028F3CBC */ cpu->r[27] = cpu->r[28] + 0xFFFFFFFCu;
|
|
L_028F3CC0: ; // 0x28f3cc0
|
|
/* 028F3CC0 */ _t10 = cpu->r[26] + 0x00000004u;
|
|
/* 028F3CC0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F3CC0 */ cpu->r[26] = _t10;
|
|
/* 028F3CC4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3CC8 */ _t11 = cpu->r[27] + 0x00000004u;
|
|
/* 028F3CC8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F3CC8 */ cpu->r[27] = _t11;
|
|
/* 028F3CCC */ Gambit_fn_0295F134(cpu);
|
|
/* 028F3CD0 */ cpu->r[24] = cpu->r[24] + 0xFFFFFFFFu;
|
|
/* 028F3CD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 028F3CD4 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3CD4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F3CD4 */ if (_t13) goto L_028F3CD8; else goto L_028F3CC0;
|
|
L_028F3CD8: ; // 0x28f3cd8
|
|
/* 028F3CD8 */ cpu->r[3] = cpu->r[21];
|
|
/* 028F3CDC */ cpu->r[4] = cpu->r[30];
|
|
/* 028F3CE0 */ Gambit_fn_028F3C18(cpu);
|
|
/* 028F3CE4 */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 028F3CE4 */ rbrew_write32(cpu->mem, _t14, cpu->r[31]);
|
|
L_028F3CE8: ; // 0x28f3ce8
|
|
/* 028F3CE8 */ cpu->r[25] = cpu->r[25] + 0xFFFFFFFFu;
|
|
/* 028F3CE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], 0x00000000u);
|
|
/* 028F3CEC */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028F3CF0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3CF0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F3CF0 */ if (_t16) goto L_028F3CF4; else goto L_028F3C90;
|
|
L_028F3CF4: ; // 0x28f3cf4
|
|
/* 028F3CF4 */ /* nop */
|
|
/* 028F3CF8 */ _t17 = cpu->r[1] + 0x0000013Cu;
|
|
/* 028F3CF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F3CFC */ cpu->lr = cpu->r[0];
|
|
/* 028F3D00 */ cpu->r[1] = cpu->r[1] + 0x00000138u;
|
|
/* 028F3D04 */ return;
|
|
}
|
|
|
|
// fn_028F3D08 @ 0x28f3d08
|
|
void Gambit_fn_028F3D08(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028F3D08: ; // 0x28f3d08
|
|
/* 028F3D08 */ cpu->r[0] = cpu->lr;
|
|
/* 028F3D0C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F3D0C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3D0C */ cpu->r[1] = _t0;
|
|
/* 028F3D10 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3D10 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F3D14 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F3D18 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3D18 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F3D1C */ _t3 = cpu->r[31] + 0x00000078u;
|
|
/* 028F3D1C */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F3D20 */ _t4 = cpu->r[12] + 0x00000028u;
|
|
/* 028F3D20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F3D24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000002u);
|
|
/* 028F3D28 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3D28 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F3D28 */ if (_t6) goto L_028F3D2C; else goto L_028F3D38;
|
|
L_028F3D2C: ; // 0x28f3d2c
|
|
/* 028F3D2C */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F3D30 */ _t7 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F3D30 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F3D34 */ Gambit_fn_02905FE4(cpu);
|
|
L_028F3D38: ; // 0x28f3d38
|
|
/* 028F3D38 */ _t8 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028F3D38 */ cpu->r[3] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F3D3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3D40 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3D40 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F3D40 */ if (_t10) goto L_028F3D48; else goto L_028F3D44;
|
|
L_028F3D44: ; // 0x28f3d44
|
|
/* 028F3D44 */ rbrew_dispatch(cpu, 0x02d06290u);
|
|
L_028F3D48: ; // 0x28f3d48
|
|
/* 028F3D48 */ _t11 = cpu->r[31] + 0x00000050u;
|
|
/* 028F3D48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F3D4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3D50 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3D50 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F3D50 */ if (_t13) goto L_028F3D58; else goto L_028F3D54;
|
|
L_028F3D54: ; // 0x28f3d54
|
|
/* 028F3D54 */ rbrew_dispatch(cpu, 0x02d06148u);
|
|
L_028F3D58: ; // 0x28f3d58
|
|
/* 028F3D58 */ _t14 = cpu->r[31] + 0x00000064u;
|
|
/* 028F3D58 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F3D5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3D60 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3D60 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F3D60 */ if (_t16) goto L_028F3D68; else goto L_028F3D64;
|
|
L_028F3D64: ; // 0x28f3d64
|
|
/* 028F3D64 */ rbrew_dispatch(cpu, 0x02d060d8u);
|
|
L_028F3D68: ; // 0x28f3d68
|
|
/* 028F3D68 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3D68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F3D6C */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3D6C */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F3D70 */ cpu->lr = cpu->r[0];
|
|
/* 028F3D74 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F3D78 */ return;
|
|
}
|
|
|
|
// fn_028F3D0C @ 0x28f3d0c
|
|
void Gambit_fn_028F3D0C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028F3D0C: ; // 0x28f3d0c
|
|
/* 028F3D0C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F3D0C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3D0C */ cpu->r[1] = _t0;
|
|
/* 028F3D10 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3D10 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F3D14 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F3D18 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3D18 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F3D1C */ _t3 = cpu->r[31] + 0x00000078u;
|
|
/* 028F3D1C */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F3D20 */ _t4 = cpu->r[12] + 0x00000028u;
|
|
/* 028F3D20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F3D24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000002u);
|
|
/* 028F3D28 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3D28 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F3D28 */ if (_t6) goto L_028F3D2C; else goto L_028F3D38;
|
|
L_028F3D2C: ; // 0x28f3d2c
|
|
/* 028F3D2C */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F3D30 */ _t7 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F3D30 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F3D34 */ Gambit_fn_02905FE4(cpu);
|
|
L_028F3D38: ; // 0x28f3d38
|
|
/* 028F3D38 */ _t8 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028F3D38 */ cpu->r[3] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F3D3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3D40 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3D40 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F3D40 */ if (_t10) goto L_028F3D48; else goto L_028F3D44;
|
|
L_028F3D44: ; // 0x28f3d44
|
|
/* 028F3D44 */ rbrew_dispatch(cpu, 0x02d06290u);
|
|
L_028F3D48: ; // 0x28f3d48
|
|
/* 028F3D48 */ _t11 = cpu->r[31] + 0x00000050u;
|
|
/* 028F3D48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F3D4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3D50 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3D50 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F3D50 */ if (_t13) goto L_028F3D58; else goto L_028F3D54;
|
|
L_028F3D54: ; // 0x28f3d54
|
|
/* 028F3D54 */ rbrew_dispatch(cpu, 0x02d06148u);
|
|
L_028F3D58: ; // 0x28f3d58
|
|
/* 028F3D58 */ _t14 = cpu->r[31] + 0x00000064u;
|
|
/* 028F3D58 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F3D5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3D60 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3D60 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F3D60 */ if (_t16) goto L_028F3D68; else goto L_028F3D64;
|
|
L_028F3D64: ; // 0x28f3d64
|
|
/* 028F3D64 */ rbrew_dispatch(cpu, 0x02d060d8u);
|
|
L_028F3D68: ; // 0x28f3d68
|
|
/* 028F3D68 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3D68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F3D6C */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3D6C */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F3D70 */ cpu->lr = cpu->r[0];
|
|
/* 028F3D74 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F3D78 */ return;
|
|
}
|
|
|
|
// fn_028F3D7C @ 0x28f3d7c
|
|
void Gambit_fn_028F3D7C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028F3D7C: ; // 0x28f3d7c
|
|
/* 028F3D7C */ cpu->r[0] = cpu->lr;
|
|
/* 028F3D80 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F3D80 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3D80 */ cpu->r[1] = _t0;
|
|
/* 028F3D84 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3D84 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F3D88 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3D88 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F3D8C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3D8C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028F3D90 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3D90 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F3D94 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F3D98 */ _t5 = cpu->r[29] + 0x00000024u;
|
|
/* 028F3D98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F3D9C */ _t6 = cpu->r[29] + 0x00000028u;
|
|
/* 028F3D9C */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F3DA0 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F3DA4 */ cpu->r[30] = cpu->r[31] + cpu->r[12];
|
|
/* 028F3DA8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3DAC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3DAC */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F3DAC */ if (_t8) goto L_028F3DC8; else goto L_028F3DB0;
|
|
L_028F3DB0: ; // 0x28f3db0
|
|
/* 028F3DB0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3DB4 */ cpu->r[4] = cpu->r[29];
|
|
/* 028F3DB8 */ Gambit_fn_0295FDD8(cpu);
|
|
/* 028F3DBC */ cpu->r[31] = cpu->r[31] + 0x00000010u;
|
|
/* 028F3DC0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3DC4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3DC4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F3DC4 */ if (_t10) goto L_028F3DC8; else goto L_028F3DB0;
|
|
L_028F3DC8: ; // 0x28f3dc8
|
|
/* 028F3DC8 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3DC8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F3DCC */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3DCC */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F3DD0 */ _t13 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3DD0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F3DD4 */ cpu->lr = cpu->r[0];
|
|
/* 028F3DD8 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3DD8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F3DDC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F3DE0 */ return;
|
|
}
|
|
|
|
// fn_028F3D80 @ 0x28f3d80
|
|
void Gambit_fn_028F3D80(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028F3D80: ; // 0x28f3d80
|
|
/* 028F3D80 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F3D80 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3D80 */ cpu->r[1] = _t0;
|
|
/* 028F3D84 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3D84 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F3D88 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3D88 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F3D8C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3D8C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028F3D90 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3D90 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F3D94 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F3D98 */ _t5 = cpu->r[29] + 0x00000024u;
|
|
/* 028F3D98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F3D9C */ _t6 = cpu->r[29] + 0x00000028u;
|
|
/* 028F3D9C */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F3DA0 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F3DA4 */ cpu->r[30] = cpu->r[31] + cpu->r[12];
|
|
/* 028F3DA8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3DAC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3DAC */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F3DAC */ if (_t8) goto L_028F3DC8; else goto L_028F3DB0;
|
|
L_028F3DB0: ; // 0x28f3db0
|
|
/* 028F3DB0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3DB4 */ cpu->r[4] = cpu->r[29];
|
|
/* 028F3DB8 */ Gambit_fn_0295FDD8(cpu);
|
|
/* 028F3DBC */ cpu->r[31] = cpu->r[31] + 0x00000010u;
|
|
/* 028F3DC0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3DC4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3DC4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F3DC4 */ if (_t10) goto L_028F3DC8; else goto L_028F3DB0;
|
|
L_028F3DC8: ; // 0x28f3dc8
|
|
/* 028F3DC8 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3DC8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F3DCC */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3DCC */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F3DD0 */ _t13 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3DD0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F3DD4 */ cpu->lr = cpu->r[0];
|
|
/* 028F3DD8 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3DD8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F3DDC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F3DE0 */ return;
|
|
}
|
|
|
|
// fn_028F3DE4 @ 0x28f3de4
|
|
void Gambit_fn_028F3DE4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028F3DE4: ; // 0x28f3de4
|
|
/* 028F3DE4 */ cpu->r[0] = cpu->lr;
|
|
/* 028F3DE8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F3DE8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3DE8 */ cpu->r[1] = _t0;
|
|
/* 028F3DEC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3DEC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F3DF0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3DF0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F3DF4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3DF4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028F3DF8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3DF8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F3DFC */ cpu->r[29] = cpu->r[3];
|
|
/* 028F3E00 */ _t5 = cpu->r[29] + 0x0000002Cu;
|
|
/* 028F3E00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F3E04 */ _t6 = cpu->r[29] + 0x00000030u;
|
|
/* 028F3E04 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F3E08 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F3E0C */ cpu->r[30] = cpu->r[31] + cpu->r[12];
|
|
/* 028F3E10 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3E14 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3E14 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F3E14 */ if (_t8) goto L_028F3E30; else goto L_028F3E18;
|
|
L_028F3E18: ; // 0x28f3e18
|
|
/* 028F3E18 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3E1C */ cpu->r[4] = cpu->r[29];
|
|
/* 028F3E20 */ Gambit_fn_029603D8(cpu);
|
|
/* 028F3E24 */ cpu->r[31] = cpu->r[31] + 0x00000010u;
|
|
/* 028F3E28 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3E2C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3E2C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F3E2C */ if (_t10) goto L_028F3E30; else goto L_028F3E18;
|
|
L_028F3E30: ; // 0x28f3e30
|
|
/* 028F3E30 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3E30 */ cpu->r[29] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F3E34 */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3E34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F3E38 */ _t13 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3E38 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F3E3C */ cpu->lr = cpu->r[0];
|
|
/* 028F3E40 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3E40 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F3E44 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F3E48 */ return;
|
|
}
|
|
|
|
// fn_028F3DE8 @ 0x28f3de8
|
|
void Gambit_fn_028F3DE8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028F3DE8: ; // 0x28f3de8
|
|
/* 028F3DE8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F3DE8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3DE8 */ cpu->r[1] = _t0;
|
|
/* 028F3DEC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3DEC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F3DF0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3DF0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F3DF4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3DF4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028F3DF8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3DF8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F3DFC */ cpu->r[29] = cpu->r[3];
|
|
/* 028F3E00 */ _t5 = cpu->r[29] + 0x0000002Cu;
|
|
/* 028F3E00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F3E04 */ _t6 = cpu->r[29] + 0x00000030u;
|
|
/* 028F3E04 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F3E08 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F3E0C */ cpu->r[30] = cpu->r[31] + cpu->r[12];
|
|
/* 028F3E10 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3E14 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3E14 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F3E14 */ if (_t8) goto L_028F3E30; else goto L_028F3E18;
|
|
L_028F3E18: ; // 0x28f3e18
|
|
/* 028F3E18 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3E1C */ cpu->r[4] = cpu->r[29];
|
|
/* 028F3E20 */ Gambit_fn_029603D8(cpu);
|
|
/* 028F3E24 */ cpu->r[31] = cpu->r[31] + 0x00000010u;
|
|
/* 028F3E28 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3E2C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3E2C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F3E2C */ if (_t10) goto L_028F3E30; else goto L_028F3E18;
|
|
L_028F3E30: ; // 0x28f3e30
|
|
/* 028F3E30 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3E30 */ cpu->r[29] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F3E34 */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3E34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F3E38 */ _t13 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3E38 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F3E3C */ cpu->lr = cpu->r[0];
|
|
/* 028F3E40 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3E40 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F3E44 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F3E48 */ return;
|
|
}
|
|
|
|
// fn_028F3E4C @ 0x28f3e4c
|
|
void Gambit_fn_028F3E4C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028F3E4C: ; // 0x28f3e4c
|
|
/* 028F3E4C */ cpu->r[0] = cpu->lr;
|
|
/* 028F3E50 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F3E50 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3E50 */ cpu->r[1] = _t0;
|
|
/* 028F3E54 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3E54 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F3E58 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3E58 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F3E5C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3E5C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028F3E60 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3E60 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F3E64 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F3E68 */ _t5 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028F3E68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F3E6C */ _t6 = cpu->r[29] + 0x00000020u;
|
|
/* 028F3E6C */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F3E70 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 028F3E74 */ cpu->r[30] = cpu->r[31] + cpu->r[12];
|
|
/* 028F3E78 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3E7C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3E7C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F3E7C */ if (_t8) goto L_028F3E98; else goto L_028F3E80;
|
|
L_028F3E80: ; // 0x28f3e80
|
|
/* 028F3E80 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3E84 */ cpu->r[4] = cpu->r[29];
|
|
/* 028F3E88 */ Gambit_fn_029606A8(cpu);
|
|
/* 028F3E8C */ cpu->r[31] = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F3E90 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3E94 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3E94 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F3E94 */ if (_t10) goto L_028F3E98; else goto L_028F3E80;
|
|
L_028F3E98: ; // 0x28f3e98
|
|
/* 028F3E98 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3E98 */ cpu->r[29] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F3E9C */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3E9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F3EA0 */ _t13 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3EA0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F3EA4 */ cpu->lr = cpu->r[0];
|
|
/* 028F3EA8 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3EA8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F3EAC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F3EB0 */ return;
|
|
}
|
|
|
|
// fn_028F3E50 @ 0x28f3e50
|
|
void Gambit_fn_028F3E50(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028F3E50: ; // 0x28f3e50
|
|
/* 028F3E50 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F3E50 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3E50 */ cpu->r[1] = _t0;
|
|
/* 028F3E54 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3E54 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F3E58 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3E58 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F3E5C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3E5C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028F3E60 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3E60 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F3E64 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F3E68 */ _t5 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028F3E68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F3E6C */ _t6 = cpu->r[29] + 0x00000020u;
|
|
/* 028F3E6C */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F3E70 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 028F3E74 */ cpu->r[30] = cpu->r[31] + cpu->r[12];
|
|
/* 028F3E78 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3E7C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3E7C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F3E7C */ if (_t8) goto L_028F3E98; else goto L_028F3E80;
|
|
L_028F3E80: ; // 0x28f3e80
|
|
/* 028F3E80 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3E84 */ cpu->r[4] = cpu->r[29];
|
|
/* 028F3E88 */ Gambit_fn_029606A8(cpu);
|
|
/* 028F3E8C */ cpu->r[31] = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F3E90 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3E94 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3E94 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F3E94 */ if (_t10) goto L_028F3E98; else goto L_028F3E80;
|
|
L_028F3E98: ; // 0x28f3e98
|
|
/* 028F3E98 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3E98 */ cpu->r[29] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F3E9C */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3E9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F3EA0 */ _t13 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3EA0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F3EA4 */ cpu->lr = cpu->r[0];
|
|
/* 028F3EA8 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3EA8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F3EAC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F3EB0 */ return;
|
|
}
|
|
|
|
// fn_028F3EB4 @ 0x28f3eb4
|
|
void Gambit_fn_028F3EB4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028F3EB4: ; // 0x28f3eb4
|
|
/* 028F3EB4 */ cpu->r[0] = cpu->lr;
|
|
/* 028F3EB8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F3EB8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3EB8 */ cpu->r[1] = _t0;
|
|
/* 028F3EBC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3EBC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F3EC0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3EC0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F3EC4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3EC4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028F3EC8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3EC8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F3ECC */ cpu->r[29] = cpu->r[3];
|
|
/* 028F3ED0 */ _t5 = cpu->r[29] + 0x00000034u;
|
|
/* 028F3ED0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F3ED4 */ _t6 = cpu->r[29] + 0x00000038u;
|
|
/* 028F3ED4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F3ED8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F3EDC */ cpu->r[30] = cpu->r[31] + cpu->r[12];
|
|
/* 028F3EE0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3EE4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3EE4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F3EE4 */ if (_t8) goto L_028F3F00; else goto L_028F3EE8;
|
|
L_028F3EE8: ; // 0x28f3ee8
|
|
/* 028F3EE8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3EEC */ cpu->r[4] = cpu->r[29];
|
|
/* 028F3EF0 */ Gambit_fn_02960108(cpu);
|
|
/* 028F3EF4 */ cpu->r[31] = cpu->r[31] + 0x00000010u;
|
|
/* 028F3EF8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3EFC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3EFC */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F3EFC */ if (_t10) goto L_028F3F00; else goto L_028F3EE8;
|
|
L_028F3F00: ; // 0x28f3f00
|
|
/* 028F3F00 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3F00 */ cpu->r[29] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F3F04 */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3F04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F3F08 */ _t13 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3F08 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F3F0C */ cpu->lr = cpu->r[0];
|
|
/* 028F3F10 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3F10 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F3F14 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F3F18 */ return;
|
|
}
|
|
|
|
// fn_028F3EB8 @ 0x28f3eb8
|
|
void Gambit_fn_028F3EB8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028F3EB8: ; // 0x28f3eb8
|
|
/* 028F3EB8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F3EB8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3EB8 */ cpu->r[1] = _t0;
|
|
/* 028F3EBC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3EBC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F3EC0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3EC0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F3EC4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3EC4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028F3EC8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3EC8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F3ECC */ cpu->r[29] = cpu->r[3];
|
|
/* 028F3ED0 */ _t5 = cpu->r[29] + 0x00000034u;
|
|
/* 028F3ED0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F3ED4 */ _t6 = cpu->r[29] + 0x00000038u;
|
|
/* 028F3ED4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F3ED8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F3EDC */ cpu->r[30] = cpu->r[31] + cpu->r[12];
|
|
/* 028F3EE0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3EE4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3EE4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F3EE4 */ if (_t8) goto L_028F3F00; else goto L_028F3EE8;
|
|
L_028F3EE8: ; // 0x28f3ee8
|
|
/* 028F3EE8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F3EEC */ cpu->r[4] = cpu->r[29];
|
|
/* 028F3EF0 */ Gambit_fn_02960108(cpu);
|
|
/* 028F3EF4 */ cpu->r[31] = cpu->r[31] + 0x00000010u;
|
|
/* 028F3EF8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F3EFC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3EFC */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F3EFC */ if (_t10) goto L_028F3F00; else goto L_028F3EE8;
|
|
L_028F3F00: ; // 0x28f3f00
|
|
/* 028F3F00 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3F00 */ cpu->r[29] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F3F04 */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3F04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F3F08 */ _t13 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3F08 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F3F0C */ cpu->lr = cpu->r[0];
|
|
/* 028F3F10 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3F10 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F3F14 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F3F18 */ return;
|
|
}
|
|
|
|
// fn_028F3F1C @ 0x28f3f1c
|
|
void Gambit_fn_028F3F1C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F3F1C: ; // 0x28f3f1c
|
|
/* 028F3F1C */ cpu->r[0] = cpu->lr;
|
|
/* 028F3F20 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F3F20 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3F20 */ cpu->r[1] = _t0;
|
|
/* 028F3F24 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3F24 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F3F28 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3F28 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F3F2C */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028F3F2C */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028F3F30 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3F30 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028F3F34 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3F34 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F3F38 */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 028F3F38 */ cpu->r[9] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028F3F3C */ cpu->r[30] = cpu->r[3];
|
|
/* 028F3F40 */ cpu->r[31] = 0x00000000u;
|
|
/* 028F3F44 */ cpu->r[28] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F3F48 */ cpu->r[29] = rbrew_rlwinm(cpu->r[9], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F3F4C */ Gambit_fn_028F3C4C(cpu);
|
|
/* 028F3F50 */ cpu->r[3] = cpu->r[30] + 0x0000003Cu;
|
|
/* 028F3F54 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F3F58 */ cpu->r[5] = cpu->r[29];
|
|
/* 028F3F5C */ Gambit_fn_0295ECC4(cpu);
|
|
/* 028F3F60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3F64 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3F64 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F3F64 */ if (_t8) goto L_028F3F84; else goto L_028F3F68;
|
|
L_028F3F68: ; // 0x28f3f68
|
|
/* 028F3F68 */ _t9 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3F68 */ cpu->r[9] = rbrew_read8(cpu->mem, _t9);
|
|
/* 028F3F6C */ cpu->r[9] = cpu->r[9] & 0x000000FDu;
|
|
/* 028F3F6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F3F70 */ cpu->r[31] = 0x00000001u;
|
|
/* 028F3F74 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F3F74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3F78 */ _t10 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3F78 */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[9]);
|
|
/* 028F3F7C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3F7C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F3F7C */ if (_t12) goto L_028F40AC; else goto L_028F3F80;
|
|
L_028F3F80: ; // 0x28f3f80
|
|
/* 028F3F80 */ goto L_028F408C;
|
|
L_028F3F84: ; // 0x28f3f84
|
|
/* 028F3F84 */ cpu->r[5] = cpu->r[29];
|
|
/* 028F3F88 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F3F8C */ cpu->r[3] = cpu->r[30] + 0x00000050u;
|
|
/* 028F3F90 */ Gambit_fn_0295ECC4(cpu);
|
|
/* 028F3F94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3F98 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3F98 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F3F98 */ if (_t14) goto L_028F3FB8; else goto L_028F3F9C;
|
|
L_028F3F9C: ; // 0x28f3f9c
|
|
/* 028F3F9C */ _t15 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3F9C */ cpu->r[9] = rbrew_read8(cpu->mem, _t15);
|
|
/* 028F3FA0 */ cpu->r[9] = cpu->r[9] & 0x000000FDu;
|
|
/* 028F3FA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F3FA4 */ cpu->r[31] = 0x00000002u;
|
|
/* 028F3FA8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F3FA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3FAC */ _t16 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3FAC */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[9]);
|
|
/* 028F3FB0 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3FB0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F3FB0 */ if (_t18) goto L_028F40AC; else goto L_028F3FB4;
|
|
L_028F3FB4: ; // 0x28f3fb4
|
|
/* 028F3FB4 */ goto L_028F408C;
|
|
L_028F3FB8: ; // 0x28f3fb8
|
|
/* 028F3FB8 */ cpu->r[5] = cpu->r[29];
|
|
/* 028F3FBC */ cpu->r[4] = cpu->r[28];
|
|
/* 028F3FC0 */ cpu->r[3] = cpu->r[30] + 0x00000064u;
|
|
/* 028F3FC4 */ Gambit_fn_0295ECC4(cpu);
|
|
/* 028F3FC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000001u);
|
|
/* 028F3FCC */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3FCC */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F3FCC */ if (_t20) goto L_028F3FD0; else goto L_028F3FEC;
|
|
L_028F3FD0: ; // 0x28f3fd0
|
|
/* 028F3FD0 */ _t21 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3FD0 */ cpu->r[9] = rbrew_read8(cpu->mem, _t21);
|
|
/* 028F3FD4 */ cpu->r[9] = cpu->r[9] & 0x000000FDu;
|
|
/* 028F3FD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F3FD8 */ cpu->r[31] = 0x00000003u;
|
|
/* 028F3FDC */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F3FDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3FE0 */ _t22 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3FE0 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[9]);
|
|
/* 028F3FE4 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3FE4 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028F3FE4 */ if (_t24) goto L_028F40AC; else goto L_028F3FE8;
|
|
L_028F3FE8: ; // 0x28f3fe8
|
|
/* 028F3FE8 */ goto L_028F408C;
|
|
L_028F3FEC: ; // 0x28f3fec
|
|
/* 028F3FEC */ _t25 = cpu->r[30] + 0x00000064u;
|
|
/* 028F3FEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F3FF0 */ _t26 = cpu->r[30] + 0x00000078u;
|
|
/* 028F3FF0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F3FF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3FF8 */ cpu->r[0] = 0x00000002u;
|
|
/* 028F3FFC */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3FFC */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F3FFC */ if (_t28) goto L_028F4000; else goto L_028F4008;
|
|
L_028F4000: ; // 0x28f4000
|
|
/* 028F4000 */ _t29 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028F4000 */ cpu->r[11] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F4004 */ _t30 = cpu->r[11] + 0x000000D8u;
|
|
/* 028F4004 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
L_028F4008: ; // 0x28f4008
|
|
/* 028F4008 */ _t31 = cpu->r[12] + 0x00000028u;
|
|
/* 028F4008 */ rbrew_write32(cpu->mem, _t31, cpu->r[0]);
|
|
/* 028F400C */ _t32 = cpu->r[30] + 0x00000004u;
|
|
/* 028F400C */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F4010 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F4014 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4014 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F4014 */ if (_t34) goto L_028F4070; else goto L_028F4018;
|
|
L_028F4018: ; // 0x28f4018
|
|
/* 028F4018 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F401C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F401C */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F401C */ if (_t36) goto L_028F4020; else goto L_028F4064;
|
|
L_028F4020: ; // 0x28f4020
|
|
/* 028F4020 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028F4024 */ _t37 = cpu->r[29] + 0xFFFF9B14u;
|
|
/* 028F4024 */ cpu->r[3] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F4028 */ Gambit_fn_028F0178(cpu);
|
|
/* 028F402C */ cpu->r[3] = cpu->r[30] + 0x00000004u;
|
|
/* 028F4030 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F4034 */ Gambit_fn_028EFBD0(cpu);
|
|
/* 028F4038 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F403C */ Gambit_fn_028F3D08(cpu);
|
|
/* 028F4040 */ cpu->r[3] = cpu->r[30] + 0x00000004u;
|
|
/* 028F4044 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F4048 */ Gambit_fn_028EFC14(cpu);
|
|
/* 028F404C */ _t38 = cpu->r[29] + 0xFFFF9B14u;
|
|
/* 028F404C */ cpu->r[3] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F4050 */ Gambit_fn_028F0188(cpu);
|
|
/* 028F4054 */ _t39 = cpu->r[30] + 0x00000000u;
|
|
/* 028F4054 */ cpu->r[0] = rbrew_read8(cpu->mem, _t39);
|
|
/* 028F4058 */ cpu->r[11] = cpu->r[0] | 0x00000001u;
|
|
/* 028F405C */ cpu->r[9] = cpu->r[11] & 0x000000F7u;
|
|
/* 028F405C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F4060 */ goto L_028F407C;
|
|
L_028F4064: ; // 0x28f4064
|
|
/* 028F4064 */ _t40 = cpu->r[30] + 0x00000010u;
|
|
/* 028F4064 */ cpu->r[10] = rbrew_read8(cpu->mem, _t40);
|
|
/* 028F4068 */ cpu->r[10] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Du);
|
|
/* 028F406C */ _t41 = cpu->r[30] + 0x00000010u;
|
|
/* 028F406C */ rbrew_write8(cpu->mem, _t41, (uint8_t)cpu->r[10]);
|
|
L_028F4070: ; // 0x28f4070
|
|
/* 028F4070 */ _t42 = cpu->r[30] + 0x00000000u;
|
|
/* 028F4070 */ cpu->r[0] = rbrew_read8(cpu->mem, _t42);
|
|
/* 028F4074 */ cpu->r[11] = cpu->r[0] | 0x00000001u;
|
|
/* 028F4078 */ cpu->r[9] = cpu->r[11] & 0x000000F7u;
|
|
/* 028F4078 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
L_028F407C: ; // 0x28f407c
|
|
/* 028F407C */ cpu->r[9] = cpu->r[9] & 0x000000FDu;
|
|
/* 028F407C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F4080 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F4080 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F4084 */ _t43 = cpu->r[30] + 0x00000000u;
|
|
/* 028F4084 */ rbrew_write8(cpu->mem, _t43, (uint8_t)cpu->r[9]);
|
|
/* 028F4088 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4088 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028F4088 */ if (_t45) goto L_028F40AC; else goto L_028F408C;
|
|
L_028F408C: ; // 0x28f408c
|
|
/* 028F408C */ cpu->r[3] = cpu->r[30];
|
|
/* 028F4090 */ Gambit_fn_028F3D7C(cpu);
|
|
/* 028F4094 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F4098 */ Gambit_fn_028F3DE4(cpu);
|
|
/* 028F409C */ cpu->r[3] = cpu->r[30];
|
|
/* 028F40A0 */ Gambit_fn_028F3E4C(cpu);
|
|
/* 028F40A4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F40A8 */ Gambit_fn_028F3EB4(cpu);
|
|
L_028F40AC: ; // 0x28f40ac
|
|
/* 028F40AC */ _t46 = cpu->r[30] + 0x00000078u;
|
|
/* 028F40AC */ cpu->r[10] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F40B0 */ _t47 = cpu->r[10] + 0x00000020u;
|
|
/* 028F40B0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F40B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F40B8 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F40B8 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F40B8 */ if (_t49) goto L_028F40D0; else goto L_028F40BC;
|
|
L_028F40BC: ; // 0x28f40bc
|
|
/* 028F40BC */ _t50 = cpu->r[3] + 0x00000000u;
|
|
/* 028F40BC */ cpu->r[11] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F40C0 */ _t51 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028F40C0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F40C4 */ cpu->ctr = cpu->r[12];
|
|
/* 028F40C8 */ cpu->r[4] = cpu->r[30];
|
|
/* 028F40CC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028F40D0: ; // 0x28f40d0
|
|
/* 028F40D0 */ _t52 = cpu->r[1] + 0x00000008u;
|
|
/* 028F40D0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028F40D4 */ _t53 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F40D4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028F40D8 */ _t54 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F40D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028F40DC */ cpu->r[3] = cpu->r[31];
|
|
/* 028F40E0 */ _t55 = cpu->r[1] + 0x00000010u;
|
|
/* 028F40E0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028F40E4 */ cpu->lr = cpu->r[0];
|
|
/* 028F40E8 */ _t56 = cpu->r[1] + 0x00000014u;
|
|
/* 028F40E8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028F40EC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F40F0 */ return;
|
|
}
|
|
|
|
// fn_028F3F20 @ 0x28f3f20
|
|
void Gambit_fn_028F3F20(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F3F20: ; // 0x28f3f20
|
|
/* 028F3F20 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F3F20 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3F20 */ cpu->r[1] = _t0;
|
|
/* 028F3F24 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3F24 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F3F28 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3F28 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F3F2C */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028F3F2C */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028F3F30 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3F30 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028F3F34 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3F34 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F3F38 */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 028F3F38 */ cpu->r[9] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028F3F3C */ cpu->r[30] = cpu->r[3];
|
|
/* 028F3F40 */ cpu->r[31] = 0x00000000u;
|
|
/* 028F3F44 */ cpu->r[28] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F3F48 */ cpu->r[29] = rbrew_rlwinm(cpu->r[9], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F3F4C */ Gambit_fn_028F3C4C(cpu);
|
|
/* 028F3F50 */ cpu->r[3] = cpu->r[30] + 0x0000003Cu;
|
|
/* 028F3F54 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F3F58 */ cpu->r[5] = cpu->r[29];
|
|
/* 028F3F5C */ Gambit_fn_0295ECC4(cpu);
|
|
/* 028F3F60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3F64 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3F64 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F3F64 */ if (_t8) goto L_028F3F84; else goto L_028F3F68;
|
|
L_028F3F68: ; // 0x28f3f68
|
|
/* 028F3F68 */ _t9 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3F68 */ cpu->r[9] = rbrew_read8(cpu->mem, _t9);
|
|
/* 028F3F6C */ cpu->r[9] = cpu->r[9] & 0x000000FDu;
|
|
/* 028F3F6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F3F70 */ cpu->r[31] = 0x00000001u;
|
|
/* 028F3F74 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F3F74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3F78 */ _t10 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3F78 */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[9]);
|
|
/* 028F3F7C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3F7C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F3F7C */ if (_t12) goto L_028F40AC; else goto L_028F3F80;
|
|
L_028F3F80: ; // 0x28f3f80
|
|
/* 028F3F80 */ goto L_028F408C;
|
|
L_028F3F84: ; // 0x28f3f84
|
|
/* 028F3F84 */ cpu->r[5] = cpu->r[29];
|
|
/* 028F3F88 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F3F8C */ cpu->r[3] = cpu->r[30] + 0x00000050u;
|
|
/* 028F3F90 */ Gambit_fn_0295ECC4(cpu);
|
|
/* 028F3F94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3F98 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3F98 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F3F98 */ if (_t14) goto L_028F3FB8; else goto L_028F3F9C;
|
|
L_028F3F9C: ; // 0x28f3f9c
|
|
/* 028F3F9C */ _t15 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3F9C */ cpu->r[9] = rbrew_read8(cpu->mem, _t15);
|
|
/* 028F3FA0 */ cpu->r[9] = cpu->r[9] & 0x000000FDu;
|
|
/* 028F3FA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F3FA4 */ cpu->r[31] = 0x00000002u;
|
|
/* 028F3FA8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F3FA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3FAC */ _t16 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3FAC */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[9]);
|
|
/* 028F3FB0 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3FB0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F3FB0 */ if (_t18) goto L_028F40AC; else goto L_028F3FB4;
|
|
L_028F3FB4: ; // 0x28f3fb4
|
|
/* 028F3FB4 */ goto L_028F408C;
|
|
L_028F3FB8: ; // 0x28f3fb8
|
|
/* 028F3FB8 */ cpu->r[5] = cpu->r[29];
|
|
/* 028F3FBC */ cpu->r[4] = cpu->r[28];
|
|
/* 028F3FC0 */ cpu->r[3] = cpu->r[30] + 0x00000064u;
|
|
/* 028F3FC4 */ Gambit_fn_0295ECC4(cpu);
|
|
/* 028F3FC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000001u);
|
|
/* 028F3FCC */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3FCC */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F3FCC */ if (_t20) goto L_028F3FD0; else goto L_028F3FEC;
|
|
L_028F3FD0: ; // 0x28f3fd0
|
|
/* 028F3FD0 */ _t21 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3FD0 */ cpu->r[9] = rbrew_read8(cpu->mem, _t21);
|
|
/* 028F3FD4 */ cpu->r[9] = cpu->r[9] & 0x000000FDu;
|
|
/* 028F3FD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F3FD8 */ cpu->r[31] = 0x00000003u;
|
|
/* 028F3FDC */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F3FDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3FE0 */ _t22 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3FE0 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[9]);
|
|
/* 028F3FE4 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3FE4 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028F3FE4 */ if (_t24) goto L_028F40AC; else goto L_028F3FE8;
|
|
L_028F3FE8: ; // 0x28f3fe8
|
|
/* 028F3FE8 */ goto L_028F408C;
|
|
L_028F3FEC: ; // 0x28f3fec
|
|
/* 028F3FEC */ _t25 = cpu->r[30] + 0x00000064u;
|
|
/* 028F3FEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F3FF0 */ _t26 = cpu->r[30] + 0x00000078u;
|
|
/* 028F3FF0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F3FF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3FF8 */ cpu->r[0] = 0x00000002u;
|
|
/* 028F3FFC */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3FFC */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F3FFC */ if (_t28) goto L_028F4000; else goto L_028F4008;
|
|
L_028F4000: ; // 0x28f4000
|
|
/* 028F4000 */ _t29 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028F4000 */ cpu->r[11] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F4004 */ _t30 = cpu->r[11] + 0x000000D8u;
|
|
/* 028F4004 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
L_028F4008: ; // 0x28f4008
|
|
/* 028F4008 */ _t31 = cpu->r[12] + 0x00000028u;
|
|
/* 028F4008 */ rbrew_write32(cpu->mem, _t31, cpu->r[0]);
|
|
/* 028F400C */ _t32 = cpu->r[30] + 0x00000004u;
|
|
/* 028F400C */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F4010 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F4014 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4014 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F4014 */ if (_t34) goto L_028F4070; else goto L_028F4018;
|
|
L_028F4018: ; // 0x28f4018
|
|
/* 028F4018 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F401C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F401C */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F401C */ if (_t36) goto L_028F4020; else goto L_028F4064;
|
|
L_028F4020: ; // 0x28f4020
|
|
/* 028F4020 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028F4024 */ _t37 = cpu->r[29] + 0xFFFF9B14u;
|
|
/* 028F4024 */ cpu->r[3] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F4028 */ Gambit_fn_028F0178(cpu);
|
|
/* 028F402C */ cpu->r[3] = cpu->r[30] + 0x00000004u;
|
|
/* 028F4030 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F4034 */ Gambit_fn_028EFBD0(cpu);
|
|
/* 028F4038 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F403C */ Gambit_fn_028F3D08(cpu);
|
|
/* 028F4040 */ cpu->r[3] = cpu->r[30] + 0x00000004u;
|
|
/* 028F4044 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F4048 */ Gambit_fn_028EFC14(cpu);
|
|
/* 028F404C */ _t38 = cpu->r[29] + 0xFFFF9B14u;
|
|
/* 028F404C */ cpu->r[3] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F4050 */ Gambit_fn_028F0188(cpu);
|
|
/* 028F4054 */ _t39 = cpu->r[30] + 0x00000000u;
|
|
/* 028F4054 */ cpu->r[0] = rbrew_read8(cpu->mem, _t39);
|
|
/* 028F4058 */ cpu->r[11] = cpu->r[0] | 0x00000001u;
|
|
/* 028F405C */ cpu->r[9] = cpu->r[11] & 0x000000F7u;
|
|
/* 028F405C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F4060 */ goto L_028F407C;
|
|
L_028F4064: ; // 0x28f4064
|
|
/* 028F4064 */ _t40 = cpu->r[30] + 0x00000010u;
|
|
/* 028F4064 */ cpu->r[10] = rbrew_read8(cpu->mem, _t40);
|
|
/* 028F4068 */ cpu->r[10] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Du);
|
|
/* 028F406C */ _t41 = cpu->r[30] + 0x00000010u;
|
|
/* 028F406C */ rbrew_write8(cpu->mem, _t41, (uint8_t)cpu->r[10]);
|
|
L_028F4070: ; // 0x28f4070
|
|
/* 028F4070 */ _t42 = cpu->r[30] + 0x00000000u;
|
|
/* 028F4070 */ cpu->r[0] = rbrew_read8(cpu->mem, _t42);
|
|
/* 028F4074 */ cpu->r[11] = cpu->r[0] | 0x00000001u;
|
|
/* 028F4078 */ cpu->r[9] = cpu->r[11] & 0x000000F7u;
|
|
/* 028F4078 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
L_028F407C: ; // 0x28f407c
|
|
/* 028F407C */ cpu->r[9] = cpu->r[9] & 0x000000FDu;
|
|
/* 028F407C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F4080 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F4080 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F4084 */ _t43 = cpu->r[30] + 0x00000000u;
|
|
/* 028F4084 */ rbrew_write8(cpu->mem, _t43, (uint8_t)cpu->r[9]);
|
|
/* 028F4088 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4088 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028F4088 */ if (_t45) goto L_028F40AC; else goto L_028F408C;
|
|
L_028F408C: ; // 0x28f408c
|
|
/* 028F408C */ cpu->r[3] = cpu->r[30];
|
|
/* 028F4090 */ Gambit_fn_028F3D7C(cpu);
|
|
/* 028F4094 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F4098 */ Gambit_fn_028F3DE4(cpu);
|
|
/* 028F409C */ cpu->r[3] = cpu->r[30];
|
|
/* 028F40A0 */ Gambit_fn_028F3E4C(cpu);
|
|
/* 028F40A4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F40A8 */ Gambit_fn_028F3EB4(cpu);
|
|
L_028F40AC: ; // 0x28f40ac
|
|
/* 028F40AC */ _t46 = cpu->r[30] + 0x00000078u;
|
|
/* 028F40AC */ cpu->r[10] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F40B0 */ _t47 = cpu->r[10] + 0x00000020u;
|
|
/* 028F40B0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F40B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F40B8 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F40B8 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F40B8 */ if (_t49) goto L_028F40D0; else goto L_028F40BC;
|
|
L_028F40BC: ; // 0x28f40bc
|
|
/* 028F40BC */ _t50 = cpu->r[3] + 0x00000000u;
|
|
/* 028F40BC */ cpu->r[11] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F40C0 */ _t51 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028F40C0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F40C4 */ cpu->ctr = cpu->r[12];
|
|
/* 028F40C8 */ cpu->r[4] = cpu->r[30];
|
|
/* 028F40CC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028F40D0: ; // 0x28f40d0
|
|
/* 028F40D0 */ _t52 = cpu->r[1] + 0x00000008u;
|
|
/* 028F40D0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028F40D4 */ _t53 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F40D4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028F40D8 */ _t54 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F40D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028F40DC */ cpu->r[3] = cpu->r[31];
|
|
/* 028F40E0 */ _t55 = cpu->r[1] + 0x00000010u;
|
|
/* 028F40E0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028F40E4 */ cpu->lr = cpu->r[0];
|
|
/* 028F40E8 */ _t56 = cpu->r[1] + 0x00000014u;
|
|
/* 028F40E8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028F40EC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F40F0 */ return;
|
|
}
|
|
|
|
// fn_028F40F4 @ 0x28f40f4
|
|
void Gambit_fn_028F40F4(CPUState* cpu) {
|
|
uint32_t _t0, _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_028F40F4: ; // 0x28f40f4
|
|
/* 028F40F4 */ cpu->r[0] = cpu->lr;
|
|
/* 028F40F8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F40F8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F40F8 */ cpu->r[1] = _t0;
|
|
/* 028F40FC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F40FC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F4100 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F4100 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028F4104 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028F4104 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028F4108 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028F4108 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028F410C */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F410C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F4110 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F4114 */ _t6 = cpu->r[29] + 0x00000000u;
|
|
/* 028F4114 */ cpu->r[8] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028F4118 */ cpu->r[28] = cpu->r[5];
|
|
/* 028F411C */ cpu->r[10] = rbrew_rlwinm(cpu->r[8], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F411C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F4120 */ cpu->r[30] = cpu->r[4];
|
|
/* 028F4124 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4124 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F4124 */ if (_t8) goto L_028F4134; else goto L_028F4128;
|
|
L_028F4128: ; // 0x28f4128
|
|
/* 028F4128 */ cpu->r[3] = cpu->r[29];
|
|
/* 028F412C */ cpu->r[4] = 0x00000000u;
|
|
/* 028F4130 */ Gambit_fn_028F3F1C(cpu);
|
|
L_028F4134: ; // 0x28f4134
|
|
/* 028F4134 */ _t9 = cpu->r[29] + 0x00000078u;
|
|
/* 028F4134 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F4138 */ _t10 = cpu->r[12] + 0x00000028u;
|
|
/* 028F4138 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F413C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F4140 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4140 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F4140 */ if (_t12) goto L_028F414C; else goto L_028F4144;
|
|
L_028F4144: ; // 0x28f4144
|
|
/* 028F4144 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F4148 */ Gambit_fn_028F2E7C(cpu);
|
|
L_028F414C: ; // 0x28f414c
|
|
/* 028F414C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F4150 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4150 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F4150 */ if (_t14) goto L_028F4174; else goto L_028F4154;
|
|
L_028F4154: ; // 0x28f4154
|
|
/* 028F4154 */ _t15 = cpu->r[29] + 0x00000010u;
|
|
/* 028F4154 */ cpu->r[9] = rbrew_read8(cpu->mem, _t15);
|
|
/* 028F4158 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F4158 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F415C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F415C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F415C */ if (_t17) goto L_028F4174; else goto L_028F4160;
|
|
L_028F4160: ; // 0x28f4160
|
|
/* 028F4160 */ _t18 = cpu->r[29] + 0x00000004u;
|
|
/* 028F4160 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F4164 */ _t19 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028F4164 */ cpu->r[4] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F4168 */ rbrew_dispatch(cpu, 0x02d05888u);
|
|
/* 028F416C */ cpu->r[3] = cpu->r[31];
|
|
/* 028F4170 */ goto L_028F4180;
|
|
L_028F4174: ; // 0x28f4174
|
|
/* 028F4174 */ cpu->r[3] = cpu->r[29];
|
|
/* 028F4178 */ Gambit_fn_028F3D08(cpu);
|
|
/* 028F417C */ cpu->r[3] = cpu->r[31];
|
|
L_028F4180: ; // 0x28f4180
|
|
/* 028F4180 */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 028F4180 */ cpu->r[28] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F4184 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F4184 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F4188 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F4188 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F418C */ _t23 = cpu->r[1] + 0x00000010u;
|
|
/* 028F418C */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F4190 */ cpu->lr = cpu->r[0];
|
|
/* 028F4194 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 028F4194 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F4198 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F419C */ return;
|
|
}
|
|
|
|
// fn_028F40F8 @ 0x28f40f8
|
|
void Gambit_fn_028F40F8(CPUState* cpu) {
|
|
uint32_t _t0, _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_028F40F8: ; // 0x28f40f8
|
|
/* 028F40F8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F40F8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F40F8 */ cpu->r[1] = _t0;
|
|
/* 028F40FC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F40FC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F4100 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F4100 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028F4104 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028F4104 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028F4108 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028F4108 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028F410C */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F410C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F4110 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F4114 */ _t6 = cpu->r[29] + 0x00000000u;
|
|
/* 028F4114 */ cpu->r[8] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028F4118 */ cpu->r[28] = cpu->r[5];
|
|
/* 028F411C */ cpu->r[10] = rbrew_rlwinm(cpu->r[8], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F411C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F4120 */ cpu->r[30] = cpu->r[4];
|
|
/* 028F4124 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4124 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F4124 */ if (_t8) goto L_028F4134; else goto L_028F4128;
|
|
L_028F4128: ; // 0x28f4128
|
|
/* 028F4128 */ cpu->r[3] = cpu->r[29];
|
|
/* 028F412C */ cpu->r[4] = 0x00000000u;
|
|
/* 028F4130 */ Gambit_fn_028F3F1C(cpu);
|
|
L_028F4134: ; // 0x28f4134
|
|
/* 028F4134 */ _t9 = cpu->r[29] + 0x00000078u;
|
|
/* 028F4134 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F4138 */ _t10 = cpu->r[12] + 0x00000028u;
|
|
/* 028F4138 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F413C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F4140 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4140 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F4140 */ if (_t12) goto L_028F414C; else goto L_028F4144;
|
|
L_028F4144: ; // 0x28f4144
|
|
/* 028F4144 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F4148 */ Gambit_fn_028F2E7C(cpu);
|
|
L_028F414C: ; // 0x28f414c
|
|
/* 028F414C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F4150 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4150 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F4150 */ if (_t14) goto L_028F4174; else goto L_028F4154;
|
|
L_028F4154: ; // 0x28f4154
|
|
/* 028F4154 */ _t15 = cpu->r[29] + 0x00000010u;
|
|
/* 028F4154 */ cpu->r[9] = rbrew_read8(cpu->mem, _t15);
|
|
/* 028F4158 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F4158 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F415C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F415C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F415C */ if (_t17) goto L_028F4174; else goto L_028F4160;
|
|
L_028F4160: ; // 0x28f4160
|
|
/* 028F4160 */ _t18 = cpu->r[29] + 0x00000004u;
|
|
/* 028F4160 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F4164 */ _t19 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028F4164 */ cpu->r[4] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F4168 */ rbrew_dispatch(cpu, 0x02d05888u);
|
|
/* 028F416C */ cpu->r[3] = cpu->r[31];
|
|
/* 028F4170 */ goto L_028F4180;
|
|
L_028F4174: ; // 0x28f4174
|
|
/* 028F4174 */ cpu->r[3] = cpu->r[29];
|
|
/* 028F4178 */ Gambit_fn_028F3D08(cpu);
|
|
/* 028F417C */ cpu->r[3] = cpu->r[31];
|
|
L_028F4180: ; // 0x28f4180
|
|
/* 028F4180 */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 028F4180 */ cpu->r[28] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F4184 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F4184 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F4188 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F4188 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F418C */ _t23 = cpu->r[1] + 0x00000010u;
|
|
/* 028F418C */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F4190 */ cpu->lr = cpu->r[0];
|
|
/* 028F4194 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 028F4194 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F4198 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F419C */ return;
|
|
}
|
|
|
|
// fn_028F41A0 @ 0x28f41a0
|
|
void Gambit_fn_028F41A0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028F41A0: ; // 0x28f41a0
|
|
/* 028F41A0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000001u);
|
|
/* 028F41A4 */ _t0 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F41A4 */ _t1 = _t0 & 0x00000001u;
|
|
/* 028F41A4 */ if (_t1) goto L_028F41BC; else goto L_028F41A8;
|
|
L_028F41A8: ; // 0x28f41a8
|
|
/* 028F41A8 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F41A8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F41A8 */ if (_t3) goto L_028F41C4; else goto L_028F41AC;
|
|
L_028F41AC: ; // 0x28f41ac
|
|
/* 028F41AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000002u);
|
|
/* 028F41B0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F41B0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F41B0 */ if (_t5) goto L_028F41CC; else goto L_028F41B4;
|
|
L_028F41B4: ; // 0x28f41b4
|
|
/* 028F41B4 */ cpu->r[3] = 0x00000000u;
|
|
/* 028F41B8 */ return;
|
|
L_028F41BC: ; // 0x28f41bc
|
|
/* 028F41BC */ cpu->r[3] = cpu->r[3] + 0x0000003Cu;
|
|
/* 028F41C0 */ return;
|
|
L_028F41C4: ; // 0x28f41c4
|
|
/* 028F41C4 */ cpu->r[3] = cpu->r[3] + 0x00000050u;
|
|
/* 028F41C8 */ return;
|
|
L_028F41CC: ; // 0x28f41cc
|
|
/* 028F41CC */ cpu->r[3] = cpu->r[3] + 0x00000064u;
|
|
/* 028F41D0 */ return;
|
|
}
|
|
|
|
// fn_028F41D4 @ 0x28f41d4
|
|
void Gambit_fn_028F41D4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F41D4: ; // 0x28f41d4
|
|
/* 028F41D4 */ cpu->r[0] = cpu->lr;
|
|
/* 028F41D8 */ _t0 = cpu->r[1] + 0xFFFFFFC0u;
|
|
/* 028F41D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F41D8 */ cpu->r[1] = _t0;
|
|
/* 028F41DC */ _t1 = cpu->r[1] + 0x00000044u;
|
|
/* 028F41DC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F41E0 */ /* nop */
|
|
/* 028F41E4 */ cpu->r[28] = cpu->r[3];
|
|
/* 028F41E8 */ cpu->r[27] = cpu->r[5];
|
|
/* 028F41EC */ cpu->r[29] = cpu->r[4];
|
|
/* 028F41EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F41F0 */ cpu->r[26] = 0x10140000u;
|
|
/* 028F41F4 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F41F8 */ cpu->r[25] = 0x10140000u;
|
|
/* 028F41FC */ cpu->r[26] = cpu->r[26] + 0xFFFFCD84u;
|
|
/* 028F4200 */ cpu->r[24] = 0x101D0000u;
|
|
/* 028F4204 */ cpu->r[25] = cpu->r[25] + 0xFFFFCD6Cu;
|
|
/* 028F4208 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4208 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F4208 */ if (_t3) goto L_028F420C; else goto L_028F429C;
|
|
L_028F420C: ; // 0x28f420c
|
|
/* 028F420C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F4210 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4210 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F4210 */ if (_t5) goto L_028F4214; else goto L_028F421C;
|
|
L_028F4214: ; // 0x28f4214
|
|
/* 028F4214 */ _t6 = cpu->r[24] + 0xFFFF98F0u;
|
|
/* 028F4214 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F4218 */ Gambit_fn_02826F20(cpu);
|
|
L_028F421C: ; // 0x28f421c
|
|
/* 028F421C */ _t7 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F421C */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F4220 */ _t8 = cpu->r[8] + 0x00000034u;
|
|
/* 028F4220 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F4224 */ cpu->ctr = cpu->r[0];
|
|
/* 028F4228 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F422C */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[29] * (int32_t)0x0000000Cu);
|
|
/* 028F4230 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4234 */ cpu->r[23] = cpu->r[3];
|
|
/* 028F4238 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F423C */ cpu->r[31] = cpu->r[29];
|
|
/* 028F4240 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F4244 */ _t9 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4244 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F4244 */ if (_t10) goto L_028F424C; else goto L_028F4248;
|
|
L_028F4248: ; // 0x28f4248
|
|
/* 028F4248 */ cpu->r[31] = 0x00000001u;
|
|
L_028F424C: ; // 0x28f424c
|
|
/* 028F424C */ cpu->r[21] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 028F4250 */ cpu->r[22] = 0x00000000u;
|
|
L_028F4254: ; // 0x28f4254
|
|
/* 028F4254 */ cpu->r[30] = cpu->r[23] + cpu->r[21];
|
|
/* 028F4254 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F4258 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4258 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F4258 */ if (_t12) goto L_028F4280; else goto L_028F425C;
|
|
L_028F425C: ; // 0x28f425c
|
|
/* 028F425C */ cpu->r[7] = cpu->r[30];
|
|
/* 028F425C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F4260 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4260 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F4260 */ if (_t14) goto L_028F4264; else goto L_028F4274;
|
|
L_028F4264: ; // 0x28f4264
|
|
/* 028F4264 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F4268 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F426C */ cpu->r[7] = cpu->r[3];
|
|
/* 028F426C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F4270 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4270 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F4270 */ if (_t16) goto L_028F427C; else goto L_028F4274;
|
|
L_028F4274: ; // 0x28f4274
|
|
/* 028F4274 */ _t17 = cpu->r[7] + 0x00000000u;
|
|
/* 028F4274 */ rbrew_write32(cpu->mem, _t17, cpu->r[26]);
|
|
/* 028F4278 */ _t18 = cpu->r[7] + 0x00000004u;
|
|
/* 028F4278 */ rbrew_write32(cpu->mem, _t18, cpu->r[25]);
|
|
L_028F427C: ; // 0x28f427c
|
|
/* 028F427C */ _t19 = cpu->r[30] + 0x00000008u;
|
|
/* 028F427C */ rbrew_write16(cpu->mem, _t19, (uint16_t)cpu->r[22]);
|
|
L_028F4280: ; // 0x28f4280
|
|
/* 028F4280 */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028F4280 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F4284 */ cpu->r[21] = cpu->r[21] + 0x0000000Cu;
|
|
/* 028F4288 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4288 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F4288 */ if (_t21) goto L_028F428C; else goto L_028F4254;
|
|
L_028F428C: ; // 0x28f428c
|
|
/* 028F428C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028F4290 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4290 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F4290 */ if (_t23) goto L_028F429C; else goto L_028F4294;
|
|
L_028F4294: ; // 0x28f4294
|
|
/* 028F4294 */ _t24 = cpu->r[28] + 0x00000020u;
|
|
/* 028F4294 */ rbrew_write32(cpu->mem, _t24, cpu->r[23]);
|
|
/* 028F4298 */ _t25 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028F4298 */ rbrew_write32(cpu->mem, _t25, cpu->r[29]);
|
|
L_028F429C: ; // 0x28f429c
|
|
/* 028F429C */ _t26 = cpu->r[28] + 0x00000078u;
|
|
/* 028F429C */ cpu->r[12] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F42A0 */ _t27 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028F42A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F42A4 */ _t28 = cpu->r[12] + 0x00000010u;
|
|
/* 028F42A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F42A8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F42AC */ cpu->r[31] = cpu->r[30] + cpu->r[0];
|
|
/* 028F42B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F42B4 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F42B4 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F42B4 */ if (_t30) goto L_028F438C; else goto L_028F42B8;
|
|
L_028F42B8: ; // 0x28f42b8
|
|
/* 028F42B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F42BC */ _t31 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F42BC */ _t32 = _t31 & 0x00000001u;
|
|
/* 028F42BC */ if (_t32) goto L_028F42E0; else goto L_028F42C0;
|
|
L_028F42C0: ; // 0x28f42c0
|
|
/* 028F42C0 */ cpu->r[30] = cpu->r[30] + 0x00000080u;
|
|
/* 028F42C4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F42C8 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F42C8 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F42C8 */ if (_t34) goto L_028F42CC; else goto L_028F42C0;
|
|
L_028F42CC: ; // 0x28f42cc
|
|
/* 028F42CC */ /* nop */
|
|
/* 028F42D0 */ _t35 = cpu->r[1] + 0x00000044u;
|
|
/* 028F42D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F42D4 */ cpu->lr = cpu->r[0];
|
|
/* 028F42D8 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 028F42DC */ return;
|
|
L_028F42E0: ; // 0x28f42e0
|
|
/* 028F42E0 */ cpu->r[20] = (uint32_t)((int32_t)cpu->r[29] * (int32_t)0x0000000Cu);
|
|
L_028F42E4: ; // 0x28f42e4
|
|
/* 028F42E4 */ cpu->r[11] = cpu->r[27];
|
|
/* 028F42E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028F42E8 */ cpu->r[21] = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F42EC */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F42EC */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F42EC */ if (_t37) goto L_028F42F0; else goto L_028F42FC;
|
|
L_028F42F0: ; // 0x28f42f0
|
|
/* 028F42F0 */ _t38 = cpu->r[24] + 0xFFFF98F0u;
|
|
/* 028F42F0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F42F4 */ Gambit_fn_02826F20(cpu);
|
|
/* 028F42F8 */ cpu->r[11] = cpu->r[3];
|
|
L_028F42FC: ; // 0x28f42fc
|
|
/* 028F42FC */ _t39 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028F42FC */ cpu->r[12] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F4300 */ _t40 = cpu->r[12] + 0x00000034u;
|
|
/* 028F4300 */ cpu->r[0] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028F4304 */ cpu->ctr = cpu->r[0];
|
|
/* 028F4308 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F430C */ cpu->r[4] = cpu->r[20];
|
|
/* 028F4310 */ cpu->r[3] = cpu->r[11];
|
|
/* 028F4314 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4318 */ cpu->r[22] = cpu->r[3];
|
|
/* 028F431C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4320 */ cpu->r[28] = cpu->r[29];
|
|
/* 028F4324 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F4328 */ _t41 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4328 */ _t42 = _t41 & 0x00000001u;
|
|
/* 028F4328 */ if (_t42) goto L_028F4330; else goto L_028F432C;
|
|
L_028F432C: ; // 0x28f432c
|
|
/* 028F432C */ cpu->r[28] = 0x00000001u;
|
|
L_028F4330: ; // 0x28f4330
|
|
/* 028F4330 */ cpu->r[18] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 028F4334 */ cpu->r[19] = 0x00000000u;
|
|
L_028F4338: ; // 0x28f4338
|
|
/* 028F4338 */ cpu->r[23] = cpu->r[22] + cpu->r[18];
|
|
/* 028F4338 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028F433C */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F433C */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F433C */ if (_t44) goto L_028F4364; else goto L_028F4340;
|
|
L_028F4340: ; // 0x28f4340
|
|
/* 028F4340 */ cpu->r[5] = cpu->r[23];
|
|
/* 028F4340 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028F4344 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4344 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028F4344 */ if (_t46) goto L_028F4348; else goto L_028F4358;
|
|
L_028F4348: ; // 0x28f4348
|
|
/* 028F4348 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F434C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F4350 */ cpu->r[5] = cpu->r[3];
|
|
/* 028F4350 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028F4354 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4354 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028F4354 */ if (_t48) goto L_028F4360; else goto L_028F4358;
|
|
L_028F4358: ; // 0x28f4358
|
|
/* 028F4358 */ _t49 = cpu->r[5] + 0x00000000u;
|
|
/* 028F4358 */ rbrew_write32(cpu->mem, _t49, cpu->r[26]);
|
|
/* 028F435C */ _t50 = cpu->r[5] + 0x00000004u;
|
|
/* 028F435C */ rbrew_write32(cpu->mem, _t50, cpu->r[25]);
|
|
L_028F4360: ; // 0x28f4360
|
|
/* 028F4360 */ _t51 = cpu->r[23] + 0x00000008u;
|
|
/* 028F4360 */ rbrew_write16(cpu->mem, _t51, (uint16_t)cpu->r[19]);
|
|
L_028F4364: ; // 0x28f4364
|
|
/* 028F4364 */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 028F4364 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F4368 */ cpu->r[18] = cpu->r[18] + 0x0000000Cu;
|
|
/* 028F436C */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F436C */ _t53 = _t52 & 0x00000001u;
|
|
/* 028F436C */ if (_t53) goto L_028F4370; else goto L_028F4338;
|
|
L_028F4370: ; // 0x28f4370
|
|
/* 028F4370 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], 0x00000000u);
|
|
/* 028F4374 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4374 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028F4374 */ if (_t55) goto L_028F4380; else goto L_028F4378;
|
|
L_028F4378: ; // 0x28f4378
|
|
/* 028F4378 */ _t56 = cpu->r[21] + 0x00000004u;
|
|
/* 028F4378 */ rbrew_write32(cpu->mem, _t56, cpu->r[22]);
|
|
/* 028F437C */ _t57 = cpu->r[21] + 0x00000000u;
|
|
/* 028F437C */ rbrew_write32(cpu->mem, _t57, cpu->r[29]);
|
|
L_028F4380: ; // 0x28f4380
|
|
/* 028F4380 */ cpu->r[30] = cpu->r[30] + 0x00000080u;
|
|
/* 028F4384 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F4388 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4388 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028F4388 */ if (_t59) goto L_028F438C; else goto L_028F42E4;
|
|
L_028F438C: ; // 0x28f438c
|
|
/* 028F438C */ /* nop */
|
|
/* 028F4390 */ _t60 = cpu->r[1] + 0x00000044u;
|
|
/* 028F4390 */ cpu->r[0] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028F4394 */ cpu->lr = cpu->r[0];
|
|
/* 028F4398 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 028F439C */ return;
|
|
}
|
|
|
|
// fn_028F41D8 @ 0x28f41d8
|
|
void Gambit_fn_028F41D8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F41D8: ; // 0x28f41d8
|
|
/* 028F41D8 */ _t0 = cpu->r[1] + 0xFFFFFFC0u;
|
|
/* 028F41D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F41D8 */ cpu->r[1] = _t0;
|
|
/* 028F41DC */ _t1 = cpu->r[1] + 0x00000044u;
|
|
/* 028F41DC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F41E0 */ /* nop */
|
|
/* 028F41E4 */ cpu->r[28] = cpu->r[3];
|
|
/* 028F41E8 */ cpu->r[27] = cpu->r[5];
|
|
/* 028F41EC */ cpu->r[29] = cpu->r[4];
|
|
/* 028F41EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F41F0 */ cpu->r[26] = 0x10140000u;
|
|
/* 028F41F4 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F41F8 */ cpu->r[25] = 0x10140000u;
|
|
/* 028F41FC */ cpu->r[26] = cpu->r[26] + 0xFFFFCD84u;
|
|
/* 028F4200 */ cpu->r[24] = 0x101D0000u;
|
|
/* 028F4204 */ cpu->r[25] = cpu->r[25] + 0xFFFFCD6Cu;
|
|
/* 028F4208 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4208 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F4208 */ if (_t3) goto L_028F420C; else goto L_028F429C;
|
|
L_028F420C: ; // 0x28f420c
|
|
/* 028F420C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F4210 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4210 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F4210 */ if (_t5) goto L_028F4214; else goto L_028F421C;
|
|
L_028F4214: ; // 0x28f4214
|
|
/* 028F4214 */ _t6 = cpu->r[24] + 0xFFFF98F0u;
|
|
/* 028F4214 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F4218 */ Gambit_fn_02826F20(cpu);
|
|
L_028F421C: ; // 0x28f421c
|
|
/* 028F421C */ _t7 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F421C */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F4220 */ _t8 = cpu->r[8] + 0x00000034u;
|
|
/* 028F4220 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F4224 */ cpu->ctr = cpu->r[0];
|
|
/* 028F4228 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F422C */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[29] * (int32_t)0x0000000Cu);
|
|
/* 028F4230 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4234 */ cpu->r[23] = cpu->r[3];
|
|
/* 028F4238 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F423C */ cpu->r[31] = cpu->r[29];
|
|
/* 028F4240 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F4244 */ _t9 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4244 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F4244 */ if (_t10) goto L_028F424C; else goto L_028F4248;
|
|
L_028F4248: ; // 0x28f4248
|
|
/* 028F4248 */ cpu->r[31] = 0x00000001u;
|
|
L_028F424C: ; // 0x28f424c
|
|
/* 028F424C */ cpu->r[21] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 028F4250 */ cpu->r[22] = 0x00000000u;
|
|
L_028F4254: ; // 0x28f4254
|
|
/* 028F4254 */ cpu->r[30] = cpu->r[23] + cpu->r[21];
|
|
/* 028F4254 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F4258 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4258 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F4258 */ if (_t12) goto L_028F4280; else goto L_028F425C;
|
|
L_028F425C: ; // 0x28f425c
|
|
/* 028F425C */ cpu->r[7] = cpu->r[30];
|
|
/* 028F425C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F4260 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4260 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F4260 */ if (_t14) goto L_028F4264; else goto L_028F4274;
|
|
L_028F4264: ; // 0x28f4264
|
|
/* 028F4264 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F4268 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F426C */ cpu->r[7] = cpu->r[3];
|
|
/* 028F426C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F4270 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4270 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F4270 */ if (_t16) goto L_028F427C; else goto L_028F4274;
|
|
L_028F4274: ; // 0x28f4274
|
|
/* 028F4274 */ _t17 = cpu->r[7] + 0x00000000u;
|
|
/* 028F4274 */ rbrew_write32(cpu->mem, _t17, cpu->r[26]);
|
|
/* 028F4278 */ _t18 = cpu->r[7] + 0x00000004u;
|
|
/* 028F4278 */ rbrew_write32(cpu->mem, _t18, cpu->r[25]);
|
|
L_028F427C: ; // 0x28f427c
|
|
/* 028F427C */ _t19 = cpu->r[30] + 0x00000008u;
|
|
/* 028F427C */ rbrew_write16(cpu->mem, _t19, (uint16_t)cpu->r[22]);
|
|
L_028F4280: ; // 0x28f4280
|
|
/* 028F4280 */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028F4280 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F4284 */ cpu->r[21] = cpu->r[21] + 0x0000000Cu;
|
|
/* 028F4288 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4288 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F4288 */ if (_t21) goto L_028F428C; else goto L_028F4254;
|
|
L_028F428C: ; // 0x28f428c
|
|
/* 028F428C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028F4290 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4290 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F4290 */ if (_t23) goto L_028F429C; else goto L_028F4294;
|
|
L_028F4294: ; // 0x28f4294
|
|
/* 028F4294 */ _t24 = cpu->r[28] + 0x00000020u;
|
|
/* 028F4294 */ rbrew_write32(cpu->mem, _t24, cpu->r[23]);
|
|
/* 028F4298 */ _t25 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028F4298 */ rbrew_write32(cpu->mem, _t25, cpu->r[29]);
|
|
L_028F429C: ; // 0x28f429c
|
|
/* 028F429C */ _t26 = cpu->r[28] + 0x00000078u;
|
|
/* 028F429C */ cpu->r[12] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F42A0 */ _t27 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028F42A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F42A4 */ _t28 = cpu->r[12] + 0x00000010u;
|
|
/* 028F42A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F42A8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F42AC */ cpu->r[31] = cpu->r[30] + cpu->r[0];
|
|
/* 028F42B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F42B4 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F42B4 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F42B4 */ if (_t30) goto L_028F438C; else goto L_028F42B8;
|
|
L_028F42B8: ; // 0x28f42b8
|
|
/* 028F42B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F42BC */ _t31 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F42BC */ _t32 = _t31 & 0x00000001u;
|
|
/* 028F42BC */ if (_t32) goto L_028F42E0; else goto L_028F42C0;
|
|
L_028F42C0: ; // 0x28f42c0
|
|
/* 028F42C0 */ cpu->r[30] = cpu->r[30] + 0x00000080u;
|
|
/* 028F42C4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F42C8 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F42C8 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F42C8 */ if (_t34) goto L_028F42CC; else goto L_028F42C0;
|
|
L_028F42CC: ; // 0x28f42cc
|
|
/* 028F42CC */ /* nop */
|
|
/* 028F42D0 */ _t35 = cpu->r[1] + 0x00000044u;
|
|
/* 028F42D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F42D4 */ cpu->lr = cpu->r[0];
|
|
/* 028F42D8 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 028F42DC */ return;
|
|
L_028F42E0: ; // 0x28f42e0
|
|
/* 028F42E0 */ cpu->r[20] = (uint32_t)((int32_t)cpu->r[29] * (int32_t)0x0000000Cu);
|
|
L_028F42E4: ; // 0x28f42e4
|
|
/* 028F42E4 */ cpu->r[11] = cpu->r[27];
|
|
/* 028F42E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028F42E8 */ cpu->r[21] = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F42EC */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F42EC */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F42EC */ if (_t37) goto L_028F42F0; else goto L_028F42FC;
|
|
L_028F42F0: ; // 0x28f42f0
|
|
/* 028F42F0 */ _t38 = cpu->r[24] + 0xFFFF98F0u;
|
|
/* 028F42F0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F42F4 */ Gambit_fn_02826F20(cpu);
|
|
/* 028F42F8 */ cpu->r[11] = cpu->r[3];
|
|
L_028F42FC: ; // 0x28f42fc
|
|
/* 028F42FC */ _t39 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028F42FC */ cpu->r[12] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F4300 */ _t40 = cpu->r[12] + 0x00000034u;
|
|
/* 028F4300 */ cpu->r[0] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028F4304 */ cpu->ctr = cpu->r[0];
|
|
/* 028F4308 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F430C */ cpu->r[4] = cpu->r[20];
|
|
/* 028F4310 */ cpu->r[3] = cpu->r[11];
|
|
/* 028F4314 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4318 */ cpu->r[22] = cpu->r[3];
|
|
/* 028F431C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4320 */ cpu->r[28] = cpu->r[29];
|
|
/* 028F4324 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F4328 */ _t41 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4328 */ _t42 = _t41 & 0x00000001u;
|
|
/* 028F4328 */ if (_t42) goto L_028F4330; else goto L_028F432C;
|
|
L_028F432C: ; // 0x28f432c
|
|
/* 028F432C */ cpu->r[28] = 0x00000001u;
|
|
L_028F4330: ; // 0x28f4330
|
|
/* 028F4330 */ cpu->r[18] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 028F4334 */ cpu->r[19] = 0x00000000u;
|
|
L_028F4338: ; // 0x28f4338
|
|
/* 028F4338 */ cpu->r[23] = cpu->r[22] + cpu->r[18];
|
|
/* 028F4338 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028F433C */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F433C */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F433C */ if (_t44) goto L_028F4364; else goto L_028F4340;
|
|
L_028F4340: ; // 0x28f4340
|
|
/* 028F4340 */ cpu->r[5] = cpu->r[23];
|
|
/* 028F4340 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028F4344 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4344 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028F4344 */ if (_t46) goto L_028F4348; else goto L_028F4358;
|
|
L_028F4348: ; // 0x28f4348
|
|
/* 028F4348 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F434C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F4350 */ cpu->r[5] = cpu->r[3];
|
|
/* 028F4350 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028F4354 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4354 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028F4354 */ if (_t48) goto L_028F4360; else goto L_028F4358;
|
|
L_028F4358: ; // 0x28f4358
|
|
/* 028F4358 */ _t49 = cpu->r[5] + 0x00000000u;
|
|
/* 028F4358 */ rbrew_write32(cpu->mem, _t49, cpu->r[26]);
|
|
/* 028F435C */ _t50 = cpu->r[5] + 0x00000004u;
|
|
/* 028F435C */ rbrew_write32(cpu->mem, _t50, cpu->r[25]);
|
|
L_028F4360: ; // 0x28f4360
|
|
/* 028F4360 */ _t51 = cpu->r[23] + 0x00000008u;
|
|
/* 028F4360 */ rbrew_write16(cpu->mem, _t51, (uint16_t)cpu->r[19]);
|
|
L_028F4364: ; // 0x28f4364
|
|
/* 028F4364 */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 028F4364 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F4368 */ cpu->r[18] = cpu->r[18] + 0x0000000Cu;
|
|
/* 028F436C */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F436C */ _t53 = _t52 & 0x00000001u;
|
|
/* 028F436C */ if (_t53) goto L_028F4370; else goto L_028F4338;
|
|
L_028F4370: ; // 0x28f4370
|
|
/* 028F4370 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], 0x00000000u);
|
|
/* 028F4374 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4374 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028F4374 */ if (_t55) goto L_028F4380; else goto L_028F4378;
|
|
L_028F4378: ; // 0x28f4378
|
|
/* 028F4378 */ _t56 = cpu->r[21] + 0x00000004u;
|
|
/* 028F4378 */ rbrew_write32(cpu->mem, _t56, cpu->r[22]);
|
|
/* 028F437C */ _t57 = cpu->r[21] + 0x00000000u;
|
|
/* 028F437C */ rbrew_write32(cpu->mem, _t57, cpu->r[29]);
|
|
L_028F4380: ; // 0x28f4380
|
|
/* 028F4380 */ cpu->r[30] = cpu->r[30] + 0x00000080u;
|
|
/* 028F4384 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F4388 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4388 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028F4388 */ if (_t59) goto L_028F438C; else goto L_028F42E4;
|
|
L_028F438C: ; // 0x28f438c
|
|
/* 028F438C */ /* nop */
|
|
/* 028F4390 */ _t60 = cpu->r[1] + 0x00000044u;
|
|
/* 028F4390 */ cpu->r[0] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028F4394 */ cpu->lr = cpu->r[0];
|
|
/* 028F4398 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 028F439C */ return;
|
|
}
|
|
|
|
// fn_028F43A0 @ 0x28f43a0
|
|
void Gambit_fn_028F43A0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028F43A0: ; // 0x28f43a0
|
|
/* 028F43A0 */ _t0 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028F43A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F43A4 */ _t1 = cpu->r[3] + 0x00000020u;
|
|
/* 028F43A4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028F43A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 028F43AC */ _t2 = cpu->r[5] + 0x00000000u;
|
|
/* 028F43AC */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F43B0 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F43B0 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F43B0 */ if (_t4) goto L_028F43B4; else goto L_028F43BC;
|
|
L_028F43B4: ; // 0x28f43b4
|
|
/* 028F43B4 */ cpu->r[7] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000000Cu);
|
|
/* 028F43B8 */ cpu->r[11] = cpu->r[11] + cpu->r[7];
|
|
L_028F43BC: ; // 0x28f43bc
|
|
/* 028F43BC */ _t5 = cpu->r[11] + 0x00000000u;
|
|
/* 028F43BC */ rbrew_write32(cpu->mem, _t5, cpu->r[9]);
|
|
/* 028F43C0 */ _t6 = cpu->r[3] + 0x00000078u;
|
|
/* 028F43C0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F43C4 */ _t7 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028F43C4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F43C8 */ _t8 = cpu->r[7] + 0x00000010u;
|
|
/* 028F43C8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F43CC */ cpu->r[9] = rbrew_rlwinm(cpu->r[8], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F43D0 */ cpu->r[0] = cpu->r[12] + cpu->r[9];
|
|
/* 028F43D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F43D8 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F43D8 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F43D8 */ if (_t10) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F43D8 */ goto L_028F43DC;
|
|
L_028F43DC: ; // 0x28f43dc
|
|
/* 028F43DC */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000000Cu);
|
|
L_028F43E0: ; // 0x28f43e0
|
|
/* 028F43E0 */ _t11 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028F43E0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F43E4 */ _t12 = cpu->r[5] + 0x00000000u;
|
|
/* 028F43E4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F43E8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[10]);
|
|
/* 028F43EC */ _t13 = cpu->r[12] + 0x00000020u;
|
|
/* 028F43EC */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F43F0 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F43F0 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F43F0 */ if (_t15) goto L_028F43F4; else goto L_028F43F8;
|
|
L_028F43F4: ; // 0x28f43f4
|
|
/* 028F43F4 */ cpu->r[10] = cpu->r[10] + cpu->r[6];
|
|
L_028F43F8: ; // 0x28f43f8
|
|
/* 028F43F8 */ cpu->r[12] = cpu->r[12] + 0x00000080u;
|
|
/* 028F43FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F4400 */ _t16 = cpu->r[10] + 0x00000000u;
|
|
/* 028F4400 */ rbrew_write32(cpu->mem, _t16, cpu->r[11]);
|
|
/* 028F4404 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4404 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F4404 */ if (_t18) goto L_028F4408; else goto L_028F43E0;
|
|
L_028F4408: ; // 0x28f4408
|
|
/* 028F4408 */ return;
|
|
}
|
|
|
|
// fn_028F440C @ 0x28f440c
|
|
void Gambit_fn_028F440C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F440C: ; // 0x28f440c
|
|
/* 028F440C */ cpu->r[0] = cpu->lr;
|
|
/* 028F4410 */ _t0 = cpu->r[1] + 0xFFFFFFB8u;
|
|
/* 028F4410 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F4410 */ cpu->r[1] = _t0;
|
|
/* 028F4414 */ _t1 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F4414 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F4418 */ /* nop */
|
|
/* 028F441C */ cpu->r[28] = cpu->r[3];
|
|
/* 028F4420 */ cpu->r[26] = cpu->r[5];
|
|
/* 028F4424 */ cpu->r[29] = cpu->r[4];
|
|
/* 028F4424 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4428 */ cpu->r[25] = 0x10140000u;
|
|
/* 028F442C */ cpu->r[3] = cpu->r[26];
|
|
/* 028F4430 */ cpu->r[24] = 0x10140000u;
|
|
/* 028F4434 */ cpu->r[25] = cpu->r[25] + 0xFFFFCD90u;
|
|
/* 028F4438 */ cpu->r[23] = 0x101D0000u;
|
|
/* 028F443C */ cpu->r[24] = cpu->r[24] + 0xFFFFCD6Cu;
|
|
/* 028F4440 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4440 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F4440 */ if (_t3) goto L_028F4444; else goto L_028F4500;
|
|
L_028F4444: ; // 0x28f4444
|
|
/* 028F4444 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F4448 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4448 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F4448 */ if (_t5) goto L_028F444C; else goto L_028F4454;
|
|
L_028F444C: ; // 0x28f444c
|
|
/* 028F444C */ _t6 = cpu->r[23] + 0xFFFF98F0u;
|
|
/* 028F444C */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F4450 */ Gambit_fn_02826F20(cpu);
|
|
L_028F4454: ; // 0x28f4454
|
|
/* 028F4454 */ _t7 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F4454 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F4458 */ _t8 = cpu->r[10] + 0x00000034u;
|
|
/* 028F4458 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F445C */ cpu->ctr = cpu->r[0];
|
|
/* 028F4460 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F4464 */ cpu->r[4] = rbrew_rlwinm(cpu->r[29], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F4468 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F446C */ cpu->r[22] = cpu->r[3];
|
|
/* 028F4470 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4474 */ cpu->r[31] = cpu->r[29];
|
|
/* 028F4478 */ cpu->r[5] = 0x00000000u;
|
|
/* 028F447C */ _t9 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F447C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F447C */ if (_t10) goto L_028F4484; else goto L_028F4480;
|
|
L_028F4480: ; // 0x28f4480
|
|
/* 028F4480 */ cpu->r[31] = 0x00000001u;
|
|
L_028F4484: ; // 0x28f4484
|
|
/* 028F4484 */ cpu->r[27] = 0x00010000u;
|
|
/* 028F4488 */ cpu->r[21] = rbrew_rlwinm(cpu->r[5], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F448C */ cpu->r[27] = cpu->r[27] + 0xFFFFFFFFu;
|
|
/* 028F4490 */ cpu->r[20] = 0xFFFFFFFFu;
|
|
L_028F4494: ; // 0x28f4494
|
|
/* 028F4494 */ cpu->r[30] = cpu->r[22] + cpu->r[21];
|
|
/* 028F4494 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F4498 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4498 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F4498 */ if (_t12) goto L_028F44E4; else goto L_028F449C;
|
|
L_028F449C: ; // 0x28f449c
|
|
/* 028F449C */ cpu->r[6] = cpu->r[30];
|
|
/* 028F449C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F44A0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F44A0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F44A0 */ if (_t14) goto L_028F44A4; else goto L_028F44B4;
|
|
L_028F44A4: ; // 0x28f44a4
|
|
/* 028F44A4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F44A8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F44AC */ cpu->r[6] = cpu->r[3];
|
|
/* 028F44AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F44B0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F44B0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F44B0 */ if (_t16) goto L_028F44BC; else goto L_028F44B4;
|
|
L_028F44B4: ; // 0x28f44b4
|
|
/* 028F44B4 */ _t17 = cpu->r[6] + 0x00000000u;
|
|
/* 028F44B4 */ rbrew_write32(cpu->mem, _t17, cpu->r[25]);
|
|
/* 028F44B8 */ _t18 = cpu->r[6] + 0x00000004u;
|
|
/* 028F44B8 */ rbrew_write32(cpu->mem, _t18, cpu->r[24]);
|
|
L_028F44BC: ; // 0x28f44bc
|
|
/* 028F44BC */ cpu->r[7] = cpu->r[30] + 0x00000008u;
|
|
/* 028F44BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F44C0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F44C0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F44C0 */ if (_t20) goto L_028F44C4; else goto L_028F44D4;
|
|
L_028F44C4: ; // 0x28f44c4
|
|
/* 028F44C4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F44C8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F44CC */ cpu->r[7] = cpu->r[3];
|
|
/* 028F44CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F44D0 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F44D0 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F44D0 */ if (_t22) goto L_028F44E4; else goto L_028F44D4;
|
|
L_028F44D4: ; // 0x28f44d4
|
|
/* 028F44D4 */ _t23 = cpu->r[7] + 0x00000002u;
|
|
/* 028F44D4 */ rbrew_write16(cpu->mem, _t23, (uint16_t)cpu->r[20]);
|
|
/* 028F44D8 */ _t24 = cpu->r[7] + 0x00000004u;
|
|
/* 028F44D8 */ rbrew_write16(cpu->mem, _t24, (uint16_t)cpu->r[20]);
|
|
/* 028F44DC */ _t25 = cpu->r[7] + 0x00000000u;
|
|
/* 028F44DC */ rbrew_write16(cpu->mem, _t25, (uint16_t)cpu->r[20]);
|
|
/* 028F44E0 */ _t26 = cpu->r[7] + 0x00000006u;
|
|
/* 028F44E0 */ rbrew_write16(cpu->mem, _t26, (uint16_t)cpu->r[27]);
|
|
L_028F44E4: ; // 0x28f44e4
|
|
/* 028F44E4 */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028F44E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F44E8 */ cpu->r[21] = cpu->r[21] + 0x00000010u;
|
|
/* 028F44EC */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F44EC */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F44EC */ if (_t28) goto L_028F44F0; else goto L_028F4494;
|
|
L_028F44F0: ; // 0x28f44f0
|
|
/* 028F44F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], 0x00000000u);
|
|
/* 028F44F4 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F44F4 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F44F4 */ if (_t30) goto L_028F4500; else goto L_028F44F8;
|
|
L_028F44F8: ; // 0x28f44f8
|
|
/* 028F44F8 */ _t31 = cpu->r[28] + 0x00000028u;
|
|
/* 028F44F8 */ rbrew_write32(cpu->mem, _t31, cpu->r[22]);
|
|
/* 028F44FC */ _t32 = cpu->r[28] + 0x00000024u;
|
|
/* 028F44FC */ rbrew_write32(cpu->mem, _t32, cpu->r[29]);
|
|
L_028F4500: ; // 0x28f4500
|
|
/* 028F4500 */ _t33 = cpu->r[28] + 0x00000078u;
|
|
/* 028F4500 */ cpu->r[8] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F4504 */ _t34 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028F4504 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F4508 */ _t35 = cpu->r[8] + 0x00000010u;
|
|
/* 028F4508 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F450C */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F4510 */ cpu->r[30] = cpu->r[31] + cpu->r[9];
|
|
/* 028F4514 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F4518 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4518 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F4518 */ if (_t37) goto L_028F461C; else goto L_028F451C;
|
|
L_028F451C: ; // 0x28f451c
|
|
/* 028F451C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4520 */ _t38 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4520 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028F4520 */ if (_t39) goto L_028F4544; else goto L_028F4524;
|
|
L_028F4524: ; // 0x28f4524
|
|
/* 028F4524 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F4528 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F452C */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F452C */ _t41 = _t40 & 0x00000001u;
|
|
/* 028F452C */ if (_t41) goto L_028F4530; else goto L_028F4524;
|
|
L_028F4530: ; // 0x28f4530
|
|
/* 028F4530 */ /* nop */
|
|
/* 028F4534 */ _t42 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F4534 */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F4538 */ cpu->lr = cpu->r[0];
|
|
/* 028F453C */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028F4540 */ return;
|
|
L_028F4544: ; // 0x28f4544
|
|
/* 028F4544 */ cpu->r[28] = 0x00010000u;
|
|
/* 028F4548 */ cpu->r[21] = rbrew_rlwinm(cpu->r[29], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F454C */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
L_028F4550: ; // 0x28f4550
|
|
/* 028F4550 */ cpu->r[12] = cpu->r[26];
|
|
/* 028F4550 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F4554 */ cpu->r[20] = cpu->r[31] + 0x00000024u;
|
|
/* 028F4558 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4558 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F4558 */ if (_t44) goto L_028F455C; else goto L_028F4568;
|
|
L_028F455C: ; // 0x28f455c
|
|
/* 028F455C */ _t45 = cpu->r[23] + 0xFFFF98F0u;
|
|
/* 028F455C */ cpu->r[3] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F4560 */ Gambit_fn_02826F20(cpu);
|
|
/* 028F4564 */ cpu->r[12] = cpu->r[3];
|
|
L_028F4568: ; // 0x28f4568
|
|
/* 028F4568 */ _t46 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028F4568 */ cpu->r[11] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F456C */ _t47 = cpu->r[11] + 0x00000034u;
|
|
/* 028F456C */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F4570 */ cpu->ctr = cpu->r[0];
|
|
/* 028F4574 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F4578 */ cpu->r[4] = cpu->r[21];
|
|
/* 028F457C */ cpu->r[3] = cpu->r[12];
|
|
/* 028F4580 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4584 */ cpu->r[18] = cpu->r[3];
|
|
/* 028F4588 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F458C */ cpu->r[27] = cpu->r[29];
|
|
/* 028F4590 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F4594 */ _t48 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4594 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F4594 */ if (_t49) goto L_028F459C; else goto L_028F4598;
|
|
L_028F4598: ; // 0x28f4598
|
|
/* 028F4598 */ cpu->r[27] = 0x00000001u;
|
|
L_028F459C: ; // 0x28f459c
|
|
/* 028F459C */ cpu->r[19] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F45A0 */ cpu->r[17] = 0xFFFFFFFFu;
|
|
L_028F45A4: ; // 0x28f45a4
|
|
/* 028F45A4 */ cpu->r[22] = cpu->r[18] + cpu->r[19];
|
|
/* 028F45A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], 0x00000000u);
|
|
/* 028F45A8 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F45A8 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028F45A8 */ if (_t51) goto L_028F45F4; else goto L_028F45AC;
|
|
L_028F45AC: ; // 0x28f45ac
|
|
/* 028F45AC */ cpu->r[10] = cpu->r[22];
|
|
/* 028F45AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F45B0 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F45B0 */ _t53 = _t52 & 0x00000001u;
|
|
/* 028F45B0 */ if (_t53) goto L_028F45B4; else goto L_028F45C4;
|
|
L_028F45B4: ; // 0x28f45b4
|
|
/* 028F45B4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F45B8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F45BC */ cpu->r[10] = cpu->r[3];
|
|
/* 028F45BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F45C0 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F45C0 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028F45C0 */ if (_t55) goto L_028F45CC; else goto L_028F45C4;
|
|
L_028F45C4: ; // 0x28f45c4
|
|
/* 028F45C4 */ _t56 = cpu->r[10] + 0x00000000u;
|
|
/* 028F45C4 */ rbrew_write32(cpu->mem, _t56, cpu->r[25]);
|
|
/* 028F45C8 */ _t57 = cpu->r[10] + 0x00000004u;
|
|
/* 028F45C8 */ rbrew_write32(cpu->mem, _t57, cpu->r[24]);
|
|
L_028F45CC: ; // 0x28f45cc
|
|
/* 028F45CC */ cpu->r[12] = cpu->r[22] + 0x00000008u;
|
|
/* 028F45CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F45D0 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F45D0 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028F45D0 */ if (_t59) goto L_028F45D4; else goto L_028F45E4;
|
|
L_028F45D4: ; // 0x28f45d4
|
|
/* 028F45D4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F45D8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F45DC */ cpu->r[12] = cpu->r[3];
|
|
/* 028F45DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F45E0 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F45E0 */ _t61 = _t60 & 0x00000001u;
|
|
/* 028F45E0 */ if (_t61) goto L_028F45F4; else goto L_028F45E4;
|
|
L_028F45E4: ; // 0x28f45e4
|
|
/* 028F45E4 */ _t62 = cpu->r[12] + 0x00000002u;
|
|
/* 028F45E4 */ rbrew_write16(cpu->mem, _t62, (uint16_t)cpu->r[17]);
|
|
/* 028F45E8 */ _t63 = cpu->r[12] + 0x00000004u;
|
|
/* 028F45E8 */ rbrew_write16(cpu->mem, _t63, (uint16_t)cpu->r[17]);
|
|
/* 028F45EC */ _t64 = cpu->r[12] + 0x00000000u;
|
|
/* 028F45EC */ rbrew_write16(cpu->mem, _t64, (uint16_t)cpu->r[17]);
|
|
/* 028F45F0 */ _t65 = cpu->r[12] + 0x00000006u;
|
|
/* 028F45F0 */ rbrew_write16(cpu->mem, _t65, (uint16_t)cpu->r[28]);
|
|
L_028F45F4: ; // 0x28f45f4
|
|
/* 028F45F4 */ cpu->r[27] = cpu->r[27] + 0xFFFFFFFFu;
|
|
/* 028F45F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028F45F8 */ cpu->r[19] = cpu->r[19] + 0x00000010u;
|
|
/* 028F45FC */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F45FC */ _t67 = _t66 & 0x00000001u;
|
|
/* 028F45FC */ if (_t67) goto L_028F4600; else goto L_028F45A4;
|
|
L_028F4600: ; // 0x28f4600
|
|
/* 028F4600 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[18], 0x00000000u);
|
|
/* 028F4604 */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4604 */ _t69 = _t68 & 0x00000001u;
|
|
/* 028F4604 */ if (_t69) goto L_028F4610; else goto L_028F4608;
|
|
L_028F4608: ; // 0x28f4608
|
|
/* 028F4608 */ _t70 = cpu->r[20] + 0x00000004u;
|
|
/* 028F4608 */ rbrew_write32(cpu->mem, _t70, cpu->r[18]);
|
|
/* 028F460C */ _t71 = cpu->r[20] + 0x00000000u;
|
|
/* 028F460C */ rbrew_write32(cpu->mem, _t71, cpu->r[29]);
|
|
L_028F4610: ; // 0x28f4610
|
|
/* 028F4610 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F4614 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F4618 */ _t72 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4618 */ _t73 = _t72 & 0x00000001u;
|
|
/* 028F4618 */ if (_t73) goto L_028F461C; else goto L_028F4550;
|
|
L_028F461C: ; // 0x28f461c
|
|
/* 028F461C */ /* nop */
|
|
/* 028F4620 */ _t74 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F4620 */ cpu->r[0] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028F4624 */ cpu->lr = cpu->r[0];
|
|
/* 028F4628 */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028F462C */ return;
|
|
}
|
|
|
|
// fn_028F4410 @ 0x28f4410
|
|
void Gambit_fn_028F4410(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F4410: ; // 0x28f4410
|
|
/* 028F4410 */ _t0 = cpu->r[1] + 0xFFFFFFB8u;
|
|
/* 028F4410 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F4410 */ cpu->r[1] = _t0;
|
|
/* 028F4414 */ _t1 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F4414 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F4418 */ /* nop */
|
|
/* 028F441C */ cpu->r[28] = cpu->r[3];
|
|
/* 028F4420 */ cpu->r[26] = cpu->r[5];
|
|
/* 028F4424 */ cpu->r[29] = cpu->r[4];
|
|
/* 028F4424 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4428 */ cpu->r[25] = 0x10140000u;
|
|
/* 028F442C */ cpu->r[3] = cpu->r[26];
|
|
/* 028F4430 */ cpu->r[24] = 0x10140000u;
|
|
/* 028F4434 */ cpu->r[25] = cpu->r[25] + 0xFFFFCD90u;
|
|
/* 028F4438 */ cpu->r[23] = 0x101D0000u;
|
|
/* 028F443C */ cpu->r[24] = cpu->r[24] + 0xFFFFCD6Cu;
|
|
/* 028F4440 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4440 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F4440 */ if (_t3) goto L_028F4444; else goto L_028F4500;
|
|
L_028F4444: ; // 0x28f4444
|
|
/* 028F4444 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F4448 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4448 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F4448 */ if (_t5) goto L_028F444C; else goto L_028F4454;
|
|
L_028F444C: ; // 0x28f444c
|
|
/* 028F444C */ _t6 = cpu->r[23] + 0xFFFF98F0u;
|
|
/* 028F444C */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F4450 */ Gambit_fn_02826F20(cpu);
|
|
L_028F4454: ; // 0x28f4454
|
|
/* 028F4454 */ _t7 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F4454 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F4458 */ _t8 = cpu->r[10] + 0x00000034u;
|
|
/* 028F4458 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F445C */ cpu->ctr = cpu->r[0];
|
|
/* 028F4460 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F4464 */ cpu->r[4] = rbrew_rlwinm(cpu->r[29], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F4468 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F446C */ cpu->r[22] = cpu->r[3];
|
|
/* 028F4470 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4474 */ cpu->r[31] = cpu->r[29];
|
|
/* 028F4478 */ cpu->r[5] = 0x00000000u;
|
|
/* 028F447C */ _t9 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F447C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F447C */ if (_t10) goto L_028F4484; else goto L_028F4480;
|
|
L_028F4480: ; // 0x28f4480
|
|
/* 028F4480 */ cpu->r[31] = 0x00000001u;
|
|
L_028F4484: ; // 0x28f4484
|
|
/* 028F4484 */ cpu->r[27] = 0x00010000u;
|
|
/* 028F4488 */ cpu->r[21] = rbrew_rlwinm(cpu->r[5], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F448C */ cpu->r[27] = cpu->r[27] + 0xFFFFFFFFu;
|
|
/* 028F4490 */ cpu->r[20] = 0xFFFFFFFFu;
|
|
L_028F4494: ; // 0x28f4494
|
|
/* 028F4494 */ cpu->r[30] = cpu->r[22] + cpu->r[21];
|
|
/* 028F4494 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F4498 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4498 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F4498 */ if (_t12) goto L_028F44E4; else goto L_028F449C;
|
|
L_028F449C: ; // 0x28f449c
|
|
/* 028F449C */ cpu->r[6] = cpu->r[30];
|
|
/* 028F449C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F44A0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F44A0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F44A0 */ if (_t14) goto L_028F44A4; else goto L_028F44B4;
|
|
L_028F44A4: ; // 0x28f44a4
|
|
/* 028F44A4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F44A8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F44AC */ cpu->r[6] = cpu->r[3];
|
|
/* 028F44AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F44B0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F44B0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F44B0 */ if (_t16) goto L_028F44BC; else goto L_028F44B4;
|
|
L_028F44B4: ; // 0x28f44b4
|
|
/* 028F44B4 */ _t17 = cpu->r[6] + 0x00000000u;
|
|
/* 028F44B4 */ rbrew_write32(cpu->mem, _t17, cpu->r[25]);
|
|
/* 028F44B8 */ _t18 = cpu->r[6] + 0x00000004u;
|
|
/* 028F44B8 */ rbrew_write32(cpu->mem, _t18, cpu->r[24]);
|
|
L_028F44BC: ; // 0x28f44bc
|
|
/* 028F44BC */ cpu->r[7] = cpu->r[30] + 0x00000008u;
|
|
/* 028F44BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F44C0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F44C0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F44C0 */ if (_t20) goto L_028F44C4; else goto L_028F44D4;
|
|
L_028F44C4: ; // 0x28f44c4
|
|
/* 028F44C4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F44C8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F44CC */ cpu->r[7] = cpu->r[3];
|
|
/* 028F44CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F44D0 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F44D0 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F44D0 */ if (_t22) goto L_028F44E4; else goto L_028F44D4;
|
|
L_028F44D4: ; // 0x28f44d4
|
|
/* 028F44D4 */ _t23 = cpu->r[7] + 0x00000002u;
|
|
/* 028F44D4 */ rbrew_write16(cpu->mem, _t23, (uint16_t)cpu->r[20]);
|
|
/* 028F44D8 */ _t24 = cpu->r[7] + 0x00000004u;
|
|
/* 028F44D8 */ rbrew_write16(cpu->mem, _t24, (uint16_t)cpu->r[20]);
|
|
/* 028F44DC */ _t25 = cpu->r[7] + 0x00000000u;
|
|
/* 028F44DC */ rbrew_write16(cpu->mem, _t25, (uint16_t)cpu->r[20]);
|
|
/* 028F44E0 */ _t26 = cpu->r[7] + 0x00000006u;
|
|
/* 028F44E0 */ rbrew_write16(cpu->mem, _t26, (uint16_t)cpu->r[27]);
|
|
L_028F44E4: ; // 0x28f44e4
|
|
/* 028F44E4 */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028F44E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F44E8 */ cpu->r[21] = cpu->r[21] + 0x00000010u;
|
|
/* 028F44EC */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F44EC */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F44EC */ if (_t28) goto L_028F44F0; else goto L_028F4494;
|
|
L_028F44F0: ; // 0x28f44f0
|
|
/* 028F44F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], 0x00000000u);
|
|
/* 028F44F4 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F44F4 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F44F4 */ if (_t30) goto L_028F4500; else goto L_028F44F8;
|
|
L_028F44F8: ; // 0x28f44f8
|
|
/* 028F44F8 */ _t31 = cpu->r[28] + 0x00000028u;
|
|
/* 028F44F8 */ rbrew_write32(cpu->mem, _t31, cpu->r[22]);
|
|
/* 028F44FC */ _t32 = cpu->r[28] + 0x00000024u;
|
|
/* 028F44FC */ rbrew_write32(cpu->mem, _t32, cpu->r[29]);
|
|
L_028F4500: ; // 0x28f4500
|
|
/* 028F4500 */ _t33 = cpu->r[28] + 0x00000078u;
|
|
/* 028F4500 */ cpu->r[8] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F4504 */ _t34 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028F4504 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F4508 */ _t35 = cpu->r[8] + 0x00000010u;
|
|
/* 028F4508 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F450C */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F4510 */ cpu->r[30] = cpu->r[31] + cpu->r[9];
|
|
/* 028F4514 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F4518 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4518 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F4518 */ if (_t37) goto L_028F461C; else goto L_028F451C;
|
|
L_028F451C: ; // 0x28f451c
|
|
/* 028F451C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4520 */ _t38 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4520 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028F4520 */ if (_t39) goto L_028F4544; else goto L_028F4524;
|
|
L_028F4524: ; // 0x28f4524
|
|
/* 028F4524 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F4528 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F452C */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F452C */ _t41 = _t40 & 0x00000001u;
|
|
/* 028F452C */ if (_t41) goto L_028F4530; else goto L_028F4524;
|
|
L_028F4530: ; // 0x28f4530
|
|
/* 028F4530 */ /* nop */
|
|
/* 028F4534 */ _t42 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F4534 */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F4538 */ cpu->lr = cpu->r[0];
|
|
/* 028F453C */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028F4540 */ return;
|
|
L_028F4544: ; // 0x28f4544
|
|
/* 028F4544 */ cpu->r[28] = 0x00010000u;
|
|
/* 028F4548 */ cpu->r[21] = rbrew_rlwinm(cpu->r[29], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F454C */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
L_028F4550: ; // 0x28f4550
|
|
/* 028F4550 */ cpu->r[12] = cpu->r[26];
|
|
/* 028F4550 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F4554 */ cpu->r[20] = cpu->r[31] + 0x00000024u;
|
|
/* 028F4558 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4558 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F4558 */ if (_t44) goto L_028F455C; else goto L_028F4568;
|
|
L_028F455C: ; // 0x28f455c
|
|
/* 028F455C */ _t45 = cpu->r[23] + 0xFFFF98F0u;
|
|
/* 028F455C */ cpu->r[3] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F4560 */ Gambit_fn_02826F20(cpu);
|
|
/* 028F4564 */ cpu->r[12] = cpu->r[3];
|
|
L_028F4568: ; // 0x28f4568
|
|
/* 028F4568 */ _t46 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028F4568 */ cpu->r[11] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F456C */ _t47 = cpu->r[11] + 0x00000034u;
|
|
/* 028F456C */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F4570 */ cpu->ctr = cpu->r[0];
|
|
/* 028F4574 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F4578 */ cpu->r[4] = cpu->r[21];
|
|
/* 028F457C */ cpu->r[3] = cpu->r[12];
|
|
/* 028F4580 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4584 */ cpu->r[18] = cpu->r[3];
|
|
/* 028F4588 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F458C */ cpu->r[27] = cpu->r[29];
|
|
/* 028F4590 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F4594 */ _t48 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4594 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F4594 */ if (_t49) goto L_028F459C; else goto L_028F4598;
|
|
L_028F4598: ; // 0x28f4598
|
|
/* 028F4598 */ cpu->r[27] = 0x00000001u;
|
|
L_028F459C: ; // 0x28f459c
|
|
/* 028F459C */ cpu->r[19] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F45A0 */ cpu->r[17] = 0xFFFFFFFFu;
|
|
L_028F45A4: ; // 0x28f45a4
|
|
/* 028F45A4 */ cpu->r[22] = cpu->r[18] + cpu->r[19];
|
|
/* 028F45A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], 0x00000000u);
|
|
/* 028F45A8 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F45A8 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028F45A8 */ if (_t51) goto L_028F45F4; else goto L_028F45AC;
|
|
L_028F45AC: ; // 0x28f45ac
|
|
/* 028F45AC */ cpu->r[10] = cpu->r[22];
|
|
/* 028F45AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F45B0 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F45B0 */ _t53 = _t52 & 0x00000001u;
|
|
/* 028F45B0 */ if (_t53) goto L_028F45B4; else goto L_028F45C4;
|
|
L_028F45B4: ; // 0x28f45b4
|
|
/* 028F45B4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F45B8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F45BC */ cpu->r[10] = cpu->r[3];
|
|
/* 028F45BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F45C0 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F45C0 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028F45C0 */ if (_t55) goto L_028F45CC; else goto L_028F45C4;
|
|
L_028F45C4: ; // 0x28f45c4
|
|
/* 028F45C4 */ _t56 = cpu->r[10] + 0x00000000u;
|
|
/* 028F45C4 */ rbrew_write32(cpu->mem, _t56, cpu->r[25]);
|
|
/* 028F45C8 */ _t57 = cpu->r[10] + 0x00000004u;
|
|
/* 028F45C8 */ rbrew_write32(cpu->mem, _t57, cpu->r[24]);
|
|
L_028F45CC: ; // 0x28f45cc
|
|
/* 028F45CC */ cpu->r[12] = cpu->r[22] + 0x00000008u;
|
|
/* 028F45CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F45D0 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F45D0 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028F45D0 */ if (_t59) goto L_028F45D4; else goto L_028F45E4;
|
|
L_028F45D4: ; // 0x28f45d4
|
|
/* 028F45D4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F45D8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F45DC */ cpu->r[12] = cpu->r[3];
|
|
/* 028F45DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F45E0 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F45E0 */ _t61 = _t60 & 0x00000001u;
|
|
/* 028F45E0 */ if (_t61) goto L_028F45F4; else goto L_028F45E4;
|
|
L_028F45E4: ; // 0x28f45e4
|
|
/* 028F45E4 */ _t62 = cpu->r[12] + 0x00000002u;
|
|
/* 028F45E4 */ rbrew_write16(cpu->mem, _t62, (uint16_t)cpu->r[17]);
|
|
/* 028F45E8 */ _t63 = cpu->r[12] + 0x00000004u;
|
|
/* 028F45E8 */ rbrew_write16(cpu->mem, _t63, (uint16_t)cpu->r[17]);
|
|
/* 028F45EC */ _t64 = cpu->r[12] + 0x00000000u;
|
|
/* 028F45EC */ rbrew_write16(cpu->mem, _t64, (uint16_t)cpu->r[17]);
|
|
/* 028F45F0 */ _t65 = cpu->r[12] + 0x00000006u;
|
|
/* 028F45F0 */ rbrew_write16(cpu->mem, _t65, (uint16_t)cpu->r[28]);
|
|
L_028F45F4: ; // 0x28f45f4
|
|
/* 028F45F4 */ cpu->r[27] = cpu->r[27] + 0xFFFFFFFFu;
|
|
/* 028F45F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028F45F8 */ cpu->r[19] = cpu->r[19] + 0x00000010u;
|
|
/* 028F45FC */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F45FC */ _t67 = _t66 & 0x00000001u;
|
|
/* 028F45FC */ if (_t67) goto L_028F4600; else goto L_028F45A4;
|
|
L_028F4600: ; // 0x28f4600
|
|
/* 028F4600 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[18], 0x00000000u);
|
|
/* 028F4604 */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4604 */ _t69 = _t68 & 0x00000001u;
|
|
/* 028F4604 */ if (_t69) goto L_028F4610; else goto L_028F4608;
|
|
L_028F4608: ; // 0x28f4608
|
|
/* 028F4608 */ _t70 = cpu->r[20] + 0x00000004u;
|
|
/* 028F4608 */ rbrew_write32(cpu->mem, _t70, cpu->r[18]);
|
|
/* 028F460C */ _t71 = cpu->r[20] + 0x00000000u;
|
|
/* 028F460C */ rbrew_write32(cpu->mem, _t71, cpu->r[29]);
|
|
L_028F4610: ; // 0x28f4610
|
|
/* 028F4610 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F4614 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F4618 */ _t72 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4618 */ _t73 = _t72 & 0x00000001u;
|
|
/* 028F4618 */ if (_t73) goto L_028F461C; else goto L_028F4550;
|
|
L_028F461C: ; // 0x28f461c
|
|
/* 028F461C */ /* nop */
|
|
/* 028F4620 */ _t74 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F4620 */ cpu->r[0] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028F4624 */ cpu->lr = cpu->r[0];
|
|
/* 028F4628 */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028F462C */ return;
|
|
}
|
|
|
|
// fn_028F4630 @ 0x28f4630
|
|
void Gambit_fn_028F4630(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028F4630: ; // 0x28f4630
|
|
/* 028F4630 */ _t0 = cpu->r[3] + 0x00000024u;
|
|
/* 028F4630 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F4634 */ _t1 = cpu->r[3] + 0x00000028u;
|
|
/* 028F4634 */ cpu->r[11] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028F4638 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[12]);
|
|
/* 028F463C */ _t2 = cpu->r[5] + 0x00000000u;
|
|
/* 028F463C */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F4640 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F4640 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F4640 */ if (_t4) goto L_028F4644; else goto L_028F464C;
|
|
L_028F4644: ; // 0x28f4644
|
|
/* 028F4644 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F4648 */ cpu->r[11] = cpu->r[11] + cpu->r[0];
|
|
L_028F464C: ; // 0x28f464c
|
|
/* 028F464C */ _t5 = cpu->r[11] + 0x00000000u;
|
|
/* 028F464C */ rbrew_write32(cpu->mem, _t5, cpu->r[9]);
|
|
/* 028F4650 */ _t6 = cpu->r[3] + 0x00000078u;
|
|
/* 028F4650 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F4654 */ _t7 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028F4654 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F4658 */ _t8 = cpu->r[7] + 0x00000010u;
|
|
/* 028F4658 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F465C */ cpu->r[9] = rbrew_rlwinm(cpu->r[8], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F4660 */ cpu->r[0] = cpu->r[12] + cpu->r[9];
|
|
/* 028F4664 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F4668 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4668 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F4668 */ if (_t10) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F4668 */ goto L_028F466C;
|
|
L_028F466C: ; // 0x28f466c
|
|
/* 028F466C */ cpu->r[7] = rbrew_rlwinm(cpu->r[4], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
L_028F4670: ; // 0x28f4670
|
|
/* 028F4670 */ _t11 = cpu->r[12] + 0x00000024u;
|
|
/* 028F4670 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F4674 */ _t12 = cpu->r[5] + 0x00000000u;
|
|
/* 028F4674 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F4678 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[10]);
|
|
/* 028F467C */ _t13 = cpu->r[12] + 0x00000028u;
|
|
/* 028F467C */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F4680 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F4680 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F4680 */ if (_t15) goto L_028F4684; else goto L_028F4688;
|
|
L_028F4684: ; // 0x28f4684
|
|
/* 028F4684 */ cpu->r[10] = cpu->r[10] + cpu->r[7];
|
|
L_028F4688: ; // 0x28f4688
|
|
/* 028F4688 */ cpu->r[12] = cpu->r[12] + 0x00000080u;
|
|
/* 028F468C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F4690 */ _t16 = cpu->r[10] + 0x00000000u;
|
|
/* 028F4690 */ rbrew_write32(cpu->mem, _t16, cpu->r[11]);
|
|
/* 028F4694 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4694 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F4694 */ if (_t18) goto L_028F4698; else goto L_028F4670;
|
|
L_028F4698: ; // 0x28f4698
|
|
/* 028F4698 */ return;
|
|
}
|
|
|
|
// fn_028F469C @ 0x28f469c
|
|
void Gambit_fn_028F469C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F469C: ; // 0x28f469c
|
|
/* 028F469C */ cpu->r[0] = cpu->lr;
|
|
/* 028F46A0 */ _t0 = cpu->r[1] + 0xFFFFFFB8u;
|
|
/* 028F46A0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F46A0 */ cpu->r[1] = _t0;
|
|
/* 028F46A4 */ _t1 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F46A4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F46A8 */ /* nop */
|
|
/* 028F46AC */ cpu->r[28] = cpu->r[3];
|
|
/* 028F46B0 */ cpu->r[26] = cpu->r[5];
|
|
/* 028F46B4 */ cpu->r[29] = cpu->r[4];
|
|
/* 028F46B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F46B8 */ cpu->r[25] = 0x10140000u;
|
|
/* 028F46BC */ cpu->r[3] = cpu->r[26];
|
|
/* 028F46C0 */ cpu->r[24] = 0x10140000u;
|
|
/* 028F46C4 */ cpu->r[25] = cpu->r[25] + 0xFFFFCD9Cu;
|
|
/* 028F46C8 */ cpu->r[23] = 0x101D0000u;
|
|
/* 028F46CC */ cpu->r[24] = cpu->r[24] + 0xFFFFCD6Cu;
|
|
/* 028F46D0 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F46D0 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F46D0 */ if (_t3) goto L_028F46D4; else goto L_028F4790;
|
|
L_028F46D4: ; // 0x28f46d4
|
|
/* 028F46D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F46D8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F46D8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F46D8 */ if (_t5) goto L_028F46DC; else goto L_028F46E4;
|
|
L_028F46DC: ; // 0x28f46dc
|
|
/* 028F46DC */ _t6 = cpu->r[23] + 0xFFFF98F0u;
|
|
/* 028F46DC */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F46E0 */ Gambit_fn_02826F20(cpu);
|
|
L_028F46E4: ; // 0x28f46e4
|
|
/* 028F46E4 */ _t7 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F46E4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F46E8 */ _t8 = cpu->r[10] + 0x00000034u;
|
|
/* 028F46E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F46EC */ cpu->ctr = cpu->r[0];
|
|
/* 028F46F0 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F46F4 */ cpu->r[4] = rbrew_rlwinm(cpu->r[29], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F46F8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F46FC */ cpu->r[22] = cpu->r[3];
|
|
/* 028F4700 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4704 */ cpu->r[31] = cpu->r[29];
|
|
/* 028F4708 */ cpu->r[5] = 0x00000000u;
|
|
/* 028F470C */ _t9 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F470C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F470C */ if (_t10) goto L_028F4714; else goto L_028F4710;
|
|
L_028F4710: ; // 0x28f4710
|
|
/* 028F4710 */ cpu->r[31] = 0x00000001u;
|
|
L_028F4714: ; // 0x28f4714
|
|
/* 028F4714 */ cpu->r[27] = 0x00010000u;
|
|
/* 028F4718 */ cpu->r[21] = rbrew_rlwinm(cpu->r[5], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F471C */ cpu->r[27] = cpu->r[27] + 0xFFFFFFFFu;
|
|
/* 028F4720 */ cpu->r[20] = 0xFFFFFFFFu;
|
|
L_028F4724: ; // 0x28f4724
|
|
/* 028F4724 */ cpu->r[30] = cpu->r[22] + cpu->r[21];
|
|
/* 028F4724 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F4728 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4728 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F4728 */ if (_t12) goto L_028F4774; else goto L_028F472C;
|
|
L_028F472C: ; // 0x28f472c
|
|
/* 028F472C */ cpu->r[6] = cpu->r[30];
|
|
/* 028F472C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F4730 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4730 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F4730 */ if (_t14) goto L_028F4734; else goto L_028F4744;
|
|
L_028F4734: ; // 0x28f4734
|
|
/* 028F4734 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F4738 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F473C */ cpu->r[6] = cpu->r[3];
|
|
/* 028F473C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F4740 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4740 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F4740 */ if (_t16) goto L_028F474C; else goto L_028F4744;
|
|
L_028F4744: ; // 0x28f4744
|
|
/* 028F4744 */ _t17 = cpu->r[6] + 0x00000000u;
|
|
/* 028F4744 */ rbrew_write32(cpu->mem, _t17, cpu->r[25]);
|
|
/* 028F4748 */ _t18 = cpu->r[6] + 0x00000004u;
|
|
/* 028F4748 */ rbrew_write32(cpu->mem, _t18, cpu->r[24]);
|
|
L_028F474C: ; // 0x28f474c
|
|
/* 028F474C */ cpu->r[7] = cpu->r[30] + 0x00000008u;
|
|
/* 028F474C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F4750 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4750 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F4750 */ if (_t20) goto L_028F4754; else goto L_028F4764;
|
|
L_028F4754: ; // 0x28f4754
|
|
/* 028F4754 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F4758 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F475C */ cpu->r[7] = cpu->r[3];
|
|
/* 028F475C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F4760 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4760 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F4760 */ if (_t22) goto L_028F4774; else goto L_028F4764;
|
|
L_028F4764: ; // 0x28f4764
|
|
/* 028F4764 */ _t23 = cpu->r[7] + 0x00000002u;
|
|
/* 028F4764 */ rbrew_write16(cpu->mem, _t23, (uint16_t)cpu->r[20]);
|
|
/* 028F4768 */ _t24 = cpu->r[7] + 0x00000004u;
|
|
/* 028F4768 */ rbrew_write16(cpu->mem, _t24, (uint16_t)cpu->r[20]);
|
|
/* 028F476C */ _t25 = cpu->r[7] + 0x00000000u;
|
|
/* 028F476C */ rbrew_write16(cpu->mem, _t25, (uint16_t)cpu->r[20]);
|
|
/* 028F4770 */ _t26 = cpu->r[7] + 0x00000006u;
|
|
/* 028F4770 */ rbrew_write16(cpu->mem, _t26, (uint16_t)cpu->r[27]);
|
|
L_028F4774: ; // 0x28f4774
|
|
/* 028F4774 */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028F4774 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F4778 */ cpu->r[21] = cpu->r[21] + 0x00000010u;
|
|
/* 028F477C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F477C */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F477C */ if (_t28) goto L_028F4780; else goto L_028F4724;
|
|
L_028F4780: ; // 0x28f4780
|
|
/* 028F4780 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], 0x00000000u);
|
|
/* 028F4784 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4784 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F4784 */ if (_t30) goto L_028F4790; else goto L_028F4788;
|
|
L_028F4788: ; // 0x28f4788
|
|
/* 028F4788 */ _t31 = cpu->r[28] + 0x00000038u;
|
|
/* 028F4788 */ rbrew_write32(cpu->mem, _t31, cpu->r[22]);
|
|
/* 028F478C */ _t32 = cpu->r[28] + 0x00000034u;
|
|
/* 028F478C */ rbrew_write32(cpu->mem, _t32, cpu->r[29]);
|
|
L_028F4790: ; // 0x28f4790
|
|
/* 028F4790 */ _t33 = cpu->r[28] + 0x00000078u;
|
|
/* 028F4790 */ cpu->r[8] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F4794 */ _t34 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028F4794 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F4798 */ _t35 = cpu->r[8] + 0x00000010u;
|
|
/* 028F4798 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F479C */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F47A0 */ cpu->r[30] = cpu->r[31] + cpu->r[9];
|
|
/* 028F47A4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F47A8 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F47A8 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F47A8 */ if (_t37) goto L_028F48AC; else goto L_028F47AC;
|
|
L_028F47AC: ; // 0x28f47ac
|
|
/* 028F47AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F47B0 */ _t38 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F47B0 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028F47B0 */ if (_t39) goto L_028F47D4; else goto L_028F47B4;
|
|
L_028F47B4: ; // 0x28f47b4
|
|
/* 028F47B4 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F47B8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F47BC */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F47BC */ _t41 = _t40 & 0x00000001u;
|
|
/* 028F47BC */ if (_t41) goto L_028F47C0; else goto L_028F47B4;
|
|
L_028F47C0: ; // 0x28f47c0
|
|
/* 028F47C0 */ /* nop */
|
|
/* 028F47C4 */ _t42 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F47C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F47C8 */ cpu->lr = cpu->r[0];
|
|
/* 028F47CC */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028F47D0 */ return;
|
|
L_028F47D4: ; // 0x28f47d4
|
|
/* 028F47D4 */ cpu->r[28] = 0x00010000u;
|
|
/* 028F47D8 */ cpu->r[21] = rbrew_rlwinm(cpu->r[29], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F47DC */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
L_028F47E0: ; // 0x28f47e0
|
|
/* 028F47E0 */ cpu->r[12] = cpu->r[26];
|
|
/* 028F47E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F47E4 */ cpu->r[20] = cpu->r[31] + 0x00000034u;
|
|
/* 028F47E8 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F47E8 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F47E8 */ if (_t44) goto L_028F47EC; else goto L_028F47F8;
|
|
L_028F47EC: ; // 0x28f47ec
|
|
/* 028F47EC */ _t45 = cpu->r[23] + 0xFFFF98F0u;
|
|
/* 028F47EC */ cpu->r[3] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F47F0 */ Gambit_fn_02826F20(cpu);
|
|
/* 028F47F4 */ cpu->r[12] = cpu->r[3];
|
|
L_028F47F8: ; // 0x28f47f8
|
|
/* 028F47F8 */ _t46 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028F47F8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F47FC */ _t47 = cpu->r[11] + 0x00000034u;
|
|
/* 028F47FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F4800 */ cpu->ctr = cpu->r[0];
|
|
/* 028F4804 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F4808 */ cpu->r[4] = cpu->r[21];
|
|
/* 028F480C */ cpu->r[3] = cpu->r[12];
|
|
/* 028F4810 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4814 */ cpu->r[18] = cpu->r[3];
|
|
/* 028F4818 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F481C */ cpu->r[27] = cpu->r[29];
|
|
/* 028F4820 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F4824 */ _t48 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4824 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F4824 */ if (_t49) goto L_028F482C; else goto L_028F4828;
|
|
L_028F4828: ; // 0x28f4828
|
|
/* 028F4828 */ cpu->r[27] = 0x00000001u;
|
|
L_028F482C: ; // 0x28f482c
|
|
/* 028F482C */ cpu->r[19] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F4830 */ cpu->r[17] = 0xFFFFFFFFu;
|
|
L_028F4834: ; // 0x28f4834
|
|
/* 028F4834 */ cpu->r[22] = cpu->r[18] + cpu->r[19];
|
|
/* 028F4834 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], 0x00000000u);
|
|
/* 028F4838 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4838 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028F4838 */ if (_t51) goto L_028F4884; else goto L_028F483C;
|
|
L_028F483C: ; // 0x28f483c
|
|
/* 028F483C */ cpu->r[10] = cpu->r[22];
|
|
/* 028F483C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F4840 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4840 */ _t53 = _t52 & 0x00000001u;
|
|
/* 028F4840 */ if (_t53) goto L_028F4844; else goto L_028F4854;
|
|
L_028F4844: ; // 0x28f4844
|
|
/* 028F4844 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F4848 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F484C */ cpu->r[10] = cpu->r[3];
|
|
/* 028F484C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F4850 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4850 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028F4850 */ if (_t55) goto L_028F485C; else goto L_028F4854;
|
|
L_028F4854: ; // 0x28f4854
|
|
/* 028F4854 */ _t56 = cpu->r[10] + 0x00000000u;
|
|
/* 028F4854 */ rbrew_write32(cpu->mem, _t56, cpu->r[25]);
|
|
/* 028F4858 */ _t57 = cpu->r[10] + 0x00000004u;
|
|
/* 028F4858 */ rbrew_write32(cpu->mem, _t57, cpu->r[24]);
|
|
L_028F485C: ; // 0x28f485c
|
|
/* 028F485C */ cpu->r[12] = cpu->r[22] + 0x00000008u;
|
|
/* 028F485C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F4860 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4860 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028F4860 */ if (_t59) goto L_028F4864; else goto L_028F4874;
|
|
L_028F4864: ; // 0x28f4864
|
|
/* 028F4864 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F4868 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F486C */ cpu->r[12] = cpu->r[3];
|
|
/* 028F486C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F4870 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4870 */ _t61 = _t60 & 0x00000001u;
|
|
/* 028F4870 */ if (_t61) goto L_028F4884; else goto L_028F4874;
|
|
L_028F4874: ; // 0x28f4874
|
|
/* 028F4874 */ _t62 = cpu->r[12] + 0x00000002u;
|
|
/* 028F4874 */ rbrew_write16(cpu->mem, _t62, (uint16_t)cpu->r[17]);
|
|
/* 028F4878 */ _t63 = cpu->r[12] + 0x00000004u;
|
|
/* 028F4878 */ rbrew_write16(cpu->mem, _t63, (uint16_t)cpu->r[17]);
|
|
/* 028F487C */ _t64 = cpu->r[12] + 0x00000000u;
|
|
/* 028F487C */ rbrew_write16(cpu->mem, _t64, (uint16_t)cpu->r[17]);
|
|
/* 028F4880 */ _t65 = cpu->r[12] + 0x00000006u;
|
|
/* 028F4880 */ rbrew_write16(cpu->mem, _t65, (uint16_t)cpu->r[28]);
|
|
L_028F4884: ; // 0x28f4884
|
|
/* 028F4884 */ cpu->r[27] = cpu->r[27] + 0xFFFFFFFFu;
|
|
/* 028F4884 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028F4888 */ cpu->r[19] = cpu->r[19] + 0x00000010u;
|
|
/* 028F488C */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F488C */ _t67 = _t66 & 0x00000001u;
|
|
/* 028F488C */ if (_t67) goto L_028F4890; else goto L_028F4834;
|
|
L_028F4890: ; // 0x28f4890
|
|
/* 028F4890 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[18], 0x00000000u);
|
|
/* 028F4894 */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4894 */ _t69 = _t68 & 0x00000001u;
|
|
/* 028F4894 */ if (_t69) goto L_028F48A0; else goto L_028F4898;
|
|
L_028F4898: ; // 0x28f4898
|
|
/* 028F4898 */ _t70 = cpu->r[20] + 0x00000004u;
|
|
/* 028F4898 */ rbrew_write32(cpu->mem, _t70, cpu->r[18]);
|
|
/* 028F489C */ _t71 = cpu->r[20] + 0x00000000u;
|
|
/* 028F489C */ rbrew_write32(cpu->mem, _t71, cpu->r[29]);
|
|
L_028F48A0: ; // 0x28f48a0
|
|
/* 028F48A0 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F48A4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F48A8 */ _t72 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F48A8 */ _t73 = _t72 & 0x00000001u;
|
|
/* 028F48A8 */ if (_t73) goto L_028F48AC; else goto L_028F47E0;
|
|
L_028F48AC: ; // 0x28f48ac
|
|
/* 028F48AC */ /* nop */
|
|
/* 028F48B0 */ _t74 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F48B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028F48B4 */ cpu->lr = cpu->r[0];
|
|
/* 028F48B8 */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028F48BC */ return;
|
|
}
|
|
|
|
// fn_028F46A0 @ 0x28f46a0
|
|
void Gambit_fn_028F46A0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F46A0: ; // 0x28f46a0
|
|
/* 028F46A0 */ _t0 = cpu->r[1] + 0xFFFFFFB8u;
|
|
/* 028F46A0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F46A0 */ cpu->r[1] = _t0;
|
|
/* 028F46A4 */ _t1 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F46A4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F46A8 */ /* nop */
|
|
/* 028F46AC */ cpu->r[28] = cpu->r[3];
|
|
/* 028F46B0 */ cpu->r[26] = cpu->r[5];
|
|
/* 028F46B4 */ cpu->r[29] = cpu->r[4];
|
|
/* 028F46B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F46B8 */ cpu->r[25] = 0x10140000u;
|
|
/* 028F46BC */ cpu->r[3] = cpu->r[26];
|
|
/* 028F46C0 */ cpu->r[24] = 0x10140000u;
|
|
/* 028F46C4 */ cpu->r[25] = cpu->r[25] + 0xFFFFCD9Cu;
|
|
/* 028F46C8 */ cpu->r[23] = 0x101D0000u;
|
|
/* 028F46CC */ cpu->r[24] = cpu->r[24] + 0xFFFFCD6Cu;
|
|
/* 028F46D0 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F46D0 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F46D0 */ if (_t3) goto L_028F46D4; else goto L_028F4790;
|
|
L_028F46D4: ; // 0x28f46d4
|
|
/* 028F46D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F46D8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F46D8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F46D8 */ if (_t5) goto L_028F46DC; else goto L_028F46E4;
|
|
L_028F46DC: ; // 0x28f46dc
|
|
/* 028F46DC */ _t6 = cpu->r[23] + 0xFFFF98F0u;
|
|
/* 028F46DC */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F46E0 */ Gambit_fn_02826F20(cpu);
|
|
L_028F46E4: ; // 0x28f46e4
|
|
/* 028F46E4 */ _t7 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F46E4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F46E8 */ _t8 = cpu->r[10] + 0x00000034u;
|
|
/* 028F46E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F46EC */ cpu->ctr = cpu->r[0];
|
|
/* 028F46F0 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F46F4 */ cpu->r[4] = rbrew_rlwinm(cpu->r[29], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F46F8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F46FC */ cpu->r[22] = cpu->r[3];
|
|
/* 028F4700 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4704 */ cpu->r[31] = cpu->r[29];
|
|
/* 028F4708 */ cpu->r[5] = 0x00000000u;
|
|
/* 028F470C */ _t9 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F470C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F470C */ if (_t10) goto L_028F4714; else goto L_028F4710;
|
|
L_028F4710: ; // 0x28f4710
|
|
/* 028F4710 */ cpu->r[31] = 0x00000001u;
|
|
L_028F4714: ; // 0x28f4714
|
|
/* 028F4714 */ cpu->r[27] = 0x00010000u;
|
|
/* 028F4718 */ cpu->r[21] = rbrew_rlwinm(cpu->r[5], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F471C */ cpu->r[27] = cpu->r[27] + 0xFFFFFFFFu;
|
|
/* 028F4720 */ cpu->r[20] = 0xFFFFFFFFu;
|
|
L_028F4724: ; // 0x28f4724
|
|
/* 028F4724 */ cpu->r[30] = cpu->r[22] + cpu->r[21];
|
|
/* 028F4724 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F4728 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4728 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F4728 */ if (_t12) goto L_028F4774; else goto L_028F472C;
|
|
L_028F472C: ; // 0x28f472c
|
|
/* 028F472C */ cpu->r[6] = cpu->r[30];
|
|
/* 028F472C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F4730 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4730 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F4730 */ if (_t14) goto L_028F4734; else goto L_028F4744;
|
|
L_028F4734: ; // 0x28f4734
|
|
/* 028F4734 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F4738 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F473C */ cpu->r[6] = cpu->r[3];
|
|
/* 028F473C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F4740 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4740 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F4740 */ if (_t16) goto L_028F474C; else goto L_028F4744;
|
|
L_028F4744: ; // 0x28f4744
|
|
/* 028F4744 */ _t17 = cpu->r[6] + 0x00000000u;
|
|
/* 028F4744 */ rbrew_write32(cpu->mem, _t17, cpu->r[25]);
|
|
/* 028F4748 */ _t18 = cpu->r[6] + 0x00000004u;
|
|
/* 028F4748 */ rbrew_write32(cpu->mem, _t18, cpu->r[24]);
|
|
L_028F474C: ; // 0x28f474c
|
|
/* 028F474C */ cpu->r[7] = cpu->r[30] + 0x00000008u;
|
|
/* 028F474C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F4750 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4750 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F4750 */ if (_t20) goto L_028F4754; else goto L_028F4764;
|
|
L_028F4754: ; // 0x28f4754
|
|
/* 028F4754 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F4758 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F475C */ cpu->r[7] = cpu->r[3];
|
|
/* 028F475C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F4760 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4760 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F4760 */ if (_t22) goto L_028F4774; else goto L_028F4764;
|
|
L_028F4764: ; // 0x28f4764
|
|
/* 028F4764 */ _t23 = cpu->r[7] + 0x00000002u;
|
|
/* 028F4764 */ rbrew_write16(cpu->mem, _t23, (uint16_t)cpu->r[20]);
|
|
/* 028F4768 */ _t24 = cpu->r[7] + 0x00000004u;
|
|
/* 028F4768 */ rbrew_write16(cpu->mem, _t24, (uint16_t)cpu->r[20]);
|
|
/* 028F476C */ _t25 = cpu->r[7] + 0x00000000u;
|
|
/* 028F476C */ rbrew_write16(cpu->mem, _t25, (uint16_t)cpu->r[20]);
|
|
/* 028F4770 */ _t26 = cpu->r[7] + 0x00000006u;
|
|
/* 028F4770 */ rbrew_write16(cpu->mem, _t26, (uint16_t)cpu->r[27]);
|
|
L_028F4774: ; // 0x28f4774
|
|
/* 028F4774 */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028F4774 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F4778 */ cpu->r[21] = cpu->r[21] + 0x00000010u;
|
|
/* 028F477C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F477C */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F477C */ if (_t28) goto L_028F4780; else goto L_028F4724;
|
|
L_028F4780: ; // 0x28f4780
|
|
/* 028F4780 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], 0x00000000u);
|
|
/* 028F4784 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4784 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F4784 */ if (_t30) goto L_028F4790; else goto L_028F4788;
|
|
L_028F4788: ; // 0x28f4788
|
|
/* 028F4788 */ _t31 = cpu->r[28] + 0x00000038u;
|
|
/* 028F4788 */ rbrew_write32(cpu->mem, _t31, cpu->r[22]);
|
|
/* 028F478C */ _t32 = cpu->r[28] + 0x00000034u;
|
|
/* 028F478C */ rbrew_write32(cpu->mem, _t32, cpu->r[29]);
|
|
L_028F4790: ; // 0x28f4790
|
|
/* 028F4790 */ _t33 = cpu->r[28] + 0x00000078u;
|
|
/* 028F4790 */ cpu->r[8] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F4794 */ _t34 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028F4794 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F4798 */ _t35 = cpu->r[8] + 0x00000010u;
|
|
/* 028F4798 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F479C */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F47A0 */ cpu->r[30] = cpu->r[31] + cpu->r[9];
|
|
/* 028F47A4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F47A8 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F47A8 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F47A8 */ if (_t37) goto L_028F48AC; else goto L_028F47AC;
|
|
L_028F47AC: ; // 0x28f47ac
|
|
/* 028F47AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F47B0 */ _t38 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F47B0 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028F47B0 */ if (_t39) goto L_028F47D4; else goto L_028F47B4;
|
|
L_028F47B4: ; // 0x28f47b4
|
|
/* 028F47B4 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F47B8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F47BC */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F47BC */ _t41 = _t40 & 0x00000001u;
|
|
/* 028F47BC */ if (_t41) goto L_028F47C0; else goto L_028F47B4;
|
|
L_028F47C0: ; // 0x28f47c0
|
|
/* 028F47C0 */ /* nop */
|
|
/* 028F47C4 */ _t42 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F47C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F47C8 */ cpu->lr = cpu->r[0];
|
|
/* 028F47CC */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028F47D0 */ return;
|
|
L_028F47D4: ; // 0x28f47d4
|
|
/* 028F47D4 */ cpu->r[28] = 0x00010000u;
|
|
/* 028F47D8 */ cpu->r[21] = rbrew_rlwinm(cpu->r[29], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F47DC */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
L_028F47E0: ; // 0x28f47e0
|
|
/* 028F47E0 */ cpu->r[12] = cpu->r[26];
|
|
/* 028F47E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F47E4 */ cpu->r[20] = cpu->r[31] + 0x00000034u;
|
|
/* 028F47E8 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F47E8 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F47E8 */ if (_t44) goto L_028F47EC; else goto L_028F47F8;
|
|
L_028F47EC: ; // 0x28f47ec
|
|
/* 028F47EC */ _t45 = cpu->r[23] + 0xFFFF98F0u;
|
|
/* 028F47EC */ cpu->r[3] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F47F0 */ Gambit_fn_02826F20(cpu);
|
|
/* 028F47F4 */ cpu->r[12] = cpu->r[3];
|
|
L_028F47F8: ; // 0x28f47f8
|
|
/* 028F47F8 */ _t46 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028F47F8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F47FC */ _t47 = cpu->r[11] + 0x00000034u;
|
|
/* 028F47FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F4800 */ cpu->ctr = cpu->r[0];
|
|
/* 028F4804 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F4808 */ cpu->r[4] = cpu->r[21];
|
|
/* 028F480C */ cpu->r[3] = cpu->r[12];
|
|
/* 028F4810 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4814 */ cpu->r[18] = cpu->r[3];
|
|
/* 028F4818 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F481C */ cpu->r[27] = cpu->r[29];
|
|
/* 028F4820 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F4824 */ _t48 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4824 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F4824 */ if (_t49) goto L_028F482C; else goto L_028F4828;
|
|
L_028F4828: ; // 0x28f4828
|
|
/* 028F4828 */ cpu->r[27] = 0x00000001u;
|
|
L_028F482C: ; // 0x28f482c
|
|
/* 028F482C */ cpu->r[19] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F4830 */ cpu->r[17] = 0xFFFFFFFFu;
|
|
L_028F4834: ; // 0x28f4834
|
|
/* 028F4834 */ cpu->r[22] = cpu->r[18] + cpu->r[19];
|
|
/* 028F4834 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], 0x00000000u);
|
|
/* 028F4838 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4838 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028F4838 */ if (_t51) goto L_028F4884; else goto L_028F483C;
|
|
L_028F483C: ; // 0x28f483c
|
|
/* 028F483C */ cpu->r[10] = cpu->r[22];
|
|
/* 028F483C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F4840 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4840 */ _t53 = _t52 & 0x00000001u;
|
|
/* 028F4840 */ if (_t53) goto L_028F4844; else goto L_028F4854;
|
|
L_028F4844: ; // 0x28f4844
|
|
/* 028F4844 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F4848 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F484C */ cpu->r[10] = cpu->r[3];
|
|
/* 028F484C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F4850 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4850 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028F4850 */ if (_t55) goto L_028F485C; else goto L_028F4854;
|
|
L_028F4854: ; // 0x28f4854
|
|
/* 028F4854 */ _t56 = cpu->r[10] + 0x00000000u;
|
|
/* 028F4854 */ rbrew_write32(cpu->mem, _t56, cpu->r[25]);
|
|
/* 028F4858 */ _t57 = cpu->r[10] + 0x00000004u;
|
|
/* 028F4858 */ rbrew_write32(cpu->mem, _t57, cpu->r[24]);
|
|
L_028F485C: ; // 0x28f485c
|
|
/* 028F485C */ cpu->r[12] = cpu->r[22] + 0x00000008u;
|
|
/* 028F485C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F4860 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4860 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028F4860 */ if (_t59) goto L_028F4864; else goto L_028F4874;
|
|
L_028F4864: ; // 0x28f4864
|
|
/* 028F4864 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F4868 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F486C */ cpu->r[12] = cpu->r[3];
|
|
/* 028F486C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F4870 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4870 */ _t61 = _t60 & 0x00000001u;
|
|
/* 028F4870 */ if (_t61) goto L_028F4884; else goto L_028F4874;
|
|
L_028F4874: ; // 0x28f4874
|
|
/* 028F4874 */ _t62 = cpu->r[12] + 0x00000002u;
|
|
/* 028F4874 */ rbrew_write16(cpu->mem, _t62, (uint16_t)cpu->r[17]);
|
|
/* 028F4878 */ _t63 = cpu->r[12] + 0x00000004u;
|
|
/* 028F4878 */ rbrew_write16(cpu->mem, _t63, (uint16_t)cpu->r[17]);
|
|
/* 028F487C */ _t64 = cpu->r[12] + 0x00000000u;
|
|
/* 028F487C */ rbrew_write16(cpu->mem, _t64, (uint16_t)cpu->r[17]);
|
|
/* 028F4880 */ _t65 = cpu->r[12] + 0x00000006u;
|
|
/* 028F4880 */ rbrew_write16(cpu->mem, _t65, (uint16_t)cpu->r[28]);
|
|
L_028F4884: ; // 0x28f4884
|
|
/* 028F4884 */ cpu->r[27] = cpu->r[27] + 0xFFFFFFFFu;
|
|
/* 028F4884 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028F4888 */ cpu->r[19] = cpu->r[19] + 0x00000010u;
|
|
/* 028F488C */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F488C */ _t67 = _t66 & 0x00000001u;
|
|
/* 028F488C */ if (_t67) goto L_028F4890; else goto L_028F4834;
|
|
L_028F4890: ; // 0x28f4890
|
|
/* 028F4890 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[18], 0x00000000u);
|
|
/* 028F4894 */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4894 */ _t69 = _t68 & 0x00000001u;
|
|
/* 028F4894 */ if (_t69) goto L_028F48A0; else goto L_028F4898;
|
|
L_028F4898: ; // 0x28f4898
|
|
/* 028F4898 */ _t70 = cpu->r[20] + 0x00000004u;
|
|
/* 028F4898 */ rbrew_write32(cpu->mem, _t70, cpu->r[18]);
|
|
/* 028F489C */ _t71 = cpu->r[20] + 0x00000000u;
|
|
/* 028F489C */ rbrew_write32(cpu->mem, _t71, cpu->r[29]);
|
|
L_028F48A0: ; // 0x28f48a0
|
|
/* 028F48A0 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F48A4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F48A8 */ _t72 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F48A8 */ _t73 = _t72 & 0x00000001u;
|
|
/* 028F48A8 */ if (_t73) goto L_028F48AC; else goto L_028F47E0;
|
|
L_028F48AC: ; // 0x28f48ac
|
|
/* 028F48AC */ /* nop */
|
|
/* 028F48B0 */ _t74 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F48B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028F48B4 */ cpu->lr = cpu->r[0];
|
|
/* 028F48B8 */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028F48BC */ return;
|
|
}
|
|
|
|
// fn_028F48C0 @ 0x28f48c0
|
|
void Gambit_fn_028F48C0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028F48C0: ; // 0x28f48c0
|
|
/* 028F48C0 */ _t0 = cpu->r[3] + 0x00000034u;
|
|
/* 028F48C0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F48C4 */ _t1 = cpu->r[3] + 0x00000038u;
|
|
/* 028F48C4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028F48C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[12]);
|
|
/* 028F48CC */ _t2 = cpu->r[5] + 0x00000000u;
|
|
/* 028F48CC */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F48D0 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F48D0 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F48D0 */ if (_t4) goto L_028F48D4; else goto L_028F48DC;
|
|
L_028F48D4: ; // 0x28f48d4
|
|
/* 028F48D4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F48D8 */ cpu->r[11] = cpu->r[11] + cpu->r[0];
|
|
L_028F48DC: ; // 0x28f48dc
|
|
/* 028F48DC */ _t5 = cpu->r[11] + 0x00000000u;
|
|
/* 028F48DC */ rbrew_write32(cpu->mem, _t5, cpu->r[9]);
|
|
/* 028F48E0 */ _t6 = cpu->r[3] + 0x00000078u;
|
|
/* 028F48E0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F48E4 */ _t7 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028F48E4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F48E8 */ _t8 = cpu->r[7] + 0x00000010u;
|
|
/* 028F48E8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F48EC */ cpu->r[9] = rbrew_rlwinm(cpu->r[8], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F48F0 */ cpu->r[0] = cpu->r[12] + cpu->r[9];
|
|
/* 028F48F4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F48F8 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F48F8 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F48F8 */ if (_t10) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F48F8 */ goto L_028F48FC;
|
|
L_028F48FC: ; // 0x28f48fc
|
|
/* 028F48FC */ cpu->r[7] = rbrew_rlwinm(cpu->r[4], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
L_028F4900: ; // 0x28f4900
|
|
/* 028F4900 */ _t11 = cpu->r[12] + 0x00000034u;
|
|
/* 028F4900 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F4904 */ _t12 = cpu->r[5] + 0x00000000u;
|
|
/* 028F4904 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F4908 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[10]);
|
|
/* 028F490C */ _t13 = cpu->r[12] + 0x00000038u;
|
|
/* 028F490C */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F4910 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F4910 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F4910 */ if (_t15) goto L_028F4914; else goto L_028F4918;
|
|
L_028F4914: ; // 0x28f4914
|
|
/* 028F4914 */ cpu->r[10] = cpu->r[10] + cpu->r[7];
|
|
L_028F4918: ; // 0x28f4918
|
|
/* 028F4918 */ cpu->r[12] = cpu->r[12] + 0x00000080u;
|
|
/* 028F491C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F4920 */ _t16 = cpu->r[10] + 0x00000000u;
|
|
/* 028F4920 */ rbrew_write32(cpu->mem, _t16, cpu->r[11]);
|
|
/* 028F4924 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4924 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F4924 */ if (_t18) goto L_028F4928; else goto L_028F4900;
|
|
L_028F4928: ; // 0x28f4928
|
|
/* 028F4928 */ return;
|
|
}
|
|
|
|
// fn_028F492C @ 0x28f492c
|
|
void Gambit_fn_028F492C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F492C: ; // 0x28f492c
|
|
/* 028F492C */ cpu->r[0] = cpu->lr;
|
|
/* 028F4930 */ _t0 = cpu->r[1] + 0xFFFFFFB8u;
|
|
/* 028F4930 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F4930 */ cpu->r[1] = _t0;
|
|
/* 028F4934 */ _t1 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F4934 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F4938 */ /* nop */
|
|
/* 028F493C */ cpu->r[28] = cpu->r[3];
|
|
/* 028F4940 */ cpu->r[26] = cpu->r[5];
|
|
/* 028F4944 */ cpu->r[29] = cpu->r[4];
|
|
/* 028F4944 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4948 */ cpu->r[25] = 0x10140000u;
|
|
/* 028F494C */ cpu->r[3] = cpu->r[26];
|
|
/* 028F4950 */ cpu->r[24] = 0x10140000u;
|
|
/* 028F4954 */ cpu->r[25] = cpu->r[25] + 0xFFFFCDA8u;
|
|
/* 028F4958 */ cpu->r[23] = 0x101D0000u;
|
|
/* 028F495C */ cpu->r[24] = cpu->r[24] + 0xFFFFCD6Cu;
|
|
/* 028F4960 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4960 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F4960 */ if (_t3) goto L_028F4964; else goto L_028F4A20;
|
|
L_028F4964: ; // 0x28f4964
|
|
/* 028F4964 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F4968 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4968 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F4968 */ if (_t5) goto L_028F496C; else goto L_028F4974;
|
|
L_028F496C: ; // 0x28f496c
|
|
/* 028F496C */ _t6 = cpu->r[23] + 0xFFFF98F0u;
|
|
/* 028F496C */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F4970 */ Gambit_fn_02826F20(cpu);
|
|
L_028F4974: ; // 0x28f4974
|
|
/* 028F4974 */ _t7 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F4974 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F4978 */ _t8 = cpu->r[10] + 0x00000034u;
|
|
/* 028F4978 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F497C */ cpu->ctr = cpu->r[0];
|
|
/* 028F4980 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F4984 */ cpu->r[4] = rbrew_rlwinm(cpu->r[29], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F4988 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F498C */ cpu->r[22] = cpu->r[3];
|
|
/* 028F4990 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4994 */ cpu->r[31] = cpu->r[29];
|
|
/* 028F4998 */ cpu->r[5] = 0x00000000u;
|
|
/* 028F499C */ _t9 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F499C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F499C */ if (_t10) goto L_028F49A4; else goto L_028F49A0;
|
|
L_028F49A0: ; // 0x28f49a0
|
|
/* 028F49A0 */ cpu->r[31] = 0x00000001u;
|
|
L_028F49A4: ; // 0x28f49a4
|
|
/* 028F49A4 */ cpu->r[27] = 0x00010000u;
|
|
/* 028F49A8 */ cpu->r[21] = rbrew_rlwinm(cpu->r[5], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F49AC */ cpu->r[27] = cpu->r[27] + 0xFFFFFFFFu;
|
|
/* 028F49B0 */ cpu->r[20] = 0xFFFFFFFFu;
|
|
L_028F49B4: ; // 0x28f49b4
|
|
/* 028F49B4 */ cpu->r[30] = cpu->r[22] + cpu->r[21];
|
|
/* 028F49B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F49B8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F49B8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F49B8 */ if (_t12) goto L_028F4A04; else goto L_028F49BC;
|
|
L_028F49BC: ; // 0x28f49bc
|
|
/* 028F49BC */ cpu->r[6] = cpu->r[30];
|
|
/* 028F49BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F49C0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F49C0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F49C0 */ if (_t14) goto L_028F49C4; else goto L_028F49D4;
|
|
L_028F49C4: ; // 0x28f49c4
|
|
/* 028F49C4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F49C8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F49CC */ cpu->r[6] = cpu->r[3];
|
|
/* 028F49CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F49D0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F49D0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F49D0 */ if (_t16) goto L_028F49DC; else goto L_028F49D4;
|
|
L_028F49D4: ; // 0x28f49d4
|
|
/* 028F49D4 */ _t17 = cpu->r[6] + 0x00000000u;
|
|
/* 028F49D4 */ rbrew_write32(cpu->mem, _t17, cpu->r[25]);
|
|
/* 028F49D8 */ _t18 = cpu->r[6] + 0x00000004u;
|
|
/* 028F49D8 */ rbrew_write32(cpu->mem, _t18, cpu->r[24]);
|
|
L_028F49DC: ; // 0x28f49dc
|
|
/* 028F49DC */ cpu->r[7] = cpu->r[30] + 0x00000008u;
|
|
/* 028F49DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F49E0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F49E0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F49E0 */ if (_t20) goto L_028F49E4; else goto L_028F49F4;
|
|
L_028F49E4: ; // 0x28f49e4
|
|
/* 028F49E4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F49E8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F49EC */ cpu->r[7] = cpu->r[3];
|
|
/* 028F49EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F49F0 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F49F0 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F49F0 */ if (_t22) goto L_028F4A04; else goto L_028F49F4;
|
|
L_028F49F4: ; // 0x28f49f4
|
|
/* 028F49F4 */ _t23 = cpu->r[7] + 0x00000002u;
|
|
/* 028F49F4 */ rbrew_write16(cpu->mem, _t23, (uint16_t)cpu->r[20]);
|
|
/* 028F49F8 */ _t24 = cpu->r[7] + 0x00000004u;
|
|
/* 028F49F8 */ rbrew_write16(cpu->mem, _t24, (uint16_t)cpu->r[20]);
|
|
/* 028F49FC */ _t25 = cpu->r[7] + 0x00000000u;
|
|
/* 028F49FC */ rbrew_write16(cpu->mem, _t25, (uint16_t)cpu->r[20]);
|
|
/* 028F4A00 */ _t26 = cpu->r[7] + 0x00000006u;
|
|
/* 028F4A00 */ rbrew_write16(cpu->mem, _t26, (uint16_t)cpu->r[27]);
|
|
L_028F4A04: ; // 0x28f4a04
|
|
/* 028F4A04 */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028F4A04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F4A08 */ cpu->r[21] = cpu->r[21] + 0x00000010u;
|
|
/* 028F4A0C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4A0C */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F4A0C */ if (_t28) goto L_028F4A10; else goto L_028F49B4;
|
|
L_028F4A10: ; // 0x28f4a10
|
|
/* 028F4A10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], 0x00000000u);
|
|
/* 028F4A14 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4A14 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F4A14 */ if (_t30) goto L_028F4A20; else goto L_028F4A18;
|
|
L_028F4A18: ; // 0x28f4a18
|
|
/* 028F4A18 */ _t31 = cpu->r[28] + 0x00000030u;
|
|
/* 028F4A18 */ rbrew_write32(cpu->mem, _t31, cpu->r[22]);
|
|
/* 028F4A1C */ _t32 = cpu->r[28] + 0x0000002Cu;
|
|
/* 028F4A1C */ rbrew_write32(cpu->mem, _t32, cpu->r[29]);
|
|
L_028F4A20: ; // 0x28f4a20
|
|
/* 028F4A20 */ _t33 = cpu->r[28] + 0x00000078u;
|
|
/* 028F4A20 */ cpu->r[8] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F4A24 */ _t34 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028F4A24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F4A28 */ _t35 = cpu->r[8] + 0x00000010u;
|
|
/* 028F4A28 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F4A2C */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F4A30 */ cpu->r[30] = cpu->r[31] + cpu->r[9];
|
|
/* 028F4A34 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F4A38 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4A38 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F4A38 */ if (_t37) goto L_028F4B3C; else goto L_028F4A3C;
|
|
L_028F4A3C: ; // 0x28f4a3c
|
|
/* 028F4A3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4A40 */ _t38 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4A40 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028F4A40 */ if (_t39) goto L_028F4A64; else goto L_028F4A44;
|
|
L_028F4A44: ; // 0x28f4a44
|
|
/* 028F4A44 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F4A48 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F4A4C */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4A4C */ _t41 = _t40 & 0x00000001u;
|
|
/* 028F4A4C */ if (_t41) goto L_028F4A50; else goto L_028F4A44;
|
|
L_028F4A50: ; // 0x28f4a50
|
|
/* 028F4A50 */ /* nop */
|
|
/* 028F4A54 */ _t42 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F4A54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F4A58 */ cpu->lr = cpu->r[0];
|
|
/* 028F4A5C */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028F4A60 */ return;
|
|
L_028F4A64: ; // 0x28f4a64
|
|
/* 028F4A64 */ cpu->r[28] = 0x00010000u;
|
|
/* 028F4A68 */ cpu->r[21] = rbrew_rlwinm(cpu->r[29], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F4A6C */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
L_028F4A70: ; // 0x28f4a70
|
|
/* 028F4A70 */ cpu->r[12] = cpu->r[26];
|
|
/* 028F4A70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F4A74 */ cpu->r[20] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F4A78 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4A78 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F4A78 */ if (_t44) goto L_028F4A7C; else goto L_028F4A88;
|
|
L_028F4A7C: ; // 0x28f4a7c
|
|
/* 028F4A7C */ _t45 = cpu->r[23] + 0xFFFF98F0u;
|
|
/* 028F4A7C */ cpu->r[3] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F4A80 */ Gambit_fn_02826F20(cpu);
|
|
/* 028F4A84 */ cpu->r[12] = cpu->r[3];
|
|
L_028F4A88: ; // 0x28f4a88
|
|
/* 028F4A88 */ _t46 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028F4A88 */ cpu->r[11] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F4A8C */ _t47 = cpu->r[11] + 0x00000034u;
|
|
/* 028F4A8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F4A90 */ cpu->ctr = cpu->r[0];
|
|
/* 028F4A94 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F4A98 */ cpu->r[4] = cpu->r[21];
|
|
/* 028F4A9C */ cpu->r[3] = cpu->r[12];
|
|
/* 028F4AA0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4AA4 */ cpu->r[18] = cpu->r[3];
|
|
/* 028F4AA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4AAC */ cpu->r[27] = cpu->r[29];
|
|
/* 028F4AB0 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F4AB4 */ _t48 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4AB4 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F4AB4 */ if (_t49) goto L_028F4ABC; else goto L_028F4AB8;
|
|
L_028F4AB8: ; // 0x28f4ab8
|
|
/* 028F4AB8 */ cpu->r[27] = 0x00000001u;
|
|
L_028F4ABC: ; // 0x28f4abc
|
|
/* 028F4ABC */ cpu->r[19] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F4AC0 */ cpu->r[17] = 0xFFFFFFFFu;
|
|
L_028F4AC4: ; // 0x28f4ac4
|
|
/* 028F4AC4 */ cpu->r[22] = cpu->r[18] + cpu->r[19];
|
|
/* 028F4AC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], 0x00000000u);
|
|
/* 028F4AC8 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4AC8 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028F4AC8 */ if (_t51) goto L_028F4B14; else goto L_028F4ACC;
|
|
L_028F4ACC: ; // 0x28f4acc
|
|
/* 028F4ACC */ cpu->r[10] = cpu->r[22];
|
|
/* 028F4ACC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F4AD0 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4AD0 */ _t53 = _t52 & 0x00000001u;
|
|
/* 028F4AD0 */ if (_t53) goto L_028F4AD4; else goto L_028F4AE4;
|
|
L_028F4AD4: ; // 0x28f4ad4
|
|
/* 028F4AD4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F4AD8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F4ADC */ cpu->r[10] = cpu->r[3];
|
|
/* 028F4ADC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F4AE0 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4AE0 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028F4AE0 */ if (_t55) goto L_028F4AEC; else goto L_028F4AE4;
|
|
L_028F4AE4: ; // 0x28f4ae4
|
|
/* 028F4AE4 */ _t56 = cpu->r[10] + 0x00000000u;
|
|
/* 028F4AE4 */ rbrew_write32(cpu->mem, _t56, cpu->r[25]);
|
|
/* 028F4AE8 */ _t57 = cpu->r[10] + 0x00000004u;
|
|
/* 028F4AE8 */ rbrew_write32(cpu->mem, _t57, cpu->r[24]);
|
|
L_028F4AEC: ; // 0x28f4aec
|
|
/* 028F4AEC */ cpu->r[12] = cpu->r[22] + 0x00000008u;
|
|
/* 028F4AEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F4AF0 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4AF0 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028F4AF0 */ if (_t59) goto L_028F4AF4; else goto L_028F4B04;
|
|
L_028F4AF4: ; // 0x28f4af4
|
|
/* 028F4AF4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F4AF8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F4AFC */ cpu->r[12] = cpu->r[3];
|
|
/* 028F4AFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F4B00 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4B00 */ _t61 = _t60 & 0x00000001u;
|
|
/* 028F4B00 */ if (_t61) goto L_028F4B14; else goto L_028F4B04;
|
|
L_028F4B04: ; // 0x28f4b04
|
|
/* 028F4B04 */ _t62 = cpu->r[12] + 0x00000002u;
|
|
/* 028F4B04 */ rbrew_write16(cpu->mem, _t62, (uint16_t)cpu->r[17]);
|
|
/* 028F4B08 */ _t63 = cpu->r[12] + 0x00000004u;
|
|
/* 028F4B08 */ rbrew_write16(cpu->mem, _t63, (uint16_t)cpu->r[17]);
|
|
/* 028F4B0C */ _t64 = cpu->r[12] + 0x00000000u;
|
|
/* 028F4B0C */ rbrew_write16(cpu->mem, _t64, (uint16_t)cpu->r[17]);
|
|
/* 028F4B10 */ _t65 = cpu->r[12] + 0x00000006u;
|
|
/* 028F4B10 */ rbrew_write16(cpu->mem, _t65, (uint16_t)cpu->r[28]);
|
|
L_028F4B14: ; // 0x28f4b14
|
|
/* 028F4B14 */ cpu->r[27] = cpu->r[27] + 0xFFFFFFFFu;
|
|
/* 028F4B14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028F4B18 */ cpu->r[19] = cpu->r[19] + 0x00000010u;
|
|
/* 028F4B1C */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4B1C */ _t67 = _t66 & 0x00000001u;
|
|
/* 028F4B1C */ if (_t67) goto L_028F4B20; else goto L_028F4AC4;
|
|
L_028F4B20: ; // 0x28f4b20
|
|
/* 028F4B20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[18], 0x00000000u);
|
|
/* 028F4B24 */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4B24 */ _t69 = _t68 & 0x00000001u;
|
|
/* 028F4B24 */ if (_t69) goto L_028F4B30; else goto L_028F4B28;
|
|
L_028F4B28: ; // 0x28f4b28
|
|
/* 028F4B28 */ _t70 = cpu->r[20] + 0x00000004u;
|
|
/* 028F4B28 */ rbrew_write32(cpu->mem, _t70, cpu->r[18]);
|
|
/* 028F4B2C */ _t71 = cpu->r[20] + 0x00000000u;
|
|
/* 028F4B2C */ rbrew_write32(cpu->mem, _t71, cpu->r[29]);
|
|
L_028F4B30: ; // 0x28f4b30
|
|
/* 028F4B30 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F4B34 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F4B38 */ _t72 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4B38 */ _t73 = _t72 & 0x00000001u;
|
|
/* 028F4B38 */ if (_t73) goto L_028F4B3C; else goto L_028F4A70;
|
|
L_028F4B3C: ; // 0x28f4b3c
|
|
/* 028F4B3C */ /* nop */
|
|
/* 028F4B40 */ _t74 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F4B40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028F4B44 */ cpu->lr = cpu->r[0];
|
|
/* 028F4B48 */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028F4B4C */ return;
|
|
}
|
|
|
|
// fn_028F4930 @ 0x28f4930
|
|
void Gambit_fn_028F4930(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F4930: ; // 0x28f4930
|
|
/* 028F4930 */ _t0 = cpu->r[1] + 0xFFFFFFB8u;
|
|
/* 028F4930 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F4930 */ cpu->r[1] = _t0;
|
|
/* 028F4934 */ _t1 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F4934 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F4938 */ /* nop */
|
|
/* 028F493C */ cpu->r[28] = cpu->r[3];
|
|
/* 028F4940 */ cpu->r[26] = cpu->r[5];
|
|
/* 028F4944 */ cpu->r[29] = cpu->r[4];
|
|
/* 028F4944 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4948 */ cpu->r[25] = 0x10140000u;
|
|
/* 028F494C */ cpu->r[3] = cpu->r[26];
|
|
/* 028F4950 */ cpu->r[24] = 0x10140000u;
|
|
/* 028F4954 */ cpu->r[25] = cpu->r[25] + 0xFFFFCDA8u;
|
|
/* 028F4958 */ cpu->r[23] = 0x101D0000u;
|
|
/* 028F495C */ cpu->r[24] = cpu->r[24] + 0xFFFFCD6Cu;
|
|
/* 028F4960 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4960 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F4960 */ if (_t3) goto L_028F4964; else goto L_028F4A20;
|
|
L_028F4964: ; // 0x28f4964
|
|
/* 028F4964 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F4968 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4968 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F4968 */ if (_t5) goto L_028F496C; else goto L_028F4974;
|
|
L_028F496C: ; // 0x28f496c
|
|
/* 028F496C */ _t6 = cpu->r[23] + 0xFFFF98F0u;
|
|
/* 028F496C */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F4970 */ Gambit_fn_02826F20(cpu);
|
|
L_028F4974: ; // 0x28f4974
|
|
/* 028F4974 */ _t7 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F4974 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F4978 */ _t8 = cpu->r[10] + 0x00000034u;
|
|
/* 028F4978 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F497C */ cpu->ctr = cpu->r[0];
|
|
/* 028F4980 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F4984 */ cpu->r[4] = rbrew_rlwinm(cpu->r[29], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F4988 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F498C */ cpu->r[22] = cpu->r[3];
|
|
/* 028F4990 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4994 */ cpu->r[31] = cpu->r[29];
|
|
/* 028F4998 */ cpu->r[5] = 0x00000000u;
|
|
/* 028F499C */ _t9 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F499C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F499C */ if (_t10) goto L_028F49A4; else goto L_028F49A0;
|
|
L_028F49A0: ; // 0x28f49a0
|
|
/* 028F49A0 */ cpu->r[31] = 0x00000001u;
|
|
L_028F49A4: ; // 0x28f49a4
|
|
/* 028F49A4 */ cpu->r[27] = 0x00010000u;
|
|
/* 028F49A8 */ cpu->r[21] = rbrew_rlwinm(cpu->r[5], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F49AC */ cpu->r[27] = cpu->r[27] + 0xFFFFFFFFu;
|
|
/* 028F49B0 */ cpu->r[20] = 0xFFFFFFFFu;
|
|
L_028F49B4: ; // 0x28f49b4
|
|
/* 028F49B4 */ cpu->r[30] = cpu->r[22] + cpu->r[21];
|
|
/* 028F49B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F49B8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F49B8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F49B8 */ if (_t12) goto L_028F4A04; else goto L_028F49BC;
|
|
L_028F49BC: ; // 0x28f49bc
|
|
/* 028F49BC */ cpu->r[6] = cpu->r[30];
|
|
/* 028F49BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F49C0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F49C0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F49C0 */ if (_t14) goto L_028F49C4; else goto L_028F49D4;
|
|
L_028F49C4: ; // 0x28f49c4
|
|
/* 028F49C4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F49C8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F49CC */ cpu->r[6] = cpu->r[3];
|
|
/* 028F49CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F49D0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F49D0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F49D0 */ if (_t16) goto L_028F49DC; else goto L_028F49D4;
|
|
L_028F49D4: ; // 0x28f49d4
|
|
/* 028F49D4 */ _t17 = cpu->r[6] + 0x00000000u;
|
|
/* 028F49D4 */ rbrew_write32(cpu->mem, _t17, cpu->r[25]);
|
|
/* 028F49D8 */ _t18 = cpu->r[6] + 0x00000004u;
|
|
/* 028F49D8 */ rbrew_write32(cpu->mem, _t18, cpu->r[24]);
|
|
L_028F49DC: ; // 0x28f49dc
|
|
/* 028F49DC */ cpu->r[7] = cpu->r[30] + 0x00000008u;
|
|
/* 028F49DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F49E0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F49E0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F49E0 */ if (_t20) goto L_028F49E4; else goto L_028F49F4;
|
|
L_028F49E4: ; // 0x28f49e4
|
|
/* 028F49E4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F49E8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F49EC */ cpu->r[7] = cpu->r[3];
|
|
/* 028F49EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F49F0 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F49F0 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F49F0 */ if (_t22) goto L_028F4A04; else goto L_028F49F4;
|
|
L_028F49F4: ; // 0x28f49f4
|
|
/* 028F49F4 */ _t23 = cpu->r[7] + 0x00000002u;
|
|
/* 028F49F4 */ rbrew_write16(cpu->mem, _t23, (uint16_t)cpu->r[20]);
|
|
/* 028F49F8 */ _t24 = cpu->r[7] + 0x00000004u;
|
|
/* 028F49F8 */ rbrew_write16(cpu->mem, _t24, (uint16_t)cpu->r[20]);
|
|
/* 028F49FC */ _t25 = cpu->r[7] + 0x00000000u;
|
|
/* 028F49FC */ rbrew_write16(cpu->mem, _t25, (uint16_t)cpu->r[20]);
|
|
/* 028F4A00 */ _t26 = cpu->r[7] + 0x00000006u;
|
|
/* 028F4A00 */ rbrew_write16(cpu->mem, _t26, (uint16_t)cpu->r[27]);
|
|
L_028F4A04: ; // 0x28f4a04
|
|
/* 028F4A04 */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028F4A04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F4A08 */ cpu->r[21] = cpu->r[21] + 0x00000010u;
|
|
/* 028F4A0C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4A0C */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F4A0C */ if (_t28) goto L_028F4A10; else goto L_028F49B4;
|
|
L_028F4A10: ; // 0x28f4a10
|
|
/* 028F4A10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], 0x00000000u);
|
|
/* 028F4A14 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4A14 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F4A14 */ if (_t30) goto L_028F4A20; else goto L_028F4A18;
|
|
L_028F4A18: ; // 0x28f4a18
|
|
/* 028F4A18 */ _t31 = cpu->r[28] + 0x00000030u;
|
|
/* 028F4A18 */ rbrew_write32(cpu->mem, _t31, cpu->r[22]);
|
|
/* 028F4A1C */ _t32 = cpu->r[28] + 0x0000002Cu;
|
|
/* 028F4A1C */ rbrew_write32(cpu->mem, _t32, cpu->r[29]);
|
|
L_028F4A20: ; // 0x28f4a20
|
|
/* 028F4A20 */ _t33 = cpu->r[28] + 0x00000078u;
|
|
/* 028F4A20 */ cpu->r[8] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F4A24 */ _t34 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028F4A24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F4A28 */ _t35 = cpu->r[8] + 0x00000010u;
|
|
/* 028F4A28 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F4A2C */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F4A30 */ cpu->r[30] = cpu->r[31] + cpu->r[9];
|
|
/* 028F4A34 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F4A38 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4A38 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F4A38 */ if (_t37) goto L_028F4B3C; else goto L_028F4A3C;
|
|
L_028F4A3C: ; // 0x28f4a3c
|
|
/* 028F4A3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4A40 */ _t38 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4A40 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028F4A40 */ if (_t39) goto L_028F4A64; else goto L_028F4A44;
|
|
L_028F4A44: ; // 0x28f4a44
|
|
/* 028F4A44 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F4A48 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F4A4C */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4A4C */ _t41 = _t40 & 0x00000001u;
|
|
/* 028F4A4C */ if (_t41) goto L_028F4A50; else goto L_028F4A44;
|
|
L_028F4A50: ; // 0x28f4a50
|
|
/* 028F4A50 */ /* nop */
|
|
/* 028F4A54 */ _t42 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F4A54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F4A58 */ cpu->lr = cpu->r[0];
|
|
/* 028F4A5C */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028F4A60 */ return;
|
|
L_028F4A64: ; // 0x28f4a64
|
|
/* 028F4A64 */ cpu->r[28] = 0x00010000u;
|
|
/* 028F4A68 */ cpu->r[21] = rbrew_rlwinm(cpu->r[29], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F4A6C */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
L_028F4A70: ; // 0x28f4a70
|
|
/* 028F4A70 */ cpu->r[12] = cpu->r[26];
|
|
/* 028F4A70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F4A74 */ cpu->r[20] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F4A78 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4A78 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F4A78 */ if (_t44) goto L_028F4A7C; else goto L_028F4A88;
|
|
L_028F4A7C: ; // 0x28f4a7c
|
|
/* 028F4A7C */ _t45 = cpu->r[23] + 0xFFFF98F0u;
|
|
/* 028F4A7C */ cpu->r[3] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F4A80 */ Gambit_fn_02826F20(cpu);
|
|
/* 028F4A84 */ cpu->r[12] = cpu->r[3];
|
|
L_028F4A88: ; // 0x28f4a88
|
|
/* 028F4A88 */ _t46 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028F4A88 */ cpu->r[11] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F4A8C */ _t47 = cpu->r[11] + 0x00000034u;
|
|
/* 028F4A8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F4A90 */ cpu->ctr = cpu->r[0];
|
|
/* 028F4A94 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F4A98 */ cpu->r[4] = cpu->r[21];
|
|
/* 028F4A9C */ cpu->r[3] = cpu->r[12];
|
|
/* 028F4AA0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4AA4 */ cpu->r[18] = cpu->r[3];
|
|
/* 028F4AA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F4AAC */ cpu->r[27] = cpu->r[29];
|
|
/* 028F4AB0 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F4AB4 */ _t48 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F4AB4 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F4AB4 */ if (_t49) goto L_028F4ABC; else goto L_028F4AB8;
|
|
L_028F4AB8: ; // 0x28f4ab8
|
|
/* 028F4AB8 */ cpu->r[27] = 0x00000001u;
|
|
L_028F4ABC: ; // 0x28f4abc
|
|
/* 028F4ABC */ cpu->r[19] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F4AC0 */ cpu->r[17] = 0xFFFFFFFFu;
|
|
L_028F4AC4: ; // 0x28f4ac4
|
|
/* 028F4AC4 */ cpu->r[22] = cpu->r[18] + cpu->r[19];
|
|
/* 028F4AC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], 0x00000000u);
|
|
/* 028F4AC8 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4AC8 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028F4AC8 */ if (_t51) goto L_028F4B14; else goto L_028F4ACC;
|
|
L_028F4ACC: ; // 0x28f4acc
|
|
/* 028F4ACC */ cpu->r[10] = cpu->r[22];
|
|
/* 028F4ACC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F4AD0 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4AD0 */ _t53 = _t52 & 0x00000001u;
|
|
/* 028F4AD0 */ if (_t53) goto L_028F4AD4; else goto L_028F4AE4;
|
|
L_028F4AD4: ; // 0x28f4ad4
|
|
/* 028F4AD4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F4AD8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F4ADC */ cpu->r[10] = cpu->r[3];
|
|
/* 028F4ADC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F4AE0 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4AE0 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028F4AE0 */ if (_t55) goto L_028F4AEC; else goto L_028F4AE4;
|
|
L_028F4AE4: ; // 0x28f4ae4
|
|
/* 028F4AE4 */ _t56 = cpu->r[10] + 0x00000000u;
|
|
/* 028F4AE4 */ rbrew_write32(cpu->mem, _t56, cpu->r[25]);
|
|
/* 028F4AE8 */ _t57 = cpu->r[10] + 0x00000004u;
|
|
/* 028F4AE8 */ rbrew_write32(cpu->mem, _t57, cpu->r[24]);
|
|
L_028F4AEC: ; // 0x28f4aec
|
|
/* 028F4AEC */ cpu->r[12] = cpu->r[22] + 0x00000008u;
|
|
/* 028F4AEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F4AF0 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4AF0 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028F4AF0 */ if (_t59) goto L_028F4AF4; else goto L_028F4B04;
|
|
L_028F4AF4: ; // 0x28f4af4
|
|
/* 028F4AF4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F4AF8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F4AFC */ cpu->r[12] = cpu->r[3];
|
|
/* 028F4AFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F4B00 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4B00 */ _t61 = _t60 & 0x00000001u;
|
|
/* 028F4B00 */ if (_t61) goto L_028F4B14; else goto L_028F4B04;
|
|
L_028F4B04: ; // 0x28f4b04
|
|
/* 028F4B04 */ _t62 = cpu->r[12] + 0x00000002u;
|
|
/* 028F4B04 */ rbrew_write16(cpu->mem, _t62, (uint16_t)cpu->r[17]);
|
|
/* 028F4B08 */ _t63 = cpu->r[12] + 0x00000004u;
|
|
/* 028F4B08 */ rbrew_write16(cpu->mem, _t63, (uint16_t)cpu->r[17]);
|
|
/* 028F4B0C */ _t64 = cpu->r[12] + 0x00000000u;
|
|
/* 028F4B0C */ rbrew_write16(cpu->mem, _t64, (uint16_t)cpu->r[17]);
|
|
/* 028F4B10 */ _t65 = cpu->r[12] + 0x00000006u;
|
|
/* 028F4B10 */ rbrew_write16(cpu->mem, _t65, (uint16_t)cpu->r[28]);
|
|
L_028F4B14: ; // 0x28f4b14
|
|
/* 028F4B14 */ cpu->r[27] = cpu->r[27] + 0xFFFFFFFFu;
|
|
/* 028F4B14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028F4B18 */ cpu->r[19] = cpu->r[19] + 0x00000010u;
|
|
/* 028F4B1C */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4B1C */ _t67 = _t66 & 0x00000001u;
|
|
/* 028F4B1C */ if (_t67) goto L_028F4B20; else goto L_028F4AC4;
|
|
L_028F4B20: ; // 0x28f4b20
|
|
/* 028F4B20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[18], 0x00000000u);
|
|
/* 028F4B24 */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4B24 */ _t69 = _t68 & 0x00000001u;
|
|
/* 028F4B24 */ if (_t69) goto L_028F4B30; else goto L_028F4B28;
|
|
L_028F4B28: ; // 0x28f4b28
|
|
/* 028F4B28 */ _t70 = cpu->r[20] + 0x00000004u;
|
|
/* 028F4B28 */ rbrew_write32(cpu->mem, _t70, cpu->r[18]);
|
|
/* 028F4B2C */ _t71 = cpu->r[20] + 0x00000000u;
|
|
/* 028F4B2C */ rbrew_write32(cpu->mem, _t71, cpu->r[29]);
|
|
L_028F4B30: ; // 0x28f4b30
|
|
/* 028F4B30 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
/* 028F4B34 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F4B38 */ _t72 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4B38 */ _t73 = _t72 & 0x00000001u;
|
|
/* 028F4B38 */ if (_t73) goto L_028F4B3C; else goto L_028F4A70;
|
|
L_028F4B3C: ; // 0x28f4b3c
|
|
/* 028F4B3C */ /* nop */
|
|
/* 028F4B40 */ _t74 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F4B40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028F4B44 */ cpu->lr = cpu->r[0];
|
|
/* 028F4B48 */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028F4B4C */ return;
|
|
}
|
|
|
|
// fn_028F4B50 @ 0x28f4b50
|
|
void Gambit_fn_028F4B50(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028F4B50: ; // 0x28f4b50
|
|
/* 028F4B50 */ _t0 = cpu->r[3] + 0x0000002Cu;
|
|
/* 028F4B50 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F4B54 */ _t1 = cpu->r[3] + 0x00000030u;
|
|
/* 028F4B54 */ cpu->r[11] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028F4B58 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[12]);
|
|
/* 028F4B5C */ _t2 = cpu->r[5] + 0x00000000u;
|
|
/* 028F4B5C */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F4B60 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F4B60 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F4B60 */ if (_t4) goto L_028F4B64; else goto L_028F4B6C;
|
|
L_028F4B64: ; // 0x28f4b64
|
|
/* 028F4B64 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F4B68 */ cpu->r[11] = cpu->r[11] + cpu->r[0];
|
|
L_028F4B6C: ; // 0x28f4b6c
|
|
/* 028F4B6C */ _t5 = cpu->r[11] + 0x00000000u;
|
|
/* 028F4B6C */ rbrew_write32(cpu->mem, _t5, cpu->r[9]);
|
|
/* 028F4B70 */ _t6 = cpu->r[3] + 0x00000078u;
|
|
/* 028F4B70 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F4B74 */ _t7 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028F4B74 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F4B78 */ _t8 = cpu->r[7] + 0x00000010u;
|
|
/* 028F4B78 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F4B7C */ cpu->r[9] = rbrew_rlwinm(cpu->r[8], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F4B80 */ cpu->r[0] = cpu->r[12] + cpu->r[9];
|
|
/* 028F4B84 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F4B88 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4B88 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F4B88 */ if (_t10) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F4B88 */ goto L_028F4B8C;
|
|
L_028F4B8C: ; // 0x28f4b8c
|
|
/* 028F4B8C */ cpu->r[7] = rbrew_rlwinm(cpu->r[4], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
L_028F4B90: ; // 0x28f4b90
|
|
/* 028F4B90 */ _t11 = cpu->r[12] + 0x0000002Cu;
|
|
/* 028F4B90 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F4B94 */ _t12 = cpu->r[5] + 0x00000000u;
|
|
/* 028F4B94 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F4B98 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[10]);
|
|
/* 028F4B9C */ _t13 = cpu->r[12] + 0x00000030u;
|
|
/* 028F4B9C */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F4BA0 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F4BA0 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F4BA0 */ if (_t15) goto L_028F4BA4; else goto L_028F4BA8;
|
|
L_028F4BA4: ; // 0x28f4ba4
|
|
/* 028F4BA4 */ cpu->r[10] = cpu->r[10] + cpu->r[7];
|
|
L_028F4BA8: ; // 0x28f4ba8
|
|
/* 028F4BA8 */ cpu->r[12] = cpu->r[12] + 0x00000080u;
|
|
/* 028F4BAC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F4BB0 */ _t16 = cpu->r[10] + 0x00000000u;
|
|
/* 028F4BB0 */ rbrew_write32(cpu->mem, _t16, cpu->r[11]);
|
|
/* 028F4BB4 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4BB4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F4BB4 */ if (_t18) goto L_028F4BB8; else goto L_028F4B90;
|
|
L_028F4BB8: ; // 0x28f4bb8
|
|
/* 028F4BB8 */ return;
|
|
}
|
|
|
|
// fn_028F4BBC @ 0x28f4bbc
|
|
void Gambit_fn_028F4BBC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F4BBC: ; // 0x28f4bbc
|
|
/* 028F4BBC */ cpu->r[0] = cpu->lr;
|
|
/* 028F4BC0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F4BC0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F4BC0 */ cpu->r[1] = _t0;
|
|
/* 028F4BC4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F4BC4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F4BC8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F4BC8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F4BCC */ cpu->r[31] = cpu->r[3];
|
|
/* 028F4BD0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F4BD0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F4BD4 */ _t4 = cpu->r[31] + 0x00000078u;
|
|
/* 028F4BD4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F4BD8 */ cpu->r[11] = cpu->r[9] + 0x00000008u;
|
|
/* 028F4BD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028F4BDC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4BDC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F4BDC */ if (_t6) goto L_028F4C80; else goto L_028F4BE0;
|
|
L_028F4BE0: ; // 0x28f4be0
|
|
/* 028F4BE0 */ _t7 = cpu->r[9] + 0x00000008u;
|
|
/* 028F4BE0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F4BE4 */ _t8 = cpu->r[3] + 0x00000000u;
|
|
/* 028F4BE4 */ cpu->r[7] = rbrew_read8(cpu->mem, _t8);
|
|
/* 028F4BE8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[7], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F4BE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F4BEC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4BEC */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F4BEC */ if (_t10) goto L_028F4BF0; else goto L_028F4C10;
|
|
L_028F4BF0: ; // 0x28f4bf0
|
|
/* 028F4BF0 */ _t11 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028F4BF0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F4BF4 */ _t12 = cpu->r[9] + 0x00000010u;
|
|
/* 028F4BF4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F4BF8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[10], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F4BFC */ cpu->r[31] = cpu->r[30] + cpu->r[12];
|
|
/* 028F4C00 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F4C04 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F4C08 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4C08 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F4C08 */ if (_t14) goto L_028F4CA0; else goto L_028F4C0C;
|
|
L_028F4C0C: ; // 0x28f4c0c
|
|
/* 028F4C0C */ goto L_028F4C3C;
|
|
L_028F4C10: ; // 0x28f4c10
|
|
/* 028F4C10 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F4C14 */ Gambit_fn_028F3F1C(cpu);
|
|
/* 028F4C18 */ cpu->r[0] = cpu->r[3];
|
|
/* 028F4C18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F4C1C */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4C1C */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F4C1C */ if (_t16) goto L_028F4C20; else goto L_028F4CA0;
|
|
L_028F4C20: ; // 0x28f4c20
|
|
/* 028F4C20 */ _t17 = cpu->r[31] + 0x00000078u;
|
|
/* 028F4C20 */ cpu->r[9] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F4C24 */ _t18 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028F4C24 */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F4C28 */ _t19 = cpu->r[9] + 0x00000010u;
|
|
/* 028F4C28 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F4C2C */ cpu->r[12] = rbrew_rlwinm(cpu->r[10], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F4C30 */ cpu->r[31] = cpu->r[30] + cpu->r[12];
|
|
/* 028F4C34 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F4C38 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4C38 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F4C38 */ if (_t21) goto L_028F4CA0; else goto L_028F4C3C;
|
|
L_028F4C3C: ; // 0x28f4c3c
|
|
/* 028F4C3C */ cpu->r[3] = cpu->r[30];
|
|
/* 028F4C40 */ _t22 = cpu->r[3] + 0x00000000u;
|
|
/* 028F4C40 */ cpu->r[7] = rbrew_read8(cpu->mem, _t22);
|
|
/* 028F4C44 */ cpu->r[0] = rbrew_rlwinm(cpu->r[7], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F4C44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F4C48 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4C48 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028F4C48 */ if (_t24) goto L_028F4C4C; else goto L_028F4C60;
|
|
L_028F4C4C: ; // 0x28f4c4c
|
|
/* 028F4C4C */ cpu->r[30] = cpu->r[30] + 0x00000080u;
|
|
/* 028F4C50 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F4C54 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F4C58 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4C58 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028F4C58 */ if (_t26) goto L_028F4C5C; else goto L_028F4C3C;
|
|
L_028F4C5C: ; // 0x28f4c5c
|
|
/* 028F4C5C */ goto L_028F4CA0;
|
|
L_028F4C60: ; // 0x28f4c60
|
|
/* 028F4C60 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F4C64 */ Gambit_fn_028F3F1C(cpu);
|
|
/* 028F4C68 */ cpu->r[0] = cpu->r[3];
|
|
/* 028F4C68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F4C6C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4C6C */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F4C6C */ if (_t28) goto L_028F4C70; else goto L_028F4CA0;
|
|
L_028F4C70: ; // 0x28f4c70
|
|
/* 028F4C70 */ cpu->r[30] = cpu->r[30] + 0x00000080u;
|
|
/* 028F4C74 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F4C78 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4C78 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F4C78 */ if (_t30) goto L_028F4C7C; else goto L_028F4C3C;
|
|
L_028F4C7C: ; // 0x28f4c7c
|
|
/* 028F4C7C */ goto L_028F4CA0;
|
|
L_028F4C80: ; // 0x28f4c80
|
|
/* 028F4C80 */ _t31 = cpu->r[31] + 0x00000000u;
|
|
/* 028F4C80 */ cpu->r[8] = rbrew_read8(cpu->mem, _t31);
|
|
/* 028F4C84 */ cpu->r[0] = rbrew_rlwinm(cpu->r[8], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F4C84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F4C88 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F4C8C */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4C8C */ _t33 = _t32 & 0x00000001u;
|
|
/* 028F4C8C */ if (_t33) goto L_028F4CA0; else goto L_028F4C90;
|
|
L_028F4C90: ; // 0x28f4c90
|
|
/* 028F4C90 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F4C94 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F4C98 */ Gambit_fn_028F3F1C(cpu);
|
|
/* 028F4C9C */ cpu->r[0] = cpu->r[3];
|
|
L_028F4CA0: ; // 0x28f4ca0
|
|
/* 028F4CA0 */ cpu->r[3] = cpu->r[0];
|
|
/* 028F4CA4 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 028F4CA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F4CA8 */ _t35 = cpu->r[1] + 0x00000008u;
|
|
/* 028F4CA8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F4CAC */ cpu->lr = cpu->r[0];
|
|
/* 028F4CB0 */ _t36 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F4CB0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F4CB4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F4CB8 */ return;
|
|
}
|
|
|
|
// fn_028F4BC0 @ 0x28f4bc0
|
|
void Gambit_fn_028F4BC0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F4BC0: ; // 0x28f4bc0
|
|
/* 028F4BC0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F4BC0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F4BC0 */ cpu->r[1] = _t0;
|
|
/* 028F4BC4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F4BC4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F4BC8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F4BC8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F4BCC */ cpu->r[31] = cpu->r[3];
|
|
/* 028F4BD0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F4BD0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F4BD4 */ _t4 = cpu->r[31] + 0x00000078u;
|
|
/* 028F4BD4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F4BD8 */ cpu->r[11] = cpu->r[9] + 0x00000008u;
|
|
/* 028F4BD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028F4BDC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4BDC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F4BDC */ if (_t6) goto L_028F4C80; else goto L_028F4BE0;
|
|
L_028F4BE0: ; // 0x28f4be0
|
|
/* 028F4BE0 */ _t7 = cpu->r[9] + 0x00000008u;
|
|
/* 028F4BE0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F4BE4 */ _t8 = cpu->r[3] + 0x00000000u;
|
|
/* 028F4BE4 */ cpu->r[7] = rbrew_read8(cpu->mem, _t8);
|
|
/* 028F4BE8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[7], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F4BE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F4BEC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4BEC */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F4BEC */ if (_t10) goto L_028F4BF0; else goto L_028F4C10;
|
|
L_028F4BF0: ; // 0x28f4bf0
|
|
/* 028F4BF0 */ _t11 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028F4BF0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F4BF4 */ _t12 = cpu->r[9] + 0x00000010u;
|
|
/* 028F4BF4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F4BF8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[10], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F4BFC */ cpu->r[31] = cpu->r[30] + cpu->r[12];
|
|
/* 028F4C00 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F4C04 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F4C08 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4C08 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F4C08 */ if (_t14) goto L_028F4CA0; else goto L_028F4C0C;
|
|
L_028F4C0C: ; // 0x28f4c0c
|
|
/* 028F4C0C */ goto L_028F4C3C;
|
|
L_028F4C10: ; // 0x28f4c10
|
|
/* 028F4C10 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F4C14 */ Gambit_fn_028F3F1C(cpu);
|
|
/* 028F4C18 */ cpu->r[0] = cpu->r[3];
|
|
/* 028F4C18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F4C1C */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4C1C */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F4C1C */ if (_t16) goto L_028F4C20; else goto L_028F4CA0;
|
|
L_028F4C20: ; // 0x28f4c20
|
|
/* 028F4C20 */ _t17 = cpu->r[31] + 0x00000078u;
|
|
/* 028F4C20 */ cpu->r[9] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F4C24 */ _t18 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028F4C24 */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F4C28 */ _t19 = cpu->r[9] + 0x00000010u;
|
|
/* 028F4C28 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F4C2C */ cpu->r[12] = rbrew_rlwinm(cpu->r[10], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F4C30 */ cpu->r[31] = cpu->r[30] + cpu->r[12];
|
|
/* 028F4C34 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F4C38 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4C38 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F4C38 */ if (_t21) goto L_028F4CA0; else goto L_028F4C3C;
|
|
L_028F4C3C: ; // 0x28f4c3c
|
|
/* 028F4C3C */ cpu->r[3] = cpu->r[30];
|
|
/* 028F4C40 */ _t22 = cpu->r[3] + 0x00000000u;
|
|
/* 028F4C40 */ cpu->r[7] = rbrew_read8(cpu->mem, _t22);
|
|
/* 028F4C44 */ cpu->r[0] = rbrew_rlwinm(cpu->r[7], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F4C44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F4C48 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4C48 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028F4C48 */ if (_t24) goto L_028F4C4C; else goto L_028F4C60;
|
|
L_028F4C4C: ; // 0x28f4c4c
|
|
/* 028F4C4C */ cpu->r[30] = cpu->r[30] + 0x00000080u;
|
|
/* 028F4C50 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F4C54 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F4C58 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4C58 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028F4C58 */ if (_t26) goto L_028F4C5C; else goto L_028F4C3C;
|
|
L_028F4C5C: ; // 0x28f4c5c
|
|
/* 028F4C5C */ goto L_028F4CA0;
|
|
L_028F4C60: ; // 0x28f4c60
|
|
/* 028F4C60 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F4C64 */ Gambit_fn_028F3F1C(cpu);
|
|
/* 028F4C68 */ cpu->r[0] = cpu->r[3];
|
|
/* 028F4C68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F4C6C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4C6C */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F4C6C */ if (_t28) goto L_028F4C70; else goto L_028F4CA0;
|
|
L_028F4C70: ; // 0x28f4c70
|
|
/* 028F4C70 */ cpu->r[30] = cpu->r[30] + 0x00000080u;
|
|
/* 028F4C74 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F4C78 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4C78 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F4C78 */ if (_t30) goto L_028F4C7C; else goto L_028F4C3C;
|
|
L_028F4C7C: ; // 0x28f4c7c
|
|
/* 028F4C7C */ goto L_028F4CA0;
|
|
L_028F4C80: ; // 0x28f4c80
|
|
/* 028F4C80 */ _t31 = cpu->r[31] + 0x00000000u;
|
|
/* 028F4C80 */ cpu->r[8] = rbrew_read8(cpu->mem, _t31);
|
|
/* 028F4C84 */ cpu->r[0] = rbrew_rlwinm(cpu->r[8], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F4C84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F4C88 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F4C8C */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4C8C */ _t33 = _t32 & 0x00000001u;
|
|
/* 028F4C8C */ if (_t33) goto L_028F4CA0; else goto L_028F4C90;
|
|
L_028F4C90: ; // 0x28f4c90
|
|
/* 028F4C90 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F4C94 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F4C98 */ Gambit_fn_028F3F1C(cpu);
|
|
/* 028F4C9C */ cpu->r[0] = cpu->r[3];
|
|
L_028F4CA0: ; // 0x28f4ca0
|
|
/* 028F4CA0 */ cpu->r[3] = cpu->r[0];
|
|
/* 028F4CA4 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 028F4CA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F4CA8 */ _t35 = cpu->r[1] + 0x00000008u;
|
|
/* 028F4CA8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F4CAC */ cpu->lr = cpu->r[0];
|
|
/* 028F4CB0 */ _t36 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F4CB0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F4CB4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F4CB8 */ return;
|
|
}
|
|
|
|
// fn_028F4CBC @ 0x28f4cbc
|
|
void Gambit_fn_028F4CBC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028F4CBC: ; // 0x28f4cbc
|
|
/* 028F4CBC */ _t0 = cpu->r[3] + 0x00000078u;
|
|
/* 028F4CBC */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F4CC0 */ cpu->r[11] = cpu->r[12] + 0x00000008u;
|
|
/* 028F4CC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028F4CC4 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4CC4 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028F4CC4 */ if (_t2) goto L_028F4D10; else goto L_028F4CC8;
|
|
L_028F4CC8: ; // 0x28f4cc8
|
|
/* 028F4CC8 */ _t3 = cpu->r[12] + 0x00000008u;
|
|
/* 028F4CC8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F4CCC */ _t4 = cpu->r[12] + 0x00000000u;
|
|
/* 028F4CCC */ cpu->r[0] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028F4CD0 */ cpu->r[0] = cpu->r[0] | 0x00000002u;
|
|
/* 028F4CD4 */ _t5 = cpu->r[12] + 0x00000000u;
|
|
/* 028F4CD4 */ rbrew_write8(cpu->mem, _t5, (uint8_t)cpu->r[0]);
|
|
/* 028F4CD8 */ _t6 = cpu->r[3] + 0x00000078u;
|
|
/* 028F4CD8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F4CDC */ _t7 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028F4CDC */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F4CE0 */ _t8 = cpu->r[12] + 0x00000010u;
|
|
/* 028F4CE0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F4CE4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F4CE8 */ cpu->r[0] = cpu->r[12] + cpu->r[0];
|
|
/* 028F4CEC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F4CF0 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4CF0 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F4CF0 */ if (_t10) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F4CF0 */ goto L_028F4CF4;
|
|
L_028F4CF4: ; // 0x28f4cf4
|
|
/* 028F4CF4 */ _t11 = cpu->r[12] + 0x00000000u;
|
|
/* 028F4CF4 */ cpu->r[11] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028F4CF8 */ cpu->r[11] = cpu->r[11] | 0x00000002u;
|
|
/* 028F4CFC */ _t12 = cpu->r[12] + 0x00000000u;
|
|
/* 028F4CFC */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[11]);
|
|
/* 028F4D00 */ cpu->r[12] = cpu->r[12] + 0x00000080u;
|
|
/* 028F4D04 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F4D08 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4D08 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F4D08 */ if (_t14) goto L_028F4D0C; else goto L_028F4CF4;
|
|
L_028F4D0C: ; // 0x28f4d0c
|
|
/* 028F4D0C */ return;
|
|
L_028F4D10: ; // 0x28f4d10
|
|
/* 028F4D10 */ _t15 = cpu->r[3] + 0x00000000u;
|
|
/* 028F4D10 */ cpu->r[0] = rbrew_read8(cpu->mem, _t15);
|
|
/* 028F4D14 */ cpu->r[0] = cpu->r[0] | 0x00000002u;
|
|
/* 028F4D18 */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 028F4D18 */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[0]);
|
|
/* 028F4D1C */ return;
|
|
}
|
|
|
|
// fn_028F4D20 @ 0x28f4d20
|
|
void Gambit_fn_028F4D20(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F4D20: ; // 0x28f4d20
|
|
/* 028F4D20 */ cpu->r[0] = cpu->lr;
|
|
/* 028F4D24 */ _t0 = cpu->r[1] + 0xFFFFFF20u;
|
|
/* 028F4D24 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F4D24 */ cpu->r[1] = _t0;
|
|
/* 028F4D28 */ _t1 = cpu->r[1] + 0x000000E4u;
|
|
/* 028F4D28 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F4D2C */ /* nop */
|
|
/* 028F4D30 */ cpu->r[25] = cpu->r[4];
|
|
/* 028F4D34 */ cpu->r[4] = cpu->r[7];
|
|
/* 028F4D38 */ cpu->r[28] = cpu->r[6];
|
|
/* 028F4D3C */ cpu->r[15] = cpu->r[3];
|
|
/* 028F4D40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0xFFFFFFFFu);
|
|
/* 028F4D44 */ cpu->r[24] = cpu->r[1] + 0x00000018u;
|
|
/* 028F4D48 */ cpu->r[26] = cpu->r[5];
|
|
/* 028F4D4C */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4D4C */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F4D4C */ if (_t3) goto L_028F4D50; else goto L_028F4D80;
|
|
L_028F4D50: ; // 0x28f4d50
|
|
/* 028F4D50 */ _t4 = cpu->r[15] + 0x0000000Cu;
|
|
/* 028F4D50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F4D54 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F4D58 */ cpu->r[3] = cpu->r[24];
|
|
/* 028F4D5C */ cpu->r[5] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F4D60 */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028F4D64 */ _t5 = cpu->r[15] + 0x0000000Cu;
|
|
/* 028F4D64 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F4D68 */ _t6 = cpu->r[15] + 0x00000010u;
|
|
/* 028F4D68 */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F4D6C */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000001Cu);
|
|
/* 028F4D70 */ cpu->r[9] = cpu->r[10] + cpu->r[11];
|
|
/* 028F4D74 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[9]);
|
|
/* 028F4D78 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4D78 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F4D78 */ if (_t8) goto L_028F4F94; else goto L_028F4D7C;
|
|
L_028F4D7C: ; // 0x28f4d7c
|
|
/* 028F4D7C */ goto L_028F4DA4;
|
|
L_028F4D80: ; // 0x28f4d80
|
|
/* 028F4D80 */ cpu->r[5] = cpu->r[24];
|
|
/* 028F4D84 */ cpu->r[3] = cpu->r[15];
|
|
/* 028F4D88 */ Gambit_fn_028F4FE4(cpu);
|
|
/* 028F4D8C */ _t9 = cpu->r[15] + 0x0000000Cu;
|
|
/* 028F4D8C */ cpu->r[9] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F4D90 */ _t10 = cpu->r[15] + 0x00000010u;
|
|
/* 028F4D90 */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F4D94 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000001Cu);
|
|
/* 028F4D98 */ cpu->r[9] = cpu->r[10] + cpu->r[11];
|
|
/* 028F4D9C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[9]);
|
|
/* 028F4DA0 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4DA0 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F4DA0 */ if (_t12) goto L_028F4F94; else goto L_028F4DA4;
|
|
L_028F4DA4: ; // 0x28f4da4
|
|
/* 028F4DA4 */ cpu->r[8] = 0x10110000u;
|
|
/* 028F4DA8 */ cpu->r[19] = cpu->r[10];
|
|
/* 028F4DAC */ cpu->r[31] = 0x00080000u;
|
|
/* 028F4DB0 */ _t13 = cpu->r[8] + 0x00007399u;
|
|
/* 028F4DB0 */ cpu->r[30] = rbrew_read8(cpu->mem, _t13);
|
|
/* 028F4DB4 */ cpu->r[20] = cpu->r[9];
|
|
/* 028F4DB8 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028F4DBC */ cpu->r[21] = cpu->r[10];
|
|
L_028F4DC0: ; // 0x28f4dc0
|
|
/* 028F4DC0 */ cpu->r[22] = 0x00000000u;
|
|
/* 028F4DC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], cpu->r[25]);
|
|
/* 028F4DC8 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F4DC8 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F4DC8 */ if (_t15) goto L_028F4DCC; else goto L_028F4F88;
|
|
L_028F4DCC: ; // 0x28f4dcc
|
|
/* 028F4DCC */ cpu->r[23] = 0x10140000u;
|
|
/* 028F4DD0 */ cpu->r[27] = cpu->r[19];
|
|
/* 028F4DD4 */ cpu->r[23] = cpu->r[23] + 0xFFFFCD6Cu;
|
|
/* 028F4DD8 */ cpu->r[18] = cpu->r[26];
|
|
/* 028F4DDC */ cpu->r[29] = cpu->r[30];
|
|
L_028F4DE0: ; // 0x28f4de0
|
|
/* 028F4DE0 */ _t16 = cpu->r[18] + 0x00000000u;
|
|
/* 028F4DE0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F4DE4 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F4DE4 */ rbrew_write32(cpu->mem, _t17, cpu->r[23]);
|
|
/* 028F4DE8 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028F4DE8 */ rbrew_write32(cpu->mem, _t18, cpu->r[6]);
|
|
/* 028F4DEC */ _t19 = cpu->r[27] + 0x00000004u;
|
|
/* 028F4DEC */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F4DF0 */ _t20 = cpu->r[12] + 0x00000014u;
|
|
/* 028F4DF0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F4DF4 */ cpu->ctr = cpu->r[4];
|
|
/* 028F4DF8 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F4DFC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4E00 */ _t21 = cpu->r[27] + 0x00000004u;
|
|
/* 028F4E00 */ cpu->r[5] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F4E04 */ _t22 = cpu->r[5] + 0x00000014u;
|
|
/* 028F4E04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F4E08 */ cpu->ctr = cpu->r[0];
|
|
/* 028F4E0C */ cpu->r[3] = cpu->r[27];
|
|
/* 028F4E10 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4E14 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F4E14 */ cpu->r[7] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F4E18 */ _t24 = cpu->r[7] + 0x00000014u;
|
|
/* 028F4E18 */ cpu->r[10] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F4E1C */ cpu->ctr = cpu->r[10];
|
|
/* 028F4E20 */ _t25 = cpu->r[27] + 0x00000000u;
|
|
/* 028F4E20 */ cpu->r[17] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F4E24 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F4E28 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4E2C */ _t26 = cpu->r[1] + 0x00000008u;
|
|
/* 028F4E2C */ cpu->r[11] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F4E30 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[11]);
|
|
/* 028F4E34 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4E34 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F4E34 */ if (_t28) goto L_028F4E6C; else goto L_028F4E38;
|
|
L_028F4E38: ; // 0x28f4e38
|
|
/* 028F4E38 */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 028F4E38 */ cpu->r[6] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F4E3C */ cpu->ctr = cpu->r[31];
|
|
/* 028F4E40 */ _t30 = cpu->r[27] + 0x00000000u;
|
|
/* 028F4E40 */ cpu->r[12] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F4E44 */ cpu->r[6] = cpu->r[6] + 0xFFFFFFFFu;
|
|
L_028F4E48: ; // 0x28f4e48
|
|
/* 028F4E48 */ _t31 = cpu->r[12] + 0x00000000u;
|
|
/* 028F4E48 */ cpu->r[8] = rbrew_read8(cpu->mem, _t31);
|
|
/* 028F4E4C */ _t32 = cpu->r[6] + 0x00000001u;
|
|
/* 028F4E4C */ cpu->r[0] = rbrew_read8(cpu->mem, _t32);
|
|
/* 028F4E4C */ cpu->r[6] = _t32;
|
|
/* 028F4E50 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[0]);
|
|
/* 028F4E54 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4E54 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F4E54 */ if (_t34) goto L_028F4E58; else goto L_028F4F78;
|
|
L_028F4E58: ; // 0x28f4e58
|
|
/* 028F4E58 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[29]);
|
|
/* 028F4E5C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4E5C */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F4E5C */ if (_t36) goto L_028F4E6C; else goto L_028F4E60;
|
|
L_028F4E60: ; // 0x28f4e60
|
|
/* 028F4E60 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028F4E64 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F4E64 */ _t37 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F4E64 */ _t38 = _t37 >> (0x00000002u & 31u);
|
|
/* 028F4E64 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028F4E64 */ if (_t39) goto L_028F4E48; else goto L_028F4E68;
|
|
L_028F4E68: ; // 0x28f4e68
|
|
/* 028F4E68 */ goto L_028F4F78;
|
|
L_028F4E6C: ; // 0x28f4e6c
|
|
/* 028F4E6C */ _t40 = cpu->r[19] + 0x00000010u;
|
|
/* 028F4E6C */ cpu->r[9] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028F4E70 */ _t41 = cpu->r[19] + 0x00000014u;
|
|
/* 028F4E70 */ cpu->r[27] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F4E74 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028F4E78 */ cpu->r[4] = rbrew_rlwinm(cpu->r[22], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F4E7C */ cpu->r[0] = cpu->r[27] + cpu->r[0];
|
|
/* 028F4E80 */ _t42 = cpu->r[4] + cpu->r[28];
|
|
/* 028F4E80 */ cpu->r[22] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F4E84 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[0]);
|
|
/* 028F4E88 */ cpu->r[12] = cpu->r[27];
|
|
/* 028F4E8C */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4E8C */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F4E8C */ if (_t44) goto L_028F4F88; else goto L_028F4E90;
|
|
L_028F4E90: ; // 0x28f4e90
|
|
/* 028F4E90 */ cpu->r[11] = 0x24920000u;
|
|
/* 028F4E94 */ cpu->r[7] = cpu->r[19] - cpu->r[21];
|
|
/* 028F4E98 */ cpu->r[11] = cpu->r[11] + 0x00004925u;
|
|
/* 028F4E9C */ cpu->r[8] = rbrew_rlwinm(cpu->r[7], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 028F4EA0 */ /* nop */
|
|
/* 028F4EA4 */ cpu->r[17] = cpu->r[0];
|
|
/* 028F4EA8 */ cpu->r[4] = rbrew_rlwinm(cpu->r[8], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F4EAC */ cpu->r[18] = cpu->r[12];
|
|
/* 028F4EB0 */ cpu->r[16] = cpu->r[24] + cpu->r[4];
|
|
L_028F4EB4: ; // 0x28f4eb4
|
|
/* 028F4EB4 */ _t45 = cpu->r[1] + 0x00000010u;
|
|
/* 028F4EB4 */ rbrew_write32(cpu->mem, _t45, cpu->r[22]);
|
|
/* 028F4EB8 */ _t46 = cpu->r[1] + 0x00000014u;
|
|
/* 028F4EB8 */ rbrew_write32(cpu->mem, _t46, cpu->r[23]);
|
|
/* 028F4EBC */ _t47 = cpu->r[27] + 0x00000004u;
|
|
/* 028F4EBC */ cpu->r[5] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F4EC0 */ _t48 = cpu->r[5] + 0x00000014u;
|
|
/* 028F4EC0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028F4EC4 */ cpu->ctr = cpu->r[7];
|
|
/* 028F4EC8 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F4ECC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4ED0 */ _t49 = cpu->r[27] + 0x00000004u;
|
|
/* 028F4ED0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028F4ED4 */ _t50 = cpu->r[8] + 0x00000014u;
|
|
/* 028F4ED4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F4ED8 */ cpu->ctr = cpu->r[10];
|
|
/* 028F4EDC */ cpu->r[3] = cpu->r[27];
|
|
/* 028F4EE0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4EE4 */ _t51 = cpu->r[1] + 0x00000014u;
|
|
/* 028F4EE4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F4EE8 */ _t52 = cpu->r[11] + 0x00000014u;
|
|
/* 028F4EE8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028F4EEC */ cpu->ctr = cpu->r[12];
|
|
/* 028F4EF0 */ _t53 = cpu->r[27] + 0x00000000u;
|
|
/* 028F4EF0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028F4EF4 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F4EF8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4EFC */ _t54 = cpu->r[1] + 0x00000010u;
|
|
/* 028F4EFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028F4F00 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 028F4F04 */ _t55 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4F04 */ _t56 = _t55 & 0x00000001u;
|
|
/* 028F4F04 */ if (_t56) goto L_028F4F40; else goto L_028F4F08;
|
|
L_028F4F08: ; // 0x28f4f08
|
|
/* 028F4F08 */ _t57 = cpu->r[1] + 0x00000010u;
|
|
/* 028F4F08 */ cpu->r[9] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028F4F0C */ cpu->ctr = cpu->r[31];
|
|
/* 028F4F10 */ _t58 = cpu->r[27] + 0x00000000u;
|
|
/* 028F4F10 */ cpu->r[6] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028F4F14 */ cpu->r[9] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 028F4F18 */ cpu->r[0] = cpu->r[30];
|
|
L_028F4F1C: ; // 0x28f4f1c
|
|
/* 028F4F1C */ _t59 = cpu->r[6] + 0x00000000u;
|
|
/* 028F4F1C */ cpu->r[10] = rbrew_read8(cpu->mem, _t59);
|
|
/* 028F4F20 */ _t60 = cpu->r[9] + 0x00000001u;
|
|
/* 028F4F20 */ cpu->r[4] = rbrew_read8(cpu->mem, _t60);
|
|
/* 028F4F20 */ cpu->r[9] = _t60;
|
|
/* 028F4F24 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[4]);
|
|
/* 028F4F28 */ _t61 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4F28 */ _t62 = _t61 & 0x00000001u;
|
|
/* 028F4F28 */ if (_t62) goto L_028F4F2C; else goto L_028F4F5C;
|
|
L_028F4F2C: ; // 0x28f4f2c
|
|
/* 028F4F2C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028F4F30 */ _t63 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4F30 */ _t64 = _t63 & 0x00000001u;
|
|
/* 028F4F30 */ if (_t64) goto L_028F4F40; else goto L_028F4F34;
|
|
L_028F4F34: ; // 0x28f4f34
|
|
/* 028F4F34 */ cpu->r[6] = cpu->r[6] + 0x00000001u;
|
|
/* 028F4F38 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F4F38 */ _t65 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F4F38 */ _t66 = _t65 >> (0x00000002u & 31u);
|
|
/* 028F4F38 */ _t67 = _t66 & 0x00000001u;
|
|
/* 028F4F38 */ if (_t67) goto L_028F4F1C; else goto L_028F4F3C;
|
|
L_028F4F3C: ; // 0x28f4f3c
|
|
/* 028F4F3C */ goto L_028F4F5C;
|
|
L_028F4F40: ; // 0x28f4f40
|
|
/* 028F4F40 */ cpu->r[5] = cpu->r[27] - cpu->r[18];
|
|
/* 028F4F44 */ cpu->r[19] = cpu->r[19] + 0x0000001Cu;
|
|
/* 028F4F48 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x0000001Du, 0x00000003u, 0x0000001Fu);
|
|
/* 028F4F4C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[19], cpu->r[20]);
|
|
/* 028F4F50 */ _t68 = cpu->r[16] + 0x00000000u;
|
|
/* 028F4F50 */ rbrew_write32(cpu->mem, _t68, cpu->r[0]);
|
|
/* 028F4F54 */ _t69 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4F54 */ _t70 = _t69 & 0x00000001u;
|
|
/* 028F4F54 */ if (_t70) goto L_028F4F58; else goto L_028F4DC0;
|
|
L_028F4F58: ; // 0x28f4f58
|
|
/* 028F4F58 */ goto L_028F4F94;
|
|
L_028F4F5C: ; // 0x28f4f5c
|
|
/* 028F4F5C */ cpu->r[27] = cpu->r[27] + 0x00000008u;
|
|
/* 028F4F60 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[17]);
|
|
/* 028F4F64 */ _t71 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4F64 */ _t72 = _t71 & 0x00000001u;
|
|
/* 028F4F64 */ if (_t72) goto L_028F4F68; else goto L_028F4EB4;
|
|
L_028F4F68: ; // 0x28f4f68
|
|
/* 028F4F68 */ cpu->r[19] = cpu->r[19] + 0x0000001Cu;
|
|
/* 028F4F6C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[19], cpu->r[20]);
|
|
/* 028F4F70 */ _t73 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4F70 */ _t74 = _t73 & 0x00000001u;
|
|
/* 028F4F70 */ if (_t74) goto L_028F4F74; else goto L_028F4DC0;
|
|
L_028F4F74: ; // 0x28f4f74
|
|
/* 028F4F74 */ goto L_028F4F94;
|
|
L_028F4F78: ; // 0x28f4f78
|
|
/* 028F4F78 */ cpu->r[22] = cpu->r[22] + 0x00000001u;
|
|
/* 028F4F7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], cpu->r[25]);
|
|
/* 028F4F80 */ cpu->r[18] = cpu->r[18] + 0x00000004u;
|
|
/* 028F4F84 */ _t75 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F4F84 */ _t76 = _t75 & 0x00000001u;
|
|
/* 028F4F84 */ if (_t76) goto L_028F4DE0; else goto L_028F4F88;
|
|
L_028F4F88: ; // 0x28f4f88
|
|
/* 028F4F88 */ cpu->r[19] = cpu->r[19] + 0x0000001Cu;
|
|
/* 028F4F8C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[19], cpu->r[20]);
|
|
/* 028F4F90 */ _t77 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4F90 */ _t78 = _t77 & 0x00000001u;
|
|
/* 028F4F90 */ if (_t78) goto L_028F4F94; else goto L_028F4DC0;
|
|
L_028F4F94: ; // 0x28f4f94
|
|
/* 028F4F94 */ cpu->r[3] = cpu->r[15];
|
|
/* 028F4F98 */ cpu->r[4] = cpu->r[24];
|
|
/* 028F4F9C */ Gambit_fn_028F5028(cpu);
|
|
/* 028F4FA0 */ /* nop */
|
|
/* 028F4FA4 */ _t79 = cpu->r[1] + 0x000000E4u;
|
|
/* 028F4FA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028F4FA8 */ cpu->lr = cpu->r[0];
|
|
/* 028F4FAC */ cpu->r[1] = cpu->r[1] + 0x000000E0u;
|
|
/* 028F4FB0 */ return;
|
|
}
|
|
|
|
// fn_028F4D24 @ 0x28f4d24
|
|
void Gambit_fn_028F4D24(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F4D24: ; // 0x28f4d24
|
|
/* 028F4D24 */ _t0 = cpu->r[1] + 0xFFFFFF20u;
|
|
/* 028F4D24 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F4D24 */ cpu->r[1] = _t0;
|
|
/* 028F4D28 */ _t1 = cpu->r[1] + 0x000000E4u;
|
|
/* 028F4D28 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F4D2C */ /* nop */
|
|
/* 028F4D30 */ cpu->r[25] = cpu->r[4];
|
|
/* 028F4D34 */ cpu->r[4] = cpu->r[7];
|
|
/* 028F4D38 */ cpu->r[28] = cpu->r[6];
|
|
/* 028F4D3C */ cpu->r[15] = cpu->r[3];
|
|
/* 028F4D40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0xFFFFFFFFu);
|
|
/* 028F4D44 */ cpu->r[24] = cpu->r[1] + 0x00000018u;
|
|
/* 028F4D48 */ cpu->r[26] = cpu->r[5];
|
|
/* 028F4D4C */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4D4C */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F4D4C */ if (_t3) goto L_028F4D50; else goto L_028F4D80;
|
|
L_028F4D50: ; // 0x28f4d50
|
|
/* 028F4D50 */ _t4 = cpu->r[15] + 0x0000000Cu;
|
|
/* 028F4D50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F4D54 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F4D58 */ cpu->r[3] = cpu->r[24];
|
|
/* 028F4D5C */ cpu->r[5] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F4D60 */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028F4D64 */ _t5 = cpu->r[15] + 0x0000000Cu;
|
|
/* 028F4D64 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F4D68 */ _t6 = cpu->r[15] + 0x00000010u;
|
|
/* 028F4D68 */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F4D6C */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000001Cu);
|
|
/* 028F4D70 */ cpu->r[9] = cpu->r[10] + cpu->r[11];
|
|
/* 028F4D74 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[9]);
|
|
/* 028F4D78 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4D78 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F4D78 */ if (_t8) goto L_028F4F94; else goto L_028F4D7C;
|
|
L_028F4D7C: ; // 0x28f4d7c
|
|
/* 028F4D7C */ goto L_028F4DA4;
|
|
L_028F4D80: ; // 0x28f4d80
|
|
/* 028F4D80 */ cpu->r[5] = cpu->r[24];
|
|
/* 028F4D84 */ cpu->r[3] = cpu->r[15];
|
|
/* 028F4D88 */ Gambit_fn_028F4FE4(cpu);
|
|
/* 028F4D8C */ _t9 = cpu->r[15] + 0x0000000Cu;
|
|
/* 028F4D8C */ cpu->r[9] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F4D90 */ _t10 = cpu->r[15] + 0x00000010u;
|
|
/* 028F4D90 */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F4D94 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000001Cu);
|
|
/* 028F4D98 */ cpu->r[9] = cpu->r[10] + cpu->r[11];
|
|
/* 028F4D9C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[9]);
|
|
/* 028F4DA0 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4DA0 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F4DA0 */ if (_t12) goto L_028F4F94; else goto L_028F4DA4;
|
|
L_028F4DA4: ; // 0x28f4da4
|
|
/* 028F4DA4 */ cpu->r[8] = 0x10110000u;
|
|
/* 028F4DA8 */ cpu->r[19] = cpu->r[10];
|
|
/* 028F4DAC */ cpu->r[31] = 0x00080000u;
|
|
/* 028F4DB0 */ _t13 = cpu->r[8] + 0x00007399u;
|
|
/* 028F4DB0 */ cpu->r[30] = rbrew_read8(cpu->mem, _t13);
|
|
/* 028F4DB4 */ cpu->r[20] = cpu->r[9];
|
|
/* 028F4DB8 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028F4DBC */ cpu->r[21] = cpu->r[10];
|
|
L_028F4DC0: ; // 0x28f4dc0
|
|
/* 028F4DC0 */ cpu->r[22] = 0x00000000u;
|
|
/* 028F4DC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], cpu->r[25]);
|
|
/* 028F4DC8 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F4DC8 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F4DC8 */ if (_t15) goto L_028F4DCC; else goto L_028F4F88;
|
|
L_028F4DCC: ; // 0x28f4dcc
|
|
/* 028F4DCC */ cpu->r[23] = 0x10140000u;
|
|
/* 028F4DD0 */ cpu->r[27] = cpu->r[19];
|
|
/* 028F4DD4 */ cpu->r[23] = cpu->r[23] + 0xFFFFCD6Cu;
|
|
/* 028F4DD8 */ cpu->r[18] = cpu->r[26];
|
|
/* 028F4DDC */ cpu->r[29] = cpu->r[30];
|
|
L_028F4DE0: ; // 0x28f4de0
|
|
/* 028F4DE0 */ _t16 = cpu->r[18] + 0x00000000u;
|
|
/* 028F4DE0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F4DE4 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F4DE4 */ rbrew_write32(cpu->mem, _t17, cpu->r[23]);
|
|
/* 028F4DE8 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028F4DE8 */ rbrew_write32(cpu->mem, _t18, cpu->r[6]);
|
|
/* 028F4DEC */ _t19 = cpu->r[27] + 0x00000004u;
|
|
/* 028F4DEC */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F4DF0 */ _t20 = cpu->r[12] + 0x00000014u;
|
|
/* 028F4DF0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F4DF4 */ cpu->ctr = cpu->r[4];
|
|
/* 028F4DF8 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F4DFC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4E00 */ _t21 = cpu->r[27] + 0x00000004u;
|
|
/* 028F4E00 */ cpu->r[5] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F4E04 */ _t22 = cpu->r[5] + 0x00000014u;
|
|
/* 028F4E04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F4E08 */ cpu->ctr = cpu->r[0];
|
|
/* 028F4E0C */ cpu->r[3] = cpu->r[27];
|
|
/* 028F4E10 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4E14 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F4E14 */ cpu->r[7] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F4E18 */ _t24 = cpu->r[7] + 0x00000014u;
|
|
/* 028F4E18 */ cpu->r[10] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F4E1C */ cpu->ctr = cpu->r[10];
|
|
/* 028F4E20 */ _t25 = cpu->r[27] + 0x00000000u;
|
|
/* 028F4E20 */ cpu->r[17] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F4E24 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F4E28 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4E2C */ _t26 = cpu->r[1] + 0x00000008u;
|
|
/* 028F4E2C */ cpu->r[11] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F4E30 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[11]);
|
|
/* 028F4E34 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4E34 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F4E34 */ if (_t28) goto L_028F4E6C; else goto L_028F4E38;
|
|
L_028F4E38: ; // 0x28f4e38
|
|
/* 028F4E38 */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 028F4E38 */ cpu->r[6] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F4E3C */ cpu->ctr = cpu->r[31];
|
|
/* 028F4E40 */ _t30 = cpu->r[27] + 0x00000000u;
|
|
/* 028F4E40 */ cpu->r[12] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F4E44 */ cpu->r[6] = cpu->r[6] + 0xFFFFFFFFu;
|
|
L_028F4E48: ; // 0x28f4e48
|
|
/* 028F4E48 */ _t31 = cpu->r[12] + 0x00000000u;
|
|
/* 028F4E48 */ cpu->r[8] = rbrew_read8(cpu->mem, _t31);
|
|
/* 028F4E4C */ _t32 = cpu->r[6] + 0x00000001u;
|
|
/* 028F4E4C */ cpu->r[0] = rbrew_read8(cpu->mem, _t32);
|
|
/* 028F4E4C */ cpu->r[6] = _t32;
|
|
/* 028F4E50 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[0]);
|
|
/* 028F4E54 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4E54 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F4E54 */ if (_t34) goto L_028F4E58; else goto L_028F4F78;
|
|
L_028F4E58: ; // 0x28f4e58
|
|
/* 028F4E58 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[29]);
|
|
/* 028F4E5C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4E5C */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F4E5C */ if (_t36) goto L_028F4E6C; else goto L_028F4E60;
|
|
L_028F4E60: ; // 0x28f4e60
|
|
/* 028F4E60 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028F4E64 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F4E64 */ _t37 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F4E64 */ _t38 = _t37 >> (0x00000002u & 31u);
|
|
/* 028F4E64 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028F4E64 */ if (_t39) goto L_028F4E48; else goto L_028F4E68;
|
|
L_028F4E68: ; // 0x28f4e68
|
|
/* 028F4E68 */ goto L_028F4F78;
|
|
L_028F4E6C: ; // 0x28f4e6c
|
|
/* 028F4E6C */ _t40 = cpu->r[19] + 0x00000010u;
|
|
/* 028F4E6C */ cpu->r[9] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028F4E70 */ _t41 = cpu->r[19] + 0x00000014u;
|
|
/* 028F4E70 */ cpu->r[27] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F4E74 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028F4E78 */ cpu->r[4] = rbrew_rlwinm(cpu->r[22], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F4E7C */ cpu->r[0] = cpu->r[27] + cpu->r[0];
|
|
/* 028F4E80 */ _t42 = cpu->r[4] + cpu->r[28];
|
|
/* 028F4E80 */ cpu->r[22] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F4E84 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[0]);
|
|
/* 028F4E88 */ cpu->r[12] = cpu->r[27];
|
|
/* 028F4E8C */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4E8C */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F4E8C */ if (_t44) goto L_028F4F88; else goto L_028F4E90;
|
|
L_028F4E90: ; // 0x28f4e90
|
|
/* 028F4E90 */ cpu->r[11] = 0x24920000u;
|
|
/* 028F4E94 */ cpu->r[7] = cpu->r[19] - cpu->r[21];
|
|
/* 028F4E98 */ cpu->r[11] = cpu->r[11] + 0x00004925u;
|
|
/* 028F4E9C */ cpu->r[8] = rbrew_rlwinm(cpu->r[7], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 028F4EA0 */ /* nop */
|
|
/* 028F4EA4 */ cpu->r[17] = cpu->r[0];
|
|
/* 028F4EA8 */ cpu->r[4] = rbrew_rlwinm(cpu->r[8], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F4EAC */ cpu->r[18] = cpu->r[12];
|
|
/* 028F4EB0 */ cpu->r[16] = cpu->r[24] + cpu->r[4];
|
|
L_028F4EB4: ; // 0x28f4eb4
|
|
/* 028F4EB4 */ _t45 = cpu->r[1] + 0x00000010u;
|
|
/* 028F4EB4 */ rbrew_write32(cpu->mem, _t45, cpu->r[22]);
|
|
/* 028F4EB8 */ _t46 = cpu->r[1] + 0x00000014u;
|
|
/* 028F4EB8 */ rbrew_write32(cpu->mem, _t46, cpu->r[23]);
|
|
/* 028F4EBC */ _t47 = cpu->r[27] + 0x00000004u;
|
|
/* 028F4EBC */ cpu->r[5] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F4EC0 */ _t48 = cpu->r[5] + 0x00000014u;
|
|
/* 028F4EC0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028F4EC4 */ cpu->ctr = cpu->r[7];
|
|
/* 028F4EC8 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F4ECC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4ED0 */ _t49 = cpu->r[27] + 0x00000004u;
|
|
/* 028F4ED0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028F4ED4 */ _t50 = cpu->r[8] + 0x00000014u;
|
|
/* 028F4ED4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F4ED8 */ cpu->ctr = cpu->r[10];
|
|
/* 028F4EDC */ cpu->r[3] = cpu->r[27];
|
|
/* 028F4EE0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4EE4 */ _t51 = cpu->r[1] + 0x00000014u;
|
|
/* 028F4EE4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F4EE8 */ _t52 = cpu->r[11] + 0x00000014u;
|
|
/* 028F4EE8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028F4EEC */ cpu->ctr = cpu->r[12];
|
|
/* 028F4EF0 */ _t53 = cpu->r[27] + 0x00000000u;
|
|
/* 028F4EF0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028F4EF4 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F4EF8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F4EFC */ _t54 = cpu->r[1] + 0x00000010u;
|
|
/* 028F4EFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028F4F00 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 028F4F04 */ _t55 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4F04 */ _t56 = _t55 & 0x00000001u;
|
|
/* 028F4F04 */ if (_t56) goto L_028F4F40; else goto L_028F4F08;
|
|
L_028F4F08: ; // 0x28f4f08
|
|
/* 028F4F08 */ _t57 = cpu->r[1] + 0x00000010u;
|
|
/* 028F4F08 */ cpu->r[9] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028F4F0C */ cpu->ctr = cpu->r[31];
|
|
/* 028F4F10 */ _t58 = cpu->r[27] + 0x00000000u;
|
|
/* 028F4F10 */ cpu->r[6] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028F4F14 */ cpu->r[9] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 028F4F18 */ cpu->r[0] = cpu->r[30];
|
|
L_028F4F1C: ; // 0x28f4f1c
|
|
/* 028F4F1C */ _t59 = cpu->r[6] + 0x00000000u;
|
|
/* 028F4F1C */ cpu->r[10] = rbrew_read8(cpu->mem, _t59);
|
|
/* 028F4F20 */ _t60 = cpu->r[9] + 0x00000001u;
|
|
/* 028F4F20 */ cpu->r[4] = rbrew_read8(cpu->mem, _t60);
|
|
/* 028F4F20 */ cpu->r[9] = _t60;
|
|
/* 028F4F24 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[4]);
|
|
/* 028F4F28 */ _t61 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4F28 */ _t62 = _t61 & 0x00000001u;
|
|
/* 028F4F28 */ if (_t62) goto L_028F4F2C; else goto L_028F4F5C;
|
|
L_028F4F2C: ; // 0x28f4f2c
|
|
/* 028F4F2C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028F4F30 */ _t63 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4F30 */ _t64 = _t63 & 0x00000001u;
|
|
/* 028F4F30 */ if (_t64) goto L_028F4F40; else goto L_028F4F34;
|
|
L_028F4F34: ; // 0x28f4f34
|
|
/* 028F4F34 */ cpu->r[6] = cpu->r[6] + 0x00000001u;
|
|
/* 028F4F38 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F4F38 */ _t65 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F4F38 */ _t66 = _t65 >> (0x00000002u & 31u);
|
|
/* 028F4F38 */ _t67 = _t66 & 0x00000001u;
|
|
/* 028F4F38 */ if (_t67) goto L_028F4F1C; else goto L_028F4F3C;
|
|
L_028F4F3C: ; // 0x28f4f3c
|
|
/* 028F4F3C */ goto L_028F4F5C;
|
|
L_028F4F40: ; // 0x28f4f40
|
|
/* 028F4F40 */ cpu->r[5] = cpu->r[27] - cpu->r[18];
|
|
/* 028F4F44 */ cpu->r[19] = cpu->r[19] + 0x0000001Cu;
|
|
/* 028F4F48 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x0000001Du, 0x00000003u, 0x0000001Fu);
|
|
/* 028F4F4C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[19], cpu->r[20]);
|
|
/* 028F4F50 */ _t68 = cpu->r[16] + 0x00000000u;
|
|
/* 028F4F50 */ rbrew_write32(cpu->mem, _t68, cpu->r[0]);
|
|
/* 028F4F54 */ _t69 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4F54 */ _t70 = _t69 & 0x00000001u;
|
|
/* 028F4F54 */ if (_t70) goto L_028F4F58; else goto L_028F4DC0;
|
|
L_028F4F58: ; // 0x28f4f58
|
|
/* 028F4F58 */ goto L_028F4F94;
|
|
L_028F4F5C: ; // 0x28f4f5c
|
|
/* 028F4F5C */ cpu->r[27] = cpu->r[27] + 0x00000008u;
|
|
/* 028F4F60 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[17]);
|
|
/* 028F4F64 */ _t71 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4F64 */ _t72 = _t71 & 0x00000001u;
|
|
/* 028F4F64 */ if (_t72) goto L_028F4F68; else goto L_028F4EB4;
|
|
L_028F4F68: ; // 0x28f4f68
|
|
/* 028F4F68 */ cpu->r[19] = cpu->r[19] + 0x0000001Cu;
|
|
/* 028F4F6C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[19], cpu->r[20]);
|
|
/* 028F4F70 */ _t73 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4F70 */ _t74 = _t73 & 0x00000001u;
|
|
/* 028F4F70 */ if (_t74) goto L_028F4F74; else goto L_028F4DC0;
|
|
L_028F4F74: ; // 0x28f4f74
|
|
/* 028F4F74 */ goto L_028F4F94;
|
|
L_028F4F78: ; // 0x28f4f78
|
|
/* 028F4F78 */ cpu->r[22] = cpu->r[22] + 0x00000001u;
|
|
/* 028F4F7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], cpu->r[25]);
|
|
/* 028F4F80 */ cpu->r[18] = cpu->r[18] + 0x00000004u;
|
|
/* 028F4F84 */ _t75 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F4F84 */ _t76 = _t75 & 0x00000001u;
|
|
/* 028F4F84 */ if (_t76) goto L_028F4DE0; else goto L_028F4F88;
|
|
L_028F4F88: ; // 0x28f4f88
|
|
/* 028F4F88 */ cpu->r[19] = cpu->r[19] + 0x0000001Cu;
|
|
/* 028F4F8C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[19], cpu->r[20]);
|
|
/* 028F4F90 */ _t77 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4F90 */ _t78 = _t77 & 0x00000001u;
|
|
/* 028F4F90 */ if (_t78) goto L_028F4F94; else goto L_028F4DC0;
|
|
L_028F4F94: ; // 0x28f4f94
|
|
/* 028F4F94 */ cpu->r[3] = cpu->r[15];
|
|
/* 028F4F98 */ cpu->r[4] = cpu->r[24];
|
|
/* 028F4F9C */ Gambit_fn_028F5028(cpu);
|
|
/* 028F4FA0 */ /* nop */
|
|
/* 028F4FA4 */ _t79 = cpu->r[1] + 0x000000E4u;
|
|
/* 028F4FA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028F4FA8 */ cpu->lr = cpu->r[0];
|
|
/* 028F4FAC */ cpu->r[1] = cpu->r[1] + 0x000000E0u;
|
|
/* 028F4FB0 */ return;
|
|
}
|
|
|
|
// fn_028F4FB4 @ 0x28f4fb4
|
|
void Gambit_fn_028F4FB4(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_028F4FB4: ; // 0x28f4fb4
|
|
/* 028F4FB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F4FB8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4FB8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F4FB8 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F4FB8 */ goto L_028F4FBC;
|
|
L_028F4FBC: ; // 0x28f4fbc
|
|
/* 028F4FBC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F4FBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F4FC0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4FC0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F4FC0 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F4FC0 */ goto L_028F4FC4;
|
|
L_028F4FC4: ; // 0x28f4fc4
|
|
/* 028F4FC4 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028F4FC8 @ 0x28f4fc8
|
|
void Gambit_fn_028F4FC8(CPUState* cpu) {
|
|
L_028F4FC8: ; // 0x28f4fc8
|
|
/* 028F4FC8 */ return;
|
|
}
|
|
|
|
// fn_028F4FCC @ 0x28f4fcc
|
|
void Gambit_fn_028F4FCC(CPUState* cpu) {
|
|
L_028F4FCC: ; // 0x28f4fcc
|
|
/* 028F4FCC */ cpu->r[3] = 0x00000000u;
|
|
/* 028F4FD0 */ return;
|
|
}
|
|
|
|
// fn_028F4FD4 @ 0x28f4fd4
|
|
void Gambit_fn_028F4FD4(CPUState* cpu) {
|
|
L_028F4FD4: ; // 0x28f4fd4
|
|
/* 028F4FD4 */ cpu->r[3] = 0x00000001u;
|
|
/* 028F4FD8 */ return;
|
|
}
|
|
|
|
// fn_028F4FDC @ 0x28f4fdc
|
|
void Gambit_fn_028F4FDC(CPUState* cpu) {
|
|
L_028F4FDC: ; // 0x28f4fdc
|
|
/* 028F4FDC */ cpu->r[3] = 0x00000002u;
|
|
/* 028F4FE0 */ return;
|
|
}
|
|
|
|
// fn_028F4FE4 @ 0x28f4fe4
|
|
void Gambit_fn_028F4FE4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028F4FE4: ; // 0x28f4fe4
|
|
/* 028F4FE4 */ _t0 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F4FE4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F4FE8 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)0x0000001Cu);
|
|
/* 028F4FEC */ _t1 = cpu->r[3] + 0x00000010u;
|
|
/* 028F4FEC */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028F4FF0 */ cpu->r[0] = cpu->r[12] + cpu->r[11];
|
|
/* 028F4FF4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F4FF8 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4FF8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F4FF8 */ if (_t3) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F4FF8 */ goto L_028F4FFC;
|
|
L_028F4FFC: ; // 0x28f4ffc
|
|
/* 028F4FFC */ cpu->r[5] = cpu->r[5] + 0xFFFFFFFCu;
|
|
L_028F5000: ; // 0x28f5000
|
|
/* 028F5000 */ _t4 = cpu->r[12] + 0x00000018u;
|
|
/* 028F5000 */ cpu->r[9] = rbrew_read16(cpu->mem, _t4);
|
|
/* 028F5004 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[4] / (int32_t)cpu->r[9]);
|
|
/* 028F5008 */ _t5 = cpu->r[5] + 0x00000004u;
|
|
/* 028F5008 */ rbrew_write32(cpu->mem, _t5, cpu->r[10]);
|
|
/* 028F5008 */ cpu->r[5] = _t5;
|
|
/* 028F500C */ _t6 = cpu->r[12] + 0x00000018u;
|
|
/* 028F500C */ cpu->r[9] = rbrew_read16(cpu->mem, _t6);
|
|
/* 028F5010 */ cpu->r[12] = cpu->r[12] + 0x0000001Cu;
|
|
/* 028F5014 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[10] * (int32_t)cpu->r[9]);
|
|
/* 028F5018 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F501C */ cpu->r[4] = cpu->r[4] - cpu->r[11];
|
|
/* 028F5020 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5020 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F5020 */ if (_t8) goto L_028F5024; else goto L_028F5000;
|
|
L_028F5024: ; // 0x28f5024
|
|
/* 028F5024 */ return;
|
|
}
|
|
|
|
// fn_028F5028 @ 0x28f5028
|
|
void Gambit_fn_028F5028(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028F5028: ; // 0x28f5028
|
|
/* 028F5028 */ _t0 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F5028 */ cpu->r[9] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F502C */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000001Cu);
|
|
/* 028F5030 */ _t1 = cpu->r[3] + 0x00000010u;
|
|
/* 028F5030 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028F5034 */ cpu->r[0] = cpu->r[12] + cpu->r[8];
|
|
/* 028F5038 */ cpu->r[3] = 0x00000000u;
|
|
/* 028F503C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F5040 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5040 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F5040 */ if (_t3) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F5040 */ goto L_028F5044;
|
|
L_028F5044: ; // 0x28f5044
|
|
/* 028F5044 */ cpu->r[4] = cpu->r[4] + 0xFFFFFFFCu;
|
|
L_028F5048: ; // 0x28f5048
|
|
/* 028F5048 */ _t4 = cpu->r[12] + 0x00000018u;
|
|
/* 028F5048 */ cpu->r[10] = rbrew_read16(cpu->mem, _t4);
|
|
/* 028F504C */ _t5 = cpu->r[4] + 0x00000004u;
|
|
/* 028F504C */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F504C */ cpu->r[4] = _t5;
|
|
/* 028F5050 */ cpu->r[12] = cpu->r[12] + 0x0000001Cu;
|
|
/* 028F5054 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)cpu->r[10]);
|
|
/* 028F5058 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F505C */ cpu->r[3] = cpu->r[3] + cpu->r[10];
|
|
/* 028F5060 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5060 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F5060 */ if (_t7) goto L_028F5064; else goto L_028F5048;
|
|
L_028F5064: ; // 0x28f5064
|
|
/* 028F5064 */ return;
|
|
}
|
|
|
|
// fn_028F5068 @ 0x28f5068
|
|
void Gambit_fn_028F5068(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64;
|
|
|
|
L_028F5068: ; // 0x28f5068
|
|
/* 028F5068 */ cpu->r[0] = cpu->lr;
|
|
/* 028F506C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F506C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F506C */ cpu->r[1] = _t0;
|
|
/* 028F5070 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5070 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F5074 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F5074 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F5078 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F5078 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F507C */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F507C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F5080 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5080 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F5080 */ if (_t5) goto L_028F5084; else goto L_028F5094;
|
|
L_028F5084: ; // 0x28f5084
|
|
/* 028F5084 */ cpu->r[3] = 0x00000058u;
|
|
/* 028F5088 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F508C */ cpu->r[31] = cpu->r[3];
|
|
/* 028F508C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F5090 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5090 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F5090 */ if (_t7) goto L_028F51E4; else goto L_028F5094;
|
|
L_028F5094: ; // 0x28f5094
|
|
/* 028F5094 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F5098 */ Gambit_fn_02821D00(cpu);
|
|
/* 028F509C */ cpu->r[10] = 0x10140000u;
|
|
/* 028F50A0 */ cpu->r[3] = cpu->r[31] + 0x00000014u;
|
|
/* 028F50A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F50A4 */ cpu->r[10] = cpu->r[10] + 0xFFFFCF00u;
|
|
/* 028F50A8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028F50AC */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F50AC */ rbrew_write32(cpu->mem, _t8, cpu->r[10]);
|
|
/* 028F50B0 */ cpu->r[12] = cpu->r[12] + 0xFFFFCF10u;
|
|
/* 028F50B4 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F50B8 */ _t9 = cpu->r[31] + 0x00000010u;
|
|
/* 028F50B8 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 028F50BC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F50BC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F50BC */ if (_t11) goto L_028F50C0; else goto L_028F50D0;
|
|
L_028F50C0: ; // 0x28f50c0
|
|
/* 028F50C0 */ cpu->r[3] = 0x00000004u;
|
|
/* 028F50C4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F50C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F50CC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F50CC */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F50CC */ if (_t13) goto L_028F50D4; else goto L_028F50D0;
|
|
L_028F50D0: ; // 0x28f50d0
|
|
/* 028F50D0 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028F50D0 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
L_028F50D4: ; // 0x28f50d4
|
|
/* 028F50D4 */ cpu->r[3] = cpu->r[31] + 0x00000018u;
|
|
/* 028F50D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F50D8 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F50D8 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F50D8 */ if (_t16) goto L_028F50DC; else goto L_028F50EC;
|
|
L_028F50DC: ; // 0x28f50dc
|
|
/* 028F50DC */ cpu->r[3] = 0x00000004u;
|
|
/* 028F50E0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F50E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F50E8 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F50E8 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F50E8 */ if (_t18) goto L_028F50F0; else goto L_028F50EC;
|
|
L_028F50EC: ; // 0x28f50ec
|
|
/* 028F50EC */ _t19 = cpu->r[3] + 0x00000000u;
|
|
/* 028F50EC */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
L_028F50F0: ; // 0x28f50f0
|
|
/* 028F50F0 */ cpu->r[3] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F50F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F50F4 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F50F4 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F50F4 */ if (_t21) goto L_028F50F8; else goto L_028F5108;
|
|
L_028F50F8: ; // 0x28f50f8
|
|
/* 028F50F8 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F50FC */ Gambit_fn_02801A78(cpu);
|
|
/* 028F5100 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5104 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5104 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F5104 */ if (_t23) goto L_028F5110; else goto L_028F5108;
|
|
L_028F5108: ; // 0x28f5108
|
|
/* 028F5108 */ _t24 = cpu->r[3] + 0x00000004u;
|
|
/* 028F5108 */ rbrew_write32(cpu->mem, _t24, cpu->r[30]);
|
|
/* 028F510C */ _t25 = cpu->r[3] + 0x00000000u;
|
|
/* 028F510C */ rbrew_write32(cpu->mem, _t25, cpu->r[30]);
|
|
L_028F5110: ; // 0x28f5110
|
|
/* 028F5110 */ _t26 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F5110 */ rbrew_write32(cpu->mem, _t26, cpu->r[30]);
|
|
/* 028F5114 */ cpu->r[3] = cpu->r[31] + 0x00000036u;
|
|
/* 028F5114 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5118 */ _t27 = cpu->r[31] + 0x00000024u;
|
|
/* 028F5118 */ rbrew_write32(cpu->mem, _t27, cpu->r[30]);
|
|
/* 028F511C */ _t28 = cpu->r[31] + 0x00000028u;
|
|
/* 028F511C */ rbrew_write32(cpu->mem, _t28, cpu->r[30]);
|
|
/* 028F5120 */ _t29 = cpu->r[31] + 0x00000034u;
|
|
/* 028F5120 */ rbrew_write16(cpu->mem, _t29, (uint16_t)cpu->r[30]);
|
|
/* 028F5124 */ _t30 = cpu->r[31] + 0x00000030u;
|
|
/* 028F5124 */ rbrew_write32(cpu->mem, _t30, cpu->r[30]);
|
|
/* 028F5128 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5128 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028F5128 */ if (_t32) goto L_028F512C; else goto L_028F513C;
|
|
L_028F512C: ; // 0x28f512c
|
|
/* 028F512C */ cpu->r[3] = 0x00000002u;
|
|
/* 028F5130 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F5134 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5138 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5138 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F5138 */ if (_t34) goto L_028F5140; else goto L_028F513C;
|
|
L_028F513C: ; // 0x28f513c
|
|
/* 028F513C */ _t35 = cpu->r[3] + 0x00000000u;
|
|
/* 028F513C */ rbrew_write16(cpu->mem, _t35, (uint16_t)cpu->r[30]);
|
|
L_028F5140: ; // 0x28f5140
|
|
/* 028F5140 */ cpu->r[3] = cpu->r[31] + 0x00000038u;
|
|
/* 028F5140 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5144 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5144 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F5144 */ if (_t37) goto L_028F5148; else goto L_028F5158;
|
|
L_028F5148: ; // 0x28f5148
|
|
/* 028F5148 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F514C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F5150 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5154 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5154 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028F5154 */ if (_t39) goto L_028F5160; else goto L_028F5158;
|
|
L_028F5158: ; // 0x28f5158
|
|
/* 028F5158 */ _t40 = cpu->r[3] + 0x00000004u;
|
|
/* 028F5158 */ rbrew_write32(cpu->mem, _t40, cpu->r[30]);
|
|
/* 028F515C */ _t41 = cpu->r[3] + 0x00000000u;
|
|
/* 028F515C */ rbrew_write32(cpu->mem, _t41, cpu->r[30]);
|
|
L_028F5160: ; // 0x28f5160
|
|
/* 028F5160 */ cpu->r[3] = cpu->r[31] + 0x00000040u;
|
|
/* 028F5160 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5164 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5164 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028F5164 */ if (_t43) goto L_028F5168; else goto L_028F5178;
|
|
L_028F5168: ; // 0x28f5168
|
|
/* 028F5168 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F516C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F5170 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5174 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5174 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028F5174 */ if (_t45) goto L_028F5180; else goto L_028F5178;
|
|
L_028F5178: ; // 0x28f5178
|
|
/* 028F5178 */ _t46 = cpu->r[3] + 0x00000004u;
|
|
/* 028F5178 */ rbrew_write32(cpu->mem, _t46, cpu->r[30]);
|
|
/* 028F517C */ _t47 = cpu->r[3] + 0x00000000u;
|
|
/* 028F517C */ rbrew_write32(cpu->mem, _t47, cpu->r[30]);
|
|
L_028F5180: ; // 0x28f5180
|
|
/* 028F5180 */ cpu->r[3] = cpu->r[31] + 0x00000048u;
|
|
/* 028F5180 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5184 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5184 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F5184 */ if (_t49) goto L_028F5188; else goto L_028F5198;
|
|
L_028F5188: ; // 0x28f5188
|
|
/* 028F5188 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F518C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F5190 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5194 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5194 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028F5194 */ if (_t51) goto L_028F51A0; else goto L_028F5198;
|
|
L_028F5198: ; // 0x28f5198
|
|
/* 028F5198 */ _t52 = cpu->r[3] + 0x00000004u;
|
|
/* 028F5198 */ rbrew_write32(cpu->mem, _t52, cpu->r[30]);
|
|
/* 028F519C */ _t53 = cpu->r[3] + 0x00000000u;
|
|
/* 028F519C */ rbrew_write32(cpu->mem, _t53, cpu->r[30]);
|
|
L_028F51A0: ; // 0x28f51a0
|
|
/* 028F51A0 */ cpu->r[3] = cpu->r[31] + 0x00000050u;
|
|
/* 028F51A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F51A4 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F51A4 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028F51A4 */ if (_t55) goto L_028F51A8; else goto L_028F51B8;
|
|
L_028F51A8: ; // 0x28f51a8
|
|
/* 028F51A8 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F51AC */ Gambit_fn_02801A78(cpu);
|
|
/* 028F51B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F51B4 */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F51B4 */ _t57 = _t56 & 0x00000001u;
|
|
/* 028F51B4 */ if (_t57) goto L_028F51C0; else goto L_028F51B8;
|
|
L_028F51B8: ; // 0x28f51b8
|
|
/* 028F51B8 */ _t58 = cpu->r[3] + 0x00000004u;
|
|
/* 028F51B8 */ rbrew_write32(cpu->mem, _t58, cpu->r[30]);
|
|
/* 028F51BC */ _t59 = cpu->r[3] + 0x00000000u;
|
|
/* 028F51BC */ rbrew_write32(cpu->mem, _t59, cpu->r[30]);
|
|
L_028F51C0: ; // 0x28f51c0
|
|
/* 028F51C0 */ cpu->r[11] = 0x10140000u;
|
|
/* 028F51C4 */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 028F51C8 */ cpu->r[11] = cpu->r[11] + 0xFFFFCDE4u;
|
|
/* 028F51CC */ cpu->r[0] = 0x10140000u;
|
|
/* 028F51D0 */ _t60 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F51D0 */ rbrew_write32(cpu->mem, _t60, cpu->r[11]);
|
|
/* 028F51D4 */ cpu->r[0] = cpu->r[0] + 0xFFFFCEB4u;
|
|
/* 028F51D8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028F51DC */ _t61 = cpu->r[1] + 0x00000008u;
|
|
/* 028F51DC */ rbrew_write32(cpu->mem, _t61, cpu->r[0]);
|
|
/* 028F51E0 */ Gambit_fn_028FD6EC(cpu);
|
|
L_028F51E4: ; // 0x28f51e4
|
|
/* 028F51E4 */ _t62 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F51E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028F51E8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F51EC */ _t63 = cpu->r[1] + 0x00000014u;
|
|
/* 028F51EC */ cpu->r[31] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028F51F0 */ cpu->lr = cpu->r[0];
|
|
/* 028F51F4 */ _t64 = cpu->r[1] + 0x00000010u;
|
|
/* 028F51F4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028F51F8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F51FC */ return;
|
|
}
|
|
|
|
// fn_028F506C @ 0x28f506c
|
|
void Gambit_fn_028F506C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64;
|
|
|
|
L_028F506C: ; // 0x28f506c
|
|
/* 028F506C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F506C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F506C */ cpu->r[1] = _t0;
|
|
/* 028F5070 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5070 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F5074 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F5074 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F5078 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F5078 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F507C */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F507C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F5080 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5080 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F5080 */ if (_t5) goto L_028F5084; else goto L_028F5094;
|
|
L_028F5084: ; // 0x28f5084
|
|
/* 028F5084 */ cpu->r[3] = 0x00000058u;
|
|
/* 028F5088 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F508C */ cpu->r[31] = cpu->r[3];
|
|
/* 028F508C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F5090 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5090 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F5090 */ if (_t7) goto L_028F51E4; else goto L_028F5094;
|
|
L_028F5094: ; // 0x28f5094
|
|
/* 028F5094 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F5098 */ Gambit_fn_02821D00(cpu);
|
|
/* 028F509C */ cpu->r[10] = 0x10140000u;
|
|
/* 028F50A0 */ cpu->r[3] = cpu->r[31] + 0x00000014u;
|
|
/* 028F50A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F50A4 */ cpu->r[10] = cpu->r[10] + 0xFFFFCF00u;
|
|
/* 028F50A8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028F50AC */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F50AC */ rbrew_write32(cpu->mem, _t8, cpu->r[10]);
|
|
/* 028F50B0 */ cpu->r[12] = cpu->r[12] + 0xFFFFCF10u;
|
|
/* 028F50B4 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F50B8 */ _t9 = cpu->r[31] + 0x00000010u;
|
|
/* 028F50B8 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 028F50BC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F50BC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F50BC */ if (_t11) goto L_028F50C0; else goto L_028F50D0;
|
|
L_028F50C0: ; // 0x28f50c0
|
|
/* 028F50C0 */ cpu->r[3] = 0x00000004u;
|
|
/* 028F50C4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F50C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F50CC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F50CC */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F50CC */ if (_t13) goto L_028F50D4; else goto L_028F50D0;
|
|
L_028F50D0: ; // 0x28f50d0
|
|
/* 028F50D0 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028F50D0 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
L_028F50D4: ; // 0x28f50d4
|
|
/* 028F50D4 */ cpu->r[3] = cpu->r[31] + 0x00000018u;
|
|
/* 028F50D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F50D8 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F50D8 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F50D8 */ if (_t16) goto L_028F50DC; else goto L_028F50EC;
|
|
L_028F50DC: ; // 0x28f50dc
|
|
/* 028F50DC */ cpu->r[3] = 0x00000004u;
|
|
/* 028F50E0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F50E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F50E8 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F50E8 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F50E8 */ if (_t18) goto L_028F50F0; else goto L_028F50EC;
|
|
L_028F50EC: ; // 0x28f50ec
|
|
/* 028F50EC */ _t19 = cpu->r[3] + 0x00000000u;
|
|
/* 028F50EC */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
L_028F50F0: ; // 0x28f50f0
|
|
/* 028F50F0 */ cpu->r[3] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F50F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F50F4 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F50F4 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F50F4 */ if (_t21) goto L_028F50F8; else goto L_028F5108;
|
|
L_028F50F8: ; // 0x28f50f8
|
|
/* 028F50F8 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F50FC */ Gambit_fn_02801A78(cpu);
|
|
/* 028F5100 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5104 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5104 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F5104 */ if (_t23) goto L_028F5110; else goto L_028F5108;
|
|
L_028F5108: ; // 0x28f5108
|
|
/* 028F5108 */ _t24 = cpu->r[3] + 0x00000004u;
|
|
/* 028F5108 */ rbrew_write32(cpu->mem, _t24, cpu->r[30]);
|
|
/* 028F510C */ _t25 = cpu->r[3] + 0x00000000u;
|
|
/* 028F510C */ rbrew_write32(cpu->mem, _t25, cpu->r[30]);
|
|
L_028F5110: ; // 0x28f5110
|
|
/* 028F5110 */ _t26 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F5110 */ rbrew_write32(cpu->mem, _t26, cpu->r[30]);
|
|
/* 028F5114 */ cpu->r[3] = cpu->r[31] + 0x00000036u;
|
|
/* 028F5114 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5118 */ _t27 = cpu->r[31] + 0x00000024u;
|
|
/* 028F5118 */ rbrew_write32(cpu->mem, _t27, cpu->r[30]);
|
|
/* 028F511C */ _t28 = cpu->r[31] + 0x00000028u;
|
|
/* 028F511C */ rbrew_write32(cpu->mem, _t28, cpu->r[30]);
|
|
/* 028F5120 */ _t29 = cpu->r[31] + 0x00000034u;
|
|
/* 028F5120 */ rbrew_write16(cpu->mem, _t29, (uint16_t)cpu->r[30]);
|
|
/* 028F5124 */ _t30 = cpu->r[31] + 0x00000030u;
|
|
/* 028F5124 */ rbrew_write32(cpu->mem, _t30, cpu->r[30]);
|
|
/* 028F5128 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5128 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028F5128 */ if (_t32) goto L_028F512C; else goto L_028F513C;
|
|
L_028F512C: ; // 0x28f512c
|
|
/* 028F512C */ cpu->r[3] = 0x00000002u;
|
|
/* 028F5130 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F5134 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5138 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5138 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F5138 */ if (_t34) goto L_028F5140; else goto L_028F513C;
|
|
L_028F513C: ; // 0x28f513c
|
|
/* 028F513C */ _t35 = cpu->r[3] + 0x00000000u;
|
|
/* 028F513C */ rbrew_write16(cpu->mem, _t35, (uint16_t)cpu->r[30]);
|
|
L_028F5140: ; // 0x28f5140
|
|
/* 028F5140 */ cpu->r[3] = cpu->r[31] + 0x00000038u;
|
|
/* 028F5140 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5144 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5144 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F5144 */ if (_t37) goto L_028F5148; else goto L_028F5158;
|
|
L_028F5148: ; // 0x28f5148
|
|
/* 028F5148 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F514C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F5150 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5154 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5154 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028F5154 */ if (_t39) goto L_028F5160; else goto L_028F5158;
|
|
L_028F5158: ; // 0x28f5158
|
|
/* 028F5158 */ _t40 = cpu->r[3] + 0x00000004u;
|
|
/* 028F5158 */ rbrew_write32(cpu->mem, _t40, cpu->r[30]);
|
|
/* 028F515C */ _t41 = cpu->r[3] + 0x00000000u;
|
|
/* 028F515C */ rbrew_write32(cpu->mem, _t41, cpu->r[30]);
|
|
L_028F5160: ; // 0x28f5160
|
|
/* 028F5160 */ cpu->r[3] = cpu->r[31] + 0x00000040u;
|
|
/* 028F5160 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5164 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5164 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028F5164 */ if (_t43) goto L_028F5168; else goto L_028F5178;
|
|
L_028F5168: ; // 0x28f5168
|
|
/* 028F5168 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F516C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F5170 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5174 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5174 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028F5174 */ if (_t45) goto L_028F5180; else goto L_028F5178;
|
|
L_028F5178: ; // 0x28f5178
|
|
/* 028F5178 */ _t46 = cpu->r[3] + 0x00000004u;
|
|
/* 028F5178 */ rbrew_write32(cpu->mem, _t46, cpu->r[30]);
|
|
/* 028F517C */ _t47 = cpu->r[3] + 0x00000000u;
|
|
/* 028F517C */ rbrew_write32(cpu->mem, _t47, cpu->r[30]);
|
|
L_028F5180: ; // 0x28f5180
|
|
/* 028F5180 */ cpu->r[3] = cpu->r[31] + 0x00000048u;
|
|
/* 028F5180 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5184 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5184 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F5184 */ if (_t49) goto L_028F5188; else goto L_028F5198;
|
|
L_028F5188: ; // 0x28f5188
|
|
/* 028F5188 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F518C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F5190 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5194 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5194 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028F5194 */ if (_t51) goto L_028F51A0; else goto L_028F5198;
|
|
L_028F5198: ; // 0x28f5198
|
|
/* 028F5198 */ _t52 = cpu->r[3] + 0x00000004u;
|
|
/* 028F5198 */ rbrew_write32(cpu->mem, _t52, cpu->r[30]);
|
|
/* 028F519C */ _t53 = cpu->r[3] + 0x00000000u;
|
|
/* 028F519C */ rbrew_write32(cpu->mem, _t53, cpu->r[30]);
|
|
L_028F51A0: ; // 0x28f51a0
|
|
/* 028F51A0 */ cpu->r[3] = cpu->r[31] + 0x00000050u;
|
|
/* 028F51A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F51A4 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F51A4 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028F51A4 */ if (_t55) goto L_028F51A8; else goto L_028F51B8;
|
|
L_028F51A8: ; // 0x28f51a8
|
|
/* 028F51A8 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F51AC */ Gambit_fn_02801A78(cpu);
|
|
/* 028F51B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F51B4 */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F51B4 */ _t57 = _t56 & 0x00000001u;
|
|
/* 028F51B4 */ if (_t57) goto L_028F51C0; else goto L_028F51B8;
|
|
L_028F51B8: ; // 0x28f51b8
|
|
/* 028F51B8 */ _t58 = cpu->r[3] + 0x00000004u;
|
|
/* 028F51B8 */ rbrew_write32(cpu->mem, _t58, cpu->r[30]);
|
|
/* 028F51BC */ _t59 = cpu->r[3] + 0x00000000u;
|
|
/* 028F51BC */ rbrew_write32(cpu->mem, _t59, cpu->r[30]);
|
|
L_028F51C0: ; // 0x28f51c0
|
|
/* 028F51C0 */ cpu->r[11] = 0x10140000u;
|
|
/* 028F51C4 */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 028F51C8 */ cpu->r[11] = cpu->r[11] + 0xFFFFCDE4u;
|
|
/* 028F51CC */ cpu->r[0] = 0x10140000u;
|
|
/* 028F51D0 */ _t60 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F51D0 */ rbrew_write32(cpu->mem, _t60, cpu->r[11]);
|
|
/* 028F51D4 */ cpu->r[0] = cpu->r[0] + 0xFFFFCEB4u;
|
|
/* 028F51D8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028F51DC */ _t61 = cpu->r[1] + 0x00000008u;
|
|
/* 028F51DC */ rbrew_write32(cpu->mem, _t61, cpu->r[0]);
|
|
/* 028F51E0 */ Gambit_fn_028FD6EC(cpu);
|
|
L_028F51E4: ; // 0x28f51e4
|
|
/* 028F51E4 */ _t62 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F51E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028F51E8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F51EC */ _t63 = cpu->r[1] + 0x00000014u;
|
|
/* 028F51EC */ cpu->r[31] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028F51F0 */ cpu->lr = cpu->r[0];
|
|
/* 028F51F4 */ _t64 = cpu->r[1] + 0x00000010u;
|
|
/* 028F51F4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028F51F8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F51FC */ return;
|
|
}
|
|
|
|
// fn_028F5200 @ 0x28f5200
|
|
void Gambit_fn_028F5200(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62;
|
|
|
|
L_028F5200: ; // 0x28f5200
|
|
/* 028F5200 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028F5200 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F5200 */ cpu->r[1] = _t0;
|
|
/* 028F5204 */ /* nop */
|
|
/* 028F5208 */ cpu->r[0] = cpu->lr;
|
|
/* 028F520C */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028F520C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F5210 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F5214 */ _t2 = cpu->r[30] + 0x00000018u;
|
|
/* 028F5214 */ cpu->r[11] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F5218 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028F521C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F521C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F521C */ if (_t4) goto L_028F5384; else goto L_028F5220;
|
|
L_028F5220: ; // 0x28f5220
|
|
/* 028F5220 */ _t5 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028F5220 */ cpu->r[8] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F5224 */ cpu->r[28] = 0x00000000u;
|
|
/* 028F5228 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F522C */ cpu->r[29] = 0x101D0000u;
|
|
/* 028F5230 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5230 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F5230 */ if (_t7) goto L_028F52A0; else goto L_028F5234;
|
|
L_028F5234: ; // 0x28f5234
|
|
/* 028F5234 */ _t8 = cpu->r[30] + 0x00000038u;
|
|
/* 028F5234 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F5238 */ cpu->r[31] = 0x00000000u;
|
|
/* 028F523C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[12]);
|
|
/* 028F5240 */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5240 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F5240 */ if (_t10) goto L_028F5244; else goto L_028F5278;
|
|
L_028F5244: ; // 0x28f5244
|
|
/* 028F5244 */ cpu->r[27] = 0x00000000u;
|
|
L_028F5248: ; // 0x28f5248
|
|
/* 028F5248 */ _t11 = cpu->r[8] + cpu->r[27];
|
|
/* 028F5248 */ cpu->r[5] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F524C */ _t12 = cpu->r[5] + 0x00000014u;
|
|
/* 028F524C */ cpu->r[6] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F5250 */ cpu->ctr = cpu->r[6];
|
|
/* 028F5254 */ cpu->r[3] = cpu->r[8] + cpu->r[27];
|
|
/* 028F5258 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F525C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F5260 */ _t13 = cpu->r[30] + 0x00000038u;
|
|
/* 028F5260 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F5264 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028F5268 */ cpu->r[27] = cpu->r[27] + 0x000000F0u;
|
|
/* 028F526C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[0]);
|
|
/* 028F5270 */ _t14 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028F5270 */ cpu->r[8] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F5274 */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5274 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F5274 */ if (_t16) goto L_028F5248; else goto L_028F5278;
|
|
L_028F5278: ; // 0x28f5278
|
|
/* 028F5278 */ _t17 = cpu->r[29] + 0xFFFF98F0u;
|
|
/* 028F5278 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F527C */ cpu->r[4] = cpu->r[8];
|
|
/* 028F5280 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F5284 */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F5284 */ cpu->r[7] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F5288 */ _t19 = cpu->r[7] + 0x0000003Cu;
|
|
/* 028F5288 */ cpu->r[8] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F528C */ cpu->ctr = cpu->r[8];
|
|
/* 028F5290 */ _t20 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028F5290 */ cpu->r[4] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F5294 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F5298 */ _t21 = cpu->r[30] + 0x00000038u;
|
|
/* 028F5298 */ rbrew_write32(cpu->mem, _t21, cpu->r[28]);
|
|
/* 028F529C */ _t22 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028F529C */ rbrew_write32(cpu->mem, _t22, cpu->r[28]);
|
|
L_028F52A0: ; // 0x28f52a0
|
|
/* 028F52A0 */ _t23 = cpu->r[30] + 0x0000004Cu;
|
|
/* 028F52A0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F52A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F52A8 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F52A8 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F52A8 */ if (_t25) goto L_028F52D8; else goto L_028F52AC;
|
|
L_028F52AC: ; // 0x28f52ac
|
|
/* 028F52AC */ _t26 = cpu->r[30] + 0x00000048u;
|
|
/* 028F52AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F52B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F52B4 */ _t27 = cpu->r[29] + 0xFFFF98F0u;
|
|
/* 028F52B4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F52B8 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F52BC */ _t28 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F52BC */ cpu->r[9] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F52C0 */ _t29 = cpu->r[9] + 0x0000003Cu;
|
|
/* 028F52C0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F52C4 */ cpu->ctr = cpu->r[10];
|
|
/* 028F52C8 */ _t30 = cpu->r[30] + 0x0000004Cu;
|
|
/* 028F52C8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F52CC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F52D0 */ _t31 = cpu->r[30] + 0x00000048u;
|
|
/* 028F52D0 */ rbrew_write32(cpu->mem, _t31, cpu->r[28]);
|
|
/* 028F52D4 */ _t32 = cpu->r[30] + 0x0000004Cu;
|
|
/* 028F52D4 */ rbrew_write32(cpu->mem, _t32, cpu->r[28]);
|
|
L_028F52D8: ; // 0x28f52d8
|
|
/* 028F52D8 */ _t33 = cpu->r[30] + 0x00000054u;
|
|
/* 028F52D8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F52DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F52E0 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F52E0 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028F52E0 */ if (_t35) goto L_028F5310; else goto L_028F52E4;
|
|
L_028F52E4: ; // 0x28f52e4
|
|
/* 028F52E4 */ _t36 = cpu->r[30] + 0x00000050u;
|
|
/* 028F52E4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F52E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F52EC */ _t37 = cpu->r[29] + 0xFFFF98F0u;
|
|
/* 028F52EC */ cpu->r[3] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F52F0 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F52F4 */ _t38 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F52F4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F52F8 */ _t39 = cpu->r[11] + 0x0000003Cu;
|
|
/* 028F52F8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F52FC */ cpu->ctr = cpu->r[12];
|
|
/* 028F5300 */ _t40 = cpu->r[30] + 0x00000054u;
|
|
/* 028F5300 */ cpu->r[4] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028F5304 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F5308 */ _t41 = cpu->r[30] + 0x00000050u;
|
|
/* 028F5308 */ rbrew_write32(cpu->mem, _t41, cpu->r[28]);
|
|
/* 028F530C */ _t42 = cpu->r[30] + 0x00000054u;
|
|
/* 028F530C */ rbrew_write32(cpu->mem, _t42, cpu->r[28]);
|
|
L_028F5310: ; // 0x28f5310
|
|
/* 028F5310 */ _t43 = cpu->r[30] + 0x00000044u;
|
|
/* 028F5310 */ cpu->r[4] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028F5314 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F5318 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5318 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028F5318 */ if (_t45) goto L_028F5384; else goto L_028F531C;
|
|
L_028F531C: ; // 0x28f531c
|
|
/* 028F531C */ _t46 = cpu->r[30] + 0x00000040u;
|
|
/* 028F531C */ cpu->r[0] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F5320 */ cpu->r[31] = 0x00000000u;
|
|
/* 028F5324 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[0]);
|
|
/* 028F5328 */ _t47 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5328 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028F5328 */ if (_t48) goto L_028F532C; else goto L_028F5360;
|
|
L_028F532C: ; // 0x28f532c
|
|
/* 028F532C */ cpu->r[27] = 0x00000000u;
|
|
L_028F5330: ; // 0x28f5330
|
|
/* 028F5330 */ cpu->r[3] = cpu->r[4] + cpu->r[27];
|
|
/* 028F5334 */ _t49 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F5334 */ cpu->r[11] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028F5338 */ _t50 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028F5338 */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F533C */ cpu->ctr = cpu->r[0];
|
|
/* 028F5340 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F5344 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F5348 */ _t51 = cpu->r[30] + 0x00000040u;
|
|
/* 028F5348 */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F534C */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028F5350 */ cpu->r[27] = cpu->r[27] + 0x00000034u;
|
|
/* 028F5354 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[0]);
|
|
/* 028F5358 */ _t52 = cpu->r[30] + 0x00000044u;
|
|
/* 028F5358 */ cpu->r[4] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028F535C */ _t53 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F535C */ _t54 = _t53 & 0x00000001u;
|
|
/* 028F535C */ if (_t54) goto L_028F5330; else goto L_028F5360;
|
|
L_028F5360: ; // 0x28f5360
|
|
/* 028F5360 */ _t55 = cpu->r[29] + 0xFFFF98F0u;
|
|
/* 028F5360 */ cpu->r[3] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028F5364 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F5368 */ _t56 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F5368 */ cpu->r[7] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028F536C */ _t57 = cpu->r[7] + 0x0000003Cu;
|
|
/* 028F536C */ cpu->r[0] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028F5370 */ cpu->ctr = cpu->r[0];
|
|
/* 028F5374 */ _t58 = cpu->r[30] + 0x00000044u;
|
|
/* 028F5374 */ cpu->r[4] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028F5378 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F537C */ _t59 = cpu->r[30] + 0x00000040u;
|
|
/* 028F537C */ rbrew_write32(cpu->mem, _t59, cpu->r[28]);
|
|
/* 028F5380 */ _t60 = cpu->r[30] + 0x00000044u;
|
|
/* 028F5380 */ rbrew_write32(cpu->mem, _t60, cpu->r[28]);
|
|
L_028F5384: ; // 0x28f5384
|
|
/* 028F5384 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F5388 */ _t61 = cpu->r[30] + 0x00000018u;
|
|
/* 028F5388 */ rbrew_write32(cpu->mem, _t61, cpu->r[0]);
|
|
/* 028F538C */ /* nop */
|
|
/* 028F5390 */ _t62 = cpu->r[1] + 0x00000024u;
|
|
/* 028F5390 */ cpu->r[0] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028F5394 */ cpu->lr = cpu->r[0];
|
|
/* 028F5398 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028F539C */ return;
|
|
}
|
|
|
|
// fn_028F53A0 @ 0x28f53a0
|
|
void Gambit_fn_028F53A0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F53A0: ; // 0x28f53a0
|
|
/* 028F53A0 */ cpu->r[0] = cpu->lr;
|
|
/* 028F53A4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F53A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F53A4 */ cpu->r[1] = _t0;
|
|
/* 028F53A8 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028F53A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F53AC */ cpu->r[31] = cpu->r[3];
|
|
/* 028F53B0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F53B0 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028F53B4 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028F53B4 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028F53B8 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028F53B8 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028F53BC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F53BC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F53C0 */ Gambit_fn_028F5200(cpu);
|
|
/* 028F53C4 */ _t6 = cpu->r[31] + 0x00000020u;
|
|
/* 028F53C4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F53C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F53CC */ cpu->r[30] = 0x00000000u;
|
|
/* 028F53D0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F53D0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F53D0 */ if (_t8) goto L_028F5440; else goto L_028F53D4;
|
|
L_028F53D4: ; // 0x28f53d4
|
|
/* 028F53D4 */ _t9 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F53D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F53D8 */ cpu->r[28] = 0x00000000u;
|
|
/* 028F53DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], cpu->r[0]);
|
|
/* 028F53E0 */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F53E0 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F53E0 */ if (_t11) goto L_028F53E4; else goto L_028F5418;
|
|
L_028F53E4: ; // 0x28f53e4
|
|
/* 028F53E4 */ cpu->r[29] = 0x00000000u;
|
|
L_028F53E8: ; // 0x28f53e8
|
|
/* 028F53E8 */ cpu->r[3] = cpu->r[4] + cpu->r[29];
|
|
/* 028F53EC */ _t12 = cpu->r[3] + 0x0000007Cu;
|
|
/* 028F53EC */ cpu->r[8] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F53F0 */ _t13 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028F53F0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F53F4 */ cpu->ctr = cpu->r[9];
|
|
/* 028F53F8 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F53FC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F5400 */ _t14 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F5400 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F5404 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028F5408 */ cpu->r[29] = cpu->r[29] + 0x00000080u;
|
|
/* 028F540C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], cpu->r[0]);
|
|
/* 028F5410 */ _t15 = cpu->r[31] + 0x00000020u;
|
|
/* 028F5410 */ cpu->r[4] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F5414 */ _t16 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5414 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F5414 */ if (_t17) goto L_028F53E8; else goto L_028F5418;
|
|
L_028F5418: ; // 0x28f5418
|
|
/* 028F5418 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F541C */ _t18 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F541C */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F5420 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F5424 */ _t19 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F5424 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F5428 */ _t20 = cpu->r[12] + 0x0000003Cu;
|
|
/* 028F5428 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F542C */ cpu->ctr = cpu->r[0];
|
|
/* 028F5430 */ _t21 = cpu->r[31] + 0x00000020u;
|
|
/* 028F5430 */ cpu->r[4] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F5434 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F5438 */ _t22 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F5438 */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
/* 028F543C */ _t23 = cpu->r[31] + 0x00000020u;
|
|
/* 028F543C */ rbrew_write32(cpu->mem, _t23, cpu->r[30]);
|
|
L_028F5440: ; // 0x28f5440
|
|
/* 028F5440 */ _t24 = cpu->r[31] + 0x00000030u;
|
|
/* 028F5440 */ cpu->r[3] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F5444 */ cpu->r[11] = 0x00000000u;
|
|
/* 028F5448 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F544C */ _t25 = cpu->r[31] + 0x00000014u;
|
|
/* 028F544C */ rbrew_write32(cpu->mem, _t25, cpu->r[11]);
|
|
/* 028F5450 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5450 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028F5450 */ if (_t27) goto L_028F545C; else goto L_028F5454;
|
|
L_028F5454: ; // 0x28f5454
|
|
/* 028F5454 */ Gambit_fn_02801BB4(cpu);
|
|
/* 028F5458 */ _t28 = cpu->r[31] + 0x00000030u;
|
|
/* 028F5458 */ rbrew_write32(cpu->mem, _t28, cpu->r[30]);
|
|
L_028F545C: ; // 0x28f545c
|
|
/* 028F545C */ _t29 = cpu->r[31] + 0x00000034u;
|
|
/* 028F545C */ rbrew_write16(cpu->mem, _t29, (uint16_t)cpu->r[30]);
|
|
/* 028F5460 */ _t30 = cpu->r[1] + 0x00000008u;
|
|
/* 028F5460 */ cpu->r[28] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F5464 */ _t31 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5464 */ cpu->r[29] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F5468 */ _t32 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F5468 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F546C */ _t33 = cpu->r[1] + 0x00000010u;
|
|
/* 028F546C */ cpu->r[30] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F5470 */ cpu->lr = cpu->r[0];
|
|
/* 028F5474 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5474 */ cpu->r[31] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F5478 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F547C */ return;
|
|
}
|
|
|
|
// fn_028F53A4 @ 0x28f53a4
|
|
void Gambit_fn_028F53A4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F53A4: ; // 0x28f53a4
|
|
/* 028F53A4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F53A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F53A4 */ cpu->r[1] = _t0;
|
|
/* 028F53A8 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028F53A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F53AC */ cpu->r[31] = cpu->r[3];
|
|
/* 028F53B0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F53B0 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028F53B4 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028F53B4 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028F53B8 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028F53B8 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028F53BC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F53BC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F53C0 */ Gambit_fn_028F5200(cpu);
|
|
/* 028F53C4 */ _t6 = cpu->r[31] + 0x00000020u;
|
|
/* 028F53C4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F53C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F53CC */ cpu->r[30] = 0x00000000u;
|
|
/* 028F53D0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F53D0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F53D0 */ if (_t8) goto L_028F5440; else goto L_028F53D4;
|
|
L_028F53D4: ; // 0x28f53d4
|
|
/* 028F53D4 */ _t9 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F53D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F53D8 */ cpu->r[28] = 0x00000000u;
|
|
/* 028F53DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], cpu->r[0]);
|
|
/* 028F53E0 */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F53E0 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F53E0 */ if (_t11) goto L_028F53E4; else goto L_028F5418;
|
|
L_028F53E4: ; // 0x28f53e4
|
|
/* 028F53E4 */ cpu->r[29] = 0x00000000u;
|
|
L_028F53E8: ; // 0x28f53e8
|
|
/* 028F53E8 */ cpu->r[3] = cpu->r[4] + cpu->r[29];
|
|
/* 028F53EC */ _t12 = cpu->r[3] + 0x0000007Cu;
|
|
/* 028F53EC */ cpu->r[8] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F53F0 */ _t13 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028F53F0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F53F4 */ cpu->ctr = cpu->r[9];
|
|
/* 028F53F8 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F53FC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F5400 */ _t14 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F5400 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F5404 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028F5408 */ cpu->r[29] = cpu->r[29] + 0x00000080u;
|
|
/* 028F540C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], cpu->r[0]);
|
|
/* 028F5410 */ _t15 = cpu->r[31] + 0x00000020u;
|
|
/* 028F5410 */ cpu->r[4] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F5414 */ _t16 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5414 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F5414 */ if (_t17) goto L_028F53E8; else goto L_028F5418;
|
|
L_028F5418: ; // 0x28f5418
|
|
/* 028F5418 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F541C */ _t18 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F541C */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F5420 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F5424 */ _t19 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F5424 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F5428 */ _t20 = cpu->r[12] + 0x0000003Cu;
|
|
/* 028F5428 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F542C */ cpu->ctr = cpu->r[0];
|
|
/* 028F5430 */ _t21 = cpu->r[31] + 0x00000020u;
|
|
/* 028F5430 */ cpu->r[4] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F5434 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F5438 */ _t22 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F5438 */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
/* 028F543C */ _t23 = cpu->r[31] + 0x00000020u;
|
|
/* 028F543C */ rbrew_write32(cpu->mem, _t23, cpu->r[30]);
|
|
L_028F5440: ; // 0x28f5440
|
|
/* 028F5440 */ _t24 = cpu->r[31] + 0x00000030u;
|
|
/* 028F5440 */ cpu->r[3] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F5444 */ cpu->r[11] = 0x00000000u;
|
|
/* 028F5448 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F544C */ _t25 = cpu->r[31] + 0x00000014u;
|
|
/* 028F544C */ rbrew_write32(cpu->mem, _t25, cpu->r[11]);
|
|
/* 028F5450 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5450 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028F5450 */ if (_t27) goto L_028F545C; else goto L_028F5454;
|
|
L_028F5454: ; // 0x28f5454
|
|
/* 028F5454 */ Gambit_fn_02801BB4(cpu);
|
|
/* 028F5458 */ _t28 = cpu->r[31] + 0x00000030u;
|
|
/* 028F5458 */ rbrew_write32(cpu->mem, _t28, cpu->r[30]);
|
|
L_028F545C: ; // 0x28f545c
|
|
/* 028F545C */ _t29 = cpu->r[31] + 0x00000034u;
|
|
/* 028F545C */ rbrew_write16(cpu->mem, _t29, (uint16_t)cpu->r[30]);
|
|
/* 028F5460 */ _t30 = cpu->r[1] + 0x00000008u;
|
|
/* 028F5460 */ cpu->r[28] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F5464 */ _t31 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5464 */ cpu->r[29] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F5468 */ _t32 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F5468 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F546C */ _t33 = cpu->r[1] + 0x00000010u;
|
|
/* 028F546C */ cpu->r[30] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F5470 */ cpu->lr = cpu->r[0];
|
|
/* 028F5474 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5474 */ cpu->r[31] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F5478 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F547C */ return;
|
|
}
|
|
|
|
// fn_028F5480 @ 0x28f5480
|
|
void Gambit_fn_028F5480(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028F5480: ; // 0x28f5480
|
|
/* 028F5480 */ cpu->r[0] = cpu->lr;
|
|
/* 028F5484 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F5484 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F5484 */ cpu->r[1] = _t0;
|
|
/* 028F5488 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5488 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F548C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F548C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F5490 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F5490 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F5494 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F5498 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5498 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F549C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F549C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F549C */ if (_t5) goto L_028F54DC; else goto L_028F54A0;
|
|
L_028F54A0: ; // 0x28f54a0
|
|
/* 028F54A0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F54A4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028F54A8 */ cpu->r[0] = cpu->r[0] + 0xFFFFCF00u;
|
|
/* 028F54AC */ cpu->r[12] = cpu->r[12] + 0xFFFFCF10u;
|
|
/* 028F54B0 */ _t6 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F54B0 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028F54B4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F54B8 */ _t7 = cpu->r[30] + 0x00000010u;
|
|
/* 028F54B8 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 028F54BC */ Gambit_fn_028F53A0(cpu);
|
|
/* 028F54C0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F54C4 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F54C8 */ Gambit_fn_02821E68(cpu);
|
|
/* 028F54CC */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F54CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F54D0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F54D0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F54D0 */ if (_t9) goto L_028F54DC; else goto L_028F54D4;
|
|
L_028F54D4: ; // 0x28f54d4
|
|
/* 028F54D4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F54D8 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F54DC: ; // 0x28f54dc
|
|
/* 028F54DC */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028F54DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F54E0 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028F54E0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F54E4 */ cpu->lr = cpu->r[0];
|
|
/* 028F54E8 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F54E8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F54EC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F54F0 */ return;
|
|
}
|
|
|
|
// fn_028F5484 @ 0x28f5484
|
|
void Gambit_fn_028F5484(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028F5484: ; // 0x28f5484
|
|
/* 028F5484 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F5484 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F5484 */ cpu->r[1] = _t0;
|
|
/* 028F5488 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5488 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F548C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F548C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F5490 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F5490 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F5494 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F5498 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5498 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F549C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F549C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F549C */ if (_t5) goto L_028F54DC; else goto L_028F54A0;
|
|
L_028F54A0: ; // 0x28f54a0
|
|
/* 028F54A0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F54A4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028F54A8 */ cpu->r[0] = cpu->r[0] + 0xFFFFCF00u;
|
|
/* 028F54AC */ cpu->r[12] = cpu->r[12] + 0xFFFFCF10u;
|
|
/* 028F54B0 */ _t6 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F54B0 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028F54B4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F54B8 */ _t7 = cpu->r[30] + 0x00000010u;
|
|
/* 028F54B8 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 028F54BC */ Gambit_fn_028F53A0(cpu);
|
|
/* 028F54C0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F54C4 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F54C8 */ Gambit_fn_02821E68(cpu);
|
|
/* 028F54CC */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F54CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F54D0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F54D0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F54D0 */ if (_t9) goto L_028F54DC; else goto L_028F54D4;
|
|
L_028F54D4: ; // 0x28f54d4
|
|
/* 028F54D4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F54D8 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F54DC: ; // 0x28f54dc
|
|
/* 028F54DC */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028F54DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F54E0 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028F54E0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F54E4 */ cpu->lr = cpu->r[0];
|
|
/* 028F54E8 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F54E8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F54EC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F54F0 */ return;
|
|
}
|
|
|
|
// fn_028F54F4 @ 0x28f54f4
|
|
void Gambit_fn_028F54F4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _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_028F54F4: ; // 0x28f54f4
|
|
/* 028F54F4 */ _t0 = cpu->r[1] + 0xFFFFFFC0u;
|
|
/* 028F54F4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F54F4 */ cpu->r[1] = _t0;
|
|
/* 028F54F8 */ /* nop */
|
|
/* 028F54FC */ cpu->r[28] = cpu->r[8];
|
|
/* 028F5500 */ cpu->r[31] = cpu->r[5];
|
|
/* 028F5504 */ cpu->r[5] = cpu->r[28];
|
|
/* 028F5508 */ cpu->r[0] = cpu->lr;
|
|
/* 028F550C */ cpu->r[27] = cpu->r[3];
|
|
/* 028F5510 */ _t1 = cpu->r[1] + 0x00000044u;
|
|
/* 028F5510 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F5514 */ Gambit_fn_028F3624(cpu);
|
|
/* 028F5518 */ _t2 = cpu->r[31] + 0x00000000u;
|
|
/* 028F5518 */ cpu->r[7] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F551C */ _t3 = cpu->r[7] + 0x00000004u;
|
|
/* 028F551C */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F5520 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F5524 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5524 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F5524 */ if (_t5) goto L_028F5604; else goto L_028F5528;
|
|
L_028F5528: ; // 0x28f5528
|
|
/* 028F5528 */ cpu->r[5] = cpu->r[28];
|
|
/* 028F552C */ cpu->r[3] = cpu->r[27];
|
|
/* 028F5530 */ Gambit_fn_028F3834(cpu);
|
|
/* 028F5534 */ _t6 = cpu->r[31] + 0x00000000u;
|
|
/* 028F5534 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F5538 */ _t7 = cpu->r[7] + 0x00000004u;
|
|
/* 028F5538 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F553C */ cpu->r[30] = 0x00000000u;
|
|
/* 028F5540 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F5544 */ cpu->r[29] = cpu->r[7] + 0x00000008u;
|
|
/* 028F5548 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5548 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F5548 */ if (_t9) goto L_028F55F8; else goto L_028F554C;
|
|
L_028F554C: ; // 0x28f554c
|
|
/* 028F554C */ cpu->r[26] = 0x10140000u;
|
|
/* 028F5550 */ cpu->r[26] = cpu->r[26] + 0xFFFFCDE4u;
|
|
L_028F5554: ; // 0x28f5554
|
|
/* 028F5554 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028F5554 */ rbrew_write32(cpu->mem, _t10, cpu->r[29]);
|
|
/* 028F5558 */ cpu->r[11] = cpu->r[29] + 0x00000010u;
|
|
/* 028F555C */ _t11 = cpu->r[1] + 0x00000018u;
|
|
/* 028F555C */ rbrew_write32(cpu->mem, _t11, cpu->r[26]);
|
|
/* 028F5560 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F5564 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5564 */ rbrew_write32(cpu->mem, _t12, cpu->r[11]);
|
|
/* 028F5568 */ Gambit_fn_028F22D4(cpu);
|
|
/* 028F556C */ cpu->r[4] = cpu->r[30];
|
|
/* 028F5570 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028F5570 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F5574 */ _t14 = cpu->r[1] + 0x00000020u;
|
|
/* 028F5574 */ rbrew_write32(cpu->mem, _t14, cpu->r[26]);
|
|
/* 028F5578 */ cpu->r[6] = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F557C */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F557C */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
/* 028F5580 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028F5584 */ _t16 = cpu->r[12] + 0x00000008u;
|
|
/* 028F5584 */ cpu->r[7] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F5588 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F558C */ cpu->r[8] = cpu->r[28];
|
|
/* 028F5590 */ Gambit_fn_028F392C(cpu);
|
|
/* 028F5594 */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028F5594 */ cpu->r[8] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F5598 */ _t18 = cpu->r[8] + 0x00000008u;
|
|
/* 028F5598 */ cpu->r[9] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F559C */ cpu->r[25] = 0x00000000u;
|
|
/* 028F55A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[9]);
|
|
/* 028F55A4 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F55A4 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F55A4 */ if (_t20) goto L_028F55A8; else goto L_028F55E4;
|
|
L_028F55A8: ; // 0x28f55a8
|
|
/* 028F55A8 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F55AC */ cpu->r[4] = cpu->r[25];
|
|
/* 028F55B0 */ Gambit_fn_028F2320(cpu);
|
|
/* 028F55B4 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F55B4 */ rbrew_write32(cpu->mem, _t21, cpu->r[3]);
|
|
/* 028F55B8 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F55BC */ cpu->r[5] = cpu->r[25];
|
|
/* 028F55C0 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028F55C0 */ rbrew_write32(cpu->mem, _t22, cpu->r[26]);
|
|
/* 028F55C4 */ cpu->r[4] = cpu->r[30];
|
|
/* 028F55C8 */ cpu->r[6] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F55CC */ Gambit_fn_028F3974(cpu);
|
|
/* 028F55D0 */ _t23 = cpu->r[1] + 0x00000008u;
|
|
/* 028F55D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F55D4 */ _t24 = cpu->r[10] + 0x00000008u;
|
|
/* 028F55D4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F55D8 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 028F55DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[12]);
|
|
/* 028F55E0 */ _t25 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F55E0 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028F55E0 */ if (_t26) goto L_028F55A8; else goto L_028F55E4;
|
|
L_028F55E4: ; // 0x28f55e4
|
|
/* 028F55E4 */ _t27 = cpu->r[29] + 0x00000000u;
|
|
/* 028F55E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F55E8 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028F55EC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F55F0 */ cpu->r[29] = cpu->r[29] + cpu->r[0];
|
|
/* 028F55F4 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F55F4 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028F55F4 */ if (_t29) goto L_028F55F8; else goto L_028F5554;
|
|
L_028F55F8: ; // 0x28f55f8
|
|
/* 028F55F8 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F55FC */ cpu->r[4] = cpu->r[28];
|
|
/* 028F5600 */ Gambit_fn_028F3B2C(cpu);
|
|
L_028F5604: ; // 0x28f5604
|
|
/* 028F5604 */ /* nop */
|
|
/* 028F5608 */ _t30 = cpu->r[1] + 0x00000044u;
|
|
/* 028F5608 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F560C */ cpu->lr = cpu->r[0];
|
|
/* 028F5610 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 028F5614 */ return;
|
|
}
|
|
|
|
// fn_028F5618 @ 0x28f5618
|
|
void Gambit_fn_028F5618(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _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_028F5618: ; // 0x28f5618
|
|
/* 028F5618 */ cpu->r[0] = cpu->lr;
|
|
/* 028F561C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F561C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F561C */ cpu->r[1] = _t0;
|
|
/* 028F5620 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5620 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F5624 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F5624 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F5628 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F5628 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F562C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F562C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F5630 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5630 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F5630 */ if (_t5) goto L_028F5634; else goto L_028F5644;
|
|
L_028F5634: ; // 0x28f5634
|
|
/* 028F5634 */ cpu->r[3] = 0x00000034u;
|
|
/* 028F5638 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F563C */ cpu->r[31] = cpu->r[3];
|
|
/* 028F563C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F5640 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5640 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F5640 */ if (_t7) goto L_028F56D0; else goto L_028F5644;
|
|
L_028F5644: ; // 0x28f5644
|
|
/* 028F5644 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F5648 */ Gambit_fn_02821D00(cpu);
|
|
/* 028F564C */ cpu->r[0] = 0x10140000u;
|
|
/* 028F5650 */ cpu->r[11] = 0x10140000u;
|
|
/* 028F5654 */ cpu->r[0] = cpu->r[0] + 0xFFFFCF20u;
|
|
/* 028F5658 */ cpu->r[11] = cpu->r[11] + 0xFFFFCF30u;
|
|
/* 028F565C */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F565C */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028F5660 */ cpu->r[3] = cpu->r[31] + 0x00000018u;
|
|
/* 028F5660 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5664 */ _t9 = cpu->r[31] + 0x00000010u;
|
|
/* 028F5664 */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 028F5668 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5668 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F5668 */ if (_t11) goto L_028F566C; else goto L_028F567C;
|
|
L_028F566C: ; // 0x28f566c
|
|
/* 028F566C */ cpu->r[3] = 0x00000004u;
|
|
/* 028F5670 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F5674 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5678 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5678 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F5678 */ if (_t13) goto L_028F5684; else goto L_028F567C;
|
|
L_028F567C: ; // 0x28f567c
|
|
/* 028F567C */ cpu->r[12] = 0x00000001u;
|
|
/* 028F5680 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028F5680 */ rbrew_write32(cpu->mem, _t14, cpu->r[12]);
|
|
L_028F5684: ; // 0x28f5684
|
|
/* 028F5684 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F5688 */ cpu->r[3] = cpu->r[31] + 0x00000020u;
|
|
/* 028F5688 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F568C */ _t15 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F568C */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
/* 028F5690 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5690 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F5690 */ if (_t17) goto L_028F5694; else goto L_028F56A4;
|
|
L_028F5694: ; // 0x28f5694
|
|
/* 028F5694 */ cpu->r[3] = 0x00000004u;
|
|
/* 028F5698 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F569C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F56A0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F56A0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F56A0 */ if (_t19) goto L_028F56A8; else goto L_028F56A4;
|
|
L_028F56A4: ; // 0x28f56a4
|
|
/* 028F56A4 */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028F56A4 */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
L_028F56A8: ; // 0x28f56a8
|
|
/* 028F56A8 */ _t21 = cpu->r[31] + 0x00000024u;
|
|
/* 028F56A8 */ rbrew_write32(cpu->mem, _t21, cpu->r[30]);
|
|
/* 028F56AC */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F56AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F56B0 */ _t22 = cpu->r[31] + 0x00000028u;
|
|
/* 028F56B0 */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
/* 028F56B4 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F56B4 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028F56B4 */ if (_t24) goto L_028F56B8; else goto L_028F56C8;
|
|
L_028F56B8: ; // 0x28f56b8
|
|
/* 028F56B8 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F56BC */ Gambit_fn_02801A78(cpu);
|
|
/* 028F56C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F56C4 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F56C4 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028F56C4 */ if (_t26) goto L_028F56D0; else goto L_028F56C8;
|
|
L_028F56C8: ; // 0x28f56c8
|
|
/* 028F56C8 */ _t27 = cpu->r[3] + 0x00000004u;
|
|
/* 028F56C8 */ rbrew_write32(cpu->mem, _t27, cpu->r[30]);
|
|
/* 028F56CC */ _t28 = cpu->r[3] + 0x00000000u;
|
|
/* 028F56CC */ rbrew_write32(cpu->mem, _t28, cpu->r[30]);
|
|
L_028F56D0: ; // 0x28f56d0
|
|
/* 028F56D0 */ _t29 = cpu->r[1] + 0x00000014u;
|
|
/* 028F56D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F56D4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F56D8 */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F56D8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F56DC */ cpu->lr = cpu->r[0];
|
|
/* 028F56E0 */ _t31 = cpu->r[1] + 0x00000008u;
|
|
/* 028F56E0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F56E4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F56E8 */ return;
|
|
}
|
|
|
|
// fn_028F561C @ 0x28f561c
|
|
void Gambit_fn_028F561C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _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_028F561C: ; // 0x28f561c
|
|
/* 028F561C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F561C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F561C */ cpu->r[1] = _t0;
|
|
/* 028F5620 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5620 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F5624 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F5624 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F5628 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F5628 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F562C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F562C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F5630 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5630 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F5630 */ if (_t5) goto L_028F5634; else goto L_028F5644;
|
|
L_028F5634: ; // 0x28f5634
|
|
/* 028F5634 */ cpu->r[3] = 0x00000034u;
|
|
/* 028F5638 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F563C */ cpu->r[31] = cpu->r[3];
|
|
/* 028F563C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F5640 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5640 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F5640 */ if (_t7) goto L_028F56D0; else goto L_028F5644;
|
|
L_028F5644: ; // 0x28f5644
|
|
/* 028F5644 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F5648 */ Gambit_fn_02821D00(cpu);
|
|
/* 028F564C */ cpu->r[0] = 0x10140000u;
|
|
/* 028F5650 */ cpu->r[11] = 0x10140000u;
|
|
/* 028F5654 */ cpu->r[0] = cpu->r[0] + 0xFFFFCF20u;
|
|
/* 028F5658 */ cpu->r[11] = cpu->r[11] + 0xFFFFCF30u;
|
|
/* 028F565C */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F565C */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028F5660 */ cpu->r[3] = cpu->r[31] + 0x00000018u;
|
|
/* 028F5660 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5664 */ _t9 = cpu->r[31] + 0x00000010u;
|
|
/* 028F5664 */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 028F5668 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5668 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F5668 */ if (_t11) goto L_028F566C; else goto L_028F567C;
|
|
L_028F566C: ; // 0x28f566c
|
|
/* 028F566C */ cpu->r[3] = 0x00000004u;
|
|
/* 028F5670 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F5674 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5678 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5678 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F5678 */ if (_t13) goto L_028F5684; else goto L_028F567C;
|
|
L_028F567C: ; // 0x28f567c
|
|
/* 028F567C */ cpu->r[12] = 0x00000001u;
|
|
/* 028F5680 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028F5680 */ rbrew_write32(cpu->mem, _t14, cpu->r[12]);
|
|
L_028F5684: ; // 0x28f5684
|
|
/* 028F5684 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F5688 */ cpu->r[3] = cpu->r[31] + 0x00000020u;
|
|
/* 028F5688 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F568C */ _t15 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F568C */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
/* 028F5690 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5690 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F5690 */ if (_t17) goto L_028F5694; else goto L_028F56A4;
|
|
L_028F5694: ; // 0x28f5694
|
|
/* 028F5694 */ cpu->r[3] = 0x00000004u;
|
|
/* 028F5698 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F569C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F56A0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F56A0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F56A0 */ if (_t19) goto L_028F56A8; else goto L_028F56A4;
|
|
L_028F56A4: ; // 0x28f56a4
|
|
/* 028F56A4 */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028F56A4 */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
L_028F56A8: ; // 0x28f56a8
|
|
/* 028F56A8 */ _t21 = cpu->r[31] + 0x00000024u;
|
|
/* 028F56A8 */ rbrew_write32(cpu->mem, _t21, cpu->r[30]);
|
|
/* 028F56AC */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F56AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F56B0 */ _t22 = cpu->r[31] + 0x00000028u;
|
|
/* 028F56B0 */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
/* 028F56B4 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F56B4 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028F56B4 */ if (_t24) goto L_028F56B8; else goto L_028F56C8;
|
|
L_028F56B8: ; // 0x28f56b8
|
|
/* 028F56B8 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F56BC */ Gambit_fn_02801A78(cpu);
|
|
/* 028F56C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F56C4 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F56C4 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028F56C4 */ if (_t26) goto L_028F56D0; else goto L_028F56C8;
|
|
L_028F56C8: ; // 0x28f56c8
|
|
/* 028F56C8 */ _t27 = cpu->r[3] + 0x00000004u;
|
|
/* 028F56C8 */ rbrew_write32(cpu->mem, _t27, cpu->r[30]);
|
|
/* 028F56CC */ _t28 = cpu->r[3] + 0x00000000u;
|
|
/* 028F56CC */ rbrew_write32(cpu->mem, _t28, cpu->r[30]);
|
|
L_028F56D0: ; // 0x28f56d0
|
|
/* 028F56D0 */ _t29 = cpu->r[1] + 0x00000014u;
|
|
/* 028F56D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F56D4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F56D8 */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F56D8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F56DC */ cpu->lr = cpu->r[0];
|
|
/* 028F56E0 */ _t31 = cpu->r[1] + 0x00000008u;
|
|
/* 028F56E0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F56E4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F56E8 */ return;
|
|
}
|
|
|
|
// fn_028F56EC @ 0x28f56ec
|
|
void Gambit_fn_028F56EC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _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_028F56EC: ; // 0x28f56ec
|
|
/* 028F56EC */ cpu->r[0] = cpu->lr;
|
|
/* 028F56F0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F56F0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F56F0 */ cpu->r[1] = _t0;
|
|
/* 028F56F4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F56F4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F56F8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F56F8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F56FC */ cpu->r[31] = cpu->r[3];
|
|
/* 028F56FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F5700 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5700 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F5704 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5704 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F5704 */ if (_t5) goto L_028F5708; else goto L_028F5718;
|
|
L_028F5708: ; // 0x28f5708
|
|
/* 028F5708 */ cpu->r[3] = 0x000000F0u;
|
|
/* 028F570C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F5710 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F5710 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F5714 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5714 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F5714 */ if (_t7) goto L_028F5788; else goto L_028F5718;
|
|
L_028F5718: ; // 0x28f5718
|
|
/* 028F5718 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F571C */ cpu->r[0] = 0x10140000u;
|
|
/* 028F5720 */ _t8 = cpu->r[31] + 0x00000004u;
|
|
/* 028F5720 */ rbrew_write16(cpu->mem, _t8, (uint16_t)cpu->r[30]);
|
|
/* 028F5724 */ cpu->r[0] = cpu->r[0] + 0xFFFFCF40u;
|
|
/* 028F5728 */ cpu->r[6] = 0x028F0000u;
|
|
/* 028F572C */ cpu->r[3] = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F5730 */ _t9 = cpu->r[31] + 0x00000000u;
|
|
/* 028F5730 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028F5734 */ cpu->r[6] = cpu->r[6] + 0x00006F80u;
|
|
/* 028F5738 */ cpu->r[4] = 0x00000003u;
|
|
/* 028F573C */ _t10 = cpu->r[31] + 0x00000008u;
|
|
/* 028F573C */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 028F5740 */ cpu->r[5] = 0x00000048u;
|
|
/* 028F5744 */ _t11 = cpu->r[31] + 0x00000006u;
|
|
/* 028F5744 */ rbrew_write16(cpu->mem, _t11, (uint16_t)cpu->r[30]);
|
|
/* 028F5748 */ Gambit_fn_02C82E00(cpu);
|
|
/* 028F574C */ cpu->r[3] = cpu->r[31] + 0x000000E4u;
|
|
/* 028F574C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5750 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5750 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F5750 */ if (_t13) goto L_028F5754; else goto L_028F5764;
|
|
L_028F5754: ; // 0x28f5754
|
|
/* 028F5754 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F5758 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F575C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5760 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5760 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F5760 */ if (_t15) goto L_028F576C; else goto L_028F5764;
|
|
L_028F5764: ; // 0x28f5764
|
|
/* 028F5764 */ _t16 = cpu->r[3] + 0x00000004u;
|
|
/* 028F5764 */ rbrew_write32(cpu->mem, _t16, cpu->r[30]);
|
|
/* 028F5768 */ _t17 = cpu->r[3] + 0x00000000u;
|
|
/* 028F5768 */ rbrew_write32(cpu->mem, _t17, cpu->r[30]);
|
|
L_028F576C: ; // 0x28f576c
|
|
/* 028F576C */ cpu->r[3] = cpu->r[31] + 0x000000ECu;
|
|
/* 028F576C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5770 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5770 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F5770 */ if (_t19) goto L_028F5774; else goto L_028F5784;
|
|
L_028F5774: ; // 0x28f5774
|
|
/* 028F5774 */ cpu->r[3] = 0x00000001u;
|
|
/* 028F5778 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F577C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5780 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5780 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F5780 */ if (_t21) goto L_028F5788; else goto L_028F5784;
|
|
L_028F5784: ; // 0x28f5784
|
|
/* 028F5784 */ _t22 = cpu->r[3] + 0x00000000u;
|
|
/* 028F5784 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[30]);
|
|
L_028F5788: ; // 0x28f5788
|
|
/* 028F5788 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5788 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F578C */ cpu->r[3] = cpu->r[31];
|
|
/* 028F5790 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5790 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F5794 */ cpu->lr = cpu->r[0];
|
|
/* 028F5798 */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 028F5798 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F579C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F57A0 */ return;
|
|
}
|
|
|
|
// fn_028F56F0 @ 0x28f56f0
|
|
void Gambit_fn_028F56F0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _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_028F56F0: ; // 0x28f56f0
|
|
/* 028F56F0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F56F0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F56F0 */ cpu->r[1] = _t0;
|
|
/* 028F56F4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F56F4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F56F8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F56F8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F56FC */ cpu->r[31] = cpu->r[3];
|
|
/* 028F56FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F5700 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5700 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F5704 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5704 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F5704 */ if (_t5) goto L_028F5708; else goto L_028F5718;
|
|
L_028F5708: ; // 0x28f5708
|
|
/* 028F5708 */ cpu->r[3] = 0x000000F0u;
|
|
/* 028F570C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F5710 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F5710 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F5714 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5714 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F5714 */ if (_t7) goto L_028F5788; else goto L_028F5718;
|
|
L_028F5718: ; // 0x28f5718
|
|
/* 028F5718 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F571C */ cpu->r[0] = 0x10140000u;
|
|
/* 028F5720 */ _t8 = cpu->r[31] + 0x00000004u;
|
|
/* 028F5720 */ rbrew_write16(cpu->mem, _t8, (uint16_t)cpu->r[30]);
|
|
/* 028F5724 */ cpu->r[0] = cpu->r[0] + 0xFFFFCF40u;
|
|
/* 028F5728 */ cpu->r[6] = 0x028F0000u;
|
|
/* 028F572C */ cpu->r[3] = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F5730 */ _t9 = cpu->r[31] + 0x00000000u;
|
|
/* 028F5730 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028F5734 */ cpu->r[6] = cpu->r[6] + 0x00006F80u;
|
|
/* 028F5738 */ cpu->r[4] = 0x00000003u;
|
|
/* 028F573C */ _t10 = cpu->r[31] + 0x00000008u;
|
|
/* 028F573C */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 028F5740 */ cpu->r[5] = 0x00000048u;
|
|
/* 028F5744 */ _t11 = cpu->r[31] + 0x00000006u;
|
|
/* 028F5744 */ rbrew_write16(cpu->mem, _t11, (uint16_t)cpu->r[30]);
|
|
/* 028F5748 */ Gambit_fn_02C82E00(cpu);
|
|
/* 028F574C */ cpu->r[3] = cpu->r[31] + 0x000000E4u;
|
|
/* 028F574C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5750 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5750 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F5750 */ if (_t13) goto L_028F5754; else goto L_028F5764;
|
|
L_028F5754: ; // 0x28f5754
|
|
/* 028F5754 */ cpu->r[3] = 0x00000008u;
|
|
/* 028F5758 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F575C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5760 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5760 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F5760 */ if (_t15) goto L_028F576C; else goto L_028F5764;
|
|
L_028F5764: ; // 0x28f5764
|
|
/* 028F5764 */ _t16 = cpu->r[3] + 0x00000004u;
|
|
/* 028F5764 */ rbrew_write32(cpu->mem, _t16, cpu->r[30]);
|
|
/* 028F5768 */ _t17 = cpu->r[3] + 0x00000000u;
|
|
/* 028F5768 */ rbrew_write32(cpu->mem, _t17, cpu->r[30]);
|
|
L_028F576C: ; // 0x28f576c
|
|
/* 028F576C */ cpu->r[3] = cpu->r[31] + 0x000000ECu;
|
|
/* 028F576C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5770 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5770 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F5770 */ if (_t19) goto L_028F5774; else goto L_028F5784;
|
|
L_028F5774: ; // 0x28f5774
|
|
/* 028F5774 */ cpu->r[3] = 0x00000001u;
|
|
/* 028F5778 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F577C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5780 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5780 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F5780 */ if (_t21) goto L_028F5788; else goto L_028F5784;
|
|
L_028F5784: ; // 0x28f5784
|
|
/* 028F5784 */ _t22 = cpu->r[3] + 0x00000000u;
|
|
/* 028F5784 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[30]);
|
|
L_028F5788: ; // 0x28f5788
|
|
/* 028F5788 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5788 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F578C */ cpu->r[3] = cpu->r[31];
|
|
/* 028F5790 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5790 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F5794 */ cpu->lr = cpu->r[0];
|
|
/* 028F5798 */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 028F5798 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F579C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F57A0 */ return;
|
|
}
|
|
|
|
// fn_028F57A4 @ 0x28f57a4
|
|
void Gambit_fn_028F57A4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61;
|
|
|
|
L_028F57A4: ; // 0x28f57a4
|
|
/* 028F57A4 */ cpu->r[0] = cpu->lr;
|
|
/* 028F57A8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F57A8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F57A8 */ cpu->r[1] = _t0;
|
|
/* 028F57AC */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028F57AC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F57B0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F57B4 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F57B4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F57B8 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F57B8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F57BC */ _t4 = cpu->r[6] + 0x00000000u;
|
|
/* 028F57BC */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F57C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F57C4 */ _t5 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F57C4 */ rbrew_write32(cpu->mem, _t5, cpu->r[4]);
|
|
/* 028F57C8 */ cpu->r[5] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028F57CC */ _t6 = cpu->r[31] + 0x00000020u;
|
|
/* 028F57CC */ rbrew_write32(cpu->mem, _t6, cpu->r[9]);
|
|
/* 028F57D0 */ cpu->r[12] = cpu->r[4];
|
|
/* 028F57D4 */ _t7 = cpu->r[31] + 0x00000018u;
|
|
/* 028F57D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F57D8 */ cpu->r[3] = cpu->r[8];
|
|
/* 028F57DC */ _t8 = cpu->r[31] + 0x00000014u;
|
|
/* 028F57DC */ rbrew_write32(cpu->mem, _t8, cpu->r[5]);
|
|
/* 028F57E0 */ _t9 = cpu->r[31] + 0x00000014u;
|
|
/* 028F57E0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F57E4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F57E4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F57E4 */ if (_t11) goto L_028F5808; else goto L_028F57E8;
|
|
L_028F57E8: ; // 0x28f57e8
|
|
/* 028F57E8 */ cpu->r[0] = cpu->r[0] | 0x00000002u;
|
|
/* 028F57EC */ _t12 = cpu->r[31] + 0x00000018u;
|
|
/* 028F57EC */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 028F57F0 */ _t13 = cpu->r[12] + 0x00000050u;
|
|
/* 028F57F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F57F0 */ cpu->r[12] = _t13;
|
|
/* 028F57F4 */ _t14 = cpu->r[31] + 0x00000020u;
|
|
/* 028F57F4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F57F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[0]);
|
|
/* 028F57FC */ _t15 = cpu->r[12] + 0x00000004u;
|
|
/* 028F57FC */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F5800 */ _t16 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5800 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F5800 */ if (_t17) goto L_028F5824; else goto L_028F5804;
|
|
L_028F5804: ; // 0x28f5804
|
|
/* 028F5804 */ goto L_028F582C;
|
|
L_028F5808: ; // 0x28f5808
|
|
/* 028F5808 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Du);
|
|
/* 028F580C */ _t18 = cpu->r[31] + 0x00000018u;
|
|
/* 028F580C */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028F5810 */ _t19 = cpu->r[12] + 0x00000050u;
|
|
/* 028F5810 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F5810 */ cpu->r[12] = _t19;
|
|
/* 028F5814 */ _t20 = cpu->r[31] + 0x00000020u;
|
|
/* 028F5814 */ cpu->r[7] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F5818 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[0]);
|
|
/* 028F581C */ _t21 = cpu->r[12] + 0x00000004u;
|
|
/* 028F581C */ cpu->r[10] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F5820 */ _t22 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5820 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F5820 */ if (_t23) goto L_028F5824; else goto L_028F5804;
|
|
L_028F5824: ; // 0x28f5824
|
|
/* 028F5824 */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F5828 */ cpu->r[10] = cpu->r[10] + cpu->r[6];
|
|
L_028F582C: ; // 0x28f582c
|
|
/* 028F582C */ cpu->r[7] = cpu->r[7] + 0x00000010u;
|
|
/* 028F5830 */ _t24 = cpu->r[10] + 0x00000000u;
|
|
/* 028F5830 */ rbrew_write32(cpu->mem, _t24, cpu->r[7]);
|
|
/* 028F5834 */ _t25 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F5834 */ cpu->r[8] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F5838 */ _t26 = cpu->r[31] + 0x00000014u;
|
|
/* 028F5838 */ cpu->r[7] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F583C */ _t27 = cpu->r[8] + 0x00000048u;
|
|
/* 028F583C */ cpu->r[10] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F5840 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[10]);
|
|
/* 028F5844 */ _t28 = cpu->r[8] + 0x0000004Cu;
|
|
/* 028F5844 */ cpu->r[11] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F5848 */ _t29 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5848 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F5848 */ if (_t30) goto L_028F584C; else goto L_028F5854;
|
|
L_028F584C: ; // 0x28f584c
|
|
/* 028F584C */ cpu->r[0] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F5850 */ cpu->r[11] = cpu->r[11] + cpu->r[0];
|
|
L_028F5854: ; // 0x28f5854
|
|
/* 028F5854 */ _t31 = cpu->r[9] + 0x00000004u;
|
|
/* 028F5854 */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F5858 */ cpu->r[12] = cpu->r[9] + cpu->r[0];
|
|
/* 028F585C */ cpu->r[9] = cpu->r[12] + 0x00000010u;
|
|
/* 028F5860 */ _t32 = cpu->r[11] + 0x00000000u;
|
|
/* 028F5860 */ rbrew_write32(cpu->mem, _t32, cpu->r[9]);
|
|
/* 028F5864 */ _t33 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F5864 */ cpu->r[7] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F5868 */ _t34 = cpu->r[7] + 0x00000040u;
|
|
/* 028F5868 */ cpu->r[30] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F586C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F5870 */ _t35 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F5870 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F5870 */ if (_t36) goto L_028F5874; else goto L_028F58B8;
|
|
L_028F5874: ; // 0x28f5874
|
|
/* 028F5874 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5878 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5878 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028F5878 */ if (_t38) goto L_028F587C; else goto L_028F5888;
|
|
L_028F587C: ; // 0x28f587c
|
|
/* 028F587C */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F5880 */ _t39 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F5880 */ cpu->r[3] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F5884 */ Gambit_fn_02826F20(cpu);
|
|
L_028F5888: ; // 0x28f5888
|
|
/* 028F5888 */ _t40 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F5888 */ cpu->r[8] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028F588C */ _t41 = cpu->r[8] + 0x00000034u;
|
|
/* 028F588C */ cpu->r[6] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F5890 */ cpu->ctr = cpu->r[6];
|
|
/* 028F5894 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F5898 */ cpu->r[4] = cpu->r[30];
|
|
/* 028F589C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F58A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F58A4 */ cpu->r[12] = cpu->r[30];
|
|
/* 028F58A8 */ _t42 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F58A8 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028F58A8 */ if (_t43) goto L_028F58B0; else goto L_028F58AC;
|
|
L_028F58AC: ; // 0x28f58ac
|
|
/* 028F58AC */ cpu->r[12] = 0x00000001u;
|
|
L_028F58B0: ; // 0x28f58b0
|
|
/* 028F58B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F58B4 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F58B4 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028F58B4 */ if (_t45) goto L_028F58B8; else goto L_028F58D0;
|
|
L_028F58B8: ; // 0x28f58b8
|
|
/* 028F58B8 */ _t46 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F58B8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F58BC */ _t47 = cpu->r[31] + 0x00000030u;
|
|
/* 028F58BC */ cpu->r[3] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F58C0 */ cpu->r[0] = cpu->r[3] + cpu->r[10];
|
|
/* 028F58C4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 028F58C8 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F58C8 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F58C8 */ if (_t49) goto L_028F58F8; else goto L_028F58CC;
|
|
L_028F58CC: ; // 0x28f58cc
|
|
/* 028F58CC */ goto L_028F58E4;
|
|
L_028F58D0: ; // 0x28f58d0
|
|
/* 028F58D0 */ cpu->r[0] = cpu->r[3] + cpu->r[30];
|
|
/* 028F58D4 */ _t50 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F58D4 */ rbrew_write32(cpu->mem, _t50, cpu->r[30]);
|
|
/* 028F58D8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 028F58DC */ _t51 = cpu->r[31] + 0x00000030u;
|
|
/* 028F58DC */ rbrew_write32(cpu->mem, _t51, cpu->r[3]);
|
|
/* 028F58E0 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F58E0 */ _t53 = _t52 & 0x00000001u;
|
|
/* 028F58E0 */ if (_t53) goto L_028F58F8; else goto L_028F58E4;
|
|
L_028F58E4: ; // 0x28f58e4
|
|
/* 028F58E4 */ cpu->r[5] = 0x00000000u;
|
|
L_028F58E8: ; // 0x28f58e8
|
|
/* 028F58E8 */ _t54 = cpu->r[3] + 0x00000000u;
|
|
/* 028F58E8 */ rbrew_write8(cpu->mem, _t54, (uint8_t)cpu->r[5]);
|
|
/* 028F58EC */ cpu->r[3] = cpu->r[3] + 0x00000001u;
|
|
/* 028F58F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 028F58F4 */ _t55 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F58F4 */ _t56 = _t55 & 0x00000001u;
|
|
/* 028F58F4 */ if (_t56) goto L_028F58F8; else goto L_028F58E8;
|
|
L_028F58F8: ; // 0x28f58f8
|
|
/* 028F58F8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F58FC */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 028F5900 */ cpu->r[0] = cpu->r[0] + 0xFFFFCDE4u;
|
|
/* 028F5904 */ cpu->r[8] = 0x10140000u;
|
|
/* 028F5908 */ _t57 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5908 */ rbrew_write32(cpu->mem, _t57, cpu->r[0]);
|
|
/* 028F590C */ cpu->r[8] = cpu->r[8] + 0xFFFFCEDCu;
|
|
/* 028F5910 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028F5914 */ _t58 = cpu->r[1] + 0x00000008u;
|
|
/* 028F5914 */ rbrew_write32(cpu->mem, _t58, cpu->r[8]);
|
|
/* 028F5918 */ Gambit_fn_028FD6EC(cpu);
|
|
/* 028F591C */ _t59 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F591C */ cpu->r[0] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028F5920 */ _t60 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5920 */ cpu->r[31] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028F5924 */ cpu->lr = cpu->r[0];
|
|
/* 028F5928 */ _t61 = cpu->r[1] + 0x00000010u;
|
|
/* 028F5928 */ cpu->r[30] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028F592C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F5930 */ return;
|
|
}
|
|
|
|
// fn_028F57A8 @ 0x28f57a8
|
|
void Gambit_fn_028F57A8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61;
|
|
|
|
L_028F57A8: ; // 0x28f57a8
|
|
/* 028F57A8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F57A8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F57A8 */ cpu->r[1] = _t0;
|
|
/* 028F57AC */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028F57AC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F57B0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F57B4 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F57B4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F57B8 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F57B8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F57BC */ _t4 = cpu->r[6] + 0x00000000u;
|
|
/* 028F57BC */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F57C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F57C4 */ _t5 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F57C4 */ rbrew_write32(cpu->mem, _t5, cpu->r[4]);
|
|
/* 028F57C8 */ cpu->r[5] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028F57CC */ _t6 = cpu->r[31] + 0x00000020u;
|
|
/* 028F57CC */ rbrew_write32(cpu->mem, _t6, cpu->r[9]);
|
|
/* 028F57D0 */ cpu->r[12] = cpu->r[4];
|
|
/* 028F57D4 */ _t7 = cpu->r[31] + 0x00000018u;
|
|
/* 028F57D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F57D8 */ cpu->r[3] = cpu->r[8];
|
|
/* 028F57DC */ _t8 = cpu->r[31] + 0x00000014u;
|
|
/* 028F57DC */ rbrew_write32(cpu->mem, _t8, cpu->r[5]);
|
|
/* 028F57E0 */ _t9 = cpu->r[31] + 0x00000014u;
|
|
/* 028F57E0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F57E4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F57E4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F57E4 */ if (_t11) goto L_028F5808; else goto L_028F57E8;
|
|
L_028F57E8: ; // 0x28f57e8
|
|
/* 028F57E8 */ cpu->r[0] = cpu->r[0] | 0x00000002u;
|
|
/* 028F57EC */ _t12 = cpu->r[31] + 0x00000018u;
|
|
/* 028F57EC */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 028F57F0 */ _t13 = cpu->r[12] + 0x00000050u;
|
|
/* 028F57F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F57F0 */ cpu->r[12] = _t13;
|
|
/* 028F57F4 */ _t14 = cpu->r[31] + 0x00000020u;
|
|
/* 028F57F4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F57F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[0]);
|
|
/* 028F57FC */ _t15 = cpu->r[12] + 0x00000004u;
|
|
/* 028F57FC */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F5800 */ _t16 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5800 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F5800 */ if (_t17) goto L_028F5824; else goto L_028F5804;
|
|
L_028F5804: ; // 0x28f5804
|
|
/* 028F5804 */ goto L_028F582C;
|
|
L_028F5808: ; // 0x28f5808
|
|
/* 028F5808 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Du);
|
|
/* 028F580C */ _t18 = cpu->r[31] + 0x00000018u;
|
|
/* 028F580C */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028F5810 */ _t19 = cpu->r[12] + 0x00000050u;
|
|
/* 028F5810 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F5810 */ cpu->r[12] = _t19;
|
|
/* 028F5814 */ _t20 = cpu->r[31] + 0x00000020u;
|
|
/* 028F5814 */ cpu->r[7] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F5818 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[0]);
|
|
/* 028F581C */ _t21 = cpu->r[12] + 0x00000004u;
|
|
/* 028F581C */ cpu->r[10] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F5820 */ _t22 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5820 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F5820 */ if (_t23) goto L_028F5824; else goto L_028F5804;
|
|
L_028F5824: ; // 0x28f5824
|
|
/* 028F5824 */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F5828 */ cpu->r[10] = cpu->r[10] + cpu->r[6];
|
|
L_028F582C: ; // 0x28f582c
|
|
/* 028F582C */ cpu->r[7] = cpu->r[7] + 0x00000010u;
|
|
/* 028F5830 */ _t24 = cpu->r[10] + 0x00000000u;
|
|
/* 028F5830 */ rbrew_write32(cpu->mem, _t24, cpu->r[7]);
|
|
/* 028F5834 */ _t25 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F5834 */ cpu->r[8] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F5838 */ _t26 = cpu->r[31] + 0x00000014u;
|
|
/* 028F5838 */ cpu->r[7] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F583C */ _t27 = cpu->r[8] + 0x00000048u;
|
|
/* 028F583C */ cpu->r[10] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F5840 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[10]);
|
|
/* 028F5844 */ _t28 = cpu->r[8] + 0x0000004Cu;
|
|
/* 028F5844 */ cpu->r[11] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F5848 */ _t29 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5848 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F5848 */ if (_t30) goto L_028F584C; else goto L_028F5854;
|
|
L_028F584C: ; // 0x28f584c
|
|
/* 028F584C */ cpu->r[0] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F5850 */ cpu->r[11] = cpu->r[11] + cpu->r[0];
|
|
L_028F5854: ; // 0x28f5854
|
|
/* 028F5854 */ _t31 = cpu->r[9] + 0x00000004u;
|
|
/* 028F5854 */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F5858 */ cpu->r[12] = cpu->r[9] + cpu->r[0];
|
|
/* 028F585C */ cpu->r[9] = cpu->r[12] + 0x00000010u;
|
|
/* 028F5860 */ _t32 = cpu->r[11] + 0x00000000u;
|
|
/* 028F5860 */ rbrew_write32(cpu->mem, _t32, cpu->r[9]);
|
|
/* 028F5864 */ _t33 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F5864 */ cpu->r[7] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F5868 */ _t34 = cpu->r[7] + 0x00000040u;
|
|
/* 028F5868 */ cpu->r[30] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F586C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F5870 */ _t35 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F5870 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F5870 */ if (_t36) goto L_028F5874; else goto L_028F58B8;
|
|
L_028F5874: ; // 0x28f5874
|
|
/* 028F5874 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5878 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5878 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028F5878 */ if (_t38) goto L_028F587C; else goto L_028F5888;
|
|
L_028F587C: ; // 0x28f587c
|
|
/* 028F587C */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F5880 */ _t39 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F5880 */ cpu->r[3] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F5884 */ Gambit_fn_02826F20(cpu);
|
|
L_028F5888: ; // 0x28f5888
|
|
/* 028F5888 */ _t40 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F5888 */ cpu->r[8] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028F588C */ _t41 = cpu->r[8] + 0x00000034u;
|
|
/* 028F588C */ cpu->r[6] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F5890 */ cpu->ctr = cpu->r[6];
|
|
/* 028F5894 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F5898 */ cpu->r[4] = cpu->r[30];
|
|
/* 028F589C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F58A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F58A4 */ cpu->r[12] = cpu->r[30];
|
|
/* 028F58A8 */ _t42 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F58A8 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028F58A8 */ if (_t43) goto L_028F58B0; else goto L_028F58AC;
|
|
L_028F58AC: ; // 0x28f58ac
|
|
/* 028F58AC */ cpu->r[12] = 0x00000001u;
|
|
L_028F58B0: ; // 0x28f58b0
|
|
/* 028F58B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F58B4 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F58B4 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028F58B4 */ if (_t45) goto L_028F58B8; else goto L_028F58D0;
|
|
L_028F58B8: ; // 0x28f58b8
|
|
/* 028F58B8 */ _t46 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F58B8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F58BC */ _t47 = cpu->r[31] + 0x00000030u;
|
|
/* 028F58BC */ cpu->r[3] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F58C0 */ cpu->r[0] = cpu->r[3] + cpu->r[10];
|
|
/* 028F58C4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 028F58C8 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F58C8 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F58C8 */ if (_t49) goto L_028F58F8; else goto L_028F58CC;
|
|
L_028F58CC: ; // 0x28f58cc
|
|
/* 028F58CC */ goto L_028F58E4;
|
|
L_028F58D0: ; // 0x28f58d0
|
|
/* 028F58D0 */ cpu->r[0] = cpu->r[3] + cpu->r[30];
|
|
/* 028F58D4 */ _t50 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F58D4 */ rbrew_write32(cpu->mem, _t50, cpu->r[30]);
|
|
/* 028F58D8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 028F58DC */ _t51 = cpu->r[31] + 0x00000030u;
|
|
/* 028F58DC */ rbrew_write32(cpu->mem, _t51, cpu->r[3]);
|
|
/* 028F58E0 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F58E0 */ _t53 = _t52 & 0x00000001u;
|
|
/* 028F58E0 */ if (_t53) goto L_028F58F8; else goto L_028F58E4;
|
|
L_028F58E4: ; // 0x28f58e4
|
|
/* 028F58E4 */ cpu->r[5] = 0x00000000u;
|
|
L_028F58E8: ; // 0x28f58e8
|
|
/* 028F58E8 */ _t54 = cpu->r[3] + 0x00000000u;
|
|
/* 028F58E8 */ rbrew_write8(cpu->mem, _t54, (uint8_t)cpu->r[5]);
|
|
/* 028F58EC */ cpu->r[3] = cpu->r[3] + 0x00000001u;
|
|
/* 028F58F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 028F58F4 */ _t55 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F58F4 */ _t56 = _t55 & 0x00000001u;
|
|
/* 028F58F4 */ if (_t56) goto L_028F58F8; else goto L_028F58E8;
|
|
L_028F58F8: ; // 0x28f58f8
|
|
/* 028F58F8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F58FC */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 028F5900 */ cpu->r[0] = cpu->r[0] + 0xFFFFCDE4u;
|
|
/* 028F5904 */ cpu->r[8] = 0x10140000u;
|
|
/* 028F5908 */ _t57 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5908 */ rbrew_write32(cpu->mem, _t57, cpu->r[0]);
|
|
/* 028F590C */ cpu->r[8] = cpu->r[8] + 0xFFFFCEDCu;
|
|
/* 028F5910 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028F5914 */ _t58 = cpu->r[1] + 0x00000008u;
|
|
/* 028F5914 */ rbrew_write32(cpu->mem, _t58, cpu->r[8]);
|
|
/* 028F5918 */ Gambit_fn_028FD6EC(cpu);
|
|
/* 028F591C */ _t59 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F591C */ cpu->r[0] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028F5920 */ _t60 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5920 */ cpu->r[31] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028F5924 */ cpu->lr = cpu->r[0];
|
|
/* 028F5928 */ _t61 = cpu->r[1] + 0x00000010u;
|
|
/* 028F5928 */ cpu->r[30] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028F592C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F5930 */ return;
|
|
}
|
|
|
|
// fn_028F5934 @ 0x28f5934
|
|
void Gambit_fn_028F5934(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F5934: ; // 0x28f5934
|
|
/* 028F5934 */ _t0 = cpu->r[1] + 0xFFFFFFB0u;
|
|
/* 028F5934 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F5934 */ cpu->r[1] = _t0;
|
|
/* 028F5938 */ /* nop */
|
|
/* 028F593C */ cpu->r[0] = cpu->lr;
|
|
/* 028F5940 */ _t1 = cpu->r[1] + 0x00000054u;
|
|
/* 028F5940 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F5944 */ cpu->r[28] = cpu->r[3];
|
|
/* 028F5948 */ _t2 = cpu->r[6] + 0x00000000u;
|
|
/* 028F5948 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F594C */ _t3 = cpu->r[28] + 0x00000008u;
|
|
/* 028F594C */ rbrew_write32(cpu->mem, _t3, cpu->r[4]);
|
|
/* 028F5950 */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 028F5950 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F5954 */ _t5 = cpu->r[28] + 0x00000004u;
|
|
/* 028F5954 */ rbrew_write16(cpu->mem, _t5, (uint16_t)cpu->r[5]);
|
|
/* 028F5958 */ _t6 = cpu->r[4] + 0x0000001Cu;
|
|
/* 028F5958 */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F5958 */ cpu->r[4] = _t6;
|
|
/* 028F595C */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028F5960 */ cpu->r[25] = cpu->r[7];
|
|
/* 028F5964 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[9]);
|
|
/* 028F5968 */ _t7 = cpu->r[4] + 0x00000004u;
|
|
/* 028F5968 */ cpu->r[27] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F596C */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F596C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F596C */ if (_t9) goto L_028F5970; else goto L_028F5978;
|
|
L_028F5970: ; // 0x28f5970
|
|
/* 028F5970 */ cpu->r[10] = rbrew_rlwinm(cpu->r[6], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F5974 */ cpu->r[27] = cpu->r[27] + cpu->r[10];
|
|
L_028F5978: ; // 0x28f5978
|
|
/* 028F5978 */ cpu->r[30] = cpu->r[28] + 0x0000000Cu;
|
|
/* 028F597C */ cpu->r[26] = cpu->r[28] + 0x000000E4u;
|
|
/* 028F5980 */ cpu->r[29] = cpu->r[30];
|
|
/* 028F5984 */ cpu->r[31] = 0x10140000u;
|
|
/* 028F5988 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[26]);
|
|
/* 028F598C */ cpu->r[31] = cpu->r[31] + 0xFFFFCDE4u;
|
|
/* 028F5990 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5990 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F5990 */ if (_t11) goto L_028F5994; else goto L_028F59AC;
|
|
L_028F5994: ; // 0x28f5994
|
|
/* 028F5994 */ _t12 = cpu->r[27] + 0x00000078u;
|
|
/* 028F5994 */ cpu->r[7] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F5998 */ _t13 = cpu->r[7] + 0x00000014u;
|
|
/* 028F5998 */ cpu->r[8] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F599C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F59A0 */ cpu->r[9] = cpu->r[7] + 0x00000008u;
|
|
/* 028F59A4 */ _t14 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F59A4 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F59A4 */ if (_t15) goto L_028F59A8; else goto L_028F5BB4;
|
|
L_028F59A8: ; // 0x28f59a8
|
|
/* 028F59A8 */ goto L_028F5B18;
|
|
L_028F59AC: ; // 0x28f59ac
|
|
/* 028F59AC */ cpu->r[24] = 0x00000000u;
|
|
L_028F59B0: ; // 0x28f59b0
|
|
/* 028F59B0 */ cpu->r[8] = 0x38E40000u;
|
|
/* 028F59B4 */ cpu->r[12] = cpu->r[29] - cpu->r[30];
|
|
/* 028F59B8 */ cpu->r[8] = cpu->r[8] + 0xFFFF8E39u;
|
|
/* 028F59BC */ cpu->r[23] = (uint32_t)(((int64_t)(int32_t)cpu->r[8] * (int64_t)(int32_t)cpu->r[12]) >> 32);
|
|
/* 028F59C0 */ /* nop */
|
|
/* 028F59C4 */ /* nop */
|
|
/* 028F59C8 */ cpu->r[23] = cpu->r[23] - cpu->r[7];
|
|
/* 028F59CC */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028F59CC */ cpu->r[11] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F59D0 */ cpu->r[9] = rbrew_rlwinm(cpu->r[23], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F59D4 */ cpu->r[10] = cpu->r[11] + cpu->r[9];
|
|
/* 028F59D8 */ _t17 = cpu->r[10] + 0x0000000Au;
|
|
/* 028F59D8 */ cpu->r[12] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t17);
|
|
/* 028F59DC */ cpu->r[0] = cpu->r[12];
|
|
/* 028F59E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 028F59E4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F59E4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F59E4 */ if (_t19) goto L_028F5AF4; else goto L_028F59E8;
|
|
L_028F59E8: ; // 0x28f59e8
|
|
/* 028F59E8 */ _t20 = cpu->r[28] + 0x00000008u;
|
|
/* 028F59E8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F59EC */ _t21 = cpu->r[5] + 0x00000040u;
|
|
/* 028F59EC */ cpu->r[6] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F59F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[6]);
|
|
/* 028F59F4 */ _t22 = cpu->r[5] + 0x00000044u;
|
|
/* 028F59F4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F59F8 */ _t23 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F59F8 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028F59F8 */ if (_t24) goto L_028F59FC; else goto L_028F5A04;
|
|
L_028F59FC: ; // 0x28f59fc
|
|
/* 028F59FC */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x00000034u);
|
|
/* 028F5A00 */ cpu->r[9] = cpu->r[9] + cpu->r[0];
|
|
L_028F5A04: ; // 0x28f5a04
|
|
/* 028F5A04 */ cpu->r[4] = cpu->r[23];
|
|
/* 028F5A08 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F5A0C */ _t25 = cpu->r[29] + 0x00000044u;
|
|
/* 028F5A0C */ rbrew_write32(cpu->mem, _t25, cpu->r[9]);
|
|
/* 028F5A10 */ Gambit_fn_028F2368(cpu);
|
|
/* 028F5A14 */ cpu->r[22] = cpu->r[3];
|
|
/* 028F5A18 */ _t26 = cpu->r[27] + 0x00000078u;
|
|
/* 028F5A18 */ cpu->r[11] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F5A1C */ _t27 = cpu->r[22] + 0x00000004u;
|
|
/* 028F5A1C */ cpu->r[4] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F5A20 */ cpu->r[3] = cpu->r[29];
|
|
/* 028F5A24 */ _t28 = cpu->r[11] + 0x00000014u;
|
|
/* 028F5A24 */ cpu->r[5] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F5A28 */ cpu->r[6] = cpu->r[25];
|
|
/* 028F5A2C */ Gambit_fn_0295F07C(cpu);
|
|
/* 028F5A30 */ _t29 = cpu->r[29] + 0x00000044u;
|
|
/* 028F5A30 */ cpu->r[6] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F5A34 */ _t30 = cpu->r[6] + 0x00000020u;
|
|
/* 028F5A34 */ cpu->r[4] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F5A38 */ cpu->r[7] = cpu->r[4] + 0x00000010u;
|
|
/* 028F5A3C */ _t31 = cpu->r[29] + 0x00000000u;
|
|
/* 028F5A3C */ rbrew_write32(cpu->mem, _t31, cpu->r[7]);
|
|
/* 028F5A40 */ cpu->r[10] = cpu->r[22] + 0x00000008u;
|
|
/* 028F5A44 */ _t32 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5A44 */ rbrew_write32(cpu->mem, _t32, cpu->r[24]);
|
|
/* 028F5A48 */ _t33 = cpu->r[1] + 0x00000010u;
|
|
/* 028F5A48 */ rbrew_write32(cpu->mem, _t33, cpu->r[10]);
|
|
/* 028F5A4C */ _t34 = cpu->r[22] + 0x00000004u;
|
|
/* 028F5A4C */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F5A50 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[0]);
|
|
/* 028F5A54 */ _t35 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5A54 */ rbrew_write32(cpu->mem, _t35, cpu->r[0]);
|
|
/* 028F5A58 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5A58 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F5A58 */ if (_t37) goto L_028F5AD4; else goto L_028F5A5C;
|
|
L_028F5A5C: ; // 0x28f5a5c
|
|
/* 028F5A5C */ cpu->r[8] = cpu->r[24];
|
|
L_028F5A60: ; // 0x28f5a60
|
|
/* 028F5A60 */ _t38 = cpu->r[29] + 0x00000010u;
|
|
/* 028F5A60 */ cpu->r[4] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F5A64 */ _t39 = cpu->r[29] + 0x00000014u;
|
|
/* 028F5A64 */ cpu->r[5] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F5A68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[5]);
|
|
/* 028F5A6C */ cpu->r[9] = cpu->r[10] + 0x0000000Cu;
|
|
/* 028F5A70 */ _t40 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5A70 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028F5A70 */ if (_t41) goto L_028F5A74; else goto L_028F5A8C;
|
|
L_028F5A74: ; // 0x28f5a74
|
|
/* 028F5A74 */ _t42 = cpu->r[29] + 0x00000018u;
|
|
/* 028F5A74 */ cpu->r[11] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F5A78 */ cpu->r[6] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F5A7C */ _t43 = cpu->r[6] + cpu->r[11];
|
|
/* 028F5A7C */ rbrew_write32(cpu->mem, _t43, cpu->r[9]);
|
|
/* 028F5A80 */ _t44 = cpu->r[29] + 0x00000010u;
|
|
/* 028F5A80 */ cpu->r[12] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028F5A84 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028F5A88 */ _t45 = cpu->r[29] + 0x00000010u;
|
|
/* 028F5A88 */ rbrew_write32(cpu->mem, _t45, cpu->r[12]);
|
|
L_028F5A8C: ; // 0x28f5a8c
|
|
/* 028F5A8C */ _t46 = cpu->r[10] + 0x00000004u;
|
|
/* 028F5A8C */ cpu->r[6] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F5A90 */ _t47 = cpu->r[29] + 0x00000020u;
|
|
/* 028F5A90 */ cpu->r[7] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F5A94 */ cpu->r[4] = cpu->r[10] + cpu->r[6];
|
|
/* 028F5A98 */ _t48 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028F5A98 */ cpu->r[5] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028F5A9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], cpu->r[7]);
|
|
/* 028F5AA0 */ cpu->r[12] = cpu->r[4] + 0x0000000Cu;
|
|
/* 028F5AA4 */ _t49 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5AA4 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028F5AA4 */ if (_t50) goto L_028F5AA8; else goto L_028F5AC0;
|
|
L_028F5AA8: ; // 0x28f5aa8
|
|
/* 028F5AA8 */ _t51 = cpu->r[29] + 0x00000024u;
|
|
/* 028F5AA8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F5AAC */ cpu->r[9] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F5AB0 */ _t52 = cpu->r[9] + cpu->r[11];
|
|
/* 028F5AB0 */ rbrew_write32(cpu->mem, _t52, cpu->r[12]);
|
|
/* 028F5AB4 */ _t53 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028F5AB4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028F5AB8 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028F5ABC */ _t54 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028F5ABC */ rbrew_write32(cpu->mem, _t54, cpu->r[12]);
|
|
L_028F5AC0: ; // 0x28f5ac0
|
|
/* 028F5AC0 */ _t55 = cpu->r[10] + 0x00000000u;
|
|
/* 028F5AC0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028F5AC4 */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 028F5AC8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[0]);
|
|
/* 028F5ACC */ cpu->r[10] = cpu->r[10] + cpu->r[5];
|
|
/* 028F5AD0 */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5AD0 */ _t57 = _t56 & 0x00000001u;
|
|
/* 028F5AD0 */ if (_t57) goto L_028F5AD4; else goto L_028F5A60;
|
|
L_028F5AD4: ; // 0x28f5ad4
|
|
/* 028F5AD4 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F5AD8 */ cpu->r[4] = cpu->r[23];
|
|
/* 028F5ADC */ Gambit_fn_028F41A0(cpu);
|
|
/* 028F5AE0 */ _t58 = cpu->r[3] + 0x00000004u;
|
|
/* 028F5AE0 */ rbrew_write32(cpu->mem, _t58, cpu->r[29]);
|
|
/* 028F5AE4 */ cpu->r[29] = cpu->r[29] + 0x00000048u;
|
|
/* 028F5AE8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[26]);
|
|
/* 028F5AEC */ _t59 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5AEC */ _t60 = _t59 & 0x00000001u;
|
|
/* 028F5AEC */ if (_t60) goto L_028F5AF0; else goto L_028F59B0;
|
|
L_028F5AF0: ; // 0x28f5af0
|
|
/* 028F5AF0 */ goto L_028F5B04;
|
|
L_028F5AF4: ; // 0x28f5af4
|
|
/* 028F5AF4 */ _t61 = cpu->r[29] + 0x00000044u;
|
|
/* 028F5AF4 */ rbrew_write32(cpu->mem, _t61, cpu->r[24]);
|
|
/* 028F5AF8 */ cpu->r[29] = cpu->r[29] + 0x00000048u;
|
|
/* 028F5AFC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[26]);
|
|
/* 028F5B00 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5B00 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028F5B00 */ if (_t63) goto L_028F5B04; else goto L_028F59B0;
|
|
L_028F5B04: ; // 0x28f5b04
|
|
/* 028F5B04 */ _t64 = cpu->r[27] + 0x00000078u;
|
|
/* 028F5B04 */ cpu->r[7] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028F5B08 */ _t65 = cpu->r[7] + 0x00000014u;
|
|
/* 028F5B08 */ cpu->r[8] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028F5B0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F5B10 */ cpu->r[9] = cpu->r[7] + 0x00000008u;
|
|
/* 028F5B14 */ _t66 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F5B14 */ _t67 = _t66 & 0x00000001u;
|
|
/* 028F5B14 */ if (_t67) goto L_028F5B18; else goto L_028F5BB4;
|
|
L_028F5B18: ; // 0x28f5b18
|
|
/* 028F5B18 */ _t68 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028F5B18 */ cpu->r[30] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028F5B1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F5B20 */ cpu->r[3] = cpu->r[25];
|
|
/* 028F5B24 */ _t69 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F5B24 */ _t70 = _t69 & 0x00000001u;
|
|
/* 028F5B24 */ if (_t70) goto L_028F5B28; else goto L_028F5B6C;
|
|
L_028F5B28: ; // 0x28f5b28
|
|
/* 028F5B28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5B2C */ _t71 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5B2C */ _t72 = _t71 & 0x00000001u;
|
|
/* 028F5B2C */ if (_t72) goto L_028F5B30; else goto L_028F5B3C;
|
|
L_028F5B30: ; // 0x28f5b30
|
|
/* 028F5B30 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F5B34 */ _t73 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F5B34 */ cpu->r[3] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028F5B38 */ Gambit_fn_02826F20(cpu);
|
|
L_028F5B3C: ; // 0x28f5b3c
|
|
/* 028F5B3C */ _t74 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F5B3C */ cpu->r[10] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028F5B40 */ _t75 = cpu->r[10] + 0x00000034u;
|
|
/* 028F5B40 */ cpu->r[11] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028F5B44 */ cpu->ctr = cpu->r[11];
|
|
/* 028F5B48 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F5B4C */ cpu->r[4] = rbrew_rlwinm(cpu->r[30], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F5B50 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F5B54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F5B58 */ cpu->r[0] = cpu->r[30];
|
|
/* 028F5B5C */ _t76 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F5B5C */ _t77 = _t76 & 0x00000001u;
|
|
/* 028F5B5C */ if (_t77) goto L_028F5B64; else goto L_028F5B60;
|
|
L_028F5B60: ; // 0x28f5b60
|
|
/* 028F5B60 */ cpu->r[0] = 0x00000001u;
|
|
L_028F5B64: ; // 0x28f5b64
|
|
/* 028F5B64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5B68 */ _t78 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5B68 */ _t79 = _t78 & 0x00000001u;
|
|
/* 028F5B68 */ if (_t79) goto L_028F5B6C; else goto L_028F5B88;
|
|
L_028F5B6C: ; // 0x28f5b6c
|
|
/* 028F5B6C */ _t80 = cpu->r[28] + 0x000000E4u;
|
|
/* 028F5B6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028F5B70 */ _t81 = cpu->r[28] + 0x000000E8u;
|
|
/* 028F5B70 */ cpu->r[3] = rbrew_read32(cpu->mem, _t81);
|
|
/* 028F5B74 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F5B78 */ cpu->r[0] = cpu->r[3] + cpu->r[12];
|
|
/* 028F5B7C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 028F5B80 */ _t82 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5B80 */ _t83 = _t82 & 0x00000001u;
|
|
/* 028F5B80 */ if (_t83) goto L_028F5BB4; else goto L_028F5B84;
|
|
L_028F5B84: ; // 0x28f5b84
|
|
/* 028F5B84 */ goto L_028F5BA0;
|
|
L_028F5B88: ; // 0x28f5b88
|
|
/* 028F5B88 */ cpu->r[12] = rbrew_rlwinm(cpu->r[30], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F5B8C */ cpu->r[0] = cpu->r[3] + cpu->r[12];
|
|
/* 028F5B90 */ _t84 = cpu->r[28] + 0x000000E4u;
|
|
/* 028F5B90 */ rbrew_write32(cpu->mem, _t84, cpu->r[30]);
|
|
/* 028F5B94 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 028F5B98 */ _t85 = cpu->r[28] + 0x000000E8u;
|
|
/* 028F5B98 */ rbrew_write32(cpu->mem, _t85, cpu->r[3]);
|
|
/* 028F5B9C */ _t86 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5B9C */ _t87 = _t86 & 0x00000001u;
|
|
/* 028F5B9C */ if (_t87) goto L_028F5BB4; else goto L_028F5BA0;
|
|
L_028F5BA0: ; // 0x28f5ba0
|
|
/* 028F5BA0 */ cpu->r[7] = 0x00000000u;
|
|
L_028F5BA4: ; // 0x28f5ba4
|
|
/* 028F5BA4 */ _t88 = cpu->r[3] + 0x00000000u;
|
|
/* 028F5BA4 */ rbrew_write32(cpu->mem, _t88, cpu->r[7]);
|
|
/* 028F5BA8 */ cpu->r[3] = cpu->r[3] + 0x00000004u;
|
|
/* 028F5BAC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 028F5BB0 */ _t89 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5BB0 */ _t90 = _t89 & 0x00000001u;
|
|
/* 028F5BB0 */ if (_t90) goto L_028F5BB4; else goto L_028F5BA4;
|
|
L_028F5BB4: ; // 0x28f5bb4
|
|
/* 028F5BB4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F5BB8 */ _t91 = cpu->r[1] + 0x00000020u;
|
|
/* 028F5BB8 */ rbrew_write32(cpu->mem, _t91, cpu->r[31]);
|
|
/* 028F5BBC */ cpu->r[0] = cpu->r[0] + 0xFFFFCEE8u;
|
|
/* 028F5BC0 */ cpu->r[4] = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F5BC4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028F5BC8 */ _t92 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F5BC8 */ rbrew_write32(cpu->mem, _t92, cpu->r[0]);
|
|
/* 028F5BCC */ Gambit_fn_028FD6EC(cpu);
|
|
/* 028F5BD0 */ /* nop */
|
|
/* 028F5BD4 */ _t93 = cpu->r[1] + 0x00000054u;
|
|
/* 028F5BD4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t93);
|
|
/* 028F5BD8 */ cpu->lr = cpu->r[0];
|
|
/* 028F5BDC */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028F5BE0 */ return;
|
|
}
|
|
|
|
// fn_028F5BE4 @ 0x28f5be4
|
|
void Gambit_fn_028F5BE4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F5BE4: ; // 0x28f5be4
|
|
/* 028F5BE4 */ cpu->r[0] = cpu->lr;
|
|
/* 028F5BE8 */ _t0 = cpu->r[1] + 0xFFFFFBE8u;
|
|
/* 028F5BE8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F5BE8 */ cpu->r[1] = _t0;
|
|
/* 028F5BEC */ _t1 = cpu->r[1] + 0x00000414u;
|
|
/* 028F5BEC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F5BF0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F5BF4 */ _t2 = cpu->r[1] + 0x0000041Cu;
|
|
/* 028F5BF4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F5BF8 */ _t3 = cpu->r[31] + 0x00000018u;
|
|
/* 028F5BF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F5BFC */ cpu->r[5] = rbrew_rlwinm(cpu->r[0], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F5C00 */ cpu->r[6] = cpu->r[5] ^ 0x00000001u;
|
|
/* 028F5C04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F5C08 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5C08 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F5C08 */ if (_t5) goto L_028F5C0C; else goto L_028F5CF8;
|
|
L_028F5C0C: ; // 0x28f5c0c
|
|
/* 028F5C0C */ _t6 = cpu->r[31] + 0x00000028u;
|
|
/* 028F5C0C */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F5C10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5C14 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5C14 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F5C14 */ if (_t8) goto L_028F5C34; else goto L_028F5C18;
|
|
L_028F5C18: ; // 0x28f5c18
|
|
/* 028F5C18 */ _t9 = cpu->r[3] + 0x00000004u;
|
|
/* 028F5C18 */ cpu->r[7] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F5C1C */ _t10 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028F5C1C */ cpu->r[8] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F5C20 */ cpu->ctr = cpu->r[8];
|
|
/* 028F5C24 */ cpu->r[4] = 0x00000003u;
|
|
/* 028F5C28 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F5C2C */ cpu->r[0] = 0x00000000u;
|
|
/* 028F5C30 */ _t11 = cpu->r[31] + 0x00000028u;
|
|
/* 028F5C30 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028F5C34: ; // 0x28f5c34
|
|
/* 028F5C34 */ _t12 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F5C34 */ cpu->r[10] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F5C38 */ _t13 = cpu->r[31] + 0x00000014u;
|
|
/* 028F5C38 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F5C3C */ _t14 = cpu->r[10] + 0x00000048u;
|
|
/* 028F5C3C */ cpu->r[5] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F5C40 */ cpu->r[11] = cpu->r[10] + 0x00000048u;
|
|
/* 028F5C44 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[5]);
|
|
/* 028F5C48 */ _t15 = cpu->r[10] + 0x0000004Cu;
|
|
/* 028F5C48 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F5C4C */ _t16 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5C4C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F5C4C */ if (_t17) goto L_028F5C50; else goto L_028F5C58;
|
|
L_028F5C50: ; // 0x28f5c50
|
|
/* 028F5C50 */ cpu->r[6] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F5C54 */ cpu->r[12] = cpu->r[12] + cpu->r[6];
|
|
L_028F5C58: ; // 0x28f5c58
|
|
/* 028F5C58 */ _t18 = cpu->r[12] + 0x00000000u;
|
|
/* 028F5C58 */ cpu->r[7] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F5C5C */ cpu->r[0] = 0x10140000u;
|
|
/* 028F5C60 */ cpu->r[8] = 0x101D0000u;
|
|
/* 028F5C64 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028F5C64 */ rbrew_write32(cpu->mem, _t19, cpu->r[7]);
|
|
/* 028F5C68 */ cpu->r[0] = cpu->r[0] + 0xFFFFCDE4u;
|
|
/* 028F5C6C */ _t20 = cpu->r[8] + 0xFFFFA304u;
|
|
/* 028F5C6C */ cpu->r[8] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F5C70 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5C70 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
/* 028F5C74 */ _t22 = cpu->r[11] + 0x00000004u;
|
|
/* 028F5C74 */ cpu->r[5] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F5C78 */ _t23 = cpu->r[8] + 0x00000018u;
|
|
/* 028F5C78 */ cpu->r[8] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F5C7C */ _t24 = cpu->r[10] + 0x00000054u;
|
|
/* 028F5C7C */ cpu->r[4] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F5C80 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F5C84 */ _t25 = cpu->r[10] + 0x00000040u;
|
|
/* 028F5C84 */ cpu->r[6] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F5C88 */ cpu->r[7] = cpu->r[1] + 0x00000010u;
|
|
/* 028F5C8C */ Gambit_fn_02904D90(cpu);
|
|
/* 028F5C90 */ _t26 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F5C90 */ cpu->r[10] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F5C94 */ _t27 = cpu->r[31] + 0x00000028u;
|
|
/* 028F5C94 */ rbrew_write32(cpu->mem, _t27, cpu->r[3]);
|
|
/* 028F5C98 */ _t28 = cpu->r[10] + 0x00000040u;
|
|
/* 028F5C98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F5C9C */ _t29 = cpu->r[10] + 0x00000044u;
|
|
/* 028F5C9C */ cpu->r[10] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F5CA0 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x00000034u);
|
|
/* 028F5CA4 */ cpu->r[9] = cpu->r[10] + cpu->r[0];
|
|
/* 028F5CA8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[9]);
|
|
/* 028F5CAC */ cpu->r[0] = cpu->r[10];
|
|
/* 028F5CB0 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5CB0 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028F5CB0 */ if (_t31) goto L_028F5CF8; else goto L_028F5CB4;
|
|
L_028F5CB4: ; // 0x28f5cb4
|
|
/* 028F5CB4 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
L_028F5CB8: ; // 0x28f5cb8
|
|
/* 028F5CB8 */ _t32 = cpu->r[10] + 0x0000002Cu;
|
|
/* 028F5CB8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F5CBC */ _t33 = cpu->r[31] + 0x00000014u;
|
|
/* 028F5CBC */ cpu->r[6] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F5CC0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[5]);
|
|
/* 028F5CC4 */ _t34 = cpu->r[10] + 0x00000030u;
|
|
/* 028F5CC4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F5CC8 */ _t35 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5CC8 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F5CC8 */ if (_t36) goto L_028F5CCC; else goto L_028F5CD0;
|
|
L_028F5CCC: ; // 0x28f5ccc
|
|
/* 028F5CCC */ cpu->r[7] = cpu->r[7] + cpu->r[6];
|
|
L_028F5CD0: ; // 0x28f5cd0
|
|
/* 028F5CD0 */ cpu->r[11] = 0x4EC50000u;
|
|
/* 028F5CD4 */ cpu->r[6] = cpu->r[10] - cpu->r[0];
|
|
/* 028F5CD8 */ cpu->r[11] = cpu->r[11] + 0xFFFFEC4Fu;
|
|
/* 028F5CDC */ /* nop */
|
|
/* 028F5CE0 */ cpu->r[8] = rbrew_rlwinm(cpu->r[8], 0x0000001Cu, 0x00000004u, 0x0000001Fu);
|
|
/* 028F5CE4 */ cpu->r[10] = cpu->r[10] + 0x00000034u;
|
|
/* 028F5CE8 */ _t37 = cpu->r[4] + cpu->r[8];
|
|
/* 028F5CE8 */ cpu->r[12] = rbrew_read8(cpu->mem, _t37);
|
|
/* 028F5CEC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[9]);
|
|
/* 028F5CF0 */ _t38 = cpu->r[7] + 0x00000000u;
|
|
/* 028F5CF0 */ rbrew_write8(cpu->mem, _t38, (uint8_t)cpu->r[12]);
|
|
/* 028F5CF4 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5CF4 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028F5CF4 */ if (_t40) goto L_028F5CF8; else goto L_028F5CB8;
|
|
L_028F5CF8: ; // 0x28f5cf8
|
|
/* 028F5CF8 */ _t41 = cpu->r[1] + 0x0000041Cu;
|
|
/* 028F5CF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F5CFC */ _t42 = cpu->r[1] + 0x00000414u;
|
|
/* 028F5CFC */ cpu->r[31] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F5D00 */ cpu->lr = cpu->r[0];
|
|
/* 028F5D04 */ cpu->r[1] = cpu->r[1] + 0x00000418u;
|
|
/* 028F5D08 */ return;
|
|
}
|
|
|
|
// fn_028F5BE8 @ 0x28f5be8
|
|
void Gambit_fn_028F5BE8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F5BE8: ; // 0x28f5be8
|
|
/* 028F5BE8 */ _t0 = cpu->r[1] + 0xFFFFFBE8u;
|
|
/* 028F5BE8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F5BE8 */ cpu->r[1] = _t0;
|
|
/* 028F5BEC */ _t1 = cpu->r[1] + 0x00000414u;
|
|
/* 028F5BEC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F5BF0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F5BF4 */ _t2 = cpu->r[1] + 0x0000041Cu;
|
|
/* 028F5BF4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F5BF8 */ _t3 = cpu->r[31] + 0x00000018u;
|
|
/* 028F5BF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F5BFC */ cpu->r[5] = rbrew_rlwinm(cpu->r[0], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F5C00 */ cpu->r[6] = cpu->r[5] ^ 0x00000001u;
|
|
/* 028F5C04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F5C08 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5C08 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F5C08 */ if (_t5) goto L_028F5C0C; else goto L_028F5CF8;
|
|
L_028F5C0C: ; // 0x28f5c0c
|
|
/* 028F5C0C */ _t6 = cpu->r[31] + 0x00000028u;
|
|
/* 028F5C0C */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F5C10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5C14 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5C14 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F5C14 */ if (_t8) goto L_028F5C34; else goto L_028F5C18;
|
|
L_028F5C18: ; // 0x28f5c18
|
|
/* 028F5C18 */ _t9 = cpu->r[3] + 0x00000004u;
|
|
/* 028F5C18 */ cpu->r[7] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F5C1C */ _t10 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028F5C1C */ cpu->r[8] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F5C20 */ cpu->ctr = cpu->r[8];
|
|
/* 028F5C24 */ cpu->r[4] = 0x00000003u;
|
|
/* 028F5C28 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F5C2C */ cpu->r[0] = 0x00000000u;
|
|
/* 028F5C30 */ _t11 = cpu->r[31] + 0x00000028u;
|
|
/* 028F5C30 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028F5C34: ; // 0x28f5c34
|
|
/* 028F5C34 */ _t12 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F5C34 */ cpu->r[10] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F5C38 */ _t13 = cpu->r[31] + 0x00000014u;
|
|
/* 028F5C38 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F5C3C */ _t14 = cpu->r[10] + 0x00000048u;
|
|
/* 028F5C3C */ cpu->r[5] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F5C40 */ cpu->r[11] = cpu->r[10] + 0x00000048u;
|
|
/* 028F5C44 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[5]);
|
|
/* 028F5C48 */ _t15 = cpu->r[10] + 0x0000004Cu;
|
|
/* 028F5C48 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F5C4C */ _t16 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5C4C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F5C4C */ if (_t17) goto L_028F5C50; else goto L_028F5C58;
|
|
L_028F5C50: ; // 0x28f5c50
|
|
/* 028F5C50 */ cpu->r[6] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F5C54 */ cpu->r[12] = cpu->r[12] + cpu->r[6];
|
|
L_028F5C58: ; // 0x28f5c58
|
|
/* 028F5C58 */ _t18 = cpu->r[12] + 0x00000000u;
|
|
/* 028F5C58 */ cpu->r[7] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F5C5C */ cpu->r[0] = 0x10140000u;
|
|
/* 028F5C60 */ cpu->r[8] = 0x101D0000u;
|
|
/* 028F5C64 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028F5C64 */ rbrew_write32(cpu->mem, _t19, cpu->r[7]);
|
|
/* 028F5C68 */ cpu->r[0] = cpu->r[0] + 0xFFFFCDE4u;
|
|
/* 028F5C6C */ _t20 = cpu->r[8] + 0xFFFFA304u;
|
|
/* 028F5C6C */ cpu->r[8] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F5C70 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5C70 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
/* 028F5C74 */ _t22 = cpu->r[11] + 0x00000004u;
|
|
/* 028F5C74 */ cpu->r[5] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F5C78 */ _t23 = cpu->r[8] + 0x00000018u;
|
|
/* 028F5C78 */ cpu->r[8] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F5C7C */ _t24 = cpu->r[10] + 0x00000054u;
|
|
/* 028F5C7C */ cpu->r[4] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F5C80 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F5C84 */ _t25 = cpu->r[10] + 0x00000040u;
|
|
/* 028F5C84 */ cpu->r[6] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F5C88 */ cpu->r[7] = cpu->r[1] + 0x00000010u;
|
|
/* 028F5C8C */ Gambit_fn_02904D90(cpu);
|
|
/* 028F5C90 */ _t26 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F5C90 */ cpu->r[10] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F5C94 */ _t27 = cpu->r[31] + 0x00000028u;
|
|
/* 028F5C94 */ rbrew_write32(cpu->mem, _t27, cpu->r[3]);
|
|
/* 028F5C98 */ _t28 = cpu->r[10] + 0x00000040u;
|
|
/* 028F5C98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F5C9C */ _t29 = cpu->r[10] + 0x00000044u;
|
|
/* 028F5C9C */ cpu->r[10] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F5CA0 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x00000034u);
|
|
/* 028F5CA4 */ cpu->r[9] = cpu->r[10] + cpu->r[0];
|
|
/* 028F5CA8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[9]);
|
|
/* 028F5CAC */ cpu->r[0] = cpu->r[10];
|
|
/* 028F5CB0 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5CB0 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028F5CB0 */ if (_t31) goto L_028F5CF8; else goto L_028F5CB4;
|
|
L_028F5CB4: ; // 0x28f5cb4
|
|
/* 028F5CB4 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
L_028F5CB8: ; // 0x28f5cb8
|
|
/* 028F5CB8 */ _t32 = cpu->r[10] + 0x0000002Cu;
|
|
/* 028F5CB8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F5CBC */ _t33 = cpu->r[31] + 0x00000014u;
|
|
/* 028F5CBC */ cpu->r[6] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F5CC0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[5]);
|
|
/* 028F5CC4 */ _t34 = cpu->r[10] + 0x00000030u;
|
|
/* 028F5CC4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F5CC8 */ _t35 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5CC8 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F5CC8 */ if (_t36) goto L_028F5CCC; else goto L_028F5CD0;
|
|
L_028F5CCC: ; // 0x28f5ccc
|
|
/* 028F5CCC */ cpu->r[7] = cpu->r[7] + cpu->r[6];
|
|
L_028F5CD0: ; // 0x28f5cd0
|
|
/* 028F5CD0 */ cpu->r[11] = 0x4EC50000u;
|
|
/* 028F5CD4 */ cpu->r[6] = cpu->r[10] - cpu->r[0];
|
|
/* 028F5CD8 */ cpu->r[11] = cpu->r[11] + 0xFFFFEC4Fu;
|
|
/* 028F5CDC */ /* nop */
|
|
/* 028F5CE0 */ cpu->r[8] = rbrew_rlwinm(cpu->r[8], 0x0000001Cu, 0x00000004u, 0x0000001Fu);
|
|
/* 028F5CE4 */ cpu->r[10] = cpu->r[10] + 0x00000034u;
|
|
/* 028F5CE8 */ _t37 = cpu->r[4] + cpu->r[8];
|
|
/* 028F5CE8 */ cpu->r[12] = rbrew_read8(cpu->mem, _t37);
|
|
/* 028F5CEC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[9]);
|
|
/* 028F5CF0 */ _t38 = cpu->r[7] + 0x00000000u;
|
|
/* 028F5CF0 */ rbrew_write8(cpu->mem, _t38, (uint8_t)cpu->r[12]);
|
|
/* 028F5CF4 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5CF4 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028F5CF4 */ if (_t40) goto L_028F5CF8; else goto L_028F5CB8;
|
|
L_028F5CF8: ; // 0x28f5cf8
|
|
/* 028F5CF8 */ _t41 = cpu->r[1] + 0x0000041Cu;
|
|
/* 028F5CF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F5CFC */ _t42 = cpu->r[1] + 0x00000414u;
|
|
/* 028F5CFC */ cpu->r[31] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F5D00 */ cpu->lr = cpu->r[0];
|
|
/* 028F5D04 */ cpu->r[1] = cpu->r[1] + 0x00000418u;
|
|
/* 028F5D08 */ return;
|
|
}
|
|
|
|
// fn_028F5D0C @ 0x28f5d0c
|
|
void Gambit_fn_028F5D0C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _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_028F5D0C: ; // 0x28f5d0c
|
|
/* 028F5D0C */ cpu->r[0] = cpu->lr;
|
|
/* 028F5D10 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F5D10 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F5D10 */ cpu->r[1] = _t0;
|
|
/* 028F5D14 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5D14 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F5D18 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F5D18 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F5D1C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5D1C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028F5D20 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F5D20 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F5D24 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F5D28 */ cpu->r[31] = cpu->r[29] + 0x000000E4u;
|
|
/* 028F5D2C */ cpu->r[30] = cpu->r[29] + 0x0000000Cu;
|
|
/* 028F5D30 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F5D34 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5D34 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F5D34 */ if (_t6) goto L_028F5D88; else goto L_028F5D38;
|
|
L_028F5D38: ; // 0x28f5d38
|
|
/* 028F5D38 */ _t7 = cpu->r[30] + 0x00000044u;
|
|
/* 028F5D38 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F5D3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F5D40 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5D40 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F5D40 */ if (_t9) goto L_028F5D7C; else goto L_028F5D44;
|
|
L_028F5D44: ; // 0x28f5d44
|
|
/* 028F5D44 */ _t10 = cpu->r[10] + 0x00000018u;
|
|
/* 028F5D44 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F5D48 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F5D48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F5D4C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5D4C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F5D4C */ if (_t12) goto L_028F5D7C; else goto L_028F5D50;
|
|
L_028F5D50: ; // 0x28f5d50
|
|
/* 028F5D50 */ _t13 = cpu->r[10] + 0x00000028u;
|
|
/* 028F5D50 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F5D54 */ _t14 = cpu->r[30] + 0x00000008u;
|
|
/* 028F5D54 */ rbrew_write32(cpu->mem, _t14, cpu->r[9]);
|
|
/* 028F5D58 */ _t15 = cpu->r[29] + 0x00000008u;
|
|
/* 028F5D58 */ cpu->r[5] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F5D5C */ _t16 = cpu->r[29] + 0x00000004u;
|
|
/* 028F5D5C */ cpu->r[0] = rbrew_read16(cpu->mem, _t16);
|
|
/* 028F5D60 */ _t17 = cpu->r[5] + 0x0000001Cu;
|
|
/* 028F5D60 */ cpu->r[6] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F5D64 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[6]);
|
|
/* 028F5D68 */ _t18 = cpu->r[5] + 0x00000020u;
|
|
/* 028F5D68 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F5D6C */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5D6C */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F5D6C */ if (_t20) goto L_028F5D70; else goto L_028F5D78;
|
|
L_028F5D70: ; // 0x28f5d70
|
|
/* 028F5D70 */ cpu->r[7] = rbrew_rlwinm(cpu->r[0], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F5D74 */ cpu->r[3] = cpu->r[3] + cpu->r[7];
|
|
L_028F5D78: ; // 0x28f5d78
|
|
/* 028F5D78 */ Gambit_fn_028F4CBC(cpu);
|
|
L_028F5D7C: ; // 0x28f5d7c
|
|
/* 028F5D7C */ cpu->r[30] = cpu->r[30] + 0x00000048u;
|
|
/* 028F5D80 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F5D84 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5D84 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F5D84 */ if (_t22) goto L_028F5D88; else goto L_028F5D38;
|
|
L_028F5D88: ; // 0x28f5d88
|
|
/* 028F5D88 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5D88 */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F5D8C */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F5D8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F5D90 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 028F5D90 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F5D94 */ cpu->lr = cpu->r[0];
|
|
/* 028F5D98 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5D98 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F5D9C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F5DA0 */ return;
|
|
}
|
|
|
|
// fn_028F5D10 @ 0x28f5d10
|
|
void Gambit_fn_028F5D10(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _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_028F5D10: ; // 0x28f5d10
|
|
/* 028F5D10 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F5D10 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F5D10 */ cpu->r[1] = _t0;
|
|
/* 028F5D14 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5D14 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F5D18 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F5D18 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F5D1C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5D1C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028F5D20 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F5D20 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F5D24 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F5D28 */ cpu->r[31] = cpu->r[29] + 0x000000E4u;
|
|
/* 028F5D2C */ cpu->r[30] = cpu->r[29] + 0x0000000Cu;
|
|
/* 028F5D30 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F5D34 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5D34 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F5D34 */ if (_t6) goto L_028F5D88; else goto L_028F5D38;
|
|
L_028F5D38: ; // 0x28f5d38
|
|
/* 028F5D38 */ _t7 = cpu->r[30] + 0x00000044u;
|
|
/* 028F5D38 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F5D3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F5D40 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5D40 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F5D40 */ if (_t9) goto L_028F5D7C; else goto L_028F5D44;
|
|
L_028F5D44: ; // 0x28f5d44
|
|
/* 028F5D44 */ _t10 = cpu->r[10] + 0x00000018u;
|
|
/* 028F5D44 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F5D48 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F5D48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F5D4C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5D4C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F5D4C */ if (_t12) goto L_028F5D7C; else goto L_028F5D50;
|
|
L_028F5D50: ; // 0x28f5d50
|
|
/* 028F5D50 */ _t13 = cpu->r[10] + 0x00000028u;
|
|
/* 028F5D50 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F5D54 */ _t14 = cpu->r[30] + 0x00000008u;
|
|
/* 028F5D54 */ rbrew_write32(cpu->mem, _t14, cpu->r[9]);
|
|
/* 028F5D58 */ _t15 = cpu->r[29] + 0x00000008u;
|
|
/* 028F5D58 */ cpu->r[5] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F5D5C */ _t16 = cpu->r[29] + 0x00000004u;
|
|
/* 028F5D5C */ cpu->r[0] = rbrew_read16(cpu->mem, _t16);
|
|
/* 028F5D60 */ _t17 = cpu->r[5] + 0x0000001Cu;
|
|
/* 028F5D60 */ cpu->r[6] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F5D64 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[6]);
|
|
/* 028F5D68 */ _t18 = cpu->r[5] + 0x00000020u;
|
|
/* 028F5D68 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F5D6C */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F5D6C */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F5D6C */ if (_t20) goto L_028F5D70; else goto L_028F5D78;
|
|
L_028F5D70: ; // 0x28f5d70
|
|
/* 028F5D70 */ cpu->r[7] = rbrew_rlwinm(cpu->r[0], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F5D74 */ cpu->r[3] = cpu->r[3] + cpu->r[7];
|
|
L_028F5D78: ; // 0x28f5d78
|
|
/* 028F5D78 */ Gambit_fn_028F4CBC(cpu);
|
|
L_028F5D7C: ; // 0x28f5d7c
|
|
/* 028F5D7C */ cpu->r[30] = cpu->r[30] + 0x00000048u;
|
|
/* 028F5D80 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F5D84 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5D84 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F5D84 */ if (_t22) goto L_028F5D88; else goto L_028F5D38;
|
|
L_028F5D88: ; // 0x28f5d88
|
|
/* 028F5D88 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5D88 */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F5D8C */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F5D8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F5D90 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 028F5D90 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F5D94 */ cpu->lr = cpu->r[0];
|
|
/* 028F5D98 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5D98 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F5D9C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F5DA0 */ return;
|
|
}
|
|
|
|
// fn_028F5DA4 @ 0x28f5da4
|
|
void Gambit_fn_028F5DA4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _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_028F5DA4: ; // 0x28f5da4
|
|
/* 028F5DA4 */ cpu->r[0] = cpu->lr;
|
|
/* 028F5DA8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F5DA8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F5DA8 */ cpu->r[1] = _t0;
|
|
/* 028F5DAC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5DAC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F5DB0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F5DB0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F5DB4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5DB4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028F5DB8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F5DB8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F5DBC */ cpu->r[29] = cpu->r[3];
|
|
/* 028F5DC0 */ rbrew_dispatch(cpu, 0x02d0ab30u);
|
|
/* 028F5DC4 */ _t5 = cpu->r[29] + 0x00000040u;
|
|
/* 028F5DC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F5DC8 */ _t6 = cpu->r[29] + 0x00000044u;
|
|
/* 028F5DC8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F5DCC */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x00000034u);
|
|
/* 028F5DD0 */ cpu->r[31] = cpu->r[30] + cpu->r[10];
|
|
/* 028F5DD4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F5DD8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5DD8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F5DD8 */ if (_t8) goto L_028F5DFC; else goto L_028F5DDC;
|
|
L_028F5DDC: ; // 0x28f5ddc
|
|
/* 028F5DDC */ _t9 = cpu->r[30] + 0x00000018u;
|
|
/* 028F5DDC */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F5DE0 */ cpu->r[12] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F5DE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F5DE4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5DE4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F5DE4 */ if (_t11) goto L_028F5DF0; else goto L_028F5DE8;
|
|
L_028F5DE8: ; // 0x28f5de8
|
|
/* 028F5DE8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F5DEC */ Gambit_fn_028F5BE4(cpu);
|
|
L_028F5DF0: ; // 0x28f5df0
|
|
/* 028F5DF0 */ cpu->r[30] = cpu->r[30] + 0x00000034u;
|
|
/* 028F5DF4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F5DF8 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5DF8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F5DF8 */ if (_t13) goto L_028F5DFC; else goto L_028F5DDC;
|
|
L_028F5DFC: ; // 0x28f5dfc
|
|
/* 028F5DFC */ _t14 = cpu->r[29] + 0x00000038u;
|
|
/* 028F5DFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F5E00 */ _t15 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028F5E00 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F5E04 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x000000F0u);
|
|
/* 028F5E08 */ cpu->r[31] = cpu->r[30] + cpu->r[0];
|
|
/* 028F5E0C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F5E10 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5E10 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F5E10 */ if (_t17) goto L_028F5E28; else goto L_028F5E14;
|
|
L_028F5E14: ; // 0x28f5e14
|
|
/* 028F5E14 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F5E18 */ Gambit_fn_028F5D0C(cpu);
|
|
/* 028F5E1C */ cpu->r[30] = cpu->r[30] + 0x000000F0u;
|
|
/* 028F5E20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F5E24 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5E24 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F5E24 */ if (_t19) goto L_028F5E28; else goto L_028F5E14;
|
|
L_028F5E28: ; // 0x28f5e28
|
|
/* 028F5E28 */ _t20 = cpu->r[29] + 0x00000040u;
|
|
/* 028F5E28 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F5E2C */ _t21 = cpu->r[29] + 0x00000044u;
|
|
/* 028F5E2C */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F5E30 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[10] * (int32_t)0x00000034u);
|
|
/* 028F5E34 */ cpu->r[0] = cpu->r[12] + cpu->r[9];
|
|
/* 028F5E38 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F5E3C */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5E3C */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F5E3C */ if (_t23) goto L_028F5E58; else goto L_028F5E40;
|
|
L_028F5E40: ; // 0x28f5e40
|
|
/* 028F5E40 */ _t24 = cpu->r[12] + 0x00000018u;
|
|
/* 028F5E40 */ cpu->r[11] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F5E44 */ cpu->r[11] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x00000000u, 0x0000001Eu);
|
|
/* 028F5E48 */ _t25 = cpu->r[12] + 0x00000018u;
|
|
/* 028F5E48 */ rbrew_write32(cpu->mem, _t25, cpu->r[11]);
|
|
/* 028F5E4C */ cpu->r[12] = cpu->r[12] + 0x00000034u;
|
|
/* 028F5E50 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F5E54 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5E54 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028F5E54 */ if (_t27) goto L_028F5E58; else goto L_028F5E40;
|
|
L_028F5E58: ; // 0x28f5e58
|
|
/* 028F5E58 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5E58 */ cpu->r[29] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F5E5C */ _t29 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F5E5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F5E60 */ _t30 = cpu->r[1] + 0x00000010u;
|
|
/* 028F5E60 */ cpu->r[30] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F5E64 */ cpu->lr = cpu->r[0];
|
|
/* 028F5E68 */ _t31 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5E68 */ cpu->r[31] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F5E6C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F5E70 */ return;
|
|
}
|
|
|
|
// fn_028F5DA8 @ 0x28f5da8
|
|
void Gambit_fn_028F5DA8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _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_028F5DA8: ; // 0x28f5da8
|
|
/* 028F5DA8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F5DA8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F5DA8 */ cpu->r[1] = _t0;
|
|
/* 028F5DAC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5DAC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F5DB0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F5DB0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F5DB4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5DB4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028F5DB8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F5DB8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F5DBC */ cpu->r[29] = cpu->r[3];
|
|
/* 028F5DC0 */ rbrew_dispatch(cpu, 0x02d0ab30u);
|
|
/* 028F5DC4 */ _t5 = cpu->r[29] + 0x00000040u;
|
|
/* 028F5DC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F5DC8 */ _t6 = cpu->r[29] + 0x00000044u;
|
|
/* 028F5DC8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F5DCC */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x00000034u);
|
|
/* 028F5DD0 */ cpu->r[31] = cpu->r[30] + cpu->r[10];
|
|
/* 028F5DD4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F5DD8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5DD8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F5DD8 */ if (_t8) goto L_028F5DFC; else goto L_028F5DDC;
|
|
L_028F5DDC: ; // 0x28f5ddc
|
|
/* 028F5DDC */ _t9 = cpu->r[30] + 0x00000018u;
|
|
/* 028F5DDC */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F5DE0 */ cpu->r[12] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F5DE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F5DE4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5DE4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F5DE4 */ if (_t11) goto L_028F5DF0; else goto L_028F5DE8;
|
|
L_028F5DE8: ; // 0x28f5de8
|
|
/* 028F5DE8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F5DEC */ Gambit_fn_028F5BE4(cpu);
|
|
L_028F5DF0: ; // 0x28f5df0
|
|
/* 028F5DF0 */ cpu->r[30] = cpu->r[30] + 0x00000034u;
|
|
/* 028F5DF4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F5DF8 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5DF8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F5DF8 */ if (_t13) goto L_028F5DFC; else goto L_028F5DDC;
|
|
L_028F5DFC: ; // 0x28f5dfc
|
|
/* 028F5DFC */ _t14 = cpu->r[29] + 0x00000038u;
|
|
/* 028F5DFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F5E00 */ _t15 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028F5E00 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F5E04 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x000000F0u);
|
|
/* 028F5E08 */ cpu->r[31] = cpu->r[30] + cpu->r[0];
|
|
/* 028F5E0C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F5E10 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5E10 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F5E10 */ if (_t17) goto L_028F5E28; else goto L_028F5E14;
|
|
L_028F5E14: ; // 0x28f5e14
|
|
/* 028F5E14 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F5E18 */ Gambit_fn_028F5D0C(cpu);
|
|
/* 028F5E1C */ cpu->r[30] = cpu->r[30] + 0x000000F0u;
|
|
/* 028F5E20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F5E24 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5E24 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F5E24 */ if (_t19) goto L_028F5E28; else goto L_028F5E14;
|
|
L_028F5E28: ; // 0x28f5e28
|
|
/* 028F5E28 */ _t20 = cpu->r[29] + 0x00000040u;
|
|
/* 028F5E28 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F5E2C */ _t21 = cpu->r[29] + 0x00000044u;
|
|
/* 028F5E2C */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F5E30 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[10] * (int32_t)0x00000034u);
|
|
/* 028F5E34 */ cpu->r[0] = cpu->r[12] + cpu->r[9];
|
|
/* 028F5E38 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F5E3C */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5E3C */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F5E3C */ if (_t23) goto L_028F5E58; else goto L_028F5E40;
|
|
L_028F5E40: ; // 0x28f5e40
|
|
/* 028F5E40 */ _t24 = cpu->r[12] + 0x00000018u;
|
|
/* 028F5E40 */ cpu->r[11] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F5E44 */ cpu->r[11] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x00000000u, 0x0000001Eu);
|
|
/* 028F5E48 */ _t25 = cpu->r[12] + 0x00000018u;
|
|
/* 028F5E48 */ rbrew_write32(cpu->mem, _t25, cpu->r[11]);
|
|
/* 028F5E4C */ cpu->r[12] = cpu->r[12] + 0x00000034u;
|
|
/* 028F5E50 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F5E54 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5E54 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028F5E54 */ if (_t27) goto L_028F5E58; else goto L_028F5E40;
|
|
L_028F5E58: ; // 0x28f5e58
|
|
/* 028F5E58 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F5E58 */ cpu->r[29] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F5E5C */ _t29 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F5E5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F5E60 */ _t30 = cpu->r[1] + 0x00000010u;
|
|
/* 028F5E60 */ cpu->r[30] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F5E64 */ cpu->lr = cpu->r[0];
|
|
/* 028F5E68 */ _t31 = cpu->r[1] + 0x00000014u;
|
|
/* 028F5E68 */ cpu->r[31] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F5E6C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F5E70 */ return;
|
|
}
|
|
|
|
// fn_028F5E74 @ 0x28f5e74
|
|
void Gambit_fn_028F5E74(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F5E74: ; // 0x28f5e74
|
|
/* 028F5E74 */ _t0 = cpu->r[1] + 0xFFFFFB58u;
|
|
/* 028F5E74 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F5E74 */ cpu->r[1] = _t0;
|
|
/* 028F5E78 */ /* nop */
|
|
/* 028F5E7C */ cpu->r[0] = cpu->lr;
|
|
/* 028F5E80 */ _t1 = cpu->r[1] + 0x000004ACu;
|
|
/* 028F5E80 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F5E84 */ cpu->r[28] = cpu->r[3];
|
|
/* 028F5E88 */ _t2 = cpu->r[4] + 0x00000000u;
|
|
/* 028F5E88 */ cpu->r[31] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F5E8C */ cpu->r[29] = cpu->r[5];
|
|
/* 028F5E90 */ Gambit_fn_028F5200(cpu);
|
|
/* 028F5E94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F5E98 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5E98 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F5E98 */ if (_t4) goto L_028F6434; else goto L_028F5E9C;
|
|
L_028F5E9C: ; // 0x28f5e9c
|
|
/* 028F5E9C */ cpu->r[3] = cpu->r[28] + 0x00000018u;
|
|
/* 028F5EA0 */ _t5 = cpu->r[28] + 0x00000018u;
|
|
/* 028F5EA0 */ rbrew_write32(cpu->mem, _t5, cpu->r[31]);
|
|
/* 028F5EA4 */ Gambit_fn_028F23CC(cpu);
|
|
/* 028F5EA8 */ _t6 = cpu->r[28] + 0x00000018u;
|
|
/* 028F5EA8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F5EAC */ _t7 = cpu->r[28] + 0x00000014u;
|
|
/* 028F5EAC */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F5EB0 */ cpu->r[31] = 0x00000000u;
|
|
/* 028F5EB4 */ _t8 = cpu->r[9] + 0x00000010u;
|
|
/* 028F5EB4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F5EB8 */ cpu->r[27] = cpu->r[31];
|
|
/* 028F5EBC */ cpu->r[26] = 0x101D0000u;
|
|
/* 028F5EC0 */ cpu->r[8] = cpu->r[9] + cpu->r[0];
|
|
/* 028F5EC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028F5EC8 */ cpu->r[7] = cpu->r[8] + 0x00000014u;
|
|
/* 028F5ECC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5ECC */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F5ECC */ if (_t10) goto L_028F5ED0; else goto L_028F5F60;
|
|
L_028F5ED0: ; // 0x28f5ed0
|
|
/* 028F5ED0 */ _t11 = cpu->r[7] + 0x00000004u;
|
|
/* 028F5ED0 */ cpu->r[24] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F5ED4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 028F5ED8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028F5EDC */ _t12 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F5EDC */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F5EDC */ if (_t13) goto L_028F5EE0; else goto L_028F5F5C;
|
|
L_028F5EE0: ; // 0x28f5ee0
|
|
/* 028F5EE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5EE4 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5EE4 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F5EE4 */ if (_t15) goto L_028F5EE8; else goto L_028F5EF0;
|
|
L_028F5EE8: ; // 0x28f5ee8
|
|
/* 028F5EE8 */ _t16 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 028F5EE8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F5EEC */ Gambit_fn_02826F20(cpu);
|
|
L_028F5EF0: ; // 0x28f5ef0
|
|
/* 028F5EF0 */ _t17 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F5EF0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F5EF4 */ _t18 = cpu->r[12] + 0x00000034u;
|
|
/* 028F5EF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F5EF8 */ cpu->ctr = cpu->r[0];
|
|
/* 028F5EFC */ cpu->r[5] = 0x00000004u;
|
|
/* 028F5F00 */ cpu->r[4] = rbrew_rlwinm(cpu->r[24], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F5F04 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F5F08 */ cpu->r[27] = cpu->r[3];
|
|
/* 028F5F0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 028F5F10 */ cpu->r[30] = cpu->r[24];
|
|
/* 028F5F14 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F5F18 */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F5F18 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F5F18 */ if (_t20) goto L_028F5F20; else goto L_028F5F1C;
|
|
L_028F5F1C: ; // 0x28f5f1c
|
|
/* 028F5F1C */ cpu->r[30] = 0x00000001u;
|
|
L_028F5F20: ; // 0x28f5f20
|
|
/* 028F5F20 */ cpu->r[25] = rbrew_rlwinm(cpu->r[10], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
L_028F5F24: ; // 0x28f5f24
|
|
/* 028F5F24 */ cpu->r[3] = cpu->r[27] + cpu->r[25];
|
|
/* 028F5F24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5F28 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5F28 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F5F28 */ if (_t22) goto L_028F5F30; else goto L_028F5F2C;
|
|
L_028F5F2C: ; // 0x28f5f2c
|
|
/* 028F5F2C */ Gambit_fn_028F2E8C(cpu);
|
|
L_028F5F30: ; // 0x28f5f30
|
|
/* 028F5F30 */ cpu->r[30] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 028F5F30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F5F34 */ cpu->r[25] = cpu->r[25] + 0x00000080u;
|
|
/* 028F5F38 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5F38 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028F5F38 */ if (_t24) goto L_028F5F3C; else goto L_028F5F24;
|
|
L_028F5F3C: ; // 0x28f5f3c
|
|
/* 028F5F3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028F5F40 */ _t25 = cpu->r[28] + 0x00000018u;
|
|
/* 028F5F40 */ cpu->r[9] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F5F44 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5F44 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028F5F44 */ if (_t27) goto L_028F5F50; else goto L_028F5F48;
|
|
L_028F5F48: ; // 0x28f5f48
|
|
/* 028F5F48 */ _t28 = cpu->r[28] + 0x00000020u;
|
|
/* 028F5F48 */ rbrew_write32(cpu->mem, _t28, cpu->r[27]);
|
|
/* 028F5F4C */ _t29 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028F5F4C */ rbrew_write32(cpu->mem, _t29, cpu->r[24]);
|
|
L_028F5F50: ; // 0x28f5f50
|
|
/* 028F5F50 */ _t30 = cpu->r[9] + 0x00000010u;
|
|
/* 028F5F50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F5F54 */ cpu->r[8] = cpu->r[9] + cpu->r[0];
|
|
/* 028F5F58 */ cpu->r[7] = cpu->r[8] + 0x00000014u;
|
|
L_028F5F5C: ; // 0x28f5f5c
|
|
/* 028F5F5C */ cpu->r[27] = 0x00000001u;
|
|
L_028F5F60: ; // 0x28f5f60
|
|
/* 028F5F60 */ _t31 = cpu->r[7] + 0x00000000u;
|
|
/* 028F5F60 */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F5F64 */ cpu->r[12] = cpu->r[7] + cpu->r[0];
|
|
/* 028F5F68 */ _t32 = cpu->r[12] + 0x00000004u;
|
|
/* 028F5F68 */ cpu->r[24] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F5F6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 028F5F70 */ cpu->r[3] = cpu->r[29];
|
|
/* 028F5F74 */ _t33 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F5F74 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F5F74 */ if (_t34) goto L_028F5F78; else goto L_028F5FE4;
|
|
L_028F5F78: ; // 0x28f5f78
|
|
/* 028F5F78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5F7C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5F7C */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F5F7C */ if (_t36) goto L_028F5F80; else goto L_028F5F88;
|
|
L_028F5F80: ; // 0x28f5f80
|
|
/* 028F5F80 */ _t37 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 028F5F80 */ cpu->r[3] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F5F84 */ Gambit_fn_02826F20(cpu);
|
|
L_028F5F88: ; // 0x28f5f88
|
|
/* 028F5F88 */ _t38 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F5F88 */ cpu->r[5] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F5F8C */ _t39 = cpu->r[5] + 0x00000034u;
|
|
/* 028F5F8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F5F90 */ cpu->ctr = cpu->r[0];
|
|
/* 028F5F94 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F5F98 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[24] * (int32_t)0x00000034u);
|
|
/* 028F5F9C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F5FA0 */ cpu->r[25] = cpu->r[3];
|
|
/* 028F5FA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 028F5FA8 */ cpu->r[30] = cpu->r[24];
|
|
/* 028F5FAC */ cpu->r[0] = 0x00000000u;
|
|
/* 028F5FB0 */ _t40 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F5FB0 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028F5FB0 */ if (_t41) goto L_028F5FB8; else goto L_028F5FB4;
|
|
L_028F5FB4: ; // 0x28f5fb4
|
|
/* 028F5FB4 */ cpu->r[30] = 0x00000001u;
|
|
L_028F5FB8: ; // 0x28f5fb8
|
|
/* 028F5FB8 */ cpu->r[23] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x00000034u);
|
|
L_028F5FBC: ; // 0x28f5fbc
|
|
/* 028F5FBC */ cpu->r[3] = cpu->r[25] + cpu->r[23];
|
|
/* 028F5FBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5FC0 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5FC0 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028F5FC0 */ if (_t43) goto L_028F5FC8; else goto L_028F5FC4;
|
|
L_028F5FC4: ; // 0x28f5fc4
|
|
/* 028F5FC4 */ Gambit_fn_028F5618(cpu);
|
|
L_028F5FC8: ; // 0x28f5fc8
|
|
/* 028F5FC8 */ cpu->r[30] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 028F5FC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F5FCC */ cpu->r[23] = cpu->r[23] + 0x00000034u;
|
|
/* 028F5FD0 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5FD0 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028F5FD0 */ if (_t45) goto L_028F5FD4; else goto L_028F5FBC;
|
|
L_028F5FD4: ; // 0x28f5fd4
|
|
/* 028F5FD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], 0x00000000u);
|
|
/* 028F5FD8 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5FD8 */ _t47 = _t46 & 0x00000001u;
|
|
/* 028F5FD8 */ if (_t47) goto L_028F5FE4; else goto L_028F5FDC;
|
|
L_028F5FDC: ; // 0x28f5fdc
|
|
/* 028F5FDC */ _t48 = cpu->r[28] + 0x00000044u;
|
|
/* 028F5FDC */ rbrew_write32(cpu->mem, _t48, cpu->r[25]);
|
|
/* 028F5FE0 */ _t49 = cpu->r[28] + 0x00000040u;
|
|
/* 028F5FE0 */ rbrew_write32(cpu->mem, _t49, cpu->r[24]);
|
|
L_028F5FE4: ; // 0x28f5fe4
|
|
/* 028F5FE4 */ _t50 = cpu->r[28] + 0x00000040u;
|
|
/* 028F5FE4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F5FE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F5FEC */ cpu->r[3] = cpu->r[29];
|
|
/* 028F5FF0 */ _t51 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F5FF0 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028F5FF0 */ if (_t52) goto L_028F5FF4; else goto L_028F6040;
|
|
L_028F5FF4: ; // 0x28f5ff4
|
|
/* 028F5FF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F5FF8 */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F5FF8 */ _t54 = _t53 & 0x00000001u;
|
|
/* 028F5FF8 */ if (_t54) goto L_028F5FFC; else goto L_028F6004;
|
|
L_028F5FFC: ; // 0x28f5ffc
|
|
/* 028F5FFC */ _t55 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 028F5FFC */ cpu->r[3] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028F6000 */ Gambit_fn_02826F20(cpu);
|
|
L_028F6004: ; // 0x28f6004
|
|
/* 028F6004 */ _t56 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F6004 */ cpu->r[12] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028F6008 */ _t57 = cpu->r[12] + 0x00000034u;
|
|
/* 028F6008 */ cpu->r[0] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028F600C */ cpu->ctr = cpu->r[0];
|
|
/* 028F6010 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F6014 */ cpu->r[4] = rbrew_rlwinm(cpu->r[30], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F6018 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F601C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F6020 */ cpu->r[0] = cpu->r[30];
|
|
/* 028F6024 */ _t58 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F6024 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028F6024 */ if (_t59) goto L_028F602C; else goto L_028F6028;
|
|
L_028F6028: ; // 0x28f6028
|
|
/* 028F6028 */ cpu->r[0] = 0x00000001u;
|
|
L_028F602C: ; // 0x28f602c
|
|
/* 028F602C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6030 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6030 */ _t61 = _t60 & 0x00000001u;
|
|
/* 028F6030 */ if (_t61) goto L_028F603C; else goto L_028F6034;
|
|
L_028F6034: ; // 0x28f6034
|
|
/* 028F6034 */ _t62 = cpu->r[28] + 0x0000004Cu;
|
|
/* 028F6034 */ rbrew_write32(cpu->mem, _t62, cpu->r[3]);
|
|
/* 028F6038 */ _t63 = cpu->r[28] + 0x00000048u;
|
|
/* 028F6038 */ rbrew_write32(cpu->mem, _t63, cpu->r[30]);
|
|
L_028F603C: ; // 0x28f603c
|
|
/* 028F603C */ _t64 = cpu->r[28] + 0x00000040u;
|
|
/* 028F603C */ cpu->r[30] = rbrew_read32(cpu->mem, _t64);
|
|
L_028F6040: ; // 0x28f6040
|
|
/* 028F6040 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F6044 */ cpu->r[3] = cpu->r[29];
|
|
/* 028F6048 */ _t65 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F6048 */ _t66 = _t65 & 0x00000001u;
|
|
/* 028F6048 */ if (_t66) goto L_028F604C; else goto L_028F6094;
|
|
L_028F604C: ; // 0x28f604c
|
|
/* 028F604C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6050 */ _t67 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6050 */ _t68 = _t67 & 0x00000001u;
|
|
/* 028F6050 */ if (_t68) goto L_028F6054; else goto L_028F605C;
|
|
L_028F6054: ; // 0x28f6054
|
|
/* 028F6054 */ _t69 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 028F6054 */ cpu->r[3] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028F6058 */ Gambit_fn_02826F20(cpu);
|
|
L_028F605C: ; // 0x28f605c
|
|
/* 028F605C */ _t70 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F605C */ cpu->r[8] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028F6060 */ _t71 = cpu->r[8] + 0x00000034u;
|
|
/* 028F6060 */ cpu->r[9] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028F6064 */ cpu->ctr = cpu->r[9];
|
|
/* 028F6068 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F606C */ cpu->r[4] = rbrew_rlwinm(cpu->r[30], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F6070 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F6074 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F6078 */ cpu->r[12] = cpu->r[30];
|
|
/* 028F607C */ _t72 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F607C */ _t73 = _t72 & 0x00000001u;
|
|
/* 028F607C */ if (_t73) goto L_028F6084; else goto L_028F6080;
|
|
L_028F6080: ; // 0x28f6080
|
|
/* 028F6080 */ cpu->r[12] = 0x00000001u;
|
|
L_028F6084: ; // 0x28f6084
|
|
/* 028F6084 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6088 */ _t74 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6088 */ _t75 = _t74 & 0x00000001u;
|
|
/* 028F6088 */ if (_t75) goto L_028F6094; else goto L_028F608C;
|
|
L_028F608C: ; // 0x28f608c
|
|
/* 028F608C */ _t76 = cpu->r[28] + 0x00000054u;
|
|
/* 028F608C */ rbrew_write32(cpu->mem, _t76, cpu->r[3]);
|
|
/* 028F6090 */ _t77 = cpu->r[28] + 0x00000050u;
|
|
/* 028F6090 */ rbrew_write32(cpu->mem, _t77, cpu->r[30]);
|
|
L_028F6094: ; // 0x28f6094
|
|
/* 028F6094 */ _t78 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028F6094 */ cpu->r[25] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028F6098 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], 0x00000000u);
|
|
/* 028F609C */ cpu->r[3] = cpu->r[29];
|
|
/* 028F60A0 */ _t79 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F60A0 */ _t80 = _t79 & 0x00000001u;
|
|
/* 028F60A0 */ if (_t80) goto L_028F60A4; else goto L_028F6110;
|
|
L_028F60A4: ; // 0x28f60a4
|
|
/* 028F60A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F60A8 */ _t81 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F60A8 */ _t82 = _t81 & 0x00000001u;
|
|
/* 028F60A8 */ if (_t82) goto L_028F60AC; else goto L_028F60B4;
|
|
L_028F60AC: ; // 0x28f60ac
|
|
/* 028F60AC */ _t83 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 028F60AC */ cpu->r[3] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028F60B0 */ Gambit_fn_02826F20(cpu);
|
|
L_028F60B4: ; // 0x28f60b4
|
|
/* 028F60B4 */ _t84 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F60B4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t84);
|
|
/* 028F60B8 */ _t85 = cpu->r[10] + 0x00000034u;
|
|
/* 028F60B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t85);
|
|
/* 028F60BC */ cpu->ctr = cpu->r[0];
|
|
/* 028F60C0 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F60C4 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[25] * (int32_t)0x000000F0u);
|
|
/* 028F60C8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F60CC */ cpu->r[26] = cpu->r[3];
|
|
/* 028F60D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], 0x00000000u);
|
|
/* 028F60D4 */ cpu->r[30] = cpu->r[25];
|
|
/* 028F60D8 */ cpu->r[6] = 0x00000000u;
|
|
/* 028F60DC */ _t86 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F60DC */ _t87 = _t86 & 0x00000001u;
|
|
/* 028F60DC */ if (_t87) goto L_028F60E4; else goto L_028F60E0;
|
|
L_028F60E0: ; // 0x28f60e0
|
|
/* 028F60E0 */ cpu->r[30] = 0x00000001u;
|
|
L_028F60E4: ; // 0x28f60e4
|
|
/* 028F60E4 */ cpu->r[24] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x000000F0u);
|
|
L_028F60E8: ; // 0x28f60e8
|
|
/* 028F60E8 */ cpu->r[3] = cpu->r[26] + cpu->r[24];
|
|
/* 028F60E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F60EC */ _t88 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F60EC */ _t89 = _t88 & 0x00000001u;
|
|
/* 028F60EC */ if (_t89) goto L_028F60F4; else goto L_028F60F0;
|
|
L_028F60F0: ; // 0x28f60f0
|
|
/* 028F60F0 */ Gambit_fn_028F56EC(cpu);
|
|
L_028F60F4: ; // 0x28f60f4
|
|
/* 028F60F4 */ cpu->r[30] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 028F60F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F60F8 */ cpu->r[24] = cpu->r[24] + 0x000000F0u;
|
|
/* 028F60FC */ _t90 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F60FC */ _t91 = _t90 & 0x00000001u;
|
|
/* 028F60FC */ if (_t91) goto L_028F6100; else goto L_028F60E8;
|
|
L_028F6100: ; // 0x28f6100
|
|
/* 028F6100 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F6104 */ _t92 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6104 */ _t93 = _t92 & 0x00000001u;
|
|
/* 028F6104 */ if (_t93) goto L_028F6110; else goto L_028F6108;
|
|
L_028F6108: ; // 0x28f6108
|
|
/* 028F6108 */ _t94 = cpu->r[28] + 0x0000003Cu;
|
|
/* 028F6108 */ rbrew_write32(cpu->mem, _t94, cpu->r[26]);
|
|
/* 028F610C */ _t95 = cpu->r[28] + 0x00000038u;
|
|
/* 028F610C */ rbrew_write32(cpu->mem, _t95, cpu->r[25]);
|
|
L_028F6110: ; // 0x28f6110
|
|
/* 028F6110 */ _t96 = cpu->r[28] + 0x00000018u;
|
|
/* 028F6110 */ cpu->r[9] = rbrew_read32(cpu->mem, _t96);
|
|
/* 028F6114 */ _t97 = cpu->r[9] + 0x00000010u;
|
|
/* 028F6114 */ cpu->r[0] = rbrew_read32(cpu->mem, _t97);
|
|
/* 028F6118 */ cpu->r[8] = cpu->r[9] + cpu->r[0];
|
|
/* 028F611C */ _t98 = cpu->r[8] + 0x00000014u;
|
|
/* 028F611C */ cpu->r[0] = rbrew_read32(cpu->mem, _t98);
|
|
/* 028F6120 */ cpu->r[23] = cpu->r[8] + 0x00000014u;
|
|
/* 028F6124 */ cpu->r[10] = cpu->r[31];
|
|
/* 028F6128 */ cpu->r[24] = cpu->r[23] + cpu->r[0];
|
|
/* 028F612C */ _t99 = cpu->r[1] + 0x00000054u;
|
|
/* 028F612C */ rbrew_write32(cpu->mem, _t99, cpu->r[31]);
|
|
/* 028F6130 */ _t100 = cpu->r[24] + 0x00000004u;
|
|
/* 028F6130 */ cpu->r[0] = rbrew_read32(cpu->mem, _t100);
|
|
/* 028F6134 */ cpu->r[30] = cpu->r[23] + 0x00000008u;
|
|
/* 028F6138 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028F613C */ _t101 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028F613C */ rbrew_write32(cpu->mem, _t101, cpu->r[0]);
|
|
/* 028F6140 */ _t102 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6140 */ _t103 = _t102 & 0x00000001u;
|
|
/* 028F6140 */ if (_t103) goto L_028F6144; else goto L_028F6168;
|
|
L_028F6144: ; // 0x28f6144
|
|
/* 028F6144 */ _t104 = cpu->r[1] + 0x00000044u;
|
|
/* 028F6144 */ rbrew_write32(cpu->mem, _t104, cpu->r[31]);
|
|
/* 028F6148 */ cpu->r[25] = cpu->r[24] + 0x00000008u;
|
|
/* 028F614C */ _t105 = cpu->r[1] + 0x00000048u;
|
|
/* 028F614C */ rbrew_write32(cpu->mem, _t105, cpu->r[25]);
|
|
/* 028F6150 */ _t106 = cpu->r[24] + 0x00000004u;
|
|
/* 028F6150 */ cpu->r[26] = rbrew_read32(cpu->mem, _t106);
|
|
/* 028F6154 */ cpu->r[24] = cpu->r[31];
|
|
/* 028F6158 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[26]);
|
|
/* 028F615C */ _t107 = cpu->r[1] + 0x00000064u;
|
|
/* 028F615C */ rbrew_write32(cpu->mem, _t107, cpu->r[26]);
|
|
/* 028F6160 */ _t108 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6160 */ _t109 = _t108 & 0x00000001u;
|
|
/* 028F6160 */ if (_t109) goto L_028F6270; else goto L_028F6164;
|
|
L_028F6164: ; // 0x28f6164
|
|
/* 028F6164 */ goto L_028F6220;
|
|
L_028F6168: ; // 0x28f6168
|
|
/* 028F6168 */ cpu->r[26] = cpu->r[1] + 0x00000074u;
|
|
/* 028F616C */ cpu->r[25] = 0x00000000u;
|
|
L_028F6170: ; // 0x28f6170
|
|
/* 028F6170 */ _t110 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6170 */ rbrew_write32(cpu->mem, _t110, cpu->r[25]);
|
|
/* 028F6174 */ _t111 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6174 */ cpu->r[6] = rbrew_read32(cpu->mem, _t111);
|
|
/* 028F6178 */ _t112 = cpu->r[1] + 0x00000010u;
|
|
/* 028F6178 */ rbrew_write32(cpu->mem, _t112, cpu->r[30]);
|
|
/* 028F617C */ _t113 = cpu->r[26] + cpu->r[10];
|
|
/* 028F617C */ rbrew_write8(cpu->mem, _t113, (uint8_t)cpu->r[25]);
|
|
/* 028F6180 */ _t114 = cpu->r[23] + 0x00000004u;
|
|
/* 028F6180 */ cpu->r[9] = rbrew_read32(cpu->mem, _t114);
|
|
/* 028F6184 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F6188 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[9]);
|
|
/* 028F618C */ _t115 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F618C */ rbrew_write32(cpu->mem, _t115, cpu->r[9]);
|
|
/* 028F6190 */ _t116 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6190 */ _t117 = _t116 & 0x00000001u;
|
|
/* 028F6190 */ if (_t117) goto L_028F61F4; else goto L_028F6194;
|
|
L_028F6194: ; // 0x28f6194
|
|
/* 028F6194 */ cpu->r[26] = cpu->r[1] + 0x00000074u;
|
|
/* 028F6198 */ cpu->r[8] = cpu->r[10];
|
|
L_028F619C: ; // 0x28f619c
|
|
/* 028F619C */ cpu->r[7] = 0x00000003u;
|
|
/* 028F61A0 */ cpu->r[4] = cpu->r[3] + 0x00000008u;
|
|
/* 028F61A4 */ cpu->r[22] = cpu->r[26] + cpu->r[8];
|
|
/* 028F61A8 */ cpu->ctr = cpu->r[7];
|
|
/* 028F61AC */ cpu->r[21] = 0x00000001u;
|
|
/* 028F61B0 */ cpu->r[20] = 0x00000000u;
|
|
L_028F61B4: ; // 0x28f61b4
|
|
/* 028F61B4 */ _t118 = cpu->r[4] + cpu->r[20];
|
|
/* 028F61B4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t118);
|
|
/* 028F61B8 */ /* nop */
|
|
/* 028F61BC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[8]);
|
|
/* 028F61C0 */ _t119 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F61C0 */ _t120 = _t119 & 0x00000001u;
|
|
/* 028F61C0 */ if (_t120) goto L_028F61C4; else goto L_028F61D8;
|
|
L_028F61C4: ; // 0x28f61c4
|
|
/* 028F61C4 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028F61C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028F61CC */ _t121 = cpu->r[22] + 0x00000000u;
|
|
/* 028F61CC */ rbrew_write8(cpu->mem, _t121, (uint8_t)cpu->r[21]);
|
|
/* 028F61D0 */ _t122 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F61D0 */ _t123 = _t122 & 0x00000001u;
|
|
/* 028F61D0 */ if (_t123) goto L_028F61D4; else goto L_028F6170;
|
|
L_028F61D4: ; // 0x28f61d4
|
|
/* 028F61D4 */ goto L_028F6200;
|
|
L_028F61D8: ; // 0x28f61d8
|
|
/* 028F61D8 */ cpu->r[20] = cpu->r[20] + 0x00000004u;
|
|
/* 028F61DC */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F61DC */ _t124 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F61DC */ _t125 = _t124 >> (0x00000002u & 31u);
|
|
/* 028F61DC */ _t126 = _t125 & 0x00000001u;
|
|
/* 028F61DC */ if (_t126) goto L_028F61B4; else goto L_028F61E0;
|
|
L_028F61E0: ; // 0x28f61e0
|
|
/* 028F61E0 */ _t127 = cpu->r[3] + 0x00000000u;
|
|
/* 028F61E0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t127);
|
|
/* 028F61E4 */ cpu->r[6] = cpu->r[6] + 0x00000001u;
|
|
/* 028F61E8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[9]);
|
|
/* 028F61EC */ cpu->r[3] = cpu->r[3] + cpu->r[4];
|
|
/* 028F61F0 */ _t128 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F61F0 */ _t129 = _t128 & 0x00000001u;
|
|
/* 028F61F0 */ if (_t129) goto L_028F61F4; else goto L_028F619C;
|
|
L_028F61F4: ; // 0x28f61f4
|
|
/* 028F61F4 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028F61F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028F61FC */ _t130 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F61FC */ _t131 = _t130 & 0x00000001u;
|
|
/* 028F61FC */ if (_t131) goto L_028F6200; else goto L_028F6170;
|
|
L_028F6200: ; // 0x28f6200
|
|
/* 028F6200 */ _t132 = cpu->r[1] + 0x00000044u;
|
|
/* 028F6200 */ rbrew_write32(cpu->mem, _t132, cpu->r[31]);
|
|
/* 028F6204 */ cpu->r[25] = cpu->r[24] + 0x00000008u;
|
|
/* 028F6208 */ _t133 = cpu->r[1] + 0x00000048u;
|
|
/* 028F6208 */ rbrew_write32(cpu->mem, _t133, cpu->r[25]);
|
|
/* 028F620C */ _t134 = cpu->r[24] + 0x00000004u;
|
|
/* 028F620C */ cpu->r[26] = rbrew_read32(cpu->mem, _t134);
|
|
/* 028F6210 */ cpu->r[24] = cpu->r[31];
|
|
/* 028F6214 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[26]);
|
|
/* 028F6218 */ _t135 = cpu->r[1] + 0x00000064u;
|
|
/* 028F6218 */ rbrew_write32(cpu->mem, _t135, cpu->r[26]);
|
|
/* 028F621C */ _t136 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F621C */ _t137 = _t136 & 0x00000001u;
|
|
/* 028F621C */ if (_t137) goto L_028F6270; else goto L_028F6220;
|
|
L_028F6220: ; // 0x28f6220
|
|
/* 028F6220 */ cpu->r[22] = cpu->r[1] + 0x00000074u;
|
|
L_028F6224: ; // 0x28f6224
|
|
/* 028F6224 */ _t138 = cpu->r[28] + 0x00000040u;
|
|
/* 028F6224 */ cpu->r[5] = rbrew_read32(cpu->mem, _t138);
|
|
/* 028F6228 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[5]);
|
|
/* 028F622C */ _t139 = cpu->r[28] + 0x00000044u;
|
|
/* 028F622C */ cpu->r[3] = rbrew_read32(cpu->mem, _t139);
|
|
/* 028F6230 */ _t140 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F6230 */ _t141 = _t140 & 0x00000001u;
|
|
/* 028F6230 */ if (_t141) goto L_028F6234; else goto L_028F623C;
|
|
L_028F6234: ; // 0x28f6234
|
|
/* 028F6234 */ cpu->r[7] = (uint32_t)((int32_t)cpu->r[24] * (int32_t)0x00000034u);
|
|
/* 028F6238 */ cpu->r[3] = cpu->r[3] + cpu->r[7];
|
|
L_028F623C: ; // 0x28f623c
|
|
/* 028F623C */ _t142 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F623C */ rbrew_write32(cpu->mem, _t142, cpu->r[25]);
|
|
/* 028F6240 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F6244 */ cpu->r[5] = cpu->r[24];
|
|
/* 028F6248 */ _t143 = cpu->r[22] + cpu->r[24];
|
|
/* 028F6248 */ cpu->r[7] = rbrew_read8(cpu->mem, _t143);
|
|
/* 028F624C */ cpu->r[8] = cpu->r[29];
|
|
/* 028F6250 */ cpu->r[6] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F6254 */ _t144 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F6254 */ rbrew_write32(cpu->mem, _t144, cpu->r[25]);
|
|
/* 028F6258 */ Gambit_fn_028F57A4(cpu);
|
|
/* 028F625C */ _t145 = cpu->r[25] + 0x00000000u;
|
|
/* 028F625C */ cpu->r[9] = rbrew_read32(cpu->mem, _t145);
|
|
/* 028F6260 */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028F6264 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[26]);
|
|
/* 028F6268 */ cpu->r[25] = cpu->r[25] + cpu->r[9];
|
|
/* 028F626C */ _t146 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F626C */ _t147 = _t146 & 0x00000001u;
|
|
/* 028F626C */ if (_t147) goto L_028F6270; else goto L_028F6224;
|
|
L_028F6270: ; // 0x28f6270
|
|
/* 028F6270 */ rbrew_dispatch(cpu, 0x02d0ab30u);
|
|
/* 028F6274 */ _t148 = cpu->r[1] + 0x00000050u;
|
|
/* 028F6274 */ rbrew_write32(cpu->mem, _t148, cpu->r[30]);
|
|
/* 028F6278 */ _t149 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F6278 */ rbrew_write32(cpu->mem, _t149, cpu->r[31]);
|
|
/* 028F627C */ _t150 = cpu->r[23] + 0x00000004u;
|
|
/* 028F627C */ cpu->r[26] = rbrew_read32(cpu->mem, _t150);
|
|
/* 028F6280 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[26]);
|
|
/* 028F6284 */ _t151 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028F6284 */ rbrew_write32(cpu->mem, _t151, cpu->r[26]);
|
|
/* 028F6288 */ _t152 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6288 */ _t153 = _t152 & 0x00000001u;
|
|
/* 028F6288 */ if (_t153) goto L_028F642C; else goto L_028F628C;
|
|
L_028F628C: ; // 0x28f628c
|
|
/* 028F628C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028F6290 */ _t154 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6290 */ _t155 = _t154 & 0x00000001u;
|
|
/* 028F6290 */ if (_t155) goto L_028F63A4; else goto L_028F6294;
|
|
L_028F6294: ; // 0x28f6294
|
|
/* 028F6294 */ cpu->r[23] = 0x10140000u;
|
|
/* 028F6298 */ cpu->r[23] = cpu->r[23] + 0xFFFFCDE4u;
|
|
L_028F629C: ; // 0x28f629c
|
|
/* 028F629C */ _t156 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028F629C */ cpu->r[10] = rbrew_read32(cpu->mem, _t156);
|
|
/* 028F62A0 */ _t157 = cpu->r[1] + 0x00000008u;
|
|
/* 028F62A0 */ rbrew_write32(cpu->mem, _t157, cpu->r[30]);
|
|
/* 028F62A4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[10]);
|
|
/* 028F62A8 */ _t158 = cpu->r[28] + 0x00000020u;
|
|
/* 028F62A8 */ cpu->r[27] = rbrew_read32(cpu->mem, _t158);
|
|
/* 028F62AC */ _t159 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F62AC */ _t160 = _t159 & 0x00000001u;
|
|
/* 028F62AC */ if (_t160) goto L_028F62B0; else goto L_028F62B8;
|
|
L_028F62B0: ; // 0x28f62b0
|
|
/* 028F62B0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F62B4 */ cpu->r[27] = cpu->r[27] + cpu->r[0];
|
|
L_028F62B8: ; // 0x28f62b8
|
|
/* 028F62B8 */ _t161 = cpu->r[1] + 0x00000018u;
|
|
/* 028F62B8 */ rbrew_write32(cpu->mem, _t161, cpu->r[23]);
|
|
/* 028F62BC */ cpu->r[6] = cpu->r[30] + 0x00000014u;
|
|
/* 028F62C0 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F62C4 */ _t162 = cpu->r[1] + 0x00000014u;
|
|
/* 028F62C4 */ rbrew_write32(cpu->mem, _t162, cpu->r[6]);
|
|
/* 028F62C8 */ Gambit_fn_028F23A0(cpu);
|
|
/* 028F62CC */ _t163 = cpu->r[1] + 0x00000038u;
|
|
/* 028F62CC */ rbrew_write32(cpu->mem, _t163, cpu->r[3]);
|
|
/* 028F62D0 */ _t164 = cpu->r[1] + 0x00000020u;
|
|
/* 028F62D0 */ rbrew_write32(cpu->mem, _t164, cpu->r[3]);
|
|
/* 028F62D4 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F62D8 */ Gambit_fn_028F23A0(cpu);
|
|
/* 028F62DC */ cpu->r[25] = cpu->r[3];
|
|
/* 028F62E0 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F62E4 */ Gambit_fn_028F23A0(cpu);
|
|
/* 028F62E8 */ _t165 = cpu->r[3] + 0x00000000u;
|
|
/* 028F62E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t165);
|
|
/* 028F62EC */ cpu->r[12] = cpu->r[25] + cpu->r[0];
|
|
/* 028F62F0 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F62F4 */ _t166 = cpu->r[1] + 0x00000024u;
|
|
/* 028F62F4 */ rbrew_write32(cpu->mem, _t166, cpu->r[12]);
|
|
/* 028F62F8 */ Gambit_fn_028F23A0(cpu);
|
|
/* 028F62FC */ cpu->r[25] = cpu->r[3];
|
|
/* 028F6300 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F6304 */ Gambit_fn_028F23A0(cpu);
|
|
/* 028F6308 */ _t167 = cpu->r[3] + 0x00000000u;
|
|
/* 028F6308 */ cpu->r[5] = rbrew_read32(cpu->mem, _t167);
|
|
/* 028F630C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F6310 */ cpu->r[25] = cpu->r[25] + cpu->r[5];
|
|
/* 028F6314 */ Gambit_fn_028F23A0(cpu);
|
|
/* 028F6318 */ cpu->r[24] = cpu->r[3];
|
|
/* 028F631C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F6320 */ Gambit_fn_028F23A0(cpu);
|
|
/* 028F6324 */ _t168 = cpu->r[3] + 0x00000000u;
|
|
/* 028F6324 */ cpu->r[7] = rbrew_read32(cpu->mem, _t168);
|
|
/* 028F6328 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F632C */ cpu->r[6] = cpu->r[1] + 0x00000024u;
|
|
/* 028F6330 */ _t169 = cpu->r[24] + cpu->r[7];
|
|
/* 028F6330 */ cpu->r[0] = rbrew_read32(cpu->mem, _t169);
|
|
/* 028F6334 */ cpu->r[5] = cpu->r[1] + 0x00000020u;
|
|
/* 028F6338 */ cpu->r[7] = cpu->r[1] + 0x00000028u;
|
|
/* 028F633C */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 028F6340 */ cpu->r[12] = cpu->r[25] + cpu->r[0];
|
|
/* 028F6344 */ cpu->r[8] = cpu->r[29];
|
|
/* 028F6348 */ _t170 = cpu->r[1] + 0x00000028u;
|
|
/* 028F6348 */ rbrew_write32(cpu->mem, _t170, cpu->r[12]);
|
|
/* 028F634C */ Gambit_fn_028F54F4(cpu);
|
|
/* 028F6350 */ _t171 = cpu->r[28] + 0x00000038u;
|
|
/* 028F6350 */ cpu->r[10] = rbrew_read32(cpu->mem, _t171);
|
|
/* 028F6354 */ _t172 = cpu->r[28] + 0x0000003Cu;
|
|
/* 028F6354 */ cpu->r[3] = rbrew_read32(cpu->mem, _t172);
|
|
/* 028F6358 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[10]);
|
|
/* 028F635C */ _t173 = cpu->r[1] + 0x00000008u;
|
|
/* 028F635C */ cpu->r[0] = rbrew_read32(cpu->mem, _t173);
|
|
/* 028F6360 */ _t174 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F6360 */ _t175 = _t174 & 0x00000001u;
|
|
/* 028F6360 */ if (_t175) goto L_028F6364; else goto L_028F636C;
|
|
L_028F6364: ; // 0x28f6364
|
|
/* 028F6364 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x000000F0u);
|
|
/* 028F6368 */ cpu->r[3] = cpu->r[3] + cpu->r[11];
|
|
L_028F636C: ; // 0x28f636c
|
|
/* 028F636C */ cpu->r[4] = cpu->r[28];
|
|
/* 028F6370 */ cpu->r[5] = cpu->r[31];
|
|
/* 028F6374 */ cpu->r[6] = cpu->r[1] + 0x00000030u;
|
|
/* 028F6378 */ cpu->r[7] = cpu->r[29];
|
|
/* 028F637C */ _t176 = cpu->r[1] + 0x00000030u;
|
|
/* 028F637C */ rbrew_write32(cpu->mem, _t176, cpu->r[0]);
|
|
/* 028F6380 */ Gambit_fn_028F5934(cpu);
|
|
/* 028F6384 */ _t177 = cpu->r[30] + 0x00000000u;
|
|
/* 028F6384 */ cpu->r[5] = rbrew_read32(cpu->mem, _t177);
|
|
/* 028F6388 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028F638C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[26]);
|
|
/* 028F6390 */ cpu->r[30] = cpu->r[30] + cpu->r[5];
|
|
/* 028F6394 */ _t178 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6394 */ _t179 = _t178 & 0x00000001u;
|
|
/* 028F6394 */ if (_t179) goto L_028F6398; else goto L_028F629C;
|
|
L_028F6398: ; // 0x28f6398
|
|
/* 028F6398 */ cpu->r[3] = cpu->r[28];
|
|
/* 028F639C */ Gambit_fn_028F5DA4(cpu);
|
|
/* 028F63A0 */ goto L_028F6434;
|
|
L_028F63A4: ; // 0x28f63a4
|
|
/* 028F63A4 */ _t180 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028F63A4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t180);
|
|
/* 028F63A8 */ _t181 = cpu->r[1] + 0x00000008u;
|
|
/* 028F63A8 */ rbrew_write32(cpu->mem, _t181, cpu->r[30]);
|
|
/* 028F63AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[6]);
|
|
/* 028F63B0 */ _t182 = cpu->r[28] + 0x00000020u;
|
|
/* 028F63B0 */ cpu->r[27] = rbrew_read32(cpu->mem, _t182);
|
|
/* 028F63B4 */ _t183 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F63B4 */ _t184 = _t183 & 0x00000001u;
|
|
/* 028F63B4 */ if (_t184) goto L_028F63B8; else goto L_028F63C0;
|
|
L_028F63B8: ; // 0x28f63b8
|
|
/* 028F63B8 */ cpu->r[8] = rbrew_rlwinm(cpu->r[31], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F63BC */ cpu->r[27] = cpu->r[27] + cpu->r[8];
|
|
L_028F63C0: ; // 0x28f63c0
|
|
/* 028F63C0 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F63C4 */ Gambit_fn_028F23A0(cpu);
|
|
/* 028F63C8 */ cpu->r[25] = cpu->r[3];
|
|
/* 028F63CC */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F63D0 */ Gambit_fn_028F23A0(cpu);
|
|
/* 028F63D4 */ _t185 = cpu->r[3] + 0x00000000u;
|
|
/* 028F63D4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t185);
|
|
/* 028F63D8 */ _t186 = cpu->r[27] + 0x00000078u;
|
|
/* 028F63D8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t186);
|
|
/* 028F63DC */ cpu->r[7] = cpu->r[25] + cpu->r[9];
|
|
/* 028F63E0 */ _t187 = cpu->r[10] + 0x0000002Cu;
|
|
/* 028F63E0 */ rbrew_write32(cpu->mem, _t187, cpu->r[7]);
|
|
/* 028F63E4 */ _t188 = cpu->r[28] + 0x00000038u;
|
|
/* 028F63E4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t188);
|
|
/* 028F63E8 */ _t189 = cpu->r[28] + 0x0000003Cu;
|
|
/* 028F63E8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t189);
|
|
/* 028F63EC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[11]);
|
|
/* 028F63F0 */ _t190 = cpu->r[1] + 0x00000008u;
|
|
/* 028F63F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t190);
|
|
/* 028F63F4 */ _t191 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F63F4 */ _t192 = _t191 & 0x00000001u;
|
|
/* 028F63F4 */ if (_t192) goto L_028F63F8; else goto L_028F6400;
|
|
L_028F63F8: ; // 0x28f63f8
|
|
/* 028F63F8 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x000000F0u);
|
|
/* 028F63FC */ cpu->r[3] = cpu->r[3] + cpu->r[12];
|
|
L_028F6400: ; // 0x28f6400
|
|
/* 028F6400 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F6404 */ cpu->r[5] = cpu->r[31];
|
|
/* 028F6408 */ cpu->r[6] = cpu->r[1] + 0x00000034u;
|
|
/* 028F640C */ cpu->r[7] = cpu->r[29];
|
|
/* 028F6410 */ _t193 = cpu->r[1] + 0x00000034u;
|
|
/* 028F6410 */ rbrew_write32(cpu->mem, _t193, cpu->r[0]);
|
|
/* 028F6414 */ Gambit_fn_028F5934(cpu);
|
|
/* 028F6418 */ _t194 = cpu->r[30] + 0x00000000u;
|
|
/* 028F6418 */ cpu->r[0] = rbrew_read32(cpu->mem, _t194);
|
|
/* 028F641C */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028F6420 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[26]);
|
|
/* 028F6424 */ cpu->r[30] = cpu->r[30] + cpu->r[0];
|
|
/* 028F6428 */ _t195 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6428 */ _t196 = _t195 & 0x00000001u;
|
|
/* 028F6428 */ if (_t196) goto L_028F642C; else goto L_028F63A4;
|
|
L_028F642C: ; // 0x28f642c
|
|
/* 028F642C */ cpu->r[3] = cpu->r[28];
|
|
/* 028F6430 */ Gambit_fn_028F5DA4(cpu);
|
|
L_028F6434: ; // 0x28f6434
|
|
/* 028F6434 */ /* nop */
|
|
/* 028F6438 */ _t197 = cpu->r[1] + 0x000004ACu;
|
|
/* 028F6438 */ cpu->r[0] = rbrew_read32(cpu->mem, _t197);
|
|
/* 028F643C */ cpu->lr = cpu->r[0];
|
|
/* 028F6440 */ cpu->r[1] = cpu->r[1] + 0x000004A8u;
|
|
/* 028F6444 */ return;
|
|
}
|
|
|
|
// fn_028F6448 @ 0x28f6448
|
|
void Gambit_fn_028F6448(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F6448: ; // 0x28f6448
|
|
/* 028F6448 */ _t0 = cpu->r[1] + 0xFFFFFF48u;
|
|
/* 028F6448 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F6448 */ cpu->r[1] = _t0;
|
|
/* 028F644C */ /* nop */
|
|
/* 028F6450 */ cpu->r[0] = cpu->lr;
|
|
/* 028F6454 */ _t1 = cpu->r[1] + 0x000000BCu;
|
|
/* 028F6454 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F6458 */ _t2 = cpu->r[4] + 0x00000000u;
|
|
/* 028F6458 */ cpu->r[4] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F645C */ cpu->r[27] = cpu->r[3];
|
|
/* 028F6460 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028F6460 */ rbrew_write32(cpu->mem, _t3, cpu->r[7]);
|
|
/* 028F6464 */ _t4 = cpu->r[5] + 0x00000000u;
|
|
/* 028F6464 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F6468 */ cpu->r[26] = cpu->r[6];
|
|
/* 028F646C */ _t5 = cpu->r[27] + 0x00000014u;
|
|
/* 028F646C */ rbrew_write32(cpu->mem, _t5, cpu->r[4]);
|
|
/* 028F6470 */ cpu->r[8] = rbrew_rlwinm(cpu->r[26], 0x00000000u, 0x0000001Eu, 0x0000001Eu);
|
|
/* 028F6470 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F6474 */ _t6 = cpu->r[1] + 0x00000010u;
|
|
/* 028F6474 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028F6478 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6478 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F6478 */ if (_t8) goto L_028F648C; else goto L_028F647C;
|
|
L_028F647C: ; // 0x28f647c
|
|
/* 028F647C */ _t9 = cpu->r[27] + 0x00000036u;
|
|
/* 028F647C */ cpu->r[9] = rbrew_read16(cpu->mem, _t9);
|
|
/* 028F6480 */ _t10 = cpu->r[27] + 0x00000014u;
|
|
/* 028F6480 */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F6484 */ cpu->r[9] = cpu->r[9] | 0x00000001u;
|
|
/* 028F6488 */ _t11 = cpu->r[27] + 0x00000036u;
|
|
/* 028F6488 */ rbrew_write16(cpu->mem, _t11, (uint16_t)cpu->r[9]);
|
|
L_028F648C: ; // 0x28f648c
|
|
/* 028F648C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F6490 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6490 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F6490 */ if (_t13) goto L_028F6980; else goto L_028F6494;
|
|
L_028F6494: ; // 0x28f6494
|
|
/* 028F6494 */ cpu->r[3] = cpu->r[27] + 0x00000014u;
|
|
/* 028F6498 */ cpu->r[4] = 0x00000001u;
|
|
/* 028F649C */ Gambit_fn_028F28C8(cpu);
|
|
/* 028F64A0 */ _t14 = cpu->r[27] + 0x00000014u;
|
|
/* 028F64A0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F64A4 */ _t15 = cpu->r[4] + 0x00000014u;
|
|
/* 028F64A4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F64A8 */ cpu->r[8] = cpu->r[4] + cpu->r[9];
|
|
/* 028F64AC */ _t16 = cpu->r[8] + 0x00000018u;
|
|
/* 028F64AC */ cpu->r[10] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F64B0 */ cpu->r[4] = cpu->r[8] + cpu->r[10];
|
|
/* 028F64B4 */ _t17 = cpu->r[4] + 0x0000001Cu;
|
|
/* 028F64B4 */ cpu->r[28] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F64B8 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028F64B8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F64BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F64C0 */ cpu->r[7] = cpu->r[8] + 0x00000018u;
|
|
/* 028F64C4 */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F64C4 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F64C4 */ if (_t20) goto L_028F64C8; else goto L_028F6548;
|
|
L_028F64C8: ; // 0x28f64c8
|
|
/* 028F64C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F64CC */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F64CC */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F64CC */ if (_t22) goto L_028F64D0; else goto L_028F64DC;
|
|
L_028F64D0: ; // 0x28f64d0
|
|
/* 028F64D0 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F64D4 */ _t23 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F64D4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F64D8 */ Gambit_fn_02826F20(cpu);
|
|
L_028F64DC: ; // 0x28f64dc
|
|
/* 028F64DC */ _t24 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F64DC */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F64E0 */ _t25 = cpu->r[12] + 0x00000034u;
|
|
/* 028F64E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F64E4 */ cpu->ctr = cpu->r[0];
|
|
/* 028F64E8 */ cpu->r[5] = 0x00000004u;
|
|
/* 028F64EC */ cpu->r[4] = rbrew_rlwinm(cpu->r[28], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F64F0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F64F4 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F64F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F64FC */ cpu->r[31] = cpu->r[28];
|
|
/* 028F6500 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F6504 */ _t26 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F6504 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028F6504 */ if (_t27) goto L_028F650C; else goto L_028F6508;
|
|
L_028F6508: ; // 0x28f6508
|
|
/* 028F6508 */ cpu->r[31] = 0x00000001u;
|
|
L_028F650C: ; // 0x28f650c
|
|
/* 028F650C */ cpu->r[30] = rbrew_rlwinm(cpu->r[0], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
L_028F6510: ; // 0x28f6510
|
|
/* 028F6510 */ cpu->r[3] = cpu->r[29] + cpu->r[30];
|
|
/* 028F6510 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6514 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6514 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028F6514 */ if (_t29) goto L_028F651C; else goto L_028F6518;
|
|
L_028F6518: ; // 0x28f6518
|
|
/* 028F6518 */ Gambit_fn_028F2E8C(cpu);
|
|
L_028F651C: ; // 0x28f651c
|
|
/* 028F651C */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028F651C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F6520 */ cpu->r[30] = cpu->r[30] + 0x00000080u;
|
|
/* 028F6524 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6524 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028F6524 */ if (_t31) goto L_028F6528; else goto L_028F6510;
|
|
L_028F6528: ; // 0x28f6528
|
|
/* 028F6528 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F652C */ _t32 = cpu->r[27] + 0x00000014u;
|
|
/* 028F652C */ cpu->r[4] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F6530 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6530 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F6530 */ if (_t34) goto L_028F653C; else goto L_028F6534;
|
|
L_028F6534: ; // 0x28f6534
|
|
/* 028F6534 */ _t35 = cpu->r[27] + 0x00000020u;
|
|
/* 028F6534 */ rbrew_write32(cpu->mem, _t35, cpu->r[29]);
|
|
/* 028F6538 */ _t36 = cpu->r[27] + 0x0000001Cu;
|
|
/* 028F6538 */ rbrew_write32(cpu->mem, _t36, cpu->r[28]);
|
|
L_028F653C: ; // 0x28f653c
|
|
/* 028F653C */ _t37 = cpu->r[4] + 0x00000014u;
|
|
/* 028F653C */ cpu->r[9] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F6540 */ cpu->r[8] = cpu->r[4] + cpu->r[9];
|
|
/* 028F6544 */ cpu->r[7] = cpu->r[8] + 0x00000018u;
|
|
L_028F6548: ; // 0x28f6548
|
|
/* 028F6548 */ cpu->r[6] = rbrew_rlwinm(cpu->r[26], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F654C */ cpu->r[16] = 0x00000000u;
|
|
/* 028F6550 */ cpu->r[9] = cpu->r[6] ^ 0x00000001u;
|
|
/* 028F6554 */ cpu->r[19] = cpu->r[16];
|
|
/* 028F6558 */ cpu->r[15] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F6558 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[15], 0x00000000u);
|
|
/* 028F655C */ cpu->r[31] = cpu->r[16];
|
|
/* 028F6560 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6560 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028F6560 */ if (_t39) goto L_028F65E0; else goto L_028F6564;
|
|
L_028F6564: ; // 0x28f6564
|
|
/* 028F6564 */ cpu->r[6] = 0x00000000u;
|
|
/* 028F6568 */ cpu->r[5] = cpu->r[7] + 0x00000008u;
|
|
/* 028F656C */ _t40 = cpu->r[1] + 0x00000050u;
|
|
/* 028F656C */ rbrew_write32(cpu->mem, _t40, cpu->r[6]);
|
|
/* 028F6570 */ _t41 = cpu->r[1] + 0x00000054u;
|
|
/* 028F6570 */ rbrew_write32(cpu->mem, _t41, cpu->r[5]);
|
|
/* 028F6574 */ _t42 = cpu->r[7] + 0x00000004u;
|
|
/* 028F6574 */ cpu->r[7] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F6578 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[7]);
|
|
/* 028F657C */ _t43 = cpu->r[1] + 0x00000060u;
|
|
/* 028F657C */ rbrew_write32(cpu->mem, _t43, cpu->r[7]);
|
|
/* 028F6580 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6580 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028F6580 */ if (_t45) goto L_028F65AC; else goto L_028F6584;
|
|
L_028F6584: ; // 0x28f6584
|
|
/* 028F6584 */ _t46 = cpu->r[5] + 0x00000004u;
|
|
/* 028F6584 */ cpu->r[10] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F6588 */ cpu->r[31] = cpu->r[31] + 0x00000100u;
|
|
/* 028F658C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000002u);
|
|
/* 028F6590 */ _t47 = cpu->r[5] + 0x00000000u;
|
|
/* 028F6590 */ cpu->r[11] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F6594 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6594 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F6594 */ if (_t49) goto L_028F6598; else goto L_028F659C;
|
|
L_028F6598: ; // 0x28f6598
|
|
/* 028F6598 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
L_028F659C: ; // 0x28f659c
|
|
/* 028F659C */ cpu->r[6] = cpu->r[6] + 0x00000001u;
|
|
/* 028F65A0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[7]);
|
|
/* 028F65A4 */ cpu->r[5] = cpu->r[5] + cpu->r[11];
|
|
/* 028F65A8 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F65A8 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028F65A8 */ if (_t51) goto L_028F65AC; else goto L_028F6584;
|
|
L_028F65AC: ; // 0x28f65ac
|
|
/* 028F65AC */ Gambit_fn_028EFE74(cpu);
|
|
/* 028F65B0 */ _t52 = cpu->r[1] + 0x00000008u;
|
|
/* 028F65B0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028F65B4 */ cpu->r[5] = cpu->r[3];
|
|
/* 028F65B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F65BC */ Gambit_fn_02801ADC(cpu);
|
|
/* 028F65C0 */ _t53 = cpu->r[27] + 0x00000030u;
|
|
/* 028F65C0 */ rbrew_write32(cpu->mem, _t53, cpu->r[3]);
|
|
/* 028F65C4 */ cpu->r[4] = cpu->r[31];
|
|
/* 028F65C8 */ rbrew_dispatch(cpu, 0x02d09320u);
|
|
/* 028F65CC */ _t54 = cpu->r[27] + 0x00000014u;
|
|
/* 028F65CC */ cpu->r[4] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028F65D0 */ _t55 = cpu->r[4] + 0x00000014u;
|
|
/* 028F65D0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028F65D4 */ cpu->r[8] = cpu->r[4] + cpu->r[9];
|
|
/* 028F65D8 */ _t56 = cpu->r[27] + 0x00000030u;
|
|
/* 028F65D8 */ cpu->r[16] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028F65DC */ cpu->r[7] = cpu->r[8] + 0x00000018u;
|
|
L_028F65E0: ; // 0x28f65e0
|
|
/* 028F65E0 */ _t57 = cpu->r[7] + 0x00000000u;
|
|
/* 028F65E0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028F65E4 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F65E8 */ cpu->r[4] = cpu->r[7] + cpu->r[6];
|
|
/* 028F65EC */ _t58 = cpu->r[1] + 0x00000058u;
|
|
/* 028F65EC */ rbrew_write32(cpu->mem, _t58, cpu->r[10]);
|
|
/* 028F65F0 */ cpu->r[8] = cpu->r[4] + 0x00000008u;
|
|
/* 028F65F4 */ _t59 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028F65F4 */ rbrew_write32(cpu->mem, _t59, cpu->r[8]);
|
|
/* 028F65F8 */ _t60 = cpu->r[4] + 0x00000004u;
|
|
/* 028F65F8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028F65FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[4]);
|
|
/* 028F6600 */ _t61 = cpu->r[1] + 0x00000068u;
|
|
/* 028F6600 */ rbrew_write32(cpu->mem, _t61, cpu->r[4]);
|
|
/* 028F6604 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6604 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028F6604 */ if (_t63) goto L_028F6980; else goto L_028F6608;
|
|
L_028F6608: ; // 0x28f6608
|
|
/* 028F6608 */ cpu->r[14] = cpu->r[10];
|
|
/* 028F660C */ cpu->r[10] = 0x10140000u;
|
|
/* 028F6610 */ _t64 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6610 */ rbrew_write32(cpu->mem, _t64, cpu->r[4]);
|
|
/* 028F6614 */ cpu->r[10] = cpu->r[10] + 0xFFFFCDE4u;
|
|
/* 028F6618 */ cpu->r[28] = cpu->r[8];
|
|
/* 028F661C */ _t65 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F661C */ rbrew_write32(cpu->mem, _t65, cpu->r[10]);
|
|
L_028F6620: ; // 0x28f6620
|
|
/* 028F6620 */ _t66 = cpu->r[27] + 0x0000001Cu;
|
|
/* 028F6620 */ cpu->r[7] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028F6624 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[14], cpu->r[7]);
|
|
/* 028F6628 */ _t67 = cpu->r[27] + 0x00000020u;
|
|
/* 028F6628 */ cpu->r[11] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028F662C */ _t68 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F662C */ _t69 = _t68 & 0x00000001u;
|
|
/* 028F662C */ if (_t69) goto L_028F6630; else goto L_028F66A0;
|
|
L_028F6630: ; // 0x28f6630
|
|
/* 028F6630 */ cpu->r[10] = rbrew_rlwinm(cpu->r[14], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F6634 */ _t70 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6634 */ cpu->r[9] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028F6638 */ cpu->r[5] = cpu->r[28] + 0x00000010u;
|
|
/* 028F663C */ cpu->r[17] = cpu->r[11] + cpu->r[10];
|
|
/* 028F6640 */ _t71 = cpu->r[1] + 0x00000038u;
|
|
/* 028F6640 */ rbrew_write32(cpu->mem, _t71, cpu->r[5]);
|
|
/* 028F6644 */ cpu->r[3] = cpu->r[17];
|
|
/* 028F6648 */ cpu->r[7] = 0x00000000u;
|
|
/* 028F664C */ _t72 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F664C */ rbrew_write32(cpu->mem, _t72, cpu->r[9]);
|
|
/* 028F6650 */ _t73 = cpu->r[28] + 0x00000004u;
|
|
/* 028F6650 */ cpu->r[4] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028F6654 */ cpu->r[5] = cpu->r[1] + 0x00000040u;
|
|
/* 028F6658 */ cpu->r[6] = cpu->r[1] + 0x00000044u;
|
|
/* 028F665C */ _t74 = cpu->r[1] + 0x00000008u;
|
|
/* 028F665C */ cpu->r[8] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028F6660 */ cpu->r[12] = cpu->r[28] + cpu->r[4];
|
|
/* 028F6664 */ _t75 = cpu->r[1] + 0x00000044u;
|
|
/* 028F6664 */ rbrew_write32(cpu->mem, _t75, cpu->r[7]);
|
|
/* 028F6668 */ cpu->r[0] = cpu->r[12] + 0x00000010u;
|
|
/* 028F666C */ cpu->r[4] = cpu->r[1] + 0x00000038u;
|
|
/* 028F6670 */ _t76 = cpu->r[1] + 0x00000048u;
|
|
/* 028F6670 */ rbrew_write32(cpu->mem, _t76, cpu->r[7]);
|
|
/* 028F6674 */ cpu->r[7] = cpu->r[1] + 0x00000048u;
|
|
/* 028F6678 */ _t77 = cpu->r[1] + 0x00000040u;
|
|
/* 028F6678 */ rbrew_write32(cpu->mem, _t77, cpu->r[0]);
|
|
/* 028F667C */ Gambit_fn_028F54F4(cpu);
|
|
/* 028F6680 */ _t78 = cpu->r[17] + 0x00000078u;
|
|
/* 028F6680 */ cpu->r[9] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028F6684 */ _t79 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028F6684 */ cpu->r[4] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028F6688 */ cpu->r[29] = 0x00000000u;
|
|
/* 028F668C */ cpu->r[10] = cpu->r[4] + 0x00000001u;
|
|
/* 028F6690 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[10]);
|
|
/* 028F6694 */ cpu->r[12] = cpu->r[9] + 0x00000008u;
|
|
/* 028F6698 */ _t80 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F6698 */ _t81 = _t80 & 0x00000001u;
|
|
/* 028F6698 */ if (_t81) goto L_028F669C; else goto L_028F6968;
|
|
L_028F669C: ; // 0x28f669c
|
|
/* 028F669C */ goto L_028F6708;
|
|
L_028F66A0: ; // 0x28f66a0
|
|
/* 028F66A0 */ _t82 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F66A0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t82);
|
|
/* 028F66A4 */ cpu->r[17] = cpu->r[11];
|
|
/* 028F66A8 */ cpu->r[5] = cpu->r[28] + 0x00000010u;
|
|
/* 028F66AC */ cpu->r[6] = cpu->r[1] + 0x00000044u;
|
|
/* 028F66B0 */ _t83 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F66B0 */ rbrew_write32(cpu->mem, _t83, cpu->r[9]);
|
|
/* 028F66B4 */ cpu->r[7] = 0x00000000u;
|
|
/* 028F66B8 */ _t84 = cpu->r[1] + 0x00000038u;
|
|
/* 028F66B8 */ rbrew_write32(cpu->mem, _t84, cpu->r[5]);
|
|
/* 028F66BC */ _t85 = cpu->r[28] + 0x00000004u;
|
|
/* 028F66BC */ cpu->r[4] = rbrew_read32(cpu->mem, _t85);
|
|
/* 028F66C0 */ cpu->r[5] = cpu->r[1] + 0x00000040u;
|
|
/* 028F66C4 */ _t86 = cpu->r[1] + 0x00000044u;
|
|
/* 028F66C4 */ rbrew_write32(cpu->mem, _t86, cpu->r[7]);
|
|
/* 028F66C8 */ cpu->r[3] = cpu->r[17];
|
|
/* 028F66CC */ cpu->r[12] = cpu->r[28] + cpu->r[4];
|
|
/* 028F66D0 */ _t87 = cpu->r[1] + 0x00000008u;
|
|
/* 028F66D0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t87);
|
|
/* 028F66D4 */ cpu->r[4] = cpu->r[1] + 0x00000038u;
|
|
/* 028F66D8 */ cpu->r[0] = cpu->r[12] + 0x00000010u;
|
|
/* 028F66DC */ _t88 = cpu->r[1] + 0x00000048u;
|
|
/* 028F66DC */ rbrew_write32(cpu->mem, _t88, cpu->r[7]);
|
|
/* 028F66E0 */ cpu->r[7] = cpu->r[1] + 0x00000048u;
|
|
/* 028F66E4 */ _t89 = cpu->r[1] + 0x00000040u;
|
|
/* 028F66E4 */ rbrew_write32(cpu->mem, _t89, cpu->r[0]);
|
|
/* 028F66E8 */ Gambit_fn_028F54F4(cpu);
|
|
/* 028F66EC */ _t90 = cpu->r[17] + 0x00000078u;
|
|
/* 028F66EC */ cpu->r[9] = rbrew_read32(cpu->mem, _t90);
|
|
/* 028F66F0 */ _t91 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028F66F0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028F66F4 */ cpu->r[29] = 0x00000000u;
|
|
/* 028F66F8 */ cpu->r[10] = cpu->r[4] + 0x00000001u;
|
|
/* 028F66FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[10]);
|
|
/* 028F6700 */ cpu->r[12] = cpu->r[9] + 0x00000008u;
|
|
/* 028F6704 */ _t92 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F6704 */ _t93 = _t92 & 0x00000001u;
|
|
/* 028F6704 */ if (_t93) goto L_028F6708; else goto L_028F6968;
|
|
L_028F6708: ; // 0x28f6708
|
|
/* 028F6708 */ cpu->r[26] = 0xFFFFFFFFu;
|
|
/* 028F670C */ cpu->r[25] = 0xFFFFFF80u;
|
|
L_028F6710: ; // 0x28f6710
|
|
/* 028F6710 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F6714 */ _t94 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F6714 */ _t95 = _t94 & 0x00000001u;
|
|
/* 028F6714 */ if (_t95) goto L_028F6734; else goto L_028F6718;
|
|
L_028F6718: ; // 0x28f6718
|
|
/* 028F6718 */ _t96 = cpu->r[12] + 0x00000000u;
|
|
/* 028F6718 */ cpu->r[30] = rbrew_read32(cpu->mem, _t96);
|
|
/* 028F671C */ cpu->r[31] = 0x00000000u;
|
|
/* 028F6720 */ cpu->r[22] = 0x00000003u;
|
|
/* 028F6724 */ cpu->r[24] = 0x00000001u;
|
|
/* 028F6728 */ cpu->r[20] = cpu->r[31];
|
|
/* 028F672C */ cpu->r[23] = cpu->r[31];
|
|
/* 028F6730 */ goto L_028F675C;
|
|
L_028F6734: ; // 0x28f6734
|
|
/* 028F6734 */ _t97 = cpu->r[12] + 0x00000004u;
|
|
/* 028F6734 */ cpu->r[6] = rbrew_read32(cpu->mem, _t97);
|
|
/* 028F6738 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[6]);
|
|
/* 028F673C */ _t98 = cpu->r[12] + 0x00000008u;
|
|
/* 028F673C */ cpu->r[30] = rbrew_read32(cpu->mem, _t98);
|
|
/* 028F6740 */ _t99 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F6740 */ _t100 = _t99 & 0x00000001u;
|
|
/* 028F6740 */ if (_t100) goto L_028F6744; else goto L_028F6748;
|
|
L_028F6744: ; // 0x28f6744
|
|
/* 028F6744 */ cpu->r[30] = cpu->r[30] + cpu->r[25];
|
|
L_028F6748: ; // 0x28f6748
|
|
/* 028F6748 */ cpu->r[31] = 0x00000000u;
|
|
/* 028F674C */ cpu->r[22] = 0x00000003u;
|
|
/* 028F6750 */ cpu->r[24] = 0x00000001u;
|
|
/* 028F6754 */ cpu->r[20] = cpu->r[31];
|
|
/* 028F6758 */ cpu->r[23] = cpu->r[31];
|
|
L_028F675C: ; // 0x28f675c
|
|
/* 028F675C */ cpu->r[4] = cpu->r[20];
|
|
/* 028F6760 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F6764 */ Gambit_fn_028F41A0(cpu);
|
|
/* 028F6768 */ _t101 = cpu->r[28] + 0x00000008u;
|
|
/* 028F6768 */ cpu->r[5] = rbrew_read32(cpu->mem, _t101);
|
|
/* 028F676C */ /* nop */
|
|
/* 028F6770 */ cpu->r[4] = cpu->r[5] & cpu->r[11];
|
|
/* 028F6770 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F6774 */ cpu->r[21] = cpu->r[3];
|
|
/* 028F6778 */ _t102 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6778 */ _t103 = _t102 & 0x00000001u;
|
|
/* 028F6778 */ if (_t103) goto L_028F691C; else goto L_028F677C;
|
|
L_028F677C: ; // 0x28f677c
|
|
/* 028F677C */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F677C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F6780 */ cpu->r[12] = 0x00000002u;
|
|
/* 028F6784 */ _t104 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028F6784 */ cpu->r[6] = rbrew_read32(cpu->mem, _t104);
|
|
/* 028F6788 */ _t105 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6788 */ _t106 = _t105 & 0x00000001u;
|
|
/* 028F6788 */ if (_t106) goto L_028F6790; else goto L_028F678C;
|
|
L_028F678C: ; // 0x28f678c
|
|
/* 028F678C */ cpu->r[12] = 0x00000003u;
|
|
L_028F6790: ; // 0x28f6790
|
|
/* 028F6790 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)cpu->r[29]);
|
|
/* 028F6794 */ cpu->r[5] = cpu->r[6] + cpu->r[20];
|
|
/* 028F6798 */ cpu->r[7] = cpu->r[5] + cpu->r[8];
|
|
/* 028F679C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0xFFFFFFFFu);
|
|
/* 028F67A0 */ _t107 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F67A0 */ _t108 = _t107 & 0x00000001u;
|
|
/* 028F67A0 */ if (_t108) goto L_028F691C; else goto L_028F67A4;
|
|
L_028F67A4: ; // 0x28f67a4
|
|
/* 028F67A4 */ _t109 = cpu->r[27] + 0x00000014u;
|
|
/* 028F67A4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t109);
|
|
/* 028F67A8 */ _t110 = cpu->r[4] + 0x00000014u;
|
|
/* 028F67A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t110);
|
|
/* 028F67AC */ _t111 = cpu->r[1] + 0x00000024u;
|
|
/* 028F67AC */ rbrew_write32(cpu->mem, _t111, cpu->r[23]);
|
|
/* 028F67B0 */ cpu->r[10] = cpu->r[4] + cpu->r[12];
|
|
/* 028F67B4 */ _t112 = cpu->r[1] + 0x00000030u;
|
|
/* 028F67B4 */ rbrew_write32(cpu->mem, _t112, cpu->r[7]);
|
|
/* 028F67B8 */ cpu->r[5] = cpu->r[10] + 0x00000018u;
|
|
/* 028F67BC */ cpu->r[6] = cpu->r[23];
|
|
/* 028F67C0 */ _t113 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F67C0 */ rbrew_write32(cpu->mem, _t113, cpu->r[5]);
|
|
/* 028F67C4 */ cpu->r[18] = cpu->r[5] + 0x00000008u;
|
|
/* 028F67C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[7]);
|
|
/* 028F67CC */ _t114 = cpu->r[1] + 0x00000028u;
|
|
/* 028F67CC */ rbrew_write32(cpu->mem, _t114, cpu->r[18]);
|
|
/* 028F67D0 */ _t115 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F67D0 */ _t116 = _t115 & 0x00000001u;
|
|
/* 028F67D0 */ if (_t116) goto L_028F67F4; else goto L_028F67D4;
|
|
L_028F67D4: ; // 0x28f67d4
|
|
/* 028F67D4 */ cpu->r[12] = cpu->r[18];
|
|
L_028F67D8: ; // 0x28f67d8
|
|
/* 028F67D8 */ _t117 = cpu->r[1] + 0x00000020u;
|
|
/* 028F67D8 */ rbrew_write32(cpu->mem, _t117, cpu->r[12]);
|
|
/* 028F67DC */ cpu->r[6] = cpu->r[6] + 0x00000001u;
|
|
/* 028F67E0 */ _t118 = cpu->r[12] + 0x00000000u;
|
|
/* 028F67E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t118);
|
|
/* 028F67E4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[7]);
|
|
/* 028F67E8 */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
/* 028F67EC */ _t119 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F67EC */ _t120 = _t119 & 0x00000001u;
|
|
/* 028F67EC */ if (_t120) goto L_028F67F0; else goto L_028F67D8;
|
|
L_028F67F0: ; // 0x28f67f0
|
|
/* 028F67F0 */ cpu->r[18] = cpu->r[12];
|
|
L_028F67F4: ; // 0x28f67f4
|
|
/* 028F67F4 */ _t121 = cpu->r[18] + 0x0000000Cu;
|
|
/* 028F67F4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t121);
|
|
/* 028F67F8 */ cpu->r[3] = cpu->r[18] + 0x00000010u;
|
|
/* 028F67FC */ rbrew_dispatch(cpu, 0x02d09320u);
|
|
/* 028F6800 */ cpu->r[4] = cpu->r[18] + 0x00000010u;
|
|
/* 028F6804 */ cpu->r[3] = cpu->r[21];
|
|
/* 028F6808 */ Gambit_fn_0295EE1C(cpu);
|
|
/* 028F680C */ _t122 = cpu->r[18] + 0x00000008u;
|
|
/* 028F680C */ cpu->r[11] = rbrew_read32(cpu->mem, _t122);
|
|
/* 028F6810 */ cpu->r[9] = 0x00000000u;
|
|
/* 028F6814 */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x0000000Cu, 0x00000014u, 0x0000001Fu);
|
|
/* 028F6818 */ _t123 = rbrew_rlwinm(cpu->r[9], 0x0000000Cu, 0x00000000u, 0x00000013u);
|
|
/* 028F6818 */ _t124 = cpu->r[0] & 0x00000FFFu;
|
|
/* 028F6818 */ cpu->r[0] = _t124 | _t123;
|
|
/* 028F681C */ _t125 = cpu->r[1] + 0x00000018u;
|
|
/* 028F681C */ rbrew_write16(cpu->mem, _t125, (uint16_t)cpu->r[0]);
|
|
/* 028F6820 */ _t126 = cpu->r[18] + 0x00000008u;
|
|
/* 028F6820 */ cpu->r[0] = rbrew_read32(cpu->mem, _t126);
|
|
/* 028F6824 */ cpu->r[10] = rbrew_rlwinm(cpu->r[0], 0x00000014u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F6828 */ _t127 = rbrew_rlwinm(cpu->r[9], 0x00000014u, 0x00000000u, 0x0000000Bu);
|
|
/* 028F6828 */ _t128 = cpu->r[10] & 0x000FFFFFu;
|
|
/* 028F6828 */ cpu->r[10] = _t128 | _t127;
|
|
/* 028F682C */ _t129 = cpu->r[1] + 0x0000001Au;
|
|
/* 028F682C */ rbrew_write16(cpu->mem, _t129, (uint16_t)cpu->r[10]);
|
|
/* 028F6830 */ _t130 = cpu->r[18] + 0x00000008u;
|
|
/* 028F6830 */ cpu->r[12] = rbrew_read32(cpu->mem, _t130);
|
|
/* 028F6834 */ cpu->r[8] = rbrew_rlwinm(cpu->r[12], 0x0000001Au, 0x0000001Au, 0x0000001Fu);
|
|
/* 028F6838 */ _t131 = rbrew_rlwinm(cpu->r[9], 0x0000001Au, 0x00000000u, 0x00000005u);
|
|
/* 028F6838 */ _t132 = cpu->r[8] & 0x03FFFFFFu;
|
|
/* 028F6838 */ cpu->r[8] = _t132 | _t131;
|
|
/* 028F683C */ _t133 = cpu->r[1] + 0x0000001Eu;
|
|
/* 028F683C */ rbrew_write8(cpu->mem, _t133, (uint8_t)cpu->r[8]);
|
|
/* 028F6840 */ _t134 = cpu->r[18] + 0x00000008u;
|
|
/* 028F6840 */ cpu->r[8] = rbrew_read32(cpu->mem, _t134);
|
|
/* 028F6844 */ cpu->r[0] = cpu->r[20];
|
|
/* 028F6848 */ cpu->r[11] = rbrew_rlwinm(cpu->r[8], 0x00000000u, 0x0000001Au, 0x0000001Fu);
|
|
/* 028F684C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028F6850 */ _t135 = cpu->r[1] + 0x0000001Fu;
|
|
/* 028F6850 */ rbrew_write8(cpu->mem, _t135, (uint8_t)cpu->r[11]);
|
|
/* 028F6854 */ _t136 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F6854 */ _t137 = _t136 & 0x00000001u;
|
|
/* 028F6854 */ if (_t137) goto L_028F689C; else goto L_028F6858;
|
|
L_028F6858: ; // 0x28f6858
|
|
/* 028F6858 */ _t138 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6858 */ _t139 = _t138 & 0x00000001u;
|
|
/* 028F6858 */ if (_t139) goto L_028F68B8; else goto L_028F685C;
|
|
L_028F685C: ; // 0x28f685c
|
|
/* 028F685C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000002u);
|
|
/* 028F6860 */ _t140 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6860 */ _t141 = _t140 & 0x00000001u;
|
|
/* 028F6860 */ if (_t141) goto L_028F68D4; else goto L_028F6864;
|
|
L_028F6864: ; // 0x28f6864
|
|
/* 028F6864 */ _t142 = cpu->r[1] + 0x0000001Du;
|
|
/* 028F6864 */ rbrew_write8(cpu->mem, _t142, (uint8_t)cpu->r[9]);
|
|
/* 028F6868 */ _t143 = cpu->r[1] + 0x00000018u;
|
|
/* 028F6868 */ cpu->r[8] = rbrew_read16(cpu->mem, _t143);
|
|
/* 028F686C */ _t144 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F686C */ rbrew_write8(cpu->mem, _t144, (uint8_t)cpu->r[9]);
|
|
/* 028F6870 */ _t145 = cpu->r[21] + 0x00000008u;
|
|
/* 028F6870 */ rbrew_write16(cpu->mem, _t145, (uint16_t)cpu->r[8]);
|
|
/* 028F6874 */ _t146 = cpu->r[1] + 0x0000001Au;
|
|
/* 028F6874 */ cpu->r[0] = rbrew_read16(cpu->mem, _t146);
|
|
/* 028F6878 */ _t147 = cpu->r[21] + 0x0000000Au;
|
|
/* 028F6878 */ rbrew_write16(cpu->mem, _t147, (uint16_t)cpu->r[0]);
|
|
/* 028F687C */ _t148 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F687C */ cpu->r[11] = rbrew_read16(cpu->mem, _t148);
|
|
/* 028F6880 */ _t149 = cpu->r[21] + 0x0000000Cu;
|
|
/* 028F6880 */ rbrew_write16(cpu->mem, _t149, (uint16_t)cpu->r[11]);
|
|
/* 028F6884 */ _t150 = cpu->r[1] + 0x0000001Eu;
|
|
/* 028F6884 */ cpu->r[5] = rbrew_read16(cpu->mem, _t150);
|
|
/* 028F6888 */ cpu->r[31] = cpu->r[31] + 0x00000100u;
|
|
/* 028F688C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[20], 0x00000002u);
|
|
/* 028F6890 */ _t151 = cpu->r[21] + 0x0000000Eu;
|
|
/* 028F6890 */ rbrew_write16(cpu->mem, _t151, (uint16_t)cpu->r[5]);
|
|
/* 028F6894 */ _t152 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6894 */ _t153 = _t152 & 0x00000001u;
|
|
/* 028F6894 */ if (_t153) goto L_028F6898; else goto L_028F691C;
|
|
L_028F6898: ; // 0x28f6898
|
|
/* 028F6898 */ goto L_028F6918;
|
|
L_028F689C: ; // 0x28f689c
|
|
/* 028F689C */ _t154 = cpu->r[21] + 0x00000000u;
|
|
/* 028F689C */ cpu->r[3] = rbrew_read32(cpu->mem, _t154);
|
|
/* 028F68A0 */ rbrew_dispatch(cpu, 0x02d05b60u);
|
|
/* 028F68A4 */ _t155 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F68A4 */ rbrew_write8(cpu->mem, _t155, (uint8_t)cpu->r[3]);
|
|
/* 028F68A8 */ _t156 = cpu->r[21] + 0x00000000u;
|
|
/* 028F68A8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t156);
|
|
/* 028F68AC */ rbrew_dispatch(cpu, 0x02d05b68u);
|
|
/* 028F68B0 */ _t157 = cpu->r[1] + 0x0000001Du;
|
|
/* 028F68B0 */ rbrew_write8(cpu->mem, _t157, (uint8_t)cpu->r[3]);
|
|
/* 028F68B4 */ goto L_028F68EC;
|
|
L_028F68B8: ; // 0x28f68b8
|
|
/* 028F68B8 */ _t158 = cpu->r[21] + 0x00000000u;
|
|
/* 028F68B8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t158);
|
|
/* 028F68BC */ rbrew_dispatch(cpu, 0x02d05aa0u);
|
|
/* 028F68C0 */ _t159 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F68C0 */ rbrew_write8(cpu->mem, _t159, (uint8_t)cpu->r[3]);
|
|
/* 028F68C4 */ _t160 = cpu->r[21] + 0x00000000u;
|
|
/* 028F68C4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t160);
|
|
/* 028F68C8 */ rbrew_dispatch(cpu, 0x02d05aa8u);
|
|
/* 028F68CC */ _t161 = cpu->r[1] + 0x0000001Du;
|
|
/* 028F68CC */ rbrew_write8(cpu->mem, _t161, (uint8_t)cpu->r[3]);
|
|
/* 028F68D0 */ goto L_028F68EC;
|
|
L_028F68D4: ; // 0x28f68d4
|
|
/* 028F68D4 */ _t162 = cpu->r[21] + 0x00000000u;
|
|
/* 028F68D4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t162);
|
|
/* 028F68D8 */ rbrew_dispatch(cpu, 0x02d05a38u);
|
|
/* 028F68DC */ _t163 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F68DC */ rbrew_write8(cpu->mem, _t163, (uint8_t)cpu->r[3]);
|
|
/* 028F68E0 */ _t164 = cpu->r[21] + 0x00000000u;
|
|
/* 028F68E0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t164);
|
|
/* 028F68E4 */ rbrew_dispatch(cpu, 0x02d05a40u);
|
|
/* 028F68E8 */ _t165 = cpu->r[1] + 0x0000001Du;
|
|
/* 028F68E8 */ rbrew_write8(cpu->mem, _t165, (uint8_t)cpu->r[3]);
|
|
L_028F68EC: ; // 0x28f68ec
|
|
/* 028F68EC */ _t166 = cpu->r[1] + 0x00000018u;
|
|
/* 028F68EC */ cpu->r[8] = rbrew_read16(cpu->mem, _t166);
|
|
/* 028F68F0 */ _t167 = cpu->r[21] + 0x00000008u;
|
|
/* 028F68F0 */ rbrew_write16(cpu->mem, _t167, (uint16_t)cpu->r[8]);
|
|
/* 028F68F4 */ _t168 = cpu->r[1] + 0x0000001Au;
|
|
/* 028F68F4 */ cpu->r[0] = rbrew_read16(cpu->mem, _t168);
|
|
/* 028F68F8 */ _t169 = cpu->r[21] + 0x0000000Au;
|
|
/* 028F68F8 */ rbrew_write16(cpu->mem, _t169, (uint16_t)cpu->r[0]);
|
|
/* 028F68FC */ _t170 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F68FC */ cpu->r[11] = rbrew_read16(cpu->mem, _t170);
|
|
/* 028F6900 */ _t171 = cpu->r[21] + 0x0000000Cu;
|
|
/* 028F6900 */ rbrew_write16(cpu->mem, _t171, (uint16_t)cpu->r[11]);
|
|
/* 028F6904 */ _t172 = cpu->r[1] + 0x0000001Eu;
|
|
/* 028F6904 */ cpu->r[5] = rbrew_read16(cpu->mem, _t172);
|
|
/* 028F6908 */ cpu->r[31] = cpu->r[31] + 0x00000100u;
|
|
/* 028F690C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[20], 0x00000002u);
|
|
/* 028F6910 */ _t173 = cpu->r[21] + 0x0000000Eu;
|
|
/* 028F6910 */ rbrew_write16(cpu->mem, _t173, (uint16_t)cpu->r[5]);
|
|
/* 028F6914 */ _t174 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6914 */ _t175 = _t174 & 0x00000001u;
|
|
/* 028F6914 */ if (_t175) goto L_028F6918; else goto L_028F691C;
|
|
L_028F6918: ; // 0x28f6918
|
|
/* 028F6918 */ cpu->r[31] = cpu->r[31] + 0x00000080u;
|
|
L_028F691C: ; // 0x28f691c
|
|
/* 028F691C */ cpu->r[22] = cpu->r[22] + 0xFFFFFFFFu;
|
|
/* 028F691C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], 0x00000000u);
|
|
/* 028F6920 */ cpu->r[20] = cpu->r[20] + 0x00000001u;
|
|
/* 028F6924 */ _t176 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6924 */ _t177 = _t176 & 0x00000001u;
|
|
/* 028F6924 */ if (_t177) goto L_028F6928; else goto L_028F675C;
|
|
L_028F6928: ; // 0x28f6928
|
|
/* 028F6928 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[15], 0x00000000u);
|
|
/* 028F692C */ _t178 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F692C */ _t179 = _t178 & 0x00000001u;
|
|
/* 028F692C */ if (_t179) goto L_028F6944; else goto L_028F6930;
|
|
L_028F6930: ; // 0x28f6930
|
|
/* 028F6930 */ cpu->r[5] = cpu->r[31];
|
|
/* 028F6934 */ cpu->r[4] = cpu->r[16] + cpu->r[19];
|
|
/* 028F6938 */ cpu->r[3] = cpu->r[30] + 0x00000004u;
|
|
/* 028F693C */ Gambit_fn_028EF9F0(cpu);
|
|
/* 028F6940 */ cpu->r[19] = cpu->r[19] + cpu->r[31];
|
|
L_028F6944: ; // 0x28f6944
|
|
/* 028F6944 */ _t180 = cpu->r[17] + 0x00000078u;
|
|
/* 028F6944 */ cpu->r[8] = rbrew_read32(cpu->mem, _t180);
|
|
/* 028F6948 */ _t181 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028F6948 */ cpu->r[10] = rbrew_read32(cpu->mem, _t181);
|
|
/* 028F694C */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028F6950 */ cpu->r[25] = cpu->r[25] + 0x00000080u;
|
|
/* 028F6954 */ cpu->r[9] = cpu->r[10] + 0x00000001u;
|
|
/* 028F6958 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 028F695C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[9]);
|
|
/* 028F6960 */ cpu->r[12] = cpu->r[8] + 0x00000008u;
|
|
/* 028F6964 */ _t182 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F6964 */ _t183 = _t182 & 0x00000001u;
|
|
/* 028F6964 */ if (_t183) goto L_028F6710; else goto L_028F6968;
|
|
L_028F6968: ; // 0x28f6968
|
|
/* 028F6968 */ _t184 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6968 */ cpu->r[6] = rbrew_read32(cpu->mem, _t184);
|
|
/* 028F696C */ cpu->r[14] = cpu->r[14] + 0x00000001u;
|
|
/* 028F6970 */ _t185 = cpu->r[28] + 0x00000000u;
|
|
/* 028F6970 */ cpu->r[12] = rbrew_read32(cpu->mem, _t185);
|
|
/* 028F6974 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[14], cpu->r[6]);
|
|
/* 028F6978 */ cpu->r[28] = cpu->r[28] + cpu->r[12];
|
|
/* 028F697C */ _t186 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F697C */ _t187 = _t186 & 0x00000001u;
|
|
/* 028F697C */ if (_t187) goto L_028F6980; else goto L_028F6620;
|
|
L_028F6980: ; // 0x28f6980
|
|
/* 028F6980 */ _t188 = cpu->r[1] + 0x00000010u;
|
|
/* 028F6980 */ cpu->r[5] = rbrew_read32(cpu->mem, _t188);
|
|
/* 028F6984 */ _t189 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F6984 */ rbrew_write32(cpu->mem, _t189, cpu->r[5]);
|
|
/* 028F6988 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F698C */ _t190 = cpu->r[1] + 0x00000008u;
|
|
/* 028F698C */ cpu->r[5] = rbrew_read32(cpu->mem, _t190);
|
|
/* 028F6990 */ cpu->r[4] = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F6994 */ Gambit_fn_028F5E74(cpu);
|
|
/* 028F6998 */ _t191 = cpu->r[27] + 0x0000001Cu;
|
|
/* 028F6998 */ cpu->r[0] = rbrew_read32(cpu->mem, _t191);
|
|
/* 028F699C */ _t192 = cpu->r[27] + 0x00000020u;
|
|
/* 028F699C */ cpu->r[30] = rbrew_read32(cpu->mem, _t192);
|
|
/* 028F69A0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F69A4 */ cpu->r[31] = cpu->r[30] + cpu->r[0];
|
|
/* 028F69A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F69AC */ _t193 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F69AC */ _t194 = _t193 & 0x00000001u;
|
|
/* 028F69AC */ if (_t194) goto L_028F69DC; else goto L_028F69B0;
|
|
L_028F69B0: ; // 0x28f69b0
|
|
/* 028F69B0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F69B4 */ Gambit_fn_028F4CBC(cpu);
|
|
/* 028F69B8 */ _t195 = cpu->r[30] + 0x00000078u;
|
|
/* 028F69B8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t195);
|
|
/* 028F69BC */ _t196 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028F69BC */ cpu->r[9] = rbrew_read32(cpu->mem, _t196);
|
|
/* 028F69C0 */ _t197 = cpu->r[27] + 0x0000002Cu;
|
|
/* 028F69C0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t197);
|
|
/* 028F69C4 */ cpu->r[7] = cpu->r[9] + 0x00000001u;
|
|
/* 028F69C8 */ cpu->r[30] = cpu->r[30] + 0x00000080u;
|
|
/* 028F69CC */ cpu->r[11] = cpu->r[11] + cpu->r[7];
|
|
/* 028F69D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F69D4 */ _t198 = cpu->r[27] + 0x0000002Cu;
|
|
/* 028F69D4 */ rbrew_write32(cpu->mem, _t198, cpu->r[11]);
|
|
/* 028F69D8 */ _t199 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F69D8 */ _t200 = _t199 & 0x00000001u;
|
|
/* 028F69D8 */ if (_t200) goto L_028F69DC; else goto L_028F69B0;
|
|
L_028F69DC: ; // 0x28f69dc
|
|
/* 028F69DC */ /* nop */
|
|
/* 028F69E0 */ _t201 = cpu->r[1] + 0x000000BCu;
|
|
/* 028F69E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t201);
|
|
/* 028F69E4 */ cpu->lr = cpu->r[0];
|
|
/* 028F69E8 */ cpu->r[1] = cpu->r[1] + 0x000000B8u;
|
|
/* 028F69EC */ return;
|
|
}
|
|
|
|
// fn_028F69F0 @ 0x28f69f0
|
|
void Gambit_fn_028F69F0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F3F1C: ; // 0x28f3f1c
|
|
/* 028F3F1C */ cpu->r[0] = cpu->lr;
|
|
/* 028F3F20 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F3F20 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F3F20 */ cpu->r[1] = _t0;
|
|
/* 028F3F24 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F3F24 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028F3F28 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F3F28 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F3F2C */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028F3F2C */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028F3F30 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028F3F30 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028F3F34 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F3F34 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F3F38 */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 028F3F38 */ cpu->r[9] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028F3F3C */ cpu->r[30] = cpu->r[3];
|
|
/* 028F3F40 */ cpu->r[31] = 0x00000000u;
|
|
/* 028F3F44 */ cpu->r[28] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F3F48 */ cpu->r[29] = rbrew_rlwinm(cpu->r[9], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F3F4C */ Gambit_fn_028F3C4C(cpu);
|
|
/* 028F3F50 */ cpu->r[3] = cpu->r[30] + 0x0000003Cu;
|
|
/* 028F3F54 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F3F58 */ cpu->r[5] = cpu->r[29];
|
|
/* 028F3F5C */ Gambit_fn_0295ECC4(cpu);
|
|
/* 028F3F60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3F64 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3F64 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F3F64 */ if (_t8) goto L_028F3F84; else goto L_028F3F68;
|
|
L_028F3F68: ; // 0x28f3f68
|
|
/* 028F3F68 */ _t9 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3F68 */ cpu->r[9] = rbrew_read8(cpu->mem, _t9);
|
|
/* 028F3F6C */ cpu->r[9] = cpu->r[9] & 0x000000FDu;
|
|
/* 028F3F6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F3F70 */ cpu->r[31] = 0x00000001u;
|
|
/* 028F3F74 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F3F74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3F78 */ _t10 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3F78 */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[9]);
|
|
/* 028F3F7C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3F7C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F3F7C */ if (_t12) goto L_028F40AC; else goto L_028F3F80;
|
|
L_028F3F80: ; // 0x28f3f80
|
|
/* 028F3F80 */ goto L_028F408C;
|
|
L_028F3F84: ; // 0x28f3f84
|
|
/* 028F3F84 */ cpu->r[5] = cpu->r[29];
|
|
/* 028F3F88 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F3F8C */ cpu->r[3] = cpu->r[30] + 0x00000050u;
|
|
/* 028F3F90 */ Gambit_fn_0295ECC4(cpu);
|
|
/* 028F3F94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F3F98 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3F98 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F3F98 */ if (_t14) goto L_028F3FB8; else goto L_028F3F9C;
|
|
L_028F3F9C: ; // 0x28f3f9c
|
|
/* 028F3F9C */ _t15 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3F9C */ cpu->r[9] = rbrew_read8(cpu->mem, _t15);
|
|
/* 028F3FA0 */ cpu->r[9] = cpu->r[9] & 0x000000FDu;
|
|
/* 028F3FA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F3FA4 */ cpu->r[31] = 0x00000002u;
|
|
/* 028F3FA8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F3FA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3FAC */ _t16 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3FAC */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[9]);
|
|
/* 028F3FB0 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3FB0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F3FB0 */ if (_t18) goto L_028F40AC; else goto L_028F3FB4;
|
|
L_028F3FB4: ; // 0x28f3fb4
|
|
/* 028F3FB4 */ goto L_028F408C;
|
|
L_028F3FB8: ; // 0x28f3fb8
|
|
/* 028F3FB8 */ cpu->r[5] = cpu->r[29];
|
|
/* 028F3FBC */ cpu->r[4] = cpu->r[28];
|
|
/* 028F3FC0 */ cpu->r[3] = cpu->r[30] + 0x00000064u;
|
|
/* 028F3FC4 */ Gambit_fn_0295ECC4(cpu);
|
|
/* 028F3FC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000001u);
|
|
/* 028F3FCC */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3FCC */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F3FCC */ if (_t20) goto L_028F3FD0; else goto L_028F3FEC;
|
|
L_028F3FD0: ; // 0x28f3fd0
|
|
/* 028F3FD0 */ _t21 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3FD0 */ cpu->r[9] = rbrew_read8(cpu->mem, _t21);
|
|
/* 028F3FD4 */ cpu->r[9] = cpu->r[9] & 0x000000FDu;
|
|
/* 028F3FD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F3FD8 */ cpu->r[31] = 0x00000003u;
|
|
/* 028F3FDC */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F3FDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3FE0 */ _t22 = cpu->r[30] + 0x00000000u;
|
|
/* 028F3FE0 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[9]);
|
|
/* 028F3FE4 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3FE4 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028F3FE4 */ if (_t24) goto L_028F40AC; else goto L_028F3FE8;
|
|
L_028F3FE8: ; // 0x28f3fe8
|
|
/* 028F3FE8 */ goto L_028F408C;
|
|
L_028F3FEC: ; // 0x28f3fec
|
|
/* 028F3FEC */ _t25 = cpu->r[30] + 0x00000064u;
|
|
/* 028F3FEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F3FF0 */ _t26 = cpu->r[30] + 0x00000078u;
|
|
/* 028F3FF0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F3FF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F3FF8 */ cpu->r[0] = 0x00000002u;
|
|
/* 028F3FFC */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F3FFC */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F3FFC */ if (_t28) goto L_028F4000; else goto L_028F4008;
|
|
L_028F4000: ; // 0x28f4000
|
|
/* 028F4000 */ _t29 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028F4000 */ cpu->r[11] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F4004 */ _t30 = cpu->r[11] + 0x000000D8u;
|
|
/* 028F4004 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
L_028F4008: ; // 0x28f4008
|
|
/* 028F4008 */ _t31 = cpu->r[12] + 0x00000028u;
|
|
/* 028F4008 */ rbrew_write32(cpu->mem, _t31, cpu->r[0]);
|
|
/* 028F400C */ _t32 = cpu->r[30] + 0x00000004u;
|
|
/* 028F400C */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F4010 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F4014 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4014 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F4014 */ if (_t34) goto L_028F4070; else goto L_028F4018;
|
|
L_028F4018: ; // 0x28f4018
|
|
/* 028F4018 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F401C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F401C */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F401C */ if (_t36) goto L_028F4020; else goto L_028F4064;
|
|
L_028F4020: ; // 0x28f4020
|
|
/* 028F4020 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028F4024 */ _t37 = cpu->r[29] + 0xFFFF9B14u;
|
|
/* 028F4024 */ cpu->r[3] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F4028 */ Gambit_fn_028F0178(cpu);
|
|
/* 028F402C */ cpu->r[3] = cpu->r[30] + 0x00000004u;
|
|
/* 028F4030 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F4034 */ Gambit_fn_028EFBD0(cpu);
|
|
/* 028F4038 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F403C */ Gambit_fn_028F3D08(cpu);
|
|
/* 028F4040 */ cpu->r[3] = cpu->r[30] + 0x00000004u;
|
|
/* 028F4044 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F4048 */ Gambit_fn_028EFC14(cpu);
|
|
/* 028F404C */ _t38 = cpu->r[29] + 0xFFFF9B14u;
|
|
/* 028F404C */ cpu->r[3] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F4050 */ Gambit_fn_028F0188(cpu);
|
|
/* 028F4054 */ _t39 = cpu->r[30] + 0x00000000u;
|
|
/* 028F4054 */ cpu->r[0] = rbrew_read8(cpu->mem, _t39);
|
|
/* 028F4058 */ cpu->r[11] = cpu->r[0] | 0x00000001u;
|
|
/* 028F405C */ cpu->r[9] = cpu->r[11] & 0x000000F7u;
|
|
/* 028F405C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F4060 */ goto L_028F407C;
|
|
L_028F4064: ; // 0x28f4064
|
|
/* 028F4064 */ _t40 = cpu->r[30] + 0x00000010u;
|
|
/* 028F4064 */ cpu->r[10] = rbrew_read8(cpu->mem, _t40);
|
|
/* 028F4068 */ cpu->r[10] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Du);
|
|
/* 028F406C */ _t41 = cpu->r[30] + 0x00000010u;
|
|
/* 028F406C */ rbrew_write8(cpu->mem, _t41, (uint8_t)cpu->r[10]);
|
|
L_028F4070: ; // 0x28f4070
|
|
/* 028F4070 */ _t42 = cpu->r[30] + 0x00000000u;
|
|
/* 028F4070 */ cpu->r[0] = rbrew_read8(cpu->mem, _t42);
|
|
/* 028F4074 */ cpu->r[11] = cpu->r[0] | 0x00000001u;
|
|
/* 028F4078 */ cpu->r[9] = cpu->r[11] & 0x000000F7u;
|
|
/* 028F4078 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
L_028F407C: ; // 0x28f407c
|
|
/* 028F407C */ cpu->r[9] = cpu->r[9] & 0x000000FDu;
|
|
/* 028F407C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028F4080 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F4080 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F4084 */ _t43 = cpu->r[30] + 0x00000000u;
|
|
/* 028F4084 */ rbrew_write8(cpu->mem, _t43, (uint8_t)cpu->r[9]);
|
|
/* 028F4088 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F4088 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028F4088 */ if (_t45) goto L_028F40AC; else goto L_028F408C;
|
|
L_028F408C: ; // 0x28f408c
|
|
/* 028F408C */ cpu->r[3] = cpu->r[30];
|
|
/* 028F4090 */ Gambit_fn_028F3D7C(cpu);
|
|
/* 028F4094 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F4098 */ Gambit_fn_028F3DE4(cpu);
|
|
/* 028F409C */ cpu->r[3] = cpu->r[30];
|
|
/* 028F40A0 */ Gambit_fn_028F3E4C(cpu);
|
|
/* 028F40A4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F40A8 */ Gambit_fn_028F3EB4(cpu);
|
|
L_028F40AC: ; // 0x28f40ac
|
|
/* 028F40AC */ _t46 = cpu->r[30] + 0x00000078u;
|
|
/* 028F40AC */ cpu->r[10] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F40B0 */ _t47 = cpu->r[10] + 0x00000020u;
|
|
/* 028F40B0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F40B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F40B8 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F40B8 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F40B8 */ if (_t49) goto L_028F40D0; else goto L_028F40BC;
|
|
L_028F40BC: ; // 0x28f40bc
|
|
/* 028F40BC */ _t50 = cpu->r[3] + 0x00000000u;
|
|
/* 028F40BC */ cpu->r[11] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F40C0 */ _t51 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028F40C0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F40C4 */ cpu->ctr = cpu->r[12];
|
|
/* 028F40C8 */ cpu->r[4] = cpu->r[30];
|
|
/* 028F40CC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028F40D0: ; // 0x28f40d0
|
|
/* 028F40D0 */ _t52 = cpu->r[1] + 0x00000008u;
|
|
/* 028F40D0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028F40D4 */ _t53 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F40D4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028F40D8 */ _t54 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F40D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028F40DC */ cpu->r[3] = cpu->r[31];
|
|
/* 028F40E0 */ _t55 = cpu->r[1] + 0x00000010u;
|
|
/* 028F40E0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028F40E4 */ cpu->lr = cpu->r[0];
|
|
/* 028F40E8 */ _t56 = cpu->r[1] + 0x00000014u;
|
|
/* 028F40E8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028F40EC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F40F0 */ return;
|
|
L_028F69F0: ; // 0x28f69f0
|
|
/* 028F69F0 */ _t57 = cpu->r[3] + 0x000000ECu;
|
|
/* 028F69F0 */ cpu->r[0] = rbrew_read8(cpu->mem, _t57);
|
|
/* 028F69F4 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F69F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F69F8 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F69F8 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028F69F8 */ if (_t59) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F69F8 */ goto L_028F69FC;
|
|
L_028F69FC: ; // 0x28f69fc
|
|
/* 028F69FC */ _t60 = cpu->r[3] + 0x00000008u;
|
|
/* 028F69FC */ cpu->r[9] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028F6A00 */ _t61 = cpu->r[3] + 0x00000004u;
|
|
/* 028F6A00 */ cpu->r[11] = rbrew_read16(cpu->mem, _t61);
|
|
/* 028F6A04 */ _t62 = cpu->r[9] + 0x0000001Cu;
|
|
/* 028F6A04 */ cpu->r[10] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028F6A04 */ cpu->r[9] = _t62;
|
|
/* 028F6A08 */ _t63 = cpu->r[9] + 0x00000004u;
|
|
/* 028F6A08 */ cpu->r[12] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028F6A0C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[10]);
|
|
/* 028F6A10 */ _t64 = cpu->r[3] + 0x00000006u;
|
|
/* 028F6A10 */ cpu->r[10] = rbrew_read16(cpu->mem, _t64);
|
|
/* 028F6A14 */ _t65 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F6A14 */ _t66 = _t65 & 0x00000001u;
|
|
/* 028F6A14 */ if (_t66) goto L_028F6A18; else goto L_028F6A20;
|
|
L_028F6A18: ; // 0x28f6a18
|
|
/* 028F6A18 */ cpu->r[11] = rbrew_rlwinm(cpu->r[11], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F6A1C */ cpu->r[12] = cpu->r[12] + cpu->r[11];
|
|
L_028F6A20: ; // 0x28f6a20
|
|
/* 028F6A20 */ _t67 = cpu->r[12] + 0x00000078u;
|
|
/* 028F6A20 */ cpu->r[11] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028F6A24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F6A28 */ cpu->r[9] = cpu->r[11] + 0x00000008u;
|
|
/* 028F6A2C */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6A2C */ _t69 = _t68 & 0x00000001u;
|
|
/* 028F6A2C */ if (_t69) goto L_028F6A30; else goto L_028F6A4C;
|
|
L_028F6A30: ; // 0x28f6a30
|
|
/* 028F6A30 */ _t70 = cpu->r[9] + 0x00000000u;
|
|
/* 028F6A30 */ cpu->r[3] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028F6A34 */ _t71 = cpu->r[3] + 0x00000000u;
|
|
/* 028F6A34 */ cpu->r[0] = rbrew_read8(cpu->mem, _t71);
|
|
/* 028F6A38 */ cpu->r[11] = cpu->r[0] | 0x0000000Au;
|
|
/* 028F6A3C */ cpu->r[10] = rbrew_rlwinm(cpu->r[11], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F6A3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F6A40 */ _t72 = cpu->r[3] + 0x00000000u;
|
|
/* 028F6A40 */ rbrew_write8(cpu->mem, _t72, (uint8_t)cpu->r[11]);
|
|
/* 028F6A44 */ _t73 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6A44 */ _t74 = _t73 & 0x00000001u;
|
|
/* 028F6A44 */ if (_t74) goto L_028F6A48; else goto L_028F6A80;
|
|
L_028F6A48: ; // 0x28f6a48
|
|
/* 028F6A48 */ return;
|
|
L_028F6A4C: ; // 0x28f6a4c
|
|
/* 028F6A4C */ _t75 = cpu->r[9] + 0x00000004u;
|
|
/* 028F6A4C */ cpu->r[0] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028F6A50 */ cpu->r[12] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 028F6A54 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F6A58 */ _t76 = cpu->r[9] + 0x00000008u;
|
|
/* 028F6A58 */ cpu->r[3] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028F6A5C */ _t77 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F6A5C */ _t78 = _t77 & 0x00000001u;
|
|
/* 028F6A5C */ if (_t78) goto L_028F6A60; else goto L_028F6A6C;
|
|
L_028F6A60: ; // 0x28f6a60
|
|
/* 028F6A60 */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F6A64 */ cpu->r[12] = cpu->r[3] + cpu->r[0];
|
|
/* 028F6A68 */ cpu->r[3] = cpu->r[12] + 0xFFFFFF80u;
|
|
L_028F6A6C: ; // 0x28f6a6c
|
|
/* 028F6A6C */ _t79 = cpu->r[3] + 0x00000000u;
|
|
/* 028F6A6C */ cpu->r[0] = rbrew_read8(cpu->mem, _t79);
|
|
/* 028F6A70 */ cpu->r[11] = cpu->r[0] | 0x0000000Au;
|
|
/* 028F6A74 */ _t80 = cpu->r[3] + 0x00000000u;
|
|
/* 028F6A74 */ rbrew_write8(cpu->mem, _t80, (uint8_t)cpu->r[11]);
|
|
/* 028F6A78 */ cpu->r[10] = rbrew_rlwinm(cpu->r[11], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F6A78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028F6A7C */ _t81 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6A7C */ _t82 = _t81 & 0x00000001u;
|
|
/* 028F6A7C */ if (_t82) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F6A7C */ goto L_028F6A80;
|
|
L_028F6A80: ; // 0x28f6a80
|
|
/* 028F6A80 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F6A84 */ goto L_028F3F1C;
|
|
}
|
|
|
|
// fn_028F6A88 @ 0x28f6a88
|
|
void Gambit_fn_028F6A88(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44;
|
|
|
|
L_028F6A88: ; // 0x28f6a88
|
|
/* 028F6A88 */ cpu->r[0] = cpu->lr;
|
|
/* 028F6A8C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F6A8C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F6A8C */ cpu->r[1] = _t0;
|
|
/* 028F6A90 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F6A90 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028F6A94 */ cpu->r[28] = cpu->r[3];
|
|
/* 028F6A98 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F6A98 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F6A9C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6A9C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028F6AA0 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6AA0 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028F6AA4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F6AA4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F6AA8 */ cpu->r[29] = cpu->r[4];
|
|
/* 028F6AAC */ _t6 = cpu->r[28] + 0x00000034u;
|
|
/* 028F6AAC */ cpu->r[5] = rbrew_read16(cpu->mem, _t6);
|
|
/* 028F6AB0 */ cpu->r[5] = cpu->r[5] + 0x00000001u;
|
|
/* 028F6AB4 */ _t7 = cpu->r[28] + 0x00000034u;
|
|
/* 028F6AB4 */ rbrew_write16(cpu->mem, _t7, (uint16_t)cpu->r[5]);
|
|
/* 028F6AB8 */ rbrew_dispatch(cpu, 0x02d0ab30u);
|
|
/* 028F6ABC */ _t8 = cpu->r[28] + 0x00000038u;
|
|
/* 028F6ABC */ cpu->r[7] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F6AC0 */ _t9 = cpu->r[28] + 0x0000003Cu;
|
|
/* 028F6AC0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F6AC4 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)0x000000F0u);
|
|
/* 028F6AC8 */ cpu->r[30] = cpu->r[31] + cpu->r[6];
|
|
/* 028F6ACC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F6AD0 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6AD0 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F6AD0 */ if (_t11) goto L_028F6AE8; else goto L_028F6AD4;
|
|
L_028F6AD4: ; // 0x28f6ad4
|
|
/* 028F6AD4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F6AD8 */ Gambit_fn_028F69F0(cpu);
|
|
/* 028F6ADC */ cpu->r[31] = cpu->r[31] + 0x000000F0u;
|
|
/* 028F6AE0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F6AE4 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6AE4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F6AE4 */ if (_t13) goto L_028F6AE8; else goto L_028F6AD4;
|
|
L_028F6AE8: ; // 0x28f6ae8
|
|
/* 028F6AE8 */ _t14 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028F6AE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F6AEC */ _t15 = cpu->r[28] + 0x00000020u;
|
|
/* 028F6AEC */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F6AF0 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F6AF4 */ cpu->r[31] = cpu->r[30] + cpu->r[8];
|
|
/* 028F6AF8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F6AFC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6AFC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F6AFC */ if (_t17) goto L_028F6B60; else goto L_028F6B00;
|
|
L_028F6B00: ; // 0x28f6b00
|
|
/* 028F6B00 */ _t18 = cpu->r[28] + 0x00000024u;
|
|
/* 028F6B00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F6B04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F6B08 */ _t19 = cpu->r[30] + 0x00000078u;
|
|
/* 028F6B08 */ cpu->r[9] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F6B0C */ _t20 = cpu->r[9] + 0x00000020u;
|
|
/* 028F6B0C */ rbrew_write32(cpu->mem, _t20, cpu->r[0]);
|
|
/* 028F6B10 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6B10 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F6B10 */ if (_t22) goto L_028F6B20; else goto L_028F6B14;
|
|
L_028F6B14: ; // 0x28f6b14
|
|
/* 028F6B14 */ _t23 = cpu->r[28] + 0x00000034u;
|
|
/* 028F6B14 */ cpu->r[10] = rbrew_read16(cpu->mem, _t23);
|
|
/* 028F6B18 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], 0x00000001u);
|
|
/* 028F6B1C */ _t24 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F6B1C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F6B1C */ if (_t25) goto L_028F6B54; else goto L_028F6B20;
|
|
L_028F6B20: ; // 0x28f6b20
|
|
/* 028F6B20 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F6B24 */ Gambit_fn_028F4BBC(cpu);
|
|
/* 028F6B28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6B2C */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6B2C */ _t27 = _t26 & 0x00000001u;
|
|
/* 028F6B2C */ if (_t27) goto L_028F6B54; else goto L_028F6B30;
|
|
L_028F6B30: ; // 0x28f6b30
|
|
/* 028F6B30 */ _t28 = cpu->r[1] + 0x00000008u;
|
|
/* 028F6B30 */ cpu->r[28] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F6B34 */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6B34 */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F6B38 */ _t30 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F6B38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F6B3C */ _t31 = cpu->r[1] + 0x00000010u;
|
|
/* 028F6B3C */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F6B40 */ cpu->lr = cpu->r[0];
|
|
/* 028F6B44 */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6B44 */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F6B48 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F6B4C */ cpu->r[3] = 0x00000000u;
|
|
/* 028F6B50 */ return;
|
|
L_028F6B54: ; // 0x28f6b54
|
|
/* 028F6B54 */ cpu->r[30] = cpu->r[30] + 0x00000080u;
|
|
/* 028F6B58 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F6B5C */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6B5C */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F6B5C */ if (_t34) goto L_028F6B60; else goto L_028F6B00;
|
|
L_028F6B60: ; // 0x28f6b60
|
|
/* 028F6B60 */ rbrew_dispatch(cpu, 0x02d0ab30u);
|
|
/* 028F6B64 */ _t35 = cpu->r[28] + 0x00000028u;
|
|
/* 028F6B64 */ cpu->r[3] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F6B68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6B6C */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6B6C */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F6B6C */ if (_t37) goto L_028F6B84; else goto L_028F6B70;
|
|
L_028F6B70: ; // 0x28f6b70
|
|
/* 028F6B70 */ _t38 = cpu->r[3] + 0x00000000u;
|
|
/* 028F6B70 */ cpu->r[11] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F6B74 */ _t39 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028F6B74 */ cpu->r[12] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F6B78 */ cpu->ctr = cpu->r[12];
|
|
/* 028F6B7C */ cpu->r[4] = cpu->r[28];
|
|
/* 028F6B80 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028F6B84: ; // 0x28f6b84
|
|
/* 028F6B84 */ _t40 = cpu->r[1] + 0x00000008u;
|
|
/* 028F6B84 */ cpu->r[28] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028F6B88 */ _t41 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6B88 */ cpu->r[29] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F6B8C */ _t42 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F6B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F6B90 */ _t43 = cpu->r[1] + 0x00000010u;
|
|
/* 028F6B90 */ cpu->r[30] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028F6B94 */ cpu->lr = cpu->r[0];
|
|
/* 028F6B98 */ _t44 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6B98 */ cpu->r[31] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028F6B9C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F6BA0 */ cpu->r[3] = 0x00000001u;
|
|
/* 028F6BA4 */ return;
|
|
}
|
|
|
|
// fn_028F6A8C @ 0x28f6a8c
|
|
void Gambit_fn_028F6A8C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44;
|
|
|
|
L_028F6A8C: ; // 0x28f6a8c
|
|
/* 028F6A8C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F6A8C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F6A8C */ cpu->r[1] = _t0;
|
|
/* 028F6A90 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F6A90 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028F6A94 */ cpu->r[28] = cpu->r[3];
|
|
/* 028F6A98 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F6A98 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F6A9C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6A9C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028F6AA0 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6AA0 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028F6AA4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F6AA4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F6AA8 */ cpu->r[29] = cpu->r[4];
|
|
/* 028F6AAC */ _t6 = cpu->r[28] + 0x00000034u;
|
|
/* 028F6AAC */ cpu->r[5] = rbrew_read16(cpu->mem, _t6);
|
|
/* 028F6AB0 */ cpu->r[5] = cpu->r[5] + 0x00000001u;
|
|
/* 028F6AB4 */ _t7 = cpu->r[28] + 0x00000034u;
|
|
/* 028F6AB4 */ rbrew_write16(cpu->mem, _t7, (uint16_t)cpu->r[5]);
|
|
/* 028F6AB8 */ rbrew_dispatch(cpu, 0x02d0ab30u);
|
|
/* 028F6ABC */ _t8 = cpu->r[28] + 0x00000038u;
|
|
/* 028F6ABC */ cpu->r[7] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F6AC0 */ _t9 = cpu->r[28] + 0x0000003Cu;
|
|
/* 028F6AC0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F6AC4 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)0x000000F0u);
|
|
/* 028F6AC8 */ cpu->r[30] = cpu->r[31] + cpu->r[6];
|
|
/* 028F6ACC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F6AD0 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6AD0 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F6AD0 */ if (_t11) goto L_028F6AE8; else goto L_028F6AD4;
|
|
L_028F6AD4: ; // 0x28f6ad4
|
|
/* 028F6AD4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F6AD8 */ Gambit_fn_028F69F0(cpu);
|
|
/* 028F6ADC */ cpu->r[31] = cpu->r[31] + 0x000000F0u;
|
|
/* 028F6AE0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028F6AE4 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6AE4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F6AE4 */ if (_t13) goto L_028F6AE8; else goto L_028F6AD4;
|
|
L_028F6AE8: ; // 0x28f6ae8
|
|
/* 028F6AE8 */ _t14 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028F6AE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F6AEC */ _t15 = cpu->r[28] + 0x00000020u;
|
|
/* 028F6AEC */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F6AF0 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F6AF4 */ cpu->r[31] = cpu->r[30] + cpu->r[8];
|
|
/* 028F6AF8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F6AFC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6AFC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F6AFC */ if (_t17) goto L_028F6B60; else goto L_028F6B00;
|
|
L_028F6B00: ; // 0x28f6b00
|
|
/* 028F6B00 */ _t18 = cpu->r[28] + 0x00000024u;
|
|
/* 028F6B00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F6B04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F6B08 */ _t19 = cpu->r[30] + 0x00000078u;
|
|
/* 028F6B08 */ cpu->r[9] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F6B0C */ _t20 = cpu->r[9] + 0x00000020u;
|
|
/* 028F6B0C */ rbrew_write32(cpu->mem, _t20, cpu->r[0]);
|
|
/* 028F6B10 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6B10 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F6B10 */ if (_t22) goto L_028F6B20; else goto L_028F6B14;
|
|
L_028F6B14: ; // 0x28f6b14
|
|
/* 028F6B14 */ _t23 = cpu->r[28] + 0x00000034u;
|
|
/* 028F6B14 */ cpu->r[10] = rbrew_read16(cpu->mem, _t23);
|
|
/* 028F6B18 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], 0x00000001u);
|
|
/* 028F6B1C */ _t24 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F6B1C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F6B1C */ if (_t25) goto L_028F6B54; else goto L_028F6B20;
|
|
L_028F6B20: ; // 0x28f6b20
|
|
/* 028F6B20 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F6B24 */ Gambit_fn_028F4BBC(cpu);
|
|
/* 028F6B28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6B2C */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6B2C */ _t27 = _t26 & 0x00000001u;
|
|
/* 028F6B2C */ if (_t27) goto L_028F6B54; else goto L_028F6B30;
|
|
L_028F6B30: ; // 0x28f6b30
|
|
/* 028F6B30 */ _t28 = cpu->r[1] + 0x00000008u;
|
|
/* 028F6B30 */ cpu->r[28] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F6B34 */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6B34 */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F6B38 */ _t30 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F6B38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F6B3C */ _t31 = cpu->r[1] + 0x00000010u;
|
|
/* 028F6B3C */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F6B40 */ cpu->lr = cpu->r[0];
|
|
/* 028F6B44 */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6B44 */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F6B48 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F6B4C */ cpu->r[3] = 0x00000000u;
|
|
/* 028F6B50 */ return;
|
|
L_028F6B54: ; // 0x28f6b54
|
|
/* 028F6B54 */ cpu->r[30] = cpu->r[30] + 0x00000080u;
|
|
/* 028F6B58 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 028F6B5C */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6B5C */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F6B5C */ if (_t34) goto L_028F6B60; else goto L_028F6B00;
|
|
L_028F6B60: ; // 0x28f6b60
|
|
/* 028F6B60 */ rbrew_dispatch(cpu, 0x02d0ab30u);
|
|
/* 028F6B64 */ _t35 = cpu->r[28] + 0x00000028u;
|
|
/* 028F6B64 */ cpu->r[3] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F6B68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6B6C */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6B6C */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F6B6C */ if (_t37) goto L_028F6B84; else goto L_028F6B70;
|
|
L_028F6B70: ; // 0x28f6b70
|
|
/* 028F6B70 */ _t38 = cpu->r[3] + 0x00000000u;
|
|
/* 028F6B70 */ cpu->r[11] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F6B74 */ _t39 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028F6B74 */ cpu->r[12] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F6B78 */ cpu->ctr = cpu->r[12];
|
|
/* 028F6B7C */ cpu->r[4] = cpu->r[28];
|
|
/* 028F6B80 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028F6B84: ; // 0x28f6b84
|
|
/* 028F6B84 */ _t40 = cpu->r[1] + 0x00000008u;
|
|
/* 028F6B84 */ cpu->r[28] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028F6B88 */ _t41 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6B88 */ cpu->r[29] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F6B8C */ _t42 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F6B8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F6B90 */ _t43 = cpu->r[1] + 0x00000010u;
|
|
/* 028F6B90 */ cpu->r[30] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028F6B94 */ cpu->lr = cpu->r[0];
|
|
/* 028F6B98 */ _t44 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6B98 */ cpu->r[31] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028F6B9C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F6BA0 */ cpu->r[3] = 0x00000001u;
|
|
/* 028F6BA4 */ return;
|
|
}
|
|
|
|
// fn_028F6BA8 @ 0x28f6ba8
|
|
void Gambit_fn_028F6BA8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028F6BA8: ; // 0x28f6ba8
|
|
/* 028F6BA8 */ cpu->r[0] = cpu->lr;
|
|
/* 028F6BAC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F6BAC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F6BAC */ cpu->r[1] = _t0;
|
|
/* 028F6BB0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6BB0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F6BB4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F6BB8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6BB8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F6BBC */ Gambit_fn_028F5DA4(cpu);
|
|
/* 028F6BC0 */ _t3 = cpu->r[31] + 0x00000036u;
|
|
/* 028F6BC0 */ cpu->r[0] = rbrew_read16(cpu->mem, _t3);
|
|
/* 028F6BC4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F6BC8 */ cpu->r[4] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F6BCC */ Gambit_fn_028F6A88(cpu);
|
|
/* 028F6BD0 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6BD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F6BD4 */ cpu->lr = cpu->r[0];
|
|
/* 028F6BD8 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6BD8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F6BDC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F6BE0 */ return;
|
|
}
|
|
|
|
// fn_028F6BAC @ 0x28f6bac
|
|
void Gambit_fn_028F6BAC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028F6BAC: ; // 0x28f6bac
|
|
/* 028F6BAC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F6BAC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F6BAC */ cpu->r[1] = _t0;
|
|
/* 028F6BB0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6BB0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F6BB4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F6BB8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6BB8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F6BBC */ Gambit_fn_028F5DA4(cpu);
|
|
/* 028F6BC0 */ _t3 = cpu->r[31] + 0x00000036u;
|
|
/* 028F6BC0 */ cpu->r[0] = rbrew_read16(cpu->mem, _t3);
|
|
/* 028F6BC4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F6BC8 */ cpu->r[4] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F6BCC */ Gambit_fn_028F6A88(cpu);
|
|
/* 028F6BD0 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6BD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F6BD4 */ cpu->lr = cpu->r[0];
|
|
/* 028F6BD8 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6BD8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F6BDC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F6BE0 */ return;
|
|
}
|
|
|
|
// fn_028F6BE4 @ 0x28f6be4
|
|
void Gambit_fn_028F6BE4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F6BE4: ; // 0x28f6be4
|
|
/* 028F6BE4 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028F6BE4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F6BE4 */ cpu->r[1] = _t0;
|
|
/* 028F6BE8 */ /* nop */
|
|
/* 028F6BEC */ cpu->r[0] = cpu->lr;
|
|
/* 028F6BF0 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F6BF0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F6BF4 */ _t2 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028F6BF4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F6BF8 */ _t3 = cpu->r[3] + 0x00000020u;
|
|
/* 028F6BF8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F6BFC */ cpu->r[8] = rbrew_rlwinm(cpu->r[8], 0x00000007u, 0x00000000u, 0x00000018u);
|
|
/* 028F6C00 */ cpu->r[28] = cpu->r[29] + cpu->r[8];
|
|
/* 028F6C04 */ cpu->r[26] = cpu->r[4];
|
|
/* 028F6C08 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[28]);
|
|
/* 028F6C0C */ cpu->r[30] = cpu->r[29];
|
|
/* 028F6C10 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6C10 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F6C10 */ if (_t5) goto L_028F6CD0; else goto L_028F6C14;
|
|
L_028F6C14: ; // 0x28f6c14
|
|
/* 028F6C14 */ cpu->r[31] = 0x10110000u;
|
|
/* 028F6C18 */ cpu->r[24] = 0x00080000u;
|
|
/* 028F6C1C */ _t6 = cpu->r[31] + 0x00007399u;
|
|
/* 028F6C1C */ cpu->r[31] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028F6C20 */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
L_028F6C24: ; // 0x28f6c24
|
|
/* 028F6C24 */ _t7 = cpu->r[29] + 0x00000078u;
|
|
/* 028F6C24 */ cpu->r[25] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F6C28 */ _t8 = cpu->r[25] + 0x00000004u;
|
|
/* 028F6C28 */ cpu->r[9] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F6C2C */ _t9 = cpu->r[9] + 0x00000014u;
|
|
/* 028F6C2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F6C30 */ cpu->ctr = cpu->r[0];
|
|
/* 028F6C34 */ cpu->r[3] = cpu->r[25];
|
|
/* 028F6C38 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F6C3C */ _t10 = cpu->r[25] + 0x00000004u;
|
|
/* 028F6C3C */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F6C40 */ _t11 = cpu->r[11] + 0x00000014u;
|
|
/* 028F6C40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F6C44 */ cpu->ctr = cpu->r[0];
|
|
/* 028F6C48 */ cpu->r[3] = cpu->r[25];
|
|
/* 028F6C4C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F6C50 */ _t12 = cpu->r[26] + 0x00000004u;
|
|
/* 028F6C50 */ cpu->r[5] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F6C54 */ _t13 = cpu->r[5] + 0x00000014u;
|
|
/* 028F6C54 */ cpu->r[6] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F6C58 */ cpu->ctr = cpu->r[6];
|
|
/* 028F6C5C */ _t14 = cpu->r[25] + 0x00000000u;
|
|
/* 028F6C5C */ cpu->r[27] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F6C60 */ cpu->r[3] = cpu->r[26];
|
|
/* 028F6C64 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F6C68 */ _t15 = cpu->r[26] + 0x00000000u;
|
|
/* 028F6C68 */ cpu->r[7] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F6C6C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[7]);
|
|
/* 028F6C70 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6C70 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F6C70 */ if (_t17) goto L_028F6CA8; else goto L_028F6C74;
|
|
L_028F6C74: ; // 0x28f6c74
|
|
/* 028F6C74 */ _t18 = cpu->r[26] + 0x00000000u;
|
|
/* 028F6C74 */ cpu->r[7] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F6C78 */ cpu->ctr = cpu->r[24];
|
|
/* 028F6C7C */ _t19 = cpu->r[25] + 0x00000000u;
|
|
/* 028F6C7C */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F6C80 */ cpu->r[7] = cpu->r[7] + 0xFFFFFFFFu;
|
|
L_028F6C84: ; // 0x28f6c84
|
|
/* 028F6C84 */ _t20 = cpu->r[12] + 0x00000000u;
|
|
/* 028F6C84 */ cpu->r[0] = rbrew_read8(cpu->mem, _t20);
|
|
/* 028F6C88 */ _t21 = cpu->r[7] + 0x00000001u;
|
|
/* 028F6C88 */ cpu->r[9] = rbrew_read8(cpu->mem, _t21);
|
|
/* 028F6C88 */ cpu->r[7] = _t21;
|
|
/* 028F6C8C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[9]);
|
|
/* 028F6C90 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6C90 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F6C90 */ if (_t23) goto L_028F6C94; else goto L_028F6CC4;
|
|
L_028F6C94: ; // 0x28f6c94
|
|
/* 028F6C94 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 028F6C98 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6C98 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F6C98 */ if (_t25) goto L_028F6CA8; else goto L_028F6C9C;
|
|
L_028F6C9C: ; // 0x28f6c9c
|
|
/* 028F6C9C */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028F6CA0 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F6CA0 */ _t26 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F6CA0 */ _t27 = _t26 >> (0x00000002u & 31u);
|
|
/* 028F6CA0 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F6CA0 */ if (_t28) goto L_028F6C84; else goto L_028F6CA4;
|
|
L_028F6CA4: ; // 0x28f6ca4
|
|
/* 028F6CA4 */ goto L_028F6CC4;
|
|
L_028F6CA8: ; // 0x28f6ca8
|
|
/* 028F6CA8 */ cpu->r[0] = cpu->r[29] - cpu->r[30];
|
|
/* 028F6CAC */ /* nop */
|
|
/* 028F6CB0 */ cpu->r[3] = rbrew_rlwinm(cpu->r[0], 0x00000019u, 0x00000007u, 0x0000001Fu);
|
|
/* 028F6CB4 */ _t29 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F6CB4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F6CB8 */ cpu->lr = cpu->r[0];
|
|
/* 028F6CBC */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028F6CC0 */ return;
|
|
L_028F6CC4: ; // 0x28f6cc4
|
|
/* 028F6CC4 */ cpu->r[29] = cpu->r[29] + 0x00000080u;
|
|
/* 028F6CC8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[28]);
|
|
/* 028F6CCC */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6CCC */ _t31 = _t30 & 0x00000001u;
|
|
/* 028F6CCC */ if (_t31) goto L_028F6CD0; else goto L_028F6C24;
|
|
L_028F6CD0: ; // 0x28f6cd0
|
|
/* 028F6CD0 */ /* nop */
|
|
/* 028F6CD4 */ _t32 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F6CD4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F6CD8 */ cpu->lr = cpu->r[0];
|
|
/* 028F6CDC */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028F6CE0 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 028F6CE4 */ return;
|
|
}
|
|
|
|
// fn_028F6CE8 @ 0x28f6ce8
|
|
void Gambit_fn_028F6CE8(CPUState* cpu) {
|
|
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_028F6CE8: ; // 0x28f6ce8
|
|
/* 028F6CE8 */ cpu->r[0] = cpu->lr;
|
|
/* 028F6CEC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F6CEC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F6CEC */ cpu->r[1] = _t0;
|
|
/* 028F6CF0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6CF0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F6CF4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F6CF4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F6CF8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F6CF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F6CFC */ cpu->r[31] = cpu->r[4];
|
|
/* 028F6D00 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6D00 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F6D04 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6D04 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F6D04 */ if (_t5) goto L_028F6D84; else goto L_028F6D08;
|
|
L_028F6D08: ; // 0x28f6d08
|
|
/* 028F6D08 */ _t6 = cpu->r[30] + 0x000000E8u;
|
|
/* 028F6D08 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F6D0C */ cpu->r[8] = 0x10140000u;
|
|
/* 028F6D10 */ cpu->r[8] = cpu->r[8] + 0xFFFFCF40u;
|
|
/* 028F6D14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F6D18 */ _t7 = cpu->r[30] + 0x00000000u;
|
|
/* 028F6D18 */ rbrew_write32(cpu->mem, _t7, cpu->r[8]);
|
|
/* 028F6D1C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6D1C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F6D1C */ if (_t9) goto L_028F6D54; else goto L_028F6D20;
|
|
L_028F6D20: ; // 0x28f6d20
|
|
/* 028F6D20 */ _t10 = cpu->r[30] + 0x000000E4u;
|
|
/* 028F6D20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F6D24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F6D28 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F6D2C */ _t11 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F6D2C */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F6D30 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F6D34 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F6D34 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F6D38 */ _t13 = cpu->r[9] + 0x0000003Cu;
|
|
/* 028F6D38 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F6D3C */ cpu->ctr = cpu->r[10];
|
|
/* 028F6D40 */ _t14 = cpu->r[30] + 0x000000E8u;
|
|
/* 028F6D40 */ cpu->r[4] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F6D44 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F6D48 */ cpu->r[11] = 0x00000000u;
|
|
/* 028F6D4C */ _t15 = cpu->r[30] + 0x000000E4u;
|
|
/* 028F6D4C */ rbrew_write32(cpu->mem, _t15, cpu->r[11]);
|
|
/* 028F6D50 */ _t16 = cpu->r[30] + 0x000000E8u;
|
|
/* 028F6D50 */ rbrew_write32(cpu->mem, _t16, cpu->r[11]);
|
|
L_028F6D54: ; // 0x28f6d54
|
|
/* 028F6D54 */ cpu->r[6] = 0x028F0000u;
|
|
/* 028F6D58 */ cpu->r[3] = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F6D5C */ cpu->r[7] = 0x00000000u;
|
|
/* 028F6D60 */ cpu->r[6] = cpu->r[6] + 0x00006FC8u;
|
|
/* 028F6D64 */ cpu->r[4] = 0x00000003u;
|
|
/* 028F6D68 */ cpu->r[8] = cpu->r[7];
|
|
/* 028F6D6C */ cpu->r[5] = 0x00000048u;
|
|
/* 028F6D70 */ Gambit_fn_02C82F38(cpu);
|
|
/* 028F6D74 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F6D74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F6D78 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6D78 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F6D78 */ if (_t18) goto L_028F6D84; else goto L_028F6D7C;
|
|
L_028F6D7C: ; // 0x28f6d7c
|
|
/* 028F6D7C */ cpu->r[3] = cpu->r[30];
|
|
/* 028F6D80 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F6D84: ; // 0x28f6d84
|
|
/* 028F6D84 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6D84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F6D88 */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 028F6D88 */ cpu->r[30] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F6D8C */ cpu->lr = cpu->r[0];
|
|
/* 028F6D90 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6D90 */ cpu->r[31] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F6D94 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F6D98 */ return;
|
|
}
|
|
|
|
// fn_028F6CEC @ 0x28f6cec
|
|
void Gambit_fn_028F6CEC(CPUState* cpu) {
|
|
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_028F6CEC: ; // 0x28f6cec
|
|
/* 028F6CEC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F6CEC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F6CEC */ cpu->r[1] = _t0;
|
|
/* 028F6CF0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6CF0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F6CF4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F6CF4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F6CF8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F6CF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F6CFC */ cpu->r[31] = cpu->r[4];
|
|
/* 028F6D00 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6D00 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F6D04 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6D04 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F6D04 */ if (_t5) goto L_028F6D84; else goto L_028F6D08;
|
|
L_028F6D08: ; // 0x28f6d08
|
|
/* 028F6D08 */ _t6 = cpu->r[30] + 0x000000E8u;
|
|
/* 028F6D08 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F6D0C */ cpu->r[8] = 0x10140000u;
|
|
/* 028F6D10 */ cpu->r[8] = cpu->r[8] + 0xFFFFCF40u;
|
|
/* 028F6D14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F6D18 */ _t7 = cpu->r[30] + 0x00000000u;
|
|
/* 028F6D18 */ rbrew_write32(cpu->mem, _t7, cpu->r[8]);
|
|
/* 028F6D1C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6D1C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F6D1C */ if (_t9) goto L_028F6D54; else goto L_028F6D20;
|
|
L_028F6D20: ; // 0x28f6d20
|
|
/* 028F6D20 */ _t10 = cpu->r[30] + 0x000000E4u;
|
|
/* 028F6D20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F6D24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F6D28 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F6D2C */ _t11 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F6D2C */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F6D30 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F6D34 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F6D34 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F6D38 */ _t13 = cpu->r[9] + 0x0000003Cu;
|
|
/* 028F6D38 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F6D3C */ cpu->ctr = cpu->r[10];
|
|
/* 028F6D40 */ _t14 = cpu->r[30] + 0x000000E8u;
|
|
/* 028F6D40 */ cpu->r[4] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F6D44 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F6D48 */ cpu->r[11] = 0x00000000u;
|
|
/* 028F6D4C */ _t15 = cpu->r[30] + 0x000000E4u;
|
|
/* 028F6D4C */ rbrew_write32(cpu->mem, _t15, cpu->r[11]);
|
|
/* 028F6D50 */ _t16 = cpu->r[30] + 0x000000E8u;
|
|
/* 028F6D50 */ rbrew_write32(cpu->mem, _t16, cpu->r[11]);
|
|
L_028F6D54: ; // 0x28f6d54
|
|
/* 028F6D54 */ cpu->r[6] = 0x028F0000u;
|
|
/* 028F6D58 */ cpu->r[3] = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F6D5C */ cpu->r[7] = 0x00000000u;
|
|
/* 028F6D60 */ cpu->r[6] = cpu->r[6] + 0x00006FC8u;
|
|
/* 028F6D64 */ cpu->r[4] = 0x00000003u;
|
|
/* 028F6D68 */ cpu->r[8] = cpu->r[7];
|
|
/* 028F6D6C */ cpu->r[5] = 0x00000048u;
|
|
/* 028F6D70 */ Gambit_fn_02C82F38(cpu);
|
|
/* 028F6D74 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F6D74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F6D78 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6D78 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F6D78 */ if (_t18) goto L_028F6D84; else goto L_028F6D7C;
|
|
L_028F6D7C: ; // 0x28f6d7c
|
|
/* 028F6D7C */ cpu->r[3] = cpu->r[30];
|
|
/* 028F6D80 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F6D84: ; // 0x28f6d84
|
|
/* 028F6D84 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6D84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F6D88 */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 028F6D88 */ cpu->r[30] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F6D8C */ cpu->lr = cpu->r[0];
|
|
/* 028F6D90 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6D90 */ cpu->r[31] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F6D94 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F6D98 */ return;
|
|
}
|
|
|
|
// fn_028F6D9C @ 0x28f6d9c
|
|
void Gambit_fn_028F6D9C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F6D9C: ; // 0x28f6d9c
|
|
/* 028F6D9C */ cpu->r[0] = cpu->lr;
|
|
/* 028F6DA0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F6DA0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F6DA0 */ cpu->r[1] = _t0;
|
|
/* 028F6DA4 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6DA4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F6DA8 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F6DA8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F6DAC */ cpu->r[30] = cpu->r[3];
|
|
/* 028F6DAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F6DB0 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F6DB4 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6DB4 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028F6DB8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F6DB8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F6DBC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6DBC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F6DBC */ if (_t6) goto L_028F6E7C; else goto L_028F6DC0;
|
|
L_028F6DC0: ; // 0x28f6dc0
|
|
/* 028F6DC0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F6DC4 */ _t7 = cpu->r[30] + 0x00000028u;
|
|
/* 028F6DC4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F6DC8 */ cpu->r[29] = 0x00000000u;
|
|
/* 028F6DCC */ cpu->r[0] = cpu->r[0] + 0xFFFFCF20u;
|
|
/* 028F6DD0 */ cpu->r[9] = 0x10140000u;
|
|
/* 028F6DD4 */ _t8 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F6DD4 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028F6DD8 */ cpu->r[9] = cpu->r[9] + 0xFFFFCF30u;
|
|
/* 028F6DDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6DE0 */ _t9 = cpu->r[30] + 0x00000010u;
|
|
/* 028F6DE0 */ rbrew_write32(cpu->mem, _t9, cpu->r[9]);
|
|
/* 028F6DE4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6DE4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F6DE4 */ if (_t11) goto L_028F6E00; else goto L_028F6DE8;
|
|
L_028F6DE8: ; // 0x28f6de8
|
|
/* 028F6DE8 */ _t12 = cpu->r[3] + 0x00000004u;
|
|
/* 028F6DE8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F6DEC */ _t13 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028F6DEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F6DF0 */ cpu->ctr = cpu->r[0];
|
|
/* 028F6DF4 */ cpu->r[4] = 0x00000003u;
|
|
/* 028F6DF8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F6DFC */ _t14 = cpu->r[30] + 0x00000028u;
|
|
/* 028F6DFC */ rbrew_write32(cpu->mem, _t14, cpu->r[29]);
|
|
L_028F6E00: ; // 0x28f6e00
|
|
/* 028F6E00 */ _t15 = cpu->r[30] + 0x00000024u;
|
|
/* 028F6E00 */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F6E04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6E08 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6E08 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F6E08 */ if (_t17) goto L_028F6E24; else goto L_028F6E0C;
|
|
L_028F6E0C: ; // 0x28f6e0c
|
|
/* 028F6E0C */ _t18 = cpu->r[3] + 0x00000004u;
|
|
/* 028F6E0C */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F6E10 */ _t19 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028F6E10 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F6E14 */ cpu->ctr = cpu->r[12];
|
|
/* 028F6E18 */ cpu->r[4] = 0x00000003u;
|
|
/* 028F6E1C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F6E20 */ _t20 = cpu->r[30] + 0x00000024u;
|
|
/* 028F6E20 */ rbrew_write32(cpu->mem, _t20, cpu->r[29]);
|
|
L_028F6E24: ; // 0x28f6e24
|
|
/* 028F6E24 */ _t21 = cpu->r[30] + 0x00000030u;
|
|
/* 028F6E24 */ cpu->r[4] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F6E28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F6E2C */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6E2C */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F6E2C */ if (_t23) goto L_028F6E60; else goto L_028F6E30;
|
|
L_028F6E30: ; // 0x28f6e30
|
|
/* 028F6E30 */ _t24 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028F6E30 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F6E34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F6E38 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F6E3C */ _t25 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F6E3C */ cpu->r[3] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F6E40 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F6E44 */ _t26 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F6E44 */ cpu->r[10] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F6E48 */ _t27 = cpu->r[10] + 0x0000003Cu;
|
|
/* 028F6E48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F6E4C */ cpu->ctr = cpu->r[0];
|
|
/* 028F6E50 */ _t28 = cpu->r[30] + 0x00000030u;
|
|
/* 028F6E50 */ cpu->r[4] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F6E54 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F6E58 */ _t29 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028F6E58 */ rbrew_write32(cpu->mem, _t29, cpu->r[29]);
|
|
/* 028F6E5C */ _t30 = cpu->r[30] + 0x00000030u;
|
|
/* 028F6E5C */ rbrew_write32(cpu->mem, _t30, cpu->r[29]);
|
|
L_028F6E60: ; // 0x28f6e60
|
|
/* 028F6E60 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F6E64 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F6E68 */ Gambit_fn_02821E68(cpu);
|
|
/* 028F6E6C */ cpu->r[12] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F6E6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F6E70 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6E70 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028F6E70 */ if (_t32) goto L_028F6E7C; else goto L_028F6E74;
|
|
L_028F6E74: ; // 0x28f6e74
|
|
/* 028F6E74 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F6E78 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F6E7C: ; // 0x28f6e7c
|
|
/* 028F6E7C */ _t33 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6E7C */ cpu->r[29] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F6E80 */ _t34 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F6E80 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F6E84 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 028F6E84 */ cpu->r[30] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F6E88 */ cpu->lr = cpu->r[0];
|
|
/* 028F6E8C */ _t36 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6E8C */ cpu->r[31] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F6E90 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F6E94 */ return;
|
|
}
|
|
|
|
// fn_028F6DA0 @ 0x28f6da0
|
|
void Gambit_fn_028F6DA0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F6DA0: ; // 0x28f6da0
|
|
/* 028F6DA0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F6DA0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F6DA0 */ cpu->r[1] = _t0;
|
|
/* 028F6DA4 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6DA4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F6DA8 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028F6DA8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F6DAC */ cpu->r[30] = cpu->r[3];
|
|
/* 028F6DAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F6DB0 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F6DB4 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6DB4 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028F6DB8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F6DB8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F6DBC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6DBC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F6DBC */ if (_t6) goto L_028F6E7C; else goto L_028F6DC0;
|
|
L_028F6DC0: ; // 0x28f6dc0
|
|
/* 028F6DC0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F6DC4 */ _t7 = cpu->r[30] + 0x00000028u;
|
|
/* 028F6DC4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F6DC8 */ cpu->r[29] = 0x00000000u;
|
|
/* 028F6DCC */ cpu->r[0] = cpu->r[0] + 0xFFFFCF20u;
|
|
/* 028F6DD0 */ cpu->r[9] = 0x10140000u;
|
|
/* 028F6DD4 */ _t8 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F6DD4 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028F6DD8 */ cpu->r[9] = cpu->r[9] + 0xFFFFCF30u;
|
|
/* 028F6DDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6DE0 */ _t9 = cpu->r[30] + 0x00000010u;
|
|
/* 028F6DE0 */ rbrew_write32(cpu->mem, _t9, cpu->r[9]);
|
|
/* 028F6DE4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6DE4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F6DE4 */ if (_t11) goto L_028F6E00; else goto L_028F6DE8;
|
|
L_028F6DE8: ; // 0x28f6de8
|
|
/* 028F6DE8 */ _t12 = cpu->r[3] + 0x00000004u;
|
|
/* 028F6DE8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F6DEC */ _t13 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028F6DEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F6DF0 */ cpu->ctr = cpu->r[0];
|
|
/* 028F6DF4 */ cpu->r[4] = 0x00000003u;
|
|
/* 028F6DF8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F6DFC */ _t14 = cpu->r[30] + 0x00000028u;
|
|
/* 028F6DFC */ rbrew_write32(cpu->mem, _t14, cpu->r[29]);
|
|
L_028F6E00: ; // 0x28f6e00
|
|
/* 028F6E00 */ _t15 = cpu->r[30] + 0x00000024u;
|
|
/* 028F6E00 */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F6E04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6E08 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6E08 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F6E08 */ if (_t17) goto L_028F6E24; else goto L_028F6E0C;
|
|
L_028F6E0C: ; // 0x28f6e0c
|
|
/* 028F6E0C */ _t18 = cpu->r[3] + 0x00000004u;
|
|
/* 028F6E0C */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F6E10 */ _t19 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028F6E10 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F6E14 */ cpu->ctr = cpu->r[12];
|
|
/* 028F6E18 */ cpu->r[4] = 0x00000003u;
|
|
/* 028F6E1C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F6E20 */ _t20 = cpu->r[30] + 0x00000024u;
|
|
/* 028F6E20 */ rbrew_write32(cpu->mem, _t20, cpu->r[29]);
|
|
L_028F6E24: ; // 0x28f6e24
|
|
/* 028F6E24 */ _t21 = cpu->r[30] + 0x00000030u;
|
|
/* 028F6E24 */ cpu->r[4] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F6E28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F6E2C */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6E2C */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F6E2C */ if (_t23) goto L_028F6E60; else goto L_028F6E30;
|
|
L_028F6E30: ; // 0x28f6e30
|
|
/* 028F6E30 */ _t24 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028F6E30 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F6E34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F6E38 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F6E3C */ _t25 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028F6E3C */ cpu->r[3] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F6E40 */ Gambit_fn_02826B90(cpu);
|
|
/* 028F6E44 */ _t26 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F6E44 */ cpu->r[10] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F6E48 */ _t27 = cpu->r[10] + 0x0000003Cu;
|
|
/* 028F6E48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F6E4C */ cpu->ctr = cpu->r[0];
|
|
/* 028F6E50 */ _t28 = cpu->r[30] + 0x00000030u;
|
|
/* 028F6E50 */ cpu->r[4] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F6E54 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F6E58 */ _t29 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028F6E58 */ rbrew_write32(cpu->mem, _t29, cpu->r[29]);
|
|
/* 028F6E5C */ _t30 = cpu->r[30] + 0x00000030u;
|
|
/* 028F6E5C */ rbrew_write32(cpu->mem, _t30, cpu->r[29]);
|
|
L_028F6E60: ; // 0x28f6e60
|
|
/* 028F6E60 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F6E64 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F6E68 */ Gambit_fn_02821E68(cpu);
|
|
/* 028F6E6C */ cpu->r[12] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F6E6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F6E70 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6E70 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028F6E70 */ if (_t32) goto L_028F6E7C; else goto L_028F6E74;
|
|
L_028F6E74: ; // 0x28f6e74
|
|
/* 028F6E74 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F6E78 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F6E7C: ; // 0x28f6e7c
|
|
/* 028F6E7C */ _t33 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6E7C */ cpu->r[29] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F6E80 */ _t34 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F6E80 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F6E84 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 028F6E84 */ cpu->r[30] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F6E88 */ cpu->lr = cpu->r[0];
|
|
/* 028F6E8C */ _t36 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6E8C */ cpu->r[31] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F6E90 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F6E94 */ return;
|
|
}
|
|
|
|
// fn_028F6E98 @ 0x28f6e98
|
|
void Gambit_fn_028F6E98(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_028F6E98: ; // 0x28f6e98
|
|
/* 028F6E98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6E9C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6E9C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F6E9C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F6E9C */ goto L_028F6EA0;
|
|
L_028F6EA0: ; // 0x28f6ea0
|
|
/* 028F6EA0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F6EA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F6EA4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6EA4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F6EA4 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F6EA4 */ goto L_028F6EA8;
|
|
L_028F6EA8: ; // 0x28f6ea8
|
|
/* 028F6EA8 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028F6EAC @ 0x28f6eac
|
|
void Gambit_fn_028F6EAC(CPUState* cpu) {
|
|
L_028F6EAC: ; // 0x28f6eac
|
|
/* 028F6EAC */ return;
|
|
}
|
|
|
|
// fn_028F6EB0 @ 0x28f6eb0
|
|
void Gambit_fn_028F6EB0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028F6EB0: ; // 0x28f6eb0
|
|
/* 028F6EB0 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028F6EB0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F6EB4 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028F6EB4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028F6EB8 */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 028F6EBC */ cpu->r[11] = 0x10110000u;
|
|
/* 028F6EC0 */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 028F6EC0 */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028F6EC4 */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028F6EC4 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 028F6EC8 */ return;
|
|
}
|
|
|
|
// fn_028F6ECC @ 0x28f6ecc
|
|
void Gambit_fn_028F6ECC(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_028F6ECC: ; // 0x28f6ecc
|
|
/* 028F6ECC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6ED0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6ED0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F6ED0 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F6ED0 */ goto L_028F6ED4;
|
|
L_028F6ED4: ; // 0x28f6ed4
|
|
/* 028F6ED4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F6ED4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F6ED8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6ED8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F6ED8 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F6ED8 */ goto L_028F6EDC;
|
|
L_028F6EDC: ; // 0x28f6edc
|
|
/* 028F6EDC */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028F6EE0 @ 0x28f6ee0
|
|
void Gambit_fn_028F6EE0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028F6EE0: ; // 0x28f6ee0
|
|
/* 028F6EE0 */ cpu->r[0] = cpu->lr;
|
|
/* 028F6EE4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F6EE4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F6EE4 */ cpu->r[1] = _t0;
|
|
/* 028F6EE8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6EE8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F6EEC */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F6EEC */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F6EF0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F6EF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F6EF4 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F6EF8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6EF8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F6EFC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6EFC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F6EFC */ if (_t5) goto L_028F6F2C; else goto L_028F6F00;
|
|
L_028F6F00: ; // 0x28f6f00
|
|
/* 028F6F00 */ _t6 = cpu->r[30] + 0x00000000u;
|
|
/* 028F6F00 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F6F04 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F6F08 */ cpu->r[0] = cpu->r[0] + 0xFFFFCE24u;
|
|
/* 028F6F0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6F10 */ _t7 = cpu->r[30] + 0x00000004u;
|
|
/* 028F6F10 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028F6F14 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6F14 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F6F14 */ if (_t9) goto L_028F6F1C; else goto L_028F6F18;
|
|
L_028F6F18: ; // 0x28f6f18
|
|
/* 028F6F18 */ Gambit_fn_02801BB4(cpu);
|
|
L_028F6F1C: ; // 0x28f6f1c
|
|
/* 028F6F1C */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F6F1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F6F20 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6F20 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F6F20 */ if (_t11) goto L_028F6F2C; else goto L_028F6F24;
|
|
L_028F6F24: ; // 0x28f6f24
|
|
/* 028F6F24 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F6F28 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F6F2C: ; // 0x28f6f2c
|
|
/* 028F6F2C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6F2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F6F30 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028F6F30 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F6F34 */ cpu->lr = cpu->r[0];
|
|
/* 028F6F38 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6F38 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F6F3C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F6F40 */ return;
|
|
}
|
|
|
|
// fn_028F6EE4 @ 0x28f6ee4
|
|
void Gambit_fn_028F6EE4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028F6EE4: ; // 0x28f6ee4
|
|
/* 028F6EE4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F6EE4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F6EE4 */ cpu->r[1] = _t0;
|
|
/* 028F6EE8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6EE8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F6EEC */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F6EEC */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F6EF0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F6EF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F6EF4 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F6EF8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6EF8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F6EFC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6EFC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F6EFC */ if (_t5) goto L_028F6F2C; else goto L_028F6F00;
|
|
L_028F6F00: ; // 0x28f6f00
|
|
/* 028F6F00 */ _t6 = cpu->r[30] + 0x00000000u;
|
|
/* 028F6F00 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F6F04 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F6F08 */ cpu->r[0] = cpu->r[0] + 0xFFFFCE24u;
|
|
/* 028F6F0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6F10 */ _t7 = cpu->r[30] + 0x00000004u;
|
|
/* 028F6F10 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028F6F14 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6F14 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F6F14 */ if (_t9) goto L_028F6F1C; else goto L_028F6F18;
|
|
L_028F6F18: ; // 0x28f6f18
|
|
/* 028F6F18 */ Gambit_fn_02801BB4(cpu);
|
|
L_028F6F1C: ; // 0x28f6f1c
|
|
/* 028F6F1C */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F6F1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F6F20 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6F20 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F6F20 */ if (_t11) goto L_028F6F2C; else goto L_028F6F24;
|
|
L_028F6F24: ; // 0x28f6f24
|
|
/* 028F6F24 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F6F28 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F6F2C: ; // 0x28f6f2c
|
|
/* 028F6F2C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6F2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F6F30 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028F6F30 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F6F34 */ cpu->lr = cpu->r[0];
|
|
/* 028F6F38 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6F38 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F6F3C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F6F40 */ return;
|
|
}
|
|
|
|
// fn_028F6F44 @ 0x28f6f44
|
|
void Gambit_fn_028F6F44(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_028F6F44: ; // 0x28f6f44
|
|
/* 028F6F44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6F48 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6F48 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F6F48 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F6F48 */ goto L_028F6F4C;
|
|
L_028F6F4C: ; // 0x28f6f4c
|
|
/* 028F6F4C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F6F4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F6F50 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6F50 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F6F50 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F6F50 */ goto L_028F6F54;
|
|
L_028F6F54: ; // 0x28f6f54
|
|
/* 028F6F54 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028F6F58 @ 0x28f6f58
|
|
void Gambit_fn_028F6F58(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_028F6F58: ; // 0x28f6f58
|
|
/* 028F6F58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6F5C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6F5C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F6F5C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F6F5C */ goto L_028F6F60;
|
|
L_028F6F60: ; // 0x28f6f60
|
|
/* 028F6F60 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F6F60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F6F64 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6F64 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F6F64 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F6F64 */ goto L_028F6F68;
|
|
L_028F6F68: ; // 0x28f6f68
|
|
/* 028F6F68 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028F6F6C @ 0x28f6f6c
|
|
void Gambit_fn_028F6F6C(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_028F6F6C: ; // 0x28f6f6c
|
|
/* 028F6F6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F6F70 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6F70 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F6F70 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F6F70 */ goto L_028F6F74;
|
|
L_028F6F74: ; // 0x28f6f74
|
|
/* 028F6F74 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F6F74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F6F78 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6F78 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F6F78 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F6F78 */ goto L_028F6F7C;
|
|
L_028F6F7C: ; // 0x28f6f7c
|
|
/* 028F6F7C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028F6F84 @ 0x28f6f84
|
|
void Gambit_fn_028F6F84(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028F6F84: ; // 0x28f6f84
|
|
/* 028F6F84 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F6F84 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F6F84 */ cpu->r[1] = _t0;
|
|
/* 028F6F88 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6F88 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F6F8C */ cpu->r[31] = cpu->r[3];
|
|
/* 028F6F8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F6F90 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6F90 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F6F94 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6F94 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F6F94 */ if (_t4) goto L_028F6F98; else goto L_028F6FA8;
|
|
L_028F6F98: ; // 0x28f6f98
|
|
/* 028F6F98 */ cpu->r[3] = 0x00000048u;
|
|
/* 028F6F9C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F6FA0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F6FA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F6FA4 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6FA4 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F6FA4 */ if (_t6) goto L_028F6FB0; else goto L_028F6FA8;
|
|
L_028F6FA8: ; // 0x28f6fa8
|
|
/* 028F6FA8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F6FAC */ Gambit_fn_0295EE3C(cpu);
|
|
L_028F6FB0: ; // 0x28f6fb0
|
|
/* 028F6FB0 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6FB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F6FB4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F6FB8 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6FB8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F6FBC */ cpu->lr = cpu->r[0];
|
|
/* 028F6FC0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F6FC4 */ return;
|
|
}
|
|
|
|
// fn_028F6FCC @ 0x28f6fcc
|
|
void Gambit_fn_028F6FCC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028F6FCC: ; // 0x28f6fcc
|
|
/* 028F6FCC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F6FCC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F6FCC */ cpu->r[1] = _t0;
|
|
/* 028F6FD0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F6FD0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F6FD4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F6FD4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F6FD8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F6FD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F6FDC */ cpu->r[31] = cpu->r[4];
|
|
/* 028F6FE0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F6FE0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F6FE4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6FE4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F6FE4 */ if (_t5) goto L_028F7004; else goto L_028F6FE8;
|
|
L_028F6FE8: ; // 0x28f6fe8
|
|
/* 028F6FE8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F6FEC */ cpu->r[4] = 0x00000002u;
|
|
/* 028F6FF0 */ Gambit_fn_0295F020(cpu);
|
|
/* 028F6FF4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F6FF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F6FF8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F6FF8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F6FF8 */ if (_t7) goto L_028F7004; else goto L_028F6FFC;
|
|
L_028F6FFC: ; // 0x28f6ffc
|
|
/* 028F6FFC */ cpu->r[3] = cpu->r[30];
|
|
/* 028F7000 */ Gambit_fn_02801BB0(cpu);
|
|
L_028F7004: ; // 0x28f7004
|
|
/* 028F7004 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028F7004 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F7008 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028F7008 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F700C */ cpu->lr = cpu->r[0];
|
|
/* 028F7010 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F7010 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F7014 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F7018 */ return;
|
|
}
|
|
|
|
// fn_028F701C @ 0x28f701c
|
|
void Gambit_fn_028F701C(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_028F701C: ; // 0x28f701c
|
|
/* 028F701C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F7020 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7020 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F7020 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F7020 */ goto L_028F7024;
|
|
L_028F7024: ; // 0x28f7024
|
|
/* 028F7024 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F7024 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F7028 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7028 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F7028 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F7028 */ goto L_028F702C;
|
|
L_028F702C: ; // 0x28f702c
|
|
/* 028F702C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028F7030 @ 0x28f7030
|
|
void Gambit_fn_028F7030(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_028F7030: ; // 0x28f7030
|
|
/* 028F7030 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F7034 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7034 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F7034 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F7034 */ goto L_028F7038;
|
|
L_028F7038: ; // 0x28f7038
|
|
/* 028F7038 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F7038 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F703C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F703C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F703C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F703C */ goto L_028F7040;
|
|
L_028F7040: ; // 0x28f7040
|
|
/* 028F7040 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028F7044 @ 0x28f7044
|
|
void Gambit_fn_028F7044(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028F7044: ; // 0x28f7044
|
|
/* 028F7044 */ cpu->r[0] = cpu->lr;
|
|
/* 028F7048 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F7048 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F7048 */ cpu->r[1] = _t0;
|
|
/* 028F704C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F704C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F7050 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F7050 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F7054 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F7054 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F7058 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7058 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F7058 */ if (_t4) goto L_028F705C; else goto L_028F706C;
|
|
L_028F705C: ; // 0x28f705c
|
|
/* 028F705C */ cpu->r[3] = 0x00000084u;
|
|
/* 028F7060 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F7064 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F7064 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F7068 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7068 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F7068 */ if (_t6) goto L_028F70B8; else goto L_028F706C;
|
|
L_028F706C: ; // 0x28f706c
|
|
/* 028F706C */ cpu->r[11] = 0x00000004u;
|
|
/* 028F7070 */ cpu->r[12] = 0x00000001u;
|
|
/* 028F7074 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F7078 */ _t7 = cpu->r[31] + 0x0000007Au;
|
|
/* 028F7078 */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[11]);
|
|
/* 028F707C */ cpu->r[0] = cpu->r[0] + 0xFFFFCF58u;
|
|
/* 028F7080 */ _t8 = cpu->r[31] + 0x0000007Fu;
|
|
/* 028F7080 */ rbrew_write8(cpu->mem, _t8, (uint8_t)cpu->r[12]);
|
|
/* 028F7084 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F7088 */ _t9 = cpu->r[31] + 0x0000007Eu;
|
|
/* 028F7088 */ rbrew_write8(cpu->mem, _t9, (uint8_t)cpu->r[12]);
|
|
/* 028F708C */ cpu->r[5] = 0x00000074u;
|
|
/* 028F7090 */ _t10 = cpu->r[31] + 0x00000080u;
|
|
/* 028F7090 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028F7094 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 028F7098 */ _t11 = cpu->r[31] + 0x00000079u;
|
|
/* 028F7098 */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[11]);
|
|
/* 028F709C */ _t12 = cpu->r[31] + 0x00000078u;
|
|
/* 028F709C */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[11]);
|
|
/* 028F70A0 */ _t13 = cpu->r[31] + 0x0000007Cu;
|
|
/* 028F70A0 */ rbrew_write8(cpu->mem, _t13, (uint8_t)cpu->r[12]);
|
|
/* 028F70A4 */ _t14 = cpu->r[31] + 0x0000007Du;
|
|
/* 028F70A4 */ rbrew_write8(cpu->mem, _t14, (uint8_t)cpu->r[12]);
|
|
/* 028F70A8 */ _t15 = cpu->r[31] + 0x0000007Bu;
|
|
/* 028F70A8 */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[11]);
|
|
/* 028F70AC */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028F70B0 */ cpu->r[12] = 0x00000000u;
|
|
/* 028F70B4 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 028F70B4 */ rbrew_write32(cpu->mem, _t16, cpu->r[12]);
|
|
L_028F70B8: ; // 0x28f70b8
|
|
/* 028F70B8 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028F70B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F70BC */ cpu->r[3] = cpu->r[31];
|
|
/* 028F70C0 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F70C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F70C4 */ cpu->lr = cpu->r[0];
|
|
/* 028F70C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F70CC */ return;
|
|
}
|
|
|
|
// fn_028F7048 @ 0x28f7048
|
|
void Gambit_fn_028F7048(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028F7048: ; // 0x28f7048
|
|
/* 028F7048 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F7048 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F7048 */ cpu->r[1] = _t0;
|
|
/* 028F704C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F704C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F7050 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F7050 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F7054 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F7054 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F7058 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7058 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F7058 */ if (_t4) goto L_028F705C; else goto L_028F706C;
|
|
L_028F705C: ; // 0x28f705c
|
|
/* 028F705C */ cpu->r[3] = 0x00000084u;
|
|
/* 028F7060 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F7064 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F7064 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F7068 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7068 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F7068 */ if (_t6) goto L_028F70B8; else goto L_028F706C;
|
|
L_028F706C: ; // 0x28f706c
|
|
/* 028F706C */ cpu->r[11] = 0x00000004u;
|
|
/* 028F7070 */ cpu->r[12] = 0x00000001u;
|
|
/* 028F7074 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F7078 */ _t7 = cpu->r[31] + 0x0000007Au;
|
|
/* 028F7078 */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[11]);
|
|
/* 028F707C */ cpu->r[0] = cpu->r[0] + 0xFFFFCF58u;
|
|
/* 028F7080 */ _t8 = cpu->r[31] + 0x0000007Fu;
|
|
/* 028F7080 */ rbrew_write8(cpu->mem, _t8, (uint8_t)cpu->r[12]);
|
|
/* 028F7084 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F7088 */ _t9 = cpu->r[31] + 0x0000007Eu;
|
|
/* 028F7088 */ rbrew_write8(cpu->mem, _t9, (uint8_t)cpu->r[12]);
|
|
/* 028F708C */ cpu->r[5] = 0x00000074u;
|
|
/* 028F7090 */ _t10 = cpu->r[31] + 0x00000080u;
|
|
/* 028F7090 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028F7094 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 028F7098 */ _t11 = cpu->r[31] + 0x00000079u;
|
|
/* 028F7098 */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[11]);
|
|
/* 028F709C */ _t12 = cpu->r[31] + 0x00000078u;
|
|
/* 028F709C */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[11]);
|
|
/* 028F70A0 */ _t13 = cpu->r[31] + 0x0000007Cu;
|
|
/* 028F70A0 */ rbrew_write8(cpu->mem, _t13, (uint8_t)cpu->r[12]);
|
|
/* 028F70A4 */ _t14 = cpu->r[31] + 0x0000007Du;
|
|
/* 028F70A4 */ rbrew_write8(cpu->mem, _t14, (uint8_t)cpu->r[12]);
|
|
/* 028F70A8 */ _t15 = cpu->r[31] + 0x0000007Bu;
|
|
/* 028F70A8 */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[11]);
|
|
/* 028F70AC */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028F70B0 */ cpu->r[12] = 0x00000000u;
|
|
/* 028F70B4 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 028F70B4 */ rbrew_write32(cpu->mem, _t16, cpu->r[12]);
|
|
L_028F70B8: ; // 0x28f70b8
|
|
/* 028F70B8 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028F70B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F70BC */ cpu->r[3] = cpu->r[31];
|
|
/* 028F70C0 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F70C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F70C4 */ cpu->lr = cpu->r[0];
|
|
/* 028F70C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F70CC */ return;
|
|
}
|
|
|
|
// fn_028F70D0 @ 0x28f70d0
|
|
void Gambit_fn_028F70D0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028F70D0: ; // 0x28f70d0
|
|
/* 028F70D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F70D4 */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F70D4 */ _t1 = _t0 & 0x00000001u;
|
|
/* 028F70D4 */ if (_t1) goto L_028F70D8; else goto L_028F70E0;
|
|
L_028F70D8: ; // 0x28f70d8
|
|
/* 028F70D8 */ _t2 = cpu->r[3] + 0x00000024u;
|
|
/* 028F70D8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F70DC */ return;
|
|
L_028F70E0: ; // 0x28f70e0
|
|
/* 028F70E0 */ _t3 = cpu->r[3] + 0x00000014u;
|
|
/* 028F70E0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F70E4 */ cpu->r[0] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028F70E8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 028F70EC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F70EC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F70EC */ if (_t5) goto L_028F70F0; else goto L_028F7110;
|
|
L_028F70F0: ; // 0x28f70f0
|
|
/* 028F70F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000001u);
|
|
/* 028F70F4 */ _t6 = cpu->r[3] + 0x0000002Cu;
|
|
/* 028F70F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F70F8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F70F8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F70F8 */ if (_t8) goto L_028F7134; else goto L_028F70FC;
|
|
L_028F70FC: ; // 0x28f70fc
|
|
/* 028F70FC */ cpu->r[11] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F7100 */ cpu->r[12] = cpu->r[3] + cpu->r[11];
|
|
/* 028F7104 */ _t9 = cpu->r[12] + 0x00000040u;
|
|
/* 028F7104 */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F7108 */ cpu->r[3] = cpu->r[0] - cpu->r[11];
|
|
/* 028F710C */ return;
|
|
L_028F7110: ; // 0x28f7110
|
|
/* 028F7110 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000001u);
|
|
/* 028F7114 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7114 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F7114 */ if (_t11) goto L_028F7118; else goto L_028F7120;
|
|
L_028F7118: ; // 0x28f7118
|
|
/* 028F7118 */ _t12 = cpu->r[3] + 0x00000048u;
|
|
/* 028F7118 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F711C */ return;
|
|
L_028F7120: ; // 0x28f7120
|
|
/* 028F7120 */ cpu->r[12] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F7124 */ cpu->r[12] = cpu->r[3] + cpu->r[12];
|
|
/* 028F7128 */ _t13 = cpu->r[12] + 0x00000044u;
|
|
/* 028F7128 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F712C */ _t14 = cpu->r[12] + 0x00000040u;
|
|
/* 028F712C */ cpu->r[11] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F7130 */ cpu->r[0] = cpu->r[0] - cpu->r[11];
|
|
L_028F7134: ; // 0x28f7134
|
|
/* 028F7134 */ cpu->r[3] = cpu->r[0];
|
|
/* 028F7138 */ return;
|
|
}
|
|
|
|
// fn_028F713C @ 0x28f713c
|
|
void Gambit_fn_028F713C(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028F713C: ; // 0x28f713c
|
|
/* 028F713C */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028F713C */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F7140 */ goto L_028F9C48;
|
|
L_028F9C48: ; // 0x28f9c48
|
|
/* 028F9C48 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x00000011u);
|
|
/* 028F9C4C */ cpu->r[12] = 0x101D0000u;
|
|
/* 028F9C50 */ cpu->r[12] = cpu->r[12] + 0xFFFF9B26u;
|
|
/* 028F9C54 */ _t1 = cpu->r[12] + cpu->r[0];
|
|
/* 028F9C54 */ cpu->r[3] = rbrew_read8(cpu->mem, _t1);
|
|
/* 028F9C58 */ return;
|
|
}
|
|
|
|
// fn_028F7144 @ 0x28f7144
|
|
void Gambit_fn_028F7144(CPUState* cpu) {
|
|
L_028F7144: ; // 0x28f7144
|
|
/* 028F7144 */ cpu->r[3] = cpu->r[3] + 0x00000004u;
|
|
/* 028F7148 */ goto L_02905B10;
|
|
L_02905B10: ; // 0x2905b10
|
|
/* 02905B10 */ rbrew_dispatch(cpu, 0x02d05878u); return;
|
|
}
|
|
|
|
// fn_028F714C @ 0x28f714c
|
|
void Gambit_fn_028F714C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028F714C: ; // 0x28f714c
|
|
/* 028F714C */ cpu->r[0] = cpu->lr;
|
|
/* 028F7150 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F7150 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F7150 */ cpu->r[1] = _t0;
|
|
/* 028F7154 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F7154 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F7158 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F715C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F715C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F7160 */ _t3 = cpu->r[31] + 0x00000028u;
|
|
/* 028F7160 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F7164 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F7168 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7168 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F7168 */ if (_t5) goto L_028F7178; else goto L_028F716C;
|
|
L_028F716C: ; // 0x28f716c
|
|
/* 028F716C */ _t6 = cpu->r[31] + 0x00000024u;
|
|
/* 028F716C */ cpu->r[5] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F7170 */ cpu->r[3] = 0x00000002u;
|
|
/* 028F7174 */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028F7178: ; // 0x28f7178
|
|
/* 028F7178 */ _t7 = cpu->r[31] + 0x00000030u;
|
|
/* 028F7178 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F717C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F7180 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7180 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F7180 */ if (_t9) goto L_028F7194; else goto L_028F7184;
|
|
L_028F7184: ; // 0x28f7184
|
|
/* 028F7184 */ _t10 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F7184 */ cpu->r[5] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F7188 */ cpu->r[3] = 0x00000002u;
|
|
/* 028F718C */ _t11 = cpu->r[31] + 0x00000030u;
|
|
/* 028F718C */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F7190 */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028F7194: ; // 0x28f7194
|
|
/* 028F7194 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028F7194 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F7198 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F7198 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F719C */ cpu->lr = cpu->r[0];
|
|
/* 028F71A0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F71A4 */ return;
|
|
}
|
|
|
|
// fn_028F7150 @ 0x28f7150
|
|
void Gambit_fn_028F7150(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028F7150: ; // 0x28f7150
|
|
/* 028F7150 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F7150 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F7150 */ cpu->r[1] = _t0;
|
|
/* 028F7154 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F7154 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F7158 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F715C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F715C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F7160 */ _t3 = cpu->r[31] + 0x00000028u;
|
|
/* 028F7160 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F7164 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F7168 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7168 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F7168 */ if (_t5) goto L_028F7178; else goto L_028F716C;
|
|
L_028F716C: ; // 0x28f716c
|
|
/* 028F716C */ _t6 = cpu->r[31] + 0x00000024u;
|
|
/* 028F716C */ cpu->r[5] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F7170 */ cpu->r[3] = 0x00000002u;
|
|
/* 028F7174 */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028F7178: ; // 0x28f7178
|
|
/* 028F7178 */ _t7 = cpu->r[31] + 0x00000030u;
|
|
/* 028F7178 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F717C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F7180 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7180 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F7180 */ if (_t9) goto L_028F7194; else goto L_028F7184;
|
|
L_028F7184: ; // 0x28f7184
|
|
/* 028F7184 */ _t10 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F7184 */ cpu->r[5] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F7188 */ cpu->r[3] = 0x00000002u;
|
|
/* 028F718C */ _t11 = cpu->r[31] + 0x00000030u;
|
|
/* 028F718C */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F7190 */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028F7194: ; // 0x28f7194
|
|
/* 028F7194 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028F7194 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F7198 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F7198 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F719C */ cpu->lr = cpu->r[0];
|
|
/* 028F71A0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F71A4 */ return;
|
|
}
|
|
|
|
// fn_028F71A8 @ 0x28f71a8
|
|
void Gambit_fn_028F71A8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028F71A8: ; // 0x28f71a8
|
|
/* 028F71A8 */ cpu->r[0] = cpu->lr;
|
|
/* 028F71AC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F71AC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F71AC */ cpu->r[1] = _t0;
|
|
/* 028F71B0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F71B0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F71B4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F71B8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F71B8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F71BC */ _t3 = cpu->r[31] + 0x00000028u;
|
|
/* 028F71BC */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F71C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F71C4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F71C4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F71C4 */ if (_t5) goto L_028F71D0; else goto L_028F71C8;
|
|
L_028F71C8: ; // 0x28f71c8
|
|
/* 028F71C8 */ _t6 = cpu->r[31] + 0x00000024u;
|
|
/* 028F71C8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F71CC */ rbrew_dispatch(cpu, 0x02d09330u);
|
|
L_028F71D0: ; // 0x28f71d0
|
|
/* 028F71D0 */ _t7 = cpu->r[31] + 0x00000030u;
|
|
/* 028F71D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F71D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F71D8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F71D8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F71D8 */ if (_t9) goto L_028F71E8; else goto L_028F71DC;
|
|
L_028F71DC: ; // 0x28f71dc
|
|
/* 028F71DC */ _t10 = cpu->r[31] + 0x00000030u;
|
|
/* 028F71DC */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F71E0 */ _t11 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F71E0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F71E4 */ rbrew_dispatch(cpu, 0x02d09330u);
|
|
L_028F71E8: ; // 0x28f71e8
|
|
/* 028F71E8 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028F71E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F71EC */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F71EC */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F71F0 */ cpu->lr = cpu->r[0];
|
|
/* 028F71F4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F71F8 */ return;
|
|
}
|
|
|
|
// fn_028F71AC @ 0x28f71ac
|
|
void Gambit_fn_028F71AC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028F71AC: ; // 0x28f71ac
|
|
/* 028F71AC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F71AC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F71AC */ cpu->r[1] = _t0;
|
|
/* 028F71B0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F71B0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F71B4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F71B8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F71B8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F71BC */ _t3 = cpu->r[31] + 0x00000028u;
|
|
/* 028F71BC */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F71C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F71C4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F71C4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F71C4 */ if (_t5) goto L_028F71D0; else goto L_028F71C8;
|
|
L_028F71C8: ; // 0x28f71c8
|
|
/* 028F71C8 */ _t6 = cpu->r[31] + 0x00000024u;
|
|
/* 028F71C8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F71CC */ rbrew_dispatch(cpu, 0x02d09330u);
|
|
L_028F71D0: ; // 0x28f71d0
|
|
/* 028F71D0 */ _t7 = cpu->r[31] + 0x00000030u;
|
|
/* 028F71D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F71D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F71D8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F71D8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F71D8 */ if (_t9) goto L_028F71E8; else goto L_028F71DC;
|
|
L_028F71DC: ; // 0x28f71dc
|
|
/* 028F71DC */ _t10 = cpu->r[31] + 0x00000030u;
|
|
/* 028F71DC */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F71E0 */ _t11 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028F71E0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F71E4 */ rbrew_dispatch(cpu, 0x02d09330u);
|
|
L_028F71E8: ; // 0x28f71e8
|
|
/* 028F71E8 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028F71E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F71EC */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F71EC */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F71F0 */ cpu->lr = cpu->r[0];
|
|
/* 028F71F4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F71F8 */ return;
|
|
}
|
|
|
|
// fn_028F71FC @ 0x28f71fc
|
|
void Gambit_fn_028F71FC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028F71FC: ; // 0x28f71fc
|
|
/* 028F71FC */ cpu->r[0] = cpu->lr;
|
|
/* 028F7200 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F7200 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F7200 */ cpu->r[1] = _t0;
|
|
/* 028F7204 */ cpu->r[12] = cpu->r[5];
|
|
/* 028F7208 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F7208 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F720C */ cpu->r[5] = cpu->r[7];
|
|
/* 028F7210 */ cpu->r[7] = cpu->r[6];
|
|
/* 028F7214 */ cpu->r[6] = cpu->r[4] + 0x00000004u;
|
|
/* 028F7218 */ cpu->r[4] = cpu->r[8];
|
|
/* 028F721C */ cpu->r[8] = cpu->r[12];
|
|
/* 028F7220 */ cpu->r[3] = cpu->r[3] + 0x00000004u;
|
|
/* 028F7224 */ cpu->r[31] = cpu->r[9];
|
|
/* 028F7228 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F7228 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F722C */ rbrew_dispatch(cpu, 0x02d058c8u);
|
|
/* 028F7230 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F7234 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7234 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F7234 */ if (_t4) goto L_028F7244; else goto L_028F7238;
|
|
L_028F7238: ; // 0x28f7238
|
|
/* 028F7238 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F723C */ _t5 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F723C */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F7240 */ Gambit_fn_02906024(cpu);
|
|
L_028F7244: ; // 0x28f7244
|
|
/* 028F7244 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028F7244 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F7248 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F7248 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F724C */ cpu->lr = cpu->r[0];
|
|
/* 028F7250 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F7254 */ return;
|
|
}
|
|
|
|
// fn_028F7200 @ 0x28f7200
|
|
void Gambit_fn_028F7200(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028F7200: ; // 0x28f7200
|
|
/* 028F7200 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F7200 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F7200 */ cpu->r[1] = _t0;
|
|
/* 028F7204 */ cpu->r[12] = cpu->r[5];
|
|
/* 028F7208 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F7208 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F720C */ cpu->r[5] = cpu->r[7];
|
|
/* 028F7210 */ cpu->r[7] = cpu->r[6];
|
|
/* 028F7214 */ cpu->r[6] = cpu->r[4] + 0x00000004u;
|
|
/* 028F7218 */ cpu->r[4] = cpu->r[8];
|
|
/* 028F721C */ cpu->r[8] = cpu->r[12];
|
|
/* 028F7220 */ cpu->r[3] = cpu->r[3] + 0x00000004u;
|
|
/* 028F7224 */ cpu->r[31] = cpu->r[9];
|
|
/* 028F7228 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F7228 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F722C */ rbrew_dispatch(cpu, 0x02d058c8u);
|
|
/* 028F7230 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F7234 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7234 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F7234 */ if (_t4) goto L_028F7244; else goto L_028F7238;
|
|
L_028F7238: ; // 0x28f7238
|
|
/* 028F7238 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F723C */ _t5 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F723C */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F7240 */ Gambit_fn_02906024(cpu);
|
|
L_028F7244: ; // 0x28f7244
|
|
/* 028F7244 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028F7244 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F7248 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F7248 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F724C */ cpu->lr = cpu->r[0];
|
|
/* 028F7250 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F7254 */ return;
|
|
}
|
|
|
|
// fn_028F7258 @ 0x28f7258
|
|
void Gambit_fn_028F7258(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _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_028F7258: ; // 0x28f7258
|
|
/* 028F7258 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028F7258 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F7258 */ cpu->r[1] = _t0;
|
|
/* 028F725C */ /* nop */
|
|
/* 028F7260 */ cpu->r[0] = cpu->lr;
|
|
/* 028F7264 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028F7264 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F7268 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F726C */ cpu->r[26] = cpu->r[4];
|
|
/* 028F7270 */ _t2 = cpu->r[26] + 0x00000014u;
|
|
/* 028F7270 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F7274 */ _t3 = cpu->r[29] + 0x00000014u;
|
|
/* 028F7274 */ cpu->r[31] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F7278 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 028F727C */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F727C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F727C */ if (_t5) goto L_028F7280; else goto L_028F7284;
|
|
L_028F7280: ; // 0x28f7280
|
|
/* 028F7280 */ cpu->r[31] = cpu->r[0];
|
|
L_028F7284: ; // 0x28f7284
|
|
/* 028F7284 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F7288 */ cpu->r[28] = 0x00000000u;
|
|
/* 028F728C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F728C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F728C */ if (_t7) goto L_028F7310; else goto L_028F7290;
|
|
L_028F7290: ; // 0x28f7290
|
|
/* 028F7290 */ _t8 = cpu->r[26] + 0x00000010u;
|
|
/* 028F7290 */ cpu->r[8] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F7294 */ _t9 = cpu->r[29] + 0x00000010u;
|
|
/* 028F7294 */ cpu->r[9] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F7298 */ /* nop */
|
|
/* 028F729C */ _t10 = cpu->r[29] + 0x0000007Eu;
|
|
/* 028F729C */ cpu->r[0] = rbrew_read8(cpu->mem, _t10);
|
|
/* 028F72A0 */ /* nop */
|
|
/* 028F72A4 */ _t11 = cpu->r[26] + 0x0000007Eu;
|
|
/* 028F72A4 */ cpu->r[11] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028F72A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[0]);
|
|
/* 028F72AC */ _t12 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F72AC */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F72AC */ if (_t13) goto L_028F72B0; else goto L_028F72B4;
|
|
L_028F72B0: ; // 0x28f72b0
|
|
/* 028F72B0 */ cpu->r[0] = cpu->r[10];
|
|
L_028F72B4: ; // 0x28f72b4
|
|
/* 028F72B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[30]);
|
|
/* 028F72B8 */ _t14 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F72B8 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F72B8 */ if (_t15) goto L_028F72BC; else goto L_028F72C0;
|
|
L_028F72BC: ; // 0x28f72bc
|
|
/* 028F72BC */ cpu->r[30] = cpu->r[11];
|
|
L_028F72C0: ; // 0x28f72c0
|
|
/* 028F72C0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[30]);
|
|
/* 028F72C4 */ _t16 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F72C4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F72C4 */ if (_t17) goto L_028F72C8; else goto L_028F72CC;
|
|
L_028F72C8: ; // 0x28f72c8
|
|
/* 028F72C8 */ cpu->r[30] = cpu->r[0];
|
|
L_028F72CC: ; // 0x28f72cc
|
|
/* 028F72CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F72D0 */ cpu->r[27] = 0x00000000u;
|
|
/* 028F72D4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F72D4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F72D4 */ if (_t19) goto L_028F7304; else goto L_028F72D8;
|
|
L_028F72D8: ; // 0x28f72d8
|
|
/* 028F72D8 */ cpu->r[9] = 0x00000000u;
|
|
/* 028F72DC */ cpu->r[8] = cpu->r[28];
|
|
/* 028F72E0 */ cpu->r[7] = cpu->r[27];
|
|
/* 028F72E4 */ cpu->r[6] = cpu->r[28];
|
|
/* 028F72E8 */ cpu->r[5] = cpu->r[27];
|
|
/* 028F72EC */ cpu->r[4] = cpu->r[26];
|
|
/* 028F72F0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028F72F4 */ Gambit_fn_028F71FC(cpu);
|
|
/* 028F72F8 */ cpu->r[30] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 028F72F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F72FC */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 028F7300 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7300 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F7300 */ if (_t21) goto L_028F7304; else goto L_028F72D8;
|
|
L_028F7304: ; // 0x28f7304
|
|
/* 028F7304 */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028F7304 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F7308 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028F730C */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F730C */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F730C */ if (_t23) goto L_028F7310; else goto L_028F7290;
|
|
L_028F7310: ; // 0x28f7310
|
|
/* 028F7310 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F7314 */ _t24 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F7314 */ cpu->r[3] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F7318 */ Gambit_fn_02906024(cpu);
|
|
/* 028F731C */ /* nop */
|
|
/* 028F7320 */ _t25 = cpu->r[1] + 0x00000024u;
|
|
/* 028F7320 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F7324 */ cpu->lr = cpu->r[0];
|
|
/* 028F7328 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028F732C */ return;
|
|
}
|
|
|
|
// fn_028F7330 @ 0x28f7330
|
|
void Gambit_fn_028F7330(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F7330: ; // 0x28f7330
|
|
/* 028F7330 */ cpu->r[0] = cpu->lr;
|
|
/* 028F7334 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F7334 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F7334 */ cpu->r[1] = _t0;
|
|
/* 028F7338 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028F7338 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F733C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F733C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F7340 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F7340 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F7344 */ cpu->r[30] = cpu->r[4];
|
|
/* 028F7348 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F7348 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028F734C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F734C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F7350 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7350 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F7350 */ if (_t6) goto L_028F7354; else goto L_028F7364;
|
|
L_028F7354: ; // 0x28f7354
|
|
/* 028F7354 */ cpu->r[3] = 0x00000374u;
|
|
/* 028F7358 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F735C */ cpu->r[31] = cpu->r[3];
|
|
/* 028F735C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F7360 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7360 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F7360 */ if (_t8) goto L_028F74AC; else goto L_028F7364;
|
|
L_028F7364: ; // 0x28f7364
|
|
/* 028F7364 */ cpu->r[29] = cpu->r[31] + 0x00000014u;
|
|
/* 028F7364 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F7368 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7368 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F7368 */ if (_t10) goto L_028F736C; else goto L_028F737C;
|
|
L_028F736C: ; // 0x28f736c
|
|
/* 028F736C */ cpu->r[3] = 0x00000360u;
|
|
/* 028F7370 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F7374 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F7374 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F7378 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7378 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F7378 */ if (_t12) goto L_028F739C; else goto L_028F737C;
|
|
L_028F737C: ; // 0x28f737c
|
|
/* 028F737C */ cpu->r[3] = cpu->r[29];
|
|
/* 028F7380 */ Gambit_fn_028F7044(cpu);
|
|
/* 028F7384 */ cpu->r[3] = cpu->r[29] + 0x00000088u;
|
|
/* 028F7388 */ Gambit_fn_028F18E8(cpu);
|
|
/* 028F738C */ cpu->r[3] = cpu->r[29] + 0x000001C4u;
|
|
/* 028F7390 */ Gambit_fn_028F9E5C(cpu);
|
|
/* 028F7394 */ cpu->r[3] = cpu->r[29] + 0x00000320u;
|
|
/* 028F7398 */ Gambit_fn_028F047C(cpu);
|
|
L_028F739C: ; // 0x28f739c
|
|
/* 028F739C */ _t13 = cpu->r[31] + 0x000001DCu;
|
|
/* 028F739C */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F73A0 */ cpu->r[11] = cpu->r[31] + 0x00000334u;
|
|
/* 028F73A4 */ _t14 = cpu->r[31] + 0x00000098u;
|
|
/* 028F73A4 */ rbrew_write32(cpu->mem, _t14, cpu->r[11]);
|
|
/* 028F73A8 */ _t15 = cpu->r[30] + 0x00000004u;
|
|
/* 028F73A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F73AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F73B0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F73B0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F73B0 */ if (_t17) goto L_028F73B4; else goto L_028F7444;
|
|
L_028F73B4: ; // 0x28f73b4
|
|
/* 028F73B4 */ _t18 = cpu->r[31] + 0x000001E0u;
|
|
/* 028F73B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F73B8 */ _t19 = cpu->r[30] + 0x00000008u;
|
|
/* 028F73B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F73BC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F73C0 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F73C0 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F73C0 */ if (_t21) goto L_028F73C4; else goto L_028F7444;
|
|
L_028F73C4: ; // 0x28f73c4
|
|
/* 028F73C4 */ _t22 = cpu->r[31] + 0x000001E4u;
|
|
/* 028F73C4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F73C8 */ _t23 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F73C8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F73CC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[10]);
|
|
/* 028F73D0 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F73D0 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F73D0 */ if (_t25) goto L_028F73D4; else goto L_028F7444;
|
|
L_028F73D4: ; // 0x28f73d4
|
|
/* 028F73D4 */ _t26 = cpu->r[31] + 0x000001E8u;
|
|
/* 028F73D4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F73D8 */ _t27 = cpu->r[30] + 0x00000010u;
|
|
/* 028F73D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F73DC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[12]);
|
|
/* 028F73E0 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F73E0 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028F73E0 */ if (_t29) goto L_028F73E4; else goto L_028F7444;
|
|
L_028F73E4: ; // 0x28f73e4
|
|
/* 028F73E4 */ _t30 = cpu->r[31] + 0x000001ECu;
|
|
/* 028F73E4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F73E8 */ _t31 = cpu->r[30] + 0x00000014u;
|
|
/* 028F73E8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F73EC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[11]);
|
|
/* 028F73F0 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F73F0 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028F73F0 */ if (_t33) goto L_028F73F4; else goto L_028F7444;
|
|
L_028F73F4: ; // 0x28f73f4
|
|
/* 028F73F4 */ _t34 = cpu->r[31] + 0x000001F0u;
|
|
/* 028F73F4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F73F8 */ _t35 = cpu->r[30] + 0x00000018u;
|
|
/* 028F73F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F73FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F7400 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7400 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F7400 */ if (_t37) goto L_028F7404; else goto L_028F7444;
|
|
L_028F7404: ; // 0x28f7404
|
|
/* 028F7404 */ _t38 = cpu->r[31] + 0x00000210u;
|
|
/* 028F7404 */ cpu->r[9] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F7408 */ _t39 = cpu->r[30] + 0x00000038u;
|
|
/* 028F7408 */ cpu->r[10] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F740C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[10]);
|
|
/* 028F7410 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7410 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028F7410 */ if (_t41) goto L_028F7414; else goto L_028F7444;
|
|
L_028F7414: ; // 0x28f7414
|
|
/* 028F7414 */ _t42 = cpu->r[31] + 0x0000020Cu;
|
|
/* 028F7414 */ cpu->r[11] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F7418 */ _t43 = cpu->r[30] + 0x00000034u;
|
|
/* 028F7418 */ cpu->r[12] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028F741C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[12]);
|
|
/* 028F7420 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7420 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028F7420 */ if (_t45) goto L_028F7424; else goto L_028F7444;
|
|
L_028F7424: ; // 0x28f7424
|
|
/* 028F7424 */ _t46 = cpu->r[31] + 0x000001F8u;
|
|
/* 028F7424 */ cpu->r[0] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F7428 */ _t47 = cpu->r[30] + 0x00000020u;
|
|
/* 028F7428 */ cpu->r[9] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F742C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[9]);
|
|
/* 028F7430 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7430 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F7430 */ if (_t49) goto L_028F7434; else goto L_028F7444;
|
|
L_028F7434: ; // 0x28f7434
|
|
/* 028F7434 */ _t50 = cpu->r[31] + 0x000001F4u;
|
|
/* 028F7434 */ cpu->r[10] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F7438 */ _t51 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F7438 */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F743C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028F7440 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7440 */ _t53 = _t52 & 0x00000001u;
|
|
/* 028F7440 */ if (_t53) goto L_028F7474; else goto L_028F7444;
|
|
L_028F7444: ; // 0x28f7444
|
|
/* 028F7444 */ cpu->r[3] = cpu->r[31] + 0x000001D8u;
|
|
/* 028F7448 */ cpu->r[4] = cpu->r[30];
|
|
/* 028F744C */ Gambit_fn_028F9D94(cpu);
|
|
/* 028F7450 */ _t54 = cpu->r[31] + 0x0000032Cu;
|
|
/* 028F7450 */ cpu->r[10] = rbrew_read8(cpu->mem, _t54);
|
|
/* 028F7454 */ cpu->r[12] = 0x00000000u;
|
|
/* 028F7458 */ _t55 = cpu->r[31] + 0x00000320u;
|
|
/* 028F7458 */ rbrew_write8(cpu->mem, _t55, (uint8_t)cpu->r[12]);
|
|
/* 028F745C */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 028F7460 */ _t56 = cpu->r[31] + 0x00000321u;
|
|
/* 028F7460 */ rbrew_write8(cpu->mem, _t56, (uint8_t)cpu->r[12]);
|
|
/* 028F7464 */ cpu->r[9] = 0x00000001u;
|
|
/* 028F7468 */ _t57 = cpu->r[31] + 0x00000322u;
|
|
/* 028F7468 */ rbrew_write8(cpu->mem, _t57, (uint8_t)cpu->r[9]);
|
|
/* 028F746C */ _t58 = cpu->r[31] + 0x0000032Cu;
|
|
/* 028F746C */ rbrew_write8(cpu->mem, _t58, (uint8_t)cpu->r[10]);
|
|
/* 028F7470 */ goto L_028F74AC;
|
|
L_028F7474: ; // 0x28f7474
|
|
/* 028F7474 */ _t59 = cpu->r[30] + 0x00000028u;
|
|
/* 028F7474 */ cpu->r[0] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028F7478 */ cpu->r[12] = 0x00000000u;
|
|
/* 028F747C */ _t60 = cpu->r[30] + 0x00000030u;
|
|
/* 028F747C */ cpu->r[10] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028F7480 */ _t61 = cpu->r[31] + 0x00000321u;
|
|
/* 028F7480 */ rbrew_write8(cpu->mem, _t61, (uint8_t)cpu->r[12]);
|
|
/* 028F7484 */ _t62 = cpu->r[31] + 0x00000288u;
|
|
/* 028F7484 */ rbrew_write32(cpu->mem, _t62, cpu->r[10]);
|
|
/* 028F7488 */ _t63 = cpu->r[31] + 0x00000208u;
|
|
/* 028F7488 */ rbrew_write32(cpu->mem, _t63, cpu->r[10]);
|
|
/* 028F748C */ _t64 = cpu->r[31] + 0x0000032Cu;
|
|
/* 028F748C */ cpu->r[10] = rbrew_read8(cpu->mem, _t64);
|
|
/* 028F7490 */ _t65 = cpu->r[31] + 0x00000280u;
|
|
/* 028F7490 */ rbrew_write32(cpu->mem, _t65, cpu->r[0]);
|
|
/* 028F7494 */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 028F7498 */ _t66 = cpu->r[31] + 0x00000320u;
|
|
/* 028F7498 */ rbrew_write8(cpu->mem, _t66, (uint8_t)cpu->r[12]);
|
|
/* 028F749C */ cpu->r[9] = 0x00000001u;
|
|
/* 028F74A0 */ _t67 = cpu->r[31] + 0x0000032Cu;
|
|
/* 028F74A0 */ rbrew_write8(cpu->mem, _t67, (uint8_t)cpu->r[10]);
|
|
/* 028F74A4 */ _t68 = cpu->r[31] + 0x00000322u;
|
|
/* 028F74A4 */ rbrew_write8(cpu->mem, _t68, (uint8_t)cpu->r[9]);
|
|
/* 028F74A8 */ _t69 = cpu->r[31] + 0x00000200u;
|
|
/* 028F74A8 */ rbrew_write32(cpu->mem, _t69, cpu->r[0]);
|
|
L_028F74AC: ; // 0x28f74ac
|
|
/* 028F74AC */ _t70 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F74AC */ cpu->r[29] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028F74B0 */ _t71 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F74B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028F74B4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F74B8 */ _t72 = cpu->r[1] + 0x00000010u;
|
|
/* 028F74B8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028F74BC */ cpu->lr = cpu->r[0];
|
|
/* 028F74C0 */ _t73 = cpu->r[1] + 0x00000014u;
|
|
/* 028F74C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028F74C4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F74C8 */ return;
|
|
}
|
|
|
|
// fn_028F7334 @ 0x28f7334
|
|
void Gambit_fn_028F7334(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F7334: ; // 0x28f7334
|
|
/* 028F7334 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028F7334 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F7334 */ cpu->r[1] = _t0;
|
|
/* 028F7338 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028F7338 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F733C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F733C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F7340 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F7340 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F7344 */ cpu->r[30] = cpu->r[4];
|
|
/* 028F7348 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F7348 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028F734C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F734C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F7350 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7350 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F7350 */ if (_t6) goto L_028F7354; else goto L_028F7364;
|
|
L_028F7354: ; // 0x28f7354
|
|
/* 028F7354 */ cpu->r[3] = 0x00000374u;
|
|
/* 028F7358 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F735C */ cpu->r[31] = cpu->r[3];
|
|
/* 028F735C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F7360 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7360 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F7360 */ if (_t8) goto L_028F74AC; else goto L_028F7364;
|
|
L_028F7364: ; // 0x28f7364
|
|
/* 028F7364 */ cpu->r[29] = cpu->r[31] + 0x00000014u;
|
|
/* 028F7364 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F7368 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7368 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F7368 */ if (_t10) goto L_028F736C; else goto L_028F737C;
|
|
L_028F736C: ; // 0x28f736c
|
|
/* 028F736C */ cpu->r[3] = 0x00000360u;
|
|
/* 028F7370 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F7374 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F7374 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F7378 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7378 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F7378 */ if (_t12) goto L_028F739C; else goto L_028F737C;
|
|
L_028F737C: ; // 0x28f737c
|
|
/* 028F737C */ cpu->r[3] = cpu->r[29];
|
|
/* 028F7380 */ Gambit_fn_028F7044(cpu);
|
|
/* 028F7384 */ cpu->r[3] = cpu->r[29] + 0x00000088u;
|
|
/* 028F7388 */ Gambit_fn_028F18E8(cpu);
|
|
/* 028F738C */ cpu->r[3] = cpu->r[29] + 0x000001C4u;
|
|
/* 028F7390 */ Gambit_fn_028F9E5C(cpu);
|
|
/* 028F7394 */ cpu->r[3] = cpu->r[29] + 0x00000320u;
|
|
/* 028F7398 */ Gambit_fn_028F047C(cpu);
|
|
L_028F739C: ; // 0x28f739c
|
|
/* 028F739C */ _t13 = cpu->r[31] + 0x000001DCu;
|
|
/* 028F739C */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F73A0 */ cpu->r[11] = cpu->r[31] + 0x00000334u;
|
|
/* 028F73A4 */ _t14 = cpu->r[31] + 0x00000098u;
|
|
/* 028F73A4 */ rbrew_write32(cpu->mem, _t14, cpu->r[11]);
|
|
/* 028F73A8 */ _t15 = cpu->r[30] + 0x00000004u;
|
|
/* 028F73A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F73AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F73B0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F73B0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F73B0 */ if (_t17) goto L_028F73B4; else goto L_028F7444;
|
|
L_028F73B4: ; // 0x28f73b4
|
|
/* 028F73B4 */ _t18 = cpu->r[31] + 0x000001E0u;
|
|
/* 028F73B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F73B8 */ _t19 = cpu->r[30] + 0x00000008u;
|
|
/* 028F73B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F73BC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F73C0 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F73C0 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F73C0 */ if (_t21) goto L_028F73C4; else goto L_028F7444;
|
|
L_028F73C4: ; // 0x28f73c4
|
|
/* 028F73C4 */ _t22 = cpu->r[31] + 0x000001E4u;
|
|
/* 028F73C4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F73C8 */ _t23 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F73C8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F73CC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[10]);
|
|
/* 028F73D0 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F73D0 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F73D0 */ if (_t25) goto L_028F73D4; else goto L_028F7444;
|
|
L_028F73D4: ; // 0x28f73d4
|
|
/* 028F73D4 */ _t26 = cpu->r[31] + 0x000001E8u;
|
|
/* 028F73D4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F73D8 */ _t27 = cpu->r[30] + 0x00000010u;
|
|
/* 028F73D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F73DC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[12]);
|
|
/* 028F73E0 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F73E0 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028F73E0 */ if (_t29) goto L_028F73E4; else goto L_028F7444;
|
|
L_028F73E4: ; // 0x28f73e4
|
|
/* 028F73E4 */ _t30 = cpu->r[31] + 0x000001ECu;
|
|
/* 028F73E4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F73E8 */ _t31 = cpu->r[30] + 0x00000014u;
|
|
/* 028F73E8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F73EC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[11]);
|
|
/* 028F73F0 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F73F0 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028F73F0 */ if (_t33) goto L_028F73F4; else goto L_028F7444;
|
|
L_028F73F4: ; // 0x28f73f4
|
|
/* 028F73F4 */ _t34 = cpu->r[31] + 0x000001F0u;
|
|
/* 028F73F4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F73F8 */ _t35 = cpu->r[30] + 0x00000018u;
|
|
/* 028F73F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F73FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F7400 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7400 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F7400 */ if (_t37) goto L_028F7404; else goto L_028F7444;
|
|
L_028F7404: ; // 0x28f7404
|
|
/* 028F7404 */ _t38 = cpu->r[31] + 0x00000210u;
|
|
/* 028F7404 */ cpu->r[9] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F7408 */ _t39 = cpu->r[30] + 0x00000038u;
|
|
/* 028F7408 */ cpu->r[10] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F740C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[10]);
|
|
/* 028F7410 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7410 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028F7410 */ if (_t41) goto L_028F7414; else goto L_028F7444;
|
|
L_028F7414: ; // 0x28f7414
|
|
/* 028F7414 */ _t42 = cpu->r[31] + 0x0000020Cu;
|
|
/* 028F7414 */ cpu->r[11] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F7418 */ _t43 = cpu->r[30] + 0x00000034u;
|
|
/* 028F7418 */ cpu->r[12] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028F741C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[12]);
|
|
/* 028F7420 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7420 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028F7420 */ if (_t45) goto L_028F7424; else goto L_028F7444;
|
|
L_028F7424: ; // 0x28f7424
|
|
/* 028F7424 */ _t46 = cpu->r[31] + 0x000001F8u;
|
|
/* 028F7424 */ cpu->r[0] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F7428 */ _t47 = cpu->r[30] + 0x00000020u;
|
|
/* 028F7428 */ cpu->r[9] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F742C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[9]);
|
|
/* 028F7430 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7430 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F7430 */ if (_t49) goto L_028F7434; else goto L_028F7444;
|
|
L_028F7434: ; // 0x28f7434
|
|
/* 028F7434 */ _t50 = cpu->r[31] + 0x000001F4u;
|
|
/* 028F7434 */ cpu->r[10] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F7438 */ _t51 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F7438 */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F743C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028F7440 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7440 */ _t53 = _t52 & 0x00000001u;
|
|
/* 028F7440 */ if (_t53) goto L_028F7474; else goto L_028F7444;
|
|
L_028F7444: ; // 0x28f7444
|
|
/* 028F7444 */ cpu->r[3] = cpu->r[31] + 0x000001D8u;
|
|
/* 028F7448 */ cpu->r[4] = cpu->r[30];
|
|
/* 028F744C */ Gambit_fn_028F9D94(cpu);
|
|
/* 028F7450 */ _t54 = cpu->r[31] + 0x0000032Cu;
|
|
/* 028F7450 */ cpu->r[10] = rbrew_read8(cpu->mem, _t54);
|
|
/* 028F7454 */ cpu->r[12] = 0x00000000u;
|
|
/* 028F7458 */ _t55 = cpu->r[31] + 0x00000320u;
|
|
/* 028F7458 */ rbrew_write8(cpu->mem, _t55, (uint8_t)cpu->r[12]);
|
|
/* 028F745C */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 028F7460 */ _t56 = cpu->r[31] + 0x00000321u;
|
|
/* 028F7460 */ rbrew_write8(cpu->mem, _t56, (uint8_t)cpu->r[12]);
|
|
/* 028F7464 */ cpu->r[9] = 0x00000001u;
|
|
/* 028F7468 */ _t57 = cpu->r[31] + 0x00000322u;
|
|
/* 028F7468 */ rbrew_write8(cpu->mem, _t57, (uint8_t)cpu->r[9]);
|
|
/* 028F746C */ _t58 = cpu->r[31] + 0x0000032Cu;
|
|
/* 028F746C */ rbrew_write8(cpu->mem, _t58, (uint8_t)cpu->r[10]);
|
|
/* 028F7470 */ goto L_028F74AC;
|
|
L_028F7474: ; // 0x28f7474
|
|
/* 028F7474 */ _t59 = cpu->r[30] + 0x00000028u;
|
|
/* 028F7474 */ cpu->r[0] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028F7478 */ cpu->r[12] = 0x00000000u;
|
|
/* 028F747C */ _t60 = cpu->r[30] + 0x00000030u;
|
|
/* 028F747C */ cpu->r[10] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028F7480 */ _t61 = cpu->r[31] + 0x00000321u;
|
|
/* 028F7480 */ rbrew_write8(cpu->mem, _t61, (uint8_t)cpu->r[12]);
|
|
/* 028F7484 */ _t62 = cpu->r[31] + 0x00000288u;
|
|
/* 028F7484 */ rbrew_write32(cpu->mem, _t62, cpu->r[10]);
|
|
/* 028F7488 */ _t63 = cpu->r[31] + 0x00000208u;
|
|
/* 028F7488 */ rbrew_write32(cpu->mem, _t63, cpu->r[10]);
|
|
/* 028F748C */ _t64 = cpu->r[31] + 0x0000032Cu;
|
|
/* 028F748C */ cpu->r[10] = rbrew_read8(cpu->mem, _t64);
|
|
/* 028F7490 */ _t65 = cpu->r[31] + 0x00000280u;
|
|
/* 028F7490 */ rbrew_write32(cpu->mem, _t65, cpu->r[0]);
|
|
/* 028F7494 */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 028F7498 */ _t66 = cpu->r[31] + 0x00000320u;
|
|
/* 028F7498 */ rbrew_write8(cpu->mem, _t66, (uint8_t)cpu->r[12]);
|
|
/* 028F749C */ cpu->r[9] = 0x00000001u;
|
|
/* 028F74A0 */ _t67 = cpu->r[31] + 0x0000032Cu;
|
|
/* 028F74A0 */ rbrew_write8(cpu->mem, _t67, (uint8_t)cpu->r[10]);
|
|
/* 028F74A4 */ _t68 = cpu->r[31] + 0x00000322u;
|
|
/* 028F74A4 */ rbrew_write8(cpu->mem, _t68, (uint8_t)cpu->r[9]);
|
|
/* 028F74A8 */ _t69 = cpu->r[31] + 0x00000200u;
|
|
/* 028F74A8 */ rbrew_write32(cpu->mem, _t69, cpu->r[0]);
|
|
L_028F74AC: ; // 0x28f74ac
|
|
/* 028F74AC */ _t70 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F74AC */ cpu->r[29] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028F74B0 */ _t71 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F74B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028F74B4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F74B8 */ _t72 = cpu->r[1] + 0x00000010u;
|
|
/* 028F74B8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028F74BC */ cpu->lr = cpu->r[0];
|
|
/* 028F74C0 */ _t73 = cpu->r[1] + 0x00000014u;
|
|
/* 028F74C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028F74C4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028F74C8 */ return;
|
|
}
|
|
|
|
// fn_028F74CC @ 0x28f74cc
|
|
void Gambit_fn_028F74CC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F74CC: ; // 0x28f74cc
|
|
/* 028F74CC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F74CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F74CC */ cpu->r[1] = _t0;
|
|
/* 028F74D0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F74D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F74D4 */ _t2 = cpu->r[3] + 0x00000004u;
|
|
/* 028F74D4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F74D8 */ cpu->r[12] = 0x00000001u;
|
|
/* 028F74DC */ _t3 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F74DC */ rbrew_write32(cpu->mem, _t3, cpu->r[5]);
|
|
/* 028F74E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000004u);
|
|
/* 028F74E4 */ _t4 = cpu->r[3] + 0x00000008u;
|
|
/* 028F74E4 */ rbrew_write32(cpu->mem, _t4, cpu->r[4]);
|
|
/* 028F74E8 */ cpu->r[11] = cpu->r[12];
|
|
/* 028F74EC */ _t5 = cpu->r[3] + 0x0000007Cu;
|
|
/* 028F74EC */ rbrew_write8(cpu->mem, _t5, (uint8_t)cpu->r[12]);
|
|
/* 028F74F0 */ _t6 = cpu->r[3] + 0x00000004u;
|
|
/* 028F74F0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F74F4 */ _t7 = cpu->r[3] + 0x00000010u;
|
|
/* 028F74F4 */ rbrew_write32(cpu->mem, _t7, cpu->r[6]);
|
|
/* 028F74F8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F74F8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F74F8 */ if (_t9) goto L_028F74FC; else goto L_028F7500;
|
|
L_028F74FC: ; // 0x28f74fc
|
|
/* 028F74FC */ cpu->r[11] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
L_028F7500: ; // 0x28f7500
|
|
/* 028F7500 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000003u);
|
|
/* 028F7504 */ _t10 = cpu->r[3] + 0x0000007Du;
|
|
/* 028F7504 */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[11]);
|
|
/* 028F7508 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7508 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F7508 */ if (_t12) goto L_028F751C; else goto L_028F750C;
|
|
L_028F750C: ; // 0x28f750c
|
|
/* 028F750C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000005u);
|
|
/* 028F7510 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7510 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F7510 */ if (_t14) goto L_028F751C; else goto L_028F7514;
|
|
L_028F7514: ; // 0x28f7514
|
|
/* 028F7514 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000007u);
|
|
/* 028F7518 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7518 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F7518 */ if (_t16) goto L_028F751C; else goto L_028F7534;
|
|
L_028F751C: ; // 0x28f751c
|
|
/* 028F751C */ _t17 = cpu->r[3] + 0x00000004u;
|
|
/* 028F751C */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F7520 */ cpu->r[6] = rbrew_rlwinm(cpu->r[6], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F7524 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000006u);
|
|
/* 028F7528 */ _t18 = cpu->r[3] + 0x0000007Eu;
|
|
/* 028F7528 */ rbrew_write8(cpu->mem, _t18, (uint8_t)cpu->r[6]);
|
|
/* 028F752C */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F752C */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F752C */ if (_t20) goto L_028F7530; else goto L_028F7548;
|
|
L_028F7530: ; // 0x28f7530
|
|
/* 028F7530 */ goto L_028F7550;
|
|
L_028F7534: ; // 0x28f7534
|
|
/* 028F7534 */ _t21 = cpu->r[3] + 0x00000004u;
|
|
/* 028F7534 */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F7538 */ cpu->r[6] = 0x00000001u;
|
|
/* 028F753C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000006u);
|
|
/* 028F7540 */ _t22 = cpu->r[3] + 0x0000007Eu;
|
|
/* 028F7540 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[6]);
|
|
/* 028F7544 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7544 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028F7544 */ if (_t24) goto L_028F7550; else goto L_028F7548;
|
|
L_028F7548: ; // 0x28f7548
|
|
/* 028F7548 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000007u);
|
|
/* 028F754C */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F754C */ _t26 = _t25 & 0x00000001u;
|
|
/* 028F754C */ if (_t26) goto L_028F7550; else goto L_028F7564;
|
|
L_028F7550: ; // 0x28f7550
|
|
/* 028F7550 */ cpu->r[10] = 0x00000001u;
|
|
/* 028F7554 */ _t27 = cpu->r[3] + 0x0000007Fu;
|
|
/* 028F7554 */ rbrew_write8(cpu->mem, _t27, (uint8_t)cpu->r[10]);
|
|
L_028F7558: ; // 0x28f7558
|
|
/* 028F7558 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F7558 */ cpu->r[31] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F755C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F7560 */ return;
|
|
L_028F7564: ; // 0x28f7564
|
|
/* 028F7564 */ _t29 = cpu->r[3] + 0x00000010u;
|
|
/* 028F7564 */ cpu->r[8] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F7568 */ cpu->r[9] = 0x00000000u;
|
|
/* 028F756C */ _t30 = cpu->r[3] + 0x00000008u;
|
|
/* 028F756C */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F7570 */ _t31 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F7570 */ cpu->r[5] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F7574 */ _t32 = cpu->r[3] + 0x0000007Du;
|
|
/* 028F7574 */ cpu->r[7] = rbrew_read8(cpu->mem, _t32);
|
|
/* 028F7578 */ _t33 = cpu->r[3] + 0x0000007Cu;
|
|
/* 028F7578 */ cpu->r[4] = rbrew_read8(cpu->mem, _t33);
|
|
/* 028F757C */ cpu->r[10] = 0x00000001u;
|
|
L_028F7580: ; // 0x28f7580
|
|
/* 028F7580 */ /* nop */
|
|
/* 028F7584 */ /* nop */
|
|
/* 028F7588 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[11]);
|
|
/* 028F758C */ _t34 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F758C */ _t35 = _t34 & 0x00000001u;
|
|
/* 028F758C */ if (_t35) goto L_028F7590; else goto L_028F7594;
|
|
L_028F7590: ; // 0x28f7590
|
|
/* 028F7590 */ cpu->r[11] = cpu->r[4];
|
|
L_028F7594: ; // 0x28f7594
|
|
/* 028F7594 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[12]);
|
|
/* 028F7598 */ _t36 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F7598 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F7598 */ if (_t37) goto L_028F759C; else goto L_028F75A0;
|
|
L_028F759C: ; // 0x28f759c
|
|
/* 028F759C */ cpu->r[12] = cpu->r[4];
|
|
L_028F75A0: ; // 0x28f75a0
|
|
/* 028F75A0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[12]);
|
|
/* 028F75A4 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F75A4 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028F75A4 */ if (_t39) goto L_028F75A8; else goto L_028F7600;
|
|
L_028F75A8: ; // 0x28f75a8
|
|
/* 028F75A8 */ /* nop */
|
|
/* 028F75AC */ /* nop */
|
|
/* 028F75B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[11]);
|
|
/* 028F75B4 */ _t40 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F75B4 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028F75B4 */ if (_t41) goto L_028F75B8; else goto L_028F75BC;
|
|
L_028F75B8: ; // 0x28f75b8
|
|
/* 028F75B8 */ cpu->r[11] = cpu->r[7];
|
|
L_028F75BC: ; // 0x28f75bc
|
|
/* 028F75BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[12]);
|
|
/* 028F75C0 */ _t42 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F75C0 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028F75C0 */ if (_t43) goto L_028F75C4; else goto L_028F75C8;
|
|
L_028F75C4: ; // 0x28f75c4
|
|
/* 028F75C4 */ cpu->r[12] = cpu->r[7];
|
|
L_028F75C8: ; // 0x28f75c8
|
|
/* 028F75C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[12]);
|
|
/* 028F75CC */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F75CC */ _t45 = _t44 & 0x00000001u;
|
|
/* 028F75CC */ if (_t45) goto L_028F75D0; else goto L_028F7600;
|
|
L_028F75D0: ; // 0x28f75d0
|
|
/* 028F75D0 */ /* nop */
|
|
/* 028F75D4 */ /* nop */
|
|
/* 028F75D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], cpu->r[11]);
|
|
/* 028F75DC */ _t46 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F75DC */ _t47 = _t46 & 0x00000001u;
|
|
/* 028F75DC */ if (_t47) goto L_028F75E0; else goto L_028F75E4;
|
|
L_028F75E0: ; // 0x28f75e0
|
|
/* 028F75E0 */ cpu->r[11] = cpu->r[6];
|
|
L_028F75E4: ; // 0x28f75e4
|
|
/* 028F75E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], cpu->r[12]);
|
|
/* 028F75E8 */ _t48 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F75E8 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F75E8 */ if (_t49) goto L_028F75EC; else goto L_028F75F0;
|
|
L_028F75EC: ; // 0x28f75ec
|
|
/* 028F75EC */ cpu->r[12] = cpu->r[6];
|
|
L_028F75F0: ; // 0x28f75f0
|
|
/* 028F75F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[12]);
|
|
/* 028F75F4 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F75F4 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028F75F4 */ if (_t51) goto L_028F75F8; else goto L_028F7600;
|
|
L_028F75F8: ; // 0x28f75f8
|
|
/* 028F75F8 */ _t52 = cpu->r[3] + 0x0000007Fu;
|
|
/* 028F75F8 */ rbrew_write8(cpu->mem, _t52, (uint8_t)cpu->r[10]);
|
|
/* 028F75FC */ goto L_028F7558;
|
|
L_028F7600: ; // 0x28f7600
|
|
/* 028F7600 */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 028F7604 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028F7608 */ goto L_028F7580;
|
|
}
|
|
|
|
// fn_028F760C @ 0x28f760c
|
|
void Gambit_fn_028F760C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028F7144: ; // 0x28f7144
|
|
/* 028F7144 */ cpu->r[3] = cpu->r[3] + 0x00000004u;
|
|
/* 028F7148 */ goto L_02905B10;
|
|
L_028F760C: ; // 0x28f760c
|
|
/* 028F760C */ _t0 = cpu->r[3] + 0x00000004u;
|
|
/* 028F760C */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F7610 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000006u);
|
|
/* 028F7614 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7614 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028F7614 */ if (_t2) goto L_028F7620; else goto L_028F7618;
|
|
L_028F7618: ; // 0x28f7618
|
|
/* 028F7618 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000007u);
|
|
/* 028F761C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F761C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F761C */ if (_t4) goto L_028F7620; else goto L_028F7634;
|
|
L_028F7620: ; // 0x28f7620
|
|
/* 028F7620 */ cpu->r[4] = 0x00000001u;
|
|
/* 028F7624 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028F7628 */ _t5 = cpu->r[3] + 0x00000014u;
|
|
/* 028F7628 */ rbrew_write32(cpu->mem, _t5, cpu->r[4]);
|
|
/* 028F762C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F762C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F762C */ if (_t7) goto L_028F7630; else goto L_028F7660;
|
|
L_028F7630: ; // 0x28f7630
|
|
/* 028F7630 */ return;
|
|
L_028F7634: ; // 0x28f7634
|
|
/* 028F7634 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F7638 */ _t8 = cpu->r[3] + 0x0000007Fu;
|
|
/* 028F7638 */ cpu->r[12] = rbrew_read8(cpu->mem, _t8);
|
|
/* 028F763C */ _t9 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F763C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F763C */ if (_t10) goto L_028F7648; else goto L_028F7640;
|
|
L_028F7640: ; // 0x28f7640
|
|
/* 028F7640 */ cpu->r[4] = 0x00000001u;
|
|
/* 028F7644 */ goto L_028F7654;
|
|
L_028F7648: ; // 0x28f7648
|
|
/* 028F7648 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[12]);
|
|
/* 028F764C */ _t11 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F764C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F764C */ if (_t12) goto L_028F7650; else goto L_028F7654;
|
|
L_028F7650: ; // 0x28f7650
|
|
/* 028F7650 */ cpu->r[4] = cpu->r[12];
|
|
L_028F7654: ; // 0x28f7654
|
|
/* 028F7654 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028F7658 */ _t13 = cpu->r[3] + 0x00000014u;
|
|
/* 028F7658 */ rbrew_write32(cpu->mem, _t13, cpu->r[4]);
|
|
/* 028F765C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F765C */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F765C */ if (_t15) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F765C */ goto L_028F7660;
|
|
L_028F7660: ; // 0x28f7660
|
|
/* 028F7660 */ goto L_028F7144;
|
|
L_02905B10: ; // 0x2905b10
|
|
/* 02905B10 */ rbrew_dispatch(cpu, 0x02d05878u); return;
|
|
}
|
|
|
|
// fn_028F7664 @ 0x28f7664
|
|
void Gambit_fn_028F7664(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _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_028F7664: ; // 0x28f7664
|
|
/* 028F7664 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028F7664 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F7664 */ cpu->r[1] = _t0;
|
|
/* 028F7668 */ cpu->r[0] = cpu->lr;
|
|
/* 028F766C */ /* nop */
|
|
/* 028F7670 */ cpu->r[31] = cpu->r[5];
|
|
/* 028F7674 */ cpu->r[23] = cpu->r[7];
|
|
/* 028F7678 */ cpu->r[24] = cpu->r[8];
|
|
/* 028F767C */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 028F767C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F7680 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F7684 */ cpu->r[30] = cpu->r[6];
|
|
/* 028F7688 */ _t2 = cpu->r[29] + 0x00000000u;
|
|
/* 028F7688 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F768C */ cpu->r[26] = cpu->r[10];
|
|
/* 028F7690 */ _t3 = cpu->r[1] + 0x00000038u;
|
|
/* 028F7690 */ cpu->r[28] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F7694 */ cpu->r[25] = cpu->r[9];
|
|
/* 028F7698 */ _t4 = cpu->r[1] + 0x0000003Fu;
|
|
/* 028F7698 */ cpu->r[27] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028F769C */ cpu->r[3] = cpu->r[31];
|
|
/* 028F76A0 */ _t5 = cpu->r[29] + 0x00000004u;
|
|
/* 028F76A0 */ rbrew_write32(cpu->mem, _t5, cpu->r[4]);
|
|
/* 028F76A4 */ Gambit_fn_02905AD0(cpu);
|
|
/* 028F76A8 */ _t6 = cpu->r[29] + 0x00000018u;
|
|
/* 028F76A8 */ rbrew_write32(cpu->mem, _t6, cpu->r[3]);
|
|
/* 028F76AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000039u);
|
|
/* 028F76B0 */ _t7 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028F76B0 */ rbrew_write32(cpu->mem, _t7, cpu->r[28]);
|
|
/* 028F76B4 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F76B4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F76B4 */ if (_t9) goto L_028F7740; else goto L_028F76B8;
|
|
L_028F76B8: ; // 0x28f76b8
|
|
/* 028F76B8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x0000003Au);
|
|
/* 028F76BC */ _t10 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F76BC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F76BC */ if (_t11) goto L_028F7740; else goto L_028F76C0;
|
|
L_028F76C0: ; // 0x28f76c0
|
|
/* 028F76C0 */ cpu->r[0] = 0x00000005u;
|
|
/* 028F76C4 */ cpu->r[3] = cpu->r[29];
|
|
/* 028F76C8 */ _t12 = cpu->r[29] + 0x00000034u;
|
|
/* 028F76C8 */ rbrew_write32(cpu->mem, _t12, cpu->r[26]);
|
|
/* 028F76CC */ cpu->r[28] = 0x00000000u;
|
|
/* 028F76D0 */ cpu->r[4] = cpu->r[30];
|
|
/* 028F76D4 */ _t13 = cpu->r[29] + 0x00000020u;
|
|
/* 028F76D4 */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
/* 028F76D8 */ cpu->r[5] = cpu->r[23];
|
|
/* 028F76DC */ cpu->r[6] = cpu->r[24];
|
|
/* 028F76E0 */ _t14 = cpu->r[29] + 0x00000038u;
|
|
/* 028F76E0 */ rbrew_write32(cpu->mem, _t14, cpu->r[28]);
|
|
/* 028F76E4 */ Gambit_fn_028F74CC(cpu);
|
|
/* 028F76E8 */ cpu->r[4] = cpu->r[25];
|
|
/* 028F76EC */ cpu->r[5] = cpu->r[27];
|
|
/* 028F76F0 */ Gambit_fn_028F760C(cpu);
|
|
/* 028F76F4 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F76F8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F76FC */ Gambit_fn_028F9CAC(cpu);
|
|
/* 028F7700 */ _t15 = cpu->r[29] + 0x00000078u;
|
|
/* 028F7700 */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[3]);
|
|
/* 028F7704 */ cpu->r[4] = 0x00000001u;
|
|
/* 028F7708 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F770C */ Gambit_fn_028F9CAC(cpu);
|
|
/* 028F7710 */ _t16 = cpu->r[29] + 0x00000079u;
|
|
/* 028F7710 */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[3]);
|
|
/* 028F7714 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F7718 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F771C */ Gambit_fn_028F9CAC(cpu);
|
|
/* 028F7720 */ _t17 = cpu->r[29] + 0x0000007Au;
|
|
/* 028F7720 */ rbrew_write8(cpu->mem, _t17, (uint8_t)cpu->r[3]);
|
|
/* 028F7724 */ cpu->r[4] = 0x00000003u;
|
|
/* 028F7728 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F772C */ Gambit_fn_028F9CAC(cpu);
|
|
/* 028F7730 */ _t18 = cpu->r[29] + 0x0000007Bu;
|
|
/* 028F7730 */ rbrew_write8(cpu->mem, _t18, (uint8_t)cpu->r[3]);
|
|
/* 028F7734 */ _t19 = cpu->r[29] + 0x00000028u;
|
|
/* 028F7734 */ rbrew_write32(cpu->mem, _t19, cpu->r[28]);
|
|
/* 028F7738 */ _t20 = cpu->r[29] + 0x00000030u;
|
|
/* 028F7738 */ rbrew_write32(cpu->mem, _t20, cpu->r[28]);
|
|
/* 028F773C */ goto L_028F77BC;
|
|
L_028F7740: ; // 0x28f7740
|
|
/* 028F7740 */ cpu->r[0] = 0x00000001u;
|
|
/* 028F7744 */ cpu->r[3] = cpu->r[29];
|
|
/* 028F7748 */ _t21 = cpu->r[29] + 0x00000034u;
|
|
/* 028F7748 */ rbrew_write32(cpu->mem, _t21, cpu->r[26]);
|
|
/* 028F774C */ cpu->r[28] = 0x00000000u;
|
|
/* 028F7750 */ cpu->r[4] = cpu->r[30];
|
|
/* 028F7754 */ _t22 = cpu->r[29] + 0x00000020u;
|
|
/* 028F7754 */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
/* 028F7758 */ cpu->r[5] = cpu->r[23];
|
|
/* 028F775C */ cpu->r[6] = cpu->r[24];
|
|
/* 028F7760 */ _t23 = cpu->r[29] + 0x00000038u;
|
|
/* 028F7760 */ rbrew_write32(cpu->mem, _t23, cpu->r[28]);
|
|
/* 028F7764 */ Gambit_fn_028F74CC(cpu);
|
|
/* 028F7768 */ cpu->r[4] = cpu->r[25];
|
|
/* 028F776C */ cpu->r[5] = cpu->r[27];
|
|
/* 028F7770 */ Gambit_fn_028F760C(cpu);
|
|
/* 028F7774 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F7778 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F777C */ Gambit_fn_028F9CAC(cpu);
|
|
/* 028F7780 */ _t24 = cpu->r[29] + 0x00000078u;
|
|
/* 028F7780 */ rbrew_write8(cpu->mem, _t24, (uint8_t)cpu->r[3]);
|
|
/* 028F7784 */ cpu->r[4] = 0x00000001u;
|
|
/* 028F7788 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F778C */ Gambit_fn_028F9CAC(cpu);
|
|
/* 028F7790 */ _t25 = cpu->r[29] + 0x00000079u;
|
|
/* 028F7790 */ rbrew_write8(cpu->mem, _t25, (uint8_t)cpu->r[3]);
|
|
/* 028F7794 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F7798 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F779C */ Gambit_fn_028F9CAC(cpu);
|
|
/* 028F77A0 */ _t26 = cpu->r[29] + 0x0000007Au;
|
|
/* 028F77A0 */ rbrew_write8(cpu->mem, _t26, (uint8_t)cpu->r[3]);
|
|
/* 028F77A4 */ cpu->r[4] = 0x00000003u;
|
|
/* 028F77A8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F77AC */ Gambit_fn_028F9CAC(cpu);
|
|
/* 028F77B0 */ _t27 = cpu->r[29] + 0x00000030u;
|
|
/* 028F77B0 */ rbrew_write32(cpu->mem, _t27, cpu->r[28]);
|
|
/* 028F77B4 */ _t28 = cpu->r[29] + 0x0000007Bu;
|
|
/* 028F77B4 */ rbrew_write8(cpu->mem, _t28, (uint8_t)cpu->r[3]);
|
|
/* 028F77B8 */ _t29 = cpu->r[29] + 0x00000028u;
|
|
/* 028F77B8 */ rbrew_write32(cpu->mem, _t29, cpu->r[28]);
|
|
L_028F77BC: ; // 0x28f77bc
|
|
/* 028F77BC */ /* nop */
|
|
/* 028F77C0 */ _t30 = cpu->r[1] + 0x00000034u;
|
|
/* 028F77C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F77C4 */ cpu->lr = cpu->r[0];
|
|
/* 028F77C8 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028F77CC */ return;
|
|
}
|
|
|
|
// fn_028F77D0 @ 0x28f77d0
|
|
void Gambit_fn_028F77D0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F77D0: ; // 0x28f77d0
|
|
/* 028F77D0 */ _t0 = cpu->r[1] + 0xFFFFFFA8u;
|
|
/* 028F77D0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F77D0 */ cpu->r[1] = _t0;
|
|
/* 028F77D4 */ /* nop */
|
|
/* 028F77D8 */ cpu->r[0] = cpu->lr;
|
|
/* 028F77DC */ _t1 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028F77DC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F77E0 */ cpu->r[29] = cpu->r[4];
|
|
/* 028F77E4 */ _t2 = cpu->r[29] + 0x00000000u;
|
|
/* 028F77E4 */ cpu->r[27] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F77E8 */ cpu->r[30] = cpu->r[5];
|
|
/* 028F77EC */ _t3 = cpu->r[27] + 0x00000008u;
|
|
/* 028F77EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F77F0 */ cpu->r[5] = 0x00000000u;
|
|
/* 028F77F4 */ _t4 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028F77F4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F77F8 */ cpu->r[31] = cpu->r[6];
|
|
/* 028F77FC */ _t5 = cpu->r[29] + 0x00000008u;
|
|
/* 028F77FC */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F7800 */ cpu->r[28] = cpu->r[5];
|
|
/* 028F7804 */ _t6 = cpu->r[27] + 0x00000000u;
|
|
/* 028F7804 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F7808 */ /* nop */
|
|
/* 028F780C */ _t7 = cpu->r[27] + 0x0000007Cu;
|
|
/* 028F780C */ cpu->r[7] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028F7810 */ /* nop */
|
|
/* 028F7814 */ cpu->r[12] = cpu->r[12] + 0xFFFFFFD1u;
|
|
/* 028F7818 */ _t8 = cpu->r[27] + 0x0000007Du;
|
|
/* 028F7818 */ cpu->r[11] = rbrew_read8(cpu->mem, _t8);
|
|
/* 028F781C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[6]);
|
|
/* 028F7820 */ _t9 = cpu->r[27] + 0x00000010u;
|
|
/* 028F7820 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F7824 */ _t10 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F7824 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F7824 */ if (_t11) goto L_028F7828; else goto L_028F782C;
|
|
L_028F7828: ; // 0x28f7828
|
|
/* 028F7828 */ cpu->r[6] = cpu->r[7];
|
|
L_028F782C: ; // 0x28f782c
|
|
/* 028F782C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[10]);
|
|
/* 028F7830 */ _t12 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F7830 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F7830 */ if (_t13) goto L_028F7834; else goto L_028F7838;
|
|
L_028F7834: ; // 0x28f7834
|
|
/* 028F7834 */ cpu->r[10] = cpu->r[11];
|
|
L_028F7838: ; // 0x28f7838
|
|
/* 028F7838 */ cpu->r[11] = 0x00000004u - cpu->r[6];
|
|
/* 028F783C */ _t14 = cpu->r[27] + 0x0000007Eu;
|
|
/* 028F783C */ cpu->r[8] = rbrew_read8(cpu->mem, _t14);
|
|
/* 028F7840 */ cpu->r[7] = 0x00000004u - cpu->r[10];
|
|
/* 028F7844 */ cpu->r[4] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x0000001Eu, 0x0000001Fu);
|
|
/* 028F7848 */ _t15 = cpu->r[27] + 0x00000014u;
|
|
/* 028F7848 */ cpu->r[9] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F784C */ cpu->r[11] = rbrew_rlwinm(cpu->r[7], 0x00000000u, 0x0000001Eu, 0x0000001Fu);
|
|
/* 028F7850 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[8]);
|
|
/* 028F7854 */ _t16 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F7854 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F7854 */ if (_t17) goto L_028F7858; else goto L_028F785C;
|
|
L_028F7858: ; // 0x28f7858
|
|
/* 028F7858 */ cpu->r[8] = cpu->r[0];
|
|
L_028F785C: ; // 0x28f785c
|
|
/* 028F785C */ cpu->r[0] = cpu->r[6] + cpu->r[4];
|
|
/* 028F7860 */ cpu->r[6] = cpu->r[10] + cpu->r[11];
|
|
/* 028F7864 */ /* nop */
|
|
/* 028F7868 */ /* nop */
|
|
/* 028F786C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000009u);
|
|
/* 028F7870 */ cpu->r[6] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 028F7874 */ cpu->r[7] = rbrew_rlwinm(cpu->r[7], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 028F7878 */ _t18 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F7878 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F7878 */ if (_t19) goto L_028F796C; else goto L_028F787C;
|
|
L_028F787C: ; // 0x28f787c
|
|
/* 028F787C */ cpu->r[12] = rbrew_rlwinm(cpu->r[12], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F7880 */ cpu->r[10] = cpu->r[12] + 0x028F0000u;
|
|
/* 028F7884 */ cpu->r[10] = cpu->r[10] + 0x00007890u;
|
|
/* 028F7888 */ cpu->ctr = cpu->r[10];
|
|
/* 028F788C */ rbrew_dispatch(cpu, cpu->ctr); return;
|
|
L_028F78D0: ; // 0x28f78d0
|
|
/* 028F78D0 */ cpu->r[4] = 0x00000001u;
|
|
/* 028F78D4 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F78D8 */ cpu->r[8] = cpu->r[4];
|
|
/* 028F78DC */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 028F78DC */ rbrew_write32(cpu->mem, _t20, cpu->r[10]);
|
|
/* 028F78E0 */ cpu->r[3] = cpu->r[29] + 0x00000014u;
|
|
/* 028F78E4 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F78E4 */ rbrew_write32(cpu->mem, _t21, cpu->r[10]);
|
|
/* 028F78E8 */ Gambit_fn_028F7664(cpu);
|
|
/* 028F78EC */ _t22 = cpu->r[29] + 0x00000000u;
|
|
/* 028F78EC */ cpu->r[27] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F78F0 */ goto L_028F7A58;
|
|
L_028F796C: ; // 0x28f796c
|
|
/* 028F796C */ _t23 = cpu->r[27] + 0x00000004u;
|
|
/* 028F796C */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F7970 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028F7974 */ _t24 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F7974 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F7974 */ if (_t25) goto L_028F7A58; else goto L_028F7978;
|
|
L_028F7978: ; // 0x28f7978
|
|
/* 028F7978 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7978 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028F7978 */ if (_t27) goto L_028F78D0; else goto L_028F797C;
|
|
L_028F797C: ; // 0x28f797c
|
|
/* 028F797C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000003u);
|
|
/* 028F7980 */ _t28 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F7980 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028F7980 */ if (_t29) goto L_028F79E8; else goto L_028F7984;
|
|
L_028F7984: ; // 0x28f7984
|
|
/* 028F7984 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7984 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028F7984 */ if (_t31) goto L_028F7A28; else goto L_028F7988;
|
|
L_028F7988: ; // 0x28f7988
|
|
/* 028F7988 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000005u);
|
|
/* 028F798C */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F798C */ _t33 = _t32 & 0x00000001u;
|
|
/* 028F798C */ if (_t33) goto L_028F7A08; else goto L_028F7990;
|
|
L_028F7990: ; // 0x28f7990
|
|
/* 028F7990 */ cpu->r[5] = 0x00000034u;
|
|
/* 028F7994 */ cpu->r[4] = cpu->r[27] + 0x00000044u;
|
|
/* 028F7998 */ cpu->r[3] = cpu->r[29] + 0x00000058u;
|
|
/* 028F799C */ rbrew_dispatch(cpu, 0x02d0b870u);
|
|
/* 028F79A0 */ _t34 = cpu->r[29] + 0x00000000u;
|
|
/* 028F79A0 */ cpu->r[27] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F79A4 */ _t35 = cpu->r[27] + 0x00000024u;
|
|
/* 028F79A4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F79A8 */ _t36 = cpu->r[29] + 0x00000038u;
|
|
/* 028F79A8 */ rbrew_write32(cpu->mem, _t36, cpu->r[7]);
|
|
/* 028F79AC */ _t37 = cpu->r[27] + 0x0000002Cu;
|
|
/* 028F79AC */ cpu->r[8] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F79B0 */ _t38 = cpu->r[29] + 0x00000040u;
|
|
/* 028F79B0 */ rbrew_write32(cpu->mem, _t38, cpu->r[8]);
|
|
/* 028F79B4 */ _t39 = cpu->r[27] + 0x00000038u;
|
|
/* 028F79B4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F79B8 */ _t40 = cpu->r[29] + 0x0000004Cu;
|
|
/* 028F79B8 */ rbrew_write32(cpu->mem, _t40, cpu->r[10]);
|
|
/* 028F79BC */ _t41 = cpu->r[27] + 0x00000034u;
|
|
/* 028F79BC */ cpu->r[6] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F79C0 */ _t42 = cpu->r[29] + 0x00000048u;
|
|
/* 028F79C0 */ rbrew_write32(cpu->mem, _t42, cpu->r[6]);
|
|
/* 028F79C4 */ _t43 = cpu->r[27] + 0x00000040u;
|
|
/* 028F79C4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028F79C8 */ _t44 = cpu->r[29] + 0x00000054u;
|
|
/* 028F79C8 */ rbrew_write32(cpu->mem, _t44, cpu->r[9]);
|
|
/* 028F79CC */ _t45 = cpu->r[27] + 0x0000003Cu;
|
|
/* 028F79CC */ cpu->r[10] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F79D0 */ _t46 = cpu->r[29] + 0x00000093u;
|
|
/* 028F79D0 */ cpu->r[4] = rbrew_read8(cpu->mem, _t46);
|
|
/* 028F79D4 */ _t47 = cpu->r[29] + 0x00000050u;
|
|
/* 028F79D4 */ rbrew_write32(cpu->mem, _t47, cpu->r[10]);
|
|
/* 028F79D8 */ _t48 = cpu->r[27] + 0x0000007Fu;
|
|
/* 028F79D8 */ cpu->r[11] = rbrew_read8(cpu->mem, _t48);
|
|
/* 028F79DC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[11]);
|
|
/* 028F79E0 */ _t49 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F79E0 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028F79E0 */ if (_t50) goto L_028F79E4; else goto L_028F7AD4;
|
|
L_028F79E4: ; // 0x28f79e4
|
|
/* 028F79E4 */ goto L_028F7AAC;
|
|
L_028F79E8: ; // 0x28f79e8
|
|
/* 028F79E8 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F79EC */ cpu->r[4] = 0x00000002u;
|
|
/* 028F79F0 */ _t51 = cpu->r[1] + 0x00000008u;
|
|
/* 028F79F0 */ rbrew_write32(cpu->mem, _t51, cpu->r[10]);
|
|
/* 028F79F4 */ cpu->r[3] = cpu->r[29] + 0x00000014u;
|
|
/* 028F79F8 */ _t52 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F79F8 */ rbrew_write32(cpu->mem, _t52, cpu->r[10]);
|
|
/* 028F79FC */ Gambit_fn_028F7664(cpu);
|
|
/* 028F7A00 */ _t53 = cpu->r[29] + 0x00000000u;
|
|
/* 028F7A00 */ cpu->r[27] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028F7A04 */ goto L_028F7A58;
|
|
L_028F7A08: ; // 0x28f7a08
|
|
/* 028F7A08 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F7A0C */ cpu->r[4] = 0x00000005u;
|
|
/* 028F7A10 */ _t54 = cpu->r[1] + 0x00000008u;
|
|
/* 028F7A10 */ rbrew_write32(cpu->mem, _t54, cpu->r[10]);
|
|
/* 028F7A14 */ cpu->r[3] = cpu->r[29] + 0x00000014u;
|
|
/* 028F7A18 */ _t55 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F7A18 */ rbrew_write32(cpu->mem, _t55, cpu->r[10]);
|
|
/* 028F7A1C */ Gambit_fn_028F7664(cpu);
|
|
/* 028F7A20 */ _t56 = cpu->r[29] + 0x00000000u;
|
|
/* 028F7A20 */ cpu->r[27] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028F7A24 */ goto L_028F7A58;
|
|
L_028F7A28: ; // 0x28f7a28
|
|
/* 028F7A28 */ _t57 = cpu->r[27] + 0x0000007Eu;
|
|
/* 028F7A28 */ cpu->r[0] = rbrew_read8(cpu->mem, _t57);
|
|
/* 028F7A2C */ _t58 = cpu->r[27] + 0x00000010u;
|
|
/* 028F7A2C */ cpu->r[8] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028F7A30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[8]);
|
|
/* 028F7A34 */ _t59 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F7A34 */ _t60 = _t59 & 0x00000001u;
|
|
/* 028F7A34 */ if (_t60) goto L_028F7A38; else goto L_028F7A3C;
|
|
L_028F7A38: ; // 0x28f7a38
|
|
/* 028F7A38 */ cpu->r[8] = cpu->r[0];
|
|
L_028F7A3C: ; // 0x28f7a3c
|
|
/* 028F7A3C */ cpu->r[10] = 0x00000000u;
|
|
/* 028F7A40 */ cpu->r[4] = 0x00000003u;
|
|
/* 028F7A44 */ _t61 = cpu->r[1] + 0x00000008u;
|
|
/* 028F7A44 */ rbrew_write32(cpu->mem, _t61, cpu->r[10]);
|
|
/* 028F7A48 */ cpu->r[3] = cpu->r[29] + 0x00000014u;
|
|
/* 028F7A4C */ _t62 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F7A4C */ rbrew_write32(cpu->mem, _t62, cpu->r[10]);
|
|
/* 028F7A50 */ Gambit_fn_028F7664(cpu);
|
|
/* 028F7A54 */ _t63 = cpu->r[29] + 0x00000000u;
|
|
/* 028F7A54 */ cpu->r[27] = rbrew_read32(cpu->mem, _t63);
|
|
L_028F7A58: ; // 0x28f7a58
|
|
/* 028F7A58 */ cpu->r[5] = 0x00000034u;
|
|
/* 028F7A5C */ cpu->r[4] = cpu->r[27] + 0x00000044u;
|
|
/* 028F7A60 */ cpu->r[3] = cpu->r[29] + 0x00000058u;
|
|
/* 028F7A64 */ rbrew_dispatch(cpu, 0x02d0b870u);
|
|
/* 028F7A68 */ _t64 = cpu->r[29] + 0x00000000u;
|
|
/* 028F7A68 */ cpu->r[27] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028F7A6C */ _t65 = cpu->r[27] + 0x00000024u;
|
|
/* 028F7A6C */ cpu->r[7] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028F7A70 */ _t66 = cpu->r[29] + 0x00000038u;
|
|
/* 028F7A70 */ rbrew_write32(cpu->mem, _t66, cpu->r[7]);
|
|
/* 028F7A74 */ _t67 = cpu->r[27] + 0x0000002Cu;
|
|
/* 028F7A74 */ cpu->r[8] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028F7A78 */ _t68 = cpu->r[29] + 0x00000040u;
|
|
/* 028F7A78 */ rbrew_write32(cpu->mem, _t68, cpu->r[8]);
|
|
/* 028F7A7C */ _t69 = cpu->r[27] + 0x00000038u;
|
|
/* 028F7A7C */ cpu->r[10] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028F7A80 */ _t70 = cpu->r[29] + 0x0000004Cu;
|
|
/* 028F7A80 */ rbrew_write32(cpu->mem, _t70, cpu->r[10]);
|
|
/* 028F7A84 */ _t71 = cpu->r[27] + 0x00000034u;
|
|
/* 028F7A84 */ cpu->r[6] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028F7A88 */ _t72 = cpu->r[29] + 0x00000048u;
|
|
/* 028F7A88 */ rbrew_write32(cpu->mem, _t72, cpu->r[6]);
|
|
/* 028F7A8C */ _t73 = cpu->r[27] + 0x00000040u;
|
|
/* 028F7A8C */ cpu->r[9] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028F7A90 */ _t74 = cpu->r[29] + 0x00000054u;
|
|
/* 028F7A90 */ rbrew_write32(cpu->mem, _t74, cpu->r[9]);
|
|
/* 028F7A94 */ _t75 = cpu->r[27] + 0x0000003Cu;
|
|
/* 028F7A94 */ cpu->r[10] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028F7A98 */ _t76 = cpu->r[29] + 0x00000093u;
|
|
/* 028F7A98 */ cpu->r[4] = rbrew_read8(cpu->mem, _t76);
|
|
/* 028F7A9C */ _t77 = cpu->r[29] + 0x00000050u;
|
|
/* 028F7A9C */ rbrew_write32(cpu->mem, _t77, cpu->r[10]);
|
|
/* 028F7AA0 */ _t78 = cpu->r[27] + 0x0000007Fu;
|
|
/* 028F7AA0 */ cpu->r[11] = rbrew_read8(cpu->mem, _t78);
|
|
/* 028F7AA4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[11]);
|
|
/* 028F7AA8 */ _t79 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F7AA8 */ _t80 = _t79 & 0x00000001u;
|
|
/* 028F7AA8 */ if (_t80) goto L_028F7AAC; else goto L_028F7AD4;
|
|
L_028F7AAC: ; // 0x28f7aac
|
|
/* 028F7AAC */ _t81 = cpu->r[29] + 0x00000040u;
|
|
/* 028F7AAC */ cpu->r[8] = rbrew_read32(cpu->mem, _t81);
|
|
L_028F7AB0: ; // 0x28f7ab0
|
|
/* 028F7AB0 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F7AB4 */ Gambit_fn_028F70D0(cpu);
|
|
/* 028F7AB8 */ _t82 = cpu->r[29] + 0x00000000u;
|
|
/* 028F7AB8 */ cpu->r[27] = rbrew_read32(cpu->mem, _t82);
|
|
/* 028F7ABC */ cpu->r[8] = cpu->r[8] - cpu->r[3];
|
|
/* 028F7AC0 */ _t83 = cpu->r[29] + 0x00000040u;
|
|
/* 028F7AC0 */ rbrew_write32(cpu->mem, _t83, cpu->r[8]);
|
|
/* 028F7AC4 */ _t84 = cpu->r[27] + 0x0000007Fu;
|
|
/* 028F7AC4 */ cpu->r[12] = rbrew_read8(cpu->mem, _t84);
|
|
/* 028F7AC8 */ cpu->r[4] = cpu->r[4] + 0x00000001u;
|
|
/* 028F7ACC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[12]);
|
|
/* 028F7AD0 */ _t85 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F7AD0 */ _t86 = _t85 & 0x00000001u;
|
|
/* 028F7AD0 */ if (_t86) goto L_028F7AB0; else goto L_028F7AD4;
|
|
L_028F7AD4: ; // 0x28f7ad4
|
|
/* 028F7AD4 */ _t87 = cpu->r[27] + 0x00000028u;
|
|
/* 028F7AD4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t87);
|
|
/* 028F7AD8 */ _t88 = cpu->r[29] + 0x00000000u;
|
|
/* 028F7AD8 */ cpu->r[27] = rbrew_read32(cpu->mem, _t88);
|
|
/* 028F7ADC */ _t89 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028F7ADC */ rbrew_write32(cpu->mem, _t89, cpu->r[9]);
|
|
/* 028F7AE0 */ _t90 = cpu->r[27] + 0x00000030u;
|
|
/* 028F7AE0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t90);
|
|
/* 028F7AE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028F7AE8 */ _t91 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7AE8 */ _t92 = _t91 & 0x00000001u;
|
|
/* 028F7AE8 */ if (_t92) goto L_028F7AF0; else goto L_028F7AEC;
|
|
L_028F7AEC: ; // 0x28f7aec
|
|
/* 028F7AEC */ _t93 = cpu->r[29] + 0x00000044u;
|
|
/* 028F7AEC */ rbrew_write32(cpu->mem, _t93, cpu->r[5]);
|
|
L_028F7AF0: ; // 0x28f7af0
|
|
/* 028F7AF0 */ cpu->r[27] = cpu->r[29] + 0x0000009Cu;
|
|
/* 028F7AF4 */ cpu->r[4] = cpu->r[29] + 0x00000014u;
|
|
/* 028F7AF8 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F7AFC */ Gambit_fn_020195C0(cpu);
|
|
/* 028F7B00 */ _t94 = cpu->r[29] + 0x00000098u;
|
|
/* 028F7B00 */ cpu->r[12] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028F7B04 */ cpu->r[3] = cpu->r[29] + 0x000001D8u;
|
|
/* 028F7B08 */ _t95 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028F7B08 */ rbrew_write32(cpu->mem, _t95, cpu->r[27]);
|
|
/* 028F7B0C */ Gambit_fn_028F714C(cpu);
|
|
/* 028F7B10 */ _t96 = cpu->r[29] + 0x00000098u;
|
|
/* 028F7B10 */ cpu->r[7] = rbrew_read32(cpu->mem, _t96);
|
|
/* 028F7B14 */ _t97 = cpu->r[7] + 0x0000001Cu;
|
|
/* 028F7B14 */ cpu->r[3] = rbrew_read32(cpu->mem, _t97);
|
|
/* 028F7B18 */ Gambit_fn_028F1A48(cpu);
|
|
/* 028F7B1C */ _t98 = cpu->r[29] + 0x00000020u;
|
|
/* 028F7B1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t98);
|
|
/* 028F7B20 */ cpu->r[12] = 0x10140000u;
|
|
/* 028F7B24 */ _t99 = cpu->r[29] + 0x00000008u;
|
|
/* 028F7B24 */ cpu->r[10] = rbrew_read32(cpu->mem, _t99);
|
|
/* 028F7B28 */ _t100 = cpu->r[12] + 0xFFFFCF68u;
|
|
/* 028F7B28 */ cpu->f[0] = rbrew_read_f64(cpu->mem, _t100);
|
|
/* 028F7B2C */ _t101 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028F7B2C */ cpu->r[6] = rbrew_read32(cpu->mem, _t101);
|
|
/* 028F7B30 */ /* nop */
|
|
/* 028F7B34 */ _t102 = cpu->r[29] + 0x00000090u;
|
|
/* 028F7B34 */ cpu->r[9] = rbrew_read8(cpu->mem, _t102);
|
|
/* 028F7B38 */ /* nop */
|
|
/* 028F7B3C */ cpu->r[11] = 0x43300000u;
|
|
/* 028F7B40 */ _t103 = cpu->r[29] + 0x00000091u;
|
|
/* 028F7B40 */ cpu->r[0] = rbrew_read8(cpu->mem, _t103);
|
|
/* 028F7B44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], cpu->r[8]);
|
|
/* 028F7B48 */ _t104 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F7B48 */ _t105 = _t104 & 0x00000001u;
|
|
/* 028F7B48 */ if (_t105) goto L_028F7B4C; else goto L_028F7B50;
|
|
L_028F7B4C: ; // 0x28f7b4c
|
|
/* 028F7B4C */ cpu->r[8] = cpu->r[9];
|
|
L_028F7B50: ; // 0x28f7b50
|
|
/* 028F7B50 */ _t106 = cpu->r[1] + 0x00000020u;
|
|
/* 028F7B50 */ rbrew_write32(cpu->mem, _t106, cpu->r[11]);
|
|
/* 028F7B54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[12]);
|
|
/* 028F7B58 */ _t107 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F7B58 */ _t108 = _t107 & 0x00000001u;
|
|
/* 028F7B58 */ if (_t108) goto L_028F7B5C; else goto L_028F7B60;
|
|
L_028F7B5C: ; // 0x28f7b5c
|
|
/* 028F7B5C */ cpu->r[12] = cpu->r[0];
|
|
L_028F7B60: ; // 0x28f7b60
|
|
/* 028F7B60 */ _t109 = cpu->r[1] + 0x00000024u;
|
|
/* 028F7B60 */ rbrew_write32(cpu->mem, _t109, cpu->r[8]);
|
|
/* 028F7B64 */ _t110 = cpu->r[1] + 0x00000020u;
|
|
/* 028F7B64 */ cpu->f[12] = rbrew_read_f64(cpu->mem, _t110);
|
|
/* 028F7B68 */ _t111 = cpu->r[1] + 0x00000024u;
|
|
/* 028F7B68 */ rbrew_write32(cpu->mem, _t111, cpu->r[12]);
|
|
/* 028F7B6C */ _t112 = cpu->r[1] + 0x00000020u;
|
|
/* 028F7B6C */ cpu->f[11] = rbrew_read_f64(cpu->mem, _t112);
|
|
/* 028F7B70 */ cpu->f[13] = cpu->f[12] - cpu->f[0];
|
|
/* 028F7B74 */ _t113 = cpu->r[29] + 0x00000128u;
|
|
/* 028F7B74 */ cpu->r[7] = rbrew_read32(cpu->mem, _t113);
|
|
/* 028F7B78 */ cpu->f[0] = cpu->f[11] - cpu->f[0];
|
|
/* 028F7B7C */ _t114 = cpu->r[29] + 0x00000004u;
|
|
/* 028F7B7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t114);
|
|
/* 028F7B80 */ cpu->f[12] = (double)(float)cpu->f[13];
|
|
/* 028F7B84 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 028F7B88 */ _t115 = cpu->r[29] + 0x00000124u;
|
|
/* 028F7B88 */ cpu->r[9] = rbrew_read32(cpu->mem, _t115);
|
|
/* 028F7B8C */ cpu->f[13] = (double)(float)cpu->f[0];
|
|
/* 028F7B90 */ _t116 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7B90 */ _t117 = _t116 & 0x00000001u;
|
|
/* 028F7B90 */ if (_t117) goto L_028F7BA0; else goto L_028F7B94;
|
|
L_028F7B94: ; // 0x28f7b94
|
|
/* 028F7B94 */ _t118 = cpu->r[27] + 0x0000008Cu;
|
|
/* 028F7B94 */ rbrew_write32(cpu->mem, _t118, cpu->r[0]);
|
|
/* 028F7B98 */ cpu->r[8] = 0x00000001u;
|
|
/* 028F7B9C */ _t119 = cpu->r[27] + 0x00000084u;
|
|
/* 028F7B9C */ rbrew_write8(cpu->mem, _t119, (uint8_t)cpu->r[8]);
|
|
L_028F7BA0: ; // 0x28f7ba0
|
|
/* 028F7BA0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[10]);
|
|
/* 028F7BA4 */ _t120 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7BA4 */ _t121 = _t120 & 0x00000001u;
|
|
/* 028F7BA4 */ if (_t121) goto L_028F7BB4; else goto L_028F7BA8;
|
|
L_028F7BA8: ; // 0x28f7ba8
|
|
/* 028F7BA8 */ _t122 = cpu->r[27] + 0x00000088u;
|
|
/* 028F7BA8 */ rbrew_write32(cpu->mem, _t122, cpu->r[10]);
|
|
/* 028F7BAC */ cpu->r[11] = 0x00000001u;
|
|
/* 028F7BB0 */ _t123 = cpu->r[27] + 0x00000084u;
|
|
/* 028F7BB0 */ rbrew_write8(cpu->mem, _t123, (uint8_t)cpu->r[11]);
|
|
L_028F7BB4: ; // 0x28f7bb4
|
|
/* 028F7BB4 */ _t124 = cpu->r[29] + 0x00000098u;
|
|
/* 028F7BB4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t124);
|
|
/* 028F7BB8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028F7BBC */ _t125 = cpu->r[11] + 0xFFFFCF70u;
|
|
/* 028F7BBC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t125);
|
|
/* 028F7BC0 */ _t126 = cpu->r[9] + 0x00000000u;
|
|
/* 028F7BC0 */ rbrew_write_f32(cpu->mem, _t126, cpu->f[12]);
|
|
/* 028F7BC4 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[12]);
|
|
/* 028F7BC8 */ _t127 = cpu->r[9] + 0x00000004u;
|
|
/* 028F7BC8 */ rbrew_write_f32(cpu->mem, _t127, cpu->f[13]);
|
|
/* 028F7BCC */ _t128 = cpu->r[29] + 0x00000098u;
|
|
/* 028F7BCC */ cpu->r[9] = rbrew_read32(cpu->mem, _t128);
|
|
/* 028F7BD0 */ _t129 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F7BD0 */ _t130 = _t129 & 0x00000001u;
|
|
/* 028F7BD0 */ if (_t130) goto L_028F7BD4; else goto L_028F7BEC;
|
|
L_028F7BD4: ; // 0x28f7bd4
|
|
/* 028F7BD4 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[13]);
|
|
/* 028F7BD8 */ _t131 = cpu->r[1] + 0x00000018u;
|
|
/* 028F7BD8 */ rbrew_write_f32(cpu->mem, _t131, cpu->f[12]);
|
|
/* 028F7BDC */ _t132 = cpu->r[1] + 0x00000010u;
|
|
/* 028F7BDC */ rbrew_write_f32(cpu->mem, _t132, cpu->f[0]);
|
|
/* 028F7BE0 */ cpu->f[12] = cpu->f[0];
|
|
/* 028F7BE4 */ _t133 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F7BE4 */ _t134 = _t133 & 0x00000001u;
|
|
/* 028F7BE4 */ if (_t134) goto L_028F7BE8; else goto L_028F7C70;
|
|
L_028F7BE8: ; // 0x28f7be8
|
|
/* 028F7BE8 */ goto L_028F7BFC;
|
|
L_028F7BEC: ; // 0x28f7bec
|
|
/* 028F7BEC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[13]);
|
|
/* 028F7BF0 */ _t135 = cpu->r[1] + 0x00000018u;
|
|
/* 028F7BF0 */ rbrew_write_f32(cpu->mem, _t135, cpu->f[0]);
|
|
/* 028F7BF4 */ _t136 = cpu->r[1] + 0x00000010u;
|
|
/* 028F7BF4 */ rbrew_write_f32(cpu->mem, _t136, cpu->f[12]);
|
|
/* 028F7BF8 */ _t137 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F7BF8 */ _t138 = _t137 & 0x00000001u;
|
|
/* 028F7BF8 */ if (_t138) goto L_028F7BFC; else goto L_028F7C70;
|
|
L_028F7BFC: ; // 0x28f7bfc
|
|
/* 028F7BFC */ _t139 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F7BFC */ rbrew_write_f32(cpu->mem, _t139, cpu->f[13]);
|
|
/* 028F7C00 */ _t140 = cpu->r[1] + 0x00000014u;
|
|
/* 028F7C00 */ rbrew_write_f32(cpu->mem, _t140, cpu->f[0]);
|
|
/* 028F7C04 */ _t141 = cpu->r[9] + 0x00000008u;
|
|
/* 028F7C04 */ rbrew_write_f32(cpu->mem, _t141, cpu->f[12]);
|
|
/* 028F7C08 */ _t142 = cpu->r[1] + 0x00000014u;
|
|
/* 028F7C08 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t142);
|
|
/* 028F7C0C */ _t143 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028F7C0C */ rbrew_write_f32(cpu->mem, _t143, cpu->f[0]);
|
|
/* 028F7C10 */ _t144 = cpu->r[1] + 0x00000018u;
|
|
/* 028F7C10 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t144);
|
|
/* 028F7C14 */ _t145 = cpu->r[9] + 0x00000010u;
|
|
/* 028F7C14 */ rbrew_write_f32(cpu->mem, _t145, cpu->f[12]);
|
|
/* 028F7C18 */ _t146 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F7C18 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t146);
|
|
/* 028F7C1C */ _t147 = cpu->r[9] + 0x00000014u;
|
|
/* 028F7C1C */ rbrew_write_f32(cpu->mem, _t147, cpu->f[13]);
|
|
/* 028F7C20 */ _t148 = cpu->r[29] + 0x00000098u;
|
|
/* 028F7C20 */ cpu->r[3] = rbrew_read32(cpu->mem, _t148);
|
|
/* 028F7C24 */ Gambit_fn_0281BAE0(cpu);
|
|
/* 028F7C28 */ _t149 = cpu->r[29] + 0x00000098u;
|
|
/* 028F7C28 */ cpu->r[4] = rbrew_read32(cpu->mem, _t149);
|
|
/* 028F7C2C */ cpu->r[3] = cpu->r[1] + 0x00000028u;
|
|
/* 028F7C30 */ Gambit_fn_0281D990(cpu);
|
|
/* 028F7C34 */ _t150 = cpu->r[29] + 0x00000098u;
|
|
/* 028F7C34 */ cpu->r[4] = rbrew_read32(cpu->mem, _t150);
|
|
/* 028F7C38 */ Gambit_fn_0281DCCC(cpu);
|
|
/* 028F7C3C */ cpu->r[3] = cpu->r[29] + 0x000001D8u;
|
|
/* 028F7C40 */ _t151 = cpu->r[29] + 0x00000010u;
|
|
/* 028F7C40 */ cpu->r[4] = rbrew_read32(cpu->mem, _t151);
|
|
/* 028F7C44 */ cpu->r[6] = cpu->r[28];
|
|
/* 028F7C48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F7C4C */ _t152 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028F7C4C */ cpu->r[5] = rbrew_read32(cpu->mem, _t152);
|
|
/* 028F7C50 */ cpu->r[7] = cpu->r[31];
|
|
/* 028F7C54 */ _t153 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7C54 */ _t154 = _t153 & 0x00000001u;
|
|
/* 028F7C54 */ if (_t154) goto L_028F7C58; else goto L_028F7CCC;
|
|
L_028F7C58: ; // 0x28f7c58
|
|
/* 028F7C58 */ Gambit_fn_02948080(cpu);
|
|
/* 028F7C5C */ _t155 = cpu->r[29] + 0x00000098u;
|
|
/* 028F7C5C */ cpu->r[7] = rbrew_read32(cpu->mem, _t155);
|
|
/* 028F7C60 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F7C64 */ _t156 = cpu->r[7] + 0x0000001Cu;
|
|
/* 028F7C64 */ cpu->r[3] = rbrew_read32(cpu->mem, _t156);
|
|
/* 028F7C68 */ Gambit_fn_028F1A48(cpu);
|
|
/* 028F7C6C */ goto L_028F7CE0;
|
|
L_028F7C70: ; // 0x28f7c70
|
|
/* 028F7C70 */ _t157 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F7C70 */ rbrew_write_f32(cpu->mem, _t157, cpu->f[0]);
|
|
/* 028F7C74 */ _t158 = cpu->r[1] + 0x00000014u;
|
|
/* 028F7C74 */ rbrew_write_f32(cpu->mem, _t158, cpu->f[13]);
|
|
/* 028F7C78 */ _t159 = cpu->r[9] + 0x00000008u;
|
|
/* 028F7C78 */ rbrew_write_f32(cpu->mem, _t159, cpu->f[12]);
|
|
/* 028F7C7C */ _t160 = cpu->r[1] + 0x00000014u;
|
|
/* 028F7C7C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t160);
|
|
/* 028F7C80 */ _t161 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028F7C80 */ rbrew_write_f32(cpu->mem, _t161, cpu->f[0]);
|
|
/* 028F7C84 */ _t162 = cpu->r[1] + 0x00000018u;
|
|
/* 028F7C84 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t162);
|
|
/* 028F7C88 */ _t163 = cpu->r[9] + 0x00000010u;
|
|
/* 028F7C88 */ rbrew_write_f32(cpu->mem, _t163, cpu->f[12]);
|
|
/* 028F7C8C */ _t164 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F7C8C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t164);
|
|
/* 028F7C90 */ _t165 = cpu->r[9] + 0x00000014u;
|
|
/* 028F7C90 */ rbrew_write_f32(cpu->mem, _t165, cpu->f[13]);
|
|
/* 028F7C94 */ _t166 = cpu->r[29] + 0x00000098u;
|
|
/* 028F7C94 */ cpu->r[3] = rbrew_read32(cpu->mem, _t166);
|
|
/* 028F7C98 */ Gambit_fn_0281BAE0(cpu);
|
|
/* 028F7C9C */ _t167 = cpu->r[29] + 0x00000098u;
|
|
/* 028F7C9C */ cpu->r[4] = rbrew_read32(cpu->mem, _t167);
|
|
/* 028F7CA0 */ cpu->r[3] = cpu->r[1] + 0x00000028u;
|
|
/* 028F7CA4 */ Gambit_fn_0281D990(cpu);
|
|
/* 028F7CA8 */ _t168 = cpu->r[29] + 0x00000098u;
|
|
/* 028F7CA8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t168);
|
|
/* 028F7CAC */ Gambit_fn_0281DCCC(cpu);
|
|
/* 028F7CB0 */ cpu->r[3] = cpu->r[29] + 0x000001D8u;
|
|
/* 028F7CB4 */ _t169 = cpu->r[29] + 0x00000010u;
|
|
/* 028F7CB4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t169);
|
|
/* 028F7CB8 */ cpu->r[6] = cpu->r[28];
|
|
/* 028F7CBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F7CC0 */ _t170 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028F7CC0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t170);
|
|
/* 028F7CC4 */ cpu->r[7] = cpu->r[31];
|
|
/* 028F7CC8 */ _t171 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7CC8 */ _t172 = _t171 & 0x00000001u;
|
|
/* 028F7CC8 */ if (_t172) goto L_028F7C58; else goto L_028F7CCC;
|
|
L_028F7CCC: ; // 0x28f7ccc
|
|
/* 028F7CCC */ Gambit_fn_02948450(cpu);
|
|
/* 028F7CD0 */ _t173 = cpu->r[29] + 0x00000098u;
|
|
/* 028F7CD0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t173);
|
|
/* 028F7CD4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F7CD8 */ _t174 = cpu->r[7] + 0x0000001Cu;
|
|
/* 028F7CD8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t174);
|
|
/* 028F7CDC */ Gambit_fn_028F1A48(cpu);
|
|
L_028F7CE0: ; // 0x28f7ce0
|
|
/* 028F7CE0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F7CE4 */ /* nop */
|
|
/* 028F7CE8 */ _t175 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028F7CE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t175);
|
|
/* 028F7CEC */ cpu->lr = cpu->r[0];
|
|
/* 028F7CF0 */ cpu->r[1] = cpu->r[1] + 0x00000058u;
|
|
/* 028F7CF4 */ return;
|
|
}
|
|
|
|
// fn_028F7CF8 @ 0x28f7cf8
|
|
void Gambit_fn_028F7CF8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028F7CF8: ; // 0x28f7cf8
|
|
/* 028F7CF8 */ _t0 = cpu->r[1] + 0xFFFFFBE8u;
|
|
/* 028F7CF8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F7CF8 */ cpu->r[1] = _t0;
|
|
/* 028F7CFC */ cpu->r[0] = cpu->lr;
|
|
/* 028F7D00 */ /* nop */
|
|
/* 028F7D04 */ cpu->r[24] = cpu->r[3];
|
|
/* 028F7D08 */ cpu->r[25] = cpu->r[4];
|
|
/* 028F7D0C */ cpu->r[26] = cpu->r[5];
|
|
/* 028F7D10 */ cpu->r[27] = cpu->r[6];
|
|
/* 028F7D14 */ cpu->r[28] = cpu->r[7];
|
|
/* 028F7D18 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F7D1C */ cpu->r[30] = cpu->r[9];
|
|
/* 028F7D20 */ _t1 = cpu->r[1] + 0x0000041Cu;
|
|
/* 028F7D20 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F7D24 */ cpu->r[29] = cpu->r[8];
|
|
/* 028F7D28 */ Gambit_fn_0281E19C(cpu);
|
|
/* 028F7D2C */ cpu->r[31] = 0x00000000u;
|
|
/* 028F7D30 */ _t2 = cpu->r[1] + 0x00000009u;
|
|
/* 028F7D30 */ rbrew_write8(cpu->mem, _t2, (uint8_t)cpu->r[31]);
|
|
/* 028F7D34 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F7D34 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[31]);
|
|
/* 028F7D38 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F7D3C */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 028F7D3C */ rbrew_write8(cpu->mem, _t4, (uint8_t)cpu->r[31]);
|
|
/* 028F7D40 */ Gambit_fn_0281E2C8(cpu);
|
|
/* 028F7D44 */ cpu->r[4] = cpu->r[24];
|
|
/* 028F7D48 */ cpu->r[3] = cpu->r[1] + 0x00000080u;
|
|
/* 028F7D4C */ Gambit_fn_028F7330(cpu);
|
|
/* 028F7D50 */ _t5 = cpu->r[1] + 0x00000080u;
|
|
/* 028F7D50 */ rbrew_write32(cpu->mem, _t5, cpu->r[25]);
|
|
/* 028F7D54 */ cpu->r[6] = cpu->r[30];
|
|
/* 028F7D58 */ _t6 = cpu->r[1] + 0x00000090u;
|
|
/* 028F7D58 */ rbrew_write32(cpu->mem, _t6, cpu->r[29]);
|
|
/* 028F7D5C */ cpu->r[3] = cpu->r[24];
|
|
/* 028F7D60 */ _t7 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028F7D60 */ rbrew_write32(cpu->mem, _t7, cpu->r[28]);
|
|
/* 028F7D64 */ cpu->r[4] = cpu->r[1] + 0x00000080u;
|
|
/* 028F7D68 */ _t8 = cpu->r[1] + 0x00000088u;
|
|
/* 028F7D68 */ rbrew_write32(cpu->mem, _t8, cpu->r[27]);
|
|
/* 028F7D6C */ cpu->r[5] = cpu->r[31];
|
|
/* 028F7D70 */ _t9 = cpu->r[1] + 0x00000084u;
|
|
/* 028F7D70 */ rbrew_write32(cpu->mem, _t9, cpu->r[26]);
|
|
/* 028F7D74 */ Gambit_fn_028F77D0(cpu);
|
|
/* 028F7D78 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F7D7C */ cpu->r[3] = cpu->r[1] + 0x000003B4u;
|
|
/* 028F7D80 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F7D84 */ Gambit_fn_028F0780(cpu);
|
|
/* 028F7D88 */ cpu->r[3] = cpu->r[1] + 0x00000258u;
|
|
/* 028F7D8C */ cpu->r[4] = 0x00000002u;
|
|
/* 028F7D90 */ Gambit_fn_028FA208(cpu);
|
|
/* 028F7D94 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F7D98 */ /* nop */
|
|
/* 028F7D9C */ _t10 = cpu->r[1] + 0x0000041Cu;
|
|
/* 028F7D9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F7DA0 */ cpu->lr = cpu->r[0];
|
|
/* 028F7DA4 */ cpu->r[1] = cpu->r[1] + 0x00000418u;
|
|
/* 028F7DA8 */ return;
|
|
}
|
|
|
|
// fn_028F7DAC @ 0x28f7dac
|
|
void Gambit_fn_028F7DAC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F7DAC: ; // 0x28f7dac
|
|
/* 028F7DAC */ _t0 = cpu->r[1] + 0xFFFFFBF0u;
|
|
/* 028F7DAC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F7DAC */ cpu->r[1] = _t0;
|
|
/* 028F7DB0 */ /* nop */
|
|
/* 028F7DB4 */ cpu->r[26] = cpu->r[3];
|
|
/* 028F7DB8 */ cpu->r[0] = cpu->lr;
|
|
/* 028F7DBC */ cpu->r[27] = cpu->r[4];
|
|
/* 028F7DC0 */ cpu->r[3] = cpu->r[1] + 0x0000037Cu;
|
|
/* 028F7DC4 */ cpu->r[31] = cpu->r[5];
|
|
/* 028F7DC8 */ _t1 = cpu->r[1] + 0x00000414u;
|
|
/* 028F7DC8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F7DCC */ Gambit_fn_0281E19C(cpu);
|
|
/* 028F7DD0 */ cpu->r[25] = 0x00000000u;
|
|
/* 028F7DD4 */ _t2 = cpu->r[1] + 0x0000037Du;
|
|
/* 028F7DD4 */ rbrew_write8(cpu->mem, _t2, (uint8_t)cpu->r[25]);
|
|
/* 028F7DD8 */ _t3 = cpu->r[1] + 0x00000388u;
|
|
/* 028F7DD8 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[25]);
|
|
/* 028F7DDC */ cpu->r[3] = cpu->r[1] + 0x0000037Cu;
|
|
/* 028F7DE0 */ _t4 = cpu->r[1] + 0x0000037Cu;
|
|
/* 028F7DE0 */ rbrew_write8(cpu->mem, _t4, (uint8_t)cpu->r[25]);
|
|
/* 028F7DE4 */ Gambit_fn_0281E2C8(cpu);
|
|
/* 028F7DE8 */ cpu->r[4] = cpu->r[26];
|
|
/* 028F7DEC */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F7DF0 */ Gambit_fn_028F7330(cpu);
|
|
/* 028F7DF4 */ _t5 = cpu->r[27] + 0x00000014u;
|
|
/* 028F7DF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F7DF8 */ _t6 = cpu->r[26] + 0x00000014u;
|
|
/* 028F7DF8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F7DFC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[30]);
|
|
/* 028F7E00 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F7E00 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F7E00 */ if (_t8) goto L_028F7E04; else goto L_028F7E08;
|
|
L_028F7E04: ; // 0x28f7e04
|
|
/* 028F7E04 */ cpu->r[30] = cpu->r[0];
|
|
L_028F7E08: ; // 0x28f7e08
|
|
/* 028F7E08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F7E0C */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028F7E0C */ rbrew_write32(cpu->mem, _t9, cpu->r[27]);
|
|
/* 028F7E10 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7E10 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F7E10 */ if (_t11) goto L_028F7E9C; else goto L_028F7E14;
|
|
L_028F7E14: ; // 0x28f7e14
|
|
/* 028F7E14 */ _t12 = cpu->r[26] + 0x00000010u;
|
|
/* 028F7E14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F7E18 */ _t13 = cpu->r[27] + 0x00000010u;
|
|
/* 028F7E18 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F7E1C */ cpu->r[28] = 0x00000000u;
|
|
/* 028F7E20 */ _t14 = cpu->r[26] + 0x0000007Eu;
|
|
/* 028F7E20 */ cpu->r[12] = rbrew_read8(cpu->mem, _t14);
|
|
/* 028F7E24 */ /* nop */
|
|
/* 028F7E28 */ /* nop */
|
|
/* 028F7E2C */ _t15 = cpu->r[27] + 0x0000007Eu;
|
|
/* 028F7E2C */ cpu->r[29] = rbrew_read8(cpu->mem, _t15);
|
|
/* 028F7E30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], cpu->r[11]);
|
|
/* 028F7E34 */ _t16 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F7E34 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F7E34 */ if (_t17) goto L_028F7E38; else goto L_028F7E3C;
|
|
L_028F7E38: ; // 0x28f7e38
|
|
/* 028F7E38 */ cpu->r[11] = cpu->r[12];
|
|
L_028F7E3C: ; // 0x28f7e3c
|
|
/* 028F7E3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[29]);
|
|
/* 028F7E40 */ _t18 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F7E40 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F7E40 */ if (_t19) goto L_028F7E44; else goto L_028F7E48;
|
|
L_028F7E44: ; // 0x28f7e44
|
|
/* 028F7E44 */ cpu->r[29] = cpu->r[0];
|
|
L_028F7E48: ; // 0x28f7e48
|
|
/* 028F7E48 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[29]);
|
|
/* 028F7E4C */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 028F7E4C */ rbrew_write32(cpu->mem, _t20, cpu->r[25]);
|
|
/* 028F7E50 */ _t21 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F7E50 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F7E50 */ if (_t22) goto L_028F7E54; else goto L_028F7E58;
|
|
L_028F7E54: ; // 0x28f7e54
|
|
/* 028F7E54 */ cpu->r[29] = cpu->r[11];
|
|
L_028F7E58: ; // 0x28f7e58
|
|
/* 028F7E58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F7E5C */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 028F7E5C */ rbrew_write32(cpu->mem, _t23, cpu->r[25]);
|
|
/* 028F7E60 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7E60 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F7E60 */ if (_t25) goto L_028F7E90; else goto L_028F7E64;
|
|
L_028F7E64: ; // 0x28f7e64
|
|
/* 028F7E64 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F7E64 */ rbrew_write32(cpu->mem, _t26, cpu->r[28]);
|
|
/* 028F7E68 */ cpu->r[3] = cpu->r[26];
|
|
/* 028F7E6C */ cpu->r[6] = cpu->r[31];
|
|
/* 028F7E70 */ cpu->r[5] = 0x00000000u;
|
|
/* 028F7E74 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028F7E78 */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028F7E78 */ rbrew_write32(cpu->mem, _t27, cpu->r[28]);
|
|
/* 028F7E7C */ Gambit_fn_028F77D0(cpu);
|
|
/* 028F7E80 */ cpu->r[29] = cpu->r[29] + 0xFFFFFFFFu;
|
|
/* 028F7E80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F7E84 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028F7E88 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F7E8C */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7E8C */ _t29 = _t28 & 0x00000001u;
|
|
/* 028F7E8C */ if (_t29) goto L_028F7E90; else goto L_028F7E64;
|
|
L_028F7E90: ; // 0x28f7e90
|
|
/* 028F7E90 */ cpu->r[30] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 028F7E90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F7E94 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 028F7E98 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7E98 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028F7E98 */ if (_t31) goto L_028F7E9C; else goto L_028F7E14;
|
|
L_028F7E9C: ; // 0x28f7e9c
|
|
/* 028F7E9C */ cpu->r[3] = cpu->r[1] + 0x0000033Cu;
|
|
/* 028F7EA0 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F7EA4 */ Gambit_fn_028F0780(cpu);
|
|
/* 028F7EA8 */ cpu->r[3] = cpu->r[1] + 0x000001E0u;
|
|
/* 028F7EAC */ cpu->r[4] = 0x00000002u;
|
|
/* 028F7EB0 */ Gambit_fn_028FA208(cpu);
|
|
/* 028F7EB4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F7EB8 */ /* nop */
|
|
/* 028F7EBC */ _t32 = cpu->r[1] + 0x00000414u;
|
|
/* 028F7EBC */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F7EC0 */ cpu->lr = cpu->r[0];
|
|
/* 028F7EC4 */ cpu->r[1] = cpu->r[1] + 0x00000410u;
|
|
/* 028F7EC8 */ return;
|
|
}
|
|
|
|
// fn_028F7ECC @ 0x28f7ecc
|
|
void Gambit_fn_028F7ECC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F7ECC: ; // 0x28f7ecc
|
|
/* 028F7ECC */ _t0 = cpu->r[1] + 0xFFFFFBF0u;
|
|
/* 028F7ECC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F7ECC */ cpu->r[1] = _t0;
|
|
/* 028F7ED0 */ /* nop */
|
|
/* 028F7ED4 */ cpu->r[26] = cpu->r[3];
|
|
/* 028F7ED8 */ cpu->r[0] = cpu->lr;
|
|
/* 028F7EDC */ cpu->r[27] = cpu->r[4];
|
|
/* 028F7EE0 */ cpu->r[3] = cpu->r[1] + 0x0000037Cu;
|
|
/* 028F7EE4 */ cpu->r[31] = cpu->r[5];
|
|
/* 028F7EE8 */ _t1 = cpu->r[1] + 0x00000414u;
|
|
/* 028F7EE8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F7EEC */ Gambit_fn_0281E19C(cpu);
|
|
/* 028F7EF0 */ cpu->r[25] = 0x00000000u;
|
|
/* 028F7EF4 */ _t2 = cpu->r[1] + 0x0000037Du;
|
|
/* 028F7EF4 */ rbrew_write8(cpu->mem, _t2, (uint8_t)cpu->r[25]);
|
|
/* 028F7EF8 */ _t3 = cpu->r[1] + 0x00000388u;
|
|
/* 028F7EF8 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[25]);
|
|
/* 028F7EFC */ cpu->r[3] = cpu->r[1] + 0x0000037Cu;
|
|
/* 028F7F00 */ _t4 = cpu->r[1] + 0x0000037Cu;
|
|
/* 028F7F00 */ rbrew_write8(cpu->mem, _t4, (uint8_t)cpu->r[25]);
|
|
/* 028F7F04 */ Gambit_fn_0281E2C8(cpu);
|
|
/* 028F7F08 */ cpu->r[4] = cpu->r[26];
|
|
/* 028F7F0C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F7F10 */ Gambit_fn_028F7330(cpu);
|
|
/* 028F7F14 */ _t5 = cpu->r[27] + 0x00000014u;
|
|
/* 028F7F14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F7F18 */ _t6 = cpu->r[26] + 0x00000014u;
|
|
/* 028F7F18 */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F7F1C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[30]);
|
|
/* 028F7F20 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F7F20 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F7F20 */ if (_t8) goto L_028F7F24; else goto L_028F7F28;
|
|
L_028F7F24: ; // 0x28f7f24
|
|
/* 028F7F24 */ cpu->r[30] = cpu->r[0];
|
|
L_028F7F28: ; // 0x28f7f28
|
|
/* 028F7F28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F7F2C */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028F7F2C */ rbrew_write32(cpu->mem, _t9, cpu->r[27]);
|
|
/* 028F7F30 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7F30 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F7F30 */ if (_t11) goto L_028F7FBC; else goto L_028F7F34;
|
|
L_028F7F34: ; // 0x28f7f34
|
|
/* 028F7F34 */ _t12 = cpu->r[26] + 0x00000010u;
|
|
/* 028F7F34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F7F38 */ _t13 = cpu->r[27] + 0x00000010u;
|
|
/* 028F7F38 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F7F3C */ cpu->r[28] = 0x00000000u;
|
|
/* 028F7F40 */ _t14 = cpu->r[26] + 0x0000007Eu;
|
|
/* 028F7F40 */ cpu->r[12] = rbrew_read8(cpu->mem, _t14);
|
|
/* 028F7F44 */ /* nop */
|
|
/* 028F7F48 */ /* nop */
|
|
/* 028F7F4C */ _t15 = cpu->r[27] + 0x0000007Eu;
|
|
/* 028F7F4C */ cpu->r[29] = rbrew_read8(cpu->mem, _t15);
|
|
/* 028F7F50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], cpu->r[11]);
|
|
/* 028F7F54 */ _t16 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F7F54 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F7F54 */ if (_t17) goto L_028F7F58; else goto L_028F7F5C;
|
|
L_028F7F58: ; // 0x28f7f58
|
|
/* 028F7F58 */ cpu->r[11] = cpu->r[12];
|
|
L_028F7F5C: ; // 0x28f7f5c
|
|
/* 028F7F5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[29]);
|
|
/* 028F7F60 */ _t18 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F7F60 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F7F60 */ if (_t19) goto L_028F7F64; else goto L_028F7F68;
|
|
L_028F7F64: ; // 0x28f7f64
|
|
/* 028F7F64 */ cpu->r[29] = cpu->r[0];
|
|
L_028F7F68: ; // 0x28f7f68
|
|
/* 028F7F68 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[29]);
|
|
/* 028F7F6C */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 028F7F6C */ rbrew_write32(cpu->mem, _t20, cpu->r[25]);
|
|
/* 028F7F70 */ _t21 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F7F70 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F7F70 */ if (_t22) goto L_028F7F74; else goto L_028F7F78;
|
|
L_028F7F74: ; // 0x28f7f74
|
|
/* 028F7F74 */ cpu->r[29] = cpu->r[11];
|
|
L_028F7F78: ; // 0x28f7f78
|
|
/* 028F7F78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F7F7C */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 028F7F7C */ rbrew_write32(cpu->mem, _t23, cpu->r[25]);
|
|
/* 028F7F80 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7F80 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F7F80 */ if (_t25) goto L_028F7FB0; else goto L_028F7F84;
|
|
L_028F7F84: ; // 0x28f7f84
|
|
/* 028F7F84 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F7F84 */ rbrew_write32(cpu->mem, _t26, cpu->r[28]);
|
|
/* 028F7F88 */ cpu->r[3] = cpu->r[26];
|
|
/* 028F7F8C */ cpu->r[6] = cpu->r[31];
|
|
/* 028F7F90 */ cpu->r[5] = 0x00000001u;
|
|
/* 028F7F94 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028F7F98 */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028F7F98 */ rbrew_write32(cpu->mem, _t27, cpu->r[28]);
|
|
/* 028F7F9C */ Gambit_fn_028F77D0(cpu);
|
|
/* 028F7FA0 */ cpu->r[29] = cpu->r[29] + 0xFFFFFFFFu;
|
|
/* 028F7FA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F7FA4 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028F7FA8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F7FAC */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7FAC */ _t29 = _t28 & 0x00000001u;
|
|
/* 028F7FAC */ if (_t29) goto L_028F7FB0; else goto L_028F7F84;
|
|
L_028F7FB0: ; // 0x28f7fb0
|
|
/* 028F7FB0 */ cpu->r[30] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 028F7FB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F7FB4 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 028F7FB8 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F7FB8 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028F7FB8 */ if (_t31) goto L_028F7FBC; else goto L_028F7F34;
|
|
L_028F7FBC: ; // 0x28f7fbc
|
|
/* 028F7FBC */ cpu->r[3] = cpu->r[1] + 0x0000033Cu;
|
|
/* 028F7FC0 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F7FC4 */ Gambit_fn_028F0780(cpu);
|
|
/* 028F7FC8 */ cpu->r[3] = cpu->r[1] + 0x000001E0u;
|
|
/* 028F7FCC */ cpu->r[4] = 0x00000002u;
|
|
/* 028F7FD0 */ Gambit_fn_028FA208(cpu);
|
|
/* 028F7FD4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F7FD8 */ /* nop */
|
|
/* 028F7FDC */ _t32 = cpu->r[1] + 0x00000414u;
|
|
/* 028F7FDC */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F7FE0 */ cpu->lr = cpu->r[0];
|
|
/* 028F7FE4 */ cpu->r[1] = cpu->r[1] + 0x00000410u;
|
|
/* 028F7FE8 */ return;
|
|
}
|
|
|
|
// fn_028F7FEC @ 0x28f7fec
|
|
void Gambit_fn_028F7FEC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F7FEC: ; // 0x28f7fec
|
|
/* 028F7FEC */ _t0 = cpu->r[1] + 0xFFFFFBD0u;
|
|
/* 028F7FEC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F7FEC */ cpu->r[1] = _t0;
|
|
/* 028F7FF0 */ /* nop */
|
|
/* 028F7FF4 */ cpu->r[0] = cpu->lr;
|
|
/* 028F7FF8 */ cpu->r[20] = cpu->r[4];
|
|
/* 028F7FFC */ cpu->r[22] = cpu->r[5];
|
|
/* 028F8000 */ cpu->r[28] = cpu->r[6];
|
|
/* 028F8004 */ cpu->r[23] = cpu->r[7];
|
|
/* 028F8008 */ cpu->r[24] = cpu->r[8];
|
|
/* 028F800C */ cpu->r[25] = cpu->r[9];
|
|
/* 028F8010 */ cpu->r[21] = cpu->r[3];
|
|
/* 028F8014 */ _t1 = cpu->r[1] + 0x00000434u;
|
|
/* 028F8014 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F8018 */ cpu->r[26] = cpu->r[10];
|
|
/* 028F801C */ cpu->r[3] = cpu->r[1] + 0x0000037Cu;
|
|
/* 028F8020 */ _t2 = cpu->r[1] + 0x00000438u;
|
|
/* 028F8020 */ cpu->r[30] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F8024 */ Gambit_fn_0281E19C(cpu);
|
|
/* 028F8028 */ cpu->r[27] = 0x00000000u;
|
|
/* 028F802C */ _t3 = cpu->r[1] + 0x0000037Du;
|
|
/* 028F802C */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[27]);
|
|
/* 028F8030 */ _t4 = cpu->r[1] + 0x00000388u;
|
|
/* 028F8030 */ rbrew_write8(cpu->mem, _t4, (uint8_t)cpu->r[27]);
|
|
/* 028F8034 */ cpu->r[3] = cpu->r[1] + 0x0000037Cu;
|
|
/* 028F8038 */ _t5 = cpu->r[1] + 0x0000037Cu;
|
|
/* 028F8038 */ rbrew_write8(cpu->mem, _t5, (uint8_t)cpu->r[27]);
|
|
/* 028F803C */ Gambit_fn_0281E2C8(cpu);
|
|
/* 028F8040 */ cpu->r[4] = cpu->r[21];
|
|
/* 028F8044 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F8048 */ Gambit_fn_028F7330(cpu);
|
|
/* 028F804C */ _t6 = cpu->r[20] + 0x00000010u;
|
|
/* 028F804C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F8050 */ _t7 = cpu->r[20] + 0x0000007Eu;
|
|
/* 028F8050 */ cpu->r[29] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028F8054 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[29]);
|
|
/* 028F8058 */ _t8 = cpu->r[21] + 0x0000007Eu;
|
|
/* 028F8058 */ cpu->r[31] = rbrew_read8(cpu->mem, _t8);
|
|
/* 028F805C */ _t9 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F805C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F805C */ if (_t10) goto L_028F8060; else goto L_028F8064;
|
|
L_028F8060: ; // 0x28f8060
|
|
/* 028F8060 */ cpu->r[29] = cpu->r[0];
|
|
L_028F8064: ; // 0x28f8064
|
|
/* 028F8064 */ _t11 = cpu->r[21] + 0x00000010u;
|
|
/* 028F8064 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F8068 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[31]);
|
|
/* 028F806C */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028F806C */ rbrew_write32(cpu->mem, _t12, cpu->r[20]);
|
|
/* 028F8070 */ _t13 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F8070 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F8070 */ if (_t14) goto L_028F8074; else goto L_028F8078;
|
|
L_028F8074: ; // 0x28f8074
|
|
/* 028F8074 */ cpu->r[31] = cpu->r[0];
|
|
L_028F8078: ; // 0x28f8078
|
|
/* 028F8078 */ _t15 = cpu->r[20] + 0x00000014u;
|
|
/* 028F8078 */ cpu->r[19] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F807C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F8080 */ _t16 = cpu->r[21] + 0x00000014u;
|
|
/* 028F8080 */ cpu->r[20] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F8084 */ _t17 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F8084 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F8084 */ if (_t18) goto L_028F8088; else goto L_028F818C;
|
|
L_028F8088: ; // 0x28f8088
|
|
/* 028F8088 */ cpu->r[0] = cpu->r[24] + cpu->r[27];
|
|
/* 028F8088 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F808C */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F808C */ _t20 = _t19 & 0x00000001u;
|
|
/* 028F808C */ if (_t20) goto L_028F8090; else goto L_028F80A4;
|
|
L_028F8090: ; // 0x28f8090
|
|
/* 028F8090 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F8094 */ cpu->r[12] = cpu->r[26] + cpu->r[27];
|
|
/* 028F8094 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F8098 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028F8098 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
/* 028F809C */ _t22 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F809C */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F809C */ if (_t23) goto L_028F80BC; else goto L_028F80A0;
|
|
L_028F80A0: ; // 0x28f80a0
|
|
/* 028F80A0 */ goto L_028F80D0;
|
|
L_028F80A4: ; // 0x28f80a4
|
|
/* 028F80A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[19]);
|
|
/* 028F80A8 */ _t24 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F80A8 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F80A8 */ if (_t25) goto L_028F80AC; else goto L_028F80B0;
|
|
L_028F80AC: ; // 0x28f80ac
|
|
/* 028F80AC */ cpu->r[0] = cpu->r[19];
|
|
L_028F80B0: ; // 0x28f80b0
|
|
/* 028F80B0 */ cpu->r[12] = cpu->r[26] + cpu->r[27];
|
|
/* 028F80B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F80B4 */ _t26 = cpu->r[1] + 0x00000010u;
|
|
/* 028F80B4 */ rbrew_write32(cpu->mem, _t26, cpu->r[0]);
|
|
/* 028F80B8 */ _t27 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F80B8 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F80B8 */ if (_t28) goto L_028F80BC; else goto L_028F80D0;
|
|
L_028F80BC: ; // 0x28f80bc
|
|
/* 028F80BC */ cpu->r[18] = 0x00000000u;
|
|
/* 028F80C0 */ cpu->r[17] = cpu->r[22];
|
|
/* 028F80C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[17], 0x00000000u);
|
|
/* 028F80C4 */ _t29 = cpu->r[1] + 0x00000018u;
|
|
/* 028F80C4 */ rbrew_write32(cpu->mem, _t29, cpu->r[18]);
|
|
/* 028F80C8 */ _t30 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F80C8 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028F80C8 */ if (_t31) goto L_028F80CC; else goto L_028F8180;
|
|
L_028F80CC: ; // 0x28f80cc
|
|
/* 028F80CC */ goto L_028F80EC;
|
|
L_028F80D0: ; // 0x28f80d0
|
|
/* 028F80D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], cpu->r[20]);
|
|
/* 028F80D4 */ _t32 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F80D4 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028F80D4 */ if (_t33) goto L_028F80D8; else goto L_028F80DC;
|
|
L_028F80D8: ; // 0x28f80d8
|
|
/* 028F80D8 */ cpu->r[12] = cpu->r[20];
|
|
L_028F80DC: ; // 0x28f80dc
|
|
/* 028F80DC */ cpu->r[17] = cpu->r[22];
|
|
/* 028F80DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[17], 0x00000000u);
|
|
/* 028F80E0 */ _t34 = cpu->r[1] + 0x00000018u;
|
|
/* 028F80E0 */ rbrew_write32(cpu->mem, _t34, cpu->r[12]);
|
|
/* 028F80E4 */ cpu->r[18] = 0x00000000u;
|
|
/* 028F80E8 */ _t35 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F80E8 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F80E8 */ if (_t36) goto L_028F80EC; else goto L_028F8180;
|
|
L_028F80EC: ; // 0x28f80ec
|
|
/* 028F80EC */ cpu->r[4] = cpu->r[23] + cpu->r[18];
|
|
/* 028F80EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028F80F0 */ _t37 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F80F0 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028F80F0 */ if (_t38) goto L_028F80F4; else goto L_028F8108;
|
|
L_028F80F4: ; // 0x28f80f4
|
|
/* 028F80F4 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F80F8 */ cpu->r[0] = cpu->r[25] + cpu->r[18];
|
|
/* 028F80F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F80FC */ _t39 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F80FC */ rbrew_write32(cpu->mem, _t39, cpu->r[4]);
|
|
/* 028F8100 */ _t40 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F8100 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028F8100 */ if (_t41) goto L_028F8120; else goto L_028F8104;
|
|
L_028F8104: ; // 0x28f8104
|
|
/* 028F8104 */ goto L_028F814C;
|
|
L_028F8108: ; // 0x28f8108
|
|
/* 028F8108 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[29]);
|
|
/* 028F810C */ _t42 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F810C */ _t43 = _t42 & 0x00000001u;
|
|
/* 028F810C */ if (_t43) goto L_028F8110; else goto L_028F8114;
|
|
L_028F8110: ; // 0x28f8110
|
|
/* 028F8110 */ cpu->r[4] = cpu->r[29];
|
|
L_028F8114: ; // 0x28f8114
|
|
/* 028F8114 */ cpu->r[0] = cpu->r[25] + cpu->r[18];
|
|
/* 028F8114 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F8118 */ _t44 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8118 */ rbrew_write32(cpu->mem, _t44, cpu->r[4]);
|
|
/* 028F811C */ _t45 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F811C */ _t46 = _t45 & 0x00000001u;
|
|
/* 028F811C */ if (_t46) goto L_028F8120; else goto L_028F814C;
|
|
L_028F8120: ; // 0x28f8120
|
|
/* 028F8120 */ cpu->r[5] = 0x00000000u;
|
|
/* 028F8124 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028F8128 */ cpu->r[3] = cpu->r[21];
|
|
/* 028F812C */ cpu->r[6] = cpu->r[30];
|
|
/* 028F8130 */ _t47 = cpu->r[1] + 0x00000014u;
|
|
/* 028F8130 */ rbrew_write32(cpu->mem, _t47, cpu->r[5]);
|
|
/* 028F8134 */ Gambit_fn_028F77D0(cpu);
|
|
/* 028F8138 */ cpu->r[17] = cpu->r[17] + 0xFFFFFFFFu;
|
|
/* 028F8138 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[17], 0x00000000u);
|
|
/* 028F813C */ cpu->r[18] = cpu->r[18] + 0x00000001u;
|
|
/* 028F8140 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F8144 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8144 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F8144 */ if (_t49) goto L_028F8148; else goto L_028F80EC;
|
|
L_028F8148: ; // 0x28f8148
|
|
/* 028F8148 */ goto L_028F8180;
|
|
L_028F814C: ; // 0x28f814c
|
|
/* 028F814C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[31]);
|
|
/* 028F8150 */ _t50 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F8150 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028F8150 */ if (_t51) goto L_028F8154; else goto L_028F8158;
|
|
L_028F8154: ; // 0x28f8154
|
|
/* 028F8154 */ cpu->r[0] = cpu->r[31];
|
|
L_028F8158: ; // 0x28f8158
|
|
/* 028F8158 */ cpu->r[5] = 0x00000000u;
|
|
/* 028F815C */ cpu->r[3] = cpu->r[21];
|
|
/* 028F8160 */ cpu->r[6] = cpu->r[30];
|
|
/* 028F8164 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028F8168 */ _t52 = cpu->r[1] + 0x00000014u;
|
|
/* 028F8168 */ rbrew_write32(cpu->mem, _t52, cpu->r[0]);
|
|
/* 028F816C */ Gambit_fn_028F77D0(cpu);
|
|
/* 028F8170 */ cpu->r[17] = cpu->r[17] + 0xFFFFFFFFu;
|
|
/* 028F8170 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[17], 0x00000000u);
|
|
/* 028F8174 */ cpu->r[18] = cpu->r[18] + 0x00000001u;
|
|
/* 028F8178 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F817C */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F817C */ _t54 = _t53 & 0x00000001u;
|
|
/* 028F817C */ if (_t54) goto L_028F8180; else goto L_028F80EC;
|
|
L_028F8180: ; // 0x28f8180
|
|
/* 028F8180 */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 028F8180 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F8184 */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 028F8188 */ _t55 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8188 */ _t56 = _t55 & 0x00000001u;
|
|
/* 028F8188 */ if (_t56) goto L_028F818C; else goto L_028F8088;
|
|
L_028F818C: ; // 0x28f818c
|
|
/* 028F818C */ cpu->r[3] = cpu->r[1] + 0x0000033Cu;
|
|
/* 028F8190 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F8194 */ Gambit_fn_028F0780(cpu);
|
|
/* 028F8198 */ cpu->r[3] = cpu->r[1] + 0x000001E0u;
|
|
/* 028F819C */ cpu->r[4] = 0x00000002u;
|
|
/* 028F81A0 */ Gambit_fn_028FA208(cpu);
|
|
/* 028F81A4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F81A8 */ /* nop */
|
|
/* 028F81AC */ _t57 = cpu->r[1] + 0x00000434u;
|
|
/* 028F81AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028F81B0 */ cpu->lr = cpu->r[0];
|
|
/* 028F81B4 */ cpu->r[1] = cpu->r[1] + 0x00000430u;
|
|
/* 028F81B8 */ return;
|
|
}
|
|
|
|
// fn_028F81BC @ 0x28f81bc
|
|
void Gambit_fn_028F81BC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F81BC: ; // 0x28f81bc
|
|
/* 028F81BC */ _t0 = cpu->r[1] + 0xFFFFFBE0u;
|
|
/* 028F81BC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F81BC */ cpu->r[1] = _t0;
|
|
/* 028F81C0 */ /* nop */
|
|
/* 028F81C4 */ cpu->r[0] = cpu->lr;
|
|
/* 028F81C8 */ _t1 = cpu->r[1] + 0x000003C0u;
|
|
/* 028F81C8 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[26]);
|
|
/* 028F81CC */ _t2 = cpu->r[1] + 0x000003D0u;
|
|
/* 028F81CC */ rbrew_write_f64(cpu->mem, _t2, cpu->f[27]);
|
|
/* 028F81D0 */ /* nop */
|
|
/* 028F81D4 */ _t3 = cpu->r[1] + 0x000003E0u;
|
|
/* 028F81D4 */ rbrew_write_f64(cpu->mem, _t3, cpu->f[28]);
|
|
/* 028F81D8 */ /* nop */
|
|
/* 028F81DC */ _t4 = cpu->r[1] + 0x000003C8u;
|
|
/* 028F81DC */ rbrew_write_f32(cpu->mem, _t4, cpu->f[26]);
|
|
/* 028F81E0 */ _t5 = cpu->r[1] + 0x000003D8u;
|
|
/* 028F81E0 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[27]);
|
|
/* 028F81E4 */ _t6 = cpu->r[1] + 0x000003F0u;
|
|
/* 028F81E4 */ rbrew_write_f64(cpu->mem, _t6, cpu->f[29]);
|
|
/* 028F81E8 */ /* nop */
|
|
/* 028F81EC */ _t7 = cpu->r[1] + 0x00000424u;
|
|
/* 028F81EC */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028F81F0 */ _t8 = cpu->r[1] + 0x000003E8u;
|
|
/* 028F81F0 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[28]);
|
|
/* 028F81F4 */ _t9 = cpu->r[1] + 0x00000400u;
|
|
/* 028F81F4 */ rbrew_write_f64(cpu->mem, _t9, cpu->f[30]);
|
|
/* 028F81F8 */ /* nop */
|
|
/* 028F81FC */ _t10 = cpu->r[1] + 0x00000410u;
|
|
/* 028F81FC */ rbrew_write_f64(cpu->mem, _t10, cpu->f[31]);
|
|
/* 028F8200 */ /* nop */
|
|
/* 028F8204 */ _t11 = cpu->r[1] + 0x000003F8u;
|
|
/* 028F8204 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[29]);
|
|
/* 028F8208 */ /* nop */
|
|
/* 028F820C */ _t12 = cpu->r[1] + 0x00000408u;
|
|
/* 028F820C */ rbrew_write_f32(cpu->mem, _t12, cpu->f[30]);
|
|
/* 028F8210 */ _t13 = cpu->r[1] + 0x00000418u;
|
|
/* 028F8210 */ rbrew_write_f32(cpu->mem, _t13, cpu->f[31]);
|
|
/* 028F8214 */ cpu->r[29] = cpu->r[4];
|
|
/* 028F8218 */ cpu->r[27] = cpu->r[3];
|
|
/* 028F821C */ _t14 = cpu->r[27] + 0x00000014u;
|
|
/* 028F821C */ cpu->r[8] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F8220 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], 0x00000001u);
|
|
/* 028F8224 */ _t15 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F8224 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F8224 */ if (_t16) goto L_028F8228; else goto L_028F8694;
|
|
L_028F8228: ; // 0x28f8228
|
|
/* 028F8228 */ cpu->r[3] = cpu->r[1] + 0x00000040u;
|
|
/* 028F822C */ Gambit_fn_028F047C(cpu);
|
|
/* 028F8230 */ _t17 = cpu->r[27] + 0x00000010u;
|
|
/* 028F8230 */ cpu->r[9] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F8234 */ cpu->r[5] = 0x00000000u;
|
|
/* 028F8238 */ _t18 = cpu->r[27] + 0x00000014u;
|
|
/* 028F8238 */ cpu->r[26] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F823C */ _t19 = cpu->r[27] + 0x0000007Eu;
|
|
/* 028F823C */ cpu->r[0] = rbrew_read8(cpu->mem, _t19);
|
|
/* 028F8240 */ /* nop */
|
|
/* 028F8244 */ cpu->r[3] = cpu->r[1] + 0x00000080u;
|
|
/* 028F8248 */ cpu->r[4] = cpu->r[27];
|
|
/* 028F824C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[31]);
|
|
/* 028F8250 */ _t20 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F8250 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F8250 */ if (_t21) goto L_028F8254; else goto L_028F8258;
|
|
L_028F8254: ; // 0x28f8254
|
|
/* 028F8254 */ cpu->r[31] = cpu->r[0];
|
|
L_028F8258: ; // 0x28f8258
|
|
/* 028F8258 */ cpu->r[6] = cpu->r[5];
|
|
/* 028F825C */ Gambit_fn_028F1994(cpu);
|
|
/* 028F8260 */ cpu->r[12] = cpu->r[1] + 0x00000080u;
|
|
/* 028F8264 */ cpu->r[4] = cpu->r[27];
|
|
/* 028F8268 */ cpu->r[3] = cpu->r[1] + 0x000001BCu;
|
|
/* 028F826C */ _t22 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028F826C */ rbrew_write32(cpu->mem, _t22, cpu->r[12]);
|
|
/* 028F8270 */ cpu->r[30] = cpu->r[1] + 0x0000005Cu;
|
|
/* 028F8274 */ Gambit_fn_028FA030(cpu);
|
|
/* 028F8278 */ _t23 = cpu->r[1] + 0x00000310u;
|
|
/* 028F8278 */ cpu->r[0] = rbrew_read8(cpu->mem, _t23);
|
|
/* 028F827C */ cpu->r[11] = 0x00000000u;
|
|
/* 028F8280 */ _t24 = cpu->r[1] + 0x00000306u;
|
|
/* 028F8280 */ rbrew_write8(cpu->mem, _t24, (uint8_t)cpu->r[11]);
|
|
/* 028F8284 */ cpu->r[0] = cpu->r[0] | 0x00000004u;
|
|
/* 028F8288 */ cpu->r[3] = cpu->r[1] + 0x00000318u;
|
|
/* 028F828C */ _t25 = cpu->r[1] + 0x00000310u;
|
|
/* 028F828C */ rbrew_write8(cpu->mem, _t25, (uint8_t)cpu->r[0]);
|
|
/* 028F8290 */ Gambit_fn_0281E19C(cpu);
|
|
/* 028F8294 */ cpu->r[0] = 0x00000000u;
|
|
/* 028F8298 */ _t26 = cpu->r[1] + 0x00000318u;
|
|
/* 028F8298 */ rbrew_write8(cpu->mem, _t26, (uint8_t)cpu->r[0]);
|
|
/* 028F829C */ _t27 = cpu->r[1] + 0x00000319u;
|
|
/* 028F829C */ rbrew_write8(cpu->mem, _t27, (uint8_t)cpu->r[0]);
|
|
/* 028F82A0 */ cpu->r[3] = cpu->r[1] + 0x00000318u;
|
|
/* 028F82A4 */ _t28 = cpu->r[1] + 0x00000324u;
|
|
/* 028F82A4 */ rbrew_write8(cpu->mem, _t28, (uint8_t)cpu->r[0]);
|
|
/* 028F82A8 */ Gambit_fn_0281E2C8(cpu);
|
|
/* 028F82AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000001u);
|
|
/* 028F82B0 */ cpu->r[25] = cpu->r[26] + 0xFFFFFFFFu;
|
|
/* 028F82B4 */ cpu->r[28] = 0x00000001u;
|
|
/* 028F82B8 */ _t29 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F82B8 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F82B8 */ if (_t30) goto L_028F82BC; else goto L_028F867C;
|
|
L_028F82BC: ; // 0x28f82bc
|
|
/* 028F82BC */ cpu->r[12] = 0x10140000u;
|
|
/* 028F82C0 */ cpu->r[6] = 0x43300000u;
|
|
/* 028F82C4 */ _t31 = cpu->r[12] + 0xFFFFCF78u;
|
|
/* 028F82C4 */ cpu->f[0] = rbrew_read_f64(cpu->mem, _t31);
|
|
/* 028F82C8 */ cpu->r[8] = cpu->r[31] ^ 0x80000000u;
|
|
/* 028F82CC */ _t32 = cpu->r[1] + 0x00000008u;
|
|
/* 028F82CC */ rbrew_write32(cpu->mem, _t32, cpu->r[6]);
|
|
/* 028F82D0 */ cpu->r[11] = 0x10140000u;
|
|
/* 028F82D4 */ _t33 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F82D4 */ rbrew_write32(cpu->mem, _t33, cpu->r[8]);
|
|
/* 028F82D8 */ _t34 = cpu->r[1] + 0x00000008u;
|
|
/* 028F82D8 */ cpu->f[6] = rbrew_read_f64(cpu->mem, _t34);
|
|
/* 028F82DC */ _t35 = cpu->r[11] + 0xFFFFCF70u;
|
|
/* 028F82DC */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 028F82E0 */ cpu->f[7] = cpu->f[6] - cpu->f[0];
|
|
/* 028F82E4 */ cpu->r[26] = 0x101F0000u;
|
|
/* 028F82E8 */ cpu->f[26] = (double)(float)cpu->f[7];
|
|
/* 028F82EC */ cpu->r[24] = 0x00000000u;
|
|
L_028F82F0: ; // 0x28f82f0
|
|
/* 028F82F0 */ _t36 = cpu->r[27] + 0x00000008u;
|
|
/* 028F82F0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F82F4 */ cpu->r[10] = 0x10140000u;
|
|
/* 028F82F8 */ cpu->r[7] = 0x43300000u;
|
|
/* 028F82FC */ _t37 = cpu->r[27] + 0x0000007Cu;
|
|
/* 028F82FC */ cpu->r[0] = rbrew_read8(cpu->mem, _t37);
|
|
/* 028F8300 */ /* nop */
|
|
/* 028F8304 */ _t38 = cpu->r[10] + 0xFFFFCF78u;
|
|
/* 028F8304 */ cpu->f[13] = rbrew_read_f64(cpu->mem, _t38);
|
|
/* 028F8308 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[4]);
|
|
/* 028F830C */ _t39 = cpu->r[1] + 0x00000008u;
|
|
/* 028F830C */ rbrew_write32(cpu->mem, _t39, cpu->r[7]);
|
|
/* 028F8310 */ _t40 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F8310 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028F8310 */ if (_t41) goto L_028F8314; else goto L_028F8318;
|
|
L_028F8314: ; // 0x28f8314
|
|
/* 028F8314 */ cpu->r[4] = cpu->r[0];
|
|
L_028F8318: ; // 0x28f8318
|
|
/* 028F8318 */ _t42 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028F8318 */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F831C */ _t43 = cpu->r[27] + 0x0000007Du;
|
|
/* 028F831C */ cpu->r[7] = rbrew_read8(cpu->mem, _t43);
|
|
/* 028F8320 */ /* nop */
|
|
/* 028F8324 */ cpu->r[9] = cpu->r[4] ^ 0x80000000u;
|
|
/* 028F8328 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[6]);
|
|
/* 028F832C */ _t44 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F832C */ _t45 = _t44 & 0x00000001u;
|
|
/* 028F832C */ if (_t45) goto L_028F8330; else goto L_028F8334;
|
|
L_028F8330: ; // 0x28f8330
|
|
/* 028F8330 */ cpu->r[6] = cpu->r[7];
|
|
L_028F8334: ; // 0x28f8334
|
|
/* 028F8334 */ _t46 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8334 */ rbrew_write32(cpu->mem, _t46, cpu->r[9]);
|
|
/* 028F8338 */ _t47 = cpu->r[1] + 0x00000008u;
|
|
/* 028F8338 */ cpu->f[7] = rbrew_read_f64(cpu->mem, _t47);
|
|
/* 028F833C */ cpu->r[0] = cpu->r[6] ^ 0x80000000u;
|
|
/* 028F8340 */ cpu->r[12] = cpu->r[24] ^ 0x80000000u;
|
|
/* 028F8344 */ _t48 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8344 */ rbrew_write32(cpu->mem, _t48, cpu->r[0]);
|
|
/* 028F8348 */ _t49 = cpu->r[1] + 0x00000008u;
|
|
/* 028F8348 */ cpu->f[8] = rbrew_read_f64(cpu->mem, _t49);
|
|
/* 028F834C */ cpu->f[9] = cpu->f[7] - cpu->f[13];
|
|
/* 028F8350 */ _t50 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8350 */ rbrew_write32(cpu->mem, _t50, cpu->r[12]);
|
|
/* 028F8354 */ _t51 = cpu->r[1] + 0x00000008u;
|
|
/* 028F8354 */ cpu->f[10] = rbrew_read_f64(cpu->mem, _t51);
|
|
/* 028F8358 */ cpu->f[0] = cpu->f[8] - cpu->f[13];
|
|
/* 028F835C */ _t52 = cpu->r[1] + 0x00000310u;
|
|
/* 028F835C */ cpu->r[9] = rbrew_read8(cpu->mem, _t52);
|
|
/* 028F8360 */ cpu->f[13] = cpu->f[10] - cpu->f[13];
|
|
/* 028F8364 */ _t53 = cpu->r[1] + 0x00000300u;
|
|
/* 028F8364 */ rbrew_write_f32(cpu->mem, _t53, cpu->f[31]);
|
|
/* 028F8368 */ cpu->r[9] = cpu->r[9] | 0x00000008u;
|
|
/* 028F836C */ cpu->f[27] = (double)(float)cpu->f[9];
|
|
/* 028F8370 */ _t54 = cpu->r[1] + 0x00000310u;
|
|
/* 028F8370 */ rbrew_write8(cpu->mem, _t54, (uint8_t)cpu->r[9]);
|
|
/* 028F8374 */ cpu->f[28] = (double)(float)cpu->f[0];
|
|
/* 028F8378 */ cpu->f[30] = (double)(float)cpu->f[13];
|
|
/* 028F837C */ _t55 = cpu->r[1] + 0x00000040u;
|
|
/* 028F837C */ rbrew_write_f32(cpu->mem, _t55, cpu->f[27]);
|
|
/* 028F8380 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[31], cpu->f[27]);
|
|
/* 028F8384 */ _t56 = cpu->r[1] + 0x00000044u;
|
|
/* 028F8384 */ rbrew_write_f32(cpu->mem, _t56, cpu->f[28]);
|
|
/* 028F8388 */ cpu->f[29] = cpu->f[26];
|
|
/* 028F838C */ _t57 = cpu->r[1] + 0x000002FCu;
|
|
/* 028F838C */ rbrew_write_f32(cpu->mem, _t57, cpu->f[30]);
|
|
/* 028F8390 */ _t58 = cpu->r[1] + 0x000002F8u;
|
|
/* 028F8390 */ rbrew_write_f32(cpu->mem, _t58, cpu->f[30]);
|
|
/* 028F8394 */ _t59 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F8394 */ _t60 = _t59 & 0x00000001u;
|
|
/* 028F8394 */ if (_t60) goto L_028F8398; else goto L_028F83AC;
|
|
L_028F8398: ; // 0x28f8398
|
|
/* 028F8398 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[31], cpu->f[28]);
|
|
/* 028F839C */ _t61 = cpu->r[1] + 0x00000020u;
|
|
/* 028F839C */ rbrew_write_f32(cpu->mem, _t61, cpu->f[27]);
|
|
/* 028F83A0 */ _t62 = cpu->r[1] + 0x00000018u;
|
|
/* 028F83A0 */ rbrew_write_f32(cpu->mem, _t62, cpu->f[31]);
|
|
/* 028F83A4 */ _t63 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F83A4 */ _t64 = _t63 & 0x00000001u;
|
|
/* 028F83A4 */ if (_t64) goto L_028F83A8; else goto L_028F846C;
|
|
L_028F83A8: ; // 0x28f83a8
|
|
/* 028F83A8 */ goto L_028F83BC;
|
|
L_028F83AC: ; // 0x28f83ac
|
|
/* 028F83AC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[31], cpu->f[28]);
|
|
/* 028F83B0 */ _t65 = cpu->r[1] + 0x00000020u;
|
|
/* 028F83B0 */ rbrew_write_f32(cpu->mem, _t65, cpu->f[31]);
|
|
/* 028F83B4 */ _t66 = cpu->r[1] + 0x00000018u;
|
|
/* 028F83B4 */ rbrew_write_f32(cpu->mem, _t66, cpu->f[27]);
|
|
/* 028F83B8 */ _t67 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F83B8 */ _t68 = _t67 & 0x00000001u;
|
|
/* 028F83B8 */ if (_t68) goto L_028F83BC; else goto L_028F846C;
|
|
L_028F83BC: ; // 0x28f83bc
|
|
/* 028F83BC */ _t69 = cpu->r[1] + 0x00000018u;
|
|
/* 028F83BC */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 028F83C0 */ _t70 = cpu->r[1] + 0x00000024u;
|
|
/* 028F83C0 */ rbrew_write_f32(cpu->mem, _t70, cpu->f[28]);
|
|
/* 028F83C4 */ _t71 = cpu->r[1] + 0x00000048u;
|
|
/* 028F83C4 */ rbrew_write_f32(cpu->mem, _t71, cpu->f[8]);
|
|
/* 028F83C8 */ _t72 = cpu->r[1] + 0x00000054u;
|
|
/* 028F83C8 */ rbrew_write_f32(cpu->mem, _t72, cpu->f[28]);
|
|
/* 028F83CC */ _t73 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F83CC */ rbrew_write_f32(cpu->mem, _t73, cpu->f[31]);
|
|
/* 028F83D0 */ cpu->r[3] = cpu->r[1] + 0x00000028u;
|
|
/* 028F83D4 */ _t74 = cpu->r[1] + 0x00000020u;
|
|
/* 028F83D4 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t74);
|
|
/* 028F83D8 */ _t75 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F83D8 */ rbrew_write_f32(cpu->mem, _t75, cpu->f[31]);
|
|
/* 028F83DC */ cpu->r[4] = cpu->r[1] + 0x00000040u;
|
|
/* 028F83E0 */ _t76 = cpu->r[1] + 0x00000050u;
|
|
/* 028F83E0 */ rbrew_write_f32(cpu->mem, _t76, cpu->f[13]);
|
|
/* 028F83E4 */ Gambit_fn_0281D990(cpu);
|
|
/* 028F83E8 */ cpu->r[4] = cpu->r[1] + 0x00000040u;
|
|
/* 028F83EC */ cpu->r[3] = cpu->r[1] + 0x00000028u;
|
|
/* 028F83F0 */ Gambit_fn_0281DCCC(cpu);
|
|
/* 028F83F4 */ _t77 = cpu->r[27] + 0x00000008u;
|
|
/* 028F83F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028F83F8 */ cpu->r[11] = 0x43300000u;
|
|
/* 028F83FC */ _t78 = cpu->r[27] + 0x0000007Cu;
|
|
/* 028F83FC */ cpu->r[10] = rbrew_read8(cpu->mem, _t78);
|
|
/* 028F8400 */ _t79 = cpu->r[1] + 0x00000008u;
|
|
/* 028F8400 */ rbrew_write32(cpu->mem, _t79, cpu->r[11]);
|
|
/* 028F8404 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[0]);
|
|
/* 028F8408 */ _t80 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F8408 */ _t81 = _t80 & 0x00000001u;
|
|
/* 028F8408 */ if (_t81) goto L_028F840C; else goto L_028F8410;
|
|
L_028F840C: ; // 0x28f840c
|
|
/* 028F840C */ cpu->r[0] = cpu->r[10];
|
|
L_028F8410: ; // 0x28f8410
|
|
/* 028F8410 */ cpu->r[5] = 0x10140000u;
|
|
/* 028F8414 */ _t82 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8414 */ rbrew_write32(cpu->mem, _t82, cpu->r[0]);
|
|
/* 028F8418 */ _t83 = cpu->r[1] + 0x00000008u;
|
|
/* 028F8418 */ cpu->f[11] = rbrew_read_f64(cpu->mem, _t83);
|
|
/* 028F841C */ _t84 = cpu->r[5] + 0xFFFFCF68u;
|
|
/* 028F841C */ cpu->f[12] = rbrew_read_f64(cpu->mem, _t84);
|
|
/* 028F8420 */ _t85 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028F8420 */ cpu->r[0] = rbrew_read32(cpu->mem, _t85);
|
|
/* 028F8424 */ cpu->f[6] = cpu->f[11] - cpu->f[12];
|
|
/* 028F8428 */ _t86 = cpu->r[27] + 0x0000007Du;
|
|
/* 028F8428 */ cpu->r[10] = rbrew_read8(cpu->mem, _t86);
|
|
/* 028F842C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[0]);
|
|
/* 028F8430 */ cpu->f[11] = (double)(float)cpu->f[6];
|
|
/* 028F8434 */ _t87 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F8434 */ _t88 = _t87 & 0x00000001u;
|
|
/* 028F8434 */ if (_t88) goto L_028F8438; else goto L_028F843C;
|
|
L_028F8438: ; // 0x28f8438
|
|
/* 028F8438 */ cpu->r[0] = cpu->r[10];
|
|
L_028F843C: ; // 0x28f843c
|
|
/* 028F843C */ _t89 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F843C */ rbrew_write32(cpu->mem, _t89, cpu->r[0]);
|
|
/* 028F8440 */ cpu->f[10] = cpu->f[27] / cpu->f[11];
|
|
/* 028F8444 */ _t90 = cpu->r[1] + 0x00000008u;
|
|
/* 028F8444 */ cpu->f[11] = rbrew_read_f64(cpu->mem, _t90);
|
|
/* 028F8448 */ cpu->f[0] = cpu->f[11] - cpu->f[12];
|
|
/* 028F844C */ cpu->f[9] = (double)(float)cpu->f[0];
|
|
/* 028F8450 */ cpu->f[11] = cpu->f[28] / cpu->f[9];
|
|
/* 028F8454 */ _t91 = cpu->r[1] + 0x00000010u;
|
|
/* 028F8454 */ rbrew_write_f32(cpu->mem, _t91, cpu->f[10]);
|
|
/* 028F8458 */ cpu->r[21] = cpu->r[31];
|
|
/* 028F8458 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[21], 0x00000000u);
|
|
/* 028F845C */ cpu->r[23] = 0x00000000u;
|
|
/* 028F8460 */ _t92 = cpu->r[1] + 0x00000014u;
|
|
/* 028F8460 */ rbrew_write_f32(cpu->mem, _t92, cpu->f[11]);
|
|
/* 028F8464 */ _t93 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F8464 */ _t94 = _t93 & 0x00000001u;
|
|
/* 028F8464 */ if (_t94) goto L_028F8468; else goto L_028F8664;
|
|
L_028F8468: ; // 0x28f8468
|
|
/* 028F8468 */ goto L_028F8518;
|
|
L_028F846C: ; // 0x28f846c
|
|
/* 028F846C */ _t95 = cpu->r[1] + 0x00000018u;
|
|
/* 028F846C */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t95);
|
|
/* 028F8470 */ _t96 = cpu->r[1] + 0x00000024u;
|
|
/* 028F8470 */ rbrew_write_f32(cpu->mem, _t96, cpu->f[31]);
|
|
/* 028F8474 */ _t97 = cpu->r[1] + 0x00000048u;
|
|
/* 028F8474 */ rbrew_write_f32(cpu->mem, _t97, cpu->f[8]);
|
|
/* 028F8478 */ _t98 = cpu->r[1] + 0x00000054u;
|
|
/* 028F8478 */ rbrew_write_f32(cpu->mem, _t98, cpu->f[31]);
|
|
/* 028F847C */ _t99 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F847C */ rbrew_write_f32(cpu->mem, _t99, cpu->f[28]);
|
|
/* 028F8480 */ cpu->r[3] = cpu->r[1] + 0x00000028u;
|
|
/* 028F8484 */ _t100 = cpu->r[1] + 0x00000020u;
|
|
/* 028F8484 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t100);
|
|
/* 028F8488 */ _t101 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F8488 */ rbrew_write_f32(cpu->mem, _t101, cpu->f[28]);
|
|
/* 028F848C */ cpu->r[4] = cpu->r[1] + 0x00000040u;
|
|
/* 028F8490 */ _t102 = cpu->r[1] + 0x00000050u;
|
|
/* 028F8490 */ rbrew_write_f32(cpu->mem, _t102, cpu->f[13]);
|
|
/* 028F8494 */ Gambit_fn_0281D990(cpu);
|
|
/* 028F8498 */ cpu->r[4] = cpu->r[1] + 0x00000040u;
|
|
/* 028F849C */ cpu->r[3] = cpu->r[1] + 0x00000028u;
|
|
/* 028F84A0 */ Gambit_fn_0281DCCC(cpu);
|
|
/* 028F84A4 */ _t103 = cpu->r[27] + 0x00000008u;
|
|
/* 028F84A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t103);
|
|
/* 028F84A8 */ cpu->r[11] = 0x43300000u;
|
|
/* 028F84AC */ _t104 = cpu->r[27] + 0x0000007Cu;
|
|
/* 028F84AC */ cpu->r[10] = rbrew_read8(cpu->mem, _t104);
|
|
/* 028F84B0 */ _t105 = cpu->r[1] + 0x00000008u;
|
|
/* 028F84B0 */ rbrew_write32(cpu->mem, _t105, cpu->r[11]);
|
|
/* 028F84B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[0]);
|
|
/* 028F84B8 */ _t106 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F84B8 */ _t107 = _t106 & 0x00000001u;
|
|
/* 028F84B8 */ if (_t107) goto L_028F84BC; else goto L_028F84C0;
|
|
L_028F84BC: ; // 0x28f84bc
|
|
/* 028F84BC */ cpu->r[0] = cpu->r[10];
|
|
L_028F84C0: ; // 0x28f84c0
|
|
/* 028F84C0 */ cpu->r[5] = 0x10140000u;
|
|
/* 028F84C4 */ _t108 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F84C4 */ rbrew_write32(cpu->mem, _t108, cpu->r[0]);
|
|
/* 028F84C8 */ _t109 = cpu->r[1] + 0x00000008u;
|
|
/* 028F84C8 */ cpu->f[11] = rbrew_read_f64(cpu->mem, _t109);
|
|
/* 028F84CC */ _t110 = cpu->r[5] + 0xFFFFCF68u;
|
|
/* 028F84CC */ cpu->f[12] = rbrew_read_f64(cpu->mem, _t110);
|
|
/* 028F84D0 */ _t111 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028F84D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t111);
|
|
/* 028F84D4 */ cpu->f[6] = cpu->f[11] - cpu->f[12];
|
|
/* 028F84D8 */ _t112 = cpu->r[27] + 0x0000007Du;
|
|
/* 028F84D8 */ cpu->r[10] = rbrew_read8(cpu->mem, _t112);
|
|
/* 028F84DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[0]);
|
|
/* 028F84E0 */ cpu->f[11] = (double)(float)cpu->f[6];
|
|
/* 028F84E4 */ _t113 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F84E4 */ _t114 = _t113 & 0x00000001u;
|
|
/* 028F84E4 */ if (_t114) goto L_028F84E8; else goto L_028F84EC;
|
|
L_028F84E8: ; // 0x28f84e8
|
|
/* 028F84E8 */ cpu->r[0] = cpu->r[10];
|
|
L_028F84EC: ; // 0x28f84ec
|
|
/* 028F84EC */ _t115 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F84EC */ rbrew_write32(cpu->mem, _t115, cpu->r[0]);
|
|
/* 028F84F0 */ cpu->f[10] = cpu->f[27] / cpu->f[11];
|
|
/* 028F84F4 */ _t116 = cpu->r[1] + 0x00000008u;
|
|
/* 028F84F4 */ cpu->f[11] = rbrew_read_f64(cpu->mem, _t116);
|
|
/* 028F84F8 */ cpu->f[0] = cpu->f[11] - cpu->f[12];
|
|
/* 028F84FC */ cpu->f[9] = (double)(float)cpu->f[0];
|
|
/* 028F8500 */ cpu->f[11] = cpu->f[28] / cpu->f[9];
|
|
/* 028F8504 */ _t117 = cpu->r[1] + 0x00000010u;
|
|
/* 028F8504 */ rbrew_write_f32(cpu->mem, _t117, cpu->f[10]);
|
|
/* 028F8508 */ cpu->r[21] = cpu->r[31];
|
|
/* 028F8508 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[21], 0x00000000u);
|
|
/* 028F850C */ cpu->r[23] = 0x00000000u;
|
|
/* 028F8510 */ _t118 = cpu->r[1] + 0x00000014u;
|
|
/* 028F8510 */ rbrew_write_f32(cpu->mem, _t118, cpu->f[11]);
|
|
/* 028F8514 */ _t119 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F8514 */ _t120 = _t119 & 0x00000001u;
|
|
/* 028F8514 */ if (_t120) goto L_028F8518; else goto L_028F8664;
|
|
L_028F8518: ; // 0x28f8518
|
|
/* 028F8518 */ cpu->r[22] = 0x00000001u;
|
|
L_028F851C: ; // 0x28f851c
|
|
/* 028F851C */ _t121 = cpu->r[1] + 0x0000010Cu;
|
|
/* 028F851C */ cpu->r[7] = rbrew_read32(cpu->mem, _t121);
|
|
/* 028F8520 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[23]);
|
|
/* 028F8524 */ _t122 = cpu->r[1] + 0x00000108u;
|
|
/* 028F8524 */ cpu->r[0] = rbrew_read32(cpu->mem, _t122);
|
|
/* 028F8528 */ _t123 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8528 */ _t124 = _t123 & 0x00000001u;
|
|
/* 028F8528 */ if (_t124) goto L_028F8534; else goto L_028F852C;
|
|
L_028F852C: ; // 0x28f852c
|
|
/* 028F852C */ _t125 = cpu->r[1] + 0x0000010Cu;
|
|
/* 028F852C */ rbrew_write32(cpu->mem, _t125, cpu->r[23]);
|
|
/* 028F8530 */ _t126 = cpu->r[1] + 0x00000104u;
|
|
/* 028F8530 */ rbrew_write8(cpu->mem, _t126, (uint8_t)cpu->r[22]);
|
|
L_028F8534: ; // 0x28f8534
|
|
/* 028F8534 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[28]);
|
|
/* 028F8538 */ _t127 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8538 */ _t128 = _t127 & 0x00000001u;
|
|
/* 028F8538 */ if (_t128) goto L_028F8544; else goto L_028F853C;
|
|
L_028F853C: ; // 0x28f853c
|
|
/* 028F853C */ _t129 = cpu->r[1] + 0x00000108u;
|
|
/* 028F853C */ rbrew_write32(cpu->mem, _t129, cpu->r[28]);
|
|
/* 028F8540 */ _t130 = cpu->r[1] + 0x00000104u;
|
|
/* 028F8540 */ rbrew_write8(cpu->mem, _t130, (uint8_t)cpu->r[22]);
|
|
L_028F8544: ; // 0x28f8544
|
|
/* 028F8544 */ cpu->r[3] = cpu->r[1] + 0x00000040u;
|
|
/* 028F8548 */ Gambit_fn_0281BAE0(cpu);
|
|
/* 028F854C */ _t131 = cpu->r[27] + 0x00000004u;
|
|
/* 028F854C */ cpu->r[10] = rbrew_read32(cpu->mem, _t131);
|
|
/* 028F8550 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], 0x00000001u);
|
|
/* 028F8554 */ cpu->f[1] = cpu->f[30];
|
|
/* 028F8558 */ _t132 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F8558 */ _t133 = _t132 & 0x00000001u;
|
|
/* 028F8558 */ if (_t133) goto L_028F8658; else goto L_028F855C;
|
|
L_028F855C: ; // 0x28f855c
|
|
/* 028F855C */ _t134 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F855C */ _t135 = _t134 & 0x00000001u;
|
|
/* 028F855C */ if (_t135) goto L_028F8584; else goto L_028F8560;
|
|
L_028F8560: ; // 0x28f8560
|
|
/* 028F8560 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], 0x00000003u);
|
|
/* 028F8564 */ _t136 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F8564 */ _t137 = _t136 & 0x00000001u;
|
|
/* 028F8564 */ if (_t137) goto L_028F85B0; else goto L_028F8568;
|
|
L_028F8568: ; // 0x28f8568
|
|
/* 028F8568 */ _t138 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8568 */ _t139 = _t138 & 0x00000001u;
|
|
/* 028F8568 */ if (_t139) goto L_028F8638; else goto L_028F856C;
|
|
L_028F856C: ; // 0x28f856c
|
|
/* 028F856C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], 0x00000005u);
|
|
/* 028F8570 */ _t140 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8570 */ _t141 = _t140 & 0x00000001u;
|
|
/* 028F8570 */ if (_t141) goto L_028F8608; else goto L_028F8574;
|
|
L_028F8574: ; // 0x28f8574
|
|
/* 028F8574 */ cpu->r[21] = cpu->r[21] + 0xFFFFFFFFu;
|
|
/* 028F8574 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[21], 0x00000000u);
|
|
/* 028F8578 */ cpu->r[23] = cpu->r[23] + 0x00000001u;
|
|
/* 028F857C */ _t142 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F857C */ _t143 = _t142 & 0x00000001u;
|
|
/* 028F857C */ if (_t143) goto L_028F8580; else goto L_028F851C;
|
|
L_028F8580: ; // 0x28f8580
|
|
/* 028F8580 */ goto L_028F8664;
|
|
L_028F8584: ; // 0x28f8584
|
|
/* 028F8584 */ cpu->r[6] = cpu->r[26] + 0x00006318u;
|
|
/* 028F8588 */ cpu->r[7] = cpu->r[29];
|
|
/* 028F858C */ cpu->r[3] = cpu->r[1] + 0x000001BCu;
|
|
/* 028F8590 */ cpu->r[4] = cpu->r[1] + 0x00000028u;
|
|
/* 028F8594 */ cpu->r[5] = cpu->r[1] + 0x00000010u;
|
|
/* 028F8598 */ Gambit_fn_029463A0(cpu);
|
|
/* 028F859C */ cpu->r[21] = cpu->r[21] + 0xFFFFFFFFu;
|
|
/* 028F859C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[21], 0x00000000u);
|
|
/* 028F85A0 */ cpu->r[23] = cpu->r[23] + 0x00000001u;
|
|
/* 028F85A4 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F85A8 */ _t144 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F85A8 */ _t145 = _t144 & 0x00000001u;
|
|
/* 028F85A8 */ if (_t145) goto L_028F85AC; else goto L_028F851C;
|
|
L_028F85AC: ; // 0x28f85ac
|
|
/* 028F85AC */ goto L_028F8664;
|
|
L_028F85B0: ; // 0x28f85b0
|
|
/* 028F85B0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028F85B4 */ cpu->r[6] = 0x43300000u;
|
|
/* 028F85B8 */ _t146 = cpu->r[12] + 0xFFFFCF78u;
|
|
/* 028F85B8 */ cpu->f[12] = rbrew_read_f64(cpu->mem, _t146);
|
|
/* 028F85BC */ cpu->r[8] = cpu->r[23] ^ 0x80000000u;
|
|
/* 028F85C0 */ _t147 = cpu->r[1] + 0x00000008u;
|
|
/* 028F85C0 */ rbrew_write32(cpu->mem, _t147, cpu->r[6]);
|
|
/* 028F85C4 */ _t148 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F85C4 */ rbrew_write32(cpu->mem, _t148, cpu->r[8]);
|
|
/* 028F85C8 */ _t149 = cpu->r[1] + 0x00000008u;
|
|
/* 028F85C8 */ cpu->f[8] = rbrew_read_f64(cpu->mem, _t149);
|
|
/* 028F85CC */ cpu->f[10] = cpu->f[8] - cpu->f[12];
|
|
/* 028F85D0 */ cpu->f[0] = (double)(float)cpu->f[10];
|
|
/* 028F85D4 */ cpu->f[2] = cpu->f[1];
|
|
/* 028F85D8 */ cpu->f[1] = cpu->f[0] / cpu->f[29];
|
|
/* 028F85DC */ cpu->r[5] = cpu->r[1] + 0x00000010u;
|
|
/* 028F85E0 */ cpu->r[4] = cpu->r[1] + 0x00000028u;
|
|
/* 028F85E4 */ cpu->r[3] = cpu->r[1] + 0x000001BCu;
|
|
/* 028F85E8 */ cpu->r[7] = cpu->r[29];
|
|
/* 028F85EC */ cpu->r[6] = cpu->r[26] + 0x00006318u;
|
|
/* 028F85F0 */ Gambit_fn_02946690(cpu);
|
|
/* 028F85F4 */ cpu->r[21] = cpu->r[21] + 0xFFFFFFFFu;
|
|
/* 028F85F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[21], 0x00000000u);
|
|
/* 028F85F8 */ cpu->r[23] = cpu->r[23] + 0x00000001u;
|
|
/* 028F85FC */ cpu->r[29] = cpu->r[3];
|
|
/* 028F8600 */ _t150 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8600 */ _t151 = _t150 & 0x00000001u;
|
|
/* 028F8600 */ if (_t151) goto L_028F8604; else goto L_028F851C;
|
|
L_028F8604: ; // 0x28f8604
|
|
/* 028F8604 */ goto L_028F8664;
|
|
L_028F8608: ; // 0x28f8608
|
|
/* 028F8608 */ cpu->r[5] = cpu->r[23];
|
|
/* 028F860C */ cpu->r[7] = cpu->r[26] + 0x00006318u;
|
|
/* 028F8610 */ cpu->r[8] = cpu->r[29];
|
|
/* 028F8614 */ cpu->r[3] = cpu->r[1] + 0x000001BCu;
|
|
/* 028F8618 */ cpu->r[4] = cpu->r[1] + 0x00000028u;
|
|
/* 028F861C */ cpu->r[6] = cpu->r[1] + 0x00000010u;
|
|
/* 028F8620 */ Gambit_fn_029464A8(cpu);
|
|
/* 028F8624 */ cpu->r[21] = cpu->r[21] + 0xFFFFFFFFu;
|
|
/* 028F8624 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[21], 0x00000000u);
|
|
/* 028F8628 */ cpu->r[23] = cpu->r[23] + 0x00000001u;
|
|
/* 028F862C */ cpu->r[29] = cpu->r[3];
|
|
/* 028F8630 */ _t152 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8630 */ _t153 = _t152 & 0x00000001u;
|
|
/* 028F8630 */ if (_t153) goto L_028F8634; else goto L_028F851C;
|
|
L_028F8634: ; // 0x28f8634
|
|
/* 028F8634 */ goto L_028F8664;
|
|
L_028F8638: ; // 0x28f8638
|
|
/* 028F8638 */ cpu->r[6] = cpu->r[1] + 0x00000010u;
|
|
/* 028F863C */ cpu->r[4] = cpu->r[1] + 0x00000028u;
|
|
/* 028F8640 */ cpu->r[3] = cpu->r[1] + 0x000001BCu;
|
|
/* 028F8644 */ cpu->r[8] = cpu->r[29];
|
|
/* 028F8648 */ cpu->r[7] = cpu->r[26] + 0x00006318u;
|
|
/* 028F864C */ cpu->r[5] = cpu->r[23];
|
|
/* 028F8650 */ Gambit_fn_02946ACC(cpu);
|
|
/* 028F8654 */ cpu->r[29] = cpu->r[3];
|
|
L_028F8658: ; // 0x28f8658
|
|
/* 028F8658 */ cpu->r[21] = cpu->r[21] + 0xFFFFFFFFu;
|
|
/* 028F8658 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[21], 0x00000000u);
|
|
/* 028F865C */ cpu->r[23] = cpu->r[23] + 0x00000001u;
|
|
/* 028F8660 */ _t154 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8660 */ _t155 = _t154 & 0x00000001u;
|
|
/* 028F8660 */ if (_t155) goto L_028F8664; else goto L_028F851C;
|
|
L_028F8664: ; // 0x28f8664
|
|
/* 028F8664 */ _t156 = cpu->r[30] + 0x00000000u;
|
|
/* 028F8664 */ cpu->r[3] = rbrew_read32(cpu->mem, _t156);
|
|
/* 028F8668 */ Gambit_fn_028F1A48(cpu);
|
|
/* 028F866C */ cpu->r[25] = cpu->r[25] + 0xFFFFFFFFu;
|
|
/* 028F866C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], 0x00000000u);
|
|
/* 028F8670 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028F8674 */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028F8678 */ _t157 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8678 */ _t158 = _t157 & 0x00000001u;
|
|
/* 028F8678 */ if (_t158) goto L_028F867C; else goto L_028F82F0;
|
|
L_028F867C: ; // 0x28f867c
|
|
/* 028F867C */ cpu->r[3] = cpu->r[1] + 0x000001BCu;
|
|
/* 028F8680 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F8684 */ Gambit_fn_028FA208(cpu);
|
|
/* 028F8688 */ cpu->r[3] = cpu->r[1] + 0x00000040u;
|
|
/* 028F868C */ cpu->r[4] = 0x00000002u;
|
|
/* 028F8690 */ Gambit_fn_028F0780(cpu);
|
|
L_028F8694: ; // 0x28f8694
|
|
/* 028F8694 */ cpu->r[3] = cpu->r[29];
|
|
/* 028F8698 */ /* nop */
|
|
/* 028F869C */ _t159 = cpu->r[1] + 0x00000408u;
|
|
/* 028F869C */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t159);
|
|
/* 028F86A0 */ _t160 = cpu->r[1] + 0x000003E8u;
|
|
/* 028F86A0 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t160);
|
|
/* 028F86A4 */ _t161 = cpu->r[1] + 0x00000400u;
|
|
/* 028F86A4 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t161);
|
|
/* 028F86A8 */ _t162 = cpu->r[1] + 0x000003E0u;
|
|
/* 028F86A8 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t162);
|
|
/* 028F86AC */ _t163 = cpu->r[1] + 0x000003D8u;
|
|
/* 028F86AC */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t163);
|
|
/* 028F86B0 */ _t164 = cpu->r[1] + 0x000003F8u;
|
|
/* 028F86B0 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t164);
|
|
/* 028F86B4 */ _t165 = cpu->r[1] + 0x000003D0u;
|
|
/* 028F86B4 */ cpu->f[27] = rbrew_read_f64(cpu->mem, _t165);
|
|
/* 028F86B8 */ _t166 = cpu->r[1] + 0x000003F0u;
|
|
/* 028F86B8 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t166);
|
|
/* 028F86BC */ _t167 = cpu->r[1] + 0x000003C8u;
|
|
/* 028F86BC */ cpu->f[26] = rbrew_read_f32(cpu->mem, _t167);
|
|
/* 028F86C0 */ _t168 = cpu->r[1] + 0x00000418u;
|
|
/* 028F86C0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t168);
|
|
/* 028F86C4 */ _t169 = cpu->r[1] + 0x000003C0u;
|
|
/* 028F86C4 */ cpu->f[26] = rbrew_read_f64(cpu->mem, _t169);
|
|
/* 028F86C8 */ _t170 = cpu->r[1] + 0x00000410u;
|
|
/* 028F86C8 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t170);
|
|
/* 028F86CC */ _t171 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F86CC */ _t172 = _t171 & 0x00000001u;
|
|
/* 028F86CC */ if (_t172) goto L_028F86D0; // else: addr-0 trap, fall-through
|
|
L_028F86D0: ; // 0x28f86d0
|
|
/* 028F86D0 */ _t173 = cpu->r[1] + 0x00000424u;
|
|
/* 028F86D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t173);
|
|
/* 028F86D4 */ cpu->lr = cpu->r[0];
|
|
/* 028F86D8 */ cpu->r[1] = cpu->r[1] + 0x00000420u;
|
|
/* 028F86DC */ return;
|
|
}
|
|
|
|
// fn_028F86E0 @ 0x28f86e0
|
|
void Gambit_fn_028F86E0(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028F86E0: ; // 0x28f86e0
|
|
/* 028F86E0 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028F86E0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F86E4 */ goto L_028F9C84;
|
|
L_028F9C84: ; // 0x28f9c84
|
|
/* 028F9C84 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x00000011u);
|
|
/* 028F9C88 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028F9C8C */ cpu->r[12] = cpu->r[12] + 0xFFFF9B2Cu;
|
|
/* 028F9C90 */ _t1 = cpu->r[12] + cpu->r[0];
|
|
/* 028F9C90 */ cpu->r[3] = rbrew_read8(cpu->mem, _t1);
|
|
/* 028F9C94 */ return;
|
|
}
|
|
|
|
// fn_028F86E8 @ 0x28f86e8
|
|
void Gambit_fn_028F86E8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _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_028F86E8: ; // 0x28f86e8
|
|
/* 028F86E8 */ cpu->r[0] = cpu->lr;
|
|
/* 028F86EC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F86EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F86EC */ cpu->r[1] = _t0;
|
|
/* 028F86F0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F86F0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F86F4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F86F8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F86F8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F86FC */ Gambit_fn_028F86E0(cpu);
|
|
/* 028F8700 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F8704 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8704 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F8704 */ if (_t4) goto L_028F8708; else goto L_028F878C;
|
|
L_028F8708: ; // 0x28f8708
|
|
/* 028F8708 */ _t5 = cpu->r[31] + 0x00000000u;
|
|
/* 028F8708 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F870C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x0000001Du);
|
|
/* 028F8710 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8710 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F8710 */ if (_t7) goto L_028F8740; else goto L_028F8714;
|
|
L_028F8714: ; // 0x28f8714
|
|
/* 028F8714 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x0000002Fu);
|
|
/* 028F8718 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8718 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F8718 */ if (_t9) goto L_028F8754; else goto L_028F871C;
|
|
L_028F871C: ; // 0x28f871c
|
|
/* 028F871C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000031u);
|
|
/* 028F8720 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8720 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F8720 */ if (_t11) goto L_028F8768; else goto L_028F8724;
|
|
L_028F8724: ; // 0x28f8724
|
|
/* 028F8724 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000033u);
|
|
/* 028F8728 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8728 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F8728 */ if (_t13) goto L_028F877C; else goto L_028F872C;
|
|
L_028F872C: ; // 0x28f872c
|
|
/* 028F872C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028F872C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F8730 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8730 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F8734 */ cpu->lr = cpu->r[0];
|
|
/* 028F8738 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F873C */ return;
|
|
L_028F8740: ; // 0x28f8740
|
|
/* 028F8740 */ cpu->r[9] = 0x00000021u;
|
|
/* 028F8744 */ cpu->r[10] = 0x0000041Au;
|
|
/* 028F8748 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 028F8748 */ rbrew_write32(cpu->mem, _t16, cpu->r[9]);
|
|
/* 028F874C */ _t17 = cpu->r[31] + 0x00000018u;
|
|
/* 028F874C */ rbrew_write32(cpu->mem, _t17, cpu->r[10]);
|
|
/* 028F8750 */ goto L_028F878C;
|
|
L_028F8754: ; // 0x28f8754
|
|
/* 028F8754 */ cpu->r[0] = 0x00000030u;
|
|
/* 028F8758 */ cpu->r[10] = 0x00000431u;
|
|
/* 028F875C */ _t18 = cpu->r[31] + 0x00000000u;
|
|
/* 028F875C */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028F8760 */ _t19 = cpu->r[31] + 0x00000018u;
|
|
/* 028F8760 */ rbrew_write32(cpu->mem, _t19, cpu->r[10]);
|
|
/* 028F8764 */ goto L_028F878C;
|
|
L_028F8768: ; // 0x28f8768
|
|
/* 028F8768 */ cpu->r[12] = 0x00000032u;
|
|
/* 028F876C */ cpu->r[10] = 0x00000432u;
|
|
/* 028F8770 */ _t20 = cpu->r[31] + 0x00000000u;
|
|
/* 028F8770 */ rbrew_write32(cpu->mem, _t20, cpu->r[12]);
|
|
/* 028F8774 */ _t21 = cpu->r[31] + 0x00000018u;
|
|
/* 028F8774 */ rbrew_write32(cpu->mem, _t21, cpu->r[10]);
|
|
/* 028F8778 */ goto L_028F878C;
|
|
L_028F877C: ; // 0x28f877c
|
|
/* 028F877C */ cpu->r[0] = 0x00000034u;
|
|
/* 028F8780 */ cpu->r[10] = 0x00000433u;
|
|
/* 028F8784 */ _t22 = cpu->r[31] + 0x00000000u;
|
|
/* 028F8784 */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
/* 028F8788 */ _t23 = cpu->r[31] + 0x00000018u;
|
|
/* 028F8788 */ rbrew_write32(cpu->mem, _t23, cpu->r[10]);
|
|
L_028F878C: ; // 0x28f878c
|
|
/* 028F878C */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 028F878C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F8790 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8790 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F8794 */ cpu->lr = cpu->r[0];
|
|
/* 028F8798 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F879C */ return;
|
|
}
|
|
|
|
// fn_028F86EC @ 0x28f86ec
|
|
void Gambit_fn_028F86EC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _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_028F86EC: ; // 0x28f86ec
|
|
/* 028F86EC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F86EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F86EC */ cpu->r[1] = _t0;
|
|
/* 028F86F0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F86F0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F86F4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F86F8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F86F8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F86FC */ Gambit_fn_028F86E0(cpu);
|
|
/* 028F8700 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F8704 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8704 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F8704 */ if (_t4) goto L_028F8708; else goto L_028F878C;
|
|
L_028F8708: ; // 0x28f8708
|
|
/* 028F8708 */ _t5 = cpu->r[31] + 0x00000000u;
|
|
/* 028F8708 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F870C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x0000001Du);
|
|
/* 028F8710 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8710 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F8710 */ if (_t7) goto L_028F8740; else goto L_028F8714;
|
|
L_028F8714: ; // 0x28f8714
|
|
/* 028F8714 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x0000002Fu);
|
|
/* 028F8718 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8718 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F8718 */ if (_t9) goto L_028F8754; else goto L_028F871C;
|
|
L_028F871C: ; // 0x28f871c
|
|
/* 028F871C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000031u);
|
|
/* 028F8720 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8720 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F8720 */ if (_t11) goto L_028F8768; else goto L_028F8724;
|
|
L_028F8724: ; // 0x28f8724
|
|
/* 028F8724 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000033u);
|
|
/* 028F8728 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8728 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F8728 */ if (_t13) goto L_028F877C; else goto L_028F872C;
|
|
L_028F872C: ; // 0x28f872c
|
|
/* 028F872C */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028F872C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F8730 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8730 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F8734 */ cpu->lr = cpu->r[0];
|
|
/* 028F8738 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F873C */ return;
|
|
L_028F8740: ; // 0x28f8740
|
|
/* 028F8740 */ cpu->r[9] = 0x00000021u;
|
|
/* 028F8744 */ cpu->r[10] = 0x0000041Au;
|
|
/* 028F8748 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 028F8748 */ rbrew_write32(cpu->mem, _t16, cpu->r[9]);
|
|
/* 028F874C */ _t17 = cpu->r[31] + 0x00000018u;
|
|
/* 028F874C */ rbrew_write32(cpu->mem, _t17, cpu->r[10]);
|
|
/* 028F8750 */ goto L_028F878C;
|
|
L_028F8754: ; // 0x28f8754
|
|
/* 028F8754 */ cpu->r[0] = 0x00000030u;
|
|
/* 028F8758 */ cpu->r[10] = 0x00000431u;
|
|
/* 028F875C */ _t18 = cpu->r[31] + 0x00000000u;
|
|
/* 028F875C */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028F8760 */ _t19 = cpu->r[31] + 0x00000018u;
|
|
/* 028F8760 */ rbrew_write32(cpu->mem, _t19, cpu->r[10]);
|
|
/* 028F8764 */ goto L_028F878C;
|
|
L_028F8768: ; // 0x28f8768
|
|
/* 028F8768 */ cpu->r[12] = 0x00000032u;
|
|
/* 028F876C */ cpu->r[10] = 0x00000432u;
|
|
/* 028F8770 */ _t20 = cpu->r[31] + 0x00000000u;
|
|
/* 028F8770 */ rbrew_write32(cpu->mem, _t20, cpu->r[12]);
|
|
/* 028F8774 */ _t21 = cpu->r[31] + 0x00000018u;
|
|
/* 028F8774 */ rbrew_write32(cpu->mem, _t21, cpu->r[10]);
|
|
/* 028F8778 */ goto L_028F878C;
|
|
L_028F877C: ; // 0x28f877c
|
|
/* 028F877C */ cpu->r[0] = 0x00000034u;
|
|
/* 028F8780 */ cpu->r[10] = 0x00000433u;
|
|
/* 028F8784 */ _t22 = cpu->r[31] + 0x00000000u;
|
|
/* 028F8784 */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
/* 028F8788 */ _t23 = cpu->r[31] + 0x00000018u;
|
|
/* 028F8788 */ rbrew_write32(cpu->mem, _t23, cpu->r[10]);
|
|
L_028F878C: ; // 0x28f878c
|
|
/* 028F878C */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 028F878C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F8790 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8790 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F8794 */ cpu->lr = cpu->r[0];
|
|
/* 028F8798 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F879C */ return;
|
|
}
|
|
|
|
// fn_028F87A0 @ 0x28f87a0
|
|
void Gambit_fn_028F87A0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028F87A0: ; // 0x28f87a0
|
|
/* 028F87A0 */ cpu->r[0] = cpu->lr;
|
|
/* 028F87A4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F87A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F87A4 */ cpu->r[1] = _t0;
|
|
/* 028F87A8 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F87A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F87AC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F87AC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F87B0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F87B4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F87B4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F87B8 */ _t4 = cpu->r[30] + 0x00000000u;
|
|
/* 028F87B8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F87BC */ cpu->r[31] = 0x00000000u;
|
|
/* 028F87C0 */ Gambit_fn_028F9C5C(cpu);
|
|
/* 028F87C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F87C8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F87C8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F87C8 */ if (_t6) goto L_028F87E0; else goto L_028F87CC;
|
|
L_028F87CC: ; // 0x28f87cc
|
|
/* 028F87CC */ _t7 = cpu->r[30] + 0x00000000u;
|
|
/* 028F87CC */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F87D0 */ Gambit_fn_028F9C70(cpu);
|
|
/* 028F87D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F87D8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F87D8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F87D8 */ if (_t9) goto L_028F87E0; else goto L_028F87DC;
|
|
L_028F87DC: ; // 0x28f87dc
|
|
/* 028F87DC */ cpu->r[31] = 0x00000001u;
|
|
L_028F87E0: ; // 0x28f87e0
|
|
/* 028F87E0 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028F87E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F87E4 */ cpu->r[3] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F87E8 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F87E8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F87EC */ cpu->lr = cpu->r[0];
|
|
/* 028F87F0 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028F87F0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F87F4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F87F8 */ return;
|
|
}
|
|
|
|
// fn_028F87A4 @ 0x28f87a4
|
|
void Gambit_fn_028F87A4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028F87A4: ; // 0x28f87a4
|
|
/* 028F87A4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F87A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F87A4 */ cpu->r[1] = _t0;
|
|
/* 028F87A8 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F87A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F87AC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F87AC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F87B0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F87B4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F87B4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F87B8 */ _t4 = cpu->r[30] + 0x00000000u;
|
|
/* 028F87B8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F87BC */ cpu->r[31] = 0x00000000u;
|
|
/* 028F87C0 */ Gambit_fn_028F9C5C(cpu);
|
|
/* 028F87C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F87C8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F87C8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F87C8 */ if (_t6) goto L_028F87E0; else goto L_028F87CC;
|
|
L_028F87CC: ; // 0x28f87cc
|
|
/* 028F87CC */ _t7 = cpu->r[30] + 0x00000000u;
|
|
/* 028F87CC */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F87D0 */ Gambit_fn_028F9C70(cpu);
|
|
/* 028F87D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F87D8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F87D8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F87D8 */ if (_t9) goto L_028F87E0; else goto L_028F87DC;
|
|
L_028F87DC: ; // 0x28f87dc
|
|
/* 028F87DC */ cpu->r[31] = 0x00000001u;
|
|
L_028F87E0: ; // 0x28f87e0
|
|
/* 028F87E0 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028F87E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F87E4 */ cpu->r[3] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F87E8 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F87E8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F87EC */ cpu->lr = cpu->r[0];
|
|
/* 028F87F0 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028F87F0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F87F4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F87F8 */ return;
|
|
}
|
|
|
|
// fn_028F87FC @ 0x28f87fc
|
|
void Gambit_fn_028F87FC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _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_028F87FC: ; // 0x28f87fc
|
|
/* 028F87FC */ cpu->r[0] = cpu->lr;
|
|
/* 028F8800 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F8800 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F8800 */ cpu->r[1] = _t0;
|
|
/* 028F8804 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8804 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F8808 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F880C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F880C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F8810 */ Gambit_fn_028F87A0(cpu);
|
|
/* 028F8814 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F8818 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8818 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F8818 */ if (_t4) goto L_028F881C; else goto L_028F889C;
|
|
L_028F881C: ; // 0x28f881c
|
|
/* 028F881C */ _t5 = cpu->r[31] + 0x00000000u;
|
|
/* 028F881C */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F8820 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000021u);
|
|
/* 028F8824 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8824 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F8824 */ if (_t7) goto L_028F8854; else goto L_028F8828;
|
|
L_028F8828: ; // 0x28f8828
|
|
/* 028F8828 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000030u);
|
|
/* 028F882C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F882C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F882C */ if (_t9) goto L_028F8868; else goto L_028F8830;
|
|
L_028F8830: ; // 0x28f8830
|
|
/* 028F8830 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000032u);
|
|
/* 028F8834 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8834 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F8834 */ if (_t11) goto L_028F887C; else goto L_028F8838;
|
|
L_028F8838: ; // 0x28f8838
|
|
/* 028F8838 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000034u);
|
|
/* 028F883C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F883C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F883C */ if (_t13) goto L_028F8890; else goto L_028F8840;
|
|
L_028F8840: ; // 0x28f8840
|
|
/* 028F8840 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028F8840 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F8844 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8844 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F8848 */ cpu->lr = cpu->r[0];
|
|
/* 028F884C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F8850 */ return;
|
|
L_028F8854: ; // 0x28f8854
|
|
/* 028F8854 */ cpu->r[0] = 0x0000001Du;
|
|
/* 028F8858 */ cpu->r[10] = 0x0000001Au;
|
|
/* 028F885C */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 028F885C */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 028F8860 */ _t17 = cpu->r[31] + 0x00000018u;
|
|
/* 028F8860 */ rbrew_write32(cpu->mem, _t17, cpu->r[10]);
|
|
/* 028F8864 */ goto L_028F889C;
|
|
L_028F8868: ; // 0x28f8868
|
|
/* 028F8868 */ cpu->r[0] = 0x0000002Fu;
|
|
/* 028F886C */ cpu->r[10] = 0x00000031u;
|
|
/* 028F8870 */ _t18 = cpu->r[31] + 0x00000000u;
|
|
/* 028F8870 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028F8874 */ _t19 = cpu->r[31] + 0x00000018u;
|
|
/* 028F8874 */ rbrew_write32(cpu->mem, _t19, cpu->r[10]);
|
|
/* 028F8878 */ goto L_028F889C;
|
|
L_028F887C: ; // 0x28f887c
|
|
/* 028F887C */ cpu->r[12] = 0x00000031u;
|
|
/* 028F8880 */ cpu->r[10] = 0x00000032u;
|
|
/* 028F8884 */ _t20 = cpu->r[31] + 0x00000000u;
|
|
/* 028F8884 */ rbrew_write32(cpu->mem, _t20, cpu->r[12]);
|
|
/* 028F8888 */ _t21 = cpu->r[31] + 0x00000018u;
|
|
/* 028F8888 */ rbrew_write32(cpu->mem, _t21, cpu->r[10]);
|
|
/* 028F888C */ goto L_028F889C;
|
|
L_028F8890: ; // 0x28f8890
|
|
/* 028F8890 */ cpu->r[10] = 0x00000033u;
|
|
/* 028F8894 */ _t22 = cpu->r[31] + 0x00000000u;
|
|
/* 028F8894 */ rbrew_write32(cpu->mem, _t22, cpu->r[10]);
|
|
/* 028F8898 */ _t23 = cpu->r[31] + 0x00000018u;
|
|
/* 028F8898 */ rbrew_write32(cpu->mem, _t23, cpu->r[10]);
|
|
L_028F889C: ; // 0x28f889c
|
|
/* 028F889C */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 028F889C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F88A0 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F88A0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F88A4 */ cpu->lr = cpu->r[0];
|
|
/* 028F88A8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F88AC */ return;
|
|
}
|
|
|
|
// fn_028F8800 @ 0x28f8800
|
|
void Gambit_fn_028F8800(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _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_028F8800: ; // 0x28f8800
|
|
/* 028F8800 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F8800 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F8800 */ cpu->r[1] = _t0;
|
|
/* 028F8804 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8804 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F8808 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F880C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F880C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F8810 */ Gambit_fn_028F87A0(cpu);
|
|
/* 028F8814 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F8818 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8818 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028F8818 */ if (_t4) goto L_028F881C; else goto L_028F889C;
|
|
L_028F881C: ; // 0x28f881c
|
|
/* 028F881C */ _t5 = cpu->r[31] + 0x00000000u;
|
|
/* 028F881C */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F8820 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000021u);
|
|
/* 028F8824 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8824 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F8824 */ if (_t7) goto L_028F8854; else goto L_028F8828;
|
|
L_028F8828: ; // 0x28f8828
|
|
/* 028F8828 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000030u);
|
|
/* 028F882C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F882C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F882C */ if (_t9) goto L_028F8868; else goto L_028F8830;
|
|
L_028F8830: ; // 0x28f8830
|
|
/* 028F8830 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000032u);
|
|
/* 028F8834 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8834 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F8834 */ if (_t11) goto L_028F887C; else goto L_028F8838;
|
|
L_028F8838: ; // 0x28f8838
|
|
/* 028F8838 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000034u);
|
|
/* 028F883C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F883C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F883C */ if (_t13) goto L_028F8890; else goto L_028F8840;
|
|
L_028F8840: ; // 0x28f8840
|
|
/* 028F8840 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028F8840 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F8844 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8844 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F8848 */ cpu->lr = cpu->r[0];
|
|
/* 028F884C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F8850 */ return;
|
|
L_028F8854: ; // 0x28f8854
|
|
/* 028F8854 */ cpu->r[0] = 0x0000001Du;
|
|
/* 028F8858 */ cpu->r[10] = 0x0000001Au;
|
|
/* 028F885C */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 028F885C */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 028F8860 */ _t17 = cpu->r[31] + 0x00000018u;
|
|
/* 028F8860 */ rbrew_write32(cpu->mem, _t17, cpu->r[10]);
|
|
/* 028F8864 */ goto L_028F889C;
|
|
L_028F8868: ; // 0x28f8868
|
|
/* 028F8868 */ cpu->r[0] = 0x0000002Fu;
|
|
/* 028F886C */ cpu->r[10] = 0x00000031u;
|
|
/* 028F8870 */ _t18 = cpu->r[31] + 0x00000000u;
|
|
/* 028F8870 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028F8874 */ _t19 = cpu->r[31] + 0x00000018u;
|
|
/* 028F8874 */ rbrew_write32(cpu->mem, _t19, cpu->r[10]);
|
|
/* 028F8878 */ goto L_028F889C;
|
|
L_028F887C: ; // 0x28f887c
|
|
/* 028F887C */ cpu->r[12] = 0x00000031u;
|
|
/* 028F8880 */ cpu->r[10] = 0x00000032u;
|
|
/* 028F8884 */ _t20 = cpu->r[31] + 0x00000000u;
|
|
/* 028F8884 */ rbrew_write32(cpu->mem, _t20, cpu->r[12]);
|
|
/* 028F8888 */ _t21 = cpu->r[31] + 0x00000018u;
|
|
/* 028F8888 */ rbrew_write32(cpu->mem, _t21, cpu->r[10]);
|
|
/* 028F888C */ goto L_028F889C;
|
|
L_028F8890: ; // 0x28f8890
|
|
/* 028F8890 */ cpu->r[10] = 0x00000033u;
|
|
/* 028F8894 */ _t22 = cpu->r[31] + 0x00000000u;
|
|
/* 028F8894 */ rbrew_write32(cpu->mem, _t22, cpu->r[10]);
|
|
/* 028F8898 */ _t23 = cpu->r[31] + 0x00000018u;
|
|
/* 028F8898 */ rbrew_write32(cpu->mem, _t23, cpu->r[10]);
|
|
L_028F889C: ; // 0x28f889c
|
|
/* 028F889C */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 028F889C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F88A0 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F88A0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F88A4 */ cpu->lr = cpu->r[0];
|
|
/* 028F88A8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F88AC */ return;
|
|
}
|
|
|
|
// fn_028F88B0 @ 0x28f88b0
|
|
void Gambit_fn_028F88B0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _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_028F88B0: ; // 0x28f88b0
|
|
/* 028F88B0 */ cpu->r[0] = cpu->lr;
|
|
/* 028F88B4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F88B4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F88B4 */ cpu->r[1] = _t0;
|
|
/* 028F88B8 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F88B8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F88BC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F88BC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F88C0 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F88C4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F88C8 */ cpu->r[9] = 0x0000001Du;
|
|
/* 028F88CC */ cpu->r[11] = cpu->r[31] + 0xFFFFFFFCu;
|
|
/* 028F88D0 */ cpu->r[12] = cpu->r[30];
|
|
/* 028F88D4 */ cpu->ctr = cpu->r[9];
|
|
/* 028F88D8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F88D8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
L_028F88DC: ; // 0x28f88dc
|
|
/* 028F88DC */ _t4 = cpu->r[11] + 0x00000004u;
|
|
/* 028F88DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F88DC */ cpu->r[11] = _t4;
|
|
/* 028F88E0 */ _t5 = cpu->r[12] + 0x00000004u;
|
|
/* 028F88E0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F88E0 */ cpu->r[12] = _t5;
|
|
/* 028F88E4 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F88E4 */ _t6 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F88E4 */ _t7 = _t6 >> (0x00000002u & 31u);
|
|
/* 028F88E4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F88E4 */ if (_t8) goto L_028F88DC; else goto L_028F88E8;
|
|
L_028F88E8: ; // 0x28f88e8
|
|
/* 028F88E8 */ _t9 = cpu->r[30] + 0x00000018u;
|
|
/* 028F88E8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F88EC */ Gambit_fn_02905A9C(cpu);
|
|
/* 028F88F0 */ _t10 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F88F0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F88F4 */ _t11 = cpu->r[30] + 0x00000010u;
|
|
/* 028F88F4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F88F8 */ _t12 = cpu->r[30] + 0x00000008u;
|
|
/* 028F88F8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F88FC */ _t13 = cpu->r[30] + 0x00000000u;
|
|
/* 028F88FC */ rbrew_write32(cpu->mem, _t13, cpu->r[3]);
|
|
/* 028F8900 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F8904 */ Gambit_fn_028F74CC(cpu);
|
|
/* 028F8908 */ _t14 = cpu->r[31] + 0x00000010u;
|
|
/* 028F8908 */ cpu->r[4] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F890C */ cpu->r[5] = 0x00000001u;
|
|
/* 028F8910 */ Gambit_fn_028F760C(cpu);
|
|
/* 028F8914 */ _t15 = cpu->r[30] + 0x00000000u;
|
|
/* 028F8914 */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F8918 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F891C */ Gambit_fn_028F9CAC(cpu);
|
|
/* 028F8920 */ _t16 = cpu->r[30] + 0x00000078u;
|
|
/* 028F8920 */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[3]);
|
|
/* 028F8924 */ _t17 = cpu->r[30] + 0x00000000u;
|
|
/* 028F8924 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F8928 */ cpu->r[4] = 0x00000001u;
|
|
/* 028F892C */ Gambit_fn_028F9CAC(cpu);
|
|
/* 028F8930 */ _t18 = cpu->r[30] + 0x00000079u;
|
|
/* 028F8930 */ rbrew_write8(cpu->mem, _t18, (uint8_t)cpu->r[3]);
|
|
/* 028F8934 */ _t19 = cpu->r[30] + 0x00000000u;
|
|
/* 028F8934 */ cpu->r[3] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F8938 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F893C */ Gambit_fn_028F9CAC(cpu);
|
|
/* 028F8940 */ _t20 = cpu->r[30] + 0x0000007Au;
|
|
/* 028F8940 */ rbrew_write8(cpu->mem, _t20, (uint8_t)cpu->r[3]);
|
|
/* 028F8944 */ _t21 = cpu->r[30] + 0x00000000u;
|
|
/* 028F8944 */ cpu->r[3] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F8948 */ cpu->r[4] = 0x00000003u;
|
|
/* 028F894C */ Gambit_fn_028F9CAC(cpu);
|
|
/* 028F8950 */ _t22 = cpu->r[30] + 0x0000007Bu;
|
|
/* 028F8950 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[3]);
|
|
/* 028F8954 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028F8954 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F8958 */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 028F8958 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F895C */ cpu->lr = cpu->r[0];
|
|
/* 028F8960 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8960 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F8964 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F8968 */ return;
|
|
}
|
|
|
|
// fn_028F88B4 @ 0x28f88b4
|
|
void Gambit_fn_028F88B4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _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_028F88B4: ; // 0x28f88b4
|
|
/* 028F88B4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F88B4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F88B4 */ cpu->r[1] = _t0;
|
|
/* 028F88B8 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028F88B8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F88BC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F88BC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F88C0 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F88C4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F88C8 */ cpu->r[9] = 0x0000001Du;
|
|
/* 028F88CC */ cpu->r[11] = cpu->r[31] + 0xFFFFFFFCu;
|
|
/* 028F88D0 */ cpu->r[12] = cpu->r[30];
|
|
/* 028F88D4 */ cpu->ctr = cpu->r[9];
|
|
/* 028F88D8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F88D8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
L_028F88DC: ; // 0x28f88dc
|
|
/* 028F88DC */ _t4 = cpu->r[11] + 0x00000004u;
|
|
/* 028F88DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F88DC */ cpu->r[11] = _t4;
|
|
/* 028F88E0 */ _t5 = cpu->r[12] + 0x00000004u;
|
|
/* 028F88E0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F88E0 */ cpu->r[12] = _t5;
|
|
/* 028F88E4 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F88E4 */ _t6 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F88E4 */ _t7 = _t6 >> (0x00000002u & 31u);
|
|
/* 028F88E4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F88E4 */ if (_t8) goto L_028F88DC; else goto L_028F88E8;
|
|
L_028F88E8: ; // 0x28f88e8
|
|
/* 028F88E8 */ _t9 = cpu->r[30] + 0x00000018u;
|
|
/* 028F88E8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F88EC */ Gambit_fn_02905A9C(cpu);
|
|
/* 028F88F0 */ _t10 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F88F0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F88F4 */ _t11 = cpu->r[30] + 0x00000010u;
|
|
/* 028F88F4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F88F8 */ _t12 = cpu->r[30] + 0x00000008u;
|
|
/* 028F88F8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F88FC */ _t13 = cpu->r[30] + 0x00000000u;
|
|
/* 028F88FC */ rbrew_write32(cpu->mem, _t13, cpu->r[3]);
|
|
/* 028F8900 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F8904 */ Gambit_fn_028F74CC(cpu);
|
|
/* 028F8908 */ _t14 = cpu->r[31] + 0x00000010u;
|
|
/* 028F8908 */ cpu->r[4] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F890C */ cpu->r[5] = 0x00000001u;
|
|
/* 028F8910 */ Gambit_fn_028F760C(cpu);
|
|
/* 028F8914 */ _t15 = cpu->r[30] + 0x00000000u;
|
|
/* 028F8914 */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F8918 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F891C */ Gambit_fn_028F9CAC(cpu);
|
|
/* 028F8920 */ _t16 = cpu->r[30] + 0x00000078u;
|
|
/* 028F8920 */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[3]);
|
|
/* 028F8924 */ _t17 = cpu->r[30] + 0x00000000u;
|
|
/* 028F8924 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028F8928 */ cpu->r[4] = 0x00000001u;
|
|
/* 028F892C */ Gambit_fn_028F9CAC(cpu);
|
|
/* 028F8930 */ _t18 = cpu->r[30] + 0x00000079u;
|
|
/* 028F8930 */ rbrew_write8(cpu->mem, _t18, (uint8_t)cpu->r[3]);
|
|
/* 028F8934 */ _t19 = cpu->r[30] + 0x00000000u;
|
|
/* 028F8934 */ cpu->r[3] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F8938 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F893C */ Gambit_fn_028F9CAC(cpu);
|
|
/* 028F8940 */ _t20 = cpu->r[30] + 0x0000007Au;
|
|
/* 028F8940 */ rbrew_write8(cpu->mem, _t20, (uint8_t)cpu->r[3]);
|
|
/* 028F8944 */ _t21 = cpu->r[30] + 0x00000000u;
|
|
/* 028F8944 */ cpu->r[3] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F8948 */ cpu->r[4] = 0x00000003u;
|
|
/* 028F894C */ Gambit_fn_028F9CAC(cpu);
|
|
/* 028F8950 */ _t22 = cpu->r[30] + 0x0000007Bu;
|
|
/* 028F8950 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[3]);
|
|
/* 028F8954 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028F8954 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F8958 */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 028F8958 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F895C */ cpu->lr = cpu->r[0];
|
|
/* 028F8960 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8960 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F8964 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F8968 */ return;
|
|
}
|
|
|
|
// fn_028F896C @ 0x28f896c
|
|
void Gambit_fn_028F896C(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_028F896C: ; // 0x28f896c
|
|
/* 028F896C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F8970 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8970 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F8970 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F8970 */ goto L_028F8974;
|
|
L_028F8974: ; // 0x28f8974
|
|
/* 028F8974 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F8974 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F8978 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8978 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F8978 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F8978 */ goto L_028F897C;
|
|
L_028F897C: ; // 0x28f897c
|
|
/* 028F897C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028F8980 @ 0x28f8980
|
|
void Gambit_fn_028F8980(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028F8980: ; // 0x28f8980
|
|
/* 028F8980 */ cpu->r[0] = cpu->lr;
|
|
/* 028F8984 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F8984 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F8984 */ cpu->r[1] = _t0;
|
|
/* 028F8988 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8988 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F898C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F898C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F8990 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F8990 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F8994 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F8994 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F8998 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8998 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F8998 */ if (_t5) goto L_028F899C; else goto L_028F89AC;
|
|
L_028F899C: ; // 0x28f899c
|
|
/* 028F899C */ cpu->r[3] = 0x00000150u;
|
|
/* 028F89A0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F89A4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F89A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F89A8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F89A8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F89A8 */ if (_t7) goto L_028F89D8; else goto L_028F89AC;
|
|
L_028F89AC: ; // 0x28f89ac
|
|
/* 028F89AC */ cpu->r[30] = 0x00000000u;
|
|
/* 028F89B0 */ cpu->r[10] = 0x0000001Du;
|
|
/* 028F89B4 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028F89B4 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 028F89B8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F89BC */ _t9 = cpu->r[31] + 0x00000004u;
|
|
/* 028F89BC */ rbrew_write32(cpu->mem, _t9, cpu->r[10]);
|
|
/* 028F89C0 */ cpu->r[0] = cpu->r[0] + 0xFFFFCF84u;
|
|
/* 028F89C4 */ _t10 = cpu->r[31] + 0x00000008u;
|
|
/* 028F89C4 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 028F89C8 */ cpu->r[3] = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F89CC */ _t11 = cpu->r[31] + 0x0000014Cu;
|
|
/* 028F89CC */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028F89D0 */ Gambit_fn_028F18E8(cpu);
|
|
/* 028F89D4 */ _t12 = cpu->r[31] + 0x00000148u;
|
|
/* 028F89D4 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[30]);
|
|
L_028F89D8: ; // 0x28f89d8
|
|
/* 028F89D8 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028F89D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F89DC */ cpu->r[3] = cpu->r[31];
|
|
/* 028F89E0 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F89E0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F89E4 */ cpu->lr = cpu->r[0];
|
|
/* 028F89E8 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028F89E8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F89EC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F89F0 */ return;
|
|
}
|
|
|
|
// fn_028F8984 @ 0x28f8984
|
|
void Gambit_fn_028F8984(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028F8984: ; // 0x28f8984
|
|
/* 028F8984 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F8984 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F8984 */ cpu->r[1] = _t0;
|
|
/* 028F8988 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8988 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F898C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F898C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F8990 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F8990 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F8994 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F8994 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F8998 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8998 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F8998 */ if (_t5) goto L_028F899C; else goto L_028F89AC;
|
|
L_028F899C: ; // 0x28f899c
|
|
/* 028F899C */ cpu->r[3] = 0x00000150u;
|
|
/* 028F89A0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F89A4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F89A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F89A8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F89A8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F89A8 */ if (_t7) goto L_028F89D8; else goto L_028F89AC;
|
|
L_028F89AC: ; // 0x28f89ac
|
|
/* 028F89AC */ cpu->r[30] = 0x00000000u;
|
|
/* 028F89B0 */ cpu->r[10] = 0x0000001Du;
|
|
/* 028F89B4 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028F89B4 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 028F89B8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028F89BC */ _t9 = cpu->r[31] + 0x00000004u;
|
|
/* 028F89BC */ rbrew_write32(cpu->mem, _t9, cpu->r[10]);
|
|
/* 028F89C0 */ cpu->r[0] = cpu->r[0] + 0xFFFFCF84u;
|
|
/* 028F89C4 */ _t10 = cpu->r[31] + 0x00000008u;
|
|
/* 028F89C4 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 028F89C8 */ cpu->r[3] = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F89CC */ _t11 = cpu->r[31] + 0x0000014Cu;
|
|
/* 028F89CC */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028F89D0 */ Gambit_fn_028F18E8(cpu);
|
|
/* 028F89D4 */ _t12 = cpu->r[31] + 0x00000148u;
|
|
/* 028F89D4 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[30]);
|
|
L_028F89D8: ; // 0x28f89d8
|
|
/* 028F89D8 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028F89D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F89DC */ cpu->r[3] = cpu->r[31];
|
|
/* 028F89E0 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F89E0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F89E4 */ cpu->lr = cpu->r[0];
|
|
/* 028F89E8 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028F89E8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F89EC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F89F0 */ return;
|
|
}
|
|
|
|
// fn_028F89F4 @ 0x28f89f4
|
|
void Gambit_fn_028F89F4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F89F4: ; // 0x28f89f4
|
|
/* 028F89F4 */ _t0 = cpu->r[1] + 0xFFFFFEF8u;
|
|
/* 028F89F4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F89F4 */ cpu->r[1] = _t0;
|
|
/* 028F89F8 */ cpu->r[0] = cpu->lr;
|
|
/* 028F89FC */ /* nop */
|
|
/* 028F8A00 */ cpu->r[30] = 0x00000001u;
|
|
/* 028F8A04 */ _t1 = cpu->r[1] + 0x0000010Cu;
|
|
/* 028F8A04 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F8A08 */ cpu->r[29] = cpu->r[5];
|
|
/* 028F8A0C */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 028F8A0C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F8A10 */ cpu->r[28] = cpu->r[4];
|
|
/* 028F8A14 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F8A14 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028F8A18 */ cpu->r[31] = cpu->r[9];
|
|
/* 028F8A1C */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 028F8A1C */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028F8A20 */ cpu->r[27] = cpu->r[3];
|
|
/* 028F8A24 */ _t5 = cpu->r[1] + 0x00000010u;
|
|
/* 028F8A24 */ rbrew_write32(cpu->mem, _t5, cpu->r[8]);
|
|
/* 028F8A28 */ cpu->r[3] = cpu->r[6];
|
|
/* 028F8A2C */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8A2C */ rbrew_write32(cpu->mem, _t6, cpu->r[7]);
|
|
/* 028F8A30 */ Gambit_fn_02905AD0(cpu);
|
|
/* 028F8A34 */ cpu->r[12] = 0x00000000u;
|
|
/* 028F8A38 */ _t7 = cpu->r[1] + 0x00000024u;
|
|
/* 028F8A38 */ rbrew_write32(cpu->mem, _t7, cpu->r[30]);
|
|
/* 028F8A3C */ _t8 = cpu->r[1] + 0x00000020u;
|
|
/* 028F8A3C */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028F8A40 */ _t9 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F8A40 */ rbrew_write32(cpu->mem, _t9, cpu->r[3]);
|
|
/* 028F8A44 */ _t10 = cpu->r[1] + 0x00000034u;
|
|
/* 028F8A44 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028F8A48 */ _t11 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F8A48 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
/* 028F8A4C */ _t12 = cpu->r[1] + 0x00000038u;
|
|
/* 028F8A4C */ rbrew_write32(cpu->mem, _t12, cpu->r[12]);
|
|
/* 028F8A50 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F8A54 */ _t13 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F8A54 */ rbrew_write32(cpu->mem, _t13, cpu->r[12]);
|
|
/* 028F8A58 */ rbrew_dispatch(cpu, 0x02d05878u);
|
|
/* 028F8A5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F8A60 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8A60 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028F8A60 */ if (_t15) goto L_028F8A64; else goto L_028F8A70;
|
|
L_028F8A64: ; // 0x28f8a64
|
|
/* 028F8A64 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028F8A68 */ _t16 = cpu->r[12] + 0xFFFFA304u;
|
|
/* 028F8A68 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F8A6C */ _t17 = cpu->r[12] + 0x00000014u;
|
|
/* 028F8A6C */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
L_028F8A70: ; // 0x28f8a70
|
|
/* 028F8A70 */ _t18 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F8A70 */ cpu->r[9] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F8A74 */ _t19 = cpu->r[9] + 0x00000034u;
|
|
/* 028F8A74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F8A78 */ _t20 = cpu->r[1] + 0x00000040u;
|
|
/* 028F8A78 */ cpu->r[5] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F8A7C */ cpu->ctr = cpu->r[0];
|
|
/* 028F8A80 */ _t21 = cpu->r[1] + 0x00000028u;
|
|
/* 028F8A80 */ cpu->r[4] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F8A84 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F8A88 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F8A8C */ cpu->r[5] = 0x0000001Du;
|
|
/* 028F8A90 */ cpu->r[11] = cpu->r[1] + 0x00000004u;
|
|
/* 028F8A94 */ cpu->r[12] = cpu->r[1] + 0x00000078u;
|
|
/* 028F8A98 */ cpu->ctr = cpu->r[5];
|
|
/* 028F8A9C */ _t22 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F8A9C */ rbrew_write32(cpu->mem, _t22, cpu->r[3]);
|
|
L_028F8AA0: ; // 0x28f8aa0
|
|
/* 028F8AA0 */ _t23 = cpu->r[11] + 0x00000004u;
|
|
/* 028F8AA0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F8AA0 */ cpu->r[11] = _t23;
|
|
/* 028F8AA4 */ _t24 = cpu->r[12] + 0x00000004u;
|
|
/* 028F8AA4 */ rbrew_write32(cpu->mem, _t24, cpu->r[6]);
|
|
/* 028F8AA4 */ cpu->r[12] = _t24;
|
|
/* 028F8AA8 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F8AA8 */ _t25 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F8AA8 */ _t26 = _t25 >> (0x00000002u & 31u);
|
|
/* 028F8AA8 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028F8AA8 */ if (_t27) goto L_028F8AA0; else goto L_028F8AAC;
|
|
L_028F8AAC: ; // 0x28f8aac
|
|
/* 028F8AAC */ _t28 = cpu->r[1] + 0x000000A0u;
|
|
/* 028F8AAC */ rbrew_write32(cpu->mem, _t28, cpu->r[28]);
|
|
/* 028F8AB0 */ cpu->r[0] = 0x00000010u;
|
|
/* 028F8AB4 */ cpu->r[3] = cpu->r[1] + 0x0000007Cu;
|
|
/* 028F8AB8 */ _t29 = cpu->r[1] + 0x000000ACu;
|
|
/* 028F8AB8 */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 028F8ABC */ rbrew_dispatch(cpu, 0x02d05878u);
|
|
/* 028F8AC0 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F8AC4 */ cpu->r[3] = cpu->r[1] + 0x0000007Cu;
|
|
/* 028F8AC8 */ cpu->r[7] = cpu->r[4];
|
|
/* 028F8ACC */ cpu->r[5] = cpu->r[4];
|
|
/* 028F8AD0 */ cpu->r[6] = cpu->r[1] + 0x00000008u;
|
|
/* 028F8AD4 */ cpu->r[8] = cpu->r[7];
|
|
/* 028F8AD8 */ rbrew_dispatch(cpu, 0x02d058c8u);
|
|
/* 028F8ADC */ _t30 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F8ADC */ cpu->r[4] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F8AE0 */ cpu->r[3] = cpu->r[28];
|
|
/* 028F8AE4 */ cpu->r[5] = cpu->r[29];
|
|
/* 028F8AE8 */ cpu->r[6] = 0x00000000u;
|
|
/* 028F8AEC */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028F8AF0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028F8AF4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028F8AF8 */ rbrew_dispatch(cpu, 0x02d09328u);
|
|
/* 028F8AFC */ _t31 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F8AFC */ cpu->r[8] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F8B00 */ _t32 = cpu->r[8] + 0x0000003Cu;
|
|
/* 028F8B00 */ cpu->r[9] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F8B04 */ _t33 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F8B04 */ cpu->r[4] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F8B08 */ cpu->ctr = cpu->r[9];
|
|
/* 028F8B0C */ cpu->r[3] = cpu->r[31];
|
|
/* 028F8B10 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F8B14 */ _t34 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F8B14 */ rbrew_write32(cpu->mem, _t34, cpu->r[28]);
|
|
/* 028F8B18 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F8B1C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028F8B20 */ Gambit_fn_02905B14(cpu);
|
|
/* 028F8B24 */ /* nop */
|
|
/* 028F8B28 */ _t35 = cpu->r[1] + 0x0000010Cu;
|
|
/* 028F8B28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F8B2C */ cpu->lr = cpu->r[0];
|
|
/* 028F8B30 */ cpu->r[1] = cpu->r[1] + 0x00000108u;
|
|
/* 028F8B34 */ return;
|
|
}
|
|
|
|
// fn_028F8B38 @ 0x28f8b38
|
|
void Gambit_fn_028F8B38(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F8B38: ; // 0x28f8b38
|
|
/* 028F8B38 */ _t0 = cpu->r[1] + 0xFFFFFEF8u;
|
|
/* 028F8B38 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F8B38 */ cpu->r[1] = _t0;
|
|
/* 028F8B3C */ cpu->r[0] = cpu->lr;
|
|
/* 028F8B40 */ /* nop */
|
|
/* 028F8B44 */ cpu->r[30] = cpu->r[5];
|
|
/* 028F8B48 */ cpu->r[28] = cpu->r[4];
|
|
/* 028F8B4C */ cpu->r[11] = cpu->r[1] + 0x00000078u;
|
|
/* 028F8B50 */ _t1 = cpu->r[1] + 0x0000010Cu;
|
|
/* 028F8B50 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F8B54 */ cpu->r[0] = 0x0000001Du;
|
|
/* 028F8B58 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F8B5C */ cpu->ctr = cpu->r[0];
|
|
/* 028F8B60 */ cpu->r[9] = cpu->r[29];
|
|
L_028F8B64: ; // 0x28f8b64
|
|
/* 028F8B64 */ _t2 = cpu->r[9] + 0x00000004u;
|
|
/* 028F8B64 */ cpu->r[5] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028F8B64 */ cpu->r[9] = _t2;
|
|
/* 028F8B68 */ _t3 = cpu->r[11] + 0x00000004u;
|
|
/* 028F8B68 */ rbrew_write32(cpu->mem, _t3, cpu->r[5]);
|
|
/* 028F8B68 */ cpu->r[11] = _t3;
|
|
/* 028F8B6C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F8B6C */ _t4 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F8B6C */ _t5 = _t4 >> (0x00000002u & 31u);
|
|
/* 028F8B6C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F8B6C */ if (_t6) goto L_028F8B64; else goto L_028F8B70;
|
|
L_028F8B70: ; // 0x28f8b70
|
|
/* 028F8B70 */ cpu->r[6] = 0x00000000u;
|
|
/* 028F8B74 */ cpu->r[9] = 0x0000000Du;
|
|
/* 028F8B78 */ _t7 = cpu->r[1] + 0x000000A0u;
|
|
/* 028F8B78 */ rbrew_write32(cpu->mem, _t7, cpu->r[6]);
|
|
/* 028F8B7C */ _t8 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028F8B7C */ rbrew_write32(cpu->mem, _t8, cpu->r[9]);
|
|
/* 028F8B80 */ cpu->r[3] = cpu->r[1] + 0x0000007Cu;
|
|
/* 028F8B84 */ _t9 = cpu->r[1] + 0x000000A8u;
|
|
/* 028F8B84 */ rbrew_write32(cpu->mem, _t9, cpu->r[6]);
|
|
/* 028F8B88 */ rbrew_dispatch(cpu, 0x02d05878u);
|
|
/* 028F8B8C */ cpu->r[27] = 0x101D0000u;
|
|
/* 028F8B90 */ _t10 = cpu->r[27] + 0xFFFFA304u;
|
|
/* 028F8B90 */ cpu->r[8] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F8B94 */ _t11 = cpu->r[8] + 0x00000014u;
|
|
/* 028F8B94 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F8B98 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F8B98 */ cpu->r[10] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F8B9C */ _t13 = cpu->r[10] + 0x00000034u;
|
|
/* 028F8B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F8BA0 */ _t14 = cpu->r[1] + 0x000000B4u;
|
|
/* 028F8BA0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F8BA4 */ cpu->ctr = cpu->r[0];
|
|
/* 028F8BA8 */ _t15 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028F8BA8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028F8BAC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F8BB0 */ _t16 = cpu->r[27] + 0xFFFFA304u;
|
|
/* 028F8BB0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028F8BB0 */ cpu->r[27] = _t16;
|
|
/* 028F8BB4 */ _t17 = cpu->r[1] + 0x000000A0u;
|
|
/* 028F8BB4 */ rbrew_write32(cpu->mem, _t17, cpu->r[3]);
|
|
/* 028F8BB8 */ _t18 = cpu->r[12] + 0x00000014u;
|
|
/* 028F8BB8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F8BBC */ _t19 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F8BBC */ cpu->r[8] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F8BC0 */ _t20 = cpu->r[8] + 0x00000034u;
|
|
/* 028F8BC0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F8BC4 */ _t21 = cpu->r[1] + 0x000000B4u;
|
|
/* 028F8BC4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F8BC8 */ cpu->ctr = cpu->r[9];
|
|
/* 028F8BCC */ _t22 = cpu->r[1] + 0x000000A4u;
|
|
/* 028F8BCC */ cpu->r[4] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F8BD0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F8BD4 */ cpu->r[12] = 0x0000001Du;
|
|
/* 028F8BD8 */ cpu->r[10] = cpu->r[29];
|
|
/* 028F8BDC */ cpu->r[11] = cpu->r[1] + 0x00000004u;
|
|
/* 028F8BE0 */ cpu->ctr = cpu->r[12];
|
|
/* 028F8BE4 */ _t23 = cpu->r[1] + 0x000000A8u;
|
|
/* 028F8BE4 */ rbrew_write32(cpu->mem, _t23, cpu->r[3]);
|
|
L_028F8BE8: ; // 0x28f8be8
|
|
/* 028F8BE8 */ _t24 = cpu->r[10] + 0x00000004u;
|
|
/* 028F8BE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F8BE8 */ cpu->r[10] = _t24;
|
|
/* 028F8BEC */ _t25 = cpu->r[11] + 0x00000004u;
|
|
/* 028F8BEC */ rbrew_write32(cpu->mem, _t25, cpu->r[0]);
|
|
/* 028F8BEC */ cpu->r[11] = _t25;
|
|
/* 028F8BF0 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F8BF0 */ _t26 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F8BF0 */ _t27 = _t26 >> (0x00000002u & 31u);
|
|
/* 028F8BF0 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F8BF0 */ if (_t28) goto L_028F8BE8; else goto L_028F8BF4;
|
|
L_028F8BF4: ; // 0x28f8bf4
|
|
/* 028F8BF4 */ cpu->r[5] = 0x00000010u;
|
|
/* 028F8BF8 */ cpu->r[6] = 0x00000000u;
|
|
/* 028F8BFC */ _t29 = cpu->r[1] + 0x00000038u;
|
|
/* 028F8BFC */ rbrew_write32(cpu->mem, _t29, cpu->r[5]);
|
|
/* 028F8C00 */ cpu->r[8] = 0x0000000Du;
|
|
/* 028F8C04 */ _t30 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F8C04 */ rbrew_write32(cpu->mem, _t30, cpu->r[6]);
|
|
/* 028F8C08 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F8C0C */ _t31 = cpu->r[1] + 0x00000034u;
|
|
/* 028F8C0C */ rbrew_write32(cpu->mem, _t31, cpu->r[6]);
|
|
/* 028F8C10 */ _t32 = cpu->r[1] + 0x00000018u;
|
|
/* 028F8C10 */ rbrew_write32(cpu->mem, _t32, cpu->r[8]);
|
|
/* 028F8C14 */ rbrew_dispatch(cpu, 0x02d05878u);
|
|
/* 028F8C18 */ _t33 = cpu->r[27] + 0x00000000u;
|
|
/* 028F8C18 */ cpu->r[9] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F8C1C */ _t34 = cpu->r[9] + 0x00000014u;
|
|
/* 028F8C1C */ cpu->r[3] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F8C20 */ _t35 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F8C20 */ cpu->r[10] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F8C24 */ _t36 = cpu->r[10] + 0x00000034u;
|
|
/* 028F8C24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F8C28 */ _t37 = cpu->r[1] + 0x00000028u;
|
|
/* 028F8C28 */ cpu->r[4] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F8C2C */ cpu->ctr = cpu->r[0];
|
|
/* 028F8C30 */ cpu->r[5] = 0x00002000u;
|
|
/* 028F8C34 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F8C38 */ _t38 = cpu->r[27] + 0x00000000u;
|
|
/* 028F8C38 */ cpu->r[12] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F8C3C */ _t39 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F8C3C */ rbrew_write32(cpu->mem, _t39, cpu->r[3]);
|
|
/* 028F8C40 */ _t40 = cpu->r[12] + 0x00000014u;
|
|
/* 028F8C40 */ cpu->r[3] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028F8C44 */ _t41 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F8C44 */ cpu->r[5] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F8C48 */ _t42 = cpu->r[5] + 0x00000034u;
|
|
/* 028F8C48 */ cpu->r[6] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F8C4C */ _t43 = cpu->r[1] + 0x00000030u;
|
|
/* 028F8C4C */ cpu->r[4] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028F8C50 */ cpu->ctr = cpu->r[6];
|
|
/* 028F8C54 */ cpu->r[5] = 0x00002000u;
|
|
/* 028F8C58 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F8C5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F8C60 */ _t44 = cpu->r[1] + 0x00000034u;
|
|
/* 028F8C60 */ rbrew_write32(cpu->mem, _t44, cpu->r[3]);
|
|
/* 028F8C64 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8C64 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028F8C64 */ if (_t46) goto L_028F8C68; else goto L_028F8C98;
|
|
L_028F8C68: ; // 0x28f8c68
|
|
/* 028F8C68 */ _t47 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F8C68 */ cpu->r[3] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028F8C6C */ cpu->r[31] = 0x00000000u;
|
|
/* 028F8C70 */ _t48 = cpu->r[1] + 0x00000028u;
|
|
/* 028F8C70 */ cpu->r[5] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028F8C74 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F8C78 */ cpu->r[6] = cpu->r[31];
|
|
/* 028F8C7C */ _t49 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028F8C7C */ cpu->r[26] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028F8C80 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028F8C84 */ _t50 = cpu->r[1] + 0x00000014u;
|
|
/* 028F8C84 */ cpu->r[7] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F8C88 */ cpu->r[28] = cpu->r[31];
|
|
/* 028F8C8C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[7]);
|
|
/* 028F8C90 */ _t51 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F8C90 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028F8C90 */ if (_t52) goto L_028F8C94; else goto L_028F8D80;
|
|
L_028F8C94: ; // 0x28f8c94
|
|
/* 028F8C94 */ goto L_028F8D54;
|
|
L_028F8C98: ; // 0x28f8c98
|
|
/* 028F8C98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000001u);
|
|
/* 028F8C9C */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8C9C */ _t54 = _t53 & 0x00000001u;
|
|
/* 028F8C9C */ if (_t54) goto L_028F8CA0; else goto L_028F8CCC;
|
|
L_028F8CA0: ; // 0x28f8ca0
|
|
/* 028F8CA0 */ cpu->r[31] = 0x00000000u;
|
|
/* 028F8CA4 */ _t55 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F8CA4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028F8CA8 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F8CAC */ cpu->r[6] = cpu->r[31];
|
|
/* 028F8CB0 */ _t56 = cpu->r[1] + 0x000000C0u;
|
|
/* 028F8CB0 */ cpu->r[26] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028F8CB4 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028F8CB8 */ _t57 = cpu->r[1] + 0x00000014u;
|
|
/* 028F8CB8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028F8CBC */ cpu->r[28] = cpu->r[31];
|
|
/* 028F8CC0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[7]);
|
|
/* 028F8CC4 */ _t58 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F8CC4 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028F8CC4 */ if (_t59) goto L_028F8CC8; else goto L_028F8D80;
|
|
L_028F8CC8: ; // 0x28f8cc8
|
|
/* 028F8CC8 */ goto L_028F8D54;
|
|
L_028F8CCC: ; // 0x28f8ccc
|
|
/* 028F8CCC */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F8CD0 */ _t60 = cpu->r[1] + 0x00000018u;
|
|
/* 028F8CD0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028F8CD4 */ cpu->r[8] = cpu->r[1] + cpu->r[0];
|
|
/* 028F8CD8 */ cpu->r[12] = cpu->r[1] + 0x00000048u;
|
|
/* 028F8CDC */ _t61 = cpu->r[8] + 0x00000044u;
|
|
/* 028F8CDC */ cpu->r[7] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028F8CE0 */ cpu->r[9] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 028F8CE4 */ _t62 = cpu->r[8] + 0x000000B8u;
|
|
/* 028F8CE4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028F8CE8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[9]);
|
|
/* 028F8CEC */ cpu->r[3] = cpu->r[3] + cpu->r[7];
|
|
/* 028F8CF0 */ cpu->r[10] = cpu->r[1] + 0x000000BCu;
|
|
/* 028F8CF4 */ _t63 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8CF4 */ _t64 = _t63 & 0x00000001u;
|
|
/* 028F8CF4 */ if (_t64) goto L_028F8CF8; else goto L_028F8D28;
|
|
L_028F8CF8: ; // 0x28f8cf8
|
|
/* 028F8CF8 */ _t65 = cpu->r[1] + 0x00000030u;
|
|
/* 028F8CF8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028F8CFC */ cpu->r[6] = 0x00000000u;
|
|
/* 028F8D00 */ _t66 = cpu->r[1] + 0x000000A4u;
|
|
/* 028F8D00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028F8D04 */ cpu->r[5] = cpu->r[12] - cpu->r[7];
|
|
/* 028F8D08 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F8D0C */ cpu->r[26] = cpu->r[0] - cpu->r[31];
|
|
/* 028F8D10 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028F8D14 */ _t67 = cpu->r[1] + 0x00000014u;
|
|
/* 028F8D14 */ cpu->r[7] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028F8D18 */ cpu->r[28] = 0x00000000u;
|
|
/* 028F8D1C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[7]);
|
|
/* 028F8D20 */ _t68 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F8D20 */ _t69 = _t68 & 0x00000001u;
|
|
/* 028F8D20 */ if (_t69) goto L_028F8D24; else goto L_028F8D80;
|
|
L_028F8D24: ; // 0x28f8d24
|
|
/* 028F8D24 */ goto L_028F8D54;
|
|
L_028F8D28: ; // 0x28f8d28
|
|
/* 028F8D28 */ _t70 = cpu->r[12] + cpu->r[0];
|
|
/* 028F8D28 */ cpu->r[5] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028F8D2C */ _t71 = cpu->r[10] + cpu->r[0];
|
|
/* 028F8D2C */ cpu->r[6] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028F8D30 */ cpu->r[5] = cpu->r[5] - cpu->r[7];
|
|
/* 028F8D34 */ cpu->r[4] = cpu->r[28];
|
|
/* 028F8D38 */ cpu->r[26] = cpu->r[6] - cpu->r[31];
|
|
/* 028F8D3C */ cpu->r[6] = 0x00000000u;
|
|
/* 028F8D40 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028F8D44 */ _t72 = cpu->r[1] + 0x00000014u;
|
|
/* 028F8D44 */ cpu->r[7] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028F8D48 */ cpu->r[28] = 0x00000000u;
|
|
/* 028F8D4C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[7]);
|
|
/* 028F8D50 */ _t73 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F8D50 */ _t74 = _t73 & 0x00000001u;
|
|
/* 028F8D50 */ if (_t74) goto L_028F8D54; else goto L_028F8D80;
|
|
L_028F8D54: ; // 0x28f8d54
|
|
/* 028F8D54 */ cpu->r[7] = cpu->r[30];
|
|
/* 028F8D58 */ cpu->r[8] = cpu->r[28];
|
|
/* 028F8D5C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F8D60 */ cpu->r[6] = cpu->r[1] + 0x0000007Cu;
|
|
/* 028F8D64 */ cpu->r[5] = cpu->r[28];
|
|
/* 028F8D68 */ cpu->r[4] = cpu->r[30];
|
|
/* 028F8D6C */ rbrew_dispatch(cpu, 0x02d058c8u);
|
|
/* 028F8D70 */ _t75 = cpu->r[1] + 0x00000014u;
|
|
/* 028F8D70 */ cpu->r[8] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028F8D74 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028F8D78 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[8]);
|
|
/* 028F8D7C */ _t76 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F8D7C */ _t77 = _t76 & 0x00000001u;
|
|
/* 028F8D7C */ if (_t77) goto L_028F8D54; else goto L_028F8D80;
|
|
L_028F8D80: ; // 0x28f8d80
|
|
/* 028F8D80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F8D84 */ cpu->r[6] = 0x00000000u;
|
|
/* 028F8D88 */ cpu->r[5] = cpu->r[26];
|
|
/* 028F8D8C */ _t78 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8D8C */ _t79 = _t78 & 0x00000001u;
|
|
/* 028F8D8C */ if (_t79) goto L_028F8D90; else goto L_028F8E24;
|
|
L_028F8D90: ; // 0x28f8d90
|
|
/* 028F8D90 */ _t80 = cpu->r[29] + 0x00000028u;
|
|
/* 028F8D90 */ cpu->r[9] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028F8D94 */ _t81 = cpu->r[1] + 0x000000A0u;
|
|
/* 028F8D94 */ cpu->r[10] = rbrew_read32(cpu->mem, _t81);
|
|
/* 028F8D98 */ cpu->r[3] = cpu->r[9] + cpu->r[31];
|
|
/* 028F8D9C */ cpu->r[4] = cpu->r[10] + cpu->r[31];
|
|
/* 028F8DA0 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028F8DA4 */ _t82 = cpu->r[29] + 0x00000024u;
|
|
/* 028F8DA4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t82);
|
|
/* 028F8DA8 */ _t83 = cpu->r[29] + 0x00000028u;
|
|
/* 028F8DA8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028F8DAC */ rbrew_dispatch(cpu, 0x02d09328u);
|
|
/* 028F8DB0 */ _t84 = cpu->r[27] + 0x00000000u;
|
|
/* 028F8DB0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t84);
|
|
/* 028F8DB4 */ _t85 = cpu->r[5] + 0x00000014u;
|
|
/* 028F8DB4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t85);
|
|
/* 028F8DB8 */ _t86 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F8DB8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t86);
|
|
/* 028F8DBC */ _t87 = cpu->r[6] + 0x0000003Cu;
|
|
/* 028F8DBC */ cpu->r[8] = rbrew_read32(cpu->mem, _t87);
|
|
/* 028F8DC0 */ cpu->ctr = cpu->r[8];
|
|
/* 028F8DC4 */ _t88 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F8DC4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t88);
|
|
/* 028F8DC8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F8DCC */ _t89 = cpu->r[27] + 0x00000000u;
|
|
/* 028F8DCC */ cpu->r[9] = rbrew_read32(cpu->mem, _t89);
|
|
/* 028F8DD0 */ _t90 = cpu->r[9] + 0x00000014u;
|
|
/* 028F8DD0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t90);
|
|
/* 028F8DD4 */ _t91 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F8DD4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028F8DD8 */ _t92 = cpu->r[11] + 0x0000003Cu;
|
|
/* 028F8DD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t92);
|
|
/* 028F8DDC */ _t93 = cpu->r[1] + 0x000000A0u;
|
|
/* 028F8DDC */ cpu->r[4] = rbrew_read32(cpu->mem, _t93);
|
|
/* 028F8DE0 */ cpu->ctr = cpu->r[0];
|
|
/* 028F8DE4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F8DE8 */ _t94 = cpu->r[27] + 0x00000000u;
|
|
/* 028F8DE8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028F8DEC */ _t95 = cpu->r[5] + 0x00000014u;
|
|
/* 028F8DEC */ cpu->r[3] = rbrew_read32(cpu->mem, _t95);
|
|
/* 028F8DF0 */ _t96 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F8DF0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t96);
|
|
/* 028F8DF4 */ _t97 = cpu->r[6] + 0x0000003Cu;
|
|
/* 028F8DF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t97);
|
|
/* 028F8DF8 */ _t98 = cpu->r[1] + 0x00000034u;
|
|
/* 028F8DF8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t98);
|
|
/* 028F8DFC */ cpu->ctr = cpu->r[0];
|
|
/* 028F8E00 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F8E04 */ _t99 = cpu->r[27] + 0x00000000u;
|
|
/* 028F8E04 */ cpu->r[8] = rbrew_read32(cpu->mem, _t99);
|
|
/* 028F8E08 */ _t100 = cpu->r[8] + 0x00000014u;
|
|
/* 028F8E08 */ cpu->r[3] = rbrew_read32(cpu->mem, _t100);
|
|
/* 028F8E0C */ _t101 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F8E0C */ cpu->r[10] = rbrew_read32(cpu->mem, _t101);
|
|
/* 028F8E10 */ _t102 = cpu->r[10] + 0x0000003Cu;
|
|
/* 028F8E10 */ cpu->r[12] = rbrew_read32(cpu->mem, _t102);
|
|
/* 028F8E14 */ cpu->ctr = cpu->r[12];
|
|
/* 028F8E18 */ _t103 = cpu->r[1] + 0x000000A8u;
|
|
/* 028F8E18 */ cpu->r[4] = rbrew_read32(cpu->mem, _t103);
|
|
/* 028F8E1C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F8E20 */ goto L_028F8EB4;
|
|
L_028F8E24: ; // 0x28f8e24
|
|
/* 028F8E24 */ _t104 = cpu->r[29] + 0x00000030u;
|
|
/* 028F8E24 */ cpu->r[11] = rbrew_read32(cpu->mem, _t104);
|
|
/* 028F8E28 */ _t105 = cpu->r[1] + 0x000000A8u;
|
|
/* 028F8E28 */ cpu->r[12] = rbrew_read32(cpu->mem, _t105);
|
|
/* 028F8E2C */ cpu->r[3] = cpu->r[11] + cpu->r[31];
|
|
/* 028F8E30 */ cpu->r[4] = cpu->r[12] + cpu->r[31];
|
|
/* 028F8E34 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028F8E38 */ _t106 = cpu->r[29] + 0x0000002Cu;
|
|
/* 028F8E38 */ cpu->r[4] = rbrew_read32(cpu->mem, _t106);
|
|
/* 028F8E3C */ _t107 = cpu->r[29] + 0x00000030u;
|
|
/* 028F8E3C */ cpu->r[3] = rbrew_read32(cpu->mem, _t107);
|
|
/* 028F8E40 */ rbrew_dispatch(cpu, 0x02d09328u);
|
|
/* 028F8E44 */ _t108 = cpu->r[27] + 0x00000000u;
|
|
/* 028F8E44 */ cpu->r[5] = rbrew_read32(cpu->mem, _t108);
|
|
/* 028F8E48 */ _t109 = cpu->r[5] + 0x00000014u;
|
|
/* 028F8E48 */ cpu->r[3] = rbrew_read32(cpu->mem, _t109);
|
|
/* 028F8E4C */ _t110 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F8E4C */ cpu->r[6] = rbrew_read32(cpu->mem, _t110);
|
|
/* 028F8E50 */ _t111 = cpu->r[6] + 0x0000003Cu;
|
|
/* 028F8E50 */ cpu->r[8] = rbrew_read32(cpu->mem, _t111);
|
|
/* 028F8E54 */ cpu->ctr = cpu->r[8];
|
|
/* 028F8E58 */ _t112 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F8E58 */ cpu->r[4] = rbrew_read32(cpu->mem, _t112);
|
|
/* 028F8E5C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F8E60 */ _t113 = cpu->r[27] + 0x00000000u;
|
|
/* 028F8E60 */ cpu->r[9] = rbrew_read32(cpu->mem, _t113);
|
|
/* 028F8E64 */ _t114 = cpu->r[9] + 0x00000014u;
|
|
/* 028F8E64 */ cpu->r[3] = rbrew_read32(cpu->mem, _t114);
|
|
/* 028F8E68 */ _t115 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F8E68 */ cpu->r[11] = rbrew_read32(cpu->mem, _t115);
|
|
/* 028F8E6C */ _t116 = cpu->r[11] + 0x0000003Cu;
|
|
/* 028F8E6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t116);
|
|
/* 028F8E70 */ _t117 = cpu->r[1] + 0x000000A0u;
|
|
/* 028F8E70 */ cpu->r[4] = rbrew_read32(cpu->mem, _t117);
|
|
/* 028F8E74 */ cpu->ctr = cpu->r[0];
|
|
/* 028F8E78 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F8E7C */ _t118 = cpu->r[27] + 0x00000000u;
|
|
/* 028F8E7C */ cpu->r[5] = rbrew_read32(cpu->mem, _t118);
|
|
/* 028F8E80 */ _t119 = cpu->r[5] + 0x00000014u;
|
|
/* 028F8E80 */ cpu->r[3] = rbrew_read32(cpu->mem, _t119);
|
|
/* 028F8E84 */ _t120 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F8E84 */ cpu->r[6] = rbrew_read32(cpu->mem, _t120);
|
|
/* 028F8E88 */ _t121 = cpu->r[6] + 0x0000003Cu;
|
|
/* 028F8E88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t121);
|
|
/* 028F8E8C */ _t122 = cpu->r[1] + 0x00000034u;
|
|
/* 028F8E8C */ cpu->r[4] = rbrew_read32(cpu->mem, _t122);
|
|
/* 028F8E90 */ cpu->ctr = cpu->r[0];
|
|
/* 028F8E94 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F8E98 */ _t123 = cpu->r[27] + 0x00000000u;
|
|
/* 028F8E98 */ cpu->r[8] = rbrew_read32(cpu->mem, _t123);
|
|
/* 028F8E9C */ _t124 = cpu->r[8] + 0x00000014u;
|
|
/* 028F8E9C */ cpu->r[3] = rbrew_read32(cpu->mem, _t124);
|
|
/* 028F8EA0 */ _t125 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F8EA0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t125);
|
|
/* 028F8EA4 */ _t126 = cpu->r[10] + 0x0000003Cu;
|
|
/* 028F8EA4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t126);
|
|
/* 028F8EA8 */ cpu->ctr = cpu->r[12];
|
|
/* 028F8EAC */ _t127 = cpu->r[1] + 0x000000A8u;
|
|
/* 028F8EAC */ cpu->r[4] = rbrew_read32(cpu->mem, _t127);
|
|
/* 028F8EB0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028F8EB4: ; // 0x28f8eb4
|
|
/* 028F8EB4 */ /* nop */
|
|
/* 028F8EB8 */ _t128 = cpu->r[1] + 0x0000010Cu;
|
|
/* 028F8EB8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t128);
|
|
/* 028F8EBC */ cpu->lr = cpu->r[0];
|
|
/* 028F8EC0 */ cpu->r[1] = cpu->r[1] + 0x00000108u;
|
|
/* 028F8EC4 */ return;
|
|
}
|
|
|
|
// fn_028F8EC8 @ 0x28f8ec8
|
|
void Gambit_fn_028F8EC8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F8EC8: ; // 0x28f8ec8
|
|
/* 028F8EC8 */ cpu->r[0] = cpu->lr;
|
|
/* 028F8ECC */ _t0 = cpu->r[1] + 0xFFFFFEE8u;
|
|
/* 028F8ECC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F8ECC */ cpu->r[1] = _t0;
|
|
/* 028F8ED0 */ _t1 = cpu->r[1] + 0x00000108u;
|
|
/* 028F8ED0 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028F8ED4 */ _t2 = cpu->r[1] + 0x00000110u;
|
|
/* 028F8ED4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F8ED8 */ _t3 = cpu->r[1] + 0x0000010Cu;
|
|
/* 028F8ED8 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028F8EDC */ cpu->r[28] = cpu->r[4];
|
|
/* 028F8EE0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F8EE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F8EE4 */ _t4 = cpu->r[1] + 0x00000114u;
|
|
/* 028F8EE4 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028F8EE8 */ _t5 = cpu->r[1] + 0x0000011Cu;
|
|
/* 028F8EE8 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F8EEC */ cpu->r[29] = cpu->r[5];
|
|
/* 028F8EF0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8EF0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F8EF0 */ if (_t7) goto L_028F8EF4; else goto L_028F8F04;
|
|
L_028F8EF4: ; // 0x28f8ef4
|
|
/* 028F8EF4 */ cpu->r[3] = 0x00000020u;
|
|
/* 028F8EF8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F8EFC */ cpu->r[30] = cpu->r[3];
|
|
/* 028F8EFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F8F00 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8F00 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F8F00 */ if (_t9) goto L_028F9108; else goto L_028F8F04;
|
|
L_028F8F04: ; // 0x28f8f04
|
|
/* 028F8F04 */ _t10 = cpu->r[28] + 0x00000000u;
|
|
/* 028F8F04 */ cpu->r[11] = rbrew_read8(cpu->mem, _t10);
|
|
/* 028F8F08 */ cpu->r[9] = cpu->r[28] + cpu->r[11];
|
|
/* 028F8F0C */ cpu->r[0] = cpu->r[9] + 0x00000012u;
|
|
/* 028F8F10 */ cpu->r[31] = 0x10110000u;
|
|
/* 028F8F14 */ _t11 = cpu->r[30] + 0x00000008u;
|
|
/* 028F8F14 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028F8F18 */ _t12 = cpu->r[31] + 0x00007350u;
|
|
/* 028F8F18 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F8F1C */ _t13 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028F8F1C */ cpu->r[0] = rbrew_read16(cpu->mem, _t13);
|
|
/* 028F8F20 */ cpu->ctr = cpu->r[31];
|
|
/* 028F8F24 */ cpu->r[3] = cpu->r[0];
|
|
/* 028F8F28 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F8F2C */ cpu->ctr = cpu->r[31];
|
|
/* 028F8F30 */ _t14 = cpu->r[30] + 0x00000000u;
|
|
/* 028F8F30 */ rbrew_write32(cpu->mem, _t14, cpu->r[3]);
|
|
/* 028F8F34 */ _t15 = cpu->r[28] + 0x0000000Eu;
|
|
/* 028F8F34 */ cpu->r[0] = rbrew_read16(cpu->mem, _t15);
|
|
/* 028F8F38 */ cpu->r[3] = cpu->r[0];
|
|
/* 028F8F3C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F8F40 */ _t16 = cpu->r[30] + 0x00000004u;
|
|
/* 028F8F40 */ rbrew_write32(cpu->mem, _t16, cpu->r[3]);
|
|
/* 028F8F44 */ _t17 = cpu->r[28] + 0x00000010u;
|
|
/* 028F8F44 */ cpu->r[12] = rbrew_read8(cpu->mem, _t17);
|
|
/* 028F8F48 */ _t18 = cpu->r[30] + 0x00000000u;
|
|
/* 028F8F48 */ cpu->r[8] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F8F4C */ cpu->r[11] = rbrew_rlwinm(cpu->r[12], 0x0000001Du, 0x00000003u, 0x0000001Fu);
|
|
/* 028F8F50 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)cpu->r[8]);
|
|
/* 028F8F54 */ _t19 = cpu->r[30] + 0x00000014u;
|
|
/* 028F8F54 */ rbrew_write32(cpu->mem, _t19, cpu->r[11]);
|
|
/* 028F8F58 */ cpu->r[10] = 0x0000001Du;
|
|
/* 028F8F5C */ _t20 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F8F5C */ rbrew_write32(cpu->mem, _t20, cpu->r[10]);
|
|
/* 028F8F60 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)cpu->r[3]);
|
|
/* 028F8F64 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000001u);
|
|
/* 028F8F68 */ _t21 = cpu->r[30] + 0x00000010u;
|
|
/* 028F8F68 */ rbrew_write32(cpu->mem, _t21, cpu->r[11]);
|
|
/* 028F8F6C */ _t22 = cpu->r[30] + 0x00000018u;
|
|
/* 028F8F6C */ rbrew_write32(cpu->mem, _t22, cpu->r[9]);
|
|
/* 028F8F70 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8F70 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028F8F70 */ if (_t24) goto L_028F8FCC; else goto L_028F8F74;
|
|
L_028F8F74: ; // 0x28f8f74
|
|
/* 028F8F74 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000003u);
|
|
/* 028F8F78 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8F78 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028F8F78 */ if (_t26) goto L_028F901C; else goto L_028F8F7C;
|
|
L_028F8F7C: ; // 0x28f8f7c
|
|
/* 028F8F7C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000004u);
|
|
/* 028F8F80 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8F80 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F8F80 */ if (_t28) goto L_028F9074; else goto L_028F8F84;
|
|
L_028F8F84: ; // 0x28f8f84
|
|
/* 028F8F84 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F8F88 */ Gambit_fn_028F7044(cpu);
|
|
/* 028F8F8C */ _t29 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F8F8C */ cpu->r[5] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F8F90 */ cpu->r[4] = 0x00000001u;
|
|
/* 028F8F94 */ _t30 = cpu->r[30] + 0x00000000u;
|
|
/* 028F8F94 */ cpu->r[6] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F8F98 */ cpu->r[8] = cpu->r[4];
|
|
/* 028F8F9C */ _t31 = cpu->r[30] + 0x00000004u;
|
|
/* 028F8F9C */ cpu->r[7] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F8FA0 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F8FA4 */ _t32 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8FA4 */ rbrew_write32(cpu->mem, _t32, cpu->r[4]);
|
|
/* 028F8FA8 */ cpu->r[9] = cpu->r[8];
|
|
/* 028F8FAC */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F8FB0 */ _t33 = cpu->r[1] + 0x00000008u;
|
|
/* 028F8FB0 */ rbrew_write32(cpu->mem, _t33, cpu->r[10]);
|
|
/* 028F8FB4 */ Gambit_fn_028F7664(cpu);
|
|
/* 028F8FB8 */ _t34 = cpu->r[1] + 0x00000034u;
|
|
/* 028F8FB8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F8FBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F8FC0 */ _t35 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F8FC0 */ rbrew_write32(cpu->mem, _t35, cpu->r[10]);
|
|
/* 028F8FC4 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8FC4 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F8FC4 */ if (_t37) goto L_028F9108; else goto L_028F8FC8;
|
|
L_028F8FC8: ; // 0x28f8fc8
|
|
/* 028F8FC8 */ goto L_028F90C0;
|
|
L_028F8FCC: ; // 0x28f8fcc
|
|
/* 028F8FCC */ cpu->r[12] = 0x00000001u;
|
|
/* 028F8FD0 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F8FD4 */ _t38 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F8FD4 */ rbrew_write32(cpu->mem, _t38, cpu->r[12]);
|
|
/* 028F8FD8 */ Gambit_fn_028F7044(cpu);
|
|
/* 028F8FDC */ _t39 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F8FDC */ cpu->r[5] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F8FE0 */ cpu->r[4] = 0x00000001u;
|
|
/* 028F8FE4 */ _t40 = cpu->r[30] + 0x00000000u;
|
|
/* 028F8FE4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028F8FE8 */ cpu->r[8] = cpu->r[4];
|
|
/* 028F8FEC */ _t41 = cpu->r[30] + 0x00000004u;
|
|
/* 028F8FEC */ cpu->r[7] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F8FF0 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F8FF4 */ _t42 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8FF4 */ rbrew_write32(cpu->mem, _t42, cpu->r[4]);
|
|
/* 028F8FF8 */ cpu->r[9] = cpu->r[8];
|
|
/* 028F8FFC */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F9000 */ _t43 = cpu->r[1] + 0x00000008u;
|
|
/* 028F9000 */ rbrew_write32(cpu->mem, _t43, cpu->r[10]);
|
|
/* 028F9004 */ Gambit_fn_028F7664(cpu);
|
|
/* 028F9008 */ _t44 = cpu->r[1] + 0x00000034u;
|
|
/* 028F9008 */ cpu->r[10] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028F900C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F9010 */ _t45 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F9010 */ rbrew_write32(cpu->mem, _t45, cpu->r[10]);
|
|
/* 028F9014 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9014 */ _t47 = _t46 & 0x00000001u;
|
|
/* 028F9014 */ if (_t47) goto L_028F9108; else goto L_028F9018;
|
|
L_028F9018: ; // 0x28f9018
|
|
/* 028F9018 */ goto L_028F90C0;
|
|
L_028F901C: ; // 0x28f901c
|
|
/* 028F901C */ cpu->r[0] = 0x0000001Du;
|
|
/* 028F9020 */ cpu->r[8] = 0x00000004u;
|
|
/* 028F9024 */ _t48 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F9024 */ rbrew_write32(cpu->mem, _t48, cpu->r[0]);
|
|
/* 028F9028 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F902C */ _t49 = cpu->r[30] + 0x00000014u;
|
|
/* 028F902C */ rbrew_write32(cpu->mem, _t49, cpu->r[8]);
|
|
/* 028F9030 */ Gambit_fn_028F7044(cpu);
|
|
/* 028F9034 */ cpu->r[4] = 0x00000001u;
|
|
/* 028F9038 */ _t50 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F9038 */ cpu->r[5] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F903C */ cpu->r[8] = cpu->r[4];
|
|
/* 028F9040 */ _t51 = cpu->r[30] + 0x00000004u;
|
|
/* 028F9040 */ cpu->r[7] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F9044 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F9048 */ _t52 = cpu->r[30] + 0x00000000u;
|
|
/* 028F9048 */ cpu->r[6] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028F904C */ cpu->r[10] = 0x00000000u;
|
|
/* 028F9050 */ _t53 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F9050 */ rbrew_write32(cpu->mem, _t53, cpu->r[4]);
|
|
/* 028F9054 */ cpu->r[9] = cpu->r[8];
|
|
/* 028F9058 */ _t54 = cpu->r[1] + 0x00000008u;
|
|
/* 028F9058 */ rbrew_write32(cpu->mem, _t54, cpu->r[10]);
|
|
/* 028F905C */ Gambit_fn_028F7664(cpu);
|
|
/* 028F9060 */ _t55 = cpu->r[1] + 0x00000034u;
|
|
/* 028F9060 */ cpu->r[10] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028F9064 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F9068 */ _t56 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F9068 */ rbrew_write32(cpu->mem, _t56, cpu->r[10]);
|
|
/* 028F906C */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F906C */ _t58 = _t57 & 0x00000001u;
|
|
/* 028F906C */ if (_t58) goto L_028F9108; else goto L_028F9070;
|
|
L_028F9070: ; // 0x28f9070
|
|
/* 028F9070 */ goto L_028F90C0;
|
|
L_028F9074: ; // 0x28f9074
|
|
/* 028F9074 */ cpu->r[0] = 0x0000001Du;
|
|
/* 028F9078 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F907C */ _t59 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F907C */ rbrew_write32(cpu->mem, _t59, cpu->r[0]);
|
|
/* 028F9080 */ Gambit_fn_028F7044(cpu);
|
|
/* 028F9084 */ _t60 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F9084 */ cpu->r[5] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028F9088 */ cpu->r[4] = 0x00000001u;
|
|
/* 028F908C */ _t61 = cpu->r[30] + 0x00000000u;
|
|
/* 028F908C */ cpu->r[6] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028F9090 */ cpu->r[8] = cpu->r[4];
|
|
/* 028F9094 */ _t62 = cpu->r[30] + 0x00000004u;
|
|
/* 028F9094 */ cpu->r[7] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028F9098 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F909C */ _t63 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F909C */ rbrew_write32(cpu->mem, _t63, cpu->r[4]);
|
|
/* 028F90A0 */ cpu->r[9] = cpu->r[8];
|
|
/* 028F90A4 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F90A8 */ _t64 = cpu->r[1] + 0x00000008u;
|
|
/* 028F90A8 */ rbrew_write32(cpu->mem, _t64, cpu->r[10]);
|
|
/* 028F90AC */ Gambit_fn_028F7664(cpu);
|
|
/* 028F90B0 */ _t65 = cpu->r[1] + 0x00000034u;
|
|
/* 028F90B0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028F90B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F90B8 */ _t66 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F90B8 */ rbrew_write32(cpu->mem, _t66, cpu->r[10]);
|
|
/* 028F90BC */ _t67 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F90BC */ _t68 = _t67 & 0x00000001u;
|
|
/* 028F90BC */ if (_t68) goto L_028F9108; else goto L_028F90C0;
|
|
L_028F90C0: ; // 0x28f90c0
|
|
/* 028F90C0 */ cpu->r[9] = 0x0000001Du;
|
|
/* 028F90C4 */ cpu->r[12] = cpu->r[1] + 0x00000010u;
|
|
/* 028F90C8 */ cpu->ctr = cpu->r[9];
|
|
/* 028F90CC */ cpu->r[8] = cpu->r[1] + 0x00000090u;
|
|
L_028F90D0: ; // 0x28f90d0
|
|
/* 028F90D0 */ _t69 = cpu->r[12] + 0x00000004u;
|
|
/* 028F90D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028F90D0 */ cpu->r[12] = _t69;
|
|
/* 028F90D4 */ _t70 = cpu->r[8] + 0x00000004u;
|
|
/* 028F90D4 */ rbrew_write32(cpu->mem, _t70, cpu->r[10]);
|
|
/* 028F90D4 */ cpu->r[8] = _t70;
|
|
/* 028F90D8 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F90D8 */ _t71 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F90D8 */ _t72 = _t71 >> (0x00000002u & 31u);
|
|
/* 028F90D8 */ _t73 = _t72 & 0x00000001u;
|
|
/* 028F90D8 */ if (_t73) goto L_028F90D0; else goto L_028F90DC;
|
|
L_028F90DC: ; // 0x28f90dc
|
|
/* 028F90DC */ cpu->r[11] = 0x00000001u;
|
|
/* 028F90E0 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F90E4 */ cpu->r[4] = cpu->r[1] + 0x00000094u;
|
|
/* 028F90E8 */ _t74 = cpu->r[1] + 0x000000C4u;
|
|
/* 028F90E8 */ rbrew_write32(cpu->mem, _t74, cpu->r[11]);
|
|
/* 028F90EC */ Gambit_fn_028F88B0(cpu);
|
|
/* 028F90F0 */ _t75 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F90F0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028F90F4 */ _t76 = cpu->r[1] + 0x00000034u;
|
|
/* 028F90F4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028F90F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[11]);
|
|
/* 028F90FC */ _t77 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F90FC */ _t78 = _t77 & 0x00000001u;
|
|
/* 028F90FC */ if (_t78) goto L_028F9100; else goto L_028F9104;
|
|
L_028F9100: ; // 0x28f9100
|
|
/* 028F9100 */ cpu->r[11] = cpu->r[12];
|
|
L_028F9104: ; // 0x28f9104
|
|
/* 028F9104 */ _t79 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F9104 */ rbrew_write32(cpu->mem, _t79, cpu->r[11]);
|
|
L_028F9108: ; // 0x28f9108
|
|
/* 028F9108 */ _t80 = cpu->r[1] + 0x00000108u;
|
|
/* 028F9108 */ cpu->r[28] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028F910C */ _t81 = cpu->r[1] + 0x0000010Cu;
|
|
/* 028F910C */ cpu->r[29] = rbrew_read32(cpu->mem, _t81);
|
|
/* 028F9110 */ _t82 = cpu->r[1] + 0x0000011Cu;
|
|
/* 028F9110 */ cpu->r[0] = rbrew_read32(cpu->mem, _t82);
|
|
/* 028F9114 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F9118 */ _t83 = cpu->r[1] + 0x00000110u;
|
|
/* 028F9118 */ cpu->r[30] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028F911C */ cpu->lr = cpu->r[0];
|
|
/* 028F9120 */ _t84 = cpu->r[1] + 0x00000114u;
|
|
/* 028F9120 */ cpu->r[31] = rbrew_read32(cpu->mem, _t84);
|
|
/* 028F9124 */ cpu->r[1] = cpu->r[1] + 0x00000118u;
|
|
/* 028F9128 */ return;
|
|
}
|
|
|
|
// fn_028F8ECC @ 0x28f8ecc
|
|
void Gambit_fn_028F8ECC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F8ECC: ; // 0x28f8ecc
|
|
/* 028F8ECC */ _t0 = cpu->r[1] + 0xFFFFFEE8u;
|
|
/* 028F8ECC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F8ECC */ cpu->r[1] = _t0;
|
|
/* 028F8ED0 */ _t1 = cpu->r[1] + 0x00000108u;
|
|
/* 028F8ED0 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028F8ED4 */ _t2 = cpu->r[1] + 0x00000110u;
|
|
/* 028F8ED4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F8ED8 */ _t3 = cpu->r[1] + 0x0000010Cu;
|
|
/* 028F8ED8 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028F8EDC */ cpu->r[28] = cpu->r[4];
|
|
/* 028F8EE0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028F8EE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F8EE4 */ _t4 = cpu->r[1] + 0x00000114u;
|
|
/* 028F8EE4 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028F8EE8 */ _t5 = cpu->r[1] + 0x0000011Cu;
|
|
/* 028F8EE8 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028F8EEC */ cpu->r[29] = cpu->r[5];
|
|
/* 028F8EF0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8EF0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F8EF0 */ if (_t7) goto L_028F8EF4; else goto L_028F8F04;
|
|
L_028F8EF4: ; // 0x28f8ef4
|
|
/* 028F8EF4 */ cpu->r[3] = 0x00000020u;
|
|
/* 028F8EF8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F8EFC */ cpu->r[30] = cpu->r[3];
|
|
/* 028F8EFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F8F00 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8F00 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F8F00 */ if (_t9) goto L_028F9108; else goto L_028F8F04;
|
|
L_028F8F04: ; // 0x28f8f04
|
|
/* 028F8F04 */ _t10 = cpu->r[28] + 0x00000000u;
|
|
/* 028F8F04 */ cpu->r[11] = rbrew_read8(cpu->mem, _t10);
|
|
/* 028F8F08 */ cpu->r[9] = cpu->r[28] + cpu->r[11];
|
|
/* 028F8F0C */ cpu->r[0] = cpu->r[9] + 0x00000012u;
|
|
/* 028F8F10 */ cpu->r[31] = 0x10110000u;
|
|
/* 028F8F14 */ _t11 = cpu->r[30] + 0x00000008u;
|
|
/* 028F8F14 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028F8F18 */ _t12 = cpu->r[31] + 0x00007350u;
|
|
/* 028F8F18 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F8F1C */ _t13 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028F8F1C */ cpu->r[0] = rbrew_read16(cpu->mem, _t13);
|
|
/* 028F8F20 */ cpu->ctr = cpu->r[31];
|
|
/* 028F8F24 */ cpu->r[3] = cpu->r[0];
|
|
/* 028F8F28 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F8F2C */ cpu->ctr = cpu->r[31];
|
|
/* 028F8F30 */ _t14 = cpu->r[30] + 0x00000000u;
|
|
/* 028F8F30 */ rbrew_write32(cpu->mem, _t14, cpu->r[3]);
|
|
/* 028F8F34 */ _t15 = cpu->r[28] + 0x0000000Eu;
|
|
/* 028F8F34 */ cpu->r[0] = rbrew_read16(cpu->mem, _t15);
|
|
/* 028F8F38 */ cpu->r[3] = cpu->r[0];
|
|
/* 028F8F3C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F8F40 */ _t16 = cpu->r[30] + 0x00000004u;
|
|
/* 028F8F40 */ rbrew_write32(cpu->mem, _t16, cpu->r[3]);
|
|
/* 028F8F44 */ _t17 = cpu->r[28] + 0x00000010u;
|
|
/* 028F8F44 */ cpu->r[12] = rbrew_read8(cpu->mem, _t17);
|
|
/* 028F8F48 */ _t18 = cpu->r[30] + 0x00000000u;
|
|
/* 028F8F48 */ cpu->r[8] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F8F4C */ cpu->r[11] = rbrew_rlwinm(cpu->r[12], 0x0000001Du, 0x00000003u, 0x0000001Fu);
|
|
/* 028F8F50 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)cpu->r[8]);
|
|
/* 028F8F54 */ _t19 = cpu->r[30] + 0x00000014u;
|
|
/* 028F8F54 */ rbrew_write32(cpu->mem, _t19, cpu->r[11]);
|
|
/* 028F8F58 */ cpu->r[10] = 0x0000001Du;
|
|
/* 028F8F5C */ _t20 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F8F5C */ rbrew_write32(cpu->mem, _t20, cpu->r[10]);
|
|
/* 028F8F60 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)cpu->r[3]);
|
|
/* 028F8F64 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000001u);
|
|
/* 028F8F68 */ _t21 = cpu->r[30] + 0x00000010u;
|
|
/* 028F8F68 */ rbrew_write32(cpu->mem, _t21, cpu->r[11]);
|
|
/* 028F8F6C */ _t22 = cpu->r[30] + 0x00000018u;
|
|
/* 028F8F6C */ rbrew_write32(cpu->mem, _t22, cpu->r[9]);
|
|
/* 028F8F70 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8F70 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028F8F70 */ if (_t24) goto L_028F8FCC; else goto L_028F8F74;
|
|
L_028F8F74: ; // 0x28f8f74
|
|
/* 028F8F74 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000003u);
|
|
/* 028F8F78 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8F78 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028F8F78 */ if (_t26) goto L_028F901C; else goto L_028F8F7C;
|
|
L_028F8F7C: ; // 0x28f8f7c
|
|
/* 028F8F7C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000004u);
|
|
/* 028F8F80 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8F80 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F8F80 */ if (_t28) goto L_028F9074; else goto L_028F8F84;
|
|
L_028F8F84: ; // 0x28f8f84
|
|
/* 028F8F84 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F8F88 */ Gambit_fn_028F7044(cpu);
|
|
/* 028F8F8C */ _t29 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F8F8C */ cpu->r[5] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F8F90 */ cpu->r[4] = 0x00000001u;
|
|
/* 028F8F94 */ _t30 = cpu->r[30] + 0x00000000u;
|
|
/* 028F8F94 */ cpu->r[6] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F8F98 */ cpu->r[8] = cpu->r[4];
|
|
/* 028F8F9C */ _t31 = cpu->r[30] + 0x00000004u;
|
|
/* 028F8F9C */ cpu->r[7] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028F8FA0 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F8FA4 */ _t32 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8FA4 */ rbrew_write32(cpu->mem, _t32, cpu->r[4]);
|
|
/* 028F8FA8 */ cpu->r[9] = cpu->r[8];
|
|
/* 028F8FAC */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F8FB0 */ _t33 = cpu->r[1] + 0x00000008u;
|
|
/* 028F8FB0 */ rbrew_write32(cpu->mem, _t33, cpu->r[10]);
|
|
/* 028F8FB4 */ Gambit_fn_028F7664(cpu);
|
|
/* 028F8FB8 */ _t34 = cpu->r[1] + 0x00000034u;
|
|
/* 028F8FB8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F8FBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F8FC0 */ _t35 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F8FC0 */ rbrew_write32(cpu->mem, _t35, cpu->r[10]);
|
|
/* 028F8FC4 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F8FC4 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028F8FC4 */ if (_t37) goto L_028F9108; else goto L_028F8FC8;
|
|
L_028F8FC8: ; // 0x28f8fc8
|
|
/* 028F8FC8 */ goto L_028F90C0;
|
|
L_028F8FCC: ; // 0x28f8fcc
|
|
/* 028F8FCC */ cpu->r[12] = 0x00000001u;
|
|
/* 028F8FD0 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F8FD4 */ _t38 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F8FD4 */ rbrew_write32(cpu->mem, _t38, cpu->r[12]);
|
|
/* 028F8FD8 */ Gambit_fn_028F7044(cpu);
|
|
/* 028F8FDC */ _t39 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F8FDC */ cpu->r[5] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028F8FE0 */ cpu->r[4] = 0x00000001u;
|
|
/* 028F8FE4 */ _t40 = cpu->r[30] + 0x00000000u;
|
|
/* 028F8FE4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028F8FE8 */ cpu->r[8] = cpu->r[4];
|
|
/* 028F8FEC */ _t41 = cpu->r[30] + 0x00000004u;
|
|
/* 028F8FEC */ cpu->r[7] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F8FF0 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F8FF4 */ _t42 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F8FF4 */ rbrew_write32(cpu->mem, _t42, cpu->r[4]);
|
|
/* 028F8FF8 */ cpu->r[9] = cpu->r[8];
|
|
/* 028F8FFC */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F9000 */ _t43 = cpu->r[1] + 0x00000008u;
|
|
/* 028F9000 */ rbrew_write32(cpu->mem, _t43, cpu->r[10]);
|
|
/* 028F9004 */ Gambit_fn_028F7664(cpu);
|
|
/* 028F9008 */ _t44 = cpu->r[1] + 0x00000034u;
|
|
/* 028F9008 */ cpu->r[10] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028F900C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F9010 */ _t45 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F9010 */ rbrew_write32(cpu->mem, _t45, cpu->r[10]);
|
|
/* 028F9014 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9014 */ _t47 = _t46 & 0x00000001u;
|
|
/* 028F9014 */ if (_t47) goto L_028F9108; else goto L_028F9018;
|
|
L_028F9018: ; // 0x28f9018
|
|
/* 028F9018 */ goto L_028F90C0;
|
|
L_028F901C: ; // 0x28f901c
|
|
/* 028F901C */ cpu->r[0] = 0x0000001Du;
|
|
/* 028F9020 */ cpu->r[8] = 0x00000004u;
|
|
/* 028F9024 */ _t48 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F9024 */ rbrew_write32(cpu->mem, _t48, cpu->r[0]);
|
|
/* 028F9028 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F902C */ _t49 = cpu->r[30] + 0x00000014u;
|
|
/* 028F902C */ rbrew_write32(cpu->mem, _t49, cpu->r[8]);
|
|
/* 028F9030 */ Gambit_fn_028F7044(cpu);
|
|
/* 028F9034 */ cpu->r[4] = 0x00000001u;
|
|
/* 028F9038 */ _t50 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F9038 */ cpu->r[5] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F903C */ cpu->r[8] = cpu->r[4];
|
|
/* 028F9040 */ _t51 = cpu->r[30] + 0x00000004u;
|
|
/* 028F9040 */ cpu->r[7] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028F9044 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F9048 */ _t52 = cpu->r[30] + 0x00000000u;
|
|
/* 028F9048 */ cpu->r[6] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028F904C */ cpu->r[10] = 0x00000000u;
|
|
/* 028F9050 */ _t53 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F9050 */ rbrew_write32(cpu->mem, _t53, cpu->r[4]);
|
|
/* 028F9054 */ cpu->r[9] = cpu->r[8];
|
|
/* 028F9058 */ _t54 = cpu->r[1] + 0x00000008u;
|
|
/* 028F9058 */ rbrew_write32(cpu->mem, _t54, cpu->r[10]);
|
|
/* 028F905C */ Gambit_fn_028F7664(cpu);
|
|
/* 028F9060 */ _t55 = cpu->r[1] + 0x00000034u;
|
|
/* 028F9060 */ cpu->r[10] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028F9064 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F9068 */ _t56 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F9068 */ rbrew_write32(cpu->mem, _t56, cpu->r[10]);
|
|
/* 028F906C */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F906C */ _t58 = _t57 & 0x00000001u;
|
|
/* 028F906C */ if (_t58) goto L_028F9108; else goto L_028F9070;
|
|
L_028F9070: ; // 0x28f9070
|
|
/* 028F9070 */ goto L_028F90C0;
|
|
L_028F9074: ; // 0x28f9074
|
|
/* 028F9074 */ cpu->r[0] = 0x0000001Du;
|
|
/* 028F9078 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F907C */ _t59 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F907C */ rbrew_write32(cpu->mem, _t59, cpu->r[0]);
|
|
/* 028F9080 */ Gambit_fn_028F7044(cpu);
|
|
/* 028F9084 */ _t60 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F9084 */ cpu->r[5] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028F9088 */ cpu->r[4] = 0x00000001u;
|
|
/* 028F908C */ _t61 = cpu->r[30] + 0x00000000u;
|
|
/* 028F908C */ cpu->r[6] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028F9090 */ cpu->r[8] = cpu->r[4];
|
|
/* 028F9094 */ _t62 = cpu->r[30] + 0x00000004u;
|
|
/* 028F9094 */ cpu->r[7] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028F9098 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F909C */ _t63 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F909C */ rbrew_write32(cpu->mem, _t63, cpu->r[4]);
|
|
/* 028F90A0 */ cpu->r[9] = cpu->r[8];
|
|
/* 028F90A4 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F90A8 */ _t64 = cpu->r[1] + 0x00000008u;
|
|
/* 028F90A8 */ rbrew_write32(cpu->mem, _t64, cpu->r[10]);
|
|
/* 028F90AC */ Gambit_fn_028F7664(cpu);
|
|
/* 028F90B0 */ _t65 = cpu->r[1] + 0x00000034u;
|
|
/* 028F90B0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028F90B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F90B8 */ _t66 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F90B8 */ rbrew_write32(cpu->mem, _t66, cpu->r[10]);
|
|
/* 028F90BC */ _t67 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F90BC */ _t68 = _t67 & 0x00000001u;
|
|
/* 028F90BC */ if (_t68) goto L_028F9108; else goto L_028F90C0;
|
|
L_028F90C0: ; // 0x28f90c0
|
|
/* 028F90C0 */ cpu->r[9] = 0x0000001Du;
|
|
/* 028F90C4 */ cpu->r[12] = cpu->r[1] + 0x00000010u;
|
|
/* 028F90C8 */ cpu->ctr = cpu->r[9];
|
|
/* 028F90CC */ cpu->r[8] = cpu->r[1] + 0x00000090u;
|
|
L_028F90D0: ; // 0x28f90d0
|
|
/* 028F90D0 */ _t69 = cpu->r[12] + 0x00000004u;
|
|
/* 028F90D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028F90D0 */ cpu->r[12] = _t69;
|
|
/* 028F90D4 */ _t70 = cpu->r[8] + 0x00000004u;
|
|
/* 028F90D4 */ rbrew_write32(cpu->mem, _t70, cpu->r[10]);
|
|
/* 028F90D4 */ cpu->r[8] = _t70;
|
|
/* 028F90D8 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F90D8 */ _t71 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F90D8 */ _t72 = _t71 >> (0x00000002u & 31u);
|
|
/* 028F90D8 */ _t73 = _t72 & 0x00000001u;
|
|
/* 028F90D8 */ if (_t73) goto L_028F90D0; else goto L_028F90DC;
|
|
L_028F90DC: ; // 0x28f90dc
|
|
/* 028F90DC */ cpu->r[11] = 0x00000001u;
|
|
/* 028F90E0 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028F90E4 */ cpu->r[4] = cpu->r[1] + 0x00000094u;
|
|
/* 028F90E8 */ _t74 = cpu->r[1] + 0x000000C4u;
|
|
/* 028F90E8 */ rbrew_write32(cpu->mem, _t74, cpu->r[11]);
|
|
/* 028F90EC */ Gambit_fn_028F88B0(cpu);
|
|
/* 028F90F0 */ _t75 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F90F0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028F90F4 */ _t76 = cpu->r[1] + 0x00000034u;
|
|
/* 028F90F4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028F90F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[11]);
|
|
/* 028F90FC */ _t77 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F90FC */ _t78 = _t77 & 0x00000001u;
|
|
/* 028F90FC */ if (_t78) goto L_028F9100; else goto L_028F9104;
|
|
L_028F9100: ; // 0x28f9100
|
|
/* 028F9100 */ cpu->r[11] = cpu->r[12];
|
|
L_028F9104: ; // 0x28f9104
|
|
/* 028F9104 */ _t79 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F9104 */ rbrew_write32(cpu->mem, _t79, cpu->r[11]);
|
|
L_028F9108: ; // 0x28f9108
|
|
/* 028F9108 */ _t80 = cpu->r[1] + 0x00000108u;
|
|
/* 028F9108 */ cpu->r[28] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028F910C */ _t81 = cpu->r[1] + 0x0000010Cu;
|
|
/* 028F910C */ cpu->r[29] = rbrew_read32(cpu->mem, _t81);
|
|
/* 028F9110 */ _t82 = cpu->r[1] + 0x0000011Cu;
|
|
/* 028F9110 */ cpu->r[0] = rbrew_read32(cpu->mem, _t82);
|
|
/* 028F9114 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F9118 */ _t83 = cpu->r[1] + 0x00000110u;
|
|
/* 028F9118 */ cpu->r[30] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028F911C */ cpu->lr = cpu->r[0];
|
|
/* 028F9120 */ _t84 = cpu->r[1] + 0x00000114u;
|
|
/* 028F9120 */ cpu->r[31] = rbrew_read32(cpu->mem, _t84);
|
|
/* 028F9124 */ cpu->r[1] = cpu->r[1] + 0x00000118u;
|
|
/* 028F9128 */ return;
|
|
}
|
|
|
|
// fn_028F912C @ 0x28f912c
|
|
void Gambit_fn_028F912C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F912C: ; // 0x28f912c
|
|
/* 028F912C */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028F912C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F912C */ cpu->r[1] = _t0;
|
|
/* 028F9130 */ cpu->r[0] = cpu->lr;
|
|
/* 028F9134 */ /* nop */
|
|
/* 028F9138 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x00000001u);
|
|
/* 028F913C */ cpu->r[31] = cpu->r[3];
|
|
/* 028F9140 */ cpu->r[28] = cpu->r[6];
|
|
/* 028F9144 */ cpu->r[27] = cpu->r[8];
|
|
/* 028F9148 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F9148 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F914C */ cpu->r[29] = cpu->r[7];
|
|
/* 028F9150 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9150 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F9150 */ if (_t3) goto L_028F9178; else goto L_028F9154;
|
|
L_028F9154: ; // 0x28f9154
|
|
/* 028F9154 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x00000003u);
|
|
/* 028F9158 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9158 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F9158 */ if (_t5) goto L_028F920C; else goto L_028F915C;
|
|
L_028F915C: ; // 0x28f915c
|
|
/* 028F915C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x00000004u);
|
|
/* 028F9160 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9160 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F9160 */ if (_t7) goto L_028F92C8; else goto L_028F9164;
|
|
L_028F9164: ; // 0x28f9164
|
|
/* 028F9164 */ /* nop */
|
|
/* 028F9168 */ _t8 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F9168 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F916C */ cpu->lr = cpu->r[0];
|
|
/* 028F9170 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028F9174 */ return;
|
|
L_028F9178: ; // 0x28f9178
|
|
/* 028F9178 */ cpu->r[7] = cpu->r[28] + 0x0000001Fu;
|
|
/* 028F917C */ cpu->r[30] = 0x00000000u;
|
|
/* 028F9180 */ cpu->r[8] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Bu, 0x0000001Fu);
|
|
/* 028F9180 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F9184 */ cpu->r[6] = rbrew_rlwinm(cpu->r[7], 0x00000000u, 0x00000000u, 0x0000001Au);
|
|
/* 028F9188 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9188 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028F9188 */ if (_t10) goto L_028F918C; else goto L_028F9198;
|
|
L_028F918C: ; // 0x28f918c
|
|
/* 028F918C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], cpu->r[27]);
|
|
/* 028F9190 */ _t11 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9190 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028F9190 */ if (_t12) goto L_028F9198; else goto L_028F9194;
|
|
L_028F9194: ; // 0x28f9194
|
|
/* 028F9194 */ cpu->r[30] = 0x00000001u;
|
|
L_028F9198: ; // 0x28f9198
|
|
/* 028F9198 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F919C */ cpu->r[30] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F91A0 */ _t13 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F91A0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F91A0 */ if (_t14) goto L_028F91A4; else goto L_028F9370;
|
|
L_028F91A4: ; // 0x28f91a4
|
|
/* 028F91A4 */ cpu->r[9] = cpu->r[29] + 0xFFFFFFFFu;
|
|
/* 028F91A8 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)cpu->r[28]);
|
|
/* 028F91AC */ cpu->r[26] = (uint32_t)(-(int32_t)cpu->r[28]);
|
|
/* 028F91B0 */ cpu->r[25] = cpu->r[4] + cpu->r[10];
|
|
L_028F91B4: ; // 0x28f91b4
|
|
/* 028F91B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F91B8 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F91B8 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F91B8 */ if (_t16) goto L_028F91C8; else goto L_028F91BC;
|
|
L_028F91BC: ; // 0x28f91bc
|
|
/* 028F91BC */ cpu->r[3] = cpu->r[31];
|
|
/* 028F91C0 */ cpu->r[4] = cpu->r[27];
|
|
/* 028F91C4 */ rbrew_dispatch(cpu, 0x02d09350u);
|
|
L_028F91C8: ; // 0x28f91c8
|
|
/* 028F91C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F91CC */ _t17 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F91CC */ _t18 = _t17 & 0x00000001u;
|
|
/* 028F91CC */ if (_t18) goto L_028F91D0; else goto L_028F91E8;
|
|
L_028F91D0: ; // 0x28f91d0
|
|
/* 028F91D0 */ cpu->ctr = cpu->r[28];
|
|
/* 028F91D4 */ cpu->r[12] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028F91D8 */ cpu->r[11] = cpu->r[25] + 0xFFFFFFFFu;
|
|
L_028F91DC: ; // 0x28f91dc
|
|
/* 028F91DC */ _t19 = cpu->r[11] + 0x00000001u;
|
|
/* 028F91DC */ cpu->r[0] = rbrew_read8(cpu->mem, _t19);
|
|
/* 028F91DC */ cpu->r[11] = _t19;
|
|
/* 028F91E0 */ _t20 = cpu->r[12] + 0x00000001u;
|
|
/* 028F91E0 */ rbrew_write8(cpu->mem, _t20, (uint8_t)cpu->r[0]);
|
|
/* 028F91E0 */ cpu->r[12] = _t20;
|
|
/* 028F91E4 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F91E4 */ _t21 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F91E4 */ _t22 = _t21 >> (0x00000002u & 31u);
|
|
/* 028F91E4 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028F91E4 */ if (_t23) goto L_028F91DC; else goto L_028F91E8;
|
|
L_028F91E8: ; // 0x28f91e8
|
|
/* 028F91E8 */ cpu->r[29] = cpu->r[29] + 0xFFFFFFFFu;
|
|
/* 028F91E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F91EC */ cpu->r[25] = cpu->r[25] + cpu->r[26];
|
|
/* 028F91F0 */ cpu->r[31] = cpu->r[31] + cpu->r[27];
|
|
/* 028F91F4 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F91F4 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028F91F4 */ if (_t25) goto L_028F91F8; else goto L_028F91B4;
|
|
L_028F91F8: ; // 0x28f91f8
|
|
/* 028F91F8 */ /* nop */
|
|
/* 028F91FC */ _t26 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F91FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F9200 */ cpu->lr = cpu->r[0];
|
|
/* 028F9204 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028F9208 */ return;
|
|
L_028F920C: ; // 0x28f920c
|
|
/* 028F920C */ cpu->r[12] = rbrew_rlwinm(cpu->r[28], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9210 */ cpu->r[6] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Bu, 0x0000001Fu);
|
|
/* 028F9210 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F9214 */ cpu->r[5] = cpu->r[12] + 0x0000001Fu;
|
|
/* 028F9218 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F921C */ cpu->r[24] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x00000000u, 0x0000001Au);
|
|
/* 028F9220 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9220 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F9220 */ if (_t28) goto L_028F9224; else goto L_028F9234;
|
|
L_028F9224: ; // 0x28f9224
|
|
/* 028F9224 */ cpu->r[7] = rbrew_rlwinm(cpu->r[27], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9228 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], cpu->r[7]);
|
|
/* 028F922C */ _t29 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F922C */ _t30 = _t29 & 0x00000001u;
|
|
/* 028F922C */ if (_t30) goto L_028F9234; else goto L_028F9230;
|
|
L_028F9230: ; // 0x28f9230
|
|
/* 028F9230 */ cpu->r[30] = 0x00000001u;
|
|
L_028F9234: ; // 0x28f9234
|
|
/* 028F9234 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F9238 */ cpu->r[30] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F923C */ _t31 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F923C */ _t32 = _t31 & 0x00000001u;
|
|
/* 028F923C */ if (_t32) goto L_028F9240; else goto L_028F9370;
|
|
L_028F9240: ; // 0x28f9240
|
|
/* 028F9240 */ cpu->r[8] = cpu->r[29] + 0xFFFFFFFFu;
|
|
/* 028F9244 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)cpu->r[28]);
|
|
/* 028F9248 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x00000003u);
|
|
/* 028F924C */ cpu->r[27] = rbrew_rlwinm(cpu->r[27], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9250 */ cpu->r[26] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)0xFFFFFFFDu);
|
|
/* 028F9254 */ cpu->r[25] = cpu->r[4] + cpu->r[0];
|
|
L_028F9258: ; // 0x28f9258
|
|
/* 028F9258 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F925C */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F925C */ _t34 = _t33 & 0x00000001u;
|
|
/* 028F925C */ if (_t34) goto L_028F926C; else goto L_028F9260;
|
|
L_028F9260: ; // 0x28f9260
|
|
/* 028F9260 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F9264 */ cpu->r[4] = cpu->r[24];
|
|
/* 028F9268 */ rbrew_dispatch(cpu, 0x02d09350u);
|
|
L_028F926C: ; // 0x28f926c
|
|
/* 028F926C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F9270 */ _t35 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9270 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F9270 */ if (_t36) goto L_028F9274; else goto L_028F92A4;
|
|
L_028F9274: ; // 0x28f9274
|
|
/* 028F9274 */ cpu->ctr = cpu->r[28];
|
|
/* 028F9278 */ cpu->r[0] = 0x000000FFu;
|
|
/* 028F927C */ cpu->r[9] = cpu->r[31] + 0xFFFFFFFCu;
|
|
/* 028F9280 */ cpu->r[8] = cpu->r[25] + 0xFFFFFFFDu;
|
|
L_028F9284: ; // 0x28f9284
|
|
/* 028F9284 */ _t37 = cpu->r[8] + 0x00000005u;
|
|
/* 028F9284 */ cpu->r[11] = rbrew_read8(cpu->mem, _t37);
|
|
/* 028F9288 */ _t38 = cpu->r[9] + 0x00000004u;
|
|
/* 028F9288 */ rbrew_write8(cpu->mem, _t38, (uint8_t)cpu->r[11]);
|
|
/* 028F9288 */ cpu->r[9] = _t38;
|
|
/* 028F928C */ _t39 = cpu->r[8] + 0x00000004u;
|
|
/* 028F928C */ cpu->r[12] = rbrew_read8(cpu->mem, _t39);
|
|
/* 028F9290 */ _t40 = cpu->r[9] + 0x00000001u;
|
|
/* 028F9290 */ rbrew_write8(cpu->mem, _t40, (uint8_t)cpu->r[12]);
|
|
/* 028F9294 */ _t41 = cpu->r[8] + 0x00000003u;
|
|
/* 028F9294 */ cpu->r[4] = rbrew_read8(cpu->mem, _t41);
|
|
/* 028F9294 */ cpu->r[8] = _t41;
|
|
/* 028F9298 */ _t42 = cpu->r[9] + 0x00000003u;
|
|
/* 028F9298 */ rbrew_write8(cpu->mem, _t42, (uint8_t)cpu->r[0]);
|
|
/* 028F929C */ _t43 = cpu->r[9] + 0x00000002u;
|
|
/* 028F929C */ rbrew_write8(cpu->mem, _t43, (uint8_t)cpu->r[4]);
|
|
/* 028F92A0 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F92A0 */ _t44 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F92A0 */ _t45 = _t44 >> (0x00000002u & 31u);
|
|
/* 028F92A0 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028F92A0 */ if (_t46) goto L_028F9284; else goto L_028F92A4;
|
|
L_028F92A4: ; // 0x28f92a4
|
|
/* 028F92A4 */ cpu->r[29] = cpu->r[29] + 0xFFFFFFFFu;
|
|
/* 028F92A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F92A8 */ cpu->r[25] = cpu->r[25] + cpu->r[26];
|
|
/* 028F92AC */ cpu->r[31] = cpu->r[31] + cpu->r[27];
|
|
/* 028F92B0 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F92B0 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028F92B0 */ if (_t48) goto L_028F92B4; else goto L_028F9258;
|
|
L_028F92B4: ; // 0x28f92b4
|
|
/* 028F92B4 */ /* nop */
|
|
/* 028F92B8 */ _t49 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F92B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028F92BC */ cpu->lr = cpu->r[0];
|
|
/* 028F92C0 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028F92C4 */ return;
|
|
L_028F92C8: ; // 0x28f92c8
|
|
/* 028F92C8 */ cpu->r[5] = rbrew_rlwinm(cpu->r[28], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F92CC */ cpu->r[7] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Bu, 0x0000001Fu);
|
|
/* 028F92CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028F92D0 */ cpu->r[6] = cpu->r[5] + 0x0000001Fu;
|
|
/* 028F92D4 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F92D8 */ cpu->r[24] = rbrew_rlwinm(cpu->r[6], 0x00000000u, 0x00000000u, 0x0000001Au);
|
|
/* 028F92DC */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F92DC */ _t51 = _t50 & 0x00000001u;
|
|
/* 028F92DC */ if (_t51) goto L_028F92E0; else goto L_028F92F0;
|
|
L_028F92E0: ; // 0x28f92e0
|
|
/* 028F92E0 */ cpu->r[8] = rbrew_rlwinm(cpu->r[27], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F92E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], cpu->r[8]);
|
|
/* 028F92E8 */ _t52 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F92E8 */ _t53 = _t52 & 0x00000001u;
|
|
/* 028F92E8 */ if (_t53) goto L_028F92F0; else goto L_028F92EC;
|
|
L_028F92EC: ; // 0x28f92ec
|
|
/* 028F92EC */ cpu->r[30] = 0x00000001u;
|
|
L_028F92F0: ; // 0x28f92f0
|
|
/* 028F92F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F92F4 */ cpu->r[30] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028F92F8 */ _t54 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F92F8 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028F92F8 */ if (_t55) goto L_028F92FC; else goto L_028F9370;
|
|
L_028F92FC: ; // 0x28f92fc
|
|
/* 028F92FC */ cpu->r[9] = cpu->r[29] + 0xFFFFFFFFu;
|
|
/* 028F9300 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)cpu->r[28]);
|
|
/* 028F9304 */ cpu->r[27] = rbrew_rlwinm(cpu->r[27], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9308 */ cpu->r[11] = rbrew_rlwinm(cpu->r[10], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F930C */ cpu->r[26] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)0xFFFFFFFCu);
|
|
/* 028F9310 */ cpu->r[25] = cpu->r[4] + cpu->r[11];
|
|
L_028F9314: ; // 0x28f9314
|
|
/* 028F9314 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028F9318 */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9318 */ _t57 = _t56 & 0x00000001u;
|
|
/* 028F9318 */ if (_t57) goto L_028F9328; else goto L_028F931C;
|
|
L_028F931C: ; // 0x28f931c
|
|
/* 028F931C */ cpu->r[3] = cpu->r[31];
|
|
/* 028F9320 */ cpu->r[4] = cpu->r[24];
|
|
/* 028F9324 */ rbrew_dispatch(cpu, 0x02d09350u);
|
|
L_028F9328: ; // 0x28f9328
|
|
/* 028F9328 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F932C */ _t58 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F932C */ _t59 = _t58 & 0x00000001u;
|
|
/* 028F932C */ if (_t59) goto L_028F9330; else goto L_028F9360;
|
|
L_028F9330: ; // 0x28f9330
|
|
/* 028F9330 */ cpu->ctr = cpu->r[28];
|
|
/* 028F9334 */ cpu->r[7] = cpu->r[31] + 0xFFFFFFFCu;
|
|
/* 028F9338 */ cpu->r[6] = cpu->r[25] + 0xFFFFFFFCu;
|
|
L_028F933C: ; // 0x28f933c
|
|
/* 028F933C */ _t60 = cpu->r[6] + 0x00000006u;
|
|
/* 028F933C */ cpu->r[12] = rbrew_read8(cpu->mem, _t60);
|
|
/* 028F9340 */ _t61 = cpu->r[7] + 0x00000004u;
|
|
/* 028F9340 */ rbrew_write8(cpu->mem, _t61, (uint8_t)cpu->r[12]);
|
|
/* 028F9340 */ cpu->r[7] = _t61;
|
|
/* 028F9344 */ _t62 = cpu->r[6] + 0x00000005u;
|
|
/* 028F9344 */ cpu->r[0] = rbrew_read8(cpu->mem, _t62);
|
|
/* 028F9348 */ _t63 = cpu->r[7] + 0x00000001u;
|
|
/* 028F9348 */ rbrew_write8(cpu->mem, _t63, (uint8_t)cpu->r[0]);
|
|
/* 028F934C */ _t64 = cpu->r[6] + 0x00000004u;
|
|
/* 028F934C */ cpu->r[4] = rbrew_read8(cpu->mem, _t64);
|
|
/* 028F934C */ cpu->r[6] = _t64;
|
|
/* 028F9350 */ _t65 = cpu->r[7] + 0x00000002u;
|
|
/* 028F9350 */ rbrew_write8(cpu->mem, _t65, (uint8_t)cpu->r[4]);
|
|
/* 028F9354 */ _t66 = cpu->r[6] + 0x00000003u;
|
|
/* 028F9354 */ cpu->r[0] = rbrew_read8(cpu->mem, _t66);
|
|
/* 028F9358 */ _t67 = cpu->r[7] + 0x00000003u;
|
|
/* 028F9358 */ rbrew_write8(cpu->mem, _t67, (uint8_t)cpu->r[0]);
|
|
/* 028F935C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F935C */ _t68 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F935C */ _t69 = _t68 >> (0x00000002u & 31u);
|
|
/* 028F935C */ _t70 = _t69 & 0x00000001u;
|
|
/* 028F935C */ if (_t70) goto L_028F933C; else goto L_028F9360;
|
|
L_028F9360: ; // 0x28f9360
|
|
/* 028F9360 */ cpu->r[29] = cpu->r[29] + 0xFFFFFFFFu;
|
|
/* 028F9360 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028F9364 */ cpu->r[25] = cpu->r[25] + cpu->r[26];
|
|
/* 028F9368 */ cpu->r[31] = cpu->r[31] + cpu->r[27];
|
|
/* 028F936C */ _t71 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F936C */ _t72 = _t71 & 0x00000001u;
|
|
/* 028F936C */ if (_t72) goto L_028F9370; else goto L_028F9314;
|
|
L_028F9370: ; // 0x28f9370
|
|
/* 028F9370 */ /* nop */
|
|
/* 028F9374 */ _t73 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F9374 */ cpu->r[0] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028F9378 */ cpu->lr = cpu->r[0];
|
|
/* 028F937C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028F9380 */ return;
|
|
}
|
|
|
|
// fn_028F9384 @ 0x28f9384
|
|
void Gambit_fn_028F9384(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F9384: ; // 0x28f9384
|
|
/* 028F9384 */ _t0 = cpu->r[1] + 0xFFFFFEF8u;
|
|
/* 028F9384 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F9384 */ cpu->r[1] = _t0;
|
|
/* 028F9388 */ cpu->r[0] = cpu->lr;
|
|
/* 028F938C */ /* nop */
|
|
/* 028F9390 */ cpu->r[28] = cpu->r[3];
|
|
/* 028F9394 */ cpu->r[31] = cpu->r[6];
|
|
/* 028F9394 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F9398 */ cpu->r[30] = cpu->r[5];
|
|
/* 028F939C */ _t1 = cpu->r[1] + 0x0000010Cu;
|
|
/* 028F939C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F93A0 */ cpu->r[29] = cpu->r[4];
|
|
/* 028F93A4 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F93A4 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F93A4 */ if (_t3) goto L_028F93A8; else goto L_028F93B4;
|
|
L_028F93A8: ; // 0x28f93a8
|
|
/* 028F93A8 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028F93AC */ _t4 = cpu->r[12] + 0xFFFFA304u;
|
|
/* 028F93AC */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F93B0 */ _t5 = cpu->r[12] + 0x00000014u;
|
|
/* 028F93B0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
L_028F93B4: ; // 0x28f93b4
|
|
/* 028F93B4 */ _t6 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F93B4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F93B8 */ _t7 = cpu->r[11] + 0x00000034u;
|
|
/* 028F93B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F93BC */ cpu->ctr = cpu->r[0];
|
|
/* 028F93C0 */ _t8 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028F93C0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F93C4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F93C8 */ cpu->r[5] = 0x00002000u;
|
|
/* 028F93CC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F93D0 */ _t9 = cpu->r[30] + 0x00000000u;
|
|
/* 028F93D0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F93D4 */ _t10 = cpu->r[30] + 0x00000004u;
|
|
/* 028F93D4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F93D8 */ cpu->r[8] = cpu->r[6];
|
|
/* 028F93DC */ _t11 = cpu->r[30] + 0x00000008u;
|
|
/* 028F93DC */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F93E0 */ _t12 = cpu->r[30] + 0x00000010u;
|
|
/* 028F93E0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028F93E4 */ cpu->r[27] = cpu->r[3];
|
|
/* 028F93E8 */ Gambit_fn_028F912C(cpu);
|
|
/* 028F93EC */ _t13 = cpu->r[30] + 0x00000000u;
|
|
/* 028F93EC */ cpu->r[6] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028F93F0 */ cpu->r[26] = 0x00000001u;
|
|
/* 028F93F4 */ _t14 = cpu->r[30] + 0x00000004u;
|
|
/* 028F93F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028F93F8 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F93F8 */ rbrew_write32(cpu->mem, _t15, cpu->r[6]);
|
|
/* 028F93FC */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028F93FC */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 028F9400 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028F9400 */ rbrew_write32(cpu->mem, _t17, cpu->r[26]);
|
|
/* 028F9404 */ _t18 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F9404 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F9408 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028F9408 */ rbrew_write32(cpu->mem, _t19, cpu->r[26]);
|
|
/* 028F940C */ _t20 = cpu->r[1] + 0x00000018u;
|
|
/* 028F940C */ rbrew_write32(cpu->mem, _t20, cpu->r[26]);
|
|
/* 028F9410 */ Gambit_fn_02905AD0(cpu);
|
|
/* 028F9414 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F9418 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F9418 */ rbrew_write32(cpu->mem, _t21, cpu->r[3]);
|
|
/* 028F941C */ _t22 = cpu->r[1] + 0x00000020u;
|
|
/* 028F941C */ rbrew_write32(cpu->mem, _t22, cpu->r[10]);
|
|
/* 028F9420 */ _t23 = cpu->r[1] + 0x00000024u;
|
|
/* 028F9420 */ rbrew_write32(cpu->mem, _t23, cpu->r[26]);
|
|
/* 028F9424 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F9428 */ _t24 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F9428 */ rbrew_write32(cpu->mem, _t24, cpu->r[10]);
|
|
/* 028F942C */ _t25 = cpu->r[1] + 0x00000038u;
|
|
/* 028F942C */ rbrew_write32(cpu->mem, _t25, cpu->r[10]);
|
|
/* 028F9430 */ _t26 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F9430 */ rbrew_write32(cpu->mem, _t26, cpu->r[29]);
|
|
/* 028F9434 */ _t27 = cpu->r[1] + 0x00000034u;
|
|
/* 028F9434 */ rbrew_write32(cpu->mem, _t27, cpu->r[10]);
|
|
/* 028F9438 */ rbrew_dispatch(cpu, 0x02d05878u);
|
|
/* 028F943C */ cpu->r[0] = 0x0000001Du;
|
|
/* 028F9440 */ cpu->r[6] = cpu->r[1] + 0x00000004u;
|
|
/* 028F9444 */ cpu->ctr = cpu->r[0];
|
|
/* 028F9448 */ cpu->r[7] = cpu->r[1] + 0x00000078u;
|
|
L_028F944C: ; // 0x28f944c
|
|
/* 028F944C */ _t28 = cpu->r[6] + 0x00000004u;
|
|
/* 028F944C */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F944C */ cpu->r[6] = _t28;
|
|
/* 028F9450 */ _t29 = cpu->r[7] + 0x00000004u;
|
|
/* 028F9450 */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 028F9450 */ cpu->r[7] = _t29;
|
|
/* 028F9454 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9454 */ _t30 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9454 */ _t31 = _t30 >> (0x00000002u & 31u);
|
|
/* 028F9454 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028F9454 */ if (_t32) goto L_028F944C; else goto L_028F9458;
|
|
L_028F9458: ; // 0x28f9458
|
|
/* 028F9458 */ _t33 = cpu->r[1] + 0x000000A0u;
|
|
/* 028F9458 */ rbrew_write32(cpu->mem, _t33, cpu->r[27]);
|
|
/* 028F945C */ cpu->r[0] = 0x00000010u;
|
|
/* 028F9460 */ cpu->r[3] = cpu->r[1] + 0x0000007Cu;
|
|
/* 028F9464 */ _t34 = cpu->r[1] + 0x000000ACu;
|
|
/* 028F9464 */ rbrew_write32(cpu->mem, _t34, cpu->r[0]);
|
|
/* 028F9468 */ rbrew_dispatch(cpu, 0x02d05878u);
|
|
/* 028F946C */ cpu->r[4] = 0x00000000u;
|
|
/* 028F9470 */ cpu->r[3] = cpu->r[1] + 0x0000007Cu;
|
|
/* 028F9474 */ cpu->r[7] = cpu->r[4];
|
|
/* 028F9478 */ cpu->r[5] = cpu->r[4];
|
|
/* 028F947C */ cpu->r[6] = cpu->r[1] + 0x00000008u;
|
|
/* 028F9480 */ cpu->r[8] = cpu->r[7];
|
|
/* 028F9484 */ rbrew_dispatch(cpu, 0x02d058c8u);
|
|
/* 028F9488 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028F948C */ cpu->r[3] = cpu->r[28];
|
|
/* 028F9490 */ Gambit_fn_02905B14(cpu);
|
|
/* 028F9494 */ _t35 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F9494 */ cpu->r[12] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F9498 */ _t36 = cpu->r[12] + 0x0000003Cu;
|
|
/* 028F9498 */ cpu->r[0] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F949C */ cpu->ctr = cpu->r[0];
|
|
/* 028F94A0 */ cpu->r[4] = cpu->r[27];
|
|
/* 028F94A4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F94A8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F94AC */ /* nop */
|
|
/* 028F94B0 */ _t37 = cpu->r[1] + 0x0000010Cu;
|
|
/* 028F94B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F94B4 */ cpu->lr = cpu->r[0];
|
|
/* 028F94B8 */ cpu->r[1] = cpu->r[1] + 0x00000108u;
|
|
/* 028F94BC */ return;
|
|
}
|
|
|
|
// fn_028F94C0 @ 0x28f94c0
|
|
void Gambit_fn_028F94C0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028F94C0: ; // 0x28f94c0
|
|
/* 028F94C0 */ cpu->r[0] = cpu->lr;
|
|
/* 028F94C4 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028F94C4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F94C4 */ cpu->r[1] = _t0;
|
|
/* 028F94C8 */ _t1 = cpu->r[1] + 0x00000030u;
|
|
/* 028F94C8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F94CC */ cpu->r[30] = cpu->r[4];
|
|
/* 028F94D0 */ cpu->r[4] = cpu->r[5];
|
|
/* 028F94D4 */ _t2 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F94D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028F94D8 */ cpu->r[5] = 0x00000000u;
|
|
/* 028F94DC */ _t3 = cpu->r[1] + 0x00000034u;
|
|
/* 028F94DC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028F94E0 */ _t4 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F94E0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F94E4 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F94E8 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F94EC */ cpu->r[31] = cpu->r[6];
|
|
/* 028F94F0 */ Gambit_fn_028F8EC8(cpu);
|
|
/* 028F94F4 */ _t5 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F94F4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F94F8 */ _t6 = cpu->r[12] + 0x00000034u;
|
|
/* 028F94F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F94FC */ cpu->ctr = cpu->r[0];
|
|
/* 028F9500 */ _t7 = cpu->r[1] + 0x00000024u;
|
|
/* 028F9500 */ cpu->r[4] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F9504 */ cpu->r[5] = 0x00002000u;
|
|
/* 028F9508 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F950C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F9510 */ cpu->r[4] = cpu->r[3];
|
|
/* 028F9514 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028F9518 */ cpu->r[6] = cpu->r[31];
|
|
/* 028F951C */ cpu->r[3] = cpu->r[29];
|
|
/* 028F9520 */ Gambit_fn_028F9384(cpu);
|
|
/* 028F9524 */ _t8 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F9524 */ cpu->r[29] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F9528 */ _t9 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F9528 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F952C */ _t10 = cpu->r[1] + 0x00000030u;
|
|
/* 028F952C */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F9530 */ cpu->lr = cpu->r[0];
|
|
/* 028F9534 */ _t11 = cpu->r[1] + 0x00000034u;
|
|
/* 028F9534 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F9538 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028F953C */ return;
|
|
}
|
|
|
|
// fn_028F94C4 @ 0x28f94c4
|
|
void Gambit_fn_028F94C4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028F94C4: ; // 0x28f94c4
|
|
/* 028F94C4 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028F94C4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F94C4 */ cpu->r[1] = _t0;
|
|
/* 028F94C8 */ _t1 = cpu->r[1] + 0x00000030u;
|
|
/* 028F94C8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F94CC */ cpu->r[30] = cpu->r[4];
|
|
/* 028F94D0 */ cpu->r[4] = cpu->r[5];
|
|
/* 028F94D4 */ _t2 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F94D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028F94D8 */ cpu->r[5] = 0x00000000u;
|
|
/* 028F94DC */ _t3 = cpu->r[1] + 0x00000034u;
|
|
/* 028F94DC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028F94E0 */ _t4 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F94E0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F94E4 */ cpu->r[29] = cpu->r[3];
|
|
/* 028F94E8 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F94EC */ cpu->r[31] = cpu->r[6];
|
|
/* 028F94F0 */ Gambit_fn_028F8EC8(cpu);
|
|
/* 028F94F4 */ _t5 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028F94F4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F94F8 */ _t6 = cpu->r[12] + 0x00000034u;
|
|
/* 028F94F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028F94FC */ cpu->ctr = cpu->r[0];
|
|
/* 028F9500 */ _t7 = cpu->r[1] + 0x00000024u;
|
|
/* 028F9500 */ cpu->r[4] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028F9504 */ cpu->r[5] = 0x00002000u;
|
|
/* 028F9508 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F950C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F9510 */ cpu->r[4] = cpu->r[3];
|
|
/* 028F9514 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028F9518 */ cpu->r[6] = cpu->r[31];
|
|
/* 028F951C */ cpu->r[3] = cpu->r[29];
|
|
/* 028F9520 */ Gambit_fn_028F9384(cpu);
|
|
/* 028F9524 */ _t8 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F9524 */ cpu->r[29] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028F9528 */ _t9 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F9528 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028F952C */ _t10 = cpu->r[1] + 0x00000030u;
|
|
/* 028F952C */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F9530 */ cpu->lr = cpu->r[0];
|
|
/* 028F9534 */ _t11 = cpu->r[1] + 0x00000034u;
|
|
/* 028F9534 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F9538 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028F953C */ return;
|
|
}
|
|
|
|
// fn_028F9540 @ 0x28f9540
|
|
void Gambit_fn_028F9540(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028F9540: ; // 0x28f9540
|
|
/* 028F9540 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000000u);
|
|
/* 028F9544 */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9544 */ _t1 = _t0 & 0x00000001u;
|
|
/* 028F9544 */ if (_t1) goto L_028F9560; else goto L_028F9548;
|
|
L_028F9548: ; // 0x28f9548
|
|
/* 028F9548 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000002u);
|
|
/* 028F954C */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F954C */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F954C */ if (_t3) goto L_028F9574; else goto L_028F9550;
|
|
L_028F9550: ; // 0x28f9550
|
|
/* 028F9550 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000007u);
|
|
/* 028F9554 */ _t4 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9554 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F9554 */ if (_t5) goto L_028F9558; else goto L_028F9568;
|
|
L_028F9558: ; // 0x28f9558
|
|
/* 028F9558 */ cpu->r[3] = 0x00000001u;
|
|
/* 028F955C */ return;
|
|
L_028F9560: ; // 0x28f9560
|
|
/* 028F9560 */ cpu->r[3] = 0x00000000u;
|
|
/* 028F9564 */ return;
|
|
L_028F9568: ; // 0x28f9568
|
|
/* 028F9568 */ cpu->r[12] = cpu->r[3] + 0x10140000u;
|
|
/* 028F956C */ _t6 = cpu->r[12] + 0xFFFFCF92u;
|
|
/* 028F956C */ cpu->r[3] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028F9570 */ return;
|
|
L_028F9574: ; // 0x28f9574
|
|
/* 028F9574 */ cpu->r[3] = 0x00000001u;
|
|
/* 028F9578 */ return;
|
|
}
|
|
|
|
// fn_028F957C @ 0x28f957c
|
|
void Gambit_fn_028F957C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028F957C: ; // 0x28f957c
|
|
/* 028F957C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000001u);
|
|
/* 028F9580 */ _t0 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F9580 */ _t1 = _t0 & 0x00000001u;
|
|
/* 028F9580 */ if (_t1) goto L_028F95A0; else goto L_028F9584;
|
|
L_028F9584: ; // 0x28f9584
|
|
/* 028F9584 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9584 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F9584 */ if (_t3) goto L_028F95A8; else goto L_028F9588;
|
|
L_028F9588: ; // 0x28f9588
|
|
/* 028F9588 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000003u);
|
|
/* 028F958C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F958C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F958C */ if (_t5) goto L_028F95B0; else goto L_028F9590;
|
|
L_028F9590: ; // 0x28f9590
|
|
/* 028F9590 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000004u);
|
|
/* 028F9594 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9594 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F9594 */ if (_t7) goto L_028F95B8; else goto L_028F9598;
|
|
L_028F9598: ; // 0x28f9598
|
|
/* 028F9598 */ cpu->r[3] = 0x00000000u;
|
|
/* 028F959C */ return;
|
|
L_028F95A0: ; // 0x28f95a0
|
|
/* 028F95A0 */ cpu->r[3] = 0x00000010u;
|
|
/* 028F95A4 */ return;
|
|
L_028F95A8: ; // 0x28f95a8
|
|
/* 028F95A8 */ cpu->r[3] = 0x00000001u;
|
|
/* 028F95AC */ return;
|
|
L_028F95B0: ; // 0x28f95b0
|
|
/* 028F95B0 */ cpu->r[3] = 0x00000002u;
|
|
/* 028F95B4 */ return;
|
|
L_028F95B8: ; // 0x28f95b8
|
|
/* 028F95B8 */ cpu->r[3] = 0x00000004u;
|
|
/* 028F95BC */ return;
|
|
}
|
|
|
|
// fn_028F95C0 @ 0x28f95c0
|
|
void Gambit_fn_028F95C0(CPUState* cpu) {
|
|
uint32_t _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_028F95C0: ; // 0x28f95c0
|
|
/* 028F95C0 */ cpu->r[0] = cpu->lr;
|
|
/* 028F95C4 */ _t0 = cpu->r[1] + 0xFFFFFF78u;
|
|
/* 028F95C4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F95C4 */ cpu->r[1] = _t0;
|
|
/* 028F95C8 */ _t1 = cpu->r[1] + 0x00000080u;
|
|
/* 028F95C8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F95CC */ cpu->r[30] = cpu->r[8];
|
|
/* 028F95D0 */ _t2 = cpu->r[1] + 0x00000084u;
|
|
/* 028F95D0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F95D4 */ _t3 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028F95D4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F95D8 */ Gambit_fn_028F9540(cpu);
|
|
/* 028F95DC */ cpu->r[31] = 0x00000001u;
|
|
/* 028F95E0 */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 028F95E0 */ rbrew_write32(cpu->mem, _t4, cpu->r[3]);
|
|
/* 028F95E4 */ _t5 = cpu->r[1] + 0x00000018u;
|
|
/* 028F95E4 */ rbrew_write32(cpu->mem, _t5, cpu->r[31]);
|
|
/* 028F95E8 */ _t6 = cpu->r[1] + 0x00000010u;
|
|
/* 028F95E8 */ rbrew_write32(cpu->mem, _t6, cpu->r[6]);
|
|
/* 028F95EC */ cpu->r[3] = cpu->r[4];
|
|
/* 028F95F0 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F95F0 */ rbrew_write32(cpu->mem, _t7, cpu->r[5]);
|
|
/* 028F95F4 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028F95F4 */ rbrew_write32(cpu->mem, _t8, cpu->r[7]);
|
|
/* 028F95F8 */ Gambit_fn_02905AD0(cpu);
|
|
/* 028F95FC */ cpu->r[10] = 0x00000000u;
|
|
/* 028F9600 */ _t9 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F9600 */ rbrew_write32(cpu->mem, _t9, cpu->r[3]);
|
|
/* 028F9604 */ _t10 = cpu->r[1] + 0x00000020u;
|
|
/* 028F9604 */ rbrew_write32(cpu->mem, _t10, cpu->r[10]);
|
|
/* 028F9608 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F960C */ _t11 = cpu->r[1] + 0x00000024u;
|
|
/* 028F960C */ rbrew_write32(cpu->mem, _t11, cpu->r[31]);
|
|
/* 028F9610 */ Gambit_fn_028F957C(cpu);
|
|
/* 028F9614 */ _t12 = cpu->r[1] + 0x00000040u;
|
|
/* 028F9614 */ rbrew_write32(cpu->mem, _t12, cpu->r[10]);
|
|
/* 028F9618 */ _t13 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F9618 */ rbrew_write32(cpu->mem, _t13, cpu->r[10]);
|
|
/* 028F961C */ _t14 = cpu->r[1] + 0x00000038u;
|
|
/* 028F961C */ rbrew_write32(cpu->mem, _t14, cpu->r[3]);
|
|
/* 028F9620 */ _t15 = cpu->r[1] + 0x00000030u;
|
|
/* 028F9620 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 028F9624 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F9628 */ _t16 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F9628 */ rbrew_write32(cpu->mem, _t16, cpu->r[10]);
|
|
/* 028F962C */ _t17 = cpu->r[1] + 0x00000028u;
|
|
/* 028F962C */ rbrew_write32(cpu->mem, _t17, cpu->r[10]);
|
|
/* 028F9630 */ _t18 = cpu->r[1] + 0x00000044u;
|
|
/* 028F9630 */ rbrew_write32(cpu->mem, _t18, cpu->r[10]);
|
|
/* 028F9634 */ _t19 = cpu->r[1] + 0x00000034u;
|
|
/* 028F9634 */ rbrew_write32(cpu->mem, _t19, cpu->r[10]);
|
|
/* 028F9638 */ Gambit_fn_02905B10(cpu);
|
|
/* 028F963C */ _t20 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028F963C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F9640 */ _t21 = cpu->r[1] + 0x00000080u;
|
|
/* 028F9640 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F9644 */ cpu->lr = cpu->r[0];
|
|
/* 028F9648 */ _t22 = cpu->r[1] + 0x00000028u;
|
|
/* 028F9648 */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F964C */ _t23 = cpu->r[1] + 0x00000084u;
|
|
/* 028F964C */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F9650 */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 028F9654 */ return;
|
|
}
|
|
|
|
// fn_028F95C4 @ 0x28f95c4
|
|
void Gambit_fn_028F95C4(CPUState* cpu) {
|
|
uint32_t _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_028F95C4: ; // 0x28f95c4
|
|
/* 028F95C4 */ _t0 = cpu->r[1] + 0xFFFFFF78u;
|
|
/* 028F95C4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F95C4 */ cpu->r[1] = _t0;
|
|
/* 028F95C8 */ _t1 = cpu->r[1] + 0x00000080u;
|
|
/* 028F95C8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028F95CC */ cpu->r[30] = cpu->r[8];
|
|
/* 028F95D0 */ _t2 = cpu->r[1] + 0x00000084u;
|
|
/* 028F95D0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F95D4 */ _t3 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028F95D4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F95D8 */ Gambit_fn_028F9540(cpu);
|
|
/* 028F95DC */ cpu->r[31] = 0x00000001u;
|
|
/* 028F95E0 */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 028F95E0 */ rbrew_write32(cpu->mem, _t4, cpu->r[3]);
|
|
/* 028F95E4 */ _t5 = cpu->r[1] + 0x00000018u;
|
|
/* 028F95E4 */ rbrew_write32(cpu->mem, _t5, cpu->r[31]);
|
|
/* 028F95E8 */ _t6 = cpu->r[1] + 0x00000010u;
|
|
/* 028F95E8 */ rbrew_write32(cpu->mem, _t6, cpu->r[6]);
|
|
/* 028F95EC */ cpu->r[3] = cpu->r[4];
|
|
/* 028F95F0 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F95F0 */ rbrew_write32(cpu->mem, _t7, cpu->r[5]);
|
|
/* 028F95F4 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028F95F4 */ rbrew_write32(cpu->mem, _t8, cpu->r[7]);
|
|
/* 028F95F8 */ Gambit_fn_02905AD0(cpu);
|
|
/* 028F95FC */ cpu->r[10] = 0x00000000u;
|
|
/* 028F9600 */ _t9 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F9600 */ rbrew_write32(cpu->mem, _t9, cpu->r[3]);
|
|
/* 028F9604 */ _t10 = cpu->r[1] + 0x00000020u;
|
|
/* 028F9604 */ rbrew_write32(cpu->mem, _t10, cpu->r[10]);
|
|
/* 028F9608 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F960C */ _t11 = cpu->r[1] + 0x00000024u;
|
|
/* 028F960C */ rbrew_write32(cpu->mem, _t11, cpu->r[31]);
|
|
/* 028F9610 */ Gambit_fn_028F957C(cpu);
|
|
/* 028F9614 */ _t12 = cpu->r[1] + 0x00000040u;
|
|
/* 028F9614 */ rbrew_write32(cpu->mem, _t12, cpu->r[10]);
|
|
/* 028F9618 */ _t13 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F9618 */ rbrew_write32(cpu->mem, _t13, cpu->r[10]);
|
|
/* 028F961C */ _t14 = cpu->r[1] + 0x00000038u;
|
|
/* 028F961C */ rbrew_write32(cpu->mem, _t14, cpu->r[3]);
|
|
/* 028F9620 */ _t15 = cpu->r[1] + 0x00000030u;
|
|
/* 028F9620 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 028F9624 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028F9628 */ _t16 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F9628 */ rbrew_write32(cpu->mem, _t16, cpu->r[10]);
|
|
/* 028F962C */ _t17 = cpu->r[1] + 0x00000028u;
|
|
/* 028F962C */ rbrew_write32(cpu->mem, _t17, cpu->r[10]);
|
|
/* 028F9630 */ _t18 = cpu->r[1] + 0x00000044u;
|
|
/* 028F9630 */ rbrew_write32(cpu->mem, _t18, cpu->r[10]);
|
|
/* 028F9634 */ _t19 = cpu->r[1] + 0x00000034u;
|
|
/* 028F9634 */ rbrew_write32(cpu->mem, _t19, cpu->r[10]);
|
|
/* 028F9638 */ Gambit_fn_02905B10(cpu);
|
|
/* 028F963C */ _t20 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028F963C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028F9640 */ _t21 = cpu->r[1] + 0x00000080u;
|
|
/* 028F9640 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028F9644 */ cpu->lr = cpu->r[0];
|
|
/* 028F9648 */ _t22 = cpu->r[1] + 0x00000028u;
|
|
/* 028F9648 */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028F964C */ _t23 = cpu->r[1] + 0x00000084u;
|
|
/* 028F964C */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F9650 */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 028F9654 */ return;
|
|
}
|
|
|
|
// fn_028F965C @ 0x28f965c
|
|
void Gambit_fn_028F965C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F965C: ; // 0x28f965c
|
|
/* 028F965C */ _t0 = cpu->r[1] + 0xFFFFFF40u;
|
|
/* 028F965C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F965C */ cpu->r[1] = _t0;
|
|
/* 028F9660 */ _t1 = cpu->r[1] + 0x000000C4u;
|
|
/* 028F9660 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F9664 */ /* nop */
|
|
/* 028F9668 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F966C */ cpu->r[26] = cpu->r[5];
|
|
/* 028F9670 */ cpu->r[25] = cpu->r[6];
|
|
/* 028F9674 */ cpu->r[23] = cpu->r[3];
|
|
/* 028F9678 */ cpu->r[27] = cpu->r[8];
|
|
/* 028F9678 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028F967C */ cpu->r[28] = cpu->r[9];
|
|
/* 028F9680 */ cpu->r[3] = cpu->r[7];
|
|
/* 028F9684 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9684 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F9684 */ if (_t3) goto L_028F9688; else goto L_028F9694;
|
|
L_028F9688: ; // 0x28f9688
|
|
/* 028F9688 */ cpu->r[10] = 0x101D0000u;
|
|
/* 028F968C */ _t4 = cpu->r[10] + 0xFFFFA304u;
|
|
/* 028F968C */ cpu->r[10] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F9690 */ _t5 = cpu->r[10] + 0x00000014u;
|
|
/* 028F9690 */ cpu->r[27] = rbrew_read32(cpu->mem, _t5);
|
|
L_028F9694: ; // 0x28f9694
|
|
/* 028F9694 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000002u);
|
|
/* 028F9698 */ cpu->r[24] = 0x00000020u;
|
|
/* 028F969C */ _t6 = cpu->r[25] + 0x0000007Cu;
|
|
/* 028F969C */ cpu->r[11] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028F96A0 */ _t7 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F96A0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F96A0 */ if (_t8) goto L_028F96AC; else goto L_028F96A4;
|
|
L_028F96A4: ; // 0x28f96a4
|
|
/* 028F96A4 */ cpu->r[10] = cpu->r[31] + 0x10140000u;
|
|
/* 028F96A8 */ _t9 = cpu->r[10] + 0xFFFFCFB4u;
|
|
/* 028F96A8 */ cpu->r[24] = rbrew_read8(cpu->mem, _t9);
|
|
L_028F96AC: ; // 0x28f96ac
|
|
/* 028F96AC */ _t10 = cpu->r[25] + 0x00000008u;
|
|
/* 028F96AC */ cpu->r[29] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F96B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[29]);
|
|
/* 028F96B4 */ _t11 = cpu->r[25] + 0x0000000Cu;
|
|
/* 028F96B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F96B8 */ _t12 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F96B8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F96B8 */ if (_t13) goto L_028F96BC; else goto L_028F96C0;
|
|
L_028F96BC: ; // 0x28f96bc
|
|
/* 028F96BC */ cpu->r[29] = cpu->r[11];
|
|
L_028F96C0: ; // 0x28f96c0
|
|
/* 028F96C0 */ _t14 = cpu->r[25] + 0x0000007Du;
|
|
/* 028F96C0 */ cpu->r[30] = rbrew_read8(cpu->mem, _t14);
|
|
/* 028F96C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[30]);
|
|
/* 028F96C8 */ _t15 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F96C8 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F96C8 */ if (_t16) goto L_028F96CC; else goto L_028F96D0;
|
|
L_028F96CC: ; // 0x28f96cc
|
|
/* 028F96CC */ cpu->r[30] = cpu->r[0];
|
|
L_028F96D0: ; // 0x28f96d0
|
|
/* 028F96D0 */ cpu->r[29] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028F96D4 */ cpu->r[30] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028F96D8 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[29] * (int32_t)cpu->r[30]);
|
|
/* 028F96DC */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)cpu->r[24]);
|
|
/* 028F96E0 */ /* nop */
|
|
/* 028F96E4 */ cpu->r[20] = cpu->r[8];
|
|
/* 028F96E8 */ cpu->r[4] = cpu->r[20] + 0x0000002Cu;
|
|
/* 028F96EC */ _t17 = cpu->r[23] + 0x00000004u;
|
|
/* 028F96EC */ rbrew_write32(cpu->mem, _t17, cpu->r[4]);
|
|
/* 028F96F0 */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F96F0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F96F4 */ _t19 = cpu->r[10] + 0x00000034u;
|
|
/* 028F96F4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F96F8 */ cpu->ctr = cpu->r[10];
|
|
/* 028F96FC */ cpu->r[5] = 0x00000040u;
|
|
/* 028F9700 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F9704 */ cpu->r[22] = 0x00000000u;
|
|
/* 028F9708 */ cpu->r[5] = 0x00000012u;
|
|
/* 028F970C */ cpu->r[4] = cpu->r[22];
|
|
/* 028F9710 */ cpu->r[21] = cpu->r[3];
|
|
/* 028F9714 */ _t20 = cpu->r[23] + 0x00000000u;
|
|
/* 028F9714 */ rbrew_write32(cpu->mem, _t20, cpu->r[3]);
|
|
/* 028F9718 */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028F971C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000002u);
|
|
/* 028F9720 */ _t21 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9720 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F9720 */ if (_t22) goto L_028F9730; else goto L_028F9724;
|
|
L_028F9724: ; // 0x28f9724
|
|
/* 028F9724 */ cpu->r[4] = cpu->r[31] + 0x10140000u;
|
|
/* 028F9728 */ _t23 = cpu->r[4] + 0xFFFFCFB7u;
|
|
/* 028F9728 */ cpu->r[5] = rbrew_read8(cpu->mem, _t23);
|
|
/* 028F972C */ _t24 = cpu->r[21] + 0x00000002u;
|
|
/* 028F972C */ rbrew_write8(cpu->mem, _t24, (uint8_t)cpu->r[5]);
|
|
L_028F9730: ; // 0x28f9730
|
|
/* 028F9730 */ cpu->r[31] = 0x10110000u;
|
|
/* 028F9734 */ _t25 = cpu->r[31] + 0x00007350u;
|
|
/* 028F9734 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F9738 */ cpu->ctr = cpu->r[31];
|
|
/* 028F973C */ cpu->r[3] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028F9740 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F9744 */ cpu->ctr = cpu->r[31];
|
|
/* 028F9748 */ _t26 = cpu->r[21] + 0x0000000Cu;
|
|
/* 028F9748 */ rbrew_write16(cpu->mem, _t26, (uint16_t)cpu->r[3]);
|
|
/* 028F974C */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028F9750 */ cpu->r[3] = cpu->r[0];
|
|
/* 028F9754 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F9758 */ _t27 = cpu->r[21] + 0x0000000Eu;
|
|
/* 028F9758 */ rbrew_write16(cpu->mem, _t27, (uint16_t)cpu->r[3]);
|
|
/* 028F975C */ cpu->r[0] = 0x00000008u;
|
|
/* 028F9760 */ _t28 = cpu->r[21] + 0x00000010u;
|
|
/* 028F9760 */ rbrew_write8(cpu->mem, _t28, (uint8_t)cpu->r[24]);
|
|
/* 028F9764 */ cpu->r[4] = 0x10140000u;
|
|
/* 028F9768 */ _t29 = cpu->r[21] + 0x00000011u;
|
|
/* 028F9768 */ rbrew_write8(cpu->mem, _t29, (uint8_t)cpu->r[0]);
|
|
/* 028F976C */ _t30 = cpu->r[23] + 0x00000000u;
|
|
/* 028F976C */ cpu->r[12] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F9770 */ cpu->r[11] = cpu->r[12] + cpu->r[20];
|
|
/* 028F9774 */ cpu->r[4] = cpu->r[4] + 0xFFFFCFBCu;
|
|
/* 028F9778 */ cpu->r[5] = 0x00000012u;
|
|
/* 028F977C */ _t31 = cpu->r[11] + 0x00000012u;
|
|
/* 028F977C */ rbrew_write32(cpu->mem, _t31, cpu->r[22]);
|
|
/* 028F9780 */ cpu->r[3] = cpu->r[11] + 0x0000001Au;
|
|
/* 028F9784 */ cpu->r[6] = 0x00000000u;
|
|
/* 028F9788 */ _t32 = cpu->r[11] + 0x00000016u;
|
|
/* 028F9788 */ rbrew_write32(cpu->mem, _t32, cpu->r[22]);
|
|
/* 028F978C */ cpu->r[31] = cpu->r[12] + 0x00000012u;
|
|
/* 028F9790 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028F9794 */ _t33 = cpu->r[1] + 0x00000030u;
|
|
/* 028F9794 */ rbrew_write32(cpu->mem, _t33, cpu->r[22]);
|
|
/* 028F9798 */ cpu->r[0] = 0x0000001Au;
|
|
/* 028F979C */ _t34 = cpu->r[1] + 0x00000020u;
|
|
/* 028F979C */ rbrew_write32(cpu->mem, _t34, cpu->r[30]);
|
|
/* 028F97A0 */ cpu->r[9] = 0x00000001u;
|
|
/* 028F97A4 */ _t35 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F97A4 */ rbrew_write32(cpu->mem, _t35, cpu->r[0]);
|
|
/* 028F97A8 */ cpu->r[0] = 0x00000010u;
|
|
/* 028F97AC */ _t36 = cpu->r[1] + 0x00000028u;
|
|
/* 028F97AC */ rbrew_write32(cpu->mem, _t36, cpu->r[9]);
|
|
/* 028F97B0 */ _t37 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F97B0 */ rbrew_write32(cpu->mem, _t37, cpu->r[22]);
|
|
/* 028F97B4 */ cpu->r[5] = 0x00000003u;
|
|
/* 028F97B8 */ _t38 = cpu->r[1] + 0x00000018u;
|
|
/* 028F97B8 */ rbrew_write32(cpu->mem, _t38, cpu->r[9]);
|
|
/* 028F97BC */ cpu->r[23] = 0x00000000u;
|
|
/* 028F97C0 */ _t39 = cpu->r[1] + 0x00000048u;
|
|
/* 028F97C0 */ rbrew_write32(cpu->mem, _t39, cpu->r[0]);
|
|
/* 028F97C4 */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028F97C8 */ _t40 = cpu->r[1] + 0x00000024u;
|
|
/* 028F97C8 */ rbrew_write32(cpu->mem, _t40, cpu->r[9]);
|
|
/* 028F97CC */ _t41 = cpu->r[1] + 0x00000034u;
|
|
/* 028F97CC */ rbrew_write32(cpu->mem, _t41, cpu->r[5]);
|
|
/* 028F97D0 */ _t42 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F97D0 */ rbrew_write32(cpu->mem, _t42, cpu->r[29]);
|
|
/* 028F97D4 */ rbrew_dispatch(cpu, 0x02d05878u);
|
|
/* 028F97D8 */ _t43 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028F97D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028F97DC */ _t44 = cpu->r[12] + 0x00000034u;
|
|
/* 028F97DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028F97E0 */ _t45 = cpu->r[1] + 0x00000038u;
|
|
/* 028F97E0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F97E4 */ cpu->ctr = cpu->r[0];
|
|
/* 028F97E8 */ _t46 = cpu->r[1] + 0x00000050u;
|
|
/* 028F97E8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F97EC */ cpu->r[7] = cpu->r[8] + 0x0000001Fu;
|
|
/* 028F97F0 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F97F4 */ cpu->r[21] = rbrew_rlwinm(cpu->r[7], 0x00000000u, 0x00000000u, 0x0000001Au);
|
|
/* 028F97F8 */ cpu->r[9] = cpu->r[10] + 0x0000001Fu;
|
|
/* 028F97FC */ cpu->r[4] = cpu->r[21];
|
|
/* 028F9800 */ cpu->r[5] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x00000000u, 0x0000001Au);
|
|
/* 028F9804 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F9808 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F980C */ _t47 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F980C */ rbrew_write32(cpu->mem, _t47, cpu->r[3]);
|
|
/* 028F9810 */ cpu->r[22] = 0x101D0000u;
|
|
/* 028F9814 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9814 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F9814 */ if (_t49) goto L_028F9818; else goto L_028F9888;
|
|
L_028F9818: ; // 0x28f9818
|
|
/* 028F9818 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F981C */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F981C */ _t51 = _t50 & 0x00000001u;
|
|
/* 028F981C */ if (_t51) goto L_028F9888; else goto L_028F9820;
|
|
L_028F9820: ; // 0x28f9820
|
|
/* 028F9820 */ cpu->r[11] = cpu->r[29] + 0x000000FFu;
|
|
/* 028F9824 */ cpu->r[4] = 0x10140000u;
|
|
/* 028F9828 */ _t52 = cpu->r[22] + 0xFFFFA504u;
|
|
/* 028F9828 */ cpu->r[3] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028F982C */ cpu->r[6] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x00000000u, 0x00000017u);
|
|
/* 028F9830 */ cpu->r[4] = cpu->r[4] + 0xFFFFCF9Cu;
|
|
/* 028F9834 */ cpu->r[10] = 0x10140000u;
|
|
/* 028F9838 */ cpu->r[8] = 0x00000001u;
|
|
/* 028F983C */ _t53 = cpu->r[1] + 0x00000014u;
|
|
/* 028F983C */ rbrew_write32(cpu->mem, _t53, cpu->r[4]);
|
|
/* 028F9840 */ cpu->r[10] = cpu->r[10] + 0xFFFFCFD0u;
|
|
/* 028F9844 */ cpu->r[7] = cpu->r[30];
|
|
/* 028F9848 */ _t54 = cpu->r[1] + 0x00000008u;
|
|
/* 028F9848 */ rbrew_write32(cpu->mem, _t54, cpu->r[8]);
|
|
/* 028F984C */ cpu->r[9] = 0x00000000u;
|
|
/* 028F9850 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028F9854 */ _t55 = cpu->r[1] + 0x00000010u;
|
|
/* 028F9854 */ rbrew_write32(cpu->mem, _t55, cpu->r[10]);
|
|
/* 028F9858 */ cpu->r[10] = 0x00000002u;
|
|
/* 028F985C */ cpu->r[5] = 0x0000001Du;
|
|
/* 028F9860 */ _t56 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F9860 */ rbrew_write32(cpu->mem, _t56, cpu->r[9]);
|
|
/* 028F9864 */ Gambit_fn_029456B0(cpu);
|
|
/* 028F9868 */ cpu->r[23] = cpu->r[3];
|
|
/* 028F986C */ _t57 = cpu->r[23] + 0x00000028u;
|
|
/* 028F986C */ cpu->r[4] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028F9870 */ cpu->r[3] = 0x00000010u;
|
|
/* 028F9874 */ cpu->r[5] = cpu->r[21];
|
|
/* 028F9878 */ _t58 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F9878 */ rbrew_write32(cpu->mem, _t58, cpu->r[4]);
|
|
/* 028F987C */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
/* 028F9880 */ rbrew_dispatch(cpu, 0x02d05918u);
|
|
/* 028F9884 */ _t59 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F9884 */ cpu->r[3] = rbrew_read32(cpu->mem, _t59);
|
|
L_028F9888: ; // 0x28f9888
|
|
/* 028F9888 */ cpu->r[4] = cpu->r[21];
|
|
/* 028F988C */ rbrew_dispatch(cpu, 0x02d09330u);
|
|
/* 028F9890 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F9894 */ cpu->r[3] = cpu->r[25] + 0x00000004u;
|
|
/* 028F9898 */ cpu->r[7] = cpu->r[4];
|
|
/* 028F989C */ cpu->r[5] = cpu->r[4];
|
|
/* 028F98A0 */ cpu->r[6] = cpu->r[1] + 0x00000018u;
|
|
/* 028F98A4 */ cpu->r[8] = cpu->r[7];
|
|
/* 028F98A8 */ rbrew_dispatch(cpu, 0x02d058c8u);
|
|
/* 028F98AC */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F98B0 */ _t60 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F98B0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028F98B4 */ Gambit_fn_02906024(cpu);
|
|
/* 028F98B8 */ cpu->r[5] = rbrew_rlwinm(cpu->r[24], 0x0000001Du, 0x00000003u, 0x0000001Fu);
|
|
/* 028F98BC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x00000001u);
|
|
/* 028F98C0 */ _t61 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F98C0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028F98C4 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F98C4 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028F98C4 */ if (_t63) goto L_028F9908; else goto L_028F98C8;
|
|
L_028F98C8: ; // 0x28f98c8
|
|
/* 028F98C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x00000003u);
|
|
/* 028F98CC */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F98CC */ _t65 = _t64 & 0x00000001u;
|
|
/* 028F98CC */ if (_t65) goto L_028F9994; else goto L_028F98D0;
|
|
L_028F98D0: ; // 0x28f98d0
|
|
/* 028F98D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x00000004u);
|
|
/* 028F98D4 */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F98D4 */ _t67 = _t66 & 0x00000001u;
|
|
/* 028F98D4 */ if (_t67) goto L_028F9AA8; else goto L_028F98D8;
|
|
L_028F98D8: ; // 0x28f98d8
|
|
/* 028F98D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028F98DC */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F98DC */ _t69 = _t68 & 0x00000001u;
|
|
/* 028F98DC */ if (_t69) goto L_028F98E0; else goto L_028F9BFC;
|
|
L_028F98E0: ; // 0x28f98e0
|
|
/* 028F98E0 */ _t70 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028F98E0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028F98E4 */ _t71 = cpu->r[8] + 0x0000003Cu;
|
|
/* 028F98E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028F98E8 */ cpu->ctr = cpu->r[0];
|
|
/* 028F98EC */ cpu->r[3] = cpu->r[27];
|
|
/* 028F98F0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F98F4 */ /* nop */
|
|
/* 028F98F8 */ _t72 = cpu->r[1] + 0x000000C4u;
|
|
/* 028F98F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028F98FC */ cpu->lr = cpu->r[0];
|
|
/* 028F9900 */ cpu->r[1] = cpu->r[1] + 0x000000C0u;
|
|
/* 028F9904 */ return;
|
|
L_028F9908: ; // 0x28f9908
|
|
/* 028F9908 */ cpu->r[12] = cpu->r[30];
|
|
/* 028F9908 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F990C */ cpu->r[3] = 0x00000000u;
|
|
/* 028F9910 */ _t73 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9910 */ _t74 = _t73 & 0x00000001u;
|
|
/* 028F9910 */ if (_t74) goto L_028F9914; else goto L_028F9BF4;
|
|
L_028F9914: ; // 0x28f9914
|
|
/* 028F9914 */ cpu->r[9] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 028F9918 */ cpu->r[5] = cpu->r[29];
|
|
L_028F991C: ; // 0x28f991c
|
|
/* 028F991C */ cpu->r[8] = cpu->r[29];
|
|
/* 028F991C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F9920 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F9924 */ _t75 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9924 */ _t76 = _t75 & 0x00000001u;
|
|
/* 028F9924 */ if (_t76) goto L_028F9928; else goto L_028F9974;
|
|
L_028F9928: ; // 0x28f9928
|
|
/* 028F9928 */ cpu->ctr = cpu->r[8];
|
|
/* 028F992C */ cpu->r[11] = cpu->r[31] + 0xFFFFFFFFu;
|
|
L_028F9930: ; // 0x28f9930
|
|
/* 028F9930 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9934 */ _t77 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9934 */ _t78 = _t77 & 0x00000001u;
|
|
/* 028F9934 */ if (_t78) goto L_028F9958; else goto L_028F9938;
|
|
L_028F9938: ; // 0x28f9938
|
|
/* 028F9938 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)cpu->r[29]);
|
|
/* 028F993C */ cpu->r[7] = cpu->r[6] + cpu->r[10];
|
|
/* 028F9940 */ cpu->r[8] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9944 */ _t79 = cpu->r[8] + cpu->r[4];
|
|
/* 028F9944 */ cpu->r[0] = rbrew_read8(cpu->mem, _t79);
|
|
/* 028F9948 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028F994C */ _t80 = cpu->r[11] + 0x00000001u;
|
|
/* 028F994C */ rbrew_write8(cpu->mem, _t80, (uint8_t)cpu->r[0]);
|
|
/* 028F994C */ cpu->r[11] = _t80;
|
|
/* 028F9950 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9950 */ _t81 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9950 */ _t82 = _t81 >> (0x00000002u & 31u);
|
|
/* 028F9950 */ _t83 = _t82 & 0x00000001u;
|
|
/* 028F9950 */ if (_t83) goto L_028F9930; else goto L_028F9954;
|
|
L_028F9954: ; // 0x28f9954
|
|
/* 028F9954 */ goto L_028F9974;
|
|
L_028F9958: ; // 0x28f9958
|
|
/* 028F9958 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)cpu->r[29]);
|
|
/* 028F995C */ cpu->r[7] = cpu->r[6] + cpu->r[10];
|
|
/* 028F9960 */ cpu->r[8] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9964 */ _t84 = cpu->r[8] + cpu->r[4];
|
|
/* 028F9964 */ cpu->r[0] = rbrew_read8(cpu->mem, _t84);
|
|
/* 028F9968 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028F996C */ _t85 = cpu->r[11] + 0x00000001u;
|
|
/* 028F996C */ rbrew_write8(cpu->mem, _t85, (uint8_t)cpu->r[0]);
|
|
/* 028F996C */ cpu->r[11] = _t85;
|
|
/* 028F9970 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9970 */ _t86 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9970 */ _t87 = _t86 >> (0x00000002u & 31u);
|
|
/* 028F9970 */ _t88 = _t87 & 0x00000001u;
|
|
/* 028F9970 */ if (_t88) goto L_028F9930; else goto L_028F9974;
|
|
L_028F9974: ; // 0x28f9974
|
|
/* 028F9974 */ cpu->r[31] = cpu->r[31] + cpu->r[5];
|
|
/* 028F9978 */ cpu->r[12] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028F9978 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F997C */ cpu->r[3] = cpu->r[3] + 0x00000001u;
|
|
/* 028F9980 */ cpu->r[9] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 028F9984 */ _t89 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9984 */ _t90 = _t89 & 0x00000001u;
|
|
/* 028F9984 */ if (_t90) goto L_028F9988; else goto L_028F991C;
|
|
L_028F9988: ; // 0x28f9988
|
|
/* 028F9988 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028F998C */ _t91 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F998C */ _t92 = _t91 & 0x00000001u;
|
|
/* 028F998C */ if (_t92) goto L_028F98E0; else goto L_028F9990;
|
|
L_028F9990: ; // 0x28f9990
|
|
/* 028F9990 */ goto L_028F9BFC;
|
|
L_028F9994: ; // 0x28f9994
|
|
/* 028F9994 */ cpu->r[28] = cpu->r[30];
|
|
/* 028F9994 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F9998 */ cpu->r[25] = 0x00000000u;
|
|
/* 028F999C */ _t93 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F999C */ _t94 = _t93 & 0x00000001u;
|
|
/* 028F999C */ if (_t94) goto L_028F99A0; else goto L_028F9BF4;
|
|
L_028F99A0: ; // 0x28f99a0
|
|
/* 028F99A0 */ cpu->r[3] = (uint32_t)((int32_t)cpu->r[29] * (int32_t)0x00000003u);
|
|
/* 028F99A4 */ cpu->r[8] = cpu->r[30] + 0xFFFFFFFFu;
|
|
L_028F99A8: ; // 0x28f99a8
|
|
/* 028F99A8 */ cpu->r[0] = cpu->r[29];
|
|
/* 028F99A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F99AC */ cpu->r[24] = 0x00000000u;
|
|
/* 028F99B0 */ _t95 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F99B0 */ _t96 = _t95 & 0x00000001u;
|
|
/* 028F99B0 */ if (_t96) goto L_028F99B4; else goto L_028F9A88;
|
|
L_028F99B4: ; // 0x28f99b4
|
|
/* 028F99B4 */ cpu->ctr = cpu->r[0];
|
|
/* 028F99B8 */ cpu->r[30] = cpu->r[31] + 0xFFFFFFFDu;
|
|
L_028F99BC: ; // 0x28f99bc
|
|
/* 028F99BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F99C0 */ _t97 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F99C0 */ _t98 = _t97 & 0x00000001u;
|
|
/* 028F99C0 */ if (_t98) goto L_028F99E8; else goto L_028F99C4;
|
|
L_028F99C4: ; // 0x28f99c4
|
|
/* 028F99C4 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)cpu->r[29]);
|
|
/* 028F99C8 */ cpu->r[5] = cpu->r[12] + cpu->r[24];
|
|
/* 028F99CC */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F99D0 */ cpu->r[7] = cpu->r[4] + cpu->r[6];
|
|
/* 028F99D4 */ _t99 = cpu->r[7] + 0x00000002u;
|
|
/* 028F99D4 */ cpu->r[9] = rbrew_read8(cpu->mem, _t99);
|
|
/* 028F99D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F99DC */ _t100 = cpu->r[30] + 0x00000003u;
|
|
/* 028F99DC */ rbrew_write8(cpu->mem, _t100, (uint8_t)cpu->r[9]);
|
|
/* 028F99DC */ cpu->r[30] = _t100;
|
|
/* 028F99E0 */ _t101 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F99E0 */ _t102 = _t101 & 0x00000001u;
|
|
/* 028F99E0 */ if (_t102) goto L_028F9A2C; else goto L_028F99E4;
|
|
L_028F99E4: ; // 0x28f99e4
|
|
/* 028F99E4 */ goto L_028F9A08;
|
|
L_028F99E8: ; // 0x28f99e8
|
|
/* 028F99E8 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[25] * (int32_t)cpu->r[29]);
|
|
/* 028F99EC */ cpu->r[5] = cpu->r[12] + cpu->r[24];
|
|
/* 028F99F0 */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F99F4 */ cpu->r[7] = cpu->r[4] + cpu->r[6];
|
|
/* 028F99F8 */ _t103 = cpu->r[7] + 0x00000002u;
|
|
/* 028F99F8 */ cpu->r[9] = rbrew_read8(cpu->mem, _t103);
|
|
/* 028F99FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9A00 */ _t104 = cpu->r[30] + 0x00000003u;
|
|
/* 028F9A00 */ rbrew_write8(cpu->mem, _t104, (uint8_t)cpu->r[9]);
|
|
/* 028F9A00 */ cpu->r[30] = _t104;
|
|
/* 028F9A04 */ _t105 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9A04 */ _t106 = _t105 & 0x00000001u;
|
|
/* 028F9A04 */ if (_t106) goto L_028F9A2C; else goto L_028F9A08;
|
|
L_028F9A08: ; // 0x28f9a08
|
|
/* 028F9A08 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)cpu->r[29]);
|
|
/* 028F9A0C */ cpu->r[11] = cpu->r[10] + cpu->r[24];
|
|
/* 028F9A10 */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9A14 */ cpu->r[5] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9A18 */ _t107 = cpu->r[5] + 0x00000001u;
|
|
/* 028F9A18 */ cpu->r[7] = rbrew_read8(cpu->mem, _t107);
|
|
/* 028F9A1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9A20 */ _t108 = cpu->r[30] + 0x00000001u;
|
|
/* 028F9A20 */ rbrew_write8(cpu->mem, _t108, (uint8_t)cpu->r[7]);
|
|
/* 028F9A24 */ _t109 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9A24 */ _t110 = _t109 & 0x00000001u;
|
|
/* 028F9A24 */ if (_t110) goto L_028F9A6C; else goto L_028F9A28;
|
|
L_028F9A28: ; // 0x28f9a28
|
|
/* 028F9A28 */ goto L_028F9A4C;
|
|
L_028F9A2C: ; // 0x28f9a2c
|
|
/* 028F9A2C */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[25] * (int32_t)cpu->r[29]);
|
|
/* 028F9A30 */ cpu->r[11] = cpu->r[10] + cpu->r[24];
|
|
/* 028F9A34 */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9A38 */ cpu->r[5] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9A3C */ _t111 = cpu->r[5] + 0x00000001u;
|
|
/* 028F9A3C */ cpu->r[7] = rbrew_read8(cpu->mem, _t111);
|
|
/* 028F9A40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9A44 */ _t112 = cpu->r[30] + 0x00000001u;
|
|
/* 028F9A44 */ rbrew_write8(cpu->mem, _t112, (uint8_t)cpu->r[7]);
|
|
/* 028F9A48 */ _t113 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9A48 */ _t114 = _t113 & 0x00000001u;
|
|
/* 028F9A48 */ if (_t114) goto L_028F9A6C; else goto L_028F9A4C;
|
|
L_028F9A4C: ; // 0x28f9a4c
|
|
/* 028F9A4C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)cpu->r[29]);
|
|
/* 028F9A50 */ cpu->r[11] = cpu->r[9] + cpu->r[24];
|
|
/* 028F9A54 */ cpu->r[12] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9A58 */ _t115 = cpu->r[12] + cpu->r[4];
|
|
/* 028F9A58 */ cpu->r[0] = rbrew_read8(cpu->mem, _t115);
|
|
/* 028F9A5C */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028F9A60 */ _t116 = cpu->r[30] + 0x00000002u;
|
|
/* 028F9A60 */ rbrew_write8(cpu->mem, _t116, (uint8_t)cpu->r[0]);
|
|
/* 028F9A64 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9A64 */ _t117 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9A64 */ _t118 = _t117 >> (0x00000002u & 31u);
|
|
/* 028F9A64 */ _t119 = _t118 & 0x00000001u;
|
|
/* 028F9A64 */ if (_t119) goto L_028F99BC; else goto L_028F9A68;
|
|
L_028F9A68: ; // 0x28f9a68
|
|
/* 028F9A68 */ goto L_028F9A88;
|
|
L_028F9A6C: ; // 0x28f9a6c
|
|
/* 028F9A6C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[25] * (int32_t)cpu->r[29]);
|
|
/* 028F9A70 */ cpu->r[11] = cpu->r[9] + cpu->r[24];
|
|
/* 028F9A74 */ cpu->r[12] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9A78 */ _t120 = cpu->r[12] + cpu->r[4];
|
|
/* 028F9A78 */ cpu->r[0] = rbrew_read8(cpu->mem, _t120);
|
|
/* 028F9A7C */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028F9A80 */ _t121 = cpu->r[30] + 0x00000002u;
|
|
/* 028F9A80 */ rbrew_write8(cpu->mem, _t121, (uint8_t)cpu->r[0]);
|
|
/* 028F9A84 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9A84 */ _t122 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9A84 */ _t123 = _t122 >> (0x00000002u & 31u);
|
|
/* 028F9A84 */ _t124 = _t123 & 0x00000001u;
|
|
/* 028F9A84 */ if (_t124) goto L_028F99BC; else goto L_028F9A88;
|
|
L_028F9A88: ; // 0x28f9a88
|
|
/* 028F9A88 */ cpu->r[31] = cpu->r[31] + cpu->r[3];
|
|
/* 028F9A8C */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 028F9A8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F9A90 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 028F9A94 */ cpu->r[8] = cpu->r[8] + 0xFFFFFFFFu;
|
|
/* 028F9A98 */ _t125 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9A98 */ _t126 = _t125 & 0x00000001u;
|
|
/* 028F9A98 */ if (_t126) goto L_028F9A9C; else goto L_028F99A8;
|
|
L_028F9A9C: ; // 0x28f9a9c
|
|
/* 028F9A9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028F9AA0 */ _t127 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9AA0 */ _t128 = _t127 & 0x00000001u;
|
|
/* 028F9AA0 */ if (_t128) goto L_028F98E0; else goto L_028F9AA4;
|
|
L_028F9AA4: ; // 0x28f9aa4
|
|
/* 028F9AA4 */ goto L_028F9BFC;
|
|
L_028F9AA8: ; // 0x28f9aa8
|
|
/* 028F9AA8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F9AA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9AAC */ cpu->r[28] = 0x00000000u;
|
|
/* 028F9AB0 */ _t129 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9AB0 */ _t130 = _t129 & 0x00000001u;
|
|
/* 028F9AB0 */ if (_t130) goto L_028F9AB4; else goto L_028F9BF4;
|
|
L_028F9AB4: ; // 0x28f9ab4
|
|
/* 028F9AB4 */ cpu->r[7] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 028F9AB8 */ cpu->r[11] = rbrew_rlwinm(cpu->r[29], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
L_028F9ABC: ; // 0x28f9abc
|
|
/* 028F9ABC */ cpu->r[6] = cpu->r[29];
|
|
/* 028F9ABC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F9AC0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F9AC4 */ _t131 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9AC4 */ _t132 = _t131 & 0x00000001u;
|
|
/* 028F9AC4 */ if (_t132) goto L_028F9AC8; else goto L_028F9BE0;
|
|
L_028F9AC8: ; // 0x28f9ac8
|
|
/* 028F9AC8 */ cpu->ctr = cpu->r[6];
|
|
/* 028F9ACC */ cpu->r[10] = cpu->r[31] + 0xFFFFFFFCu;
|
|
L_028F9AD0: ; // 0x28f9ad0
|
|
/* 028F9AD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9AD4 */ _t133 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9AD4 */ _t134 = _t133 & 0x00000001u;
|
|
/* 028F9AD4 */ if (_t134) goto L_028F9AFC; else goto L_028F9AD8;
|
|
L_028F9AD8: ; // 0x28f9ad8
|
|
/* 028F9AD8 */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)cpu->r[29]);
|
|
/* 028F9ADC */ cpu->r[6] = cpu->r[5] + cpu->r[30];
|
|
/* 028F9AE0 */ cpu->r[8] = rbrew_rlwinm(cpu->r[6], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9AE4 */ cpu->r[9] = cpu->r[4] + cpu->r[8];
|
|
/* 028F9AE8 */ _t135 = cpu->r[9] + 0x00000002u;
|
|
/* 028F9AE8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t135);
|
|
/* 028F9AEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9AF0 */ _t136 = cpu->r[10] + 0x00000004u;
|
|
/* 028F9AF0 */ rbrew_write8(cpu->mem, _t136, (uint8_t)cpu->r[0]);
|
|
/* 028F9AF0 */ cpu->r[10] = _t136;
|
|
/* 028F9AF4 */ _t137 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9AF4 */ _t138 = _t137 & 0x00000001u;
|
|
/* 028F9AF4 */ if (_t138) goto L_028F9B40; else goto L_028F9AF8;
|
|
L_028F9AF8: ; // 0x28f9af8
|
|
/* 028F9AF8 */ goto L_028F9B1C;
|
|
L_028F9AFC: ; // 0x28f9afc
|
|
/* 028F9AFC */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)cpu->r[29]);
|
|
/* 028F9B00 */ cpu->r[6] = cpu->r[5] + cpu->r[30];
|
|
/* 028F9B04 */ cpu->r[8] = rbrew_rlwinm(cpu->r[6], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9B08 */ cpu->r[9] = cpu->r[4] + cpu->r[8];
|
|
/* 028F9B0C */ _t139 = cpu->r[9] + 0x00000002u;
|
|
/* 028F9B0C */ cpu->r[0] = rbrew_read8(cpu->mem, _t139);
|
|
/* 028F9B10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9B14 */ _t140 = cpu->r[10] + 0x00000004u;
|
|
/* 028F9B14 */ rbrew_write8(cpu->mem, _t140, (uint8_t)cpu->r[0]);
|
|
/* 028F9B14 */ cpu->r[10] = _t140;
|
|
/* 028F9B18 */ _t141 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9B18 */ _t142 = _t141 & 0x00000001u;
|
|
/* 028F9B18 */ if (_t142) goto L_028F9B40; else goto L_028F9B1C;
|
|
L_028F9B1C: ; // 0x28f9b1c
|
|
/* 028F9B1C */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)cpu->r[29]);
|
|
/* 028F9B20 */ cpu->r[5] = cpu->r[12] + cpu->r[30];
|
|
/* 028F9B24 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9B28 */ cpu->r[9] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9B2C */ _t143 = cpu->r[9] + 0x00000001u;
|
|
/* 028F9B2C */ cpu->r[0] = rbrew_read8(cpu->mem, _t143);
|
|
/* 028F9B30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9B34 */ _t144 = cpu->r[10] + 0x00000001u;
|
|
/* 028F9B34 */ rbrew_write8(cpu->mem, _t144, (uint8_t)cpu->r[0]);
|
|
/* 028F9B38 */ _t145 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9B38 */ _t146 = _t145 & 0x00000001u;
|
|
/* 028F9B38 */ if (_t146) goto L_028F9B80; else goto L_028F9B3C;
|
|
L_028F9B3C: ; // 0x28f9b3c
|
|
/* 028F9B3C */ goto L_028F9B60;
|
|
L_028F9B40: ; // 0x28f9b40
|
|
/* 028F9B40 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)cpu->r[29]);
|
|
/* 028F9B44 */ cpu->r[5] = cpu->r[12] + cpu->r[30];
|
|
/* 028F9B48 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9B4C */ cpu->r[9] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9B50 */ _t147 = cpu->r[9] + 0x00000001u;
|
|
/* 028F9B50 */ cpu->r[0] = rbrew_read8(cpu->mem, _t147);
|
|
/* 028F9B54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9B58 */ _t148 = cpu->r[10] + 0x00000001u;
|
|
/* 028F9B58 */ rbrew_write8(cpu->mem, _t148, (uint8_t)cpu->r[0]);
|
|
/* 028F9B5C */ _t149 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9B5C */ _t150 = _t149 & 0x00000001u;
|
|
/* 028F9B5C */ if (_t150) goto L_028F9B80; else goto L_028F9B60;
|
|
L_028F9B60: ; // 0x28f9b60
|
|
/* 028F9B60 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)cpu->r[29]);
|
|
/* 028F9B64 */ cpu->r[5] = cpu->r[12] + cpu->r[30];
|
|
/* 028F9B68 */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9B6C */ _t151 = cpu->r[6] + cpu->r[4];
|
|
/* 028F9B6C */ cpu->r[8] = rbrew_read8(cpu->mem, _t151);
|
|
/* 028F9B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9B74 */ _t152 = cpu->r[10] + 0x00000002u;
|
|
/* 028F9B74 */ rbrew_write8(cpu->mem, _t152, (uint8_t)cpu->r[8]);
|
|
/* 028F9B78 */ _t153 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9B78 */ _t154 = _t153 & 0x00000001u;
|
|
/* 028F9B78 */ if (_t154) goto L_028F9BC0; else goto L_028F9B7C;
|
|
L_028F9B7C: ; // 0x28f9b7c
|
|
/* 028F9B7C */ goto L_028F9B9C;
|
|
L_028F9B80: ; // 0x28f9b80
|
|
/* 028F9B80 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)cpu->r[29]);
|
|
/* 028F9B84 */ cpu->r[5] = cpu->r[12] + cpu->r[30];
|
|
/* 028F9B88 */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9B8C */ _t155 = cpu->r[6] + cpu->r[4];
|
|
/* 028F9B8C */ cpu->r[8] = rbrew_read8(cpu->mem, _t155);
|
|
/* 028F9B90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9B94 */ _t156 = cpu->r[10] + 0x00000002u;
|
|
/* 028F9B94 */ rbrew_write8(cpu->mem, _t156, (uint8_t)cpu->r[8]);
|
|
/* 028F9B98 */ _t157 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9B98 */ _t158 = _t157 & 0x00000001u;
|
|
/* 028F9B98 */ if (_t158) goto L_028F9BC0; else goto L_028F9B9C;
|
|
L_028F9B9C: ; // 0x28f9b9c
|
|
/* 028F9B9C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)cpu->r[29]);
|
|
/* 028F9BA0 */ cpu->r[12] = cpu->r[9] + cpu->r[30];
|
|
/* 028F9BA4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9BA8 */ cpu->r[5] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9BAC */ _t159 = cpu->r[5] + 0x00000003u;
|
|
/* 028F9BAC */ cpu->r[6] = rbrew_read8(cpu->mem, _t159);
|
|
/* 028F9BB0 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028F9BB4 */ _t160 = cpu->r[10] + 0x00000003u;
|
|
/* 028F9BB4 */ rbrew_write8(cpu->mem, _t160, (uint8_t)cpu->r[6]);
|
|
/* 028F9BB8 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9BB8 */ _t161 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9BB8 */ _t162 = _t161 >> (0x00000002u & 31u);
|
|
/* 028F9BB8 */ _t163 = _t162 & 0x00000001u;
|
|
/* 028F9BB8 */ if (_t163) goto L_028F9AD0; else goto L_028F9BBC;
|
|
L_028F9BBC: ; // 0x28f9bbc
|
|
/* 028F9BBC */ goto L_028F9BE0;
|
|
L_028F9BC0: ; // 0x28f9bc0
|
|
/* 028F9BC0 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)cpu->r[29]);
|
|
/* 028F9BC4 */ cpu->r[12] = cpu->r[9] + cpu->r[30];
|
|
/* 028F9BC8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9BCC */ cpu->r[5] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9BD0 */ _t164 = cpu->r[5] + 0x00000003u;
|
|
/* 028F9BD0 */ cpu->r[6] = rbrew_read8(cpu->mem, _t164);
|
|
/* 028F9BD4 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028F9BD8 */ _t165 = cpu->r[10] + 0x00000003u;
|
|
/* 028F9BD8 */ rbrew_write8(cpu->mem, _t165, (uint8_t)cpu->r[6]);
|
|
/* 028F9BDC */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9BDC */ _t166 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9BDC */ _t167 = _t166 >> (0x00000002u & 31u);
|
|
/* 028F9BDC */ _t168 = _t167 & 0x00000001u;
|
|
/* 028F9BDC */ if (_t168) goto L_028F9AD0; else goto L_028F9BE0;
|
|
L_028F9BE0: ; // 0x28f9be0
|
|
/* 028F9BE0 */ cpu->r[31] = cpu->r[31] + cpu->r[11];
|
|
/* 028F9BE4 */ cpu->r[3] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028F9BE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9BE8 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028F9BEC */ cpu->r[7] = cpu->r[7] + 0xFFFFFFFFu;
|
|
/* 028F9BF0 */ _t169 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9BF0 */ _t170 = _t169 & 0x00000001u;
|
|
/* 028F9BF0 */ if (_t170) goto L_028F9BF4; else goto L_028F9ABC;
|
|
L_028F9BF4: ; // 0x28f9bf4
|
|
/* 028F9BF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028F9BF8 */ _t171 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9BF8 */ _t172 = _t171 & 0x00000001u;
|
|
/* 028F9BF8 */ if (_t172) goto L_028F98E0; else goto L_028F9BFC;
|
|
L_028F9BFC: ; // 0x28f9bfc
|
|
/* 028F9BFC */ _t173 = cpu->r[22] + 0xFFFFA504u;
|
|
/* 028F9BFC */ cpu->r[3] = rbrew_read32(cpu->mem, _t173);
|
|
/* 028F9C00 */ cpu->r[4] = cpu->r[23];
|
|
/* 028F9C04 */ Gambit_fn_02945C10(cpu);
|
|
/* 028F9C08 */ /* nop */
|
|
/* 028F9C0C */ _t174 = cpu->r[1] + 0x000000C4u;
|
|
/* 028F9C0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t174);
|
|
/* 028F9C10 */ cpu->lr = cpu->r[0];
|
|
/* 028F9C14 */ cpu->r[1] = cpu->r[1] + 0x000000C0u;
|
|
/* 028F9C18 */ return;
|
|
}
|
|
|
|
// fn_028F9C1C @ 0x28f9c1c
|
|
void Gambit_fn_028F9C1C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F9658: ; // 0x28f9658
|
|
/* 028F9658 */ cpu->r[0] = cpu->lr;
|
|
/* 028F965C */ _t0 = cpu->r[1] + 0xFFFFFF40u;
|
|
/* 028F965C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F965C */ cpu->r[1] = _t0;
|
|
/* 028F9660 */ _t1 = cpu->r[1] + 0x000000C4u;
|
|
/* 028F9660 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F9664 */ /* nop */
|
|
/* 028F9668 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F966C */ cpu->r[26] = cpu->r[5];
|
|
/* 028F9670 */ cpu->r[25] = cpu->r[6];
|
|
/* 028F9674 */ cpu->r[23] = cpu->r[3];
|
|
/* 028F9678 */ cpu->r[27] = cpu->r[8];
|
|
/* 028F9678 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028F967C */ cpu->r[28] = cpu->r[9];
|
|
/* 028F9680 */ cpu->r[3] = cpu->r[7];
|
|
/* 028F9684 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9684 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F9684 */ if (_t3) goto L_028F9688; else goto L_028F9694;
|
|
L_028F9688: ; // 0x28f9688
|
|
/* 028F9688 */ cpu->r[10] = 0x101D0000u;
|
|
/* 028F968C */ _t4 = cpu->r[10] + 0xFFFFA304u;
|
|
/* 028F968C */ cpu->r[10] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F9690 */ _t5 = cpu->r[10] + 0x00000014u;
|
|
/* 028F9690 */ cpu->r[27] = rbrew_read32(cpu->mem, _t5);
|
|
L_028F9694: ; // 0x28f9694
|
|
/* 028F9694 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000002u);
|
|
/* 028F9698 */ cpu->r[24] = 0x00000020u;
|
|
/* 028F969C */ _t6 = cpu->r[25] + 0x0000007Cu;
|
|
/* 028F969C */ cpu->r[11] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028F96A0 */ _t7 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F96A0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F96A0 */ if (_t8) goto L_028F96AC; else goto L_028F96A4;
|
|
L_028F96A4: ; // 0x28f96a4
|
|
/* 028F96A4 */ cpu->r[10] = cpu->r[31] + 0x10140000u;
|
|
/* 028F96A8 */ _t9 = cpu->r[10] + 0xFFFFCFB4u;
|
|
/* 028F96A8 */ cpu->r[24] = rbrew_read8(cpu->mem, _t9);
|
|
L_028F96AC: ; // 0x28f96ac
|
|
/* 028F96AC */ _t10 = cpu->r[25] + 0x00000008u;
|
|
/* 028F96AC */ cpu->r[29] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F96B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[29]);
|
|
/* 028F96B4 */ _t11 = cpu->r[25] + 0x0000000Cu;
|
|
/* 028F96B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F96B8 */ _t12 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F96B8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F96B8 */ if (_t13) goto L_028F96BC; else goto L_028F96C0;
|
|
L_028F96BC: ; // 0x28f96bc
|
|
/* 028F96BC */ cpu->r[29] = cpu->r[11];
|
|
L_028F96C0: ; // 0x28f96c0
|
|
/* 028F96C0 */ _t14 = cpu->r[25] + 0x0000007Du;
|
|
/* 028F96C0 */ cpu->r[30] = rbrew_read8(cpu->mem, _t14);
|
|
/* 028F96C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[30]);
|
|
/* 028F96C8 */ _t15 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F96C8 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F96C8 */ if (_t16) goto L_028F96CC; else goto L_028F96D0;
|
|
L_028F96CC: ; // 0x28f96cc
|
|
/* 028F96CC */ cpu->r[30] = cpu->r[0];
|
|
L_028F96D0: ; // 0x28f96d0
|
|
/* 028F96D0 */ cpu->r[29] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028F96D4 */ cpu->r[30] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028F96D8 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[29] * (int32_t)cpu->r[30]);
|
|
/* 028F96DC */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)cpu->r[24]);
|
|
/* 028F96E0 */ /* nop */
|
|
/* 028F96E4 */ cpu->r[20] = cpu->r[8];
|
|
/* 028F96E8 */ cpu->r[4] = cpu->r[20] + 0x0000002Cu;
|
|
/* 028F96EC */ _t17 = cpu->r[23] + 0x00000004u;
|
|
/* 028F96EC */ rbrew_write32(cpu->mem, _t17, cpu->r[4]);
|
|
/* 028F96F0 */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F96F0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F96F4 */ _t19 = cpu->r[10] + 0x00000034u;
|
|
/* 028F96F4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F96F8 */ cpu->ctr = cpu->r[10];
|
|
/* 028F96FC */ cpu->r[5] = 0x00000040u;
|
|
/* 028F9700 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F9704 */ cpu->r[22] = 0x00000000u;
|
|
/* 028F9708 */ cpu->r[5] = 0x00000012u;
|
|
/* 028F970C */ cpu->r[4] = cpu->r[22];
|
|
/* 028F9710 */ cpu->r[21] = cpu->r[3];
|
|
/* 028F9714 */ _t20 = cpu->r[23] + 0x00000000u;
|
|
/* 028F9714 */ rbrew_write32(cpu->mem, _t20, cpu->r[3]);
|
|
/* 028F9718 */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028F971C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000002u);
|
|
/* 028F9720 */ _t21 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9720 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F9720 */ if (_t22) goto L_028F9730; else goto L_028F9724;
|
|
L_028F9724: ; // 0x28f9724
|
|
/* 028F9724 */ cpu->r[4] = cpu->r[31] + 0x10140000u;
|
|
/* 028F9728 */ _t23 = cpu->r[4] + 0xFFFFCFB7u;
|
|
/* 028F9728 */ cpu->r[5] = rbrew_read8(cpu->mem, _t23);
|
|
/* 028F972C */ _t24 = cpu->r[21] + 0x00000002u;
|
|
/* 028F972C */ rbrew_write8(cpu->mem, _t24, (uint8_t)cpu->r[5]);
|
|
L_028F9730: ; // 0x28f9730
|
|
/* 028F9730 */ cpu->r[31] = 0x10110000u;
|
|
/* 028F9734 */ _t25 = cpu->r[31] + 0x00007350u;
|
|
/* 028F9734 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F9738 */ cpu->ctr = cpu->r[31];
|
|
/* 028F973C */ cpu->r[3] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028F9740 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F9744 */ cpu->ctr = cpu->r[31];
|
|
/* 028F9748 */ _t26 = cpu->r[21] + 0x0000000Cu;
|
|
/* 028F9748 */ rbrew_write16(cpu->mem, _t26, (uint16_t)cpu->r[3]);
|
|
/* 028F974C */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028F9750 */ cpu->r[3] = cpu->r[0];
|
|
/* 028F9754 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F9758 */ _t27 = cpu->r[21] + 0x0000000Eu;
|
|
/* 028F9758 */ rbrew_write16(cpu->mem, _t27, (uint16_t)cpu->r[3]);
|
|
/* 028F975C */ cpu->r[0] = 0x00000008u;
|
|
/* 028F9760 */ _t28 = cpu->r[21] + 0x00000010u;
|
|
/* 028F9760 */ rbrew_write8(cpu->mem, _t28, (uint8_t)cpu->r[24]);
|
|
/* 028F9764 */ cpu->r[4] = 0x10140000u;
|
|
/* 028F9768 */ _t29 = cpu->r[21] + 0x00000011u;
|
|
/* 028F9768 */ rbrew_write8(cpu->mem, _t29, (uint8_t)cpu->r[0]);
|
|
/* 028F976C */ _t30 = cpu->r[23] + 0x00000000u;
|
|
/* 028F976C */ cpu->r[12] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F9770 */ cpu->r[11] = cpu->r[12] + cpu->r[20];
|
|
/* 028F9774 */ cpu->r[4] = cpu->r[4] + 0xFFFFCFBCu;
|
|
/* 028F9778 */ cpu->r[5] = 0x00000012u;
|
|
/* 028F977C */ _t31 = cpu->r[11] + 0x00000012u;
|
|
/* 028F977C */ rbrew_write32(cpu->mem, _t31, cpu->r[22]);
|
|
/* 028F9780 */ cpu->r[3] = cpu->r[11] + 0x0000001Au;
|
|
/* 028F9784 */ cpu->r[6] = 0x00000000u;
|
|
/* 028F9788 */ _t32 = cpu->r[11] + 0x00000016u;
|
|
/* 028F9788 */ rbrew_write32(cpu->mem, _t32, cpu->r[22]);
|
|
/* 028F978C */ cpu->r[31] = cpu->r[12] + 0x00000012u;
|
|
/* 028F9790 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028F9794 */ _t33 = cpu->r[1] + 0x00000030u;
|
|
/* 028F9794 */ rbrew_write32(cpu->mem, _t33, cpu->r[22]);
|
|
/* 028F9798 */ cpu->r[0] = 0x0000001Au;
|
|
/* 028F979C */ _t34 = cpu->r[1] + 0x00000020u;
|
|
/* 028F979C */ rbrew_write32(cpu->mem, _t34, cpu->r[30]);
|
|
/* 028F97A0 */ cpu->r[9] = 0x00000001u;
|
|
/* 028F97A4 */ _t35 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F97A4 */ rbrew_write32(cpu->mem, _t35, cpu->r[0]);
|
|
/* 028F97A8 */ cpu->r[0] = 0x00000010u;
|
|
/* 028F97AC */ _t36 = cpu->r[1] + 0x00000028u;
|
|
/* 028F97AC */ rbrew_write32(cpu->mem, _t36, cpu->r[9]);
|
|
/* 028F97B0 */ _t37 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F97B0 */ rbrew_write32(cpu->mem, _t37, cpu->r[22]);
|
|
/* 028F97B4 */ cpu->r[5] = 0x00000003u;
|
|
/* 028F97B8 */ _t38 = cpu->r[1] + 0x00000018u;
|
|
/* 028F97B8 */ rbrew_write32(cpu->mem, _t38, cpu->r[9]);
|
|
/* 028F97BC */ cpu->r[23] = 0x00000000u;
|
|
/* 028F97C0 */ _t39 = cpu->r[1] + 0x00000048u;
|
|
/* 028F97C0 */ rbrew_write32(cpu->mem, _t39, cpu->r[0]);
|
|
/* 028F97C4 */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028F97C8 */ _t40 = cpu->r[1] + 0x00000024u;
|
|
/* 028F97C8 */ rbrew_write32(cpu->mem, _t40, cpu->r[9]);
|
|
/* 028F97CC */ _t41 = cpu->r[1] + 0x00000034u;
|
|
/* 028F97CC */ rbrew_write32(cpu->mem, _t41, cpu->r[5]);
|
|
/* 028F97D0 */ _t42 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F97D0 */ rbrew_write32(cpu->mem, _t42, cpu->r[29]);
|
|
/* 028F97D4 */ rbrew_dispatch(cpu, 0x02d05878u);
|
|
/* 028F97D8 */ _t43 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028F97D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028F97DC */ _t44 = cpu->r[12] + 0x00000034u;
|
|
/* 028F97DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028F97E0 */ _t45 = cpu->r[1] + 0x00000038u;
|
|
/* 028F97E0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F97E4 */ cpu->ctr = cpu->r[0];
|
|
/* 028F97E8 */ _t46 = cpu->r[1] + 0x00000050u;
|
|
/* 028F97E8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F97EC */ cpu->r[7] = cpu->r[8] + 0x0000001Fu;
|
|
/* 028F97F0 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F97F4 */ cpu->r[21] = rbrew_rlwinm(cpu->r[7], 0x00000000u, 0x00000000u, 0x0000001Au);
|
|
/* 028F97F8 */ cpu->r[9] = cpu->r[10] + 0x0000001Fu;
|
|
/* 028F97FC */ cpu->r[4] = cpu->r[21];
|
|
/* 028F9800 */ cpu->r[5] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x00000000u, 0x0000001Au);
|
|
/* 028F9804 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F9808 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F980C */ _t47 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F980C */ rbrew_write32(cpu->mem, _t47, cpu->r[3]);
|
|
/* 028F9810 */ cpu->r[22] = 0x101D0000u;
|
|
/* 028F9814 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9814 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F9814 */ if (_t49) goto L_028F9818; else goto L_028F9888;
|
|
L_028F9818: ; // 0x28f9818
|
|
/* 028F9818 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F981C */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F981C */ _t51 = _t50 & 0x00000001u;
|
|
/* 028F981C */ if (_t51) goto L_028F9888; else goto L_028F9820;
|
|
L_028F9820: ; // 0x28f9820
|
|
/* 028F9820 */ cpu->r[11] = cpu->r[29] + 0x000000FFu;
|
|
/* 028F9824 */ cpu->r[4] = 0x10140000u;
|
|
/* 028F9828 */ _t52 = cpu->r[22] + 0xFFFFA504u;
|
|
/* 028F9828 */ cpu->r[3] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028F982C */ cpu->r[6] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x00000000u, 0x00000017u);
|
|
/* 028F9830 */ cpu->r[4] = cpu->r[4] + 0xFFFFCF9Cu;
|
|
/* 028F9834 */ cpu->r[10] = 0x10140000u;
|
|
/* 028F9838 */ cpu->r[8] = 0x00000001u;
|
|
/* 028F983C */ _t53 = cpu->r[1] + 0x00000014u;
|
|
/* 028F983C */ rbrew_write32(cpu->mem, _t53, cpu->r[4]);
|
|
/* 028F9840 */ cpu->r[10] = cpu->r[10] + 0xFFFFCFD0u;
|
|
/* 028F9844 */ cpu->r[7] = cpu->r[30];
|
|
/* 028F9848 */ _t54 = cpu->r[1] + 0x00000008u;
|
|
/* 028F9848 */ rbrew_write32(cpu->mem, _t54, cpu->r[8]);
|
|
/* 028F984C */ cpu->r[9] = 0x00000000u;
|
|
/* 028F9850 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028F9854 */ _t55 = cpu->r[1] + 0x00000010u;
|
|
/* 028F9854 */ rbrew_write32(cpu->mem, _t55, cpu->r[10]);
|
|
/* 028F9858 */ cpu->r[10] = 0x00000002u;
|
|
/* 028F985C */ cpu->r[5] = 0x0000001Du;
|
|
/* 028F9860 */ _t56 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F9860 */ rbrew_write32(cpu->mem, _t56, cpu->r[9]);
|
|
/* 028F9864 */ Gambit_fn_029456B0(cpu);
|
|
/* 028F9868 */ cpu->r[23] = cpu->r[3];
|
|
/* 028F986C */ _t57 = cpu->r[23] + 0x00000028u;
|
|
/* 028F986C */ cpu->r[4] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028F9870 */ cpu->r[3] = 0x00000010u;
|
|
/* 028F9874 */ cpu->r[5] = cpu->r[21];
|
|
/* 028F9878 */ _t58 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F9878 */ rbrew_write32(cpu->mem, _t58, cpu->r[4]);
|
|
/* 028F987C */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
/* 028F9880 */ rbrew_dispatch(cpu, 0x02d05918u);
|
|
/* 028F9884 */ _t59 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F9884 */ cpu->r[3] = rbrew_read32(cpu->mem, _t59);
|
|
L_028F9888: ; // 0x28f9888
|
|
/* 028F9888 */ cpu->r[4] = cpu->r[21];
|
|
/* 028F988C */ rbrew_dispatch(cpu, 0x02d09330u);
|
|
/* 028F9890 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F9894 */ cpu->r[3] = cpu->r[25] + 0x00000004u;
|
|
/* 028F9898 */ cpu->r[7] = cpu->r[4];
|
|
/* 028F989C */ cpu->r[5] = cpu->r[4];
|
|
/* 028F98A0 */ cpu->r[6] = cpu->r[1] + 0x00000018u;
|
|
/* 028F98A4 */ cpu->r[8] = cpu->r[7];
|
|
/* 028F98A8 */ rbrew_dispatch(cpu, 0x02d058c8u);
|
|
/* 028F98AC */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F98B0 */ _t60 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F98B0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028F98B4 */ Gambit_fn_02906024(cpu);
|
|
/* 028F98B8 */ cpu->r[5] = rbrew_rlwinm(cpu->r[24], 0x0000001Du, 0x00000003u, 0x0000001Fu);
|
|
/* 028F98BC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x00000001u);
|
|
/* 028F98C0 */ _t61 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F98C0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028F98C4 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F98C4 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028F98C4 */ if (_t63) goto L_028F9908; else goto L_028F98C8;
|
|
L_028F98C8: ; // 0x28f98c8
|
|
/* 028F98C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x00000003u);
|
|
/* 028F98CC */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F98CC */ _t65 = _t64 & 0x00000001u;
|
|
/* 028F98CC */ if (_t65) goto L_028F9994; else goto L_028F98D0;
|
|
L_028F98D0: ; // 0x28f98d0
|
|
/* 028F98D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x00000004u);
|
|
/* 028F98D4 */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F98D4 */ _t67 = _t66 & 0x00000001u;
|
|
/* 028F98D4 */ if (_t67) goto L_028F9AA8; else goto L_028F98D8;
|
|
L_028F98D8: ; // 0x28f98d8
|
|
/* 028F98D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028F98DC */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F98DC */ _t69 = _t68 & 0x00000001u;
|
|
/* 028F98DC */ if (_t69) goto L_028F98E0; else goto L_028F9BFC;
|
|
L_028F98E0: ; // 0x28f98e0
|
|
/* 028F98E0 */ _t70 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028F98E0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028F98E4 */ _t71 = cpu->r[8] + 0x0000003Cu;
|
|
/* 028F98E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028F98E8 */ cpu->ctr = cpu->r[0];
|
|
/* 028F98EC */ cpu->r[3] = cpu->r[27];
|
|
/* 028F98F0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F98F4 */ /* nop */
|
|
/* 028F98F8 */ _t72 = cpu->r[1] + 0x000000C4u;
|
|
/* 028F98F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028F98FC */ cpu->lr = cpu->r[0];
|
|
/* 028F9900 */ cpu->r[1] = cpu->r[1] + 0x000000C0u;
|
|
/* 028F9904 */ return;
|
|
L_028F9908: ; // 0x28f9908
|
|
/* 028F9908 */ cpu->r[12] = cpu->r[30];
|
|
/* 028F9908 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F990C */ cpu->r[3] = 0x00000000u;
|
|
/* 028F9910 */ _t73 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9910 */ _t74 = _t73 & 0x00000001u;
|
|
/* 028F9910 */ if (_t74) goto L_028F9914; else goto L_028F9BF4;
|
|
L_028F9914: ; // 0x28f9914
|
|
/* 028F9914 */ cpu->r[9] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 028F9918 */ cpu->r[5] = cpu->r[29];
|
|
L_028F991C: ; // 0x28f991c
|
|
/* 028F991C */ cpu->r[8] = cpu->r[29];
|
|
/* 028F991C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F9920 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F9924 */ _t75 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9924 */ _t76 = _t75 & 0x00000001u;
|
|
/* 028F9924 */ if (_t76) goto L_028F9928; else goto L_028F9974;
|
|
L_028F9928: ; // 0x28f9928
|
|
/* 028F9928 */ cpu->ctr = cpu->r[8];
|
|
/* 028F992C */ cpu->r[11] = cpu->r[31] + 0xFFFFFFFFu;
|
|
L_028F9930: ; // 0x28f9930
|
|
/* 028F9930 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9934 */ _t77 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9934 */ _t78 = _t77 & 0x00000001u;
|
|
/* 028F9934 */ if (_t78) goto L_028F9958; else goto L_028F9938;
|
|
L_028F9938: ; // 0x28f9938
|
|
/* 028F9938 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)cpu->r[29]);
|
|
/* 028F993C */ cpu->r[7] = cpu->r[6] + cpu->r[10];
|
|
/* 028F9940 */ cpu->r[8] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9944 */ _t79 = cpu->r[8] + cpu->r[4];
|
|
/* 028F9944 */ cpu->r[0] = rbrew_read8(cpu->mem, _t79);
|
|
/* 028F9948 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028F994C */ _t80 = cpu->r[11] + 0x00000001u;
|
|
/* 028F994C */ rbrew_write8(cpu->mem, _t80, (uint8_t)cpu->r[0]);
|
|
/* 028F994C */ cpu->r[11] = _t80;
|
|
/* 028F9950 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9950 */ _t81 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9950 */ _t82 = _t81 >> (0x00000002u & 31u);
|
|
/* 028F9950 */ _t83 = _t82 & 0x00000001u;
|
|
/* 028F9950 */ if (_t83) goto L_028F9930; else goto L_028F9954;
|
|
L_028F9954: ; // 0x28f9954
|
|
/* 028F9954 */ goto L_028F9974;
|
|
L_028F9958: ; // 0x28f9958
|
|
/* 028F9958 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)cpu->r[29]);
|
|
/* 028F995C */ cpu->r[7] = cpu->r[6] + cpu->r[10];
|
|
/* 028F9960 */ cpu->r[8] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9964 */ _t84 = cpu->r[8] + cpu->r[4];
|
|
/* 028F9964 */ cpu->r[0] = rbrew_read8(cpu->mem, _t84);
|
|
/* 028F9968 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028F996C */ _t85 = cpu->r[11] + 0x00000001u;
|
|
/* 028F996C */ rbrew_write8(cpu->mem, _t85, (uint8_t)cpu->r[0]);
|
|
/* 028F996C */ cpu->r[11] = _t85;
|
|
/* 028F9970 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9970 */ _t86 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9970 */ _t87 = _t86 >> (0x00000002u & 31u);
|
|
/* 028F9970 */ _t88 = _t87 & 0x00000001u;
|
|
/* 028F9970 */ if (_t88) goto L_028F9930; else goto L_028F9974;
|
|
L_028F9974: ; // 0x28f9974
|
|
/* 028F9974 */ cpu->r[31] = cpu->r[31] + cpu->r[5];
|
|
/* 028F9978 */ cpu->r[12] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028F9978 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F997C */ cpu->r[3] = cpu->r[3] + 0x00000001u;
|
|
/* 028F9980 */ cpu->r[9] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 028F9984 */ _t89 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9984 */ _t90 = _t89 & 0x00000001u;
|
|
/* 028F9984 */ if (_t90) goto L_028F9988; else goto L_028F991C;
|
|
L_028F9988: ; // 0x28f9988
|
|
/* 028F9988 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028F998C */ _t91 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F998C */ _t92 = _t91 & 0x00000001u;
|
|
/* 028F998C */ if (_t92) goto L_028F98E0; else goto L_028F9990;
|
|
L_028F9990: ; // 0x28f9990
|
|
/* 028F9990 */ goto L_028F9BFC;
|
|
L_028F9994: ; // 0x28f9994
|
|
/* 028F9994 */ cpu->r[28] = cpu->r[30];
|
|
/* 028F9994 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F9998 */ cpu->r[25] = 0x00000000u;
|
|
/* 028F999C */ _t93 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F999C */ _t94 = _t93 & 0x00000001u;
|
|
/* 028F999C */ if (_t94) goto L_028F99A0; else goto L_028F9BF4;
|
|
L_028F99A0: ; // 0x28f99a0
|
|
/* 028F99A0 */ cpu->r[3] = (uint32_t)((int32_t)cpu->r[29] * (int32_t)0x00000003u);
|
|
/* 028F99A4 */ cpu->r[8] = cpu->r[30] + 0xFFFFFFFFu;
|
|
L_028F99A8: ; // 0x28f99a8
|
|
/* 028F99A8 */ cpu->r[0] = cpu->r[29];
|
|
/* 028F99A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F99AC */ cpu->r[24] = 0x00000000u;
|
|
/* 028F99B0 */ _t95 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F99B0 */ _t96 = _t95 & 0x00000001u;
|
|
/* 028F99B0 */ if (_t96) goto L_028F99B4; else goto L_028F9A88;
|
|
L_028F99B4: ; // 0x28f99b4
|
|
/* 028F99B4 */ cpu->ctr = cpu->r[0];
|
|
/* 028F99B8 */ cpu->r[30] = cpu->r[31] + 0xFFFFFFFDu;
|
|
L_028F99BC: ; // 0x28f99bc
|
|
/* 028F99BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F99C0 */ _t97 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F99C0 */ _t98 = _t97 & 0x00000001u;
|
|
/* 028F99C0 */ if (_t98) goto L_028F99E8; else goto L_028F99C4;
|
|
L_028F99C4: ; // 0x28f99c4
|
|
/* 028F99C4 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)cpu->r[29]);
|
|
/* 028F99C8 */ cpu->r[5] = cpu->r[12] + cpu->r[24];
|
|
/* 028F99CC */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F99D0 */ cpu->r[7] = cpu->r[4] + cpu->r[6];
|
|
/* 028F99D4 */ _t99 = cpu->r[7] + 0x00000002u;
|
|
/* 028F99D4 */ cpu->r[9] = rbrew_read8(cpu->mem, _t99);
|
|
/* 028F99D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F99DC */ _t100 = cpu->r[30] + 0x00000003u;
|
|
/* 028F99DC */ rbrew_write8(cpu->mem, _t100, (uint8_t)cpu->r[9]);
|
|
/* 028F99DC */ cpu->r[30] = _t100;
|
|
/* 028F99E0 */ _t101 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F99E0 */ _t102 = _t101 & 0x00000001u;
|
|
/* 028F99E0 */ if (_t102) goto L_028F9A2C; else goto L_028F99E4;
|
|
L_028F99E4: ; // 0x28f99e4
|
|
/* 028F99E4 */ goto L_028F9A08;
|
|
L_028F99E8: ; // 0x28f99e8
|
|
/* 028F99E8 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[25] * (int32_t)cpu->r[29]);
|
|
/* 028F99EC */ cpu->r[5] = cpu->r[12] + cpu->r[24];
|
|
/* 028F99F0 */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F99F4 */ cpu->r[7] = cpu->r[4] + cpu->r[6];
|
|
/* 028F99F8 */ _t103 = cpu->r[7] + 0x00000002u;
|
|
/* 028F99F8 */ cpu->r[9] = rbrew_read8(cpu->mem, _t103);
|
|
/* 028F99FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9A00 */ _t104 = cpu->r[30] + 0x00000003u;
|
|
/* 028F9A00 */ rbrew_write8(cpu->mem, _t104, (uint8_t)cpu->r[9]);
|
|
/* 028F9A00 */ cpu->r[30] = _t104;
|
|
/* 028F9A04 */ _t105 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9A04 */ _t106 = _t105 & 0x00000001u;
|
|
/* 028F9A04 */ if (_t106) goto L_028F9A2C; else goto L_028F9A08;
|
|
L_028F9A08: ; // 0x28f9a08
|
|
/* 028F9A08 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)cpu->r[29]);
|
|
/* 028F9A0C */ cpu->r[11] = cpu->r[10] + cpu->r[24];
|
|
/* 028F9A10 */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9A14 */ cpu->r[5] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9A18 */ _t107 = cpu->r[5] + 0x00000001u;
|
|
/* 028F9A18 */ cpu->r[7] = rbrew_read8(cpu->mem, _t107);
|
|
/* 028F9A1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9A20 */ _t108 = cpu->r[30] + 0x00000001u;
|
|
/* 028F9A20 */ rbrew_write8(cpu->mem, _t108, (uint8_t)cpu->r[7]);
|
|
/* 028F9A24 */ _t109 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9A24 */ _t110 = _t109 & 0x00000001u;
|
|
/* 028F9A24 */ if (_t110) goto L_028F9A6C; else goto L_028F9A28;
|
|
L_028F9A28: ; // 0x28f9a28
|
|
/* 028F9A28 */ goto L_028F9A4C;
|
|
L_028F9A2C: ; // 0x28f9a2c
|
|
/* 028F9A2C */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[25] * (int32_t)cpu->r[29]);
|
|
/* 028F9A30 */ cpu->r[11] = cpu->r[10] + cpu->r[24];
|
|
/* 028F9A34 */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9A38 */ cpu->r[5] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9A3C */ _t111 = cpu->r[5] + 0x00000001u;
|
|
/* 028F9A3C */ cpu->r[7] = rbrew_read8(cpu->mem, _t111);
|
|
/* 028F9A40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9A44 */ _t112 = cpu->r[30] + 0x00000001u;
|
|
/* 028F9A44 */ rbrew_write8(cpu->mem, _t112, (uint8_t)cpu->r[7]);
|
|
/* 028F9A48 */ _t113 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9A48 */ _t114 = _t113 & 0x00000001u;
|
|
/* 028F9A48 */ if (_t114) goto L_028F9A6C; else goto L_028F9A4C;
|
|
L_028F9A4C: ; // 0x28f9a4c
|
|
/* 028F9A4C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)cpu->r[29]);
|
|
/* 028F9A50 */ cpu->r[11] = cpu->r[9] + cpu->r[24];
|
|
/* 028F9A54 */ cpu->r[12] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9A58 */ _t115 = cpu->r[12] + cpu->r[4];
|
|
/* 028F9A58 */ cpu->r[0] = rbrew_read8(cpu->mem, _t115);
|
|
/* 028F9A5C */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028F9A60 */ _t116 = cpu->r[30] + 0x00000002u;
|
|
/* 028F9A60 */ rbrew_write8(cpu->mem, _t116, (uint8_t)cpu->r[0]);
|
|
/* 028F9A64 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9A64 */ _t117 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9A64 */ _t118 = _t117 >> (0x00000002u & 31u);
|
|
/* 028F9A64 */ _t119 = _t118 & 0x00000001u;
|
|
/* 028F9A64 */ if (_t119) goto L_028F99BC; else goto L_028F9A68;
|
|
L_028F9A68: ; // 0x28f9a68
|
|
/* 028F9A68 */ goto L_028F9A88;
|
|
L_028F9A6C: ; // 0x28f9a6c
|
|
/* 028F9A6C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[25] * (int32_t)cpu->r[29]);
|
|
/* 028F9A70 */ cpu->r[11] = cpu->r[9] + cpu->r[24];
|
|
/* 028F9A74 */ cpu->r[12] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9A78 */ _t120 = cpu->r[12] + cpu->r[4];
|
|
/* 028F9A78 */ cpu->r[0] = rbrew_read8(cpu->mem, _t120);
|
|
/* 028F9A7C */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028F9A80 */ _t121 = cpu->r[30] + 0x00000002u;
|
|
/* 028F9A80 */ rbrew_write8(cpu->mem, _t121, (uint8_t)cpu->r[0]);
|
|
/* 028F9A84 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9A84 */ _t122 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9A84 */ _t123 = _t122 >> (0x00000002u & 31u);
|
|
/* 028F9A84 */ _t124 = _t123 & 0x00000001u;
|
|
/* 028F9A84 */ if (_t124) goto L_028F99BC; else goto L_028F9A88;
|
|
L_028F9A88: ; // 0x28f9a88
|
|
/* 028F9A88 */ cpu->r[31] = cpu->r[31] + cpu->r[3];
|
|
/* 028F9A8C */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 028F9A8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F9A90 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 028F9A94 */ cpu->r[8] = cpu->r[8] + 0xFFFFFFFFu;
|
|
/* 028F9A98 */ _t125 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9A98 */ _t126 = _t125 & 0x00000001u;
|
|
/* 028F9A98 */ if (_t126) goto L_028F9A9C; else goto L_028F99A8;
|
|
L_028F9A9C: ; // 0x28f9a9c
|
|
/* 028F9A9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028F9AA0 */ _t127 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9AA0 */ _t128 = _t127 & 0x00000001u;
|
|
/* 028F9AA0 */ if (_t128) goto L_028F98E0; else goto L_028F9AA4;
|
|
L_028F9AA4: ; // 0x28f9aa4
|
|
/* 028F9AA4 */ goto L_028F9BFC;
|
|
L_028F9AA8: ; // 0x28f9aa8
|
|
/* 028F9AA8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F9AA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9AAC */ cpu->r[28] = 0x00000000u;
|
|
/* 028F9AB0 */ _t129 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9AB0 */ _t130 = _t129 & 0x00000001u;
|
|
/* 028F9AB0 */ if (_t130) goto L_028F9AB4; else goto L_028F9BF4;
|
|
L_028F9AB4: ; // 0x28f9ab4
|
|
/* 028F9AB4 */ cpu->r[7] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 028F9AB8 */ cpu->r[11] = rbrew_rlwinm(cpu->r[29], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
L_028F9ABC: ; // 0x28f9abc
|
|
/* 028F9ABC */ cpu->r[6] = cpu->r[29];
|
|
/* 028F9ABC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F9AC0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F9AC4 */ _t131 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9AC4 */ _t132 = _t131 & 0x00000001u;
|
|
/* 028F9AC4 */ if (_t132) goto L_028F9AC8; else goto L_028F9BE0;
|
|
L_028F9AC8: ; // 0x28f9ac8
|
|
/* 028F9AC8 */ cpu->ctr = cpu->r[6];
|
|
/* 028F9ACC */ cpu->r[10] = cpu->r[31] + 0xFFFFFFFCu;
|
|
L_028F9AD0: ; // 0x28f9ad0
|
|
/* 028F9AD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9AD4 */ _t133 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9AD4 */ _t134 = _t133 & 0x00000001u;
|
|
/* 028F9AD4 */ if (_t134) goto L_028F9AFC; else goto L_028F9AD8;
|
|
L_028F9AD8: ; // 0x28f9ad8
|
|
/* 028F9AD8 */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)cpu->r[29]);
|
|
/* 028F9ADC */ cpu->r[6] = cpu->r[5] + cpu->r[30];
|
|
/* 028F9AE0 */ cpu->r[8] = rbrew_rlwinm(cpu->r[6], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9AE4 */ cpu->r[9] = cpu->r[4] + cpu->r[8];
|
|
/* 028F9AE8 */ _t135 = cpu->r[9] + 0x00000002u;
|
|
/* 028F9AE8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t135);
|
|
/* 028F9AEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9AF0 */ _t136 = cpu->r[10] + 0x00000004u;
|
|
/* 028F9AF0 */ rbrew_write8(cpu->mem, _t136, (uint8_t)cpu->r[0]);
|
|
/* 028F9AF0 */ cpu->r[10] = _t136;
|
|
/* 028F9AF4 */ _t137 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9AF4 */ _t138 = _t137 & 0x00000001u;
|
|
/* 028F9AF4 */ if (_t138) goto L_028F9B40; else goto L_028F9AF8;
|
|
L_028F9AF8: ; // 0x28f9af8
|
|
/* 028F9AF8 */ goto L_028F9B1C;
|
|
L_028F9AFC: ; // 0x28f9afc
|
|
/* 028F9AFC */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)cpu->r[29]);
|
|
/* 028F9B00 */ cpu->r[6] = cpu->r[5] + cpu->r[30];
|
|
/* 028F9B04 */ cpu->r[8] = rbrew_rlwinm(cpu->r[6], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9B08 */ cpu->r[9] = cpu->r[4] + cpu->r[8];
|
|
/* 028F9B0C */ _t139 = cpu->r[9] + 0x00000002u;
|
|
/* 028F9B0C */ cpu->r[0] = rbrew_read8(cpu->mem, _t139);
|
|
/* 028F9B10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9B14 */ _t140 = cpu->r[10] + 0x00000004u;
|
|
/* 028F9B14 */ rbrew_write8(cpu->mem, _t140, (uint8_t)cpu->r[0]);
|
|
/* 028F9B14 */ cpu->r[10] = _t140;
|
|
/* 028F9B18 */ _t141 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9B18 */ _t142 = _t141 & 0x00000001u;
|
|
/* 028F9B18 */ if (_t142) goto L_028F9B40; else goto L_028F9B1C;
|
|
L_028F9B1C: ; // 0x28f9b1c
|
|
/* 028F9B1C */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)cpu->r[29]);
|
|
/* 028F9B20 */ cpu->r[5] = cpu->r[12] + cpu->r[30];
|
|
/* 028F9B24 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9B28 */ cpu->r[9] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9B2C */ _t143 = cpu->r[9] + 0x00000001u;
|
|
/* 028F9B2C */ cpu->r[0] = rbrew_read8(cpu->mem, _t143);
|
|
/* 028F9B30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9B34 */ _t144 = cpu->r[10] + 0x00000001u;
|
|
/* 028F9B34 */ rbrew_write8(cpu->mem, _t144, (uint8_t)cpu->r[0]);
|
|
/* 028F9B38 */ _t145 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9B38 */ _t146 = _t145 & 0x00000001u;
|
|
/* 028F9B38 */ if (_t146) goto L_028F9B80; else goto L_028F9B3C;
|
|
L_028F9B3C: ; // 0x28f9b3c
|
|
/* 028F9B3C */ goto L_028F9B60;
|
|
L_028F9B40: ; // 0x28f9b40
|
|
/* 028F9B40 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)cpu->r[29]);
|
|
/* 028F9B44 */ cpu->r[5] = cpu->r[12] + cpu->r[30];
|
|
/* 028F9B48 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9B4C */ cpu->r[9] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9B50 */ _t147 = cpu->r[9] + 0x00000001u;
|
|
/* 028F9B50 */ cpu->r[0] = rbrew_read8(cpu->mem, _t147);
|
|
/* 028F9B54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9B58 */ _t148 = cpu->r[10] + 0x00000001u;
|
|
/* 028F9B58 */ rbrew_write8(cpu->mem, _t148, (uint8_t)cpu->r[0]);
|
|
/* 028F9B5C */ _t149 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9B5C */ _t150 = _t149 & 0x00000001u;
|
|
/* 028F9B5C */ if (_t150) goto L_028F9B80; else goto L_028F9B60;
|
|
L_028F9B60: ; // 0x28f9b60
|
|
/* 028F9B60 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)cpu->r[29]);
|
|
/* 028F9B64 */ cpu->r[5] = cpu->r[12] + cpu->r[30];
|
|
/* 028F9B68 */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9B6C */ _t151 = cpu->r[6] + cpu->r[4];
|
|
/* 028F9B6C */ cpu->r[8] = rbrew_read8(cpu->mem, _t151);
|
|
/* 028F9B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9B74 */ _t152 = cpu->r[10] + 0x00000002u;
|
|
/* 028F9B74 */ rbrew_write8(cpu->mem, _t152, (uint8_t)cpu->r[8]);
|
|
/* 028F9B78 */ _t153 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9B78 */ _t154 = _t153 & 0x00000001u;
|
|
/* 028F9B78 */ if (_t154) goto L_028F9BC0; else goto L_028F9B7C;
|
|
L_028F9B7C: ; // 0x28f9b7c
|
|
/* 028F9B7C */ goto L_028F9B9C;
|
|
L_028F9B80: ; // 0x28f9b80
|
|
/* 028F9B80 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)cpu->r[29]);
|
|
/* 028F9B84 */ cpu->r[5] = cpu->r[12] + cpu->r[30];
|
|
/* 028F9B88 */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9B8C */ _t155 = cpu->r[6] + cpu->r[4];
|
|
/* 028F9B8C */ cpu->r[8] = rbrew_read8(cpu->mem, _t155);
|
|
/* 028F9B90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9B94 */ _t156 = cpu->r[10] + 0x00000002u;
|
|
/* 028F9B94 */ rbrew_write8(cpu->mem, _t156, (uint8_t)cpu->r[8]);
|
|
/* 028F9B98 */ _t157 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9B98 */ _t158 = _t157 & 0x00000001u;
|
|
/* 028F9B98 */ if (_t158) goto L_028F9BC0; else goto L_028F9B9C;
|
|
L_028F9B9C: ; // 0x28f9b9c
|
|
/* 028F9B9C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)cpu->r[29]);
|
|
/* 028F9BA0 */ cpu->r[12] = cpu->r[9] + cpu->r[30];
|
|
/* 028F9BA4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9BA8 */ cpu->r[5] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9BAC */ _t159 = cpu->r[5] + 0x00000003u;
|
|
/* 028F9BAC */ cpu->r[6] = rbrew_read8(cpu->mem, _t159);
|
|
/* 028F9BB0 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028F9BB4 */ _t160 = cpu->r[10] + 0x00000003u;
|
|
/* 028F9BB4 */ rbrew_write8(cpu->mem, _t160, (uint8_t)cpu->r[6]);
|
|
/* 028F9BB8 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9BB8 */ _t161 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9BB8 */ _t162 = _t161 >> (0x00000002u & 31u);
|
|
/* 028F9BB8 */ _t163 = _t162 & 0x00000001u;
|
|
/* 028F9BB8 */ if (_t163) goto L_028F9AD0; else goto L_028F9BBC;
|
|
L_028F9BBC: ; // 0x28f9bbc
|
|
/* 028F9BBC */ goto L_028F9BE0;
|
|
L_028F9BC0: ; // 0x28f9bc0
|
|
/* 028F9BC0 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)cpu->r[29]);
|
|
/* 028F9BC4 */ cpu->r[12] = cpu->r[9] + cpu->r[30];
|
|
/* 028F9BC8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9BCC */ cpu->r[5] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9BD0 */ _t164 = cpu->r[5] + 0x00000003u;
|
|
/* 028F9BD0 */ cpu->r[6] = rbrew_read8(cpu->mem, _t164);
|
|
/* 028F9BD4 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028F9BD8 */ _t165 = cpu->r[10] + 0x00000003u;
|
|
/* 028F9BD8 */ rbrew_write8(cpu->mem, _t165, (uint8_t)cpu->r[6]);
|
|
/* 028F9BDC */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9BDC */ _t166 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9BDC */ _t167 = _t166 >> (0x00000002u & 31u);
|
|
/* 028F9BDC */ _t168 = _t167 & 0x00000001u;
|
|
/* 028F9BDC */ if (_t168) goto L_028F9AD0; else goto L_028F9BE0;
|
|
L_028F9BE0: ; // 0x28f9be0
|
|
/* 028F9BE0 */ cpu->r[31] = cpu->r[31] + cpu->r[11];
|
|
/* 028F9BE4 */ cpu->r[3] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028F9BE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9BE8 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028F9BEC */ cpu->r[7] = cpu->r[7] + 0xFFFFFFFFu;
|
|
/* 028F9BF0 */ _t169 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9BF0 */ _t170 = _t169 & 0x00000001u;
|
|
/* 028F9BF0 */ if (_t170) goto L_028F9BF4; else goto L_028F9ABC;
|
|
L_028F9BF4: ; // 0x28f9bf4
|
|
/* 028F9BF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028F9BF8 */ _t171 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9BF8 */ _t172 = _t171 & 0x00000001u;
|
|
/* 028F9BF8 */ if (_t172) goto L_028F98E0; else goto L_028F9BFC;
|
|
L_028F9BFC: ; // 0x28f9bfc
|
|
/* 028F9BFC */ _t173 = cpu->r[22] + 0xFFFFA504u;
|
|
/* 028F9BFC */ cpu->r[3] = rbrew_read32(cpu->mem, _t173);
|
|
/* 028F9C00 */ cpu->r[4] = cpu->r[23];
|
|
/* 028F9C04 */ Gambit_fn_02945C10(cpu);
|
|
/* 028F9C08 */ /* nop */
|
|
/* 028F9C0C */ _t174 = cpu->r[1] + 0x000000C4u;
|
|
/* 028F9C0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t174);
|
|
/* 028F9C10 */ cpu->lr = cpu->r[0];
|
|
/* 028F9C14 */ cpu->r[1] = cpu->r[1] + 0x000000C0u;
|
|
/* 028F9C18 */ return;
|
|
L_028F9C1C: ; // 0x28f9c1c
|
|
/* 028F9C1C */ cpu->r[9] = 0x00000000u;
|
|
/* 028F9C20 */ goto L_028F9658;
|
|
}
|
|
|
|
// fn_028F9C24 @ 0x28f9c24
|
|
void Gambit_fn_028F9C24(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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;
|
|
|
|
L_028F9658: ; // 0x28f9658
|
|
/* 028F9658 */ cpu->r[0] = cpu->lr;
|
|
/* 028F965C */ _t0 = cpu->r[1] + 0xFFFFFF40u;
|
|
/* 028F965C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F965C */ cpu->r[1] = _t0;
|
|
/* 028F9660 */ _t1 = cpu->r[1] + 0x000000C4u;
|
|
/* 028F9660 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028F9664 */ /* nop */
|
|
/* 028F9668 */ cpu->r[31] = cpu->r[4];
|
|
/* 028F966C */ cpu->r[26] = cpu->r[5];
|
|
/* 028F9670 */ cpu->r[25] = cpu->r[6];
|
|
/* 028F9674 */ cpu->r[23] = cpu->r[3];
|
|
/* 028F9678 */ cpu->r[27] = cpu->r[8];
|
|
/* 028F9678 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028F967C */ cpu->r[28] = cpu->r[9];
|
|
/* 028F9680 */ cpu->r[3] = cpu->r[7];
|
|
/* 028F9684 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9684 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028F9684 */ if (_t3) goto L_028F9688; else goto L_028F9694;
|
|
L_028F9688: ; // 0x28f9688
|
|
/* 028F9688 */ cpu->r[10] = 0x101D0000u;
|
|
/* 028F968C */ _t4 = cpu->r[10] + 0xFFFFA304u;
|
|
/* 028F968C */ cpu->r[10] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028F9690 */ _t5 = cpu->r[10] + 0x00000014u;
|
|
/* 028F9690 */ cpu->r[27] = rbrew_read32(cpu->mem, _t5);
|
|
L_028F9694: ; // 0x28f9694
|
|
/* 028F9694 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000002u);
|
|
/* 028F9698 */ cpu->r[24] = 0x00000020u;
|
|
/* 028F969C */ _t6 = cpu->r[25] + 0x0000007Cu;
|
|
/* 028F969C */ cpu->r[11] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028F96A0 */ _t7 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F96A0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F96A0 */ if (_t8) goto L_028F96AC; else goto L_028F96A4;
|
|
L_028F96A4: ; // 0x28f96a4
|
|
/* 028F96A4 */ cpu->r[10] = cpu->r[31] + 0x10140000u;
|
|
/* 028F96A8 */ _t9 = cpu->r[10] + 0xFFFFCFB4u;
|
|
/* 028F96A8 */ cpu->r[24] = rbrew_read8(cpu->mem, _t9);
|
|
L_028F96AC: ; // 0x28f96ac
|
|
/* 028F96AC */ _t10 = cpu->r[25] + 0x00000008u;
|
|
/* 028F96AC */ cpu->r[29] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028F96B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[29]);
|
|
/* 028F96B4 */ _t11 = cpu->r[25] + 0x0000000Cu;
|
|
/* 028F96B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028F96B8 */ _t12 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F96B8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F96B8 */ if (_t13) goto L_028F96BC; else goto L_028F96C0;
|
|
L_028F96BC: ; // 0x28f96bc
|
|
/* 028F96BC */ cpu->r[29] = cpu->r[11];
|
|
L_028F96C0: ; // 0x28f96c0
|
|
/* 028F96C0 */ _t14 = cpu->r[25] + 0x0000007Du;
|
|
/* 028F96C0 */ cpu->r[30] = rbrew_read8(cpu->mem, _t14);
|
|
/* 028F96C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[30]);
|
|
/* 028F96C8 */ _t15 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F96C8 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F96C8 */ if (_t16) goto L_028F96CC; else goto L_028F96D0;
|
|
L_028F96CC: ; // 0x28f96cc
|
|
/* 028F96CC */ cpu->r[30] = cpu->r[0];
|
|
L_028F96D0: ; // 0x28f96d0
|
|
/* 028F96D0 */ cpu->r[29] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028F96D4 */ cpu->r[30] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028F96D8 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[29] * (int32_t)cpu->r[30]);
|
|
/* 028F96DC */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)cpu->r[24]);
|
|
/* 028F96E0 */ /* nop */
|
|
/* 028F96E4 */ cpu->r[20] = cpu->r[8];
|
|
/* 028F96E8 */ cpu->r[4] = cpu->r[20] + 0x0000002Cu;
|
|
/* 028F96EC */ _t17 = cpu->r[23] + 0x00000004u;
|
|
/* 028F96EC */ rbrew_write32(cpu->mem, _t17, cpu->r[4]);
|
|
/* 028F96F0 */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F96F0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028F96F4 */ _t19 = cpu->r[10] + 0x00000034u;
|
|
/* 028F96F4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028F96F8 */ cpu->ctr = cpu->r[10];
|
|
/* 028F96FC */ cpu->r[5] = 0x00000040u;
|
|
/* 028F9700 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F9704 */ cpu->r[22] = 0x00000000u;
|
|
/* 028F9708 */ cpu->r[5] = 0x00000012u;
|
|
/* 028F970C */ cpu->r[4] = cpu->r[22];
|
|
/* 028F9710 */ cpu->r[21] = cpu->r[3];
|
|
/* 028F9714 */ _t20 = cpu->r[23] + 0x00000000u;
|
|
/* 028F9714 */ rbrew_write32(cpu->mem, _t20, cpu->r[3]);
|
|
/* 028F9718 */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 028F971C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000002u);
|
|
/* 028F9720 */ _t21 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9720 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028F9720 */ if (_t22) goto L_028F9730; else goto L_028F9724;
|
|
L_028F9724: ; // 0x28f9724
|
|
/* 028F9724 */ cpu->r[4] = cpu->r[31] + 0x10140000u;
|
|
/* 028F9728 */ _t23 = cpu->r[4] + 0xFFFFCFB7u;
|
|
/* 028F9728 */ cpu->r[5] = rbrew_read8(cpu->mem, _t23);
|
|
/* 028F972C */ _t24 = cpu->r[21] + 0x00000002u;
|
|
/* 028F972C */ rbrew_write8(cpu->mem, _t24, (uint8_t)cpu->r[5]);
|
|
L_028F9730: ; // 0x28f9730
|
|
/* 028F9730 */ cpu->r[31] = 0x10110000u;
|
|
/* 028F9734 */ _t25 = cpu->r[31] + 0x00007350u;
|
|
/* 028F9734 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F9738 */ cpu->ctr = cpu->r[31];
|
|
/* 028F973C */ cpu->r[3] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028F9740 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F9744 */ cpu->ctr = cpu->r[31];
|
|
/* 028F9748 */ _t26 = cpu->r[21] + 0x0000000Cu;
|
|
/* 028F9748 */ rbrew_write16(cpu->mem, _t26, (uint16_t)cpu->r[3]);
|
|
/* 028F974C */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028F9750 */ cpu->r[3] = cpu->r[0];
|
|
/* 028F9754 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F9758 */ _t27 = cpu->r[21] + 0x0000000Eu;
|
|
/* 028F9758 */ rbrew_write16(cpu->mem, _t27, (uint16_t)cpu->r[3]);
|
|
/* 028F975C */ cpu->r[0] = 0x00000008u;
|
|
/* 028F9760 */ _t28 = cpu->r[21] + 0x00000010u;
|
|
/* 028F9760 */ rbrew_write8(cpu->mem, _t28, (uint8_t)cpu->r[24]);
|
|
/* 028F9764 */ cpu->r[4] = 0x10140000u;
|
|
/* 028F9768 */ _t29 = cpu->r[21] + 0x00000011u;
|
|
/* 028F9768 */ rbrew_write8(cpu->mem, _t29, (uint8_t)cpu->r[0]);
|
|
/* 028F976C */ _t30 = cpu->r[23] + 0x00000000u;
|
|
/* 028F976C */ cpu->r[12] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F9770 */ cpu->r[11] = cpu->r[12] + cpu->r[20];
|
|
/* 028F9774 */ cpu->r[4] = cpu->r[4] + 0xFFFFCFBCu;
|
|
/* 028F9778 */ cpu->r[5] = 0x00000012u;
|
|
/* 028F977C */ _t31 = cpu->r[11] + 0x00000012u;
|
|
/* 028F977C */ rbrew_write32(cpu->mem, _t31, cpu->r[22]);
|
|
/* 028F9780 */ cpu->r[3] = cpu->r[11] + 0x0000001Au;
|
|
/* 028F9784 */ cpu->r[6] = 0x00000000u;
|
|
/* 028F9788 */ _t32 = cpu->r[11] + 0x00000016u;
|
|
/* 028F9788 */ rbrew_write32(cpu->mem, _t32, cpu->r[22]);
|
|
/* 028F978C */ cpu->r[31] = cpu->r[12] + 0x00000012u;
|
|
/* 028F9790 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028F9794 */ _t33 = cpu->r[1] + 0x00000030u;
|
|
/* 028F9794 */ rbrew_write32(cpu->mem, _t33, cpu->r[22]);
|
|
/* 028F9798 */ cpu->r[0] = 0x0000001Au;
|
|
/* 028F979C */ _t34 = cpu->r[1] + 0x00000020u;
|
|
/* 028F979C */ rbrew_write32(cpu->mem, _t34, cpu->r[30]);
|
|
/* 028F97A0 */ cpu->r[9] = 0x00000001u;
|
|
/* 028F97A4 */ _t35 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028F97A4 */ rbrew_write32(cpu->mem, _t35, cpu->r[0]);
|
|
/* 028F97A8 */ cpu->r[0] = 0x00000010u;
|
|
/* 028F97AC */ _t36 = cpu->r[1] + 0x00000028u;
|
|
/* 028F97AC */ rbrew_write32(cpu->mem, _t36, cpu->r[9]);
|
|
/* 028F97B0 */ _t37 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028F97B0 */ rbrew_write32(cpu->mem, _t37, cpu->r[22]);
|
|
/* 028F97B4 */ cpu->r[5] = 0x00000003u;
|
|
/* 028F97B8 */ _t38 = cpu->r[1] + 0x00000018u;
|
|
/* 028F97B8 */ rbrew_write32(cpu->mem, _t38, cpu->r[9]);
|
|
/* 028F97BC */ cpu->r[23] = 0x00000000u;
|
|
/* 028F97C0 */ _t39 = cpu->r[1] + 0x00000048u;
|
|
/* 028F97C0 */ rbrew_write32(cpu->mem, _t39, cpu->r[0]);
|
|
/* 028F97C4 */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028F97C8 */ _t40 = cpu->r[1] + 0x00000024u;
|
|
/* 028F97C8 */ rbrew_write32(cpu->mem, _t40, cpu->r[9]);
|
|
/* 028F97CC */ _t41 = cpu->r[1] + 0x00000034u;
|
|
/* 028F97CC */ rbrew_write32(cpu->mem, _t41, cpu->r[5]);
|
|
/* 028F97D0 */ _t42 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028F97D0 */ rbrew_write32(cpu->mem, _t42, cpu->r[29]);
|
|
/* 028F97D4 */ rbrew_dispatch(cpu, 0x02d05878u);
|
|
/* 028F97D8 */ _t43 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028F97D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028F97DC */ _t44 = cpu->r[12] + 0x00000034u;
|
|
/* 028F97DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028F97E0 */ _t45 = cpu->r[1] + 0x00000038u;
|
|
/* 028F97E0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F97E4 */ cpu->ctr = cpu->r[0];
|
|
/* 028F97E8 */ _t46 = cpu->r[1] + 0x00000050u;
|
|
/* 028F97E8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F97EC */ cpu->r[7] = cpu->r[8] + 0x0000001Fu;
|
|
/* 028F97F0 */ cpu->r[3] = cpu->r[27];
|
|
/* 028F97F4 */ cpu->r[21] = rbrew_rlwinm(cpu->r[7], 0x00000000u, 0x00000000u, 0x0000001Au);
|
|
/* 028F97F8 */ cpu->r[9] = cpu->r[10] + 0x0000001Fu;
|
|
/* 028F97FC */ cpu->r[4] = cpu->r[21];
|
|
/* 028F9800 */ cpu->r[5] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x00000000u, 0x0000001Au);
|
|
/* 028F9804 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F9808 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F980C */ _t47 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F980C */ rbrew_write32(cpu->mem, _t47, cpu->r[3]);
|
|
/* 028F9810 */ cpu->r[22] = 0x101D0000u;
|
|
/* 028F9814 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9814 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028F9814 */ if (_t49) goto L_028F9818; else goto L_028F9888;
|
|
L_028F9818: ; // 0x28f9818
|
|
/* 028F9818 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F981C */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F981C */ _t51 = _t50 & 0x00000001u;
|
|
/* 028F981C */ if (_t51) goto L_028F9888; else goto L_028F9820;
|
|
L_028F9820: ; // 0x28f9820
|
|
/* 028F9820 */ cpu->r[11] = cpu->r[29] + 0x000000FFu;
|
|
/* 028F9824 */ cpu->r[4] = 0x10140000u;
|
|
/* 028F9828 */ _t52 = cpu->r[22] + 0xFFFFA504u;
|
|
/* 028F9828 */ cpu->r[3] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028F982C */ cpu->r[6] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x00000000u, 0x00000017u);
|
|
/* 028F9830 */ cpu->r[4] = cpu->r[4] + 0xFFFFCF9Cu;
|
|
/* 028F9834 */ cpu->r[10] = 0x10140000u;
|
|
/* 028F9838 */ cpu->r[8] = 0x00000001u;
|
|
/* 028F983C */ _t53 = cpu->r[1] + 0x00000014u;
|
|
/* 028F983C */ rbrew_write32(cpu->mem, _t53, cpu->r[4]);
|
|
/* 028F9840 */ cpu->r[10] = cpu->r[10] + 0xFFFFCFD0u;
|
|
/* 028F9844 */ cpu->r[7] = cpu->r[30];
|
|
/* 028F9848 */ _t54 = cpu->r[1] + 0x00000008u;
|
|
/* 028F9848 */ rbrew_write32(cpu->mem, _t54, cpu->r[8]);
|
|
/* 028F984C */ cpu->r[9] = 0x00000000u;
|
|
/* 028F9850 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028F9854 */ _t55 = cpu->r[1] + 0x00000010u;
|
|
/* 028F9854 */ rbrew_write32(cpu->mem, _t55, cpu->r[10]);
|
|
/* 028F9858 */ cpu->r[10] = 0x00000002u;
|
|
/* 028F985C */ cpu->r[5] = 0x0000001Du;
|
|
/* 028F9860 */ _t56 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F9860 */ rbrew_write32(cpu->mem, _t56, cpu->r[9]);
|
|
/* 028F9864 */ Gambit_fn_029456B0(cpu);
|
|
/* 028F9868 */ cpu->r[23] = cpu->r[3];
|
|
/* 028F986C */ _t57 = cpu->r[23] + 0x00000028u;
|
|
/* 028F986C */ cpu->r[4] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028F9870 */ cpu->r[3] = 0x00000010u;
|
|
/* 028F9874 */ cpu->r[5] = cpu->r[21];
|
|
/* 028F9878 */ _t58 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F9878 */ rbrew_write32(cpu->mem, _t58, cpu->r[4]);
|
|
/* 028F987C */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
/* 028F9880 */ rbrew_dispatch(cpu, 0x02d05918u);
|
|
/* 028F9884 */ _t59 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F9884 */ cpu->r[3] = rbrew_read32(cpu->mem, _t59);
|
|
L_028F9888: ; // 0x28f9888
|
|
/* 028F9888 */ cpu->r[4] = cpu->r[21];
|
|
/* 028F988C */ rbrew_dispatch(cpu, 0x02d09330u);
|
|
/* 028F9890 */ cpu->r[4] = 0x00000000u;
|
|
/* 028F9894 */ cpu->r[3] = cpu->r[25] + 0x00000004u;
|
|
/* 028F9898 */ cpu->r[7] = cpu->r[4];
|
|
/* 028F989C */ cpu->r[5] = cpu->r[4];
|
|
/* 028F98A0 */ cpu->r[6] = cpu->r[1] + 0x00000018u;
|
|
/* 028F98A4 */ cpu->r[8] = cpu->r[7];
|
|
/* 028F98A8 */ rbrew_dispatch(cpu, 0x02d058c8u);
|
|
/* 028F98AC */ cpu->r[3] = 0x101D0000u;
|
|
/* 028F98B0 */ _t60 = cpu->r[3] + 0xFFFFA42Cu;
|
|
/* 028F98B0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028F98B4 */ Gambit_fn_02906024(cpu);
|
|
/* 028F98B8 */ cpu->r[5] = rbrew_rlwinm(cpu->r[24], 0x0000001Du, 0x00000003u, 0x0000001Fu);
|
|
/* 028F98BC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x00000001u);
|
|
/* 028F98C0 */ _t61 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028F98C0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028F98C4 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F98C4 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028F98C4 */ if (_t63) goto L_028F9908; else goto L_028F98C8;
|
|
L_028F98C8: ; // 0x28f98c8
|
|
/* 028F98C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x00000003u);
|
|
/* 028F98CC */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F98CC */ _t65 = _t64 & 0x00000001u;
|
|
/* 028F98CC */ if (_t65) goto L_028F9994; else goto L_028F98D0;
|
|
L_028F98D0: ; // 0x28f98d0
|
|
/* 028F98D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x00000004u);
|
|
/* 028F98D4 */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F98D4 */ _t67 = _t66 & 0x00000001u;
|
|
/* 028F98D4 */ if (_t67) goto L_028F9AA8; else goto L_028F98D8;
|
|
L_028F98D8: ; // 0x28f98d8
|
|
/* 028F98D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028F98DC */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F98DC */ _t69 = _t68 & 0x00000001u;
|
|
/* 028F98DC */ if (_t69) goto L_028F98E0; else goto L_028F9BFC;
|
|
L_028F98E0: ; // 0x28f98e0
|
|
/* 028F98E0 */ _t70 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028F98E0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028F98E4 */ _t71 = cpu->r[8] + 0x0000003Cu;
|
|
/* 028F98E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028F98E8 */ cpu->ctr = cpu->r[0];
|
|
/* 028F98EC */ cpu->r[3] = cpu->r[27];
|
|
/* 028F98F0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028F98F4 */ /* nop */
|
|
/* 028F98F8 */ _t72 = cpu->r[1] + 0x000000C4u;
|
|
/* 028F98F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028F98FC */ cpu->lr = cpu->r[0];
|
|
/* 028F9900 */ cpu->r[1] = cpu->r[1] + 0x000000C0u;
|
|
/* 028F9904 */ return;
|
|
L_028F9908: ; // 0x28f9908
|
|
/* 028F9908 */ cpu->r[12] = cpu->r[30];
|
|
/* 028F9908 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F990C */ cpu->r[3] = 0x00000000u;
|
|
/* 028F9910 */ _t73 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9910 */ _t74 = _t73 & 0x00000001u;
|
|
/* 028F9910 */ if (_t74) goto L_028F9914; else goto L_028F9BF4;
|
|
L_028F9914: ; // 0x28f9914
|
|
/* 028F9914 */ cpu->r[9] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 028F9918 */ cpu->r[5] = cpu->r[29];
|
|
L_028F991C: ; // 0x28f991c
|
|
/* 028F991C */ cpu->r[8] = cpu->r[29];
|
|
/* 028F991C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028F9920 */ cpu->r[10] = 0x00000000u;
|
|
/* 028F9924 */ _t75 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9924 */ _t76 = _t75 & 0x00000001u;
|
|
/* 028F9924 */ if (_t76) goto L_028F9928; else goto L_028F9974;
|
|
L_028F9928: ; // 0x28f9928
|
|
/* 028F9928 */ cpu->ctr = cpu->r[8];
|
|
/* 028F992C */ cpu->r[11] = cpu->r[31] + 0xFFFFFFFFu;
|
|
L_028F9930: ; // 0x28f9930
|
|
/* 028F9930 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9934 */ _t77 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9934 */ _t78 = _t77 & 0x00000001u;
|
|
/* 028F9934 */ if (_t78) goto L_028F9958; else goto L_028F9938;
|
|
L_028F9938: ; // 0x28f9938
|
|
/* 028F9938 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)cpu->r[29]);
|
|
/* 028F993C */ cpu->r[7] = cpu->r[6] + cpu->r[10];
|
|
/* 028F9940 */ cpu->r[8] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9944 */ _t79 = cpu->r[8] + cpu->r[4];
|
|
/* 028F9944 */ cpu->r[0] = rbrew_read8(cpu->mem, _t79);
|
|
/* 028F9948 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028F994C */ _t80 = cpu->r[11] + 0x00000001u;
|
|
/* 028F994C */ rbrew_write8(cpu->mem, _t80, (uint8_t)cpu->r[0]);
|
|
/* 028F994C */ cpu->r[11] = _t80;
|
|
/* 028F9950 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9950 */ _t81 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9950 */ _t82 = _t81 >> (0x00000002u & 31u);
|
|
/* 028F9950 */ _t83 = _t82 & 0x00000001u;
|
|
/* 028F9950 */ if (_t83) goto L_028F9930; else goto L_028F9954;
|
|
L_028F9954: ; // 0x28f9954
|
|
/* 028F9954 */ goto L_028F9974;
|
|
L_028F9958: ; // 0x28f9958
|
|
/* 028F9958 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)cpu->r[29]);
|
|
/* 028F995C */ cpu->r[7] = cpu->r[6] + cpu->r[10];
|
|
/* 028F9960 */ cpu->r[8] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9964 */ _t84 = cpu->r[8] + cpu->r[4];
|
|
/* 028F9964 */ cpu->r[0] = rbrew_read8(cpu->mem, _t84);
|
|
/* 028F9968 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028F996C */ _t85 = cpu->r[11] + 0x00000001u;
|
|
/* 028F996C */ rbrew_write8(cpu->mem, _t85, (uint8_t)cpu->r[0]);
|
|
/* 028F996C */ cpu->r[11] = _t85;
|
|
/* 028F9970 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9970 */ _t86 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9970 */ _t87 = _t86 >> (0x00000002u & 31u);
|
|
/* 028F9970 */ _t88 = _t87 & 0x00000001u;
|
|
/* 028F9970 */ if (_t88) goto L_028F9930; else goto L_028F9974;
|
|
L_028F9974: ; // 0x28f9974
|
|
/* 028F9974 */ cpu->r[31] = cpu->r[31] + cpu->r[5];
|
|
/* 028F9978 */ cpu->r[12] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028F9978 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028F997C */ cpu->r[3] = cpu->r[3] + 0x00000001u;
|
|
/* 028F9980 */ cpu->r[9] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 028F9984 */ _t89 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9984 */ _t90 = _t89 & 0x00000001u;
|
|
/* 028F9984 */ if (_t90) goto L_028F9988; else goto L_028F991C;
|
|
L_028F9988: ; // 0x28f9988
|
|
/* 028F9988 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028F998C */ _t91 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F998C */ _t92 = _t91 & 0x00000001u;
|
|
/* 028F998C */ if (_t92) goto L_028F98E0; else goto L_028F9990;
|
|
L_028F9990: ; // 0x28f9990
|
|
/* 028F9990 */ goto L_028F9BFC;
|
|
L_028F9994: ; // 0x28f9994
|
|
/* 028F9994 */ cpu->r[28] = cpu->r[30];
|
|
/* 028F9994 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F9998 */ cpu->r[25] = 0x00000000u;
|
|
/* 028F999C */ _t93 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F999C */ _t94 = _t93 & 0x00000001u;
|
|
/* 028F999C */ if (_t94) goto L_028F99A0; else goto L_028F9BF4;
|
|
L_028F99A0: ; // 0x28f99a0
|
|
/* 028F99A0 */ cpu->r[3] = (uint32_t)((int32_t)cpu->r[29] * (int32_t)0x00000003u);
|
|
/* 028F99A4 */ cpu->r[8] = cpu->r[30] + 0xFFFFFFFFu;
|
|
L_028F99A8: ; // 0x28f99a8
|
|
/* 028F99A8 */ cpu->r[0] = cpu->r[29];
|
|
/* 028F99A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F99AC */ cpu->r[24] = 0x00000000u;
|
|
/* 028F99B0 */ _t95 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F99B0 */ _t96 = _t95 & 0x00000001u;
|
|
/* 028F99B0 */ if (_t96) goto L_028F99B4; else goto L_028F9A88;
|
|
L_028F99B4: ; // 0x28f99b4
|
|
/* 028F99B4 */ cpu->ctr = cpu->r[0];
|
|
/* 028F99B8 */ cpu->r[30] = cpu->r[31] + 0xFFFFFFFDu;
|
|
L_028F99BC: ; // 0x28f99bc
|
|
/* 028F99BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F99C0 */ _t97 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F99C0 */ _t98 = _t97 & 0x00000001u;
|
|
/* 028F99C0 */ if (_t98) goto L_028F99E8; else goto L_028F99C4;
|
|
L_028F99C4: ; // 0x28f99c4
|
|
/* 028F99C4 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)cpu->r[29]);
|
|
/* 028F99C8 */ cpu->r[5] = cpu->r[12] + cpu->r[24];
|
|
/* 028F99CC */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F99D0 */ cpu->r[7] = cpu->r[4] + cpu->r[6];
|
|
/* 028F99D4 */ _t99 = cpu->r[7] + 0x00000002u;
|
|
/* 028F99D4 */ cpu->r[9] = rbrew_read8(cpu->mem, _t99);
|
|
/* 028F99D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F99DC */ _t100 = cpu->r[30] + 0x00000003u;
|
|
/* 028F99DC */ rbrew_write8(cpu->mem, _t100, (uint8_t)cpu->r[9]);
|
|
/* 028F99DC */ cpu->r[30] = _t100;
|
|
/* 028F99E0 */ _t101 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F99E0 */ _t102 = _t101 & 0x00000001u;
|
|
/* 028F99E0 */ if (_t102) goto L_028F9A2C; else goto L_028F99E4;
|
|
L_028F99E4: ; // 0x28f99e4
|
|
/* 028F99E4 */ goto L_028F9A08;
|
|
L_028F99E8: ; // 0x28f99e8
|
|
/* 028F99E8 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[25] * (int32_t)cpu->r[29]);
|
|
/* 028F99EC */ cpu->r[5] = cpu->r[12] + cpu->r[24];
|
|
/* 028F99F0 */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F99F4 */ cpu->r[7] = cpu->r[4] + cpu->r[6];
|
|
/* 028F99F8 */ _t103 = cpu->r[7] + 0x00000002u;
|
|
/* 028F99F8 */ cpu->r[9] = rbrew_read8(cpu->mem, _t103);
|
|
/* 028F99FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9A00 */ _t104 = cpu->r[30] + 0x00000003u;
|
|
/* 028F9A00 */ rbrew_write8(cpu->mem, _t104, (uint8_t)cpu->r[9]);
|
|
/* 028F9A00 */ cpu->r[30] = _t104;
|
|
/* 028F9A04 */ _t105 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9A04 */ _t106 = _t105 & 0x00000001u;
|
|
/* 028F9A04 */ if (_t106) goto L_028F9A2C; else goto L_028F9A08;
|
|
L_028F9A08: ; // 0x28f9a08
|
|
/* 028F9A08 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)cpu->r[29]);
|
|
/* 028F9A0C */ cpu->r[11] = cpu->r[10] + cpu->r[24];
|
|
/* 028F9A10 */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9A14 */ cpu->r[5] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9A18 */ _t107 = cpu->r[5] + 0x00000001u;
|
|
/* 028F9A18 */ cpu->r[7] = rbrew_read8(cpu->mem, _t107);
|
|
/* 028F9A1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9A20 */ _t108 = cpu->r[30] + 0x00000001u;
|
|
/* 028F9A20 */ rbrew_write8(cpu->mem, _t108, (uint8_t)cpu->r[7]);
|
|
/* 028F9A24 */ _t109 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9A24 */ _t110 = _t109 & 0x00000001u;
|
|
/* 028F9A24 */ if (_t110) goto L_028F9A6C; else goto L_028F9A28;
|
|
L_028F9A28: ; // 0x28f9a28
|
|
/* 028F9A28 */ goto L_028F9A4C;
|
|
L_028F9A2C: ; // 0x28f9a2c
|
|
/* 028F9A2C */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[25] * (int32_t)cpu->r[29]);
|
|
/* 028F9A30 */ cpu->r[11] = cpu->r[10] + cpu->r[24];
|
|
/* 028F9A34 */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9A38 */ cpu->r[5] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9A3C */ _t111 = cpu->r[5] + 0x00000001u;
|
|
/* 028F9A3C */ cpu->r[7] = rbrew_read8(cpu->mem, _t111);
|
|
/* 028F9A40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9A44 */ _t112 = cpu->r[30] + 0x00000001u;
|
|
/* 028F9A44 */ rbrew_write8(cpu->mem, _t112, (uint8_t)cpu->r[7]);
|
|
/* 028F9A48 */ _t113 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9A48 */ _t114 = _t113 & 0x00000001u;
|
|
/* 028F9A48 */ if (_t114) goto L_028F9A6C; else goto L_028F9A4C;
|
|
L_028F9A4C: ; // 0x28f9a4c
|
|
/* 028F9A4C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)cpu->r[29]);
|
|
/* 028F9A50 */ cpu->r[11] = cpu->r[9] + cpu->r[24];
|
|
/* 028F9A54 */ cpu->r[12] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9A58 */ _t115 = cpu->r[12] + cpu->r[4];
|
|
/* 028F9A58 */ cpu->r[0] = rbrew_read8(cpu->mem, _t115);
|
|
/* 028F9A5C */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028F9A60 */ _t116 = cpu->r[30] + 0x00000002u;
|
|
/* 028F9A60 */ rbrew_write8(cpu->mem, _t116, (uint8_t)cpu->r[0]);
|
|
/* 028F9A64 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9A64 */ _t117 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9A64 */ _t118 = _t117 >> (0x00000002u & 31u);
|
|
/* 028F9A64 */ _t119 = _t118 & 0x00000001u;
|
|
/* 028F9A64 */ if (_t119) goto L_028F99BC; else goto L_028F9A68;
|
|
L_028F9A68: ; // 0x28f9a68
|
|
/* 028F9A68 */ goto L_028F9A88;
|
|
L_028F9A6C: ; // 0x28f9a6c
|
|
/* 028F9A6C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[25] * (int32_t)cpu->r[29]);
|
|
/* 028F9A70 */ cpu->r[11] = cpu->r[9] + cpu->r[24];
|
|
/* 028F9A74 */ cpu->r[12] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9A78 */ _t120 = cpu->r[12] + cpu->r[4];
|
|
/* 028F9A78 */ cpu->r[0] = rbrew_read8(cpu->mem, _t120);
|
|
/* 028F9A7C */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028F9A80 */ _t121 = cpu->r[30] + 0x00000002u;
|
|
/* 028F9A80 */ rbrew_write8(cpu->mem, _t121, (uint8_t)cpu->r[0]);
|
|
/* 028F9A84 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9A84 */ _t122 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9A84 */ _t123 = _t122 >> (0x00000002u & 31u);
|
|
/* 028F9A84 */ _t124 = _t123 & 0x00000001u;
|
|
/* 028F9A84 */ if (_t124) goto L_028F99BC; else goto L_028F9A88;
|
|
L_028F9A88: ; // 0x28f9a88
|
|
/* 028F9A88 */ cpu->r[31] = cpu->r[31] + cpu->r[3];
|
|
/* 028F9A8C */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 028F9A8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028F9A90 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 028F9A94 */ cpu->r[8] = cpu->r[8] + 0xFFFFFFFFu;
|
|
/* 028F9A98 */ _t125 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9A98 */ _t126 = _t125 & 0x00000001u;
|
|
/* 028F9A98 */ if (_t126) goto L_028F9A9C; else goto L_028F99A8;
|
|
L_028F9A9C: ; // 0x28f9a9c
|
|
/* 028F9A9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028F9AA0 */ _t127 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9AA0 */ _t128 = _t127 & 0x00000001u;
|
|
/* 028F9AA0 */ if (_t128) goto L_028F98E0; else goto L_028F9AA4;
|
|
L_028F9AA4: ; // 0x28f9aa4
|
|
/* 028F9AA4 */ goto L_028F9BFC;
|
|
L_028F9AA8: ; // 0x28f9aa8
|
|
/* 028F9AA8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028F9AA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9AAC */ cpu->r[28] = 0x00000000u;
|
|
/* 028F9AB0 */ _t129 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9AB0 */ _t130 = _t129 & 0x00000001u;
|
|
/* 028F9AB0 */ if (_t130) goto L_028F9AB4; else goto L_028F9BF4;
|
|
L_028F9AB4: ; // 0x28f9ab4
|
|
/* 028F9AB4 */ cpu->r[7] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 028F9AB8 */ cpu->r[11] = rbrew_rlwinm(cpu->r[29], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
L_028F9ABC: ; // 0x28f9abc
|
|
/* 028F9ABC */ cpu->r[6] = cpu->r[29];
|
|
/* 028F9ABC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028F9AC0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F9AC4 */ _t131 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028F9AC4 */ _t132 = _t131 & 0x00000001u;
|
|
/* 028F9AC4 */ if (_t132) goto L_028F9AC8; else goto L_028F9BE0;
|
|
L_028F9AC8: ; // 0x28f9ac8
|
|
/* 028F9AC8 */ cpu->ctr = cpu->r[6];
|
|
/* 028F9ACC */ cpu->r[10] = cpu->r[31] + 0xFFFFFFFCu;
|
|
L_028F9AD0: ; // 0x28f9ad0
|
|
/* 028F9AD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9AD4 */ _t133 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9AD4 */ _t134 = _t133 & 0x00000001u;
|
|
/* 028F9AD4 */ if (_t134) goto L_028F9AFC; else goto L_028F9AD8;
|
|
L_028F9AD8: ; // 0x28f9ad8
|
|
/* 028F9AD8 */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)cpu->r[29]);
|
|
/* 028F9ADC */ cpu->r[6] = cpu->r[5] + cpu->r[30];
|
|
/* 028F9AE0 */ cpu->r[8] = rbrew_rlwinm(cpu->r[6], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9AE4 */ cpu->r[9] = cpu->r[4] + cpu->r[8];
|
|
/* 028F9AE8 */ _t135 = cpu->r[9] + 0x00000002u;
|
|
/* 028F9AE8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t135);
|
|
/* 028F9AEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9AF0 */ _t136 = cpu->r[10] + 0x00000004u;
|
|
/* 028F9AF0 */ rbrew_write8(cpu->mem, _t136, (uint8_t)cpu->r[0]);
|
|
/* 028F9AF0 */ cpu->r[10] = _t136;
|
|
/* 028F9AF4 */ _t137 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9AF4 */ _t138 = _t137 & 0x00000001u;
|
|
/* 028F9AF4 */ if (_t138) goto L_028F9B40; else goto L_028F9AF8;
|
|
L_028F9AF8: ; // 0x28f9af8
|
|
/* 028F9AF8 */ goto L_028F9B1C;
|
|
L_028F9AFC: ; // 0x28f9afc
|
|
/* 028F9AFC */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)cpu->r[29]);
|
|
/* 028F9B00 */ cpu->r[6] = cpu->r[5] + cpu->r[30];
|
|
/* 028F9B04 */ cpu->r[8] = rbrew_rlwinm(cpu->r[6], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9B08 */ cpu->r[9] = cpu->r[4] + cpu->r[8];
|
|
/* 028F9B0C */ _t139 = cpu->r[9] + 0x00000002u;
|
|
/* 028F9B0C */ cpu->r[0] = rbrew_read8(cpu->mem, _t139);
|
|
/* 028F9B10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9B14 */ _t140 = cpu->r[10] + 0x00000004u;
|
|
/* 028F9B14 */ rbrew_write8(cpu->mem, _t140, (uint8_t)cpu->r[0]);
|
|
/* 028F9B14 */ cpu->r[10] = _t140;
|
|
/* 028F9B18 */ _t141 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9B18 */ _t142 = _t141 & 0x00000001u;
|
|
/* 028F9B18 */ if (_t142) goto L_028F9B40; else goto L_028F9B1C;
|
|
L_028F9B1C: ; // 0x28f9b1c
|
|
/* 028F9B1C */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)cpu->r[29]);
|
|
/* 028F9B20 */ cpu->r[5] = cpu->r[12] + cpu->r[30];
|
|
/* 028F9B24 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9B28 */ cpu->r[9] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9B2C */ _t143 = cpu->r[9] + 0x00000001u;
|
|
/* 028F9B2C */ cpu->r[0] = rbrew_read8(cpu->mem, _t143);
|
|
/* 028F9B30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9B34 */ _t144 = cpu->r[10] + 0x00000001u;
|
|
/* 028F9B34 */ rbrew_write8(cpu->mem, _t144, (uint8_t)cpu->r[0]);
|
|
/* 028F9B38 */ _t145 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9B38 */ _t146 = _t145 & 0x00000001u;
|
|
/* 028F9B38 */ if (_t146) goto L_028F9B80; else goto L_028F9B3C;
|
|
L_028F9B3C: ; // 0x28f9b3c
|
|
/* 028F9B3C */ goto L_028F9B60;
|
|
L_028F9B40: ; // 0x28f9b40
|
|
/* 028F9B40 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)cpu->r[29]);
|
|
/* 028F9B44 */ cpu->r[5] = cpu->r[12] + cpu->r[30];
|
|
/* 028F9B48 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9B4C */ cpu->r[9] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9B50 */ _t147 = cpu->r[9] + 0x00000001u;
|
|
/* 028F9B50 */ cpu->r[0] = rbrew_read8(cpu->mem, _t147);
|
|
/* 028F9B54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9B58 */ _t148 = cpu->r[10] + 0x00000001u;
|
|
/* 028F9B58 */ rbrew_write8(cpu->mem, _t148, (uint8_t)cpu->r[0]);
|
|
/* 028F9B5C */ _t149 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9B5C */ _t150 = _t149 & 0x00000001u;
|
|
/* 028F9B5C */ if (_t150) goto L_028F9B80; else goto L_028F9B60;
|
|
L_028F9B60: ; // 0x28f9b60
|
|
/* 028F9B60 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)cpu->r[29]);
|
|
/* 028F9B64 */ cpu->r[5] = cpu->r[12] + cpu->r[30];
|
|
/* 028F9B68 */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9B6C */ _t151 = cpu->r[6] + cpu->r[4];
|
|
/* 028F9B6C */ cpu->r[8] = rbrew_read8(cpu->mem, _t151);
|
|
/* 028F9B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9B74 */ _t152 = cpu->r[10] + 0x00000002u;
|
|
/* 028F9B74 */ rbrew_write8(cpu->mem, _t152, (uint8_t)cpu->r[8]);
|
|
/* 028F9B78 */ _t153 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9B78 */ _t154 = _t153 & 0x00000001u;
|
|
/* 028F9B78 */ if (_t154) goto L_028F9BC0; else goto L_028F9B7C;
|
|
L_028F9B7C: ; // 0x28f9b7c
|
|
/* 028F9B7C */ goto L_028F9B9C;
|
|
L_028F9B80: ; // 0x28f9b80
|
|
/* 028F9B80 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)cpu->r[29]);
|
|
/* 028F9B84 */ cpu->r[5] = cpu->r[12] + cpu->r[30];
|
|
/* 028F9B88 */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9B8C */ _t155 = cpu->r[6] + cpu->r[4];
|
|
/* 028F9B8C */ cpu->r[8] = rbrew_read8(cpu->mem, _t155);
|
|
/* 028F9B90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028F9B94 */ _t156 = cpu->r[10] + 0x00000002u;
|
|
/* 028F9B94 */ rbrew_write8(cpu->mem, _t156, (uint8_t)cpu->r[8]);
|
|
/* 028F9B98 */ _t157 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9B98 */ _t158 = _t157 & 0x00000001u;
|
|
/* 028F9B98 */ if (_t158) goto L_028F9BC0; else goto L_028F9B9C;
|
|
L_028F9B9C: ; // 0x28f9b9c
|
|
/* 028F9B9C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)cpu->r[29]);
|
|
/* 028F9BA0 */ cpu->r[12] = cpu->r[9] + cpu->r[30];
|
|
/* 028F9BA4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9BA8 */ cpu->r[5] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9BAC */ _t159 = cpu->r[5] + 0x00000003u;
|
|
/* 028F9BAC */ cpu->r[6] = rbrew_read8(cpu->mem, _t159);
|
|
/* 028F9BB0 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028F9BB4 */ _t160 = cpu->r[10] + 0x00000003u;
|
|
/* 028F9BB4 */ rbrew_write8(cpu->mem, _t160, (uint8_t)cpu->r[6]);
|
|
/* 028F9BB8 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9BB8 */ _t161 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9BB8 */ _t162 = _t161 >> (0x00000002u & 31u);
|
|
/* 028F9BB8 */ _t163 = _t162 & 0x00000001u;
|
|
/* 028F9BB8 */ if (_t163) goto L_028F9AD0; else goto L_028F9BBC;
|
|
L_028F9BBC: ; // 0x28f9bbc
|
|
/* 028F9BBC */ goto L_028F9BE0;
|
|
L_028F9BC0: ; // 0x28f9bc0
|
|
/* 028F9BC0 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)cpu->r[29]);
|
|
/* 028F9BC4 */ cpu->r[12] = cpu->r[9] + cpu->r[30];
|
|
/* 028F9BC8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9BCC */ cpu->r[5] = cpu->r[4] + cpu->r[0];
|
|
/* 028F9BD0 */ _t164 = cpu->r[5] + 0x00000003u;
|
|
/* 028F9BD0 */ cpu->r[6] = rbrew_read8(cpu->mem, _t164);
|
|
/* 028F9BD4 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028F9BD8 */ _t165 = cpu->r[10] + 0x00000003u;
|
|
/* 028F9BD8 */ rbrew_write8(cpu->mem, _t165, (uint8_t)cpu->r[6]);
|
|
/* 028F9BDC */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9BDC */ _t166 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9BDC */ _t167 = _t166 >> (0x00000002u & 31u);
|
|
/* 028F9BDC */ _t168 = _t167 & 0x00000001u;
|
|
/* 028F9BDC */ if (_t168) goto L_028F9AD0; else goto L_028F9BE0;
|
|
L_028F9BE0: ; // 0x28f9be0
|
|
/* 028F9BE0 */ cpu->r[31] = cpu->r[31] + cpu->r[11];
|
|
/* 028F9BE4 */ cpu->r[3] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028F9BE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9BE8 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028F9BEC */ cpu->r[7] = cpu->r[7] + 0xFFFFFFFFu;
|
|
/* 028F9BF0 */ _t169 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9BF0 */ _t170 = _t169 & 0x00000001u;
|
|
/* 028F9BF0 */ if (_t170) goto L_028F9BF4; else goto L_028F9ABC;
|
|
L_028F9BF4: ; // 0x28f9bf4
|
|
/* 028F9BF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028F9BF8 */ _t171 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9BF8 */ _t172 = _t171 & 0x00000001u;
|
|
/* 028F9BF8 */ if (_t172) goto L_028F98E0; else goto L_028F9BFC;
|
|
L_028F9BFC: ; // 0x28f9bfc
|
|
/* 028F9BFC */ _t173 = cpu->r[22] + 0xFFFFA504u;
|
|
/* 028F9BFC */ cpu->r[3] = rbrew_read32(cpu->mem, _t173);
|
|
/* 028F9C00 */ cpu->r[4] = cpu->r[23];
|
|
/* 028F9C04 */ Gambit_fn_02945C10(cpu);
|
|
/* 028F9C08 */ /* nop */
|
|
/* 028F9C0C */ _t174 = cpu->r[1] + 0x000000C4u;
|
|
/* 028F9C0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t174);
|
|
/* 028F9C10 */ cpu->lr = cpu->r[0];
|
|
/* 028F9C14 */ cpu->r[1] = cpu->r[1] + 0x000000C0u;
|
|
/* 028F9C18 */ return;
|
|
L_028F9C24: ; // 0x28f9c24
|
|
/* 028F9C24 */ cpu->r[9] = 0x00000001u;
|
|
/* 028F9C28 */ cpu->r[8] = 0x00000000u;
|
|
/* 028F9C2C */ goto L_028F9658;
|
|
}
|
|
|
|
// fn_028F9C30 @ 0x28f9c30
|
|
void Gambit_fn_028F9C30(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_028F9C30: ; // 0x28f9c30
|
|
/* 028F9C30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9C34 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9C34 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028F9C34 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F9C34 */ goto L_028F9C38;
|
|
L_028F9C38: ; // 0x28f9c38
|
|
/* 028F9C38 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028F9C38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028F9C3C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9C3C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F9C3C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028F9C3C */ goto L_028F9C40;
|
|
L_028F9C40: ; // 0x28f9c40
|
|
/* 028F9C40 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028F9C44 @ 0x28f9c44
|
|
void Gambit_fn_028F9C44(CPUState* cpu) {
|
|
L_028F9C44: ; // 0x28f9c44
|
|
/* 028F9C44 */ return;
|
|
}
|
|
|
|
// fn_028F9C48 @ 0x28f9c48
|
|
void Gambit_fn_028F9C48(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028F9C48: ; // 0x28f9c48
|
|
/* 028F9C48 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x00000011u);
|
|
/* 028F9C4C */ cpu->r[12] = 0x101D0000u;
|
|
/* 028F9C50 */ cpu->r[12] = cpu->r[12] + 0xFFFF9B26u;
|
|
/* 028F9C54 */ _t0 = cpu->r[12] + cpu->r[0];
|
|
/* 028F9C54 */ cpu->r[3] = rbrew_read8(cpu->mem, _t0);
|
|
/* 028F9C58 */ return;
|
|
}
|
|
|
|
// fn_028F9C5C @ 0x28f9c5c
|
|
void Gambit_fn_028F9C5C(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028F9C5C: ; // 0x28f9c5c
|
|
/* 028F9C5C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x00000011u);
|
|
/* 028F9C60 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028F9C64 */ cpu->r[12] = cpu->r[12] + 0xFFFF9B27u;
|
|
/* 028F9C68 */ _t0 = cpu->r[12] + cpu->r[0];
|
|
/* 028F9C68 */ cpu->r[3] = rbrew_read8(cpu->mem, _t0);
|
|
/* 028F9C6C */ return;
|
|
}
|
|
|
|
// fn_028F9C70 @ 0x28f9c70
|
|
void Gambit_fn_028F9C70(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028F9C70: ; // 0x28f9c70
|
|
/* 028F9C70 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x00000011u);
|
|
/* 028F9C74 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028F9C78 */ cpu->r[12] = cpu->r[12] + 0xFFFF9B29u;
|
|
/* 028F9C7C */ _t0 = cpu->r[12] + cpu->r[0];
|
|
/* 028F9C7C */ cpu->r[3] = rbrew_read8(cpu->mem, _t0);
|
|
/* 028F9C80 */ return;
|
|
}
|
|
|
|
// fn_028F9C98 @ 0x28f9c98
|
|
void Gambit_fn_028F9C98(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028F9C98: ; // 0x28f9c98
|
|
/* 028F9C98 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x00000011u);
|
|
/* 028F9C9C */ cpu->r[12] = 0x101D0000u;
|
|
/* 028F9CA0 */ cpu->r[12] = cpu->r[12] + 0xFFFF9B2Bu;
|
|
/* 028F9CA4 */ _t0 = cpu->r[12] + cpu->r[0];
|
|
/* 028F9CA4 */ cpu->r[3] = rbrew_read8(cpu->mem, _t0);
|
|
/* 028F9CA8 */ return;
|
|
}
|
|
|
|
// fn_028F9CAC @ 0x28f9cac
|
|
void Gambit_fn_028F9CAC(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028F9CAC: ; // 0x28f9cac
|
|
/* 028F9CAC */ cpu->r[12] = rbrew_rlwinm(cpu->r[3], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028F9CB0 */ cpu->r[10] = cpu->r[12] + 0x101D0000u;
|
|
/* 028F9CB4 */ cpu->r[11] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028F9CB8 */ cpu->r[0] = cpu->r[10] + 0xFFFF9F2Cu;
|
|
/* 028F9CBC */ _t0 = cpu->r[11] + cpu->r[0];
|
|
/* 028F9CBC */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028F9CC0 */ return;
|
|
}
|
|
|
|
// fn_028F9CC4 @ 0x28f9cc4
|
|
void Gambit_fn_028F9CC4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F9CC4: ; // 0x28f9cc4
|
|
/* 028F9CC4 */ cpu->r[0] = cpu->lr;
|
|
/* 028F9CC8 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028F9CC8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F9CC8 */ cpu->r[1] = _t0;
|
|
/* 028F9CCC */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028F9CCC */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028F9CD0 */ /* nop */
|
|
/* 028F9CD4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F9CD4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F9CD8 */ _t3 = cpu->r[1] + 0x00000018u;
|
|
/* 028F9CD8 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 028F9CDC */ cpu->r[31] = cpu->r[3];
|
|
/* 028F9CDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F9CE0 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 028F9CE0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F9CE4 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9CE4 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F9CE4 */ if (_t6) goto L_028F9CE8; else goto L_028F9CF8;
|
|
L_028F9CE8: ; // 0x28f9ce8
|
|
/* 028F9CE8 */ cpu->r[3] = 0x00000024u;
|
|
/* 028F9CEC */ Gambit_fn_02801A78(cpu);
|
|
/* 028F9CF0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F9CF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F9CF4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9CF4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F9CF4 */ if (_t8) goto L_028F9D70; else goto L_028F9CF8;
|
|
L_028F9CF8: ; // 0x28f9cf8
|
|
/* 028F9CF8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028F9CFC */ cpu->r[3] = cpu->r[31];
|
|
/* 028F9CFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9D00 */ _t9 = cpu->r[12] + 0xFFFFCFE4u;
|
|
/* 028F9D00 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028F9D04 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9D04 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F9D04 */ if (_t11) goto L_028F9D08; else goto L_028F9D18;
|
|
L_028F9D08: ; // 0x28f9d08
|
|
/* 028F9D08 */ cpu->r[3] = 0x00000010u;
|
|
/* 028F9D0C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F9D10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9D14 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9D14 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F9D14 */ if (_t13) goto L_028F9D30; else goto L_028F9D18;
|
|
L_028F9D18: ; // 0x28f9d18
|
|
/* 028F9D18 */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 028F9D18 */ rbrew_write_f32(cpu->mem, _t14, cpu->f[31]);
|
|
/* 028F9D1C */ cpu->r[12] = 0x10140000u;
|
|
/* 028F9D20 */ _t15 = cpu->r[3] + 0x00000008u;
|
|
/* 028F9D20 */ rbrew_write_f32(cpu->mem, _t15, cpu->f[31]);
|
|
/* 028F9D24 */ _t16 = cpu->r[12] + 0xFFFFCFE8u;
|
|
/* 028F9D24 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028F9D28 */ _t17 = cpu->r[3] + 0x00000000u;
|
|
/* 028F9D28 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[31]);
|
|
/* 028F9D2C */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F9D2C */ rbrew_write_f32(cpu->mem, _t18, cpu->f[0]);
|
|
L_028F9D30: ; // 0x28f9d30
|
|
/* 028F9D30 */ cpu->r[0] = 0x00000001u;
|
|
/* 028F9D34 */ _t19 = cpu->r[31] + 0x00000018u;
|
|
/* 028F9D34 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[31]);
|
|
/* 028F9D38 */ cpu->r[12] = 0x00000000u;
|
|
/* 028F9D3C */ _t20 = cpu->r[31] + 0x0000001Du;
|
|
/* 028F9D3C */ rbrew_write8(cpu->mem, _t20, (uint8_t)cpu->r[0]);
|
|
/* 028F9D40 */ cpu->r[11] = 0x10140000u;
|
|
/* 028F9D44 */ _t21 = cpu->r[31] + 0x00000022u;
|
|
/* 028F9D44 */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[12]);
|
|
/* 028F9D48 */ _t22 = cpu->r[11] + 0xFFFFCFECu;
|
|
/* 028F9D48 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028F9D4C */ cpu->r[11] = 0x00000002u;
|
|
/* 028F9D50 */ _t23 = cpu->r[31] + 0x00000023u;
|
|
/* 028F9D50 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[12]);
|
|
/* 028F9D54 */ _t24 = cpu->r[31] + 0x00000020u;
|
|
/* 028F9D54 */ rbrew_write8(cpu->mem, _t24, (uint8_t)cpu->r[11]);
|
|
/* 028F9D58 */ _t25 = cpu->r[31] + 0x00000014u;
|
|
/* 028F9D58 */ rbrew_write_f32(cpu->mem, _t25, cpu->f[13]);
|
|
/* 028F9D5C */ _t26 = cpu->r[31] + 0x0000001Fu;
|
|
/* 028F9D5C */ rbrew_write8(cpu->mem, _t26, (uint8_t)cpu->r[11]);
|
|
/* 028F9D60 */ _t27 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F9D60 */ rbrew_write8(cpu->mem, _t27, (uint8_t)cpu->r[0]);
|
|
/* 028F9D64 */ _t28 = cpu->r[31] + 0x00000021u;
|
|
/* 028F9D64 */ rbrew_write8(cpu->mem, _t28, (uint8_t)cpu->r[11]);
|
|
/* 028F9D68 */ _t29 = cpu->r[31] + 0x00000010u;
|
|
/* 028F9D68 */ rbrew_write_f32(cpu->mem, _t29, cpu->f[31]);
|
|
/* 028F9D6C */ _t30 = cpu->r[31] + 0x0000001Eu;
|
|
/* 028F9D6C */ rbrew_write8(cpu->mem, _t30, (uint8_t)cpu->r[11]);
|
|
L_028F9D70: ; // 0x28f9d70
|
|
/* 028F9D70 */ _t31 = cpu->r[1] + 0x00000018u;
|
|
/* 028F9D70 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 028F9D74 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F9D78 */ _t32 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F9D78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F9D7C */ _t33 = cpu->r[1] + 0x00000010u;
|
|
/* 028F9D7C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t33);
|
|
/* 028F9D80 */ _t34 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F9D80 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028F9D80 */ if (_t35) goto L_028F9D84; // else: addr-0 trap, fall-through
|
|
L_028F9D84: ; // 0x28f9d84
|
|
/* 028F9D84 */ _t36 = cpu->r[1] + 0x00000024u;
|
|
/* 028F9D84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F9D88 */ cpu->lr = cpu->r[0];
|
|
/* 028F9D8C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028F9D90 */ return;
|
|
}
|
|
|
|
// fn_028F9CC8 @ 0x28f9cc8
|
|
void Gambit_fn_028F9CC8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F9CC8: ; // 0x28f9cc8
|
|
/* 028F9CC8 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028F9CC8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F9CC8 */ cpu->r[1] = _t0;
|
|
/* 028F9CCC */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028F9CCC */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028F9CD0 */ /* nop */
|
|
/* 028F9CD4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F9CD4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028F9CD8 */ _t3 = cpu->r[1] + 0x00000018u;
|
|
/* 028F9CD8 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 028F9CDC */ cpu->r[31] = cpu->r[3];
|
|
/* 028F9CDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F9CE0 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 028F9CE0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028F9CE4 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9CE4 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028F9CE4 */ if (_t6) goto L_028F9CE8; else goto L_028F9CF8;
|
|
L_028F9CE8: ; // 0x28f9ce8
|
|
/* 028F9CE8 */ cpu->r[3] = 0x00000024u;
|
|
/* 028F9CEC */ Gambit_fn_02801A78(cpu);
|
|
/* 028F9CF0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F9CF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F9CF4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9CF4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028F9CF4 */ if (_t8) goto L_028F9D70; else goto L_028F9CF8;
|
|
L_028F9CF8: ; // 0x28f9cf8
|
|
/* 028F9CF8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028F9CFC */ cpu->r[3] = cpu->r[31];
|
|
/* 028F9CFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9D00 */ _t9 = cpu->r[12] + 0xFFFFCFE4u;
|
|
/* 028F9D00 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028F9D04 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9D04 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028F9D04 */ if (_t11) goto L_028F9D08; else goto L_028F9D18;
|
|
L_028F9D08: ; // 0x28f9d08
|
|
/* 028F9D08 */ cpu->r[3] = 0x00000010u;
|
|
/* 028F9D0C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F9D10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9D14 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9D14 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028F9D14 */ if (_t13) goto L_028F9D30; else goto L_028F9D18;
|
|
L_028F9D18: ; // 0x28f9d18
|
|
/* 028F9D18 */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 028F9D18 */ rbrew_write_f32(cpu->mem, _t14, cpu->f[31]);
|
|
/* 028F9D1C */ cpu->r[12] = 0x10140000u;
|
|
/* 028F9D20 */ _t15 = cpu->r[3] + 0x00000008u;
|
|
/* 028F9D20 */ rbrew_write_f32(cpu->mem, _t15, cpu->f[31]);
|
|
/* 028F9D24 */ _t16 = cpu->r[12] + 0xFFFFCFE8u;
|
|
/* 028F9D24 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028F9D28 */ _t17 = cpu->r[3] + 0x00000000u;
|
|
/* 028F9D28 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[31]);
|
|
/* 028F9D2C */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028F9D2C */ rbrew_write_f32(cpu->mem, _t18, cpu->f[0]);
|
|
L_028F9D30: ; // 0x28f9d30
|
|
/* 028F9D30 */ cpu->r[0] = 0x00000001u;
|
|
/* 028F9D34 */ _t19 = cpu->r[31] + 0x00000018u;
|
|
/* 028F9D34 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[31]);
|
|
/* 028F9D38 */ cpu->r[12] = 0x00000000u;
|
|
/* 028F9D3C */ _t20 = cpu->r[31] + 0x0000001Du;
|
|
/* 028F9D3C */ rbrew_write8(cpu->mem, _t20, (uint8_t)cpu->r[0]);
|
|
/* 028F9D40 */ cpu->r[11] = 0x10140000u;
|
|
/* 028F9D44 */ _t21 = cpu->r[31] + 0x00000022u;
|
|
/* 028F9D44 */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[12]);
|
|
/* 028F9D48 */ _t22 = cpu->r[11] + 0xFFFFCFECu;
|
|
/* 028F9D48 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 028F9D4C */ cpu->r[11] = 0x00000002u;
|
|
/* 028F9D50 */ _t23 = cpu->r[31] + 0x00000023u;
|
|
/* 028F9D50 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[12]);
|
|
/* 028F9D54 */ _t24 = cpu->r[31] + 0x00000020u;
|
|
/* 028F9D54 */ rbrew_write8(cpu->mem, _t24, (uint8_t)cpu->r[11]);
|
|
/* 028F9D58 */ _t25 = cpu->r[31] + 0x00000014u;
|
|
/* 028F9D58 */ rbrew_write_f32(cpu->mem, _t25, cpu->f[13]);
|
|
/* 028F9D5C */ _t26 = cpu->r[31] + 0x0000001Fu;
|
|
/* 028F9D5C */ rbrew_write8(cpu->mem, _t26, (uint8_t)cpu->r[11]);
|
|
/* 028F9D60 */ _t27 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F9D60 */ rbrew_write8(cpu->mem, _t27, (uint8_t)cpu->r[0]);
|
|
/* 028F9D64 */ _t28 = cpu->r[31] + 0x00000021u;
|
|
/* 028F9D64 */ rbrew_write8(cpu->mem, _t28, (uint8_t)cpu->r[11]);
|
|
/* 028F9D68 */ _t29 = cpu->r[31] + 0x00000010u;
|
|
/* 028F9D68 */ rbrew_write_f32(cpu->mem, _t29, cpu->f[31]);
|
|
/* 028F9D6C */ _t30 = cpu->r[31] + 0x0000001Eu;
|
|
/* 028F9D6C */ rbrew_write8(cpu->mem, _t30, (uint8_t)cpu->r[11]);
|
|
L_028F9D70: ; // 0x28f9d70
|
|
/* 028F9D70 */ _t31 = cpu->r[1] + 0x00000018u;
|
|
/* 028F9D70 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 028F9D74 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F9D78 */ _t32 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F9D78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028F9D7C */ _t33 = cpu->r[1] + 0x00000010u;
|
|
/* 028F9D7C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t33);
|
|
/* 028F9D80 */ _t34 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028F9D80 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028F9D80 */ if (_t35) goto L_028F9D84; // else: addr-0 trap, fall-through
|
|
L_028F9D84: ; // 0x28f9d84
|
|
/* 028F9D84 */ _t36 = cpu->r[1] + 0x00000024u;
|
|
/* 028F9D84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028F9D88 */ cpu->lr = cpu->r[0];
|
|
/* 028F9D8C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028F9D90 */ return;
|
|
}
|
|
|
|
// fn_028F9D94 @ 0x28f9d94
|
|
void Gambit_fn_028F9D94(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F9D94: ; // 0x28f9d94
|
|
/* 028F9D94 */ cpu->r[0] = cpu->lr;
|
|
/* 028F9D98 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F9D98 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F9D98 */ cpu->r[1] = _t0;
|
|
/* 028F9D9C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F9D9C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F9DA0 */ cpu->r[11] = cpu->r[4];
|
|
/* 028F9DA4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F9DA8 */ cpu->r[9] = 0x0000001Du;
|
|
/* 028F9DAC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F9DAC */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F9DB0 */ _t3 = cpu->r[4] + 0x00000000u;
|
|
/* 028F9DB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F9DB4 */ cpu->r[12] = cpu->r[31];
|
|
/* 028F9DB8 */ cpu->ctr = cpu->r[9];
|
|
/* 028F9DBC */ _t4 = cpu->r[31] + 0x00000000u;
|
|
/* 028F9DBC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
L_028F9DC0: ; // 0x28f9dc0
|
|
/* 028F9DC0 */ _t5 = cpu->r[11] + 0x00000004u;
|
|
/* 028F9DC0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F9DC0 */ cpu->r[11] = _t5;
|
|
/* 028F9DC4 */ _t6 = cpu->r[12] + 0x00000004u;
|
|
/* 028F9DC4 */ rbrew_write32(cpu->mem, _t6, cpu->r[10]);
|
|
/* 028F9DC4 */ cpu->r[12] = _t6;
|
|
/* 028F9DC8 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9DC8 */ _t7 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9DC8 */ _t8 = _t7 >> (0x00000002u & 31u);
|
|
/* 028F9DC8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F9DC8 */ if (_t9) goto L_028F9DC0; else goto L_028F9DCC;
|
|
L_028F9DCC: ; // 0x28f9dcc
|
|
/* 028F9DCC */ _t10 = cpu->r[4] + 0x00000078u;
|
|
/* 028F9DCC */ cpu->r[11] = rbrew_read8(cpu->mem, _t10);
|
|
/* 028F9DD0 */ _t11 = cpu->r[31] + 0x00000078u;
|
|
/* 028F9DD0 */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[11]);
|
|
/* 028F9DD4 */ _t12 = cpu->r[4] + 0x00000079u;
|
|
/* 028F9DD4 */ cpu->r[12] = rbrew_read8(cpu->mem, _t12);
|
|
/* 028F9DD8 */ _t13 = cpu->r[31] + 0x00000079u;
|
|
/* 028F9DD8 */ rbrew_write8(cpu->mem, _t13, (uint8_t)cpu->r[12]);
|
|
/* 028F9DDC */ _t14 = cpu->r[4] + 0x0000007Au;
|
|
/* 028F9DDC */ cpu->r[0] = rbrew_read8(cpu->mem, _t14);
|
|
/* 028F9DE0 */ _t15 = cpu->r[31] + 0x0000007Au;
|
|
/* 028F9DE0 */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[0]);
|
|
/* 028F9DE4 */ _t16 = cpu->r[4] + 0x0000007Bu;
|
|
/* 028F9DE4 */ cpu->r[9] = rbrew_read8(cpu->mem, _t16);
|
|
/* 028F9DE8 */ _t17 = cpu->r[31] + 0x0000007Bu;
|
|
/* 028F9DE8 */ rbrew_write8(cpu->mem, _t17, (uint8_t)cpu->r[9]);
|
|
/* 028F9DEC */ _t18 = cpu->r[4] + 0x0000007Cu;
|
|
/* 028F9DEC */ cpu->r[10] = rbrew_read8(cpu->mem, _t18);
|
|
/* 028F9DF0 */ _t19 = cpu->r[31] + 0x0000007Cu;
|
|
/* 028F9DF0 */ rbrew_write8(cpu->mem, _t19, (uint8_t)cpu->r[10]);
|
|
/* 028F9DF4 */ _t20 = cpu->r[4] + 0x0000007Du;
|
|
/* 028F9DF4 */ cpu->r[11] = rbrew_read8(cpu->mem, _t20);
|
|
/* 028F9DF8 */ _t21 = cpu->r[31] + 0x0000007Du;
|
|
/* 028F9DF8 */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[11]);
|
|
/* 028F9DFC */ _t22 = cpu->r[4] + 0x0000007Eu;
|
|
/* 028F9DFC */ cpu->r[12] = rbrew_read8(cpu->mem, _t22);
|
|
/* 028F9E00 */ cpu->r[3] = cpu->r[31] + 0x00000084u;
|
|
/* 028F9E04 */ _t23 = cpu->r[31] + 0x0000007Eu;
|
|
/* 028F9E04 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[12]);
|
|
/* 028F9E08 */ _t24 = cpu->r[4] + 0x0000007Fu;
|
|
/* 028F9E08 */ cpu->r[0] = rbrew_read8(cpu->mem, _t24);
|
|
/* 028F9E0C */ cpu->r[4] = cpu->r[31] + 0x00000004u;
|
|
/* 028F9E10 */ cpu->r[5] = 0x00000074u;
|
|
/* 028F9E14 */ cpu->r[6] = 0x00000000u;
|
|
/* 028F9E18 */ _t25 = cpu->r[31] + 0x0000007Fu;
|
|
/* 028F9E18 */ rbrew_write8(cpu->mem, _t25, (uint8_t)cpu->r[0]);
|
|
/* 028F9E1C */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028F9E20 */ _t26 = cpu->r[31] + 0x00000154u;
|
|
/* 028F9E20 */ cpu->r[0] = rbrew_read8(cpu->mem, _t26);
|
|
/* 028F9E24 */ cpu->r[9] = 0x00000000u;
|
|
/* 028F9E28 */ _t27 = cpu->r[31] + 0x00000094u;
|
|
/* 028F9E28 */ cpu->r[10] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F9E2C */ _t28 = cpu->r[31] + 0x00000090u;
|
|
/* 028F9E2C */ cpu->r[12] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F9E30 */ _t29 = cpu->r[31] + 0x00000100u;
|
|
/* 028F9E30 */ rbrew_write32(cpu->mem, _t29, cpu->r[9]);
|
|
/* 028F9E34 */ cpu->r[0] = cpu->r[0] | 0x00000005u;
|
|
/* 028F9E38 */ _t30 = cpu->r[31] + 0x00000104u;
|
|
/* 028F9E38 */ rbrew_write32(cpu->mem, _t30, cpu->r[12]);
|
|
/* 028F9E3C */ _t31 = cpu->r[31] + 0x00000154u;
|
|
/* 028F9E3C */ rbrew_write8(cpu->mem, _t31, (uint8_t)cpu->r[0]);
|
|
/* 028F9E40 */ _t32 = cpu->r[31] + 0x000000FCu;
|
|
/* 028F9E40 */ rbrew_write32(cpu->mem, _t32, cpu->r[10]);
|
|
/* 028F9E44 */ _t33 = cpu->r[31] + 0x000000F8u;
|
|
/* 028F9E44 */ rbrew_write32(cpu->mem, _t33, cpu->r[9]);
|
|
/* 028F9E48 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 028F9E48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F9E4C */ cpu->lr = cpu->r[0];
|
|
/* 028F9E50 */ _t35 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F9E50 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F9E54 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F9E58 */ return;
|
|
}
|
|
|
|
// fn_028F9D98 @ 0x28f9d98
|
|
void Gambit_fn_028F9D98(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F9D98: ; // 0x28f9d98
|
|
/* 028F9D98 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F9D98 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F9D98 */ cpu->r[1] = _t0;
|
|
/* 028F9D9C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F9D9C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F9DA0 */ cpu->r[11] = cpu->r[4];
|
|
/* 028F9DA4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F9DA8 */ cpu->r[9] = 0x0000001Du;
|
|
/* 028F9DAC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028F9DAC */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028F9DB0 */ _t3 = cpu->r[4] + 0x00000000u;
|
|
/* 028F9DB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028F9DB4 */ cpu->r[12] = cpu->r[31];
|
|
/* 028F9DB8 */ cpu->ctr = cpu->r[9];
|
|
/* 028F9DBC */ _t4 = cpu->r[31] + 0x00000000u;
|
|
/* 028F9DBC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
L_028F9DC0: ; // 0x28f9dc0
|
|
/* 028F9DC0 */ _t5 = cpu->r[11] + 0x00000004u;
|
|
/* 028F9DC0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028F9DC0 */ cpu->r[11] = _t5;
|
|
/* 028F9DC4 */ _t6 = cpu->r[12] + 0x00000004u;
|
|
/* 028F9DC4 */ rbrew_write32(cpu->mem, _t6, cpu->r[10]);
|
|
/* 028F9DC4 */ cpu->r[12] = _t6;
|
|
/* 028F9DC8 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028F9DC8 */ _t7 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028F9DC8 */ _t8 = _t7 >> (0x00000002u & 31u);
|
|
/* 028F9DC8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028F9DC8 */ if (_t9) goto L_028F9DC0; else goto L_028F9DCC;
|
|
L_028F9DCC: ; // 0x28f9dcc
|
|
/* 028F9DCC */ _t10 = cpu->r[4] + 0x00000078u;
|
|
/* 028F9DCC */ cpu->r[11] = rbrew_read8(cpu->mem, _t10);
|
|
/* 028F9DD0 */ _t11 = cpu->r[31] + 0x00000078u;
|
|
/* 028F9DD0 */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[11]);
|
|
/* 028F9DD4 */ _t12 = cpu->r[4] + 0x00000079u;
|
|
/* 028F9DD4 */ cpu->r[12] = rbrew_read8(cpu->mem, _t12);
|
|
/* 028F9DD8 */ _t13 = cpu->r[31] + 0x00000079u;
|
|
/* 028F9DD8 */ rbrew_write8(cpu->mem, _t13, (uint8_t)cpu->r[12]);
|
|
/* 028F9DDC */ _t14 = cpu->r[4] + 0x0000007Au;
|
|
/* 028F9DDC */ cpu->r[0] = rbrew_read8(cpu->mem, _t14);
|
|
/* 028F9DE0 */ _t15 = cpu->r[31] + 0x0000007Au;
|
|
/* 028F9DE0 */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[0]);
|
|
/* 028F9DE4 */ _t16 = cpu->r[4] + 0x0000007Bu;
|
|
/* 028F9DE4 */ cpu->r[9] = rbrew_read8(cpu->mem, _t16);
|
|
/* 028F9DE8 */ _t17 = cpu->r[31] + 0x0000007Bu;
|
|
/* 028F9DE8 */ rbrew_write8(cpu->mem, _t17, (uint8_t)cpu->r[9]);
|
|
/* 028F9DEC */ _t18 = cpu->r[4] + 0x0000007Cu;
|
|
/* 028F9DEC */ cpu->r[10] = rbrew_read8(cpu->mem, _t18);
|
|
/* 028F9DF0 */ _t19 = cpu->r[31] + 0x0000007Cu;
|
|
/* 028F9DF0 */ rbrew_write8(cpu->mem, _t19, (uint8_t)cpu->r[10]);
|
|
/* 028F9DF4 */ _t20 = cpu->r[4] + 0x0000007Du;
|
|
/* 028F9DF4 */ cpu->r[11] = rbrew_read8(cpu->mem, _t20);
|
|
/* 028F9DF8 */ _t21 = cpu->r[31] + 0x0000007Du;
|
|
/* 028F9DF8 */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[11]);
|
|
/* 028F9DFC */ _t22 = cpu->r[4] + 0x0000007Eu;
|
|
/* 028F9DFC */ cpu->r[12] = rbrew_read8(cpu->mem, _t22);
|
|
/* 028F9E00 */ cpu->r[3] = cpu->r[31] + 0x00000084u;
|
|
/* 028F9E04 */ _t23 = cpu->r[31] + 0x0000007Eu;
|
|
/* 028F9E04 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[12]);
|
|
/* 028F9E08 */ _t24 = cpu->r[4] + 0x0000007Fu;
|
|
/* 028F9E08 */ cpu->r[0] = rbrew_read8(cpu->mem, _t24);
|
|
/* 028F9E0C */ cpu->r[4] = cpu->r[31] + 0x00000004u;
|
|
/* 028F9E10 */ cpu->r[5] = 0x00000074u;
|
|
/* 028F9E14 */ cpu->r[6] = 0x00000000u;
|
|
/* 028F9E18 */ _t25 = cpu->r[31] + 0x0000007Fu;
|
|
/* 028F9E18 */ rbrew_write8(cpu->mem, _t25, (uint8_t)cpu->r[0]);
|
|
/* 028F9E1C */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028F9E20 */ _t26 = cpu->r[31] + 0x00000154u;
|
|
/* 028F9E20 */ cpu->r[0] = rbrew_read8(cpu->mem, _t26);
|
|
/* 028F9E24 */ cpu->r[9] = 0x00000000u;
|
|
/* 028F9E28 */ _t27 = cpu->r[31] + 0x00000094u;
|
|
/* 028F9E28 */ cpu->r[10] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028F9E2C */ _t28 = cpu->r[31] + 0x00000090u;
|
|
/* 028F9E2C */ cpu->r[12] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028F9E30 */ _t29 = cpu->r[31] + 0x00000100u;
|
|
/* 028F9E30 */ rbrew_write32(cpu->mem, _t29, cpu->r[9]);
|
|
/* 028F9E34 */ cpu->r[0] = cpu->r[0] | 0x00000005u;
|
|
/* 028F9E38 */ _t30 = cpu->r[31] + 0x00000104u;
|
|
/* 028F9E38 */ rbrew_write32(cpu->mem, _t30, cpu->r[12]);
|
|
/* 028F9E3C */ _t31 = cpu->r[31] + 0x00000154u;
|
|
/* 028F9E3C */ rbrew_write8(cpu->mem, _t31, (uint8_t)cpu->r[0]);
|
|
/* 028F9E40 */ _t32 = cpu->r[31] + 0x000000FCu;
|
|
/* 028F9E40 */ rbrew_write32(cpu->mem, _t32, cpu->r[10]);
|
|
/* 028F9E44 */ _t33 = cpu->r[31] + 0x000000F8u;
|
|
/* 028F9E44 */ rbrew_write32(cpu->mem, _t33, cpu->r[9]);
|
|
/* 028F9E48 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 028F9E48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F9E4C */ cpu->lr = cpu->r[0];
|
|
/* 028F9E50 */ _t35 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F9E50 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028F9E54 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028F9E58 */ return;
|
|
}
|
|
|
|
// fn_028F9E5C @ 0x28f9e5c
|
|
void Gambit_fn_028F9E5C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F9E5C: ; // 0x28f9e5c
|
|
/* 028F9E5C */ cpu->r[0] = cpu->lr;
|
|
/* 028F9E60 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F9E60 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F9E60 */ cpu->r[1] = _t0;
|
|
/* 028F9E64 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F9E64 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F9E68 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F9E68 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F9E6C */ cpu->r[31] = cpu->r[3];
|
|
/* 028F9E6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F9E70 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F9E70 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F9E74 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9E74 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F9E74 */ if (_t5) goto L_028F9E78; else goto L_028F9E88;
|
|
L_028F9E78: ; // 0x28f9e78
|
|
/* 028F9E78 */ cpu->r[3] = 0x0000015Cu;
|
|
/* 028F9E7C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F9E80 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F9E80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F9E84 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9E84 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F9E84 */ if (_t7) goto L_028FA014; else goto L_028F9E88;
|
|
L_028F9E88: ; // 0x28f9e88
|
|
/* 028F9E88 */ cpu->r[9] = 0x10140000u;
|
|
/* 028F9E8C */ cpu->r[9] = cpu->r[9] + 0xFFFFCFF0u;
|
|
/* 028F9E90 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F9E94 */ _t8 = cpu->r[31] + 0x00000158u;
|
|
/* 028F9E94 */ rbrew_write32(cpu->mem, _t8, cpu->r[9]);
|
|
/* 028F9E98 */ Gambit_fn_028F7044(cpu);
|
|
/* 028F9E9C */ cpu->r[3] = cpu->r[31] + 0x0000012Cu;
|
|
/* 028F9EA0 */ Gambit_fn_028F9CC4(cpu);
|
|
/* 028F9EA4 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F9EA8 */ cpu->r[0] = 0x00000001u;
|
|
/* 028F9EAC */ _t9 = cpu->r[31] + 0x00000150u;
|
|
/* 028F9EAC */ rbrew_write8(cpu->mem, _t9, (uint8_t)cpu->r[30]);
|
|
/* 028F9EB0 */ cpu->r[8] = 0x00000002u;
|
|
/* 028F9EB4 */ _t10 = cpu->r[31] + 0x00000151u;
|
|
/* 028F9EB4 */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[0]);
|
|
/* 028F9EB8 */ cpu->r[9] = 0x00000003u;
|
|
/* 028F9EBC */ _t11 = cpu->r[31] + 0x00000152u;
|
|
/* 028F9EBC */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[8]);
|
|
/* 028F9EC0 */ cpu->r[3] = cpu->r[31] + 0x00000154u;
|
|
/* 028F9EC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9EC4 */ _t12 = cpu->r[31] + 0x00000153u;
|
|
/* 028F9EC4 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[9]);
|
|
/* 028F9EC8 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9EC8 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F9EC8 */ if (_t14) goto L_028F9ECC; else goto L_028F9EDC;
|
|
L_028F9ECC: ; // 0x28f9ecc
|
|
/* 028F9ECC */ cpu->r[3] = 0x00000001u;
|
|
/* 028F9ED0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F9ED4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9ED8 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9ED8 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F9ED8 */ if (_t16) goto L_028F9EE0; else goto L_028F9EDC;
|
|
L_028F9EDC: ; // 0x28f9edc
|
|
/* 028F9EDC */ _t17 = cpu->r[3] + 0x00000000u;
|
|
/* 028F9EDC */ rbrew_write8(cpu->mem, _t17, (uint8_t)cpu->r[30]);
|
|
L_028F9EE0: ; // 0x28f9ee0
|
|
/* 028F9EE0 */ cpu->r[3] = cpu->r[31] + 0x00000155u;
|
|
/* 028F9EE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9EE4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9EE4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F9EE4 */ if (_t19) goto L_028F9EE8; else goto L_028F9EF8;
|
|
L_028F9EE8: ; // 0x28f9ee8
|
|
/* 028F9EE8 */ cpu->r[3] = 0x00000001u;
|
|
/* 028F9EEC */ Gambit_fn_02801A78(cpu);
|
|
/* 028F9EF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9EF4 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9EF4 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F9EF4 */ if (_t21) goto L_028F9EFC; else goto L_028F9EF8;
|
|
L_028F9EF8: ; // 0x28f9ef8
|
|
/* 028F9EF8 */ _t22 = cpu->r[3] + 0x00000000u;
|
|
/* 028F9EF8 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[30]);
|
|
L_028F9EFC: ; // 0x28f9efc
|
|
/* 028F9EFC */ cpu->r[12] = 0x101D0000u;
|
|
/* 028F9F00 */ _t23 = cpu->r[12] + 0xFFFFA534u;
|
|
/* 028F9F00 */ cpu->r[12] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F9F04 */ _t24 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028F9F04 */ cpu->r[4] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F9F08 */ _t25 = cpu->r[31] + 0x00000004u;
|
|
/* 028F9F08 */ cpu->r[10] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F9F0C */ _t26 = cpu->r[4] + 0x00000004u;
|
|
/* 028F9F0C */ cpu->r[11] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F9F10 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[11]);
|
|
/* 028F9F14 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F14 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F9F14 */ if (_t28) goto L_028F9F18; else goto L_028F9FA8;
|
|
L_028F9F18: ; // 0x28f9f18
|
|
/* 028F9F18 */ _t29 = cpu->r[31] + 0x00000008u;
|
|
/* 028F9F18 */ cpu->r[12] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F9F1C */ _t30 = cpu->r[4] + 0x00000008u;
|
|
/* 028F9F1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F9F20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F9F24 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F24 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028F9F24 */ if (_t32) goto L_028F9F28; else goto L_028F9FA8;
|
|
L_028F9F28: ; // 0x28f9f28
|
|
/* 028F9F28 */ _t33 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F9F28 */ cpu->r[8] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F9F2C */ _t34 = cpu->r[4] + 0x0000000Cu;
|
|
/* 028F9F2C */ cpu->r[9] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F9F30 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[9]);
|
|
/* 028F9F34 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F34 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F9F34 */ if (_t36) goto L_028F9F38; else goto L_028F9FA8;
|
|
L_028F9F38: ; // 0x28f9f38
|
|
/* 028F9F38 */ _t37 = cpu->r[31] + 0x00000010u;
|
|
/* 028F9F38 */ cpu->r[10] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F9F3C */ _t38 = cpu->r[4] + 0x00000010u;
|
|
/* 028F9F3C */ cpu->r[11] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F9F40 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[11]);
|
|
/* 028F9F44 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F44 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028F9F44 */ if (_t40) goto L_028F9F48; else goto L_028F9FA8;
|
|
L_028F9F48: ; // 0x28f9f48
|
|
/* 028F9F48 */ _t41 = cpu->r[31] + 0x00000014u;
|
|
/* 028F9F48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F9F4C */ _t42 = cpu->r[4] + 0x00000014u;
|
|
/* 028F9F4C */ cpu->r[9] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F9F50 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[9]);
|
|
/* 028F9F54 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F54 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F9F54 */ if (_t44) goto L_028F9F58; else goto L_028F9FA8;
|
|
L_028F9F58: ; // 0x28f9f58
|
|
/* 028F9F58 */ _t45 = cpu->r[31] + 0x00000018u;
|
|
/* 028F9F58 */ cpu->r[10] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F9F5C */ _t46 = cpu->r[4] + 0x00000018u;
|
|
/* 028F9F5C */ cpu->r[11] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F9F60 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[11]);
|
|
/* 028F9F64 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F64 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028F9F64 */ if (_t48) goto L_028F9F68; else goto L_028F9FA8;
|
|
L_028F9F68: ; // 0x28f9f68
|
|
/* 028F9F68 */ _t49 = cpu->r[31] + 0x00000038u;
|
|
/* 028F9F68 */ cpu->r[12] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028F9F6C */ _t50 = cpu->r[4] + 0x00000038u;
|
|
/* 028F9F6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F9F70 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F9F74 */ _t51 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F74 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028F9F74 */ if (_t52) goto L_028F9F78; else goto L_028F9FA8;
|
|
L_028F9F78: ; // 0x28f9f78
|
|
/* 028F9F78 */ _t53 = cpu->r[31] + 0x00000034u;
|
|
/* 028F9F78 */ cpu->r[8] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028F9F7C */ _t54 = cpu->r[4] + 0x00000034u;
|
|
/* 028F9F7C */ cpu->r[9] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028F9F80 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[9]);
|
|
/* 028F9F84 */ _t55 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F84 */ _t56 = _t55 & 0x00000001u;
|
|
/* 028F9F84 */ if (_t56) goto L_028F9F88; else goto L_028F9FA8;
|
|
L_028F9F88: ; // 0x28f9f88
|
|
/* 028F9F88 */ _t57 = cpu->r[31] + 0x00000020u;
|
|
/* 028F9F88 */ cpu->r[10] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028F9F8C */ _t58 = cpu->r[4] + 0x00000020u;
|
|
/* 028F9F8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028F9F90 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028F9F94 */ _t59 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F94 */ _t60 = _t59 & 0x00000001u;
|
|
/* 028F9F94 */ if (_t60) goto L_028F9F98; else goto L_028F9FA8;
|
|
L_028F9F98: ; // 0x28f9f98
|
|
/* 028F9F98 */ _t61 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F9F98 */ cpu->r[12] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028F9F9C */ _t62 = cpu->r[4] + 0x0000001Cu;
|
|
/* 028F9F9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028F9FA0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F9FA4 */ _t63 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9FA4 */ _t64 = _t63 & 0x00000001u;
|
|
/* 028F9FA4 */ if (_t64) goto L_028F9FD8; else goto L_028F9FA8;
|
|
L_028F9FA8: ; // 0x28f9fa8
|
|
/* 028F9FA8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F9FAC */ Gambit_fn_028F9D94(cpu);
|
|
/* 028F9FB0 */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028F9FB4 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F9FB8 */ cpu->r[5] = 0x00000001u;
|
|
/* 028F9FBC */ rbrew_dispatch(cpu, 0x02d05c20u);
|
|
/* 028F9FC0 */ cpu->r[10] = 0x00010000u;
|
|
/* 028F9FC4 */ cpu->r[0] = 0x000000FFu;
|
|
/* 028F9FC8 */ cpu->r[10] = cpu->r[10] + 0x00000203u;
|
|
/* 028F9FCC */ _t65 = cpu->r[31] + 0x00000154u;
|
|
/* 028F9FCC */ rbrew_write8(cpu->mem, _t65, (uint8_t)cpu->r[0]);
|
|
/* 028F9FD0 */ _t66 = cpu->r[31] + 0x00000108u;
|
|
/* 028F9FD0 */ rbrew_write32(cpu->mem, _t66, cpu->r[10]);
|
|
/* 028F9FD4 */ goto L_028FA014;
|
|
L_028F9FD8: ; // 0x28f9fd8
|
|
/* 028F9FD8 */ _t67 = cpu->r[4] + 0x00000028u;
|
|
/* 028F9FD8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028F9FDC */ _t68 = cpu->r[4] + 0x00000030u;
|
|
/* 028F9FDC */ cpu->r[8] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028F9FE0 */ _t69 = cpu->r[31] + 0x00000028u;
|
|
/* 028F9FE0 */ rbrew_write32(cpu->mem, _t69, cpu->r[12]);
|
|
/* 028F9FE4 */ cpu->r[5] = 0x00000001u;
|
|
/* 028F9FE8 */ _t70 = cpu->r[31] + 0x00000030u;
|
|
/* 028F9FE8 */ rbrew_write32(cpu->mem, _t70, cpu->r[8]);
|
|
/* 028F9FEC */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028F9FF0 */ _t71 = cpu->r[31] + 0x000000B0u;
|
|
/* 028F9FF0 */ rbrew_write32(cpu->mem, _t71, cpu->r[8]);
|
|
/* 028F9FF4 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F9FF8 */ _t72 = cpu->r[31] + 0x000000A8u;
|
|
/* 028F9FF8 */ rbrew_write32(cpu->mem, _t72, cpu->r[12]);
|
|
/* 028F9FFC */ rbrew_dispatch(cpu, 0x02d05c20u);
|
|
/* 028FA000 */ cpu->r[10] = 0x00010000u;
|
|
/* 028FA004 */ cpu->r[0] = 0x000000FFu;
|
|
/* 028FA008 */ cpu->r[10] = cpu->r[10] + 0x00000203u;
|
|
/* 028FA00C */ _t73 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA00C */ rbrew_write8(cpu->mem, _t73, (uint8_t)cpu->r[0]);
|
|
/* 028FA010 */ _t74 = cpu->r[31] + 0x00000108u;
|
|
/* 028FA010 */ rbrew_write32(cpu->mem, _t74, cpu->r[10]);
|
|
L_028FA014: ; // 0x28fa014
|
|
/* 028FA014 */ _t75 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA014 */ cpu->r[0] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028FA018 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA01C */ _t76 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA01C */ cpu->r[31] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028FA020 */ cpu->lr = cpu->r[0];
|
|
/* 028FA024 */ _t77 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA024 */ cpu->r[30] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028FA028 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA02C */ return;
|
|
}
|
|
|
|
// fn_028F9E60 @ 0x28f9e60
|
|
void Gambit_fn_028F9E60(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028F9E60: ; // 0x28f9e60
|
|
/* 028F9E60 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028F9E60 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028F9E60 */ cpu->r[1] = _t0;
|
|
/* 028F9E64 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028F9E64 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028F9E68 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028F9E68 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028F9E6C */ cpu->r[31] = cpu->r[3];
|
|
/* 028F9E6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F9E70 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028F9E70 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028F9E74 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9E74 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028F9E74 */ if (_t5) goto L_028F9E78; else goto L_028F9E88;
|
|
L_028F9E78: ; // 0x28f9e78
|
|
/* 028F9E78 */ cpu->r[3] = 0x0000015Cu;
|
|
/* 028F9E7C */ Gambit_fn_02801A78(cpu);
|
|
/* 028F9E80 */ cpu->r[31] = cpu->r[3];
|
|
/* 028F9E80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028F9E84 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9E84 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028F9E84 */ if (_t7) goto L_028FA014; else goto L_028F9E88;
|
|
L_028F9E88: ; // 0x28f9e88
|
|
/* 028F9E88 */ cpu->r[9] = 0x10140000u;
|
|
/* 028F9E8C */ cpu->r[9] = cpu->r[9] + 0xFFFFCFF0u;
|
|
/* 028F9E90 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F9E94 */ _t8 = cpu->r[31] + 0x00000158u;
|
|
/* 028F9E94 */ rbrew_write32(cpu->mem, _t8, cpu->r[9]);
|
|
/* 028F9E98 */ Gambit_fn_028F7044(cpu);
|
|
/* 028F9E9C */ cpu->r[3] = cpu->r[31] + 0x0000012Cu;
|
|
/* 028F9EA0 */ Gambit_fn_028F9CC4(cpu);
|
|
/* 028F9EA4 */ cpu->r[30] = 0x00000000u;
|
|
/* 028F9EA8 */ cpu->r[0] = 0x00000001u;
|
|
/* 028F9EAC */ _t9 = cpu->r[31] + 0x00000150u;
|
|
/* 028F9EAC */ rbrew_write8(cpu->mem, _t9, (uint8_t)cpu->r[30]);
|
|
/* 028F9EB0 */ cpu->r[8] = 0x00000002u;
|
|
/* 028F9EB4 */ _t10 = cpu->r[31] + 0x00000151u;
|
|
/* 028F9EB4 */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[0]);
|
|
/* 028F9EB8 */ cpu->r[9] = 0x00000003u;
|
|
/* 028F9EBC */ _t11 = cpu->r[31] + 0x00000152u;
|
|
/* 028F9EBC */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[8]);
|
|
/* 028F9EC0 */ cpu->r[3] = cpu->r[31] + 0x00000154u;
|
|
/* 028F9EC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9EC4 */ _t12 = cpu->r[31] + 0x00000153u;
|
|
/* 028F9EC4 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[9]);
|
|
/* 028F9EC8 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9EC8 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028F9EC8 */ if (_t14) goto L_028F9ECC; else goto L_028F9EDC;
|
|
L_028F9ECC: ; // 0x28f9ecc
|
|
/* 028F9ECC */ cpu->r[3] = 0x00000001u;
|
|
/* 028F9ED0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028F9ED4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9ED8 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9ED8 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028F9ED8 */ if (_t16) goto L_028F9EE0; else goto L_028F9EDC;
|
|
L_028F9EDC: ; // 0x28f9edc
|
|
/* 028F9EDC */ _t17 = cpu->r[3] + 0x00000000u;
|
|
/* 028F9EDC */ rbrew_write8(cpu->mem, _t17, (uint8_t)cpu->r[30]);
|
|
L_028F9EE0: ; // 0x28f9ee0
|
|
/* 028F9EE0 */ cpu->r[3] = cpu->r[31] + 0x00000155u;
|
|
/* 028F9EE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9EE4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9EE4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028F9EE4 */ if (_t19) goto L_028F9EE8; else goto L_028F9EF8;
|
|
L_028F9EE8: ; // 0x28f9ee8
|
|
/* 028F9EE8 */ cpu->r[3] = 0x00000001u;
|
|
/* 028F9EEC */ Gambit_fn_02801A78(cpu);
|
|
/* 028F9EF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028F9EF4 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9EF4 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028F9EF4 */ if (_t21) goto L_028F9EFC; else goto L_028F9EF8;
|
|
L_028F9EF8: ; // 0x28f9ef8
|
|
/* 028F9EF8 */ _t22 = cpu->r[3] + 0x00000000u;
|
|
/* 028F9EF8 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[30]);
|
|
L_028F9EFC: ; // 0x28f9efc
|
|
/* 028F9EFC */ cpu->r[12] = 0x101D0000u;
|
|
/* 028F9F00 */ _t23 = cpu->r[12] + 0xFFFFA534u;
|
|
/* 028F9F00 */ cpu->r[12] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028F9F04 */ _t24 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028F9F04 */ cpu->r[4] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028F9F08 */ _t25 = cpu->r[31] + 0x00000004u;
|
|
/* 028F9F08 */ cpu->r[10] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028F9F0C */ _t26 = cpu->r[4] + 0x00000004u;
|
|
/* 028F9F0C */ cpu->r[11] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028F9F10 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[11]);
|
|
/* 028F9F14 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F14 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028F9F14 */ if (_t28) goto L_028F9F18; else goto L_028F9FA8;
|
|
L_028F9F18: ; // 0x28f9f18
|
|
/* 028F9F18 */ _t29 = cpu->r[31] + 0x00000008u;
|
|
/* 028F9F18 */ cpu->r[12] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028F9F1C */ _t30 = cpu->r[4] + 0x00000008u;
|
|
/* 028F9F1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028F9F20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F9F24 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F24 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028F9F24 */ if (_t32) goto L_028F9F28; else goto L_028F9FA8;
|
|
L_028F9F28: ; // 0x28f9f28
|
|
/* 028F9F28 */ _t33 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028F9F28 */ cpu->r[8] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028F9F2C */ _t34 = cpu->r[4] + 0x0000000Cu;
|
|
/* 028F9F2C */ cpu->r[9] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028F9F30 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[9]);
|
|
/* 028F9F34 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F34 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028F9F34 */ if (_t36) goto L_028F9F38; else goto L_028F9FA8;
|
|
L_028F9F38: ; // 0x28f9f38
|
|
/* 028F9F38 */ _t37 = cpu->r[31] + 0x00000010u;
|
|
/* 028F9F38 */ cpu->r[10] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028F9F3C */ _t38 = cpu->r[4] + 0x00000010u;
|
|
/* 028F9F3C */ cpu->r[11] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028F9F40 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[11]);
|
|
/* 028F9F44 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F44 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028F9F44 */ if (_t40) goto L_028F9F48; else goto L_028F9FA8;
|
|
L_028F9F48: ; // 0x28f9f48
|
|
/* 028F9F48 */ _t41 = cpu->r[31] + 0x00000014u;
|
|
/* 028F9F48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028F9F4C */ _t42 = cpu->r[4] + 0x00000014u;
|
|
/* 028F9F4C */ cpu->r[9] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028F9F50 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[9]);
|
|
/* 028F9F54 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F54 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028F9F54 */ if (_t44) goto L_028F9F58; else goto L_028F9FA8;
|
|
L_028F9F58: ; // 0x28f9f58
|
|
/* 028F9F58 */ _t45 = cpu->r[31] + 0x00000018u;
|
|
/* 028F9F58 */ cpu->r[10] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028F9F5C */ _t46 = cpu->r[4] + 0x00000018u;
|
|
/* 028F9F5C */ cpu->r[11] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028F9F60 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[11]);
|
|
/* 028F9F64 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F64 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028F9F64 */ if (_t48) goto L_028F9F68; else goto L_028F9FA8;
|
|
L_028F9F68: ; // 0x28f9f68
|
|
/* 028F9F68 */ _t49 = cpu->r[31] + 0x00000038u;
|
|
/* 028F9F68 */ cpu->r[12] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028F9F6C */ _t50 = cpu->r[4] + 0x00000038u;
|
|
/* 028F9F6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028F9F70 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F9F74 */ _t51 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F74 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028F9F74 */ if (_t52) goto L_028F9F78; else goto L_028F9FA8;
|
|
L_028F9F78: ; // 0x28f9f78
|
|
/* 028F9F78 */ _t53 = cpu->r[31] + 0x00000034u;
|
|
/* 028F9F78 */ cpu->r[8] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028F9F7C */ _t54 = cpu->r[4] + 0x00000034u;
|
|
/* 028F9F7C */ cpu->r[9] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028F9F80 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[9]);
|
|
/* 028F9F84 */ _t55 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F84 */ _t56 = _t55 & 0x00000001u;
|
|
/* 028F9F84 */ if (_t56) goto L_028F9F88; else goto L_028F9FA8;
|
|
L_028F9F88: ; // 0x28f9f88
|
|
/* 028F9F88 */ _t57 = cpu->r[31] + 0x00000020u;
|
|
/* 028F9F88 */ cpu->r[10] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028F9F8C */ _t58 = cpu->r[4] + 0x00000020u;
|
|
/* 028F9F8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028F9F90 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028F9F94 */ _t59 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9F94 */ _t60 = _t59 & 0x00000001u;
|
|
/* 028F9F94 */ if (_t60) goto L_028F9F98; else goto L_028F9FA8;
|
|
L_028F9F98: ; // 0x28f9f98
|
|
/* 028F9F98 */ _t61 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028F9F98 */ cpu->r[12] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028F9F9C */ _t62 = cpu->r[4] + 0x0000001Cu;
|
|
/* 028F9F9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028F9FA0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028F9FA4 */ _t63 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028F9FA4 */ _t64 = _t63 & 0x00000001u;
|
|
/* 028F9FA4 */ if (_t64) goto L_028F9FD8; else goto L_028F9FA8;
|
|
L_028F9FA8: ; // 0x28f9fa8
|
|
/* 028F9FA8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028F9FAC */ Gambit_fn_028F9D94(cpu);
|
|
/* 028F9FB0 */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028F9FB4 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F9FB8 */ cpu->r[5] = 0x00000001u;
|
|
/* 028F9FBC */ rbrew_dispatch(cpu, 0x02d05c20u);
|
|
/* 028F9FC0 */ cpu->r[10] = 0x00010000u;
|
|
/* 028F9FC4 */ cpu->r[0] = 0x000000FFu;
|
|
/* 028F9FC8 */ cpu->r[10] = cpu->r[10] + 0x00000203u;
|
|
/* 028F9FCC */ _t65 = cpu->r[31] + 0x00000154u;
|
|
/* 028F9FCC */ rbrew_write8(cpu->mem, _t65, (uint8_t)cpu->r[0]);
|
|
/* 028F9FD0 */ _t66 = cpu->r[31] + 0x00000108u;
|
|
/* 028F9FD0 */ rbrew_write32(cpu->mem, _t66, cpu->r[10]);
|
|
/* 028F9FD4 */ goto L_028FA014;
|
|
L_028F9FD8: ; // 0x28f9fd8
|
|
/* 028F9FD8 */ _t67 = cpu->r[4] + 0x00000028u;
|
|
/* 028F9FD8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028F9FDC */ _t68 = cpu->r[4] + 0x00000030u;
|
|
/* 028F9FDC */ cpu->r[8] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028F9FE0 */ _t69 = cpu->r[31] + 0x00000028u;
|
|
/* 028F9FE0 */ rbrew_write32(cpu->mem, _t69, cpu->r[12]);
|
|
/* 028F9FE4 */ cpu->r[5] = 0x00000001u;
|
|
/* 028F9FE8 */ _t70 = cpu->r[31] + 0x00000030u;
|
|
/* 028F9FE8 */ rbrew_write32(cpu->mem, _t70, cpu->r[8]);
|
|
/* 028F9FEC */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028F9FF0 */ _t71 = cpu->r[31] + 0x000000B0u;
|
|
/* 028F9FF0 */ rbrew_write32(cpu->mem, _t71, cpu->r[8]);
|
|
/* 028F9FF4 */ cpu->r[4] = 0x00000002u;
|
|
/* 028F9FF8 */ _t72 = cpu->r[31] + 0x000000A8u;
|
|
/* 028F9FF8 */ rbrew_write32(cpu->mem, _t72, cpu->r[12]);
|
|
/* 028F9FFC */ rbrew_dispatch(cpu, 0x02d05c20u);
|
|
/* 028FA000 */ cpu->r[10] = 0x00010000u;
|
|
/* 028FA004 */ cpu->r[0] = 0x000000FFu;
|
|
/* 028FA008 */ cpu->r[10] = cpu->r[10] + 0x00000203u;
|
|
/* 028FA00C */ _t73 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA00C */ rbrew_write8(cpu->mem, _t73, (uint8_t)cpu->r[0]);
|
|
/* 028FA010 */ _t74 = cpu->r[31] + 0x00000108u;
|
|
/* 028FA010 */ rbrew_write32(cpu->mem, _t74, cpu->r[10]);
|
|
L_028FA014: ; // 0x28fa014
|
|
/* 028FA014 */ _t75 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA014 */ cpu->r[0] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028FA018 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA01C */ _t76 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA01C */ cpu->r[31] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028FA020 */ cpu->lr = cpu->r[0];
|
|
/* 028FA024 */ _t77 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA024 */ cpu->r[30] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028FA028 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA02C */ return;
|
|
}
|
|
|
|
// fn_028FA030 @ 0x28fa030
|
|
void Gambit_fn_028FA030(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028FA030: ; // 0x28fa030
|
|
/* 028FA030 */ cpu->r[0] = cpu->lr;
|
|
/* 028FA034 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028FA034 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA034 */ cpu->r[1] = _t0;
|
|
/* 028FA038 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028FA038 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028FA03C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA03C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028FA040 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA040 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FA044 */ cpu->r[30] = cpu->r[4];
|
|
/* 028FA048 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA048 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028FA04C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA04C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028FA050 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA050 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FA050 */ if (_t6) goto L_028FA054; else goto L_028FA064;
|
|
L_028FA054: ; // 0x28fa054
|
|
/* 028FA054 */ cpu->r[3] = 0x0000015Cu;
|
|
/* 028FA058 */ Gambit_fn_02801A78(cpu);
|
|
/* 028FA05C */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA05C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FA060 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA060 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028FA060 */ if (_t8) goto L_028FA1E8; else goto L_028FA064;
|
|
L_028FA064: ; // 0x28fa064
|
|
/* 028FA064 */ cpu->r[9] = 0x10140000u;
|
|
/* 028FA068 */ cpu->r[9] = cpu->r[9] + 0xFFFFCFF0u;
|
|
/* 028FA06C */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA070 */ _t9 = cpu->r[31] + 0x00000158u;
|
|
/* 028FA070 */ rbrew_write32(cpu->mem, _t9, cpu->r[9]);
|
|
/* 028FA074 */ Gambit_fn_028F7044(cpu);
|
|
/* 028FA078 */ cpu->r[3] = cpu->r[31] + 0x0000012Cu;
|
|
/* 028FA07C */ Gambit_fn_028F9CC4(cpu);
|
|
/* 028FA080 */ cpu->r[29] = 0x00000000u;
|
|
/* 028FA084 */ cpu->r[12] = 0x00000001u;
|
|
/* 028FA088 */ _t10 = cpu->r[31] + 0x00000150u;
|
|
/* 028FA088 */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[29]);
|
|
/* 028FA08C */ cpu->r[0] = 0x00000002u;
|
|
/* 028FA090 */ _t11 = cpu->r[31] + 0x00000151u;
|
|
/* 028FA090 */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[12]);
|
|
/* 028FA094 */ cpu->r[7] = 0x00000003u;
|
|
/* 028FA098 */ _t12 = cpu->r[31] + 0x00000152u;
|
|
/* 028FA098 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[0]);
|
|
/* 028FA09C */ cpu->r[3] = cpu->r[31] + 0x00000154u;
|
|
/* 028FA09C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA0A0 */ _t13 = cpu->r[31] + 0x00000153u;
|
|
/* 028FA0A0 */ rbrew_write8(cpu->mem, _t13, (uint8_t)cpu->r[7]);
|
|
/* 028FA0A4 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA0A4 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028FA0A4 */ if (_t15) goto L_028FA0A8; else goto L_028FA0B8;
|
|
L_028FA0A8: ; // 0x28fa0a8
|
|
/* 028FA0A8 */ cpu->r[3] = 0x00000001u;
|
|
/* 028FA0AC */ Gambit_fn_02801A78(cpu);
|
|
/* 028FA0B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA0B4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA0B4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028FA0B4 */ if (_t17) goto L_028FA0BC; else goto L_028FA0B8;
|
|
L_028FA0B8: ; // 0x28fa0b8
|
|
/* 028FA0B8 */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 028FA0B8 */ rbrew_write8(cpu->mem, _t18, (uint8_t)cpu->r[29]);
|
|
L_028FA0BC: ; // 0x28fa0bc
|
|
/* 028FA0BC */ cpu->r[3] = cpu->r[31] + 0x00000155u;
|
|
/* 028FA0BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA0C0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA0C0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028FA0C0 */ if (_t20) goto L_028FA0C4; else goto L_028FA0D4;
|
|
L_028FA0C4: ; // 0x28fa0c4
|
|
/* 028FA0C4 */ cpu->r[3] = 0x00000001u;
|
|
/* 028FA0C8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028FA0CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA0D0 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA0D0 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028FA0D0 */ if (_t22) goto L_028FA0D8; else goto L_028FA0D4;
|
|
L_028FA0D4: ; // 0x28fa0d4
|
|
/* 028FA0D4 */ _t23 = cpu->r[3] + 0x00000000u;
|
|
/* 028FA0D4 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[29]);
|
|
L_028FA0D8: ; // 0x28fa0d8
|
|
/* 028FA0D8 */ _t24 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA0D8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028FA0DC */ _t25 = cpu->r[30] + 0x00000004u;
|
|
/* 028FA0DC */ cpu->r[9] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028FA0E0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[9]);
|
|
/* 028FA0E4 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA0E4 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028FA0E4 */ if (_t27) goto L_028FA0E8; else goto L_028FA178;
|
|
L_028FA0E8: ; // 0x28fa0e8
|
|
/* 028FA0E8 */ _t28 = cpu->r[31] + 0x00000008u;
|
|
/* 028FA0E8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028FA0EC */ _t29 = cpu->r[30] + 0x00000008u;
|
|
/* 028FA0EC */ cpu->r[11] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028FA0F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[11]);
|
|
/* 028FA0F4 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA0F4 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028FA0F4 */ if (_t31) goto L_028FA0F8; else goto L_028FA178;
|
|
L_028FA0F8: ; // 0x28fa0f8
|
|
/* 028FA0F8 */ _t32 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028FA0F8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028FA0FC */ _t33 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028FA0FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028FA100 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028FA104 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA104 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028FA104 */ if (_t35) goto L_028FA108; else goto L_028FA178;
|
|
L_028FA108: ; // 0x28fa108
|
|
/* 028FA108 */ _t36 = cpu->r[31] + 0x00000010u;
|
|
/* 028FA108 */ cpu->r[7] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028FA10C */ _t37 = cpu->r[30] + 0x00000010u;
|
|
/* 028FA10C */ cpu->r[9] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028FA110 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[9]);
|
|
/* 028FA114 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA114 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028FA114 */ if (_t39) goto L_028FA118; else goto L_028FA178;
|
|
L_028FA118: ; // 0x28fa118
|
|
/* 028FA118 */ _t40 = cpu->r[31] + 0x00000014u;
|
|
/* 028FA118 */ cpu->r[11] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028FA11C */ _t41 = cpu->r[30] + 0x00000014u;
|
|
/* 028FA11C */ cpu->r[12] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028FA120 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[12]);
|
|
/* 028FA124 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA124 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028FA124 */ if (_t43) goto L_028FA128; else goto L_028FA178;
|
|
L_028FA128: ; // 0x28fa128
|
|
/* 028FA128 */ _t44 = cpu->r[31] + 0x00000018u;
|
|
/* 028FA128 */ cpu->r[0] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028FA12C */ _t45 = cpu->r[30] + 0x00000018u;
|
|
/* 028FA12C */ cpu->r[7] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028FA130 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[7]);
|
|
/* 028FA134 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA134 */ _t47 = _t46 & 0x00000001u;
|
|
/* 028FA134 */ if (_t47) goto L_028FA138; else goto L_028FA178;
|
|
L_028FA138: ; // 0x28fa138
|
|
/* 028FA138 */ _t48 = cpu->r[31] + 0x00000038u;
|
|
/* 028FA138 */ cpu->r[8] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028FA13C */ _t49 = cpu->r[30] + 0x00000038u;
|
|
/* 028FA13C */ cpu->r[9] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028FA140 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[9]);
|
|
/* 028FA144 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA144 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028FA144 */ if (_t51) goto L_028FA148; else goto L_028FA178;
|
|
L_028FA148: ; // 0x28fa148
|
|
/* 028FA148 */ _t52 = cpu->r[31] + 0x00000034u;
|
|
/* 028FA148 */ cpu->r[10] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028FA14C */ _t53 = cpu->r[30] + 0x00000034u;
|
|
/* 028FA14C */ cpu->r[11] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028FA150 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[11]);
|
|
/* 028FA154 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA154 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028FA154 */ if (_t55) goto L_028FA158; else goto L_028FA178;
|
|
L_028FA158: ; // 0x28fa158
|
|
/* 028FA158 */ _t56 = cpu->r[31] + 0x00000020u;
|
|
/* 028FA158 */ cpu->r[12] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028FA15C */ _t57 = cpu->r[30] + 0x00000020u;
|
|
/* 028FA15C */ cpu->r[0] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028FA160 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028FA164 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA164 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028FA164 */ if (_t59) goto L_028FA168; else goto L_028FA178;
|
|
L_028FA168: ; // 0x28fa168
|
|
/* 028FA168 */ _t60 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028FA168 */ cpu->r[7] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028FA16C */ _t61 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028FA16C */ cpu->r[0] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028FA170 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 028FA174 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA174 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028FA174 */ if (_t63) goto L_028FA1AC; else goto L_028FA178;
|
|
L_028FA178: ; // 0x28fa178
|
|
/* 028FA178 */ cpu->r[4] = cpu->r[30];
|
|
/* 028FA17C */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA180 */ Gambit_fn_028F9D94(cpu);
|
|
/* 028FA184 */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028FA188 */ cpu->r[4] = 0x00000002u;
|
|
/* 028FA18C */ cpu->r[5] = 0x00000001u;
|
|
/* 028FA190 */ rbrew_dispatch(cpu, 0x02d05c20u);
|
|
/* 028FA194 */ cpu->r[10] = 0x00010000u;
|
|
/* 028FA198 */ cpu->r[11] = 0x000000FFu;
|
|
/* 028FA19C */ cpu->r[10] = cpu->r[10] + 0x00000203u;
|
|
/* 028FA1A0 */ _t64 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA1A0 */ rbrew_write8(cpu->mem, _t64, (uint8_t)cpu->r[11]);
|
|
/* 028FA1A4 */ _t65 = cpu->r[31] + 0x00000108u;
|
|
/* 028FA1A4 */ rbrew_write32(cpu->mem, _t65, cpu->r[10]);
|
|
/* 028FA1A8 */ goto L_028FA1E8;
|
|
L_028FA1AC: ; // 0x28fa1ac
|
|
/* 028FA1AC */ _t66 = cpu->r[30] + 0x00000028u;
|
|
/* 028FA1AC */ cpu->r[8] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028FA1B0 */ _t67 = cpu->r[30] + 0x00000030u;
|
|
/* 028FA1B0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028FA1B4 */ _t68 = cpu->r[31] + 0x00000028u;
|
|
/* 028FA1B4 */ rbrew_write32(cpu->mem, _t68, cpu->r[8]);
|
|
/* 028FA1B8 */ cpu->r[5] = 0x00000001u;
|
|
/* 028FA1BC */ _t69 = cpu->r[31] + 0x00000030u;
|
|
/* 028FA1BC */ rbrew_write32(cpu->mem, _t69, cpu->r[10]);
|
|
/* 028FA1C0 */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028FA1C4 */ _t70 = cpu->r[31] + 0x000000B0u;
|
|
/* 028FA1C4 */ rbrew_write32(cpu->mem, _t70, cpu->r[10]);
|
|
/* 028FA1C8 */ cpu->r[4] = 0x00000002u;
|
|
/* 028FA1CC */ _t71 = cpu->r[31] + 0x000000A8u;
|
|
/* 028FA1CC */ rbrew_write32(cpu->mem, _t71, cpu->r[8]);
|
|
/* 028FA1D0 */ rbrew_dispatch(cpu, 0x02d05c20u);
|
|
/* 028FA1D4 */ cpu->r[10] = 0x00010000u;
|
|
/* 028FA1D8 */ cpu->r[11] = 0x000000FFu;
|
|
/* 028FA1DC */ cpu->r[10] = cpu->r[10] + 0x00000203u;
|
|
/* 028FA1E0 */ _t72 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA1E0 */ rbrew_write8(cpu->mem, _t72, (uint8_t)cpu->r[11]);
|
|
/* 028FA1E4 */ _t73 = cpu->r[31] + 0x00000108u;
|
|
/* 028FA1E4 */ rbrew_write32(cpu->mem, _t73, cpu->r[10]);
|
|
L_028FA1E8: ; // 0x28fa1e8
|
|
/* 028FA1E8 */ _t74 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA1E8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028FA1EC */ _t75 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA1EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028FA1F0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA1F4 */ _t76 = cpu->r[1] + 0x00000010u;
|
|
/* 028FA1F4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028FA1F8 */ cpu->lr = cpu->r[0];
|
|
/* 028FA1FC */ _t77 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA1FC */ cpu->r[31] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028FA200 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028FA204 */ return;
|
|
}
|
|
|
|
// fn_028FA034 @ 0x28fa034
|
|
void Gambit_fn_028FA034(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028FA034: ; // 0x28fa034
|
|
/* 028FA034 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028FA034 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA034 */ cpu->r[1] = _t0;
|
|
/* 028FA038 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028FA038 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028FA03C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA03C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028FA040 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA040 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FA044 */ cpu->r[30] = cpu->r[4];
|
|
/* 028FA048 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA048 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028FA04C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA04C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028FA050 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA050 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FA050 */ if (_t6) goto L_028FA054; else goto L_028FA064;
|
|
L_028FA054: ; // 0x28fa054
|
|
/* 028FA054 */ cpu->r[3] = 0x0000015Cu;
|
|
/* 028FA058 */ Gambit_fn_02801A78(cpu);
|
|
/* 028FA05C */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA05C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FA060 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA060 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028FA060 */ if (_t8) goto L_028FA1E8; else goto L_028FA064;
|
|
L_028FA064: ; // 0x28fa064
|
|
/* 028FA064 */ cpu->r[9] = 0x10140000u;
|
|
/* 028FA068 */ cpu->r[9] = cpu->r[9] + 0xFFFFCFF0u;
|
|
/* 028FA06C */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA070 */ _t9 = cpu->r[31] + 0x00000158u;
|
|
/* 028FA070 */ rbrew_write32(cpu->mem, _t9, cpu->r[9]);
|
|
/* 028FA074 */ Gambit_fn_028F7044(cpu);
|
|
/* 028FA078 */ cpu->r[3] = cpu->r[31] + 0x0000012Cu;
|
|
/* 028FA07C */ Gambit_fn_028F9CC4(cpu);
|
|
/* 028FA080 */ cpu->r[29] = 0x00000000u;
|
|
/* 028FA084 */ cpu->r[12] = 0x00000001u;
|
|
/* 028FA088 */ _t10 = cpu->r[31] + 0x00000150u;
|
|
/* 028FA088 */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[29]);
|
|
/* 028FA08C */ cpu->r[0] = 0x00000002u;
|
|
/* 028FA090 */ _t11 = cpu->r[31] + 0x00000151u;
|
|
/* 028FA090 */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[12]);
|
|
/* 028FA094 */ cpu->r[7] = 0x00000003u;
|
|
/* 028FA098 */ _t12 = cpu->r[31] + 0x00000152u;
|
|
/* 028FA098 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[0]);
|
|
/* 028FA09C */ cpu->r[3] = cpu->r[31] + 0x00000154u;
|
|
/* 028FA09C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA0A0 */ _t13 = cpu->r[31] + 0x00000153u;
|
|
/* 028FA0A0 */ rbrew_write8(cpu->mem, _t13, (uint8_t)cpu->r[7]);
|
|
/* 028FA0A4 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA0A4 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028FA0A4 */ if (_t15) goto L_028FA0A8; else goto L_028FA0B8;
|
|
L_028FA0A8: ; // 0x28fa0a8
|
|
/* 028FA0A8 */ cpu->r[3] = 0x00000001u;
|
|
/* 028FA0AC */ Gambit_fn_02801A78(cpu);
|
|
/* 028FA0B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA0B4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA0B4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028FA0B4 */ if (_t17) goto L_028FA0BC; else goto L_028FA0B8;
|
|
L_028FA0B8: ; // 0x28fa0b8
|
|
/* 028FA0B8 */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 028FA0B8 */ rbrew_write8(cpu->mem, _t18, (uint8_t)cpu->r[29]);
|
|
L_028FA0BC: ; // 0x28fa0bc
|
|
/* 028FA0BC */ cpu->r[3] = cpu->r[31] + 0x00000155u;
|
|
/* 028FA0BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA0C0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA0C0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028FA0C0 */ if (_t20) goto L_028FA0C4; else goto L_028FA0D4;
|
|
L_028FA0C4: ; // 0x28fa0c4
|
|
/* 028FA0C4 */ cpu->r[3] = 0x00000001u;
|
|
/* 028FA0C8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028FA0CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA0D0 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA0D0 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028FA0D0 */ if (_t22) goto L_028FA0D8; else goto L_028FA0D4;
|
|
L_028FA0D4: ; // 0x28fa0d4
|
|
/* 028FA0D4 */ _t23 = cpu->r[3] + 0x00000000u;
|
|
/* 028FA0D4 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[29]);
|
|
L_028FA0D8: ; // 0x28fa0d8
|
|
/* 028FA0D8 */ _t24 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA0D8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028FA0DC */ _t25 = cpu->r[30] + 0x00000004u;
|
|
/* 028FA0DC */ cpu->r[9] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028FA0E0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[9]);
|
|
/* 028FA0E4 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA0E4 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028FA0E4 */ if (_t27) goto L_028FA0E8; else goto L_028FA178;
|
|
L_028FA0E8: ; // 0x28fa0e8
|
|
/* 028FA0E8 */ _t28 = cpu->r[31] + 0x00000008u;
|
|
/* 028FA0E8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028FA0EC */ _t29 = cpu->r[30] + 0x00000008u;
|
|
/* 028FA0EC */ cpu->r[11] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028FA0F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[11]);
|
|
/* 028FA0F4 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA0F4 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028FA0F4 */ if (_t31) goto L_028FA0F8; else goto L_028FA178;
|
|
L_028FA0F8: ; // 0x28fa0f8
|
|
/* 028FA0F8 */ _t32 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028FA0F8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028FA0FC */ _t33 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028FA0FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028FA100 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028FA104 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA104 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028FA104 */ if (_t35) goto L_028FA108; else goto L_028FA178;
|
|
L_028FA108: ; // 0x28fa108
|
|
/* 028FA108 */ _t36 = cpu->r[31] + 0x00000010u;
|
|
/* 028FA108 */ cpu->r[7] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028FA10C */ _t37 = cpu->r[30] + 0x00000010u;
|
|
/* 028FA10C */ cpu->r[9] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028FA110 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[9]);
|
|
/* 028FA114 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA114 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028FA114 */ if (_t39) goto L_028FA118; else goto L_028FA178;
|
|
L_028FA118: ; // 0x28fa118
|
|
/* 028FA118 */ _t40 = cpu->r[31] + 0x00000014u;
|
|
/* 028FA118 */ cpu->r[11] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028FA11C */ _t41 = cpu->r[30] + 0x00000014u;
|
|
/* 028FA11C */ cpu->r[12] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028FA120 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[12]);
|
|
/* 028FA124 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA124 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028FA124 */ if (_t43) goto L_028FA128; else goto L_028FA178;
|
|
L_028FA128: ; // 0x28fa128
|
|
/* 028FA128 */ _t44 = cpu->r[31] + 0x00000018u;
|
|
/* 028FA128 */ cpu->r[0] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028FA12C */ _t45 = cpu->r[30] + 0x00000018u;
|
|
/* 028FA12C */ cpu->r[7] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028FA130 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[7]);
|
|
/* 028FA134 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA134 */ _t47 = _t46 & 0x00000001u;
|
|
/* 028FA134 */ if (_t47) goto L_028FA138; else goto L_028FA178;
|
|
L_028FA138: ; // 0x28fa138
|
|
/* 028FA138 */ _t48 = cpu->r[31] + 0x00000038u;
|
|
/* 028FA138 */ cpu->r[8] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028FA13C */ _t49 = cpu->r[30] + 0x00000038u;
|
|
/* 028FA13C */ cpu->r[9] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028FA140 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[9]);
|
|
/* 028FA144 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA144 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028FA144 */ if (_t51) goto L_028FA148; else goto L_028FA178;
|
|
L_028FA148: ; // 0x28fa148
|
|
/* 028FA148 */ _t52 = cpu->r[31] + 0x00000034u;
|
|
/* 028FA148 */ cpu->r[10] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028FA14C */ _t53 = cpu->r[30] + 0x00000034u;
|
|
/* 028FA14C */ cpu->r[11] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028FA150 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[11]);
|
|
/* 028FA154 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA154 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028FA154 */ if (_t55) goto L_028FA158; else goto L_028FA178;
|
|
L_028FA158: ; // 0x28fa158
|
|
/* 028FA158 */ _t56 = cpu->r[31] + 0x00000020u;
|
|
/* 028FA158 */ cpu->r[12] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028FA15C */ _t57 = cpu->r[30] + 0x00000020u;
|
|
/* 028FA15C */ cpu->r[0] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028FA160 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028FA164 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA164 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028FA164 */ if (_t59) goto L_028FA168; else goto L_028FA178;
|
|
L_028FA168: ; // 0x28fa168
|
|
/* 028FA168 */ _t60 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028FA168 */ cpu->r[7] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028FA16C */ _t61 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028FA16C */ cpu->r[0] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028FA170 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 028FA174 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA174 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028FA174 */ if (_t63) goto L_028FA1AC; else goto L_028FA178;
|
|
L_028FA178: ; // 0x28fa178
|
|
/* 028FA178 */ cpu->r[4] = cpu->r[30];
|
|
/* 028FA17C */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA180 */ Gambit_fn_028F9D94(cpu);
|
|
/* 028FA184 */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028FA188 */ cpu->r[4] = 0x00000002u;
|
|
/* 028FA18C */ cpu->r[5] = 0x00000001u;
|
|
/* 028FA190 */ rbrew_dispatch(cpu, 0x02d05c20u);
|
|
/* 028FA194 */ cpu->r[10] = 0x00010000u;
|
|
/* 028FA198 */ cpu->r[11] = 0x000000FFu;
|
|
/* 028FA19C */ cpu->r[10] = cpu->r[10] + 0x00000203u;
|
|
/* 028FA1A0 */ _t64 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA1A0 */ rbrew_write8(cpu->mem, _t64, (uint8_t)cpu->r[11]);
|
|
/* 028FA1A4 */ _t65 = cpu->r[31] + 0x00000108u;
|
|
/* 028FA1A4 */ rbrew_write32(cpu->mem, _t65, cpu->r[10]);
|
|
/* 028FA1A8 */ goto L_028FA1E8;
|
|
L_028FA1AC: ; // 0x28fa1ac
|
|
/* 028FA1AC */ _t66 = cpu->r[30] + 0x00000028u;
|
|
/* 028FA1AC */ cpu->r[8] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028FA1B0 */ _t67 = cpu->r[30] + 0x00000030u;
|
|
/* 028FA1B0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028FA1B4 */ _t68 = cpu->r[31] + 0x00000028u;
|
|
/* 028FA1B4 */ rbrew_write32(cpu->mem, _t68, cpu->r[8]);
|
|
/* 028FA1B8 */ cpu->r[5] = 0x00000001u;
|
|
/* 028FA1BC */ _t69 = cpu->r[31] + 0x00000030u;
|
|
/* 028FA1BC */ rbrew_write32(cpu->mem, _t69, cpu->r[10]);
|
|
/* 028FA1C0 */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028FA1C4 */ _t70 = cpu->r[31] + 0x000000B0u;
|
|
/* 028FA1C4 */ rbrew_write32(cpu->mem, _t70, cpu->r[10]);
|
|
/* 028FA1C8 */ cpu->r[4] = 0x00000002u;
|
|
/* 028FA1CC */ _t71 = cpu->r[31] + 0x000000A8u;
|
|
/* 028FA1CC */ rbrew_write32(cpu->mem, _t71, cpu->r[8]);
|
|
/* 028FA1D0 */ rbrew_dispatch(cpu, 0x02d05c20u);
|
|
/* 028FA1D4 */ cpu->r[10] = 0x00010000u;
|
|
/* 028FA1D8 */ cpu->r[11] = 0x000000FFu;
|
|
/* 028FA1DC */ cpu->r[10] = cpu->r[10] + 0x00000203u;
|
|
/* 028FA1E0 */ _t72 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA1E0 */ rbrew_write8(cpu->mem, _t72, (uint8_t)cpu->r[11]);
|
|
/* 028FA1E4 */ _t73 = cpu->r[31] + 0x00000108u;
|
|
/* 028FA1E4 */ rbrew_write32(cpu->mem, _t73, cpu->r[10]);
|
|
L_028FA1E8: ; // 0x28fa1e8
|
|
/* 028FA1E8 */ _t74 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA1E8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028FA1EC */ _t75 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA1EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028FA1F0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA1F4 */ _t76 = cpu->r[1] + 0x00000010u;
|
|
/* 028FA1F4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028FA1F8 */ cpu->lr = cpu->r[0];
|
|
/* 028FA1FC */ _t77 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA1FC */ cpu->r[31] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028FA200 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028FA204 */ return;
|
|
}
|
|
|
|
// fn_028FA208 @ 0x28fa208
|
|
void Gambit_fn_028FA208(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_028FA208: ; // 0x28fa208
|
|
/* 028FA208 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA20C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA20C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028FA20C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028FA20C */ goto L_028FA210;
|
|
L_028FA210: ; // 0x28fa210
|
|
/* 028FA210 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA210 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FA214 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA214 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028FA214 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028FA214 */ goto L_028FA218;
|
|
L_028FA218: ; // 0x28fa218
|
|
/* 028FA218 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028FA21C @ 0x28fa21c
|
|
void Gambit_fn_028FA21C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028FA21C: ; // 0x28fa21c
|
|
/* 028FA21C */ _t0 = cpu->r[3] + 0x00000098u;
|
|
/* 028FA21C */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028FA220 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000011u);
|
|
/* 028FA224 */ cpu->r[10] = 0x00000000u;
|
|
/* 028FA228 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA228 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028FA228 */ if (_t2) goto L_028FA27C; else goto L_028FA22C;
|
|
L_028FA22C: ; // 0x28fa22c
|
|
/* 028FA22C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000111u);
|
|
/* 028FA230 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA230 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028FA230 */ if (_t4) goto L_028FA27C; else goto L_028FA234;
|
|
L_028FA234: ; // 0x28fa234
|
|
/* 028FA234 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x0000011Cu);
|
|
/* 028FA238 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA238 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FA238 */ if (_t6) goto L_028FA2B8; else goto L_028FA23C;
|
|
L_028FA23C: ; // 0x28fa23c
|
|
/* 028FA23C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x0000081Cu);
|
|
/* 028FA240 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA240 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028FA240 */ if (_t8) goto L_028FA2B8; else goto L_028FA244;
|
|
L_028FA244: ; // 0x28fa244
|
|
/* 028FA244 */ _t9 = cpu->r[3] + 0x00000155u;
|
|
/* 028FA244 */ cpu->r[12] = rbrew_read8(cpu->mem, _t9);
|
|
/* 028FA248 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA248 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FA24C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA24C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028FA24C */ if (_t11) goto L_028FA250; else goto L_028FA2F4;
|
|
L_028FA250: ; // 0x28fa250
|
|
/* 028FA250 */ _t12 = cpu->r[3] + 0x00000078u;
|
|
/* 028FA250 */ cpu->r[10] = rbrew_read8(cpu->mem, _t12);
|
|
/* 028FA254 */ _t13 = cpu->r[3] + 0x00000079u;
|
|
/* 028FA254 */ cpu->r[0] = rbrew_read8(cpu->mem, _t13);
|
|
/* 028FA258 */ cpu->r[12] = rbrew_rlwinm(cpu->r[10], 0x00000018u, 0x00000000u, 0x00000007u);
|
|
/* 028FA25C */ _t14 = cpu->r[3] + 0x0000007Au;
|
|
/* 028FA25C */ cpu->r[9] = rbrew_read8(cpu->mem, _t14);
|
|
/* 028FA260 */ _t15 = rbrew_rlwinm(cpu->r[0], 0x00000010u, 0x00000008u, 0x0000000Fu);
|
|
/* 028FA260 */ _t16 = cpu->r[12] & 0xFF00FFFFu;
|
|
/* 028FA260 */ cpu->r[12] = _t16 | _t15;
|
|
/* 028FA264 */ _t17 = cpu->r[3] + 0x0000007Bu;
|
|
/* 028FA264 */ cpu->r[11] = rbrew_read8(cpu->mem, _t17);
|
|
/* 028FA268 */ _t18 = rbrew_rlwinm(cpu->r[9], 0x00000008u, 0x00000010u, 0x00000017u);
|
|
/* 028FA268 */ _t19 = cpu->r[12] & 0xFFFF00FFu;
|
|
/* 028FA268 */ cpu->r[12] = _t19 | _t18;
|
|
/* 028FA26C */ cpu->r[10] = cpu->r[12] | cpu->r[11];
|
|
/* 028FA270 */ _t20 = cpu->r[3] + 0x00000108u;
|
|
/* 028FA270 */ rbrew_write32(cpu->mem, _t20, cpu->r[10]);
|
|
/* 028FA274 */ cpu->r[3] = cpu->r[3] + 0x00000084u;
|
|
/* 028FA278 */ rbrew_dispatch(cpu, 0x02d05c88u); return;
|
|
L_028FA27C: ; // 0x28fa27c
|
|
/* 028FA27C */ _t21 = cpu->r[3] + 0x00000155u;
|
|
/* 028FA27C */ cpu->r[12] = rbrew_read8(cpu->mem, _t21);
|
|
/* 028FA280 */ cpu->r[11] = rbrew_rlwinm(cpu->r[12], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA280 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028FA284 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA284 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028FA284 */ if (_t23) goto L_028FA2A4; else goto L_028FA288;
|
|
L_028FA288: ; // 0x28fa288
|
|
/* 028FA288 */ cpu->r[0] = 0x01010000u;
|
|
/* 028FA28C */ cpu->r[9] = 0x00000111u;
|
|
/* 028FA290 */ cpu->r[0] = cpu->r[0] | 0x00000101u;
|
|
/* 028FA294 */ _t24 = cpu->r[3] + 0x00000098u;
|
|
/* 028FA294 */ rbrew_write32(cpu->mem, _t24, cpu->r[9]);
|
|
/* 028FA298 */ _t25 = cpu->r[3] + 0x00000108u;
|
|
/* 028FA298 */ rbrew_write32(cpu->mem, _t25, cpu->r[0]);
|
|
/* 028FA29C */ cpu->r[3] = cpu->r[3] + 0x00000084u;
|
|
/* 028FA2A0 */ rbrew_dispatch(cpu, 0x02d05c88u); return;
|
|
L_028FA2A4: ; // 0x28fa2a4
|
|
/* 028FA2A4 */ _t26 = cpu->r[3] + 0x00000108u;
|
|
/* 028FA2A4 */ rbrew_write32(cpu->mem, _t26, cpu->r[10]);
|
|
/* 028FA2A8 */ cpu->r[10] = 0x00000011u;
|
|
/* 028FA2AC */ _t27 = cpu->r[3] + 0x00000098u;
|
|
/* 028FA2AC */ rbrew_write32(cpu->mem, _t27, cpu->r[10]);
|
|
/* 028FA2B0 */ cpu->r[3] = cpu->r[3] + 0x00000084u;
|
|
/* 028FA2B4 */ rbrew_dispatch(cpu, 0x02d05c88u); return;
|
|
L_028FA2B8: ; // 0x28fa2b8
|
|
/* 028FA2B8 */ _t28 = cpu->r[3] + 0x00000155u;
|
|
/* 028FA2B8 */ cpu->r[11] = rbrew_read8(cpu->mem, _t28);
|
|
/* 028FA2BC */ cpu->r[12] = rbrew_rlwinm(cpu->r[11], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA2BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028FA2C0 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA2C0 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028FA2C0 */ if (_t30) goto L_028FA2E0; else goto L_028FA2C4;
|
|
L_028FA2C4: ; // 0x28fa2c4
|
|
/* 028FA2C4 */ cpu->r[12] = 0x01010000u;
|
|
/* 028FA2C8 */ cpu->r[0] = 0x0000011Cu;
|
|
/* 028FA2CC */ cpu->r[12] = cpu->r[12] + 0x00000101u;
|
|
/* 028FA2D0 */ _t31 = cpu->r[3] + 0x00000098u;
|
|
/* 028FA2D0 */ rbrew_write32(cpu->mem, _t31, cpu->r[0]);
|
|
/* 028FA2D4 */ _t32 = cpu->r[3] + 0x00000108u;
|
|
/* 028FA2D4 */ rbrew_write32(cpu->mem, _t32, cpu->r[12]);
|
|
/* 028FA2D8 */ cpu->r[3] = cpu->r[3] + 0x00000084u;
|
|
/* 028FA2DC */ rbrew_dispatch(cpu, 0x02d05c88u); return;
|
|
L_028FA2E0: ; // 0x28fa2e0
|
|
/* 028FA2E0 */ _t33 = cpu->r[3] + 0x00000108u;
|
|
/* 028FA2E0 */ rbrew_write32(cpu->mem, _t33, cpu->r[10]);
|
|
/* 028FA2E4 */ cpu->r[11] = 0x0000081Cu;
|
|
/* 028FA2E8 */ _t34 = cpu->r[3] + 0x00000098u;
|
|
/* 028FA2E8 */ rbrew_write32(cpu->mem, _t34, cpu->r[11]);
|
|
/* 028FA2EC */ cpu->r[3] = cpu->r[3] + 0x00000084u;
|
|
/* 028FA2F0 */ rbrew_dispatch(cpu, 0x02d05c88u); return;
|
|
L_028FA2F4: ; // 0x28fa2f4
|
|
/* 028FA2F4 */ _t35 = cpu->r[3] + 0x00000150u;
|
|
/* 028FA2F4 */ cpu->r[9] = rbrew_read8(cpu->mem, _t35);
|
|
/* 028FA2F8 */ _t36 = cpu->r[3] + 0x00000151u;
|
|
/* 028FA2F8 */ cpu->r[10] = rbrew_read8(cpu->mem, _t36);
|
|
/* 028FA2FC */ cpu->r[11] = rbrew_rlwinm(cpu->r[9], 0x00000018u, 0x00000000u, 0x00000007u);
|
|
/* 028FA300 */ _t37 = cpu->r[3] + 0x00000152u;
|
|
/* 028FA300 */ cpu->r[12] = rbrew_read8(cpu->mem, _t37);
|
|
/* 028FA304 */ _t38 = rbrew_rlwinm(cpu->r[10], 0x00000010u, 0x00000008u, 0x0000000Fu);
|
|
/* 028FA304 */ _t39 = cpu->r[11] & 0xFF00FFFFu;
|
|
/* 028FA304 */ cpu->r[11] = _t39 | _t38;
|
|
/* 028FA308 */ _t40 = cpu->r[3] + 0x00000153u;
|
|
/* 028FA308 */ cpu->r[9] = rbrew_read8(cpu->mem, _t40);
|
|
/* 028FA30C */ _t41 = rbrew_rlwinm(cpu->r[12], 0x00000008u, 0x00000010u, 0x00000017u);
|
|
/* 028FA30C */ _t42 = cpu->r[11] & 0xFFFF00FFu;
|
|
/* 028FA30C */ cpu->r[11] = _t42 | _t41;
|
|
/* 028FA310 */ cpu->r[0] = cpu->r[11] | cpu->r[9];
|
|
/* 028FA314 */ _t43 = cpu->r[3] + 0x00000108u;
|
|
/* 028FA314 */ rbrew_write32(cpu->mem, _t43, cpu->r[0]);
|
|
/* 028FA318 */ cpu->r[3] = cpu->r[3] + 0x00000084u;
|
|
/* 028FA31C */ rbrew_dispatch(cpu, 0x02d05c88u); return;
|
|
}
|
|
|
|
// fn_028FA320 @ 0x28fa320
|
|
void Gambit_fn_028FA320(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028FA320: ; // 0x28fa320
|
|
/* 028FA320 */ _t0 = cpu->r[3] + 0x0000014Bu;
|
|
/* 028FA320 */ cpu->r[4] = rbrew_read8(cpu->mem, _t0);
|
|
/* 028FA324 */ _t1 = cpu->r[3] + 0x0000014Cu;
|
|
/* 028FA324 */ cpu->r[5] = rbrew_read8(cpu->mem, _t1);
|
|
/* 028FA328 */ _t2 = cpu->r[3] + 0x0000014Du;
|
|
/* 028FA328 */ cpu->r[6] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028FA32C */ cpu->r[3] = cpu->r[3] + 0x00000120u;
|
|
/* 028FA330 */ rbrew_dispatch(cpu, 0x02d05c30u); return;
|
|
}
|
|
|
|
// fn_028FA334 @ 0x28fa334
|
|
void Gambit_fn_028FA334(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028FA334: ; // 0x28fa334
|
|
/* 028FA334 */ cpu->r[0] = cpu->lr;
|
|
/* 028FA338 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FA338 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA338 */ cpu->r[1] = _t0;
|
|
/* 028FA33C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA33C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FA340 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA344 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA344 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028FA348 */ _t3 = cpu->r[31] + 0x00000149u;
|
|
/* 028FA348 */ cpu->r[5] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028FA34C */ _t4 = cpu->r[31] + 0x0000014Eu;
|
|
/* 028FA34C */ cpu->r[6] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028FA350 */ _t5 = cpu->r[31] + 0x00000148u;
|
|
/* 028FA350 */ cpu->r[4] = rbrew_read8(cpu->mem, _t5);
|
|
/* 028FA354 */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028FA358 */ rbrew_dispatch(cpu, 0x02d05c60u);
|
|
/* 028FA35C */ _t6 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA35C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028FA360 */ cpu->r[0] = cpu->r[0] ^ 0x00000005u;
|
|
/* 028FA364 */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028FA368 */ cpu->r[0] = rbrew_clz32(cpu->r[0]);
|
|
/* 028FA36C */ _t7 = cpu->r[31] + 0x0000014Au;
|
|
/* 028FA36C */ cpu->r[5] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028FA370 */ cpu->r[4] = rbrew_rlwinm(cpu->r[0], 0x0000001Bu, 0x00000005u, 0x0000001Fu);
|
|
/* 028FA374 */ rbrew_dispatch(cpu, 0x02d05c68u);
|
|
/* 028FA378 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA378 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028FA37C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA37C */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028FA380 */ cpu->lr = cpu->r[0];
|
|
/* 028FA384 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA388 */ return;
|
|
}
|
|
|
|
// fn_028FA338 @ 0x28fa338
|
|
void Gambit_fn_028FA338(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028FA338: ; // 0x28fa338
|
|
/* 028FA338 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FA338 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA338 */ cpu->r[1] = _t0;
|
|
/* 028FA33C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA33C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FA340 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA344 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA344 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028FA348 */ _t3 = cpu->r[31] + 0x00000149u;
|
|
/* 028FA348 */ cpu->r[5] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028FA34C */ _t4 = cpu->r[31] + 0x0000014Eu;
|
|
/* 028FA34C */ cpu->r[6] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028FA350 */ _t5 = cpu->r[31] + 0x00000148u;
|
|
/* 028FA350 */ cpu->r[4] = rbrew_read8(cpu->mem, _t5);
|
|
/* 028FA354 */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028FA358 */ rbrew_dispatch(cpu, 0x02d05c60u);
|
|
/* 028FA35C */ _t6 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA35C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028FA360 */ cpu->r[0] = cpu->r[0] ^ 0x00000005u;
|
|
/* 028FA364 */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028FA368 */ cpu->r[0] = rbrew_clz32(cpu->r[0]);
|
|
/* 028FA36C */ _t7 = cpu->r[31] + 0x0000014Au;
|
|
/* 028FA36C */ cpu->r[5] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028FA370 */ cpu->r[4] = rbrew_rlwinm(cpu->r[0], 0x0000001Bu, 0x00000005u, 0x0000001Fu);
|
|
/* 028FA374 */ rbrew_dispatch(cpu, 0x02d05c68u);
|
|
/* 028FA378 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA378 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028FA37C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA37C */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028FA380 */ cpu->lr = cpu->r[0];
|
|
/* 028FA384 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA388 */ return;
|
|
}
|
|
|
|
// fn_028FA38C @ 0x28fa38c
|
|
void Gambit_fn_028FA38C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028FA38C: ; // 0x28fa38c
|
|
/* 028FA38C */ _t0 = cpu->r[3] + 0x0000013Cu;
|
|
/* 028FA38C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028FA390 */ _t1 = cpu->r[3] + 0x00000140u;
|
|
/* 028FA390 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t1);
|
|
/* 028FA394 */ _t2 = cpu->r[3] + 0x00000144u;
|
|
/* 028FA394 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t2);
|
|
/* 028FA398 */ cpu->r[3] = cpu->r[3] + 0x00000120u;
|
|
/* 028FA39C */ rbrew_dispatch(cpu, 0x02d05c48u); return;
|
|
}
|
|
|
|
// fn_028FA3A0 @ 0x28fa3a0
|
|
void Gambit_fn_028FA3A0(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028FA3A0: ; // 0x28fa3a0
|
|
/* 028FA3A0 */ _t0 = cpu->r[3] + 0x0000014Fu;
|
|
/* 028FA3A0 */ cpu->r[4] = rbrew_read8(cpu->mem, _t0);
|
|
/* 028FA3A4 */ cpu->r[3] = cpu->r[3] + 0x00000120u;
|
|
/* 028FA3A8 */ rbrew_dispatch(cpu, 0x02d05c38u); return;
|
|
}
|
|
|
|
// fn_028FA3AC @ 0x28fa3ac
|
|
void Gambit_fn_028FA3AC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _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_028FA3AC: ; // 0x28fa3ac
|
|
/* 028FA3AC */ cpu->r[0] = cpu->lr;
|
|
/* 028FA3B0 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028FA3B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA3B0 */ cpu->r[1] = _t0;
|
|
/* 028FA3B4 */ _t1 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA3B4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FA3B8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA3BC */ cpu->r[4] = 0x101F0000u;
|
|
/* 028FA3C0 */ cpu->r[3] = cpu->r[31] + 0x0000012Cu;
|
|
/* 028FA3C4 */ cpu->r[4] = cpu->r[4] + 0x00005BCCu;
|
|
/* 028FA3C8 */ _t2 = cpu->r[1] + 0x00000024u;
|
|
/* 028FA3C8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028FA3CC */ Gambit_fn_0281B910(cpu);
|
|
/* 028FA3D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA3D4 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA3D4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028FA3D4 */ if (_t4) goto L_028FA404; else goto L_028FA3D8;
|
|
L_028FA3D8: ; // 0x28fa3d8
|
|
/* 028FA3D8 */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028FA3DC */ cpu->r[4] = 0x00000001u;
|
|
/* 028FA3E0 */ rbrew_dispatch(cpu, 0x02d05c28u);
|
|
/* 028FA3E4 */ _t5 = cpu->r[31] + 0x00000155u;
|
|
/* 028FA3E4 */ cpu->r[0] = rbrew_read8(cpu->mem, _t5);
|
|
/* 028FA3E8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Du, 0x0000001Bu);
|
|
/* 028FA3EC */ _t6 = cpu->r[31] + 0x00000155u;
|
|
/* 028FA3EC */ rbrew_write8(cpu->mem, _t6, (uint8_t)cpu->r[0]);
|
|
/* 028FA3F0 */ _t7 = cpu->r[1] + 0x00000024u;
|
|
/* 028FA3F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028FA3F4 */ _t8 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA3F4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028FA3F8 */ cpu->lr = cpu->r[0];
|
|
/* 028FA3FC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028FA400 */ return;
|
|
L_028FA404: ; // 0x28fa404
|
|
/* 028FA404 */ cpu->r[4] = 0x101F0000u;
|
|
/* 028FA408 */ cpu->r[3] = cpu->r[31] + 0x0000012Cu;
|
|
/* 028FA40C */ cpu->r[4] = cpu->r[4] + 0x00005BECu;
|
|
/* 028FA410 */ Gambit_fn_0281B910(cpu);
|
|
/* 028FA414 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA418 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA418 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028FA418 */ if (_t10) goto L_028FA448; else goto L_028FA41C;
|
|
L_028FA41C: ; // 0x28fa41c
|
|
/* 028FA41C */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028FA420 */ cpu->r[4] = 0x00000002u;
|
|
/* 028FA424 */ rbrew_dispatch(cpu, 0x02d05c28u);
|
|
/* 028FA428 */ _t11 = cpu->r[31] + 0x00000155u;
|
|
/* 028FA428 */ cpu->r[11] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028FA42C */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x0000001Du, 0x0000001Bu);
|
|
/* 028FA430 */ _t12 = cpu->r[31] + 0x00000155u;
|
|
/* 028FA430 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[0]);
|
|
/* 028FA434 */ _t13 = cpu->r[1] + 0x00000024u;
|
|
/* 028FA434 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028FA438 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA438 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028FA43C */ cpu->lr = cpu->r[0];
|
|
/* 028FA440 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028FA444 */ return;
|
|
L_028FA448: ; // 0x28fa448
|
|
/* 028FA448 */ cpu->r[10] = 0x10140000u;
|
|
/* 028FA44C */ _t15 = cpu->r[10] + 0xFFFFCFE4u;
|
|
/* 028FA44C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028FA450 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028FA450 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[0]);
|
|
/* 028FA454 */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA454 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[0]);
|
|
/* 028FA458 */ cpu->r[3] = cpu->r[31] + 0x0000012Cu;
|
|
/* 028FA45C */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA45C */ rbrew_write_f32(cpu->mem, _t18, cpu->f[0]);
|
|
/* 028FA460 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028FA464 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA464 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[0]);
|
|
/* 028FA468 */ Gambit_fn_0281B910(cpu);
|
|
/* 028FA46C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA470 */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028FA474 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA474 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028FA474 */ if (_t21) goto L_028FA4A0; else goto L_028FA478;
|
|
L_028FA478: ; // 0x28fa478
|
|
/* 028FA478 */ cpu->r[4] = 0x00000000u;
|
|
/* 028FA47C */ rbrew_dispatch(cpu, 0x02d05c28u);
|
|
/* 028FA480 */ _t22 = cpu->r[31] + 0x00000155u;
|
|
/* 028FA480 */ cpu->r[12] = rbrew_read8(cpu->mem, _t22);
|
|
/* 028FA484 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000000u, 0x0000001Du, 0x0000001Bu);
|
|
/* 028FA488 */ _t23 = cpu->r[31] + 0x00000155u;
|
|
/* 028FA488 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[0]);
|
|
/* 028FA48C */ _t24 = cpu->r[1] + 0x00000024u;
|
|
/* 028FA48C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028FA490 */ _t25 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA490 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028FA494 */ cpu->lr = cpu->r[0];
|
|
/* 028FA498 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028FA49C */ return;
|
|
L_028FA4A0: ; // 0x28fa4a0
|
|
/* 028FA4A0 */ cpu->r[4] = 0x00000003u;
|
|
/* 028FA4A4 */ rbrew_dispatch(cpu, 0x02d05c28u);
|
|
/* 028FA4A8 */ _t26 = cpu->r[31] + 0x00000155u;
|
|
/* 028FA4A8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t26);
|
|
/* 028FA4AC */ cpu->r[0] = cpu->r[0] | 0x00000008u;
|
|
/* 028FA4B0 */ _t27 = cpu->r[31] + 0x00000155u;
|
|
/* 028FA4B0 */ rbrew_write8(cpu->mem, _t27, (uint8_t)cpu->r[0]);
|
|
/* 028FA4B4 */ _t28 = cpu->r[1] + 0x00000024u;
|
|
/* 028FA4B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028FA4B8 */ _t29 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA4B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028FA4BC */ cpu->lr = cpu->r[0];
|
|
/* 028FA4C0 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028FA4C4 */ return;
|
|
}
|
|
|
|
// fn_028FA3B0 @ 0x28fa3b0
|
|
void Gambit_fn_028FA3B0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _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_028FA3B0: ; // 0x28fa3b0
|
|
/* 028FA3B0 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028FA3B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA3B0 */ cpu->r[1] = _t0;
|
|
/* 028FA3B4 */ _t1 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA3B4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FA3B8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA3BC */ cpu->r[4] = 0x101F0000u;
|
|
/* 028FA3C0 */ cpu->r[3] = cpu->r[31] + 0x0000012Cu;
|
|
/* 028FA3C4 */ cpu->r[4] = cpu->r[4] + 0x00005BCCu;
|
|
/* 028FA3C8 */ _t2 = cpu->r[1] + 0x00000024u;
|
|
/* 028FA3C8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028FA3CC */ Gambit_fn_0281B910(cpu);
|
|
/* 028FA3D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA3D4 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA3D4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028FA3D4 */ if (_t4) goto L_028FA404; else goto L_028FA3D8;
|
|
L_028FA3D8: ; // 0x28fa3d8
|
|
/* 028FA3D8 */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028FA3DC */ cpu->r[4] = 0x00000001u;
|
|
/* 028FA3E0 */ rbrew_dispatch(cpu, 0x02d05c28u);
|
|
/* 028FA3E4 */ _t5 = cpu->r[31] + 0x00000155u;
|
|
/* 028FA3E4 */ cpu->r[0] = rbrew_read8(cpu->mem, _t5);
|
|
/* 028FA3E8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Du, 0x0000001Bu);
|
|
/* 028FA3EC */ _t6 = cpu->r[31] + 0x00000155u;
|
|
/* 028FA3EC */ rbrew_write8(cpu->mem, _t6, (uint8_t)cpu->r[0]);
|
|
/* 028FA3F0 */ _t7 = cpu->r[1] + 0x00000024u;
|
|
/* 028FA3F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028FA3F4 */ _t8 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA3F4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028FA3F8 */ cpu->lr = cpu->r[0];
|
|
/* 028FA3FC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028FA400 */ return;
|
|
L_028FA404: ; // 0x28fa404
|
|
/* 028FA404 */ cpu->r[4] = 0x101F0000u;
|
|
/* 028FA408 */ cpu->r[3] = cpu->r[31] + 0x0000012Cu;
|
|
/* 028FA40C */ cpu->r[4] = cpu->r[4] + 0x00005BECu;
|
|
/* 028FA410 */ Gambit_fn_0281B910(cpu);
|
|
/* 028FA414 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA418 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA418 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028FA418 */ if (_t10) goto L_028FA448; else goto L_028FA41C;
|
|
L_028FA41C: ; // 0x28fa41c
|
|
/* 028FA41C */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028FA420 */ cpu->r[4] = 0x00000002u;
|
|
/* 028FA424 */ rbrew_dispatch(cpu, 0x02d05c28u);
|
|
/* 028FA428 */ _t11 = cpu->r[31] + 0x00000155u;
|
|
/* 028FA428 */ cpu->r[11] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028FA42C */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x0000001Du, 0x0000001Bu);
|
|
/* 028FA430 */ _t12 = cpu->r[31] + 0x00000155u;
|
|
/* 028FA430 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[0]);
|
|
/* 028FA434 */ _t13 = cpu->r[1] + 0x00000024u;
|
|
/* 028FA434 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028FA438 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA438 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028FA43C */ cpu->lr = cpu->r[0];
|
|
/* 028FA440 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028FA444 */ return;
|
|
L_028FA448: ; // 0x28fa448
|
|
/* 028FA448 */ cpu->r[10] = 0x10140000u;
|
|
/* 028FA44C */ _t15 = cpu->r[10] + 0xFFFFCFE4u;
|
|
/* 028FA44C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028FA450 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028FA450 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[0]);
|
|
/* 028FA454 */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA454 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[0]);
|
|
/* 028FA458 */ cpu->r[3] = cpu->r[31] + 0x0000012Cu;
|
|
/* 028FA45C */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA45C */ rbrew_write_f32(cpu->mem, _t18, cpu->f[0]);
|
|
/* 028FA460 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028FA464 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA464 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[0]);
|
|
/* 028FA468 */ Gambit_fn_0281B910(cpu);
|
|
/* 028FA46C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA470 */ cpu->r[3] = cpu->r[31] + 0x00000120u;
|
|
/* 028FA474 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA474 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028FA474 */ if (_t21) goto L_028FA4A0; else goto L_028FA478;
|
|
L_028FA478: ; // 0x28fa478
|
|
/* 028FA478 */ cpu->r[4] = 0x00000000u;
|
|
/* 028FA47C */ rbrew_dispatch(cpu, 0x02d05c28u);
|
|
/* 028FA480 */ _t22 = cpu->r[31] + 0x00000155u;
|
|
/* 028FA480 */ cpu->r[12] = rbrew_read8(cpu->mem, _t22);
|
|
/* 028FA484 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000000u, 0x0000001Du, 0x0000001Bu);
|
|
/* 028FA488 */ _t23 = cpu->r[31] + 0x00000155u;
|
|
/* 028FA488 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[0]);
|
|
/* 028FA48C */ _t24 = cpu->r[1] + 0x00000024u;
|
|
/* 028FA48C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028FA490 */ _t25 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA490 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028FA494 */ cpu->lr = cpu->r[0];
|
|
/* 028FA498 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028FA49C */ return;
|
|
L_028FA4A0: ; // 0x28fa4a0
|
|
/* 028FA4A0 */ cpu->r[4] = 0x00000003u;
|
|
/* 028FA4A4 */ rbrew_dispatch(cpu, 0x02d05c28u);
|
|
/* 028FA4A8 */ _t26 = cpu->r[31] + 0x00000155u;
|
|
/* 028FA4A8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t26);
|
|
/* 028FA4AC */ cpu->r[0] = cpu->r[0] | 0x00000008u;
|
|
/* 028FA4B0 */ _t27 = cpu->r[31] + 0x00000155u;
|
|
/* 028FA4B0 */ rbrew_write8(cpu->mem, _t27, (uint8_t)cpu->r[0]);
|
|
/* 028FA4B4 */ _t28 = cpu->r[1] + 0x00000024u;
|
|
/* 028FA4B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028FA4B8 */ _t29 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA4B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028FA4BC */ cpu->lr = cpu->r[0];
|
|
/* 028FA4C0 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028FA4C4 */ return;
|
|
}
|
|
|
|
// fn_028FA4C8 @ 0x28fa4c8
|
|
void Gambit_fn_028FA4C8(CPUState* cpu) {
|
|
uint32_t _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_028FA4C8: ; // 0x28fa4c8
|
|
/* 028FA4C8 */ cpu->r[0] = cpu->lr;
|
|
/* 028FA4CC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FA4CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA4CC */ cpu->r[1] = _t0;
|
|
/* 028FA4D0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA4D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FA4D4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA4D8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA4D8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028FA4DC */ _t3 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA4DC */ cpu->r[8] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028FA4E0 */ cpu->r[9] = rbrew_rlwinm(cpu->r[8], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA4E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028FA4E4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA4E4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028FA4E4 */ if (_t5) goto L_028FA4F4; else goto L_028FA4E8;
|
|
L_028FA4E8: ; // 0x28fa4e8
|
|
/* 028FA4E8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA4EC */ Gambit_fn_028FA21C(cpu);
|
|
/* 028FA4F0 */ _t6 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA4F0 */ cpu->r[8] = rbrew_read8(cpu->mem, _t6);
|
|
L_028FA4F4: ; // 0x28fa4f4
|
|
/* 028FA4F4 */ cpu->r[10] = rbrew_rlwinm(cpu->r[8], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA4F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028FA4F8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA4F8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028FA4F8 */ if (_t8) goto L_028FA508; else goto L_028FA4FC;
|
|
L_028FA4FC: ; // 0x28fa4fc
|
|
/* 028FA4FC */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA500 */ Gambit_fn_028FA320(cpu);
|
|
/* 028FA504 */ _t9 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA504 */ cpu->r[8] = rbrew_read8(cpu->mem, _t9);
|
|
L_028FA508: ; // 0x28fa508
|
|
/* 028FA508 */ cpu->r[11] = rbrew_rlwinm(cpu->r[8], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA508 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028FA50C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA50C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028FA50C */ if (_t11) goto L_028FA51C; else goto L_028FA510;
|
|
L_028FA510: ; // 0x28fa510
|
|
/* 028FA510 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA514 */ Gambit_fn_028FA334(cpu);
|
|
/* 028FA518 */ _t12 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA518 */ cpu->r[8] = rbrew_read8(cpu->mem, _t12);
|
|
L_028FA51C: ; // 0x28fa51c
|
|
/* 028FA51C */ cpu->r[12] = rbrew_rlwinm(cpu->r[8], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA51C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028FA520 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA520 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028FA520 */ if (_t14) goto L_028FA530; else goto L_028FA524;
|
|
L_028FA524: ; // 0x28fa524
|
|
/* 028FA524 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA528 */ Gambit_fn_028FA38C(cpu);
|
|
/* 028FA52C */ _t15 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA52C */ cpu->r[8] = rbrew_read8(cpu->mem, _t15);
|
|
L_028FA530: ; // 0x28fa530
|
|
/* 028FA530 */ cpu->r[0] = rbrew_rlwinm(cpu->r[8], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA530 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FA534 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA534 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028FA534 */ if (_t17) goto L_028FA544; else goto L_028FA538;
|
|
L_028FA538: ; // 0x28fa538
|
|
/* 028FA538 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA53C */ Gambit_fn_028FA3A0(cpu);
|
|
/* 028FA540 */ _t18 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA540 */ cpu->r[8] = rbrew_read8(cpu->mem, _t18);
|
|
L_028FA544: ; // 0x28fa544
|
|
/* 028FA544 */ cpu->r[0] = rbrew_rlwinm(cpu->r[8], 0x0000001Bu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA544 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FA548 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA548 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028FA548 */ if (_t20) goto L_028FA554; else goto L_028FA54C;
|
|
L_028FA54C: ; // 0x28fa54c
|
|
/* 028FA54C */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA550 */ Gambit_fn_028FA3AC(cpu);
|
|
L_028FA554: ; // 0x28fa554
|
|
/* 028FA554 */ cpu->r[0] = 0x00000000u;
|
|
/* 028FA558 */ _t21 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA558 */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[0]);
|
|
/* 028FA55C */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA55C */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028FA560 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA560 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028FA564 */ cpu->lr = cpu->r[0];
|
|
/* 028FA568 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA56C */ return;
|
|
}
|
|
|
|
// fn_028FA4CC @ 0x28fa4cc
|
|
void Gambit_fn_028FA4CC(CPUState* cpu) {
|
|
uint32_t _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_028FA4CC: ; // 0x28fa4cc
|
|
/* 028FA4CC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FA4CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA4CC */ cpu->r[1] = _t0;
|
|
/* 028FA4D0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA4D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FA4D4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA4D8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA4D8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028FA4DC */ _t3 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA4DC */ cpu->r[8] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028FA4E0 */ cpu->r[9] = rbrew_rlwinm(cpu->r[8], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA4E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028FA4E4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA4E4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028FA4E4 */ if (_t5) goto L_028FA4F4; else goto L_028FA4E8;
|
|
L_028FA4E8: ; // 0x28fa4e8
|
|
/* 028FA4E8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA4EC */ Gambit_fn_028FA21C(cpu);
|
|
/* 028FA4F0 */ _t6 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA4F0 */ cpu->r[8] = rbrew_read8(cpu->mem, _t6);
|
|
L_028FA4F4: ; // 0x28fa4f4
|
|
/* 028FA4F4 */ cpu->r[10] = rbrew_rlwinm(cpu->r[8], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA4F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028FA4F8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA4F8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028FA4F8 */ if (_t8) goto L_028FA508; else goto L_028FA4FC;
|
|
L_028FA4FC: ; // 0x28fa4fc
|
|
/* 028FA4FC */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA500 */ Gambit_fn_028FA320(cpu);
|
|
/* 028FA504 */ _t9 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA504 */ cpu->r[8] = rbrew_read8(cpu->mem, _t9);
|
|
L_028FA508: ; // 0x28fa508
|
|
/* 028FA508 */ cpu->r[11] = rbrew_rlwinm(cpu->r[8], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA508 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028FA50C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA50C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028FA50C */ if (_t11) goto L_028FA51C; else goto L_028FA510;
|
|
L_028FA510: ; // 0x28fa510
|
|
/* 028FA510 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA514 */ Gambit_fn_028FA334(cpu);
|
|
/* 028FA518 */ _t12 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA518 */ cpu->r[8] = rbrew_read8(cpu->mem, _t12);
|
|
L_028FA51C: ; // 0x28fa51c
|
|
/* 028FA51C */ cpu->r[12] = rbrew_rlwinm(cpu->r[8], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA51C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028FA520 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA520 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028FA520 */ if (_t14) goto L_028FA530; else goto L_028FA524;
|
|
L_028FA524: ; // 0x28fa524
|
|
/* 028FA524 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA528 */ Gambit_fn_028FA38C(cpu);
|
|
/* 028FA52C */ _t15 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA52C */ cpu->r[8] = rbrew_read8(cpu->mem, _t15);
|
|
L_028FA530: ; // 0x28fa530
|
|
/* 028FA530 */ cpu->r[0] = rbrew_rlwinm(cpu->r[8], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA530 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FA534 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA534 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028FA534 */ if (_t17) goto L_028FA544; else goto L_028FA538;
|
|
L_028FA538: ; // 0x28fa538
|
|
/* 028FA538 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA53C */ Gambit_fn_028FA3A0(cpu);
|
|
/* 028FA540 */ _t18 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA540 */ cpu->r[8] = rbrew_read8(cpu->mem, _t18);
|
|
L_028FA544: ; // 0x28fa544
|
|
/* 028FA544 */ cpu->r[0] = rbrew_rlwinm(cpu->r[8], 0x0000001Bu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA544 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FA548 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA548 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028FA548 */ if (_t20) goto L_028FA554; else goto L_028FA54C;
|
|
L_028FA54C: ; // 0x28fa54c
|
|
/* 028FA54C */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA550 */ Gambit_fn_028FA3AC(cpu);
|
|
L_028FA554: ; // 0x28fa554
|
|
/* 028FA554 */ cpu->r[0] = 0x00000000u;
|
|
/* 028FA558 */ _t21 = cpu->r[31] + 0x00000154u;
|
|
/* 028FA558 */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[0]);
|
|
/* 028FA55C */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA55C */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028FA560 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA560 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028FA564 */ cpu->lr = cpu->r[0];
|
|
/* 028FA568 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA56C */ return;
|
|
}
|
|
|
|
// fn_028FA570 @ 0x28fa570
|
|
void Gambit_fn_028FA570(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028FA570: ; // 0x28fa570
|
|
/* 028FA570 */ cpu->r[0] = cpu->lr;
|
|
/* 028FA574 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FA574 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA574 */ cpu->r[1] = _t0;
|
|
/* 028FA578 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA578 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FA57C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA57C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028FA580 */ cpu->r[31] = cpu->r[4];
|
|
/* 028FA584 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA584 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028FA588 */ _t4 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA588 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t4);
|
|
/* 028FA58C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0xFFFFFFFFu);
|
|
/* 028FA590 */ cpu->r[30] = cpu->r[3];
|
|
/* 028FA594 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA594 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FA594 */ if (_t6) goto L_028FA598; else goto L_028FA5CC;
|
|
L_028FA598: ; // 0x28fa598
|
|
/* 028FA598 */ _t7 = cpu->r[31] + 0x00000002u;
|
|
/* 028FA598 */ cpu->r[11] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t7);
|
|
/* 028FA59C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0xFFFFFFFFu);
|
|
/* 028FA5A0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA5A0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028FA5A0 */ if (_t9) goto L_028FA5A4; else goto L_028FA5CC;
|
|
L_028FA5A4: ; // 0x28fa5a4
|
|
/* 028FA5A4 */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA5A4 */ cpu->r[12] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t10);
|
|
/* 028FA5A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0xFFFFFFFFu);
|
|
/* 028FA5AC */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA5AC */ _t12 = _t11 & 0x00000001u;
|
|
/* 028FA5AC */ if (_t12) goto L_028FA5B0; else goto L_028FA5CC;
|
|
L_028FA5B0: ; // 0x28fa5b0
|
|
/* 028FA5B0 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA5B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028FA5B4 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA5B4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028FA5B8 */ cpu->lr = cpu->r[0];
|
|
/* 028FA5BC */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA5BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028FA5C0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA5C4 */ cpu->r[3] = 0x00000000u;
|
|
/* 028FA5C8 */ return;
|
|
L_028FA5CC: ; // 0x28fa5cc
|
|
/* 028FA5CC */ _t16 = cpu->r[30] + 0x00000154u;
|
|
/* 028FA5CC */ cpu->r[0] = rbrew_read8(cpu->mem, _t16);
|
|
/* 028FA5D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FA5D4 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA5D4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028FA5D4 */ if (_t18) goto L_028FA5E4; else goto L_028FA5D8;
|
|
L_028FA5D8: ; // 0x28fa5d8
|
|
/* 028FA5D8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028FA5DC */ Gambit_fn_028FA4C8(cpu);
|
|
/* 028FA5E0 */ _t19 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA5E0 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t19);
|
|
L_028FA5E4: ; // 0x28fa5e4
|
|
/* 028FA5E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0xFFFFFFFFu);
|
|
/* 028FA5E8 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA5E8 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028FA5E8 */ if (_t21) goto L_028FA628; else goto L_028FA5EC;
|
|
L_028FA5EC: ; // 0x28fa5ec
|
|
/* 028FA5EC */ _t22 = cpu->r[30] + 0x00000155u;
|
|
/* 028FA5EC */ cpu->r[11] = rbrew_read8(cpu->mem, _t22);
|
|
/* 028FA5F0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA5F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FA5F4 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA5F4 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028FA5F4 */ if (_t24) goto L_028FA614; else goto L_028FA5F8;
|
|
L_028FA5F8: ; // 0x28fa5f8
|
|
/* 028FA5F8 */ _t25 = cpu->r[30] + 0x00000130u;
|
|
/* 028FA5F8 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028FA5FC */ cpu->r[3] = cpu->r[4];
|
|
/* 028FA600 */ _t26 = cpu->r[30] + 0x00000138u;
|
|
/* 028FA600 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028FA604 */ _t27 = cpu->r[30] + 0x00000134u;
|
|
/* 028FA604 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 028FA608 */ _t28 = cpu->r[30] + 0x0000012Cu;
|
|
/* 028FA608 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 028FA60C */ rbrew_dispatch(cpu, 0x02d06288u);
|
|
/* 028FA610 */ _t29 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA610 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t29);
|
|
L_028FA614: ; // 0x28fa614
|
|
/* 028FA614 */ cpu->r[3] = cpu->r[30] + 0x00000084u;
|
|
/* 028FA618 */ rbrew_dispatch(cpu, 0x02d06298u);
|
|
/* 028FA61C */ _t30 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA61C */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t30);
|
|
/* 028FA620 */ cpu->r[3] = cpu->r[30] + 0x00000120u;
|
|
/* 028FA624 */ rbrew_dispatch(cpu, 0x02d06280u);
|
|
L_028FA628: ; // 0x28fa628
|
|
/* 028FA628 */ _t31 = cpu->r[31] + 0x00000002u;
|
|
/* 028FA628 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t31);
|
|
/* 028FA62C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0xFFFFFFFFu);
|
|
/* 028FA630 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA630 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028FA630 */ if (_t33) goto L_028FA670; else goto L_028FA634;
|
|
L_028FA634: ; // 0x28fa634
|
|
/* 028FA634 */ _t34 = cpu->r[30] + 0x00000155u;
|
|
/* 028FA634 */ cpu->r[10] = rbrew_read8(cpu->mem, _t34);
|
|
/* 028FA638 */ cpu->r[12] = rbrew_rlwinm(cpu->r[10], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA638 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028FA63C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA63C */ _t36 = _t35 & 0x00000001u;
|
|
/* 028FA63C */ if (_t36) goto L_028FA65C; else goto L_028FA640;
|
|
L_028FA640: ; // 0x28fa640
|
|
/* 028FA640 */ _t37 = cpu->r[30] + 0x00000130u;
|
|
/* 028FA640 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028FA644 */ cpu->r[3] = cpu->r[4];
|
|
/* 028FA648 */ _t38 = cpu->r[30] + 0x00000138u;
|
|
/* 028FA648 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 028FA64C */ _t39 = cpu->r[30] + 0x00000134u;
|
|
/* 028FA64C */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t39);
|
|
/* 028FA650 */ _t40 = cpu->r[30] + 0x0000012Cu;
|
|
/* 028FA650 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 028FA654 */ rbrew_dispatch(cpu, 0x02d06140u);
|
|
/* 028FA658 */ _t41 = cpu->r[31] + 0x00000002u;
|
|
/* 028FA658 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t41);
|
|
L_028FA65C: ; // 0x28fa65c
|
|
/* 028FA65C */ cpu->r[3] = cpu->r[30] + 0x00000084u;
|
|
/* 028FA660 */ rbrew_dispatch(cpu, 0x02d06150u);
|
|
/* 028FA664 */ _t42 = cpu->r[31] + 0x00000002u;
|
|
/* 028FA664 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t42);
|
|
/* 028FA668 */ cpu->r[3] = cpu->r[30] + 0x00000120u;
|
|
/* 028FA66C */ rbrew_dispatch(cpu, 0x02d06138u);
|
|
L_028FA670: ; // 0x28fa670
|
|
/* 028FA670 */ _t43 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA670 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t43);
|
|
/* 028FA674 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0xFFFFFFFFu);
|
|
/* 028FA678 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA678 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028FA678 */ if (_t45) goto L_028FA6B8; else goto L_028FA67C;
|
|
L_028FA67C: ; // 0x28fa67c
|
|
/* 028FA67C */ _t46 = cpu->r[30] + 0x00000155u;
|
|
/* 028FA67C */ cpu->r[0] = rbrew_read8(cpu->mem, _t46);
|
|
/* 028FA680 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA680 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FA684 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA684 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028FA684 */ if (_t48) goto L_028FA6A4; else goto L_028FA688;
|
|
L_028FA688: ; // 0x28fa688
|
|
/* 028FA688 */ _t49 = cpu->r[30] + 0x00000130u;
|
|
/* 028FA688 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t49);
|
|
/* 028FA68C */ cpu->r[3] = cpu->r[4];
|
|
/* 028FA690 */ _t50 = cpu->r[30] + 0x00000138u;
|
|
/* 028FA690 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t50);
|
|
/* 028FA694 */ _t51 = cpu->r[30] + 0x00000134u;
|
|
/* 028FA694 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t51);
|
|
/* 028FA698 */ _t52 = cpu->r[30] + 0x0000012Cu;
|
|
/* 028FA698 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028FA69C */ rbrew_dispatch(cpu, 0x02d060d0u);
|
|
/* 028FA6A0 */ _t53 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA6A0 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t53);
|
|
L_028FA6A4: ; // 0x28fa6a4
|
|
/* 028FA6A4 */ cpu->r[3] = cpu->r[30] + 0x00000084u;
|
|
/* 028FA6A8 */ rbrew_dispatch(cpu, 0x02d060f0u);
|
|
/* 028FA6AC */ _t54 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA6AC */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t54);
|
|
/* 028FA6B0 */ cpu->r[3] = cpu->r[30] + 0x00000120u;
|
|
/* 028FA6B4 */ rbrew_dispatch(cpu, 0x02d060c8u);
|
|
L_028FA6B8: ; // 0x28fa6b8
|
|
/* 028FA6B8 */ _t55 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA6B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028FA6BC */ _t56 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA6BC */ cpu->r[30] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028FA6C0 */ cpu->lr = cpu->r[0];
|
|
/* 028FA6C4 */ _t57 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA6C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028FA6C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA6CC */ cpu->r[3] = 0x00000001u;
|
|
/* 028FA6D0 */ return;
|
|
}
|
|
|
|
// fn_028FA574 @ 0x28fa574
|
|
void Gambit_fn_028FA574(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028FA574: ; // 0x28fa574
|
|
/* 028FA574 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FA574 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA574 */ cpu->r[1] = _t0;
|
|
/* 028FA578 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA578 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FA57C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA57C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028FA580 */ cpu->r[31] = cpu->r[4];
|
|
/* 028FA584 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA584 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028FA588 */ _t4 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA588 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t4);
|
|
/* 028FA58C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0xFFFFFFFFu);
|
|
/* 028FA590 */ cpu->r[30] = cpu->r[3];
|
|
/* 028FA594 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA594 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FA594 */ if (_t6) goto L_028FA598; else goto L_028FA5CC;
|
|
L_028FA598: ; // 0x28fa598
|
|
/* 028FA598 */ _t7 = cpu->r[31] + 0x00000002u;
|
|
/* 028FA598 */ cpu->r[11] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t7);
|
|
/* 028FA59C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0xFFFFFFFFu);
|
|
/* 028FA5A0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA5A0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028FA5A0 */ if (_t9) goto L_028FA5A4; else goto L_028FA5CC;
|
|
L_028FA5A4: ; // 0x28fa5a4
|
|
/* 028FA5A4 */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA5A4 */ cpu->r[12] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t10);
|
|
/* 028FA5A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0xFFFFFFFFu);
|
|
/* 028FA5AC */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA5AC */ _t12 = _t11 & 0x00000001u;
|
|
/* 028FA5AC */ if (_t12) goto L_028FA5B0; else goto L_028FA5CC;
|
|
L_028FA5B0: ; // 0x28fa5b0
|
|
/* 028FA5B0 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA5B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028FA5B4 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA5B4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028FA5B8 */ cpu->lr = cpu->r[0];
|
|
/* 028FA5BC */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA5BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028FA5C0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA5C4 */ cpu->r[3] = 0x00000000u;
|
|
/* 028FA5C8 */ return;
|
|
L_028FA5CC: ; // 0x28fa5cc
|
|
/* 028FA5CC */ _t16 = cpu->r[30] + 0x00000154u;
|
|
/* 028FA5CC */ cpu->r[0] = rbrew_read8(cpu->mem, _t16);
|
|
/* 028FA5D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FA5D4 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA5D4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028FA5D4 */ if (_t18) goto L_028FA5E4; else goto L_028FA5D8;
|
|
L_028FA5D8: ; // 0x28fa5d8
|
|
/* 028FA5D8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028FA5DC */ Gambit_fn_028FA4C8(cpu);
|
|
/* 028FA5E0 */ _t19 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA5E0 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t19);
|
|
L_028FA5E4: ; // 0x28fa5e4
|
|
/* 028FA5E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0xFFFFFFFFu);
|
|
/* 028FA5E8 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA5E8 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028FA5E8 */ if (_t21) goto L_028FA628; else goto L_028FA5EC;
|
|
L_028FA5EC: ; // 0x28fa5ec
|
|
/* 028FA5EC */ _t22 = cpu->r[30] + 0x00000155u;
|
|
/* 028FA5EC */ cpu->r[11] = rbrew_read8(cpu->mem, _t22);
|
|
/* 028FA5F0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA5F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FA5F4 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA5F4 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028FA5F4 */ if (_t24) goto L_028FA614; else goto L_028FA5F8;
|
|
L_028FA5F8: ; // 0x28fa5f8
|
|
/* 028FA5F8 */ _t25 = cpu->r[30] + 0x00000130u;
|
|
/* 028FA5F8 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028FA5FC */ cpu->r[3] = cpu->r[4];
|
|
/* 028FA600 */ _t26 = cpu->r[30] + 0x00000138u;
|
|
/* 028FA600 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028FA604 */ _t27 = cpu->r[30] + 0x00000134u;
|
|
/* 028FA604 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 028FA608 */ _t28 = cpu->r[30] + 0x0000012Cu;
|
|
/* 028FA608 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 028FA60C */ rbrew_dispatch(cpu, 0x02d06288u);
|
|
/* 028FA610 */ _t29 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA610 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t29);
|
|
L_028FA614: ; // 0x28fa614
|
|
/* 028FA614 */ cpu->r[3] = cpu->r[30] + 0x00000084u;
|
|
/* 028FA618 */ rbrew_dispatch(cpu, 0x02d06298u);
|
|
/* 028FA61C */ _t30 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA61C */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t30);
|
|
/* 028FA620 */ cpu->r[3] = cpu->r[30] + 0x00000120u;
|
|
/* 028FA624 */ rbrew_dispatch(cpu, 0x02d06280u);
|
|
L_028FA628: ; // 0x28fa628
|
|
/* 028FA628 */ _t31 = cpu->r[31] + 0x00000002u;
|
|
/* 028FA628 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t31);
|
|
/* 028FA62C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0xFFFFFFFFu);
|
|
/* 028FA630 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA630 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028FA630 */ if (_t33) goto L_028FA670; else goto L_028FA634;
|
|
L_028FA634: ; // 0x28fa634
|
|
/* 028FA634 */ _t34 = cpu->r[30] + 0x00000155u;
|
|
/* 028FA634 */ cpu->r[10] = rbrew_read8(cpu->mem, _t34);
|
|
/* 028FA638 */ cpu->r[12] = rbrew_rlwinm(cpu->r[10], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA638 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028FA63C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA63C */ _t36 = _t35 & 0x00000001u;
|
|
/* 028FA63C */ if (_t36) goto L_028FA65C; else goto L_028FA640;
|
|
L_028FA640: ; // 0x28fa640
|
|
/* 028FA640 */ _t37 = cpu->r[30] + 0x00000130u;
|
|
/* 028FA640 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028FA644 */ cpu->r[3] = cpu->r[4];
|
|
/* 028FA648 */ _t38 = cpu->r[30] + 0x00000138u;
|
|
/* 028FA648 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 028FA64C */ _t39 = cpu->r[30] + 0x00000134u;
|
|
/* 028FA64C */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t39);
|
|
/* 028FA650 */ _t40 = cpu->r[30] + 0x0000012Cu;
|
|
/* 028FA650 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 028FA654 */ rbrew_dispatch(cpu, 0x02d06140u);
|
|
/* 028FA658 */ _t41 = cpu->r[31] + 0x00000002u;
|
|
/* 028FA658 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t41);
|
|
L_028FA65C: ; // 0x28fa65c
|
|
/* 028FA65C */ cpu->r[3] = cpu->r[30] + 0x00000084u;
|
|
/* 028FA660 */ rbrew_dispatch(cpu, 0x02d06150u);
|
|
/* 028FA664 */ _t42 = cpu->r[31] + 0x00000002u;
|
|
/* 028FA664 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t42);
|
|
/* 028FA668 */ cpu->r[3] = cpu->r[30] + 0x00000120u;
|
|
/* 028FA66C */ rbrew_dispatch(cpu, 0x02d06138u);
|
|
L_028FA670: ; // 0x28fa670
|
|
/* 028FA670 */ _t43 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA670 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t43);
|
|
/* 028FA674 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0xFFFFFFFFu);
|
|
/* 028FA678 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA678 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028FA678 */ if (_t45) goto L_028FA6B8; else goto L_028FA67C;
|
|
L_028FA67C: ; // 0x28fa67c
|
|
/* 028FA67C */ _t46 = cpu->r[30] + 0x00000155u;
|
|
/* 028FA67C */ cpu->r[0] = rbrew_read8(cpu->mem, _t46);
|
|
/* 028FA680 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA680 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FA684 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA684 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028FA684 */ if (_t48) goto L_028FA6A4; else goto L_028FA688;
|
|
L_028FA688: ; // 0x28fa688
|
|
/* 028FA688 */ _t49 = cpu->r[30] + 0x00000130u;
|
|
/* 028FA688 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t49);
|
|
/* 028FA68C */ cpu->r[3] = cpu->r[4];
|
|
/* 028FA690 */ _t50 = cpu->r[30] + 0x00000138u;
|
|
/* 028FA690 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t50);
|
|
/* 028FA694 */ _t51 = cpu->r[30] + 0x00000134u;
|
|
/* 028FA694 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t51);
|
|
/* 028FA698 */ _t52 = cpu->r[30] + 0x0000012Cu;
|
|
/* 028FA698 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028FA69C */ rbrew_dispatch(cpu, 0x02d060d0u);
|
|
/* 028FA6A0 */ _t53 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA6A0 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t53);
|
|
L_028FA6A4: ; // 0x28fa6a4
|
|
/* 028FA6A4 */ cpu->r[3] = cpu->r[30] + 0x00000084u;
|
|
/* 028FA6A8 */ rbrew_dispatch(cpu, 0x02d060f0u);
|
|
/* 028FA6AC */ _t54 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA6AC */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t54);
|
|
/* 028FA6B0 */ cpu->r[3] = cpu->r[30] + 0x00000120u;
|
|
/* 028FA6B4 */ rbrew_dispatch(cpu, 0x02d060c8u);
|
|
L_028FA6B8: ; // 0x28fa6b8
|
|
/* 028FA6B8 */ _t55 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA6B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028FA6BC */ _t56 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA6BC */ cpu->r[30] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028FA6C0 */ cpu->lr = cpu->r[0];
|
|
/* 028FA6C4 */ _t57 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA6C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028FA6C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA6CC */ cpu->r[3] = 0x00000001u;
|
|
/* 028FA6D0 */ return;
|
|
}
|
|
|
|
// fn_028FA6D4 @ 0x28fa6d4
|
|
void Gambit_fn_028FA6D4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028FA570: ; // 0x28fa570
|
|
/* 028FA570 */ cpu->r[0] = cpu->lr;
|
|
/* 028FA574 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FA574 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA574 */ cpu->r[1] = _t0;
|
|
/* 028FA578 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA578 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FA57C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA57C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028FA580 */ cpu->r[31] = cpu->r[4];
|
|
/* 028FA584 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA584 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028FA588 */ _t4 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA588 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t4);
|
|
/* 028FA58C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0xFFFFFFFFu);
|
|
/* 028FA590 */ cpu->r[30] = cpu->r[3];
|
|
/* 028FA594 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA594 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FA594 */ if (_t6) goto L_028FA598; else goto L_028FA5CC;
|
|
L_028FA598: ; // 0x28fa598
|
|
/* 028FA598 */ _t7 = cpu->r[31] + 0x00000002u;
|
|
/* 028FA598 */ cpu->r[11] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t7);
|
|
/* 028FA59C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0xFFFFFFFFu);
|
|
/* 028FA5A0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA5A0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028FA5A0 */ if (_t9) goto L_028FA5A4; else goto L_028FA5CC;
|
|
L_028FA5A4: ; // 0x28fa5a4
|
|
/* 028FA5A4 */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA5A4 */ cpu->r[12] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t10);
|
|
/* 028FA5A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0xFFFFFFFFu);
|
|
/* 028FA5AC */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA5AC */ _t12 = _t11 & 0x00000001u;
|
|
/* 028FA5AC */ if (_t12) goto L_028FA5B0; else goto L_028FA5CC;
|
|
L_028FA5B0: ; // 0x28fa5b0
|
|
/* 028FA5B0 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA5B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028FA5B4 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA5B4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028FA5B8 */ cpu->lr = cpu->r[0];
|
|
/* 028FA5BC */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA5BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028FA5C0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA5C4 */ cpu->r[3] = 0x00000000u;
|
|
/* 028FA5C8 */ return;
|
|
L_028FA5CC: ; // 0x28fa5cc
|
|
/* 028FA5CC */ _t16 = cpu->r[30] + 0x00000154u;
|
|
/* 028FA5CC */ cpu->r[0] = rbrew_read8(cpu->mem, _t16);
|
|
/* 028FA5D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FA5D4 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA5D4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028FA5D4 */ if (_t18) goto L_028FA5E4; else goto L_028FA5D8;
|
|
L_028FA5D8: ; // 0x28fa5d8
|
|
/* 028FA5D8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028FA5DC */ Gambit_fn_028FA4C8(cpu);
|
|
/* 028FA5E0 */ _t19 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA5E0 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t19);
|
|
L_028FA5E4: ; // 0x28fa5e4
|
|
/* 028FA5E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0xFFFFFFFFu);
|
|
/* 028FA5E8 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA5E8 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028FA5E8 */ if (_t21) goto L_028FA628; else goto L_028FA5EC;
|
|
L_028FA5EC: ; // 0x28fa5ec
|
|
/* 028FA5EC */ _t22 = cpu->r[30] + 0x00000155u;
|
|
/* 028FA5EC */ cpu->r[11] = rbrew_read8(cpu->mem, _t22);
|
|
/* 028FA5F0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA5F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FA5F4 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA5F4 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028FA5F4 */ if (_t24) goto L_028FA614; else goto L_028FA5F8;
|
|
L_028FA5F8: ; // 0x28fa5f8
|
|
/* 028FA5F8 */ _t25 = cpu->r[30] + 0x00000130u;
|
|
/* 028FA5F8 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028FA5FC */ cpu->r[3] = cpu->r[4];
|
|
/* 028FA600 */ _t26 = cpu->r[30] + 0x00000138u;
|
|
/* 028FA600 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 028FA604 */ _t27 = cpu->r[30] + 0x00000134u;
|
|
/* 028FA604 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 028FA608 */ _t28 = cpu->r[30] + 0x0000012Cu;
|
|
/* 028FA608 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 028FA60C */ rbrew_dispatch(cpu, 0x02d06288u);
|
|
/* 028FA610 */ _t29 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA610 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t29);
|
|
L_028FA614: ; // 0x28fa614
|
|
/* 028FA614 */ cpu->r[3] = cpu->r[30] + 0x00000084u;
|
|
/* 028FA618 */ rbrew_dispatch(cpu, 0x02d06298u);
|
|
/* 028FA61C */ _t30 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA61C */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t30);
|
|
/* 028FA620 */ cpu->r[3] = cpu->r[30] + 0x00000120u;
|
|
/* 028FA624 */ rbrew_dispatch(cpu, 0x02d06280u);
|
|
L_028FA628: ; // 0x28fa628
|
|
/* 028FA628 */ _t31 = cpu->r[31] + 0x00000002u;
|
|
/* 028FA628 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t31);
|
|
/* 028FA62C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0xFFFFFFFFu);
|
|
/* 028FA630 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA630 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028FA630 */ if (_t33) goto L_028FA670; else goto L_028FA634;
|
|
L_028FA634: ; // 0x28fa634
|
|
/* 028FA634 */ _t34 = cpu->r[30] + 0x00000155u;
|
|
/* 028FA634 */ cpu->r[10] = rbrew_read8(cpu->mem, _t34);
|
|
/* 028FA638 */ cpu->r[12] = rbrew_rlwinm(cpu->r[10], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA638 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028FA63C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA63C */ _t36 = _t35 & 0x00000001u;
|
|
/* 028FA63C */ if (_t36) goto L_028FA65C; else goto L_028FA640;
|
|
L_028FA640: ; // 0x28fa640
|
|
/* 028FA640 */ _t37 = cpu->r[30] + 0x00000130u;
|
|
/* 028FA640 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028FA644 */ cpu->r[3] = cpu->r[4];
|
|
/* 028FA648 */ _t38 = cpu->r[30] + 0x00000138u;
|
|
/* 028FA648 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 028FA64C */ _t39 = cpu->r[30] + 0x00000134u;
|
|
/* 028FA64C */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t39);
|
|
/* 028FA650 */ _t40 = cpu->r[30] + 0x0000012Cu;
|
|
/* 028FA650 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 028FA654 */ rbrew_dispatch(cpu, 0x02d06140u);
|
|
/* 028FA658 */ _t41 = cpu->r[31] + 0x00000002u;
|
|
/* 028FA658 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t41);
|
|
L_028FA65C: ; // 0x28fa65c
|
|
/* 028FA65C */ cpu->r[3] = cpu->r[30] + 0x00000084u;
|
|
/* 028FA660 */ rbrew_dispatch(cpu, 0x02d06150u);
|
|
/* 028FA664 */ _t42 = cpu->r[31] + 0x00000002u;
|
|
/* 028FA664 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t42);
|
|
/* 028FA668 */ cpu->r[3] = cpu->r[30] + 0x00000120u;
|
|
/* 028FA66C */ rbrew_dispatch(cpu, 0x02d06138u);
|
|
L_028FA670: ; // 0x28fa670
|
|
/* 028FA670 */ _t43 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA670 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t43);
|
|
/* 028FA674 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0xFFFFFFFFu);
|
|
/* 028FA678 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA678 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028FA678 */ if (_t45) goto L_028FA6B8; else goto L_028FA67C;
|
|
L_028FA67C: ; // 0x28fa67c
|
|
/* 028FA67C */ _t46 = cpu->r[30] + 0x00000155u;
|
|
/* 028FA67C */ cpu->r[0] = rbrew_read8(cpu->mem, _t46);
|
|
/* 028FA680 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA680 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FA684 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA684 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028FA684 */ if (_t48) goto L_028FA6A4; else goto L_028FA688;
|
|
L_028FA688: ; // 0x28fa688
|
|
/* 028FA688 */ _t49 = cpu->r[30] + 0x00000130u;
|
|
/* 028FA688 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t49);
|
|
/* 028FA68C */ cpu->r[3] = cpu->r[4];
|
|
/* 028FA690 */ _t50 = cpu->r[30] + 0x00000138u;
|
|
/* 028FA690 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t50);
|
|
/* 028FA694 */ _t51 = cpu->r[30] + 0x00000134u;
|
|
/* 028FA694 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t51);
|
|
/* 028FA698 */ _t52 = cpu->r[30] + 0x0000012Cu;
|
|
/* 028FA698 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028FA69C */ rbrew_dispatch(cpu, 0x02d060d0u);
|
|
/* 028FA6A0 */ _t53 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA6A0 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t53);
|
|
L_028FA6A4: ; // 0x28fa6a4
|
|
/* 028FA6A4 */ cpu->r[3] = cpu->r[30] + 0x00000084u;
|
|
/* 028FA6A8 */ rbrew_dispatch(cpu, 0x02d060f0u);
|
|
/* 028FA6AC */ _t54 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA6AC */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t54);
|
|
/* 028FA6B0 */ cpu->r[3] = cpu->r[30] + 0x00000120u;
|
|
/* 028FA6B4 */ rbrew_dispatch(cpu, 0x02d060c8u);
|
|
L_028FA6B8: ; // 0x28fa6b8
|
|
/* 028FA6B8 */ _t55 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA6B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028FA6BC */ _t56 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA6BC */ cpu->r[30] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028FA6C0 */ cpu->lr = cpu->r[0];
|
|
/* 028FA6C4 */ _t57 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA6C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028FA6C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA6CC */ cpu->r[3] = 0x00000001u;
|
|
/* 028FA6D0 */ return;
|
|
L_028FA6D4: ; // 0x28fa6d4
|
|
/* 028FA6D4 */ cpu->r[4] = cpu->r[4] + 0x00000008u;
|
|
/* 028FA6D8 */ goto L_028FA570;
|
|
}
|
|
|
|
// fn_028FA6DC @ 0x28fa6dc
|
|
void Gambit_fn_028FA6DC(CPUState* cpu) {
|
|
uint32_t _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_028FA6DC: ; // 0x28fa6dc
|
|
/* 028FA6DC */ cpu->r[0] = cpu->lr;
|
|
/* 028FA6E0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FA6E0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA6E0 */ cpu->r[1] = _t0;
|
|
/* 028FA6E4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA6E4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FA6E8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA6E8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028FA6EC */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA6EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FA6F0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA6F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028FA6F4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA6F4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028FA6F4 */ if (_t5) goto L_028FA6F8; else goto L_028FA708;
|
|
L_028FA6F8: ; // 0x28fa6f8
|
|
/* 028FA6F8 */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028FA6FC */ Gambit_fn_02801A78(cpu);
|
|
/* 028FA700 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA700 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FA704 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA704 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028FA704 */ if (_t7) goto L_028FA754; else goto L_028FA708;
|
|
L_028FA708: ; // 0x28fa708
|
|
/* 028FA708 */ cpu->r[12] = 0x10140000u;
|
|
/* 028FA70C */ cpu->r[30] = 0x00000000u;
|
|
/* 028FA710 */ cpu->r[12] = cpu->r[12] + 0xFFFFD044u;
|
|
/* 028FA714 */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028FA714 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 028FA718 */ _t9 = cpu->r[31] + 0x00000018u;
|
|
/* 028FA718 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 028FA71C */ _t10 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA71C */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 028FA720 */ _t11 = cpu->r[31] + 0x00000010u;
|
|
/* 028FA720 */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 028FA724 */ _t12 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA724 */ rbrew_write32(cpu->mem, _t12, cpu->r[30]);
|
|
/* 028FA728 */ cpu->r[3] = cpu->r[31] + 0x00000014u;
|
|
/* 028FA728 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA72C */ _t13 = cpu->r[31] + 0x00000008u;
|
|
/* 028FA72C */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 028FA730 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA730 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028FA730 */ if (_t15) goto L_028FA734; else goto L_028FA744;
|
|
L_028FA734: ; // 0x28fa734
|
|
/* 028FA734 */ cpu->r[3] = 0x00000001u;
|
|
/* 028FA738 */ Gambit_fn_02801A78(cpu);
|
|
/* 028FA73C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA740 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA740 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028FA740 */ if (_t17) goto L_028FA748; else goto L_028FA744;
|
|
L_028FA744: ; // 0x28fa744
|
|
/* 028FA744 */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 028FA744 */ rbrew_write8(cpu->mem, _t18, (uint8_t)cpu->r[30]);
|
|
L_028FA748: ; // 0x28fa748
|
|
/* 028FA748 */ _t19 = cpu->r[31] + 0x00000016u;
|
|
/* 028FA748 */ rbrew_write8(cpu->mem, _t19, (uint8_t)cpu->r[30]);
|
|
/* 028FA74C */ cpu->r[0] = 0x00000001u;
|
|
/* 028FA750 */ _t20 = cpu->r[31] + 0x00000015u;
|
|
/* 028FA750 */ rbrew_write8(cpu->mem, _t20, (uint8_t)cpu->r[0]);
|
|
L_028FA754: ; // 0x28fa754
|
|
/* 028FA754 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA754 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028FA758 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA75C */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA75C */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028FA760 */ cpu->lr = cpu->r[0];
|
|
/* 028FA764 */ _t23 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA764 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028FA768 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA76C */ return;
|
|
}
|
|
|
|
// fn_028FA6E0 @ 0x28fa6e0
|
|
void Gambit_fn_028FA6E0(CPUState* cpu) {
|
|
uint32_t _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_028FA6E0: ; // 0x28fa6e0
|
|
/* 028FA6E0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FA6E0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA6E0 */ cpu->r[1] = _t0;
|
|
/* 028FA6E4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA6E4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FA6E8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA6E8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028FA6EC */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA6EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FA6F0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA6F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028FA6F4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA6F4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028FA6F4 */ if (_t5) goto L_028FA6F8; else goto L_028FA708;
|
|
L_028FA6F8: ; // 0x28fa6f8
|
|
/* 028FA6F8 */ cpu->r[3] = 0x0000001Cu;
|
|
/* 028FA6FC */ Gambit_fn_02801A78(cpu);
|
|
/* 028FA700 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA700 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FA704 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA704 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028FA704 */ if (_t7) goto L_028FA754; else goto L_028FA708;
|
|
L_028FA708: ; // 0x28fa708
|
|
/* 028FA708 */ cpu->r[12] = 0x10140000u;
|
|
/* 028FA70C */ cpu->r[30] = 0x00000000u;
|
|
/* 028FA710 */ cpu->r[12] = cpu->r[12] + 0xFFFFD044u;
|
|
/* 028FA714 */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028FA714 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 028FA718 */ _t9 = cpu->r[31] + 0x00000018u;
|
|
/* 028FA718 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 028FA71C */ _t10 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA71C */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 028FA720 */ _t11 = cpu->r[31] + 0x00000010u;
|
|
/* 028FA720 */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 028FA724 */ _t12 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA724 */ rbrew_write32(cpu->mem, _t12, cpu->r[30]);
|
|
/* 028FA728 */ cpu->r[3] = cpu->r[31] + 0x00000014u;
|
|
/* 028FA728 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA72C */ _t13 = cpu->r[31] + 0x00000008u;
|
|
/* 028FA72C */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 028FA730 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA730 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028FA730 */ if (_t15) goto L_028FA734; else goto L_028FA744;
|
|
L_028FA734: ; // 0x28fa734
|
|
/* 028FA734 */ cpu->r[3] = 0x00000001u;
|
|
/* 028FA738 */ Gambit_fn_02801A78(cpu);
|
|
/* 028FA73C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA740 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA740 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028FA740 */ if (_t17) goto L_028FA748; else goto L_028FA744;
|
|
L_028FA744: ; // 0x28fa744
|
|
/* 028FA744 */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 028FA744 */ rbrew_write8(cpu->mem, _t18, (uint8_t)cpu->r[30]);
|
|
L_028FA748: ; // 0x28fa748
|
|
/* 028FA748 */ _t19 = cpu->r[31] + 0x00000016u;
|
|
/* 028FA748 */ rbrew_write8(cpu->mem, _t19, (uint8_t)cpu->r[30]);
|
|
/* 028FA74C */ cpu->r[0] = 0x00000001u;
|
|
/* 028FA750 */ _t20 = cpu->r[31] + 0x00000015u;
|
|
/* 028FA750 */ rbrew_write8(cpu->mem, _t20, (uint8_t)cpu->r[0]);
|
|
L_028FA754: ; // 0x28fa754
|
|
/* 028FA754 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA754 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028FA758 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA75C */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA75C */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028FA760 */ cpu->lr = cpu->r[0];
|
|
/* 028FA764 */ _t23 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA764 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028FA768 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA76C */ return;
|
|
}
|
|
|
|
// fn_028FA770 @ 0x28fa770
|
|
void Gambit_fn_028FA770(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _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_028FA770: ; // 0x28fa770
|
|
/* 028FA770 */ cpu->r[0] = cpu->lr;
|
|
/* 028FA774 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FA774 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA774 */ cpu->r[1] = _t0;
|
|
/* 028FA778 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA778 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FA77C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA77C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028FA780 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA784 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA784 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028FA788 */ _t4 = cpu->r[31] + 0x00000014u;
|
|
/* 028FA788 */ cpu->r[0] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028FA78C */ cpu->r[7] = rbrew_rlwinm(cpu->r[0], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA78C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028FA790 */ cpu->r[30] = 0x00000000u;
|
|
/* 028FA794 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA794 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FA794 */ if (_t6) goto L_028FA7B8; else goto L_028FA798;
|
|
L_028FA798: ; // 0x28fa798
|
|
/* 028FA798 */ _t7 = cpu->r[31] + 0x00000008u;
|
|
/* 028FA798 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028FA79C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA7A0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA7A0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028FA7A0 */ if (_t9) goto L_028FA7B0; else goto L_028FA7A4;
|
|
L_028FA7A4: ; // 0x28fa7a4
|
|
/* 028FA7A4 */ Gambit_fn_02801BB4(cpu);
|
|
/* 028FA7A8 */ _t10 = cpu->r[31] + 0x00000014u;
|
|
/* 028FA7A8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t10);
|
|
/* 028FA7AC */ _t11 = cpu->r[31] + 0x00000008u;
|
|
/* 028FA7AC */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
L_028FA7B0: ; // 0x28fa7b0
|
|
/* 028FA7B0 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Du);
|
|
/* 028FA7B4 */ _t12 = cpu->r[31] + 0x00000014u;
|
|
/* 028FA7B4 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[8]);
|
|
L_028FA7B8: ; // 0x28fa7b8
|
|
/* 028FA7B8 */ _t13 = cpu->r[31] + 0x00000014u;
|
|
/* 028FA7B8 */ cpu->r[11] = rbrew_read8(cpu->mem, _t13);
|
|
/* 028FA7BC */ cpu->r[9] = 0x00000000u;
|
|
/* 028FA7C0 */ _t14 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028FA7C0 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 028FA7C4 */ _t15 = cpu->r[31] + 0x00000010u;
|
|
/* 028FA7C4 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
/* 028FA7C8 */ cpu->r[10] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA7C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028FA7CC */ _t16 = cpu->r[31] + 0x00000008u;
|
|
/* 028FA7CC */ rbrew_write32(cpu->mem, _t16, cpu->r[9]);
|
|
/* 028FA7D0 */ _t17 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA7D0 */ rbrew_write32(cpu->mem, _t17, cpu->r[9]);
|
|
/* 028FA7D4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA7D4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028FA7D4 */ if (_t19) goto L_028FA7FC; else goto L_028FA7D8;
|
|
L_028FA7D8: ; // 0x28fa7d8
|
|
/* 028FA7D8 */ _t20 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA7D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028FA7DC */ _t21 = cpu->r[12] + 0x00000000u;
|
|
/* 028FA7DC */ cpu->r[3] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028FA7E0 */ Gambit_fn_02801BB0(cpu);
|
|
/* 028FA7E4 */ _t22 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA7E4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028FA7E8 */ Gambit_fn_02801BB0(cpu);
|
|
/* 028FA7EC */ _t23 = cpu->r[31] + 0x00000014u;
|
|
/* 028FA7EC */ cpu->r[0] = rbrew_read8(cpu->mem, _t23);
|
|
/* 028FA7F0 */ _t24 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA7F0 */ rbrew_write32(cpu->mem, _t24, cpu->r[30]);
|
|
/* 028FA7F4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000000u, 0x0000001Eu);
|
|
/* 028FA7F8 */ _t25 = cpu->r[31] + 0x00000014u;
|
|
/* 028FA7F8 */ rbrew_write8(cpu->mem, _t25, (uint8_t)cpu->r[0]);
|
|
L_028FA7FC: ; // 0x28fa7fc
|
|
/* 028FA7FC */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA7FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028FA800 */ _t27 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA800 */ cpu->r[30] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028FA804 */ cpu->lr = cpu->r[0];
|
|
/* 028FA808 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA808 */ cpu->r[31] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028FA80C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA810 */ return;
|
|
}
|
|
|
|
// fn_028FA774 @ 0x28fa774
|
|
void Gambit_fn_028FA774(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _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_028FA774: ; // 0x28fa774
|
|
/* 028FA774 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FA774 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA774 */ cpu->r[1] = _t0;
|
|
/* 028FA778 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA778 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FA77C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA77C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028FA780 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA784 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA784 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028FA788 */ _t4 = cpu->r[31] + 0x00000014u;
|
|
/* 028FA788 */ cpu->r[0] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028FA78C */ cpu->r[7] = rbrew_rlwinm(cpu->r[0], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA78C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028FA790 */ cpu->r[30] = 0x00000000u;
|
|
/* 028FA794 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA794 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FA794 */ if (_t6) goto L_028FA7B8; else goto L_028FA798;
|
|
L_028FA798: ; // 0x28fa798
|
|
/* 028FA798 */ _t7 = cpu->r[31] + 0x00000008u;
|
|
/* 028FA798 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028FA79C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FA7A0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA7A0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028FA7A0 */ if (_t9) goto L_028FA7B0; else goto L_028FA7A4;
|
|
L_028FA7A4: ; // 0x28fa7a4
|
|
/* 028FA7A4 */ Gambit_fn_02801BB4(cpu);
|
|
/* 028FA7A8 */ _t10 = cpu->r[31] + 0x00000014u;
|
|
/* 028FA7A8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t10);
|
|
/* 028FA7AC */ _t11 = cpu->r[31] + 0x00000008u;
|
|
/* 028FA7AC */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
L_028FA7B0: ; // 0x28fa7b0
|
|
/* 028FA7B0 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Du);
|
|
/* 028FA7B4 */ _t12 = cpu->r[31] + 0x00000014u;
|
|
/* 028FA7B4 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[8]);
|
|
L_028FA7B8: ; // 0x28fa7b8
|
|
/* 028FA7B8 */ _t13 = cpu->r[31] + 0x00000014u;
|
|
/* 028FA7B8 */ cpu->r[11] = rbrew_read8(cpu->mem, _t13);
|
|
/* 028FA7BC */ cpu->r[9] = 0x00000000u;
|
|
/* 028FA7C0 */ _t14 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028FA7C0 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 028FA7C4 */ _t15 = cpu->r[31] + 0x00000010u;
|
|
/* 028FA7C4 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
/* 028FA7C8 */ cpu->r[10] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA7C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028FA7CC */ _t16 = cpu->r[31] + 0x00000008u;
|
|
/* 028FA7CC */ rbrew_write32(cpu->mem, _t16, cpu->r[9]);
|
|
/* 028FA7D0 */ _t17 = cpu->r[31] + 0x00000004u;
|
|
/* 028FA7D0 */ rbrew_write32(cpu->mem, _t17, cpu->r[9]);
|
|
/* 028FA7D4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA7D4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028FA7D4 */ if (_t19) goto L_028FA7FC; else goto L_028FA7D8;
|
|
L_028FA7D8: ; // 0x28fa7d8
|
|
/* 028FA7D8 */ _t20 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA7D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028FA7DC */ _t21 = cpu->r[12] + 0x00000000u;
|
|
/* 028FA7DC */ cpu->r[3] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028FA7E0 */ Gambit_fn_02801BB0(cpu);
|
|
/* 028FA7E4 */ _t22 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA7E4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028FA7E8 */ Gambit_fn_02801BB0(cpu);
|
|
/* 028FA7EC */ _t23 = cpu->r[31] + 0x00000014u;
|
|
/* 028FA7EC */ cpu->r[0] = rbrew_read8(cpu->mem, _t23);
|
|
/* 028FA7F0 */ _t24 = cpu->r[31] + 0x00000000u;
|
|
/* 028FA7F0 */ rbrew_write32(cpu->mem, _t24, cpu->r[30]);
|
|
/* 028FA7F4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000000u, 0x0000001Eu);
|
|
/* 028FA7F8 */ _t25 = cpu->r[31] + 0x00000014u;
|
|
/* 028FA7F8 */ rbrew_write8(cpu->mem, _t25, (uint8_t)cpu->r[0]);
|
|
L_028FA7FC: ; // 0x28fa7fc
|
|
/* 028FA7FC */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA7FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028FA800 */ _t27 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA800 */ cpu->r[30] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028FA804 */ cpu->lr = cpu->r[0];
|
|
/* 028FA808 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA808 */ cpu->r[31] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028FA80C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA810 */ return;
|
|
}
|
|
|
|
// fn_028FA814 @ 0x28fa814
|
|
void Gambit_fn_028FA814(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028FA814: ; // 0x28fa814
|
|
/* 028FA814 */ cpu->r[0] = cpu->lr;
|
|
/* 028FA818 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FA818 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA818 */ cpu->r[1] = _t0;
|
|
/* 028FA81C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA81C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028FA820 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA820 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028FA824 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA824 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FA828 */ cpu->r[30] = cpu->r[4];
|
|
/* 028FA82C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA82C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028FA830 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA830 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028FA830 */ if (_t5) goto L_028FA858; else goto L_028FA834;
|
|
L_028FA834: ; // 0x28fa834
|
|
/* 028FA834 */ cpu->r[0] = 0x10140000u;
|
|
/* 028FA838 */ cpu->r[0] = cpu->r[0] + 0xFFFFD044u;
|
|
/* 028FA83C */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA840 */ _t6 = cpu->r[31] + 0x00000018u;
|
|
/* 028FA840 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028FA844 */ Gambit_fn_028FA770(cpu);
|
|
/* 028FA848 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA848 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FA84C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA84C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028FA84C */ if (_t8) goto L_028FA858; else goto L_028FA850;
|
|
L_028FA850: ; // 0x28fa850
|
|
/* 028FA850 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA854 */ Gambit_fn_02801BB0(cpu);
|
|
L_028FA858: ; // 0x28fa858
|
|
/* 028FA858 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA858 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028FA85C */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA85C */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028FA860 */ cpu->lr = cpu->r[0];
|
|
/* 028FA864 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA864 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028FA868 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA86C */ return;
|
|
}
|
|
|
|
// fn_028FA818 @ 0x28fa818
|
|
void Gambit_fn_028FA818(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028FA818: ; // 0x28fa818
|
|
/* 028FA818 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FA818 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA818 */ cpu->r[1] = _t0;
|
|
/* 028FA81C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA81C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028FA820 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA820 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028FA824 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FA824 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FA828 */ cpu->r[30] = cpu->r[4];
|
|
/* 028FA82C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA82C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028FA830 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA830 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028FA830 */ if (_t5) goto L_028FA858; else goto L_028FA834;
|
|
L_028FA834: ; // 0x28fa834
|
|
/* 028FA834 */ cpu->r[0] = 0x10140000u;
|
|
/* 028FA838 */ cpu->r[0] = cpu->r[0] + 0xFFFFD044u;
|
|
/* 028FA83C */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA840 */ _t6 = cpu->r[31] + 0x00000018u;
|
|
/* 028FA840 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028FA844 */ Gambit_fn_028FA770(cpu);
|
|
/* 028FA848 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FA848 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FA84C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA84C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028FA84C */ if (_t8) goto L_028FA858; else goto L_028FA850;
|
|
L_028FA850: ; // 0x28fa850
|
|
/* 028FA850 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FA854 */ Gambit_fn_02801BB0(cpu);
|
|
L_028FA858: ; // 0x28fa858
|
|
/* 028FA858 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA858 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028FA85C */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA85C */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028FA860 */ cpu->lr = cpu->r[0];
|
|
/* 028FA864 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA864 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028FA868 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FA86C */ return;
|
|
}
|
|
|
|
// fn_028FA870 @ 0x28fa870
|
|
void Gambit_fn_028FA870(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_028FA870: ; // 0x28fa870
|
|
/* 028FA870 */ cpu->r[0] = cpu->lr;
|
|
/* 028FA874 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028FA874 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA874 */ cpu->r[1] = _t0;
|
|
/* 028FA878 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028FA878 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028FA87C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA87C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028FA880 */ cpu->r[31] = cpu->r[5];
|
|
/* 028FA884 */ cpu->r[30] = cpu->r[4];
|
|
/* 028FA888 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA888 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028FA88C */ cpu->r[4] = cpu->r[31];
|
|
/* 028FA890 */ cpu->r[5] = 0x00000004u;
|
|
/* 028FA894 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA894 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028FA898 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA898 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028FA89C */ cpu->r[29] = cpu->r[3];
|
|
/* 028FA8A0 */ cpu->r[3] = 0x00000008u;
|
|
/* 028FA8A4 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028FA8A8 */ _t6 = cpu->r[29] + 0x00000000u;
|
|
/* 028FA8A8 */ rbrew_write32(cpu->mem, _t6, cpu->r[3]);
|
|
/* 028FA8AC */ cpu->r[28] = cpu->r[3];
|
|
/* 028FA8B0 */ cpu->r[3] = rbrew_rlwinm(cpu->r[30], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028FA8B4 */ cpu->r[4] = cpu->r[31];
|
|
/* 028FA8B8 */ cpu->r[5] = 0x00000004u;
|
|
/* 028FA8BC */ Gambit_fn_02801ADC(cpu);
|
|
/* 028FA8C0 */ _t7 = cpu->r[28] + 0x00000000u;
|
|
/* 028FA8C0 */ rbrew_write32(cpu->mem, _t7, cpu->r[3]);
|
|
/* 028FA8C4 */ _t8 = cpu->r[29] + 0x00000000u;
|
|
/* 028FA8C4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028FA8C8 */ _t9 = cpu->r[12] + 0x00000004u;
|
|
/* 028FA8C8 */ rbrew_write16(cpu->mem, _t9, (uint16_t)cpu->r[30]);
|
|
/* 028FA8CC */ _t10 = cpu->r[29] + 0x00000000u;
|
|
/* 028FA8CC */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028FA8D0 */ cpu->r[11] = 0x00000000u;
|
|
/* 028FA8D4 */ _t11 = cpu->r[10] + 0x00000006u;
|
|
/* 028FA8D4 */ rbrew_write16(cpu->mem, _t11, (uint16_t)cpu->r[11]);
|
|
/* 028FA8D8 */ _t12 = cpu->r[29] + 0x00000014u;
|
|
/* 028FA8D8 */ cpu->r[12] = rbrew_read8(cpu->mem, _t12);
|
|
/* 028FA8DC */ _t13 = cpu->r[29] + 0x00000010u;
|
|
/* 028FA8DC */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
/* 028FA8E0 */ cpu->r[12] = cpu->r[12] | 0x00000001u;
|
|
/* 028FA8E4 */ _t14 = cpu->r[29] + 0x00000014u;
|
|
/* 028FA8E4 */ rbrew_write8(cpu->mem, _t14, (uint8_t)cpu->r[12]);
|
|
/* 028FA8E8 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA8E8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028FA8EC */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA8EC */ cpu->r[29] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028FA8F0 */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA8F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028FA8F4 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA8F4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028FA8F8 */ cpu->lr = cpu->r[0];
|
|
/* 028FA8FC */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028FA8FC */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028FA900 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028FA904 */ return;
|
|
}
|
|
|
|
// fn_028FA874 @ 0x28fa874
|
|
void Gambit_fn_028FA874(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_028FA874: ; // 0x28fa874
|
|
/* 028FA874 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028FA874 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA874 */ cpu->r[1] = _t0;
|
|
/* 028FA878 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028FA878 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028FA87C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA87C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028FA880 */ cpu->r[31] = cpu->r[5];
|
|
/* 028FA884 */ cpu->r[30] = cpu->r[4];
|
|
/* 028FA888 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA888 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028FA88C */ cpu->r[4] = cpu->r[31];
|
|
/* 028FA890 */ cpu->r[5] = 0x00000004u;
|
|
/* 028FA894 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA894 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028FA898 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA898 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028FA89C */ cpu->r[29] = cpu->r[3];
|
|
/* 028FA8A0 */ cpu->r[3] = 0x00000008u;
|
|
/* 028FA8A4 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028FA8A8 */ _t6 = cpu->r[29] + 0x00000000u;
|
|
/* 028FA8A8 */ rbrew_write32(cpu->mem, _t6, cpu->r[3]);
|
|
/* 028FA8AC */ cpu->r[28] = cpu->r[3];
|
|
/* 028FA8B0 */ cpu->r[3] = rbrew_rlwinm(cpu->r[30], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028FA8B4 */ cpu->r[4] = cpu->r[31];
|
|
/* 028FA8B8 */ cpu->r[5] = 0x00000004u;
|
|
/* 028FA8BC */ Gambit_fn_02801ADC(cpu);
|
|
/* 028FA8C0 */ _t7 = cpu->r[28] + 0x00000000u;
|
|
/* 028FA8C0 */ rbrew_write32(cpu->mem, _t7, cpu->r[3]);
|
|
/* 028FA8C4 */ _t8 = cpu->r[29] + 0x00000000u;
|
|
/* 028FA8C4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028FA8C8 */ _t9 = cpu->r[12] + 0x00000004u;
|
|
/* 028FA8C8 */ rbrew_write16(cpu->mem, _t9, (uint16_t)cpu->r[30]);
|
|
/* 028FA8CC */ _t10 = cpu->r[29] + 0x00000000u;
|
|
/* 028FA8CC */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028FA8D0 */ cpu->r[11] = 0x00000000u;
|
|
/* 028FA8D4 */ _t11 = cpu->r[10] + 0x00000006u;
|
|
/* 028FA8D4 */ rbrew_write16(cpu->mem, _t11, (uint16_t)cpu->r[11]);
|
|
/* 028FA8D8 */ _t12 = cpu->r[29] + 0x00000014u;
|
|
/* 028FA8D8 */ cpu->r[12] = rbrew_read8(cpu->mem, _t12);
|
|
/* 028FA8DC */ _t13 = cpu->r[29] + 0x00000010u;
|
|
/* 028FA8DC */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
/* 028FA8E0 */ cpu->r[12] = cpu->r[12] | 0x00000001u;
|
|
/* 028FA8E4 */ _t14 = cpu->r[29] + 0x00000014u;
|
|
/* 028FA8E4 */ rbrew_write8(cpu->mem, _t14, (uint8_t)cpu->r[12]);
|
|
/* 028FA8E8 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA8E8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028FA8EC */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA8EC */ cpu->r[29] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028FA8F0 */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FA8F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028FA8F4 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA8F4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028FA8F8 */ cpu->lr = cpu->r[0];
|
|
/* 028FA8FC */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028FA8FC */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028FA900 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028FA904 */ return;
|
|
}
|
|
|
|
// fn_028FA908 @ 0x28fa908
|
|
void Gambit_fn_028FA908(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028FA908: ; // 0x28fa908
|
|
/* 028FA908 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028FA908 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028FA90C */ _t1 = cpu->r[3] + 0x00000014u;
|
|
/* 028FA90C */ cpu->r[11] = rbrew_read8(cpu->mem, _t1);
|
|
/* 028FA910 */ _t2 = cpu->r[3] + 0x00000000u;
|
|
/* 028FA910 */ rbrew_write32(cpu->mem, _t2, cpu->r[12]);
|
|
/* 028FA914 */ _t3 = cpu->r[4] + 0x00000010u;
|
|
/* 028FA914 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028FA918 */ cpu->r[11] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x00000000u, 0x0000001Eu);
|
|
/* 028FA91C */ _t4 = cpu->r[3] + 0x00000014u;
|
|
/* 028FA91C */ rbrew_write8(cpu->mem, _t4, (uint8_t)cpu->r[11]);
|
|
/* 028FA920 */ _t5 = cpu->r[3] + 0x00000010u;
|
|
/* 028FA920 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028FA924 */ return;
|
|
}
|
|
|
|
// fn_028FA928 @ 0x28fa928
|
|
void Gambit_fn_028FA928(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028FA928: ; // 0x28fa928
|
|
/* 028FA928 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000001u);
|
|
/* 028FA92C */ _t0 = cpu->r[3] + 0x00000010u;
|
|
/* 028FA92C */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028FA930 */ _t1 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028FA930 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028FA930 */ if (_t2) goto L_028FA934; else goto L_028FA940;
|
|
L_028FA934: ; // 0x28fa934
|
|
/* 028FA934 */ cpu->r[12] = cpu->r[12] + 0x000000FFu;
|
|
/* 028FA938 */ cpu->r[3] = rbrew_rlwinm(cpu->r[12], 0x00000000u, 0x00000000u, 0x00000017u);
|
|
/* 028FA93C */ return;
|
|
L_028FA940: ; // 0x28fa940
|
|
/* 028FA940 */ cpu->r[0] = cpu->r[12] + 0x0000001Fu;
|
|
/* 028FA944 */ cpu->r[3] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000000u, 0x0000001Au);
|
|
/* 028FA948 */ return;
|
|
}
|
|
|
|
// fn_028FA94C @ 0x28fa94c
|
|
void Gambit_fn_028FA94C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028FA94C: ; // 0x28fa94c
|
|
/* 028FA94C */ _t0 = cpu->r[3] + 0x00000015u;
|
|
/* 028FA94C */ rbrew_write8(cpu->mem, _t0, (uint8_t)cpu->r[5]);
|
|
/* 028FA950 */ cpu->r[0] = 0x00000000u;
|
|
/* 028FA954 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028FA954 */ rbrew_write32(cpu->mem, _t1, cpu->r[4]);
|
|
/* 028FA958 */ _t2 = cpu->r[3] + 0x00000016u;
|
|
/* 028FA958 */ rbrew_write8(cpu->mem, _t2, (uint8_t)cpu->r[0]);
|
|
/* 028FA95C */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028FA95C */ rbrew_write32(cpu->mem, _t3, cpu->r[4]);
|
|
/* 028FA960 */ return;
|
|
}
|
|
|
|
// fn_028FA964 @ 0x28fa964
|
|
void Gambit_fn_028FA964(CPUState* 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_028FA964: ; // 0x28fa964
|
|
/* 028FA964 */ cpu->r[0] = cpu->lr;
|
|
/* 028FA968 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FA968 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA968 */ cpu->r[1] = _t0;
|
|
/* 028FA96C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA96C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FA970 */ cpu->r[31] = cpu->r[5];
|
|
/* 028FA974 */ cpu->r[11] = cpu->r[4];
|
|
/* 028FA978 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA978 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028FA97C */ cpu->r[30] = cpu->r[3];
|
|
/* 028FA980 */ cpu->r[4] = cpu->r[31];
|
|
/* 028FA984 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA984 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028FA988 */ Gambit_fn_028FA928(cpu);
|
|
/* 028FA98C */ cpu->r[5] = 0x00000000u;
|
|
/* 028FA990 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FA994 */ _t4 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028FA994 */ rbrew_write32(cpu->mem, _t4, cpu->r[3]);
|
|
/* 028FA998 */ cpu->r[9] = cpu->r[5];
|
|
/* 028FA99C */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028FA99C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FA99C */ if (_t6) goto L_028FA9A0; else goto L_028FA9E0;
|
|
L_028FA9A0: ; // 0x28fa9a0
|
|
/* 028FA9A0 */ cpu->ctr = cpu->r[31];
|
|
/* 028FA9A4 */ _t7 = cpu->r[30] + 0x00000010u;
|
|
/* 028FA9A4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028FA9A8 */ cpu->r[12] = cpu->r[31] + 0xFFFFFFFFu;
|
|
L_028FA9AC: ; // 0x28fa9ac
|
|
/* 028FA9AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[12]);
|
|
/* 028FA9B0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA9B0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028FA9B0 */ if (_t9) goto L_028FA9B4; else goto L_028FA9CC;
|
|
L_028FA9B4: ; // 0x28fa9b4
|
|
/* 028FA9B4 */ cpu->r[0] = cpu->r[7] + 0x0000001Fu;
|
|
/* 028FA9B8 */ cpu->r[10] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000000u, 0x0000001Au);
|
|
/* 028FA9BC */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 028FA9C0 */ cpu->r[5] = cpu->r[5] + cpu->r[10];
|
|
/* 028FA9C4 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028FA9C4 */ _t10 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028FA9C4 */ _t11 = _t10 >> (0x00000002u & 31u);
|
|
/* 028FA9C4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028FA9C4 */ if (_t12) goto L_028FA9AC; else goto L_028FA9C8;
|
|
L_028FA9C8: ; // 0x28fa9c8
|
|
/* 028FA9C8 */ goto L_028FA9E0;
|
|
L_028FA9CC: ; // 0x28fa9cc
|
|
/* 028FA9CC */ cpu->r[0] = cpu->r[7] + 0x000000FFu;
|
|
/* 028FA9D0 */ cpu->r[10] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000000u, 0x00000017u);
|
|
/* 028FA9D4 */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 028FA9D8 */ cpu->r[5] = cpu->r[5] + cpu->r[10];
|
|
/* 028FA9DC */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028FA9DC */ _t13 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028FA9DC */ _t14 = _t13 >> (0x00000002u & 31u);
|
|
/* 028FA9DC */ _t15 = _t14 & 0x00000001u;
|
|
/* 028FA9DC */ if (_t15) goto L_028FA9AC; else goto L_028FA9E0;
|
|
L_028FA9E0: ; // 0x28fa9e0
|
|
/* 028FA9E0 */ cpu->r[3] = cpu->r[5];
|
|
/* 028FA9E4 */ cpu->r[5] = 0x00000100u;
|
|
/* 028FA9E8 */ cpu->r[4] = cpu->r[11];
|
|
/* 028FA9EC */ Gambit_fn_02801ADC(cpu);
|
|
/* 028FA9F0 */ cpu->r[4] = cpu->r[3];
|
|
/* 028FA9F4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028FA9F8 */ cpu->r[5] = cpu->r[31];
|
|
/* 028FA9FC */ Gambit_fn_028FA94C(cpu);
|
|
/* 028FAA00 */ _t16 = cpu->r[30] + 0x00000014u;
|
|
/* 028FAA00 */ cpu->r[6] = rbrew_read8(cpu->mem, _t16);
|
|
/* 028FAA04 */ cpu->r[6] = cpu->r[6] | 0x00000002u;
|
|
/* 028FAA08 */ _t17 = cpu->r[30] + 0x00000014u;
|
|
/* 028FAA08 */ rbrew_write8(cpu->mem, _t17, (uint8_t)cpu->r[6]);
|
|
/* 028FAA0C */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAA0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028FAA10 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028FAA10 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028FAA14 */ cpu->lr = cpu->r[0];
|
|
/* 028FAA18 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAA18 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028FAA1C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FAA20 */ return;
|
|
}
|
|
|
|
// fn_028FA968 @ 0x28fa968
|
|
void Gambit_fn_028FA968(CPUState* 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_028FA968: ; // 0x28fa968
|
|
/* 028FA968 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FA968 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FA968 */ cpu->r[1] = _t0;
|
|
/* 028FA96C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FA96C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FA970 */ cpu->r[31] = cpu->r[5];
|
|
/* 028FA974 */ cpu->r[11] = cpu->r[4];
|
|
/* 028FA978 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028FA978 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028FA97C */ cpu->r[30] = cpu->r[3];
|
|
/* 028FA980 */ cpu->r[4] = cpu->r[31];
|
|
/* 028FA984 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FA984 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028FA988 */ Gambit_fn_028FA928(cpu);
|
|
/* 028FA98C */ cpu->r[5] = 0x00000000u;
|
|
/* 028FA990 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FA994 */ _t4 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028FA994 */ rbrew_write32(cpu->mem, _t4, cpu->r[3]);
|
|
/* 028FA998 */ cpu->r[9] = cpu->r[5];
|
|
/* 028FA99C */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028FA99C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FA99C */ if (_t6) goto L_028FA9A0; else goto L_028FA9E0;
|
|
L_028FA9A0: ; // 0x28fa9a0
|
|
/* 028FA9A0 */ cpu->ctr = cpu->r[31];
|
|
/* 028FA9A4 */ _t7 = cpu->r[30] + 0x00000010u;
|
|
/* 028FA9A4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028FA9A8 */ cpu->r[12] = cpu->r[31] + 0xFFFFFFFFu;
|
|
L_028FA9AC: ; // 0x28fa9ac
|
|
/* 028FA9AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[12]);
|
|
/* 028FA9B0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FA9B0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028FA9B0 */ if (_t9) goto L_028FA9B4; else goto L_028FA9CC;
|
|
L_028FA9B4: ; // 0x28fa9b4
|
|
/* 028FA9B4 */ cpu->r[0] = cpu->r[7] + 0x0000001Fu;
|
|
/* 028FA9B8 */ cpu->r[10] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000000u, 0x0000001Au);
|
|
/* 028FA9BC */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 028FA9C0 */ cpu->r[5] = cpu->r[5] + cpu->r[10];
|
|
/* 028FA9C4 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028FA9C4 */ _t10 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028FA9C4 */ _t11 = _t10 >> (0x00000002u & 31u);
|
|
/* 028FA9C4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028FA9C4 */ if (_t12) goto L_028FA9AC; else goto L_028FA9C8;
|
|
L_028FA9C8: ; // 0x28fa9c8
|
|
/* 028FA9C8 */ goto L_028FA9E0;
|
|
L_028FA9CC: ; // 0x28fa9cc
|
|
/* 028FA9CC */ cpu->r[0] = cpu->r[7] + 0x000000FFu;
|
|
/* 028FA9D0 */ cpu->r[10] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000000u, 0x00000017u);
|
|
/* 028FA9D4 */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 028FA9D8 */ cpu->r[5] = cpu->r[5] + cpu->r[10];
|
|
/* 028FA9DC */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028FA9DC */ _t13 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028FA9DC */ _t14 = _t13 >> (0x00000002u & 31u);
|
|
/* 028FA9DC */ _t15 = _t14 & 0x00000001u;
|
|
/* 028FA9DC */ if (_t15) goto L_028FA9AC; else goto L_028FA9E0;
|
|
L_028FA9E0: ; // 0x28fa9e0
|
|
/* 028FA9E0 */ cpu->r[3] = cpu->r[5];
|
|
/* 028FA9E4 */ cpu->r[5] = 0x00000100u;
|
|
/* 028FA9E8 */ cpu->r[4] = cpu->r[11];
|
|
/* 028FA9EC */ Gambit_fn_02801ADC(cpu);
|
|
/* 028FA9F0 */ cpu->r[4] = cpu->r[3];
|
|
/* 028FA9F4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028FA9F8 */ cpu->r[5] = cpu->r[31];
|
|
/* 028FA9FC */ Gambit_fn_028FA94C(cpu);
|
|
/* 028FAA00 */ _t16 = cpu->r[30] + 0x00000014u;
|
|
/* 028FAA00 */ cpu->r[6] = rbrew_read8(cpu->mem, _t16);
|
|
/* 028FAA04 */ cpu->r[6] = cpu->r[6] | 0x00000002u;
|
|
/* 028FAA08 */ _t17 = cpu->r[30] + 0x00000014u;
|
|
/* 028FAA08 */ rbrew_write8(cpu->mem, _t17, (uint8_t)cpu->r[6]);
|
|
/* 028FAA0C */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAA0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028FAA10 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028FAA10 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028FAA14 */ cpu->lr = cpu->r[0];
|
|
/* 028FAA18 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAA18 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028FAA1C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FAA20 */ return;
|
|
}
|
|
|
|
// fn_028FAA24 @ 0x28faa24
|
|
void Gambit_fn_028FAA24(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028FAA24: ; // 0x28faa24
|
|
/* 028FAA24 */ cpu->r[0] = cpu->lr;
|
|
/* 028FAA28 */ cpu->r[11] = cpu->r[4];
|
|
/* 028FAA2C */ cpu->r[4] = cpu->r[5];
|
|
/* 028FAA30 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028FAA30 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028FAA34 */ cpu->r[10] = cpu->r[3];
|
|
/* 028FAA38 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028FAA38 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028FAA38 */ cpu->r[1] = _t1;
|
|
/* 028FAA3C */ Gambit_fn_028FA928(cpu);
|
|
/* 028FAA40 */ _t2 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028FAA40 */ rbrew_write32(cpu->mem, _t2, cpu->r[3]);
|
|
/* 028FAA44 */ cpu->r[3] = cpu->r[10];
|
|
/* 028FAA48 */ cpu->r[4] = cpu->r[11];
|
|
/* 028FAA4C */ Gambit_fn_028FA94C(cpu);
|
|
/* 028FAA50 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAA50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028FAA54 */ cpu->lr = cpu->r[0];
|
|
/* 028FAA58 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028FAA5C */ return;
|
|
}
|
|
|
|
// fn_028FAA38 @ 0x28faa38
|
|
void Gambit_fn_028FAA38(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028FAA38: ; // 0x28faa38
|
|
/* 028FAA38 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028FAA38 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FAA38 */ cpu->r[1] = _t0;
|
|
/* 028FAA3C */ Gambit_fn_028FA928(cpu);
|
|
/* 028FAA40 */ _t1 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028FAA40 */ rbrew_write32(cpu->mem, _t1, cpu->r[3]);
|
|
/* 028FAA44 */ cpu->r[3] = cpu->r[10];
|
|
/* 028FAA48 */ cpu->r[4] = cpu->r[11];
|
|
/* 028FAA4C */ Gambit_fn_028FA94C(cpu);
|
|
/* 028FAA50 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAA50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028FAA54 */ cpu->lr = cpu->r[0];
|
|
/* 028FAA58 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028FAA5C */ return;
|
|
}
|
|
|
|
// fn_028FAA60 @ 0x28faa60
|
|
void Gambit_fn_028FAA60(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028FA94C: ; // 0x28fa94c
|
|
/* 028FA94C */ _t0 = cpu->r[3] + 0x00000015u;
|
|
/* 028FA94C */ rbrew_write8(cpu->mem, _t0, (uint8_t)cpu->r[5]);
|
|
/* 028FA950 */ cpu->r[0] = 0x00000000u;
|
|
/* 028FA954 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028FA954 */ rbrew_write32(cpu->mem, _t1, cpu->r[4]);
|
|
/* 028FA958 */ _t2 = cpu->r[3] + 0x00000016u;
|
|
/* 028FA958 */ rbrew_write8(cpu->mem, _t2, (uint8_t)cpu->r[0]);
|
|
/* 028FA95C */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028FA95C */ rbrew_write32(cpu->mem, _t3, cpu->r[4]);
|
|
/* 028FA960 */ return;
|
|
L_028FAA60: ; // 0x28faa60
|
|
/* 028FAA60 */ _t4 = cpu->r[3] + 0x00000010u;
|
|
/* 028FAA60 */ rbrew_write32(cpu->mem, _t4, cpu->r[5]);
|
|
/* 028FAA64 */ _t5 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028FAA64 */ rbrew_write32(cpu->mem, _t5, cpu->r[5]);
|
|
/* 028FAA68 */ cpu->r[5] = 0x00000001u;
|
|
/* 028FAA6C */ goto L_028FA94C;
|
|
}
|
|
|
|
// fn_028FAA70 @ 0x28faa70
|
|
void Gambit_fn_028FAA70(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _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_028FAA70: ; // 0x28faa70
|
|
/* 028FAA70 */ cpu->r[0] = cpu->lr;
|
|
/* 028FAA74 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FAA74 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FAA74 */ cpu->r[1] = _t0;
|
|
/* 028FAA78 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAA78 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FAA7C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAA7C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028FAA80 */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028FAA80 */ cpu->r[11] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028FAA84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0xFFFFFFFFu);
|
|
/* 028FAA88 */ _t4 = cpu->r[11] + 0x00000000u;
|
|
/* 028FAA88 */ cpu->r[11] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028FAA8C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAA8C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FAA8C */ if (_t6) goto L_028FAA90; else goto L_028FAAF4;
|
|
L_028FAA90: ; // 0x28faa90
|
|
/* 028FAA90 */ _t7 = cpu->r[4] + 0x00000000u;
|
|
/* 028FAA90 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028FAA94 */ cpu->r[0] = rbrew_rlwinm(cpu->r[6], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028FAA98 */ _t8 = cpu->r[3] + 0x00000004u;
|
|
/* 028FAA98 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028FAA9C */ cpu->r[12] = cpu->r[11] + cpu->r[0];
|
|
/* 028FAAA0 */ _t9 = cpu->r[10] + 0x00000000u;
|
|
/* 028FAAA0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028FAAA4 */ cpu->r[6] = rbrew_rlwinm(cpu->r[7], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028FAAA8 */ _t10 = cpu->r[12] + 0x00000001u;
|
|
/* 028FAAA8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t10);
|
|
/* 028FAAAC */ cpu->r[5] = rbrew_rlwinm(cpu->r[5], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028FAAB0 */ cpu->r[7] = cpu->r[8] + cpu->r[6];
|
|
/* 028FAAB4 */ _t11 = cpu->r[12] + 0x00000002u;
|
|
/* 028FAAB4 */ cpu->r[6] = rbrew_read16(cpu->mem, _t11);
|
|
/* 028FAAB8 */ cpu->r[9] = cpu->r[11] + cpu->r[5];
|
|
/* 028FAABC */ _t12 = cpu->r[9] + 0x00000004u;
|
|
/* 028FAABC */ cpu->r[10] = rbrew_read16(cpu->mem, _t12);
|
|
/* 028FAAC0 */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)cpu->r[0]);
|
|
/* 028FAAC4 */ _t13 = cpu->r[12] + 0x00000004u;
|
|
/* 028FAAC4 */ cpu->r[9] = rbrew_read16(cpu->mem, _t13);
|
|
/* 028FAAC8 */ cpu->r[6] = 0x00000000u;
|
|
/* 028FAACC */ _t14 = cpu->r[7] + 0x00000004u;
|
|
/* 028FAACC */ cpu->r[0] = rbrew_read16(cpu->mem, _t14);
|
|
/* 028FAAD0 */ cpu->r[8] = cpu->r[31] + cpu->r[9];
|
|
/* 028FAAD4 */ cpu->r[12] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FAAD8 */ _t15 = cpu->r[4] + 0x00000004u;
|
|
/* 028FAAD8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028FAADC */ cpu->r[12] = cpu->r[8] + cpu->r[12];
|
|
/* 028FAAE0 */ cpu->r[4] = cpu->r[31] + cpu->r[10];
|
|
/* 028FAAE4 */ cpu->r[3] = cpu->r[9] + cpu->r[0];
|
|
/* 028FAAE8 */ cpu->r[5] = cpu->r[12] - cpu->r[4];
|
|
/* 028FAAEC */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028FAAF0 */ goto L_028FAB60;
|
|
L_028FAAF4: ; // 0x28faaf4
|
|
/* 028FAAF4 */ _t16 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028FAAF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028FAAF8 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)cpu->r[9]);
|
|
/* 028FAAFC */ _t17 = cpu->r[3] + 0x00000008u;
|
|
/* 028FAAFC */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028FAB00 */ cpu->r[0] = rbrew_rlwinm(cpu->r[6], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028FAB04 */ cpu->r[31] = cpu->r[10] + cpu->r[8];
|
|
/* 028FAB08 */ _t18 = cpu->r[4] + 0x00000000u;
|
|
/* 028FAB08 */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028FAB0C */ cpu->r[12] = cpu->r[11] + cpu->r[0];
|
|
/* 028FAB10 */ cpu->r[6] = rbrew_rlwinm(cpu->r[7], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028FAB14 */ cpu->r[5] = rbrew_rlwinm(cpu->r[5], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028FAB18 */ _t19 = cpu->r[10] + 0x00000000u;
|
|
/* 028FAB18 */ cpu->r[8] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028FAB1C */ cpu->r[9] = cpu->r[11] + cpu->r[5];
|
|
/* 028FAB20 */ _t20 = cpu->r[12] + 0x00000001u;
|
|
/* 028FAB20 */ cpu->r[0] = rbrew_read8(cpu->mem, _t20);
|
|
/* 028FAB24 */ cpu->r[7] = cpu->r[8] + cpu->r[6];
|
|
/* 028FAB28 */ _t21 = cpu->r[12] + 0x00000002u;
|
|
/* 028FAB28 */ cpu->r[6] = rbrew_read16(cpu->mem, _t21);
|
|
/* 028FAB2C */ _t22 = cpu->r[9] + 0x00000004u;
|
|
/* 028FAB2C */ cpu->r[10] = rbrew_read16(cpu->mem, _t22);
|
|
/* 028FAB30 */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)cpu->r[0]);
|
|
/* 028FAB34 */ _t23 = cpu->r[12] + 0x00000004u;
|
|
/* 028FAB34 */ cpu->r[9] = rbrew_read16(cpu->mem, _t23);
|
|
/* 028FAB38 */ cpu->r[6] = 0x00000000u;
|
|
/* 028FAB3C */ _t24 = cpu->r[7] + 0x00000004u;
|
|
/* 028FAB3C */ cpu->r[0] = rbrew_read16(cpu->mem, _t24);
|
|
/* 028FAB40 */ cpu->r[8] = cpu->r[31] + cpu->r[9];
|
|
/* 028FAB44 */ cpu->r[12] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FAB48 */ _t25 = cpu->r[4] + 0x00000004u;
|
|
/* 028FAB48 */ cpu->r[9] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028FAB4C */ cpu->r[12] = cpu->r[8] + cpu->r[12];
|
|
/* 028FAB50 */ cpu->r[4] = cpu->r[31] + cpu->r[10];
|
|
/* 028FAB54 */ cpu->r[3] = cpu->r[9] + cpu->r[0];
|
|
/* 028FAB58 */ cpu->r[5] = cpu->r[12] - cpu->r[4];
|
|
/* 028FAB5C */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
L_028FAB60: ; // 0x28fab60
|
|
/* 028FAB60 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAB60 */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028FAB64 */ _t27 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAB64 */ cpu->r[31] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028FAB68 */ cpu->lr = cpu->r[0];
|
|
/* 028FAB6C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FAB70 */ return;
|
|
}
|
|
|
|
// fn_028FAA74 @ 0x28faa74
|
|
void Gambit_fn_028FAA74(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _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_028FAA74: ; // 0x28faa74
|
|
/* 028FAA74 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FAA74 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FAA74 */ cpu->r[1] = _t0;
|
|
/* 028FAA78 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAA78 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FAA7C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAA7C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028FAA80 */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028FAA80 */ cpu->r[11] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028FAA84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0xFFFFFFFFu);
|
|
/* 028FAA88 */ _t4 = cpu->r[11] + 0x00000000u;
|
|
/* 028FAA88 */ cpu->r[11] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028FAA8C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAA8C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FAA8C */ if (_t6) goto L_028FAA90; else goto L_028FAAF4;
|
|
L_028FAA90: ; // 0x28faa90
|
|
/* 028FAA90 */ _t7 = cpu->r[4] + 0x00000000u;
|
|
/* 028FAA90 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028FAA94 */ cpu->r[0] = rbrew_rlwinm(cpu->r[6], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028FAA98 */ _t8 = cpu->r[3] + 0x00000004u;
|
|
/* 028FAA98 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028FAA9C */ cpu->r[12] = cpu->r[11] + cpu->r[0];
|
|
/* 028FAAA0 */ _t9 = cpu->r[10] + 0x00000000u;
|
|
/* 028FAAA0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028FAAA4 */ cpu->r[6] = rbrew_rlwinm(cpu->r[7], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028FAAA8 */ _t10 = cpu->r[12] + 0x00000001u;
|
|
/* 028FAAA8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t10);
|
|
/* 028FAAAC */ cpu->r[5] = rbrew_rlwinm(cpu->r[5], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028FAAB0 */ cpu->r[7] = cpu->r[8] + cpu->r[6];
|
|
/* 028FAAB4 */ _t11 = cpu->r[12] + 0x00000002u;
|
|
/* 028FAAB4 */ cpu->r[6] = rbrew_read16(cpu->mem, _t11);
|
|
/* 028FAAB8 */ cpu->r[9] = cpu->r[11] + cpu->r[5];
|
|
/* 028FAABC */ _t12 = cpu->r[9] + 0x00000004u;
|
|
/* 028FAABC */ cpu->r[10] = rbrew_read16(cpu->mem, _t12);
|
|
/* 028FAAC0 */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)cpu->r[0]);
|
|
/* 028FAAC4 */ _t13 = cpu->r[12] + 0x00000004u;
|
|
/* 028FAAC4 */ cpu->r[9] = rbrew_read16(cpu->mem, _t13);
|
|
/* 028FAAC8 */ cpu->r[6] = 0x00000000u;
|
|
/* 028FAACC */ _t14 = cpu->r[7] + 0x00000004u;
|
|
/* 028FAACC */ cpu->r[0] = rbrew_read16(cpu->mem, _t14);
|
|
/* 028FAAD0 */ cpu->r[8] = cpu->r[31] + cpu->r[9];
|
|
/* 028FAAD4 */ cpu->r[12] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FAAD8 */ _t15 = cpu->r[4] + 0x00000004u;
|
|
/* 028FAAD8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028FAADC */ cpu->r[12] = cpu->r[8] + cpu->r[12];
|
|
/* 028FAAE0 */ cpu->r[4] = cpu->r[31] + cpu->r[10];
|
|
/* 028FAAE4 */ cpu->r[3] = cpu->r[9] + cpu->r[0];
|
|
/* 028FAAE8 */ cpu->r[5] = cpu->r[12] - cpu->r[4];
|
|
/* 028FAAEC */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028FAAF0 */ goto L_028FAB60;
|
|
L_028FAAF4: ; // 0x28faaf4
|
|
/* 028FAAF4 */ _t16 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028FAAF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028FAAF8 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)cpu->r[9]);
|
|
/* 028FAAFC */ _t17 = cpu->r[3] + 0x00000008u;
|
|
/* 028FAAFC */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028FAB00 */ cpu->r[0] = rbrew_rlwinm(cpu->r[6], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028FAB04 */ cpu->r[31] = cpu->r[10] + cpu->r[8];
|
|
/* 028FAB08 */ _t18 = cpu->r[4] + 0x00000000u;
|
|
/* 028FAB08 */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028FAB0C */ cpu->r[12] = cpu->r[11] + cpu->r[0];
|
|
/* 028FAB10 */ cpu->r[6] = rbrew_rlwinm(cpu->r[7], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028FAB14 */ cpu->r[5] = rbrew_rlwinm(cpu->r[5], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028FAB18 */ _t19 = cpu->r[10] + 0x00000000u;
|
|
/* 028FAB18 */ cpu->r[8] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028FAB1C */ cpu->r[9] = cpu->r[11] + cpu->r[5];
|
|
/* 028FAB20 */ _t20 = cpu->r[12] + 0x00000001u;
|
|
/* 028FAB20 */ cpu->r[0] = rbrew_read8(cpu->mem, _t20);
|
|
/* 028FAB24 */ cpu->r[7] = cpu->r[8] + cpu->r[6];
|
|
/* 028FAB28 */ _t21 = cpu->r[12] + 0x00000002u;
|
|
/* 028FAB28 */ cpu->r[6] = rbrew_read16(cpu->mem, _t21);
|
|
/* 028FAB2C */ _t22 = cpu->r[9] + 0x00000004u;
|
|
/* 028FAB2C */ cpu->r[10] = rbrew_read16(cpu->mem, _t22);
|
|
/* 028FAB30 */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)cpu->r[0]);
|
|
/* 028FAB34 */ _t23 = cpu->r[12] + 0x00000004u;
|
|
/* 028FAB34 */ cpu->r[9] = rbrew_read16(cpu->mem, _t23);
|
|
/* 028FAB38 */ cpu->r[6] = 0x00000000u;
|
|
/* 028FAB3C */ _t24 = cpu->r[7] + 0x00000004u;
|
|
/* 028FAB3C */ cpu->r[0] = rbrew_read16(cpu->mem, _t24);
|
|
/* 028FAB40 */ cpu->r[8] = cpu->r[31] + cpu->r[9];
|
|
/* 028FAB44 */ cpu->r[12] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FAB48 */ _t25 = cpu->r[4] + 0x00000004u;
|
|
/* 028FAB48 */ cpu->r[9] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028FAB4C */ cpu->r[12] = cpu->r[8] + cpu->r[12];
|
|
/* 028FAB50 */ cpu->r[4] = cpu->r[31] + cpu->r[10];
|
|
/* 028FAB54 */ cpu->r[3] = cpu->r[9] + cpu->r[0];
|
|
/* 028FAB58 */ cpu->r[5] = cpu->r[12] - cpu->r[4];
|
|
/* 028FAB5C */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
L_028FAB60: ; // 0x28fab60
|
|
/* 028FAB60 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAB60 */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028FAB64 */ _t27 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAB64 */ cpu->r[31] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028FAB68 */ cpu->lr = cpu->r[0];
|
|
/* 028FAB6C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FAB70 */ return;
|
|
}
|
|
|
|
// fn_028FAB74 @ 0x28fab74
|
|
void Gambit_fn_028FAB74(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028FAB74: ; // 0x28fab74
|
|
/* 028FAB74 */ _t0 = cpu->r[3] + 0x00000010u;
|
|
/* 028FAB74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028FAB78 */ _t1 = cpu->r[3] + 0x00000004u;
|
|
/* 028FAB78 */ cpu->r[11] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028FAB7C */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 028FAB7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028FAB80 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAB80 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028FAB80 */ if (_t3) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028FAB80 */ goto L_028FAB84;
|
|
L_028FAB84: ; // 0x28fab84
|
|
/* 028FAB84 */ cpu->ctr = cpu->r[12];
|
|
/* 028FAB88 */ cpu->r[11] = cpu->r[11] + 0xFFFFFFFCu;
|
|
L_028FAB8C: ; // 0x28fab8c
|
|
/* 028FAB8C */ _t4 = cpu->r[11] + 0x00000004u;
|
|
/* 028FAB8C */ rbrew_write32(cpu->mem, _t4, cpu->r[4]);
|
|
/* 028FAB8C */ cpu->r[11] = _t4;
|
|
/* 028FAB90 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028FAB90 */ _t5 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028FAB90 */ _t6 = _t5 >> (0x00000002u & 31u);
|
|
/* 028FAB90 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028FAB90 */ if (_t7) goto L_028FAB8C; else goto L_028FAB94;
|
|
L_028FAB94: ; // 0x28fab94
|
|
/* 028FAB94 */ return;
|
|
}
|
|
|
|
// fn_028FAB98 @ 0x28fab98
|
|
void Gambit_fn_028FAB98(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028FAB98: ; // 0x28fab98
|
|
/* 028FAB98 */ _t0 = cpu->r[3] + 0x00000004u;
|
|
/* 028FAB98 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028FAB9C */ _t1 = cpu->r[3] + 0x00000010u;
|
|
/* 028FAB9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028FABA0 */ cpu->r[0] = cpu->r[12] + cpu->r[0];
|
|
/* 028FABA4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028FABA8 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FABA8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028FABA8 */ _t4 = _t3 ^ 0x00000001u;
|
|
/* 028FABA8 */ if (_t4) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028FABA8 */ goto L_028FABAC;
|
|
L_028FABAC: ; // 0x28fabac
|
|
/* 028FABAC */ /* nop */
|
|
/* 028FABB0 */ cpu->r[12] = cpu->r[12] + 0x00000020u;
|
|
/* 028FABB4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028FABB8 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FABB8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FABB8 */ if (_t6) goto L_028FABAC; else goto L_028FABBC;
|
|
L_028FABBC: ; // 0x28fabbc
|
|
/* 028FABBC */ return;
|
|
}
|
|
|
|
// fn_028FABC0 @ 0x28fabc0
|
|
void Gambit_fn_028FABC0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028FABC0: ; // 0x28fabc0
|
|
/* 028FABC0 */ cpu->r[0] = cpu->lr;
|
|
/* 028FABC4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028FABC4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FABC4 */ cpu->r[1] = _t0;
|
|
/* 028FABC8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FABC8 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028FABCC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028FABCC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028FABD0 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028FABD0 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028FABD4 */ cpu->r[31] = cpu->r[5];
|
|
/* 028FABD8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FABD8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028FABDC */ cpu->r[29] = cpu->r[3];
|
|
/* 028FABE0 */ cpu->r[30] = cpu->r[4];
|
|
/* 028FABE4 */ _t5 = cpu->r[29] + 0x00000010u;
|
|
/* 028FABE4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028FABE8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028FABEC */ rbrew_dispatch(cpu, 0x02d09320u);
|
|
/* 028FABF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FABF4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FABF4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028FABF4 */ if (_t7) goto L_028FAC08; else goto L_028FABF8;
|
|
L_028FABF8: ; // 0x28fabf8
|
|
/* 028FABF8 */ _t8 = cpu->r[29] + 0x00000010u;
|
|
/* 028FABF8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028FABFC */ cpu->r[3] = 0x00000004u;
|
|
/* 028FAC00 */ cpu->r[4] = cpu->r[30];
|
|
/* 028FAC04 */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028FAC08: ; // 0x28fac08
|
|
/* 028FAC08 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAC08 */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028FAC0C */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FAC0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028FAC10 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028FAC10 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028FAC14 */ cpu->lr = cpu->r[0];
|
|
/* 028FAC18 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAC18 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028FAC1C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028FAC20 */ return;
|
|
}
|
|
|
|
// fn_028FABC4 @ 0x28fabc4
|
|
void Gambit_fn_028FABC4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028FABC4: ; // 0x28fabc4
|
|
/* 028FABC4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028FABC4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FABC4 */ cpu->r[1] = _t0;
|
|
/* 028FABC8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FABC8 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028FABCC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028FABCC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028FABD0 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028FABD0 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028FABD4 */ cpu->r[31] = cpu->r[5];
|
|
/* 028FABD8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FABD8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028FABDC */ cpu->r[29] = cpu->r[3];
|
|
/* 028FABE0 */ cpu->r[30] = cpu->r[4];
|
|
/* 028FABE4 */ _t5 = cpu->r[29] + 0x00000010u;
|
|
/* 028FABE4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028FABE8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028FABEC */ rbrew_dispatch(cpu, 0x02d09320u);
|
|
/* 028FABF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FABF4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FABF4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028FABF4 */ if (_t7) goto L_028FAC08; else goto L_028FABF8;
|
|
L_028FABF8: ; // 0x28fabf8
|
|
/* 028FABF8 */ _t8 = cpu->r[29] + 0x00000010u;
|
|
/* 028FABF8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028FABFC */ cpu->r[3] = 0x00000004u;
|
|
/* 028FAC00 */ cpu->r[4] = cpu->r[30];
|
|
/* 028FAC04 */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028FAC08: ; // 0x28fac08
|
|
/* 028FAC08 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAC08 */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028FAC0C */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FAC0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028FAC10 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028FAC10 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028FAC14 */ cpu->lr = cpu->r[0];
|
|
/* 028FAC18 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAC18 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028FAC1C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028FAC20 */ return;
|
|
}
|
|
|
|
// fn_028FAC24 @ 0x28fac24
|
|
void Gambit_fn_028FAC24(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028FAC24: ; // 0x28fac24
|
|
/* 028FAC24 */ cpu->r[0] = cpu->lr;
|
|
/* 028FAC28 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028FAC28 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FAC28 */ cpu->r[1] = _t0;
|
|
/* 028FAC2C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAC2C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028FAC30 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAC30 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028FAC34 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028FAC34 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028FAC38 */ cpu->r[31] = cpu->r[5];
|
|
/* 028FAC3C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FAC3C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028FAC40 */ cpu->r[29] = cpu->r[3];
|
|
/* 028FAC44 */ cpu->r[30] = cpu->r[4];
|
|
/* 028FAC48 */ _t5 = cpu->r[29] + 0x00000010u;
|
|
/* 028FAC48 */ cpu->r[4] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028FAC4C */ cpu->r[3] = cpu->r[30];
|
|
/* 028FAC50 */ rbrew_dispatch(cpu, 0x02d09328u);
|
|
/* 028FAC54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FAC58 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAC58 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028FAC58 */ if (_t7) goto L_028FAC6C; else goto L_028FAC5C;
|
|
L_028FAC5C: ; // 0x28fac5c
|
|
/* 028FAC5C */ _t8 = cpu->r[29] + 0x00000010u;
|
|
/* 028FAC5C */ cpu->r[5] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028FAC60 */ cpu->r[3] = 0x00000004u;
|
|
/* 028FAC64 */ cpu->r[4] = cpu->r[30];
|
|
/* 028FAC68 */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028FAC6C: ; // 0x28fac6c
|
|
/* 028FAC6C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAC6C */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028FAC70 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FAC70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028FAC74 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028FAC74 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028FAC78 */ cpu->lr = cpu->r[0];
|
|
/* 028FAC7C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAC7C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028FAC80 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028FAC84 */ return;
|
|
}
|
|
|
|
// fn_028FAC28 @ 0x28fac28
|
|
void Gambit_fn_028FAC28(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028FAC28: ; // 0x28fac28
|
|
/* 028FAC28 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028FAC28 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FAC28 */ cpu->r[1] = _t0;
|
|
/* 028FAC2C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAC2C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028FAC30 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAC30 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028FAC34 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028FAC34 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028FAC38 */ cpu->r[31] = cpu->r[5];
|
|
/* 028FAC3C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FAC3C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028FAC40 */ cpu->r[29] = cpu->r[3];
|
|
/* 028FAC44 */ cpu->r[30] = cpu->r[4];
|
|
/* 028FAC48 */ _t5 = cpu->r[29] + 0x00000010u;
|
|
/* 028FAC48 */ cpu->r[4] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028FAC4C */ cpu->r[3] = cpu->r[30];
|
|
/* 028FAC50 */ rbrew_dispatch(cpu, 0x02d09328u);
|
|
/* 028FAC54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FAC58 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAC58 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028FAC58 */ if (_t7) goto L_028FAC6C; else goto L_028FAC5C;
|
|
L_028FAC5C: ; // 0x28fac5c
|
|
/* 028FAC5C */ _t8 = cpu->r[29] + 0x00000010u;
|
|
/* 028FAC5C */ cpu->r[5] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028FAC60 */ cpu->r[3] = 0x00000004u;
|
|
/* 028FAC64 */ cpu->r[4] = cpu->r[30];
|
|
/* 028FAC68 */ rbrew_dispatch(cpu, 0x02d05c98u);
|
|
L_028FAC6C: ; // 0x28fac6c
|
|
/* 028FAC6C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAC6C */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028FAC70 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FAC70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028FAC74 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028FAC74 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028FAC78 */ cpu->lr = cpu->r[0];
|
|
/* 028FAC7C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAC7C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028FAC80 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028FAC84 */ return;
|
|
}
|
|
|
|
// fn_028FAC88 @ 0x28fac88
|
|
void Gambit_fn_028FAC88(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028FAC88: ; // 0x28fac88
|
|
/* 028FAC88 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028FAC88 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028FAC8C */ _t1 = cpu->r[11] + 0x00000006u;
|
|
/* 028FAC8C */ cpu->r[10] = rbrew_read16(cpu->mem, _t1);
|
|
/* 028FAC90 */ _t2 = cpu->r[11] + 0x00000000u;
|
|
/* 028FAC90 */ cpu->r[11] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028FAC94 */ cpu->r[9] = rbrew_rlwinm(cpu->r[10], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028FAC98 */ cpu->r[5] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028FAC9C */ _t3 = cpu->r[11] + cpu->r[9];
|
|
/* 028FAC9C */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[4]);
|
|
/* 028FACA0 */ cpu->r[12] = cpu->r[11] + cpu->r[9];
|
|
/* 028FACA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000010u);
|
|
/* 028FACA8 */ _t4 = cpu->r[12] + 0x00000002u;
|
|
/* 028FACA8 */ rbrew_write16(cpu->mem, _t4, (uint16_t)cpu->r[5]);
|
|
/* 028FACAC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FACAC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FACAC */ if (_t6) goto L_028FACB0; else goto L_028FAD14;
|
|
L_028FACB0: ; // 0x28facb0
|
|
/* 028FACB0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[6], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 028FACB4 */ _t7 = cpu->r[12] + 0x00000001u;
|
|
/* 028FACB4 */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[0]);
|
|
/* 028FACB8 */ _t8 = cpu->r[3] + 0x00000010u;
|
|
/* 028FACB8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028FACBC */ cpu->r[8] = 0x0000000Fu;
|
|
/* 028FACC0 */ cpu->r[7] = cpu->r[6] + 0x0000000Fu;
|
|
/* 028FACC4 */ _t9 = ~cpu->r[8];
|
|
/* 028FACC4 */ cpu->r[11] = cpu->r[7] & _t9;
|
|
/* 028FACC8 */ _t10 = cpu->r[3] + 0x00000010u;
|
|
/* 028FACC8 */ rbrew_write32(cpu->mem, _t10, cpu->r[11]);
|
|
/* 028FACCC */ _t11 = cpu->r[12] + 0x00000002u;
|
|
/* 028FACCC */ cpu->r[0] = rbrew_read16(cpu->mem, _t11);
|
|
/* 028FACD0 */ _t12 = cpu->r[12] + 0x00000001u;
|
|
/* 028FACD0 */ cpu->r[6] = rbrew_read8(cpu->mem, _t12);
|
|
/* 028FACD4 */ _t13 = cpu->r[12] + 0x00000004u;
|
|
/* 028FACD4 */ rbrew_write16(cpu->mem, _t13, (uint16_t)cpu->r[11]);
|
|
/* 028FACD8 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)cpu->r[6]);
|
|
/* 028FACDC */ _t14 = cpu->r[3] + 0x00000010u;
|
|
/* 028FACDC */ cpu->r[7] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028FACE0 */ cpu->r[8] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FACE4 */ _t15 = cpu->r[3] + 0x00000000u;
|
|
/* 028FACE4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028FACE8 */ cpu->r[7] = cpu->r[7] + cpu->r[8];
|
|
/* 028FACEC */ _t16 = cpu->r[3] + 0x00000010u;
|
|
/* 028FACEC */ rbrew_write32(cpu->mem, _t16, cpu->r[7]);
|
|
/* 028FACF0 */ _t17 = cpu->r[11] + 0x00000006u;
|
|
/* 028FACF0 */ cpu->r[8] = rbrew_read16(cpu->mem, _t17);
|
|
/* 028FACF4 */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 028FACF8 */ _t18 = cpu->r[11] + 0x00000006u;
|
|
/* 028FACF8 */ rbrew_write16(cpu->mem, _t18, (uint16_t)cpu->r[8]);
|
|
/* 028FACFC */ _t19 = cpu->r[3] + 0x00000000u;
|
|
/* 028FACFC */ cpu->r[11] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028FAD00 */ _t20 = cpu->r[11] + 0x00000006u;
|
|
/* 028FAD00 */ cpu->r[10] = rbrew_read16(cpu->mem, _t20);
|
|
/* 028FAD04 */ _t21 = cpu->r[11] + 0x00000004u;
|
|
/* 028FAD04 */ cpu->r[0] = rbrew_read16(cpu->mem, _t21);
|
|
/* 028FAD08 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028FAD0C */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAD0C */ _t23 = _t22 & 0x00000001u;
|
|
/* 028FAD0C */ _t24 = _t23 ^ 0x00000001u;
|
|
/* 028FAD0C */ if (_t24) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028FAD0C */ goto L_028FAD10;
|
|
L_028FAD10: ; // 0x28fad10
|
|
/* 028FAD10 */ goto L_028FAE08;
|
|
L_028FAD14: ; // 0x28fad14
|
|
/* 028FAD14 */ _t25 = cpu->r[12] + 0x00000000u;
|
|
/* 028FAD14 */ cpu->r[0] = rbrew_read8(cpu->mem, _t25);
|
|
/* 028FAD18 */ cpu->r[6] = 0x10140000u;
|
|
/* 028FAD1C */ cpu->r[6] = cpu->r[6] + 0xFFFFD000u;
|
|
/* 028FAD20 */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FAD24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000001u);
|
|
/* 028FAD28 */ cpu->r[11] = cpu->r[6] + cpu->r[9];
|
|
/* 028FAD2C */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAD2C */ _t27 = _t26 & 0x00000001u;
|
|
/* 028FAD2C */ if (_t27) goto L_028FAD30; else goto L_028FADA0;
|
|
L_028FAD30: ; // 0x28fad30
|
|
/* 028FAD30 */ _t28 = cpu->r[6] + cpu->r[9];
|
|
/* 028FAD30 */ cpu->r[0] = rbrew_read8(cpu->mem, _t28);
|
|
/* 028FAD34 */ _t29 = cpu->r[11] + 0x00000001u;
|
|
/* 028FAD34 */ cpu->r[7] = rbrew_read8(cpu->mem, _t29);
|
|
/* 028FAD38 */ _t30 = cpu->r[12] + 0x00000001u;
|
|
/* 028FAD38 */ rbrew_write8(cpu->mem, _t30, (uint8_t)cpu->r[0]);
|
|
/* 028FAD3C */ _t31 = cpu->r[3] + 0x00000010u;
|
|
/* 028FAD3C */ cpu->r[6] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028FAD40 */ cpu->r[9] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FAD44 */ cpu->r[5] = cpu->r[6] + cpu->r[9];
|
|
/* 028FAD48 */ cpu->r[8] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 028FAD4C */ cpu->r[7] = cpu->r[5] + 0xFFFFFFFFu;
|
|
/* 028FAD50 */ _t32 = ~cpu->r[8];
|
|
/* 028FAD50 */ cpu->r[11] = cpu->r[7] & _t32;
|
|
/* 028FAD54 */ _t33 = cpu->r[3] + 0x00000010u;
|
|
/* 028FAD54 */ rbrew_write32(cpu->mem, _t33, cpu->r[11]);
|
|
/* 028FAD58 */ _t34 = cpu->r[12] + 0x00000002u;
|
|
/* 028FAD58 */ cpu->r[0] = rbrew_read16(cpu->mem, _t34);
|
|
/* 028FAD5C */ _t35 = cpu->r[12] + 0x00000001u;
|
|
/* 028FAD5C */ cpu->r[6] = rbrew_read8(cpu->mem, _t35);
|
|
/* 028FAD60 */ _t36 = cpu->r[12] + 0x00000004u;
|
|
/* 028FAD60 */ rbrew_write16(cpu->mem, _t36, (uint16_t)cpu->r[11]);
|
|
/* 028FAD64 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)cpu->r[6]);
|
|
/* 028FAD68 */ _t37 = cpu->r[3] + 0x00000010u;
|
|
/* 028FAD68 */ cpu->r[7] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028FAD6C */ cpu->r[8] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FAD70 */ _t38 = cpu->r[3] + 0x00000000u;
|
|
/* 028FAD70 */ cpu->r[11] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028FAD74 */ cpu->r[7] = cpu->r[7] + cpu->r[8];
|
|
/* 028FAD78 */ _t39 = cpu->r[3] + 0x00000010u;
|
|
/* 028FAD78 */ rbrew_write32(cpu->mem, _t39, cpu->r[7]);
|
|
/* 028FAD7C */ _t40 = cpu->r[11] + 0x00000006u;
|
|
/* 028FAD7C */ cpu->r[8] = rbrew_read16(cpu->mem, _t40);
|
|
/* 028FAD80 */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 028FAD84 */ _t41 = cpu->r[11] + 0x00000006u;
|
|
/* 028FAD84 */ rbrew_write16(cpu->mem, _t41, (uint16_t)cpu->r[8]);
|
|
/* 028FAD88 */ _t42 = cpu->r[3] + 0x00000000u;
|
|
/* 028FAD88 */ cpu->r[11] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028FAD8C */ _t43 = cpu->r[11] + 0x00000006u;
|
|
/* 028FAD8C */ cpu->r[10] = rbrew_read16(cpu->mem, _t43);
|
|
/* 028FAD90 */ _t44 = cpu->r[11] + 0x00000004u;
|
|
/* 028FAD90 */ cpu->r[0] = rbrew_read16(cpu->mem, _t44);
|
|
/* 028FAD94 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028FAD98 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAD98 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028FAD98 */ _t47 = _t46 ^ 0x00000001u;
|
|
/* 028FAD98 */ if (_t47) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028FAD98 */ goto L_028FAD9C;
|
|
L_028FAD9C: ; // 0x28fad9c
|
|
/* 028FAD9C */ goto L_028FAE08;
|
|
L_028FADA0: ; // 0x28fada0
|
|
/* 028FADA0 */ _t48 = cpu->r[11] + 0x00000002u;
|
|
/* 028FADA0 */ cpu->r[7] = rbrew_read8(cpu->mem, _t48);
|
|
/* 028FADA4 */ _t49 = cpu->r[12] + 0x00000001u;
|
|
/* 028FADA4 */ rbrew_write8(cpu->mem, _t49, (uint8_t)cpu->r[7]);
|
|
/* 028FADA8 */ _t50 = cpu->r[3] + 0x00000010u;
|
|
/* 028FADA8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028FADAC */ cpu->r[9] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FADB0 */ cpu->r[5] = cpu->r[6] + cpu->r[9];
|
|
/* 028FADB4 */ cpu->r[8] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 028FADB8 */ cpu->r[7] = cpu->r[5] + 0xFFFFFFFFu;
|
|
/* 028FADBC */ _t51 = ~cpu->r[8];
|
|
/* 028FADBC */ cpu->r[11] = cpu->r[7] & _t51;
|
|
/* 028FADC0 */ _t52 = cpu->r[3] + 0x00000010u;
|
|
/* 028FADC0 */ rbrew_write32(cpu->mem, _t52, cpu->r[11]);
|
|
/* 028FADC4 */ _t53 = cpu->r[12] + 0x00000002u;
|
|
/* 028FADC4 */ cpu->r[0] = rbrew_read16(cpu->mem, _t53);
|
|
/* 028FADC8 */ _t54 = cpu->r[12] + 0x00000001u;
|
|
/* 028FADC8 */ cpu->r[6] = rbrew_read8(cpu->mem, _t54);
|
|
/* 028FADCC */ _t55 = cpu->r[12] + 0x00000004u;
|
|
/* 028FADCC */ rbrew_write16(cpu->mem, _t55, (uint16_t)cpu->r[11]);
|
|
/* 028FADD0 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)cpu->r[6]);
|
|
/* 028FADD4 */ _t56 = cpu->r[3] + 0x00000010u;
|
|
/* 028FADD4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028FADD8 */ cpu->r[8] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FADDC */ _t57 = cpu->r[3] + 0x00000000u;
|
|
/* 028FADDC */ cpu->r[11] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028FADE0 */ cpu->r[7] = cpu->r[7] + cpu->r[8];
|
|
/* 028FADE4 */ _t58 = cpu->r[3] + 0x00000010u;
|
|
/* 028FADE4 */ rbrew_write32(cpu->mem, _t58, cpu->r[7]);
|
|
/* 028FADE8 */ _t59 = cpu->r[11] + 0x00000006u;
|
|
/* 028FADE8 */ cpu->r[8] = rbrew_read16(cpu->mem, _t59);
|
|
/* 028FADEC */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 028FADF0 */ _t60 = cpu->r[11] + 0x00000006u;
|
|
/* 028FADF0 */ rbrew_write16(cpu->mem, _t60, (uint16_t)cpu->r[8]);
|
|
/* 028FADF4 */ _t61 = cpu->r[3] + 0x00000000u;
|
|
/* 028FADF4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028FADF8 */ _t62 = cpu->r[11] + 0x00000006u;
|
|
/* 028FADF8 */ cpu->r[10] = rbrew_read16(cpu->mem, _t62);
|
|
/* 028FADFC */ _t63 = cpu->r[11] + 0x00000004u;
|
|
/* 028FADFC */ cpu->r[0] = rbrew_read16(cpu->mem, _t63);
|
|
/* 028FAE00 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028FAE04 */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAE04 */ _t65 = _t64 & 0x00000001u;
|
|
/* 028FAE04 */ _t66 = _t65 ^ 0x00000001u;
|
|
/* 028FAE04 */ if (_t66) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028FAE04 */ goto L_028FAE08;
|
|
L_028FAE08: ; // 0x28fae08
|
|
/* 028FAE08 */ _t67 = cpu->r[3] + 0x00000010u;
|
|
/* 028FAE08 */ cpu->r[7] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028FAE0C */ cpu->r[5] = cpu->r[7] + 0x0000001Fu;
|
|
/* 028FAE10 */ cpu->r[8] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x00000000u, 0x0000001Au);
|
|
/* 028FAE14 */ _t68 = cpu->r[3] + 0x00000010u;
|
|
/* 028FAE14 */ rbrew_write32(cpu->mem, _t68, cpu->r[8]);
|
|
/* 028FAE18 */ return;
|
|
}
|
|
|
|
// fn_028FAE1C @ 0x28fae1c
|
|
void Gambit_fn_028FAE1C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028FAE1C: ; // 0x28fae1c
|
|
/* 028FAE1C */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028FAE1C */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028FAE20 */ _t1 = cpu->r[12] + 0x00000000u;
|
|
/* 028FAE20 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028FAE24 */ cpu->r[11] = rbrew_rlwinm(cpu->r[5], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028FAE28 */ cpu->r[9] = cpu->r[12] + cpu->r[11];
|
|
/* 028FAE2C */ cpu->r[12] = 0x10140000u;
|
|
/* 028FAE30 */ _t2 = cpu->r[9] + 0x00000000u;
|
|
/* 028FAE30 */ cpu->r[11] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028FAE34 */ cpu->r[12] = cpu->r[12] + 0xFFFFD000u;
|
|
/* 028FAE38 */ cpu->r[11] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FAE3C */ cpu->r[10] = cpu->r[12] + cpu->r[11];
|
|
/* 028FAE40 */ _t3 = cpu->r[10] + 0x00000002u;
|
|
/* 028FAE40 */ cpu->r[3] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028FAE44 */ _t4 = cpu->r[9] + 0x00000004u;
|
|
/* 028FAE44 */ cpu->r[9] = rbrew_read16(cpu->mem, _t4);
|
|
/* 028FAE48 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)cpu->r[7]);
|
|
/* 028FAE4C */ cpu->r[9] = cpu->r[4] + cpu->r[9];
|
|
/* 028FAE50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028FAE54 */ cpu->r[10] = rbrew_rlwinm(cpu->r[10], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FAE58 */ _t5 = cpu->r[12] + cpu->r[11];
|
|
/* 028FAE58 */ cpu->r[12] = rbrew_read8(cpu->mem, _t5);
|
|
/* 028FAE5C */ cpu->r[5] = cpu->r[9] + cpu->r[10];
|
|
/* 028FAE60 */ _t6 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028FAE60 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028FAE60 */ _t8 = _t7 ^ 0x00000001u;
|
|
/* 028FAE60 */ if (_t8) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028FAE60 */ goto L_028FAE64;
|
|
L_028FAE64: ; // 0x28fae64
|
|
/* 028FAE64 */ cpu->r[11] = rbrew_rlwinm(cpu->r[3], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
L_028FAE68: ; // 0x28fae68
|
|
/* 028FAE68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028FAE6C */ _t9 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028FAE6C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028FAE6C */ if (_t10) goto L_028FAE70; else goto L_028FAE90;
|
|
L_028FAE70: ; // 0x28fae70
|
|
/* 028FAE70 */ cpu->ctr = cpu->r[12];
|
|
/* 028FAE74 */ cpu->r[6] = cpu->r[6] + 0xFFFFFFFCu;
|
|
/* 028FAE78 */ cpu->r[10] = cpu->r[5] + 0xFFFFFFFCu;
|
|
L_028FAE7C: ; // 0x28fae7c
|
|
/* 028FAE7C */ _t11 = cpu->r[6] + 0x00000004u;
|
|
/* 028FAE7C */ cpu->r[7] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028FAE7C */ cpu->r[6] = _t11;
|
|
/* 028FAE80 */ cpu->r[10] = cpu->r[10] + 0x00000004u;
|
|
/* 028FAE84 */ /* nop */
|
|
/* 028FAE88 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028FAE88 */ _t12 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028FAE88 */ _t13 = _t12 >> (0x00000002u & 31u);
|
|
/* 028FAE88 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028FAE88 */ if (_t14) goto L_028FAE7C; else goto L_028FAE8C;
|
|
L_028FAE8C: ; // 0x28fae8c
|
|
/* 028FAE8C */ cpu->r[6] = cpu->r[6] + 0x00000004u;
|
|
L_028FAE90: ; // 0x28fae90
|
|
/* 028FAE90 */ cpu->r[8] = cpu->r[8] + 0xFFFFFFFFu;
|
|
/* 028FAE90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028FAE94 */ cpu->r[5] = cpu->r[5] + cpu->r[11];
|
|
/* 028FAE98 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAE98 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028FAE98 */ if (_t16) goto L_028FAE9C; else goto L_028FAE68;
|
|
L_028FAE9C: ; // 0x28fae9c
|
|
/* 028FAE9C */ return;
|
|
}
|
|
|
|
// fn_028FAEA0 @ 0x28faea0
|
|
void Gambit_fn_028FAEA0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028FAEA0: ; // 0x28faea0
|
|
/* 028FAEA0 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028FAEA0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028FAEA4 */ cpu->r[10] = rbrew_rlwinm(cpu->r[5], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028FAEA8 */ _t1 = cpu->r[11] + 0x00000000u;
|
|
/* 028FAEA8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028FAEAC */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)cpu->r[7]);
|
|
/* 028FAEB0 */ cpu->r[7] = cpu->r[11] + cpu->r[10];
|
|
/* 028FAEB4 */ _t2 = cpu->r[7] + 0x00000004u;
|
|
/* 028FAEB4 */ cpu->r[5] = rbrew_read16(cpu->mem, _t2);
|
|
/* 028FAEB8 */ cpu->r[10] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FAEBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028FAEC0 */ cpu->r[11] = cpu->r[4] + cpu->r[5];
|
|
/* 028FAEC4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 028FAEC8 */ cpu->r[5] = cpu->r[11] + cpu->r[10];
|
|
/* 028FAECC */ _t3 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028FAECC */ _t4 = _t3 & 0x00000001u;
|
|
/* 028FAECC */ _t5 = _t4 ^ 0x00000001u;
|
|
/* 028FAECC */ if (_t5) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028FAECC */ goto L_028FAED0;
|
|
L_028FAED0: ; // 0x28faed0
|
|
/* 028FAED0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FAED4 */ _t6 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028FAED4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028FAED4 */ if (_t7) goto L_028FAED8; else goto L_028FAEF8;
|
|
L_028FAED8: ; // 0x28faed8
|
|
/* 028FAED8 */ cpu->ctr = cpu->r[0];
|
|
/* 028FAEDC */ cpu->r[6] = cpu->r[6] + 0xFFFFFFFCu;
|
|
/* 028FAEE0 */ cpu->r[12] = cpu->r[5] + 0xFFFFFFFCu;
|
|
L_028FAEE4: ; // 0x28faee4
|
|
/* 028FAEE4 */ _t8 = cpu->r[6] + 0x00000004u;
|
|
/* 028FAEE4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028FAEE4 */ cpu->r[6] = _t8;
|
|
/* 028FAEE8 */ cpu->r[12] = cpu->r[12] + 0x00000004u;
|
|
/* 028FAEEC */ /* nop */
|
|
/* 028FAEF0 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028FAEF0 */ _t9 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028FAEF0 */ _t10 = _t9 >> (0x00000002u & 31u);
|
|
/* 028FAEF0 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028FAEF0 */ if (_t11) goto L_028FAEE4; else goto L_028FAEF4;
|
|
L_028FAEF4: ; // 0x28faef4
|
|
/* 028FAEF4 */ cpu->r[6] = cpu->r[6] + 0x00000004u;
|
|
L_028FAEF8: ; // 0x28faef8
|
|
/* 028FAEF8 */ cpu->r[8] = cpu->r[8] + 0xFFFFFFFFu;
|
|
/* 028FAEF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028FAEFC */ cpu->r[5] = cpu->r[5] + cpu->r[9];
|
|
/* 028FAF00 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAF00 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028FAF00 */ if (_t13) goto L_028FAF04; else goto L_028FAED0;
|
|
L_028FAF04: ; // 0x28faf04
|
|
/* 028FAF04 */ return;
|
|
}
|
|
|
|
// fn_028FAF08 @ 0x28faf08
|
|
void Gambit_fn_028FAF08(CPUState* 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_028FAF08: ; // 0x28faf08
|
|
/* 028FAF08 */ cpu->r[0] = cpu->lr;
|
|
/* 028FAF0C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FAF0C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FAF0C */ cpu->r[1] = _t0;
|
|
/* 028FAF10 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAF10 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FAF14 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028FAF14 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028FAF18 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FAF18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FAF1C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAF1C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028FAF20 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAF20 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028FAF20 */ if (_t5) goto L_028FAF24; else goto L_028FAF34;
|
|
L_028FAF24: ; // 0x28faf24
|
|
/* 028FAF24 */ cpu->r[3] = 0x000000F4u;
|
|
/* 028FAF28 */ Gambit_fn_02801A78(cpu);
|
|
/* 028FAF2C */ cpu->r[31] = cpu->r[3];
|
|
/* 028FAF2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FAF30 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAF30 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028FAF30 */ if (_t7) goto L_028FAF98; else goto L_028FAF34;
|
|
L_028FAF34: ; // 0x28faf34
|
|
/* 028FAF34 */ cpu->r[0] = 0x10140000u;
|
|
/* 028FAF38 */ cpu->r[6] = 0x02900000u;
|
|
/* 028FAF3C */ cpu->r[3] = cpu->r[31];
|
|
/* 028FAF40 */ cpu->r[0] = cpu->r[0] + 0xFFFFD054u;
|
|
/* 028FAF44 */ cpu->r[6] = cpu->r[6] + 0xFFFFB6C4u;
|
|
/* 028FAF48 */ cpu->r[4] = 0x00000010u;
|
|
/* 028FAF4C */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028FAF50 */ _t8 = cpu->r[31] + 0x000000F0u;
|
|
/* 028FAF50 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028FAF54 */ Gambit_fn_02C82E00(cpu);
|
|
/* 028FAF58 */ cpu->r[3] = cpu->r[31] + 0x000000C0u;
|
|
/* 028FAF58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FAF5C */ cpu->r[30] = 0x00000000u;
|
|
/* 028FAF60 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAF60 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028FAF60 */ if (_t10) goto L_028FAF64; else goto L_028FAF74;
|
|
L_028FAF64: ; // 0x28faf64
|
|
/* 028FAF64 */ cpu->r[3] = 0x00000008u;
|
|
/* 028FAF68 */ Gambit_fn_02801A78(cpu);
|
|
/* 028FAF6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FAF70 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAF70 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028FAF70 */ if (_t12) goto L_028FAF7C; else goto L_028FAF74;
|
|
L_028FAF74: ; // 0x28faf74
|
|
/* 028FAF74 */ _t13 = cpu->r[3] + 0x00000004u;
|
|
/* 028FAF74 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 028FAF78 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028FAF78 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
L_028FAF7C: ; // 0x28faf7c
|
|
/* 028FAF7C */ _t15 = cpu->r[31] + 0x000000C8u;
|
|
/* 028FAF7C */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[30]);
|
|
/* 028FAF80 */ cpu->r[3] = cpu->r[31] + 0x000000CCu;
|
|
/* 028FAF84 */ cpu->r[4] = 0x00000000u;
|
|
/* 028FAF88 */ _t16 = cpu->r[31] + 0x000000C9u;
|
|
/* 028FAF88 */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[30]);
|
|
/* 028FAF8C */ cpu->r[5] = 0x00000020u;
|
|
/* 028FAF90 */ _t17 = cpu->r[31] + 0x000000ECu;
|
|
/* 028FAF90 */ rbrew_write32(cpu->mem, _t17, cpu->r[30]);
|
|
/* 028FAF94 */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
L_028FAF98: ; // 0x28faf98
|
|
/* 028FAF98 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAF98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028FAF9C */ cpu->r[3] = cpu->r[31];
|
|
/* 028FAFA0 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAFA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028FAFA4 */ cpu->lr = cpu->r[0];
|
|
/* 028FAFA8 */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 028FAFA8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028FAFAC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FAFB0 */ return;
|
|
}
|
|
|
|
// fn_028FAF0C @ 0x28faf0c
|
|
void Gambit_fn_028FAF0C(CPUState* 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_028FAF0C: ; // 0x28faf0c
|
|
/* 028FAF0C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FAF0C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FAF0C */ cpu->r[1] = _t0;
|
|
/* 028FAF10 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAF10 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FAF14 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028FAF14 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028FAF18 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FAF18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FAF1C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAF1C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028FAF20 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAF20 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028FAF20 */ if (_t5) goto L_028FAF24; else goto L_028FAF34;
|
|
L_028FAF24: ; // 0x28faf24
|
|
/* 028FAF24 */ cpu->r[3] = 0x000000F4u;
|
|
/* 028FAF28 */ Gambit_fn_02801A78(cpu);
|
|
/* 028FAF2C */ cpu->r[31] = cpu->r[3];
|
|
/* 028FAF2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FAF30 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAF30 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028FAF30 */ if (_t7) goto L_028FAF98; else goto L_028FAF34;
|
|
L_028FAF34: ; // 0x28faf34
|
|
/* 028FAF34 */ cpu->r[0] = 0x10140000u;
|
|
/* 028FAF38 */ cpu->r[6] = 0x02900000u;
|
|
/* 028FAF3C */ cpu->r[3] = cpu->r[31];
|
|
/* 028FAF40 */ cpu->r[0] = cpu->r[0] + 0xFFFFD054u;
|
|
/* 028FAF44 */ cpu->r[6] = cpu->r[6] + 0xFFFFB6C4u;
|
|
/* 028FAF48 */ cpu->r[4] = 0x00000010u;
|
|
/* 028FAF4C */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028FAF50 */ _t8 = cpu->r[31] + 0x000000F0u;
|
|
/* 028FAF50 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028FAF54 */ Gambit_fn_02C82E00(cpu);
|
|
/* 028FAF58 */ cpu->r[3] = cpu->r[31] + 0x000000C0u;
|
|
/* 028FAF58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FAF5C */ cpu->r[30] = 0x00000000u;
|
|
/* 028FAF60 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAF60 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028FAF60 */ if (_t10) goto L_028FAF64; else goto L_028FAF74;
|
|
L_028FAF64: ; // 0x28faf64
|
|
/* 028FAF64 */ cpu->r[3] = 0x00000008u;
|
|
/* 028FAF68 */ Gambit_fn_02801A78(cpu);
|
|
/* 028FAF6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FAF70 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAF70 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028FAF70 */ if (_t12) goto L_028FAF7C; else goto L_028FAF74;
|
|
L_028FAF74: ; // 0x28faf74
|
|
/* 028FAF74 */ _t13 = cpu->r[3] + 0x00000004u;
|
|
/* 028FAF74 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 028FAF78 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028FAF78 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
L_028FAF7C: ; // 0x28faf7c
|
|
/* 028FAF7C */ _t15 = cpu->r[31] + 0x000000C8u;
|
|
/* 028FAF7C */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[30]);
|
|
/* 028FAF80 */ cpu->r[3] = cpu->r[31] + 0x000000CCu;
|
|
/* 028FAF84 */ cpu->r[4] = 0x00000000u;
|
|
/* 028FAF88 */ _t16 = cpu->r[31] + 0x000000C9u;
|
|
/* 028FAF88 */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[30]);
|
|
/* 028FAF8C */ cpu->r[5] = 0x00000020u;
|
|
/* 028FAF90 */ _t17 = cpu->r[31] + 0x000000ECu;
|
|
/* 028FAF90 */ rbrew_write32(cpu->mem, _t17, cpu->r[30]);
|
|
/* 028FAF94 */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
L_028FAF98: ; // 0x28faf98
|
|
/* 028FAF98 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAF98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028FAF9C */ cpu->r[3] = cpu->r[31];
|
|
/* 028FAFA0 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAFA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028FAFA4 */ cpu->lr = cpu->r[0];
|
|
/* 028FAFA8 */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 028FAFA8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028FAFAC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FAFB0 */ return;
|
|
}
|
|
|
|
// fn_028FAFB4 @ 0x28fafb4
|
|
void Gambit_fn_028FAFB4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _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_028FAFB4: ; // 0x28fafb4
|
|
/* 028FAFB4 */ cpu->r[0] = cpu->lr;
|
|
/* 028FAFB8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FAFB8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FAFB8 */ cpu->r[1] = _t0;
|
|
/* 028FAFBC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAFBC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FAFC0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028FAFC0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028FAFC4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FAFC8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAFC8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028FAFCC */ _t4 = cpu->r[31] + 0x000000C9u;
|
|
/* 028FAFCC */ cpu->r[12] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028FAFD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028FAFD4 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAFD4 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FAFD4 */ if (_t6) goto L_028FB034; else goto L_028FAFD8;
|
|
L_028FAFD8: ; // 0x28fafd8
|
|
/* 028FAFD8 */ _t7 = cpu->r[31] + 0x000000C4u;
|
|
/* 028FAFD8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028FAFDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028FAFE0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028FAFE4 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAFE4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028FAFE4 */ if (_t9) goto L_028FB018; else goto L_028FAFE8;
|
|
L_028FAFE8: ; // 0x28fafe8
|
|
/* 028FAFE8 */ _t10 = cpu->r[31] + 0x000000C0u;
|
|
/* 028FAFE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028FAFEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FAFF0 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028FAFF4 */ _t11 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028FAFF4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028FAFF8 */ Gambit_fn_02826B90(cpu);
|
|
/* 028FAFFC */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028FAFFC */ cpu->r[10] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028FB000 */ _t13 = cpu->r[10] + 0x0000003Cu;
|
|
/* 028FB000 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028FB004 */ cpu->ctr = cpu->r[0];
|
|
/* 028FB008 */ _t14 = cpu->r[31] + 0x000000C4u;
|
|
/* 028FB008 */ cpu->r[4] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028FB00C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028FB010 */ _t15 = cpu->r[31] + 0x000000C0u;
|
|
/* 028FB010 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
/* 028FB014 */ _t16 = cpu->r[31] + 0x000000C4u;
|
|
/* 028FB014 */ rbrew_write32(cpu->mem, _t16, cpu->r[30]);
|
|
L_028FB018: ; // 0x28fb018
|
|
/* 028FB018 */ _t17 = cpu->r[31] + 0x000000ECu;
|
|
/* 028FB018 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028FB01C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FB020 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB020 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028FB020 */ if (_t19) goto L_028FB02C; else goto L_028FB024;
|
|
L_028FB024: ; // 0x28fb024
|
|
/* 028FB024 */ Gambit_fn_02801BB4(cpu);
|
|
/* 028FB028 */ _t20 = cpu->r[31] + 0x000000ECu;
|
|
/* 028FB028 */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
L_028FB02C: ; // 0x28fb02c
|
|
/* 028FB02C */ _t21 = cpu->r[31] + 0x000000C9u;
|
|
/* 028FB02C */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[30]);
|
|
/* 028FB030 */ _t22 = cpu->r[31] + 0x000000C8u;
|
|
/* 028FB030 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[30]);
|
|
L_028FB034: ; // 0x28fb034
|
|
/* 028FB034 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028FB034 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028FB038 */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 028FB038 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028FB03C */ cpu->lr = cpu->r[0];
|
|
/* 028FB040 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FB040 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028FB044 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FB048 */ return;
|
|
}
|
|
|
|
// fn_028FAFB8 @ 0x28fafb8
|
|
void Gambit_fn_028FAFB8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _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_028FAFB8: ; // 0x28fafb8
|
|
/* 028FAFB8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FAFB8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FAFB8 */ cpu->r[1] = _t0;
|
|
/* 028FAFBC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FAFBC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FAFC0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028FAFC0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028FAFC4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FAFC8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FAFC8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028FAFCC */ _t4 = cpu->r[31] + 0x000000C9u;
|
|
/* 028FAFCC */ cpu->r[12] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028FAFD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028FAFD4 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAFD4 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FAFD4 */ if (_t6) goto L_028FB034; else goto L_028FAFD8;
|
|
L_028FAFD8: ; // 0x28fafd8
|
|
/* 028FAFD8 */ _t7 = cpu->r[31] + 0x000000C4u;
|
|
/* 028FAFD8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028FAFDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028FAFE0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028FAFE4 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FAFE4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028FAFE4 */ if (_t9) goto L_028FB018; else goto L_028FAFE8;
|
|
L_028FAFE8: ; // 0x28fafe8
|
|
/* 028FAFE8 */ _t10 = cpu->r[31] + 0x000000C0u;
|
|
/* 028FAFE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028FAFEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FAFF0 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028FAFF4 */ _t11 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028FAFF4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028FAFF8 */ Gambit_fn_02826B90(cpu);
|
|
/* 028FAFFC */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028FAFFC */ cpu->r[10] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028FB000 */ _t13 = cpu->r[10] + 0x0000003Cu;
|
|
/* 028FB000 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028FB004 */ cpu->ctr = cpu->r[0];
|
|
/* 028FB008 */ _t14 = cpu->r[31] + 0x000000C4u;
|
|
/* 028FB008 */ cpu->r[4] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028FB00C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028FB010 */ _t15 = cpu->r[31] + 0x000000C0u;
|
|
/* 028FB010 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
/* 028FB014 */ _t16 = cpu->r[31] + 0x000000C4u;
|
|
/* 028FB014 */ rbrew_write32(cpu->mem, _t16, cpu->r[30]);
|
|
L_028FB018: ; // 0x28fb018
|
|
/* 028FB018 */ _t17 = cpu->r[31] + 0x000000ECu;
|
|
/* 028FB018 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028FB01C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FB020 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB020 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028FB020 */ if (_t19) goto L_028FB02C; else goto L_028FB024;
|
|
L_028FB024: ; // 0x28fb024
|
|
/* 028FB024 */ Gambit_fn_02801BB4(cpu);
|
|
/* 028FB028 */ _t20 = cpu->r[31] + 0x000000ECu;
|
|
/* 028FB028 */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
L_028FB02C: ; // 0x28fb02c
|
|
/* 028FB02C */ _t21 = cpu->r[31] + 0x000000C9u;
|
|
/* 028FB02C */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[30]);
|
|
/* 028FB030 */ _t22 = cpu->r[31] + 0x000000C8u;
|
|
/* 028FB030 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[30]);
|
|
L_028FB034: ; // 0x28fb034
|
|
/* 028FB034 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028FB034 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028FB038 */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 028FB038 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028FB03C */ cpu->lr = cpu->r[0];
|
|
/* 028FB040 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FB040 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028FB044 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FB048 */ return;
|
|
}
|
|
|
|
// fn_028FB04C @ 0x28fb04c
|
|
void Gambit_fn_028FB04C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028FB04C: ; // 0x28fb04c
|
|
/* 028FB04C */ cpu->r[0] = cpu->lr;
|
|
/* 028FB050 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FB050 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FB050 */ cpu->r[1] = _t0;
|
|
/* 028FB054 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028FB054 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028FB058 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FB058 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028FB05C */ cpu->r[31] = cpu->r[3];
|
|
/* 028FB05C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FB060 */ cpu->r[30] = cpu->r[4];
|
|
/* 028FB064 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FB064 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028FB068 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB068 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028FB068 */ if (_t5) goto L_028FB090; else goto L_028FB06C;
|
|
L_028FB06C: ; // 0x28fb06c
|
|
/* 028FB06C */ cpu->r[0] = 0x10140000u;
|
|
/* 028FB070 */ cpu->r[0] = cpu->r[0] + 0xFFFFD054u;
|
|
/* 028FB074 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FB078 */ _t6 = cpu->r[31] + 0x000000F0u;
|
|
/* 028FB078 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028FB07C */ Gambit_fn_028FAFB4(cpu);
|
|
/* 028FB080 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FB080 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FB084 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB084 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028FB084 */ if (_t8) goto L_028FB090; else goto L_028FB088;
|
|
L_028FB088: ; // 0x28fb088
|
|
/* 028FB088 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FB08C */ Gambit_fn_02801BB0(cpu);
|
|
L_028FB090: ; // 0x28fb090
|
|
/* 028FB090 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028FB090 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028FB094 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028FB094 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028FB098 */ cpu->lr = cpu->r[0];
|
|
/* 028FB09C */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FB09C */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028FB0A0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FB0A4 */ return;
|
|
}
|
|
|
|
// fn_028FB050 @ 0x28fb050
|
|
void Gambit_fn_028FB050(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028FB050: ; // 0x28fb050
|
|
/* 028FB050 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FB050 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FB050 */ cpu->r[1] = _t0;
|
|
/* 028FB054 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028FB054 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028FB058 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FB058 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028FB05C */ cpu->r[31] = cpu->r[3];
|
|
/* 028FB05C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FB060 */ cpu->r[30] = cpu->r[4];
|
|
/* 028FB064 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FB064 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028FB068 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB068 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028FB068 */ if (_t5) goto L_028FB090; else goto L_028FB06C;
|
|
L_028FB06C: ; // 0x28fb06c
|
|
/* 028FB06C */ cpu->r[0] = 0x10140000u;
|
|
/* 028FB070 */ cpu->r[0] = cpu->r[0] + 0xFFFFD054u;
|
|
/* 028FB074 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FB078 */ _t6 = cpu->r[31] + 0x000000F0u;
|
|
/* 028FB078 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028FB07C */ Gambit_fn_028FAFB4(cpu);
|
|
/* 028FB080 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028FB080 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028FB084 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB084 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028FB084 */ if (_t8) goto L_028FB090; else goto L_028FB088;
|
|
L_028FB088: ; // 0x28fb088
|
|
/* 028FB088 */ cpu->r[3] = cpu->r[31];
|
|
/* 028FB08C */ Gambit_fn_02801BB0(cpu);
|
|
L_028FB090: ; // 0x28fb090
|
|
/* 028FB090 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028FB090 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028FB094 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028FB094 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028FB098 */ cpu->lr = cpu->r[0];
|
|
/* 028FB09C */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FB09C */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028FB0A0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FB0A4 */ return;
|
|
}
|
|
|
|
// fn_028FB0A8 @ 0x28fb0a8
|
|
void Gambit_fn_028FB0A8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028FB0A8: ; // 0x28fb0a8
|
|
/* 028FB0A8 */ cpu->r[9] = 0x00000000u;
|
|
/* 028FB0AC */ cpu->r[10] = cpu->r[3];
|
|
/* 028FB0B0 */ goto L_028FB0BC;
|
|
L_028FB0B4: ; // 0x28fb0b4
|
|
/* 028FB0B4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], 0x00000010u);
|
|
/* 028FB0B8 */ _t0 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB0B8 */ _t1 = _t0 & 0x00000001u;
|
|
/* 028FB0B8 */ if (_t1) goto L_028FB0BC; else goto L_028FB0C8;
|
|
L_028FB0BC: ; // 0x28fb0bc
|
|
/* 028FB0BC */ cpu->r[7] = cpu->r[10];
|
|
/* 028FB0C0 */ cpu->r[0] = 0x00000000u;
|
|
/* 028FB0C4 */ goto L_028FB0CC;
|
|
L_028FB0C8: ; // 0x28fb0c8
|
|
/* 028FB0C8 */ cpu->r[7] = cpu->r[3];
|
|
L_028FB0CC: ; // 0x28fb0cc
|
|
/* 028FB0CC */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 028FB0D0 */ _t2 = cpu->r[7] + 0x00000000u;
|
|
/* 028FB0D0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028FB0D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000010u);
|
|
/* 028FB0D8 */ cpu->r[10] = cpu->r[10] + 0x0000000Cu;
|
|
/* 028FB0DC */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB0DC */ _t4 = _t3 & 0x00000001u;
|
|
/* 028FB0DC */ if (_t4) goto L_028FB0B4; else goto L_028FB0E0;
|
|
L_028FB0E0: ; // 0x28fb0e0
|
|
/* 028FB0E0 */ _t5 = cpu->r[3] + 0x000000C0u;
|
|
/* 028FB0E0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028FB0E4 */ cpu->r[10] = 0x00000000u;
|
|
/* 028FB0E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[9]);
|
|
/* 028FB0EC */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB0EC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028FB0EC */ if (_t7) goto L_028FB0F0; else goto L_028FB120;
|
|
L_028FB0F0: ; // 0x28fb0f0
|
|
/* 028FB0F0 */ cpu->r[11] = 0x00000000u;
|
|
/* 028FB0F4 */ cpu->r[8] = cpu->r[11];
|
|
L_028FB0F8: ; // 0x28fb0f8
|
|
/* 028FB0F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[9]);
|
|
/* 028FB0FC */ _t8 = cpu->r[3] + 0x000000C4u;
|
|
/* 028FB0FC */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028FB100 */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB100 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028FB100 */ if (_t10) goto L_028FB104; else goto L_028FB108;
|
|
L_028FB104: ; // 0x28fb104
|
|
/* 028FB104 */ cpu->r[12] = cpu->r[12] + cpu->r[11];
|
|
L_028FB108: ; // 0x28fb108
|
|
/* 028FB108 */ _t11 = cpu->r[12] + 0x00000000u;
|
|
/* 028FB108 */ rbrew_write32(cpu->mem, _t11, cpu->r[8]);
|
|
/* 028FB10C */ _t12 = cpu->r[3] + 0x000000C0u;
|
|
/* 028FB10C */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028FB110 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028FB114 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[9]);
|
|
/* 028FB118 */ cpu->r[11] = cpu->r[11] + 0x00000004u;
|
|
/* 028FB11C */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB11C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028FB11C */ if (_t14) goto L_028FB0F8; else goto L_028FB120;
|
|
L_028FB120: ; // 0x28fb120
|
|
/* 028FB120 */ cpu->r[0] = 0x00000000u;
|
|
/* 028FB124 */ _t15 = cpu->r[3] + 0x000000C8u;
|
|
/* 028FB124 */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[0]);
|
|
/* 028FB128 */ return;
|
|
}
|
|
|
|
// fn_028FB12C @ 0x28fb12c
|
|
void Gambit_fn_028FB12C(CPUState* cpu) {
|
|
uint32_t _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_028FB12C: ; // 0x28fb12c
|
|
/* 028FB12C */ cpu->r[0] = cpu->lr;
|
|
/* 028FB130 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028FB130 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FB130 */ cpu->r[1] = _t0;
|
|
/* 028FB134 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028FB134 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028FB138 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028FB138 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028FB13C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FB13C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028FB140 */ cpu->r[31] = cpu->r[4];
|
|
/* 028FB140 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FB144 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FB144 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028FB148 */ cpu->r[29] = cpu->r[5];
|
|
/* 028FB14C */ cpu->r[30] = cpu->r[3];
|
|
/* 028FB150 */ cpu->r[3] = cpu->r[29];
|
|
/* 028FB154 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028FB154 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FB154 */ if (_t6) goto L_028FB158; else goto L_028FB1A4;
|
|
L_028FB158: ; // 0x28fb158
|
|
/* 028FB158 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FB15C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB15C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028FB15C */ if (_t8) goto L_028FB160; else goto L_028FB16C;
|
|
L_028FB160: ; // 0x28fb160
|
|
/* 028FB160 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028FB164 */ _t9 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028FB164 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028FB168 */ Gambit_fn_02826F20(cpu);
|
|
L_028FB16C: ; // 0x28fb16c
|
|
/* 028FB16C */ _t10 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028FB16C */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028FB170 */ _t11 = cpu->r[10] + 0x00000034u;
|
|
/* 028FB170 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028FB174 */ cpu->ctr = cpu->r[0];
|
|
/* 028FB178 */ cpu->r[5] = 0x00000004u;
|
|
/* 028FB17C */ cpu->r[4] = rbrew_rlwinm(cpu->r[31], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FB180 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028FB184 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FB188 */ cpu->r[0] = cpu->r[31];
|
|
/* 028FB18C */ _t12 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028FB18C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028FB18C */ if (_t13) goto L_028FB194; else goto L_028FB190;
|
|
L_028FB190: ; // 0x28fb190
|
|
/* 028FB190 */ cpu->r[0] = 0x00000001u;
|
|
L_028FB194: ; // 0x28fb194
|
|
/* 028FB194 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FB198 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB198 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028FB198 */ if (_t15) goto L_028FB1A4; else goto L_028FB19C;
|
|
L_028FB19C: ; // 0x28fb19c
|
|
/* 028FB19C */ _t16 = cpu->r[30] + 0x000000C4u;
|
|
/* 028FB19C */ rbrew_write32(cpu->mem, _t16, cpu->r[3]);
|
|
/* 028FB1A0 */ _t17 = cpu->r[30] + 0x000000C0u;
|
|
/* 028FB1A0 */ rbrew_write32(cpu->mem, _t17, cpu->r[31]);
|
|
L_028FB1A4: ; // 0x28fb1a4
|
|
/* 028FB1A4 */ cpu->r[4] = 0x00000000u;
|
|
/* 028FB1A8 */ cpu->r[3] = 0x00000010u;
|
|
/* 028FB1AC */ cpu->r[5] = cpu->r[4];
|
|
/* 028FB1B0 */ rbrew_dispatch(cpu, 0x02d05860u);
|
|
/* 028FB1B4 */ cpu->r[5] = 0x00000100u;
|
|
/* 028FB1B8 */ cpu->r[4] = cpu->r[29];
|
|
/* 028FB1BC */ Gambit_fn_02801ADC(cpu);
|
|
/* 028FB1C0 */ _t18 = cpu->r[30] + 0x000000ECu;
|
|
/* 028FB1C0 */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
/* 028FB1C4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028FB1C8 */ Gambit_fn_028FB0A8(cpu);
|
|
/* 028FB1CC */ cpu->r[11] = 0x00000001u;
|
|
/* 028FB1D0 */ _t19 = cpu->r[30] + 0x000000C9u;
|
|
/* 028FB1D0 */ rbrew_write8(cpu->mem, _t19, (uint8_t)cpu->r[11]);
|
|
/* 028FB1D4 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FB1D4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028FB1D8 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FB1D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028FB1DC */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028FB1DC */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028FB1E0 */ cpu->lr = cpu->r[0];
|
|
/* 028FB1E4 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028FB1E4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028FB1E8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028FB1EC */ return;
|
|
}
|
|
|
|
// fn_028FB130 @ 0x28fb130
|
|
void Gambit_fn_028FB130(CPUState* cpu) {
|
|
uint32_t _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_028FB130: ; // 0x28fb130
|
|
/* 028FB130 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028FB130 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FB130 */ cpu->r[1] = _t0;
|
|
/* 028FB134 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028FB134 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028FB138 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028FB138 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028FB13C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FB13C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028FB140 */ cpu->r[31] = cpu->r[4];
|
|
/* 028FB140 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FB144 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FB144 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028FB148 */ cpu->r[29] = cpu->r[5];
|
|
/* 028FB14C */ cpu->r[30] = cpu->r[3];
|
|
/* 028FB150 */ cpu->r[3] = cpu->r[29];
|
|
/* 028FB154 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028FB154 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FB154 */ if (_t6) goto L_028FB158; else goto L_028FB1A4;
|
|
L_028FB158: ; // 0x28fb158
|
|
/* 028FB158 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FB15C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB15C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028FB15C */ if (_t8) goto L_028FB160; else goto L_028FB16C;
|
|
L_028FB160: ; // 0x28fb160
|
|
/* 028FB160 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028FB164 */ _t9 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028FB164 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028FB168 */ Gambit_fn_02826F20(cpu);
|
|
L_028FB16C: ; // 0x28fb16c
|
|
/* 028FB16C */ _t10 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028FB16C */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028FB170 */ _t11 = cpu->r[10] + 0x00000034u;
|
|
/* 028FB170 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028FB174 */ cpu->ctr = cpu->r[0];
|
|
/* 028FB178 */ cpu->r[5] = 0x00000004u;
|
|
/* 028FB17C */ cpu->r[4] = rbrew_rlwinm(cpu->r[31], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FB180 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028FB184 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028FB188 */ cpu->r[0] = cpu->r[31];
|
|
/* 028FB18C */ _t12 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028FB18C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028FB18C */ if (_t13) goto L_028FB194; else goto L_028FB190;
|
|
L_028FB190: ; // 0x28fb190
|
|
/* 028FB190 */ cpu->r[0] = 0x00000001u;
|
|
L_028FB194: ; // 0x28fb194
|
|
/* 028FB194 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028FB198 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB198 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028FB198 */ if (_t15) goto L_028FB1A4; else goto L_028FB19C;
|
|
L_028FB19C: ; // 0x28fb19c
|
|
/* 028FB19C */ _t16 = cpu->r[30] + 0x000000C4u;
|
|
/* 028FB19C */ rbrew_write32(cpu->mem, _t16, cpu->r[3]);
|
|
/* 028FB1A0 */ _t17 = cpu->r[30] + 0x000000C0u;
|
|
/* 028FB1A0 */ rbrew_write32(cpu->mem, _t17, cpu->r[31]);
|
|
L_028FB1A4: ; // 0x28fb1a4
|
|
/* 028FB1A4 */ cpu->r[4] = 0x00000000u;
|
|
/* 028FB1A8 */ cpu->r[3] = 0x00000010u;
|
|
/* 028FB1AC */ cpu->r[5] = cpu->r[4];
|
|
/* 028FB1B0 */ rbrew_dispatch(cpu, 0x02d05860u);
|
|
/* 028FB1B4 */ cpu->r[5] = 0x00000100u;
|
|
/* 028FB1B8 */ cpu->r[4] = cpu->r[29];
|
|
/* 028FB1BC */ Gambit_fn_02801ADC(cpu);
|
|
/* 028FB1C0 */ _t18 = cpu->r[30] + 0x000000ECu;
|
|
/* 028FB1C0 */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
/* 028FB1C4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028FB1C8 */ Gambit_fn_028FB0A8(cpu);
|
|
/* 028FB1CC */ cpu->r[11] = 0x00000001u;
|
|
/* 028FB1D0 */ _t19 = cpu->r[30] + 0x000000C9u;
|
|
/* 028FB1D0 */ rbrew_write8(cpu->mem, _t19, (uint8_t)cpu->r[11]);
|
|
/* 028FB1D4 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FB1D4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028FB1D8 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FB1D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028FB1DC */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028FB1DC */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028FB1E0 */ cpu->lr = cpu->r[0];
|
|
/* 028FB1E4 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028FB1E4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028FB1E8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028FB1EC */ return;
|
|
}
|
|
|
|
// fn_028FB1F0 @ 0x28fb1f0
|
|
void Gambit_fn_028FB1F0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028FB1F0: ; // 0x28fb1f0
|
|
/* 028FB1F0 */ cpu->r[12] = 0x00000000u;
|
|
/* 028FB1F4 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 028FB1F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028FB1F8 */ cpu->r[6] = 0x00000001u;
|
|
/* 028FB1FC */ _t1 = cpu->r[4] + 0x00000000u;
|
|
/* 028FB1FC */ rbrew_write32(cpu->mem, _t1, cpu->r[12]);
|
|
/* 028FB200 */ cpu->r[11] = cpu->r[12];
|
|
/* 028FB204 */ cpu->r[9] = cpu->r[3];
|
|
/* 028FB208 */ _t2 = cpu->r[4] + 0x00000004u;
|
|
/* 028FB208 */ rbrew_write32(cpu->mem, _t2, cpu->r[6]);
|
|
/* 028FB20C */ goto L_028FB218;
|
|
L_028FB210: ; // 0x28fb210
|
|
/* 028FB210 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000010u);
|
|
/* 028FB214 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB214 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028FB214 */ if (_t4) goto L_028FB218; else goto L_028FB220;
|
|
L_028FB218: ; // 0x28fb218
|
|
/* 028FB218 */ cpu->r[5] = cpu->r[9];
|
|
/* 028FB21C */ goto L_028FB224;
|
|
L_028FB220: ; // 0x28fb220
|
|
/* 028FB220 */ cpu->r[5] = cpu->r[3];
|
|
L_028FB224: ; // 0x28fb224
|
|
/* 028FB224 */ _t5 = cpu->r[5] + 0x00000000u;
|
|
/* 028FB224 */ cpu->r[8] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028FB228 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[8]);
|
|
/* 028FB22C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB22C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028FB22C */ if (_t7) goto L_028FB260; else goto L_028FB230;
|
|
L_028FB230: ; // 0x28fb230
|
|
/* 028FB230 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028FB234 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000010u);
|
|
/* 028FB238 */ cpu->r[9] = cpu->r[9] + 0x0000000Cu;
|
|
/* 028FB23C */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB23C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028FB23C */ if (_t9) goto L_028FB210; else goto L_028FB240;
|
|
L_028FB240: ; // 0x28fb240
|
|
/* 028FB240 */ _t10 = cpu->r[4] + 0x00000008u;
|
|
/* 028FB240 */ cpu->r[7] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028FB244 */ _t11 = cpu->r[3] + 0x000000C0u;
|
|
/* 028FB244 */ cpu->r[9] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028FB248 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[9]);
|
|
/* 028FB24C */ _t12 = cpu->r[3] + 0x000000C4u;
|
|
/* 028FB24C */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028FB250 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB250 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028FB250 */ if (_t14) goto L_028FB254; else goto L_028FB25C;
|
|
L_028FB254: ; // 0x28fb254
|
|
/* 028FB254 */ cpu->r[0] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FB258 */ cpu->r[11] = cpu->r[11] + cpu->r[0];
|
|
L_028FB25C: ; // 0x28fb25c
|
|
/* 028FB25C */ _t15 = cpu->r[11] + 0x00000000u;
|
|
/* 028FB25C */ rbrew_write32(cpu->mem, _t15, cpu->r[12]);
|
|
L_028FB260: ; // 0x28fb260
|
|
/* 028FB260 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 028FB264 */ return;
|
|
}
|
|
|
|
// fn_028FB268 @ 0x28fb268
|
|
void Gambit_fn_028FB268(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _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_028FB268: ; // 0x28fb268
|
|
/* 028FB268 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028FB268 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FB268 */ cpu->r[1] = _t0;
|
|
/* 028FB26C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FB26C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028FB270 */ _t2 = cpu->r[4] + 0x00000000u;
|
|
/* 028FB270 */ rbrew_write32(cpu->mem, _t2, cpu->r[5]);
|
|
/* 028FB274 */ _t3 = cpu->r[4] + 0x00000004u;
|
|
/* 028FB274 */ rbrew_write32(cpu->mem, _t3, cpu->r[6]);
|
|
/* 028FB278 */ _t4 = cpu->r[3] + 0x000000C0u;
|
|
/* 028FB278 */ cpu->r[10] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028FB27C */ cpu->r[12] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 028FB27C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028FB280 */ cpu->r[8] = 0xFFFFFFFFu;
|
|
/* 028FB284 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB284 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FB284 */ if (_t6) goto L_028FB288; else goto L_028FB298;
|
|
L_028FB288: ; // 0x28fb288
|
|
/* 028FB288 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[10]);
|
|
/* 028FB28C */ _t7 = cpu->r[3] + 0x000000C4u;
|
|
/* 028FB28C */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028FB290 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB290 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028FB290 */ if (_t9) goto L_028FB30C; else goto L_028FB294;
|
|
L_028FB294: ; // 0x28fb294
|
|
/* 028FB294 */ goto L_028FB314;
|
|
L_028FB298: ; // 0x28fb298
|
|
/* 028FB298 */ _t10 = cpu->r[4] + 0x00000000u;
|
|
/* 028FB298 */ cpu->r[6] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028FB29C */ cpu->ctr = cpu->r[10];
|
|
/* 028FB2A0 */ _t11 = cpu->r[3] + 0x000000C4u;
|
|
/* 028FB2A0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028FB2A4 */ cpu->r[31] = rbrew_rlwinm(cpu->r[12], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FB2A8 */ cpu->r[9] = cpu->r[10];
|
|
L_028FB2AC: ; // 0x28fb2ac
|
|
/* 028FB2AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[9]);
|
|
/* 028FB2B0 */ _t12 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB2B0 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028FB2B0 */ if (_t13) goto L_028FB2B4; else goto L_028FB2C4;
|
|
L_028FB2B4: ; // 0x28fb2b4
|
|
/* 028FB2B4 */ _t14 = cpu->r[11] + cpu->r[31];
|
|
/* 028FB2B4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028FB2B8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[6]);
|
|
/* 028FB2BC */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB2BC */ _t16 = _t15 & 0x00000001u;
|
|
/* 028FB2BC */ if (_t16) goto L_028FB31C; else goto L_028FB2C0;
|
|
L_028FB2C0: ; // 0x28fb2c0
|
|
/* 028FB2C0 */ goto L_028FB2D0;
|
|
L_028FB2C4: ; // 0x28fb2c4
|
|
/* 028FB2C4 */ _t17 = cpu->r[11] + 0x00000000u;
|
|
/* 028FB2C4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028FB2C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[6]);
|
|
/* 028FB2CC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB2CC */ _t19 = _t18 & 0x00000001u;
|
|
/* 028FB2CC */ if (_t19) goto L_028FB31C; else goto L_028FB2D0;
|
|
L_028FB2D0: ; // 0x28fb2d0
|
|
/* 028FB2D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[9]);
|
|
/* 028FB2D4 */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB2D4 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028FB2D4 */ if (_t21) goto L_028FB2D8; else goto L_028FB2E8;
|
|
L_028FB2D8: ; // 0x28fb2d8
|
|
/* 028FB2D8 */ _t22 = cpu->r[11] + cpu->r[31];
|
|
/* 028FB2D8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028FB2DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028FB2E0 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB2E0 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028FB2E0 */ if (_t24) goto L_028FB2E4; else goto L_028FB2F8;
|
|
L_028FB2E4: ; // 0x28fb2e4
|
|
/* 028FB2E4 */ goto L_028FB2F4;
|
|
L_028FB2E8: ; // 0x28fb2e8
|
|
/* 028FB2E8 */ _t25 = cpu->r[11] + 0x00000000u;
|
|
/* 028FB2E8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028FB2EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028FB2F0 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB2F0 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028FB2F0 */ if (_t27) goto L_028FB2F4; else goto L_028FB2F8;
|
|
L_028FB2F4: ; // 0x28fb2f4
|
|
/* 028FB2F4 */ cpu->r[8] = cpu->r[12];
|
|
L_028FB2F8: ; // 0x28fb2f8
|
|
/* 028FB2F8 */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFCu;
|
|
/* 028FB2FC */ cpu->r[12] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028FB300 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028FB300 */ _t28 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028FB300 */ _t29 = _t28 >> (0x00000002u & 31u);
|
|
/* 028FB300 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028FB300 */ if (_t30) goto L_028FB2AC; else goto L_028FB304;
|
|
L_028FB304: ; // 0x28fb304
|
|
/* 028FB304 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[10]);
|
|
/* 028FB308 */ _t31 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB308 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028FB308 */ if (_t32) goto L_028FB30C; else goto L_028FB294;
|
|
L_028FB30C: ; // 0x28fb30c
|
|
/* 028FB30C */ cpu->r[12] = rbrew_rlwinm(cpu->r[8], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028FB310 */ cpu->r[11] = cpu->r[11] + cpu->r[12];
|
|
L_028FB314: ; // 0x28fb314
|
|
/* 028FB314 */ cpu->r[12] = cpu->r[8];
|
|
/* 028FB318 */ _t33 = cpu->r[11] + 0x00000000u;
|
|
/* 028FB318 */ rbrew_write32(cpu->mem, _t33, cpu->r[5]);
|
|
L_028FB31C: ; // 0x28fb31c
|
|
/* 028FB31C */ _t34 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FB31C */ cpu->r[31] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028FB320 */ cpu->r[3] = cpu->r[12];
|
|
/* 028FB324 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028FB328 */ return;
|
|
}
|
|
|
|
// fn_028FB32C @ 0x28fb32c
|
|
void Gambit_fn_028FB32C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _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_028FB32C: ; // 0x28fb32c
|
|
/* 028FB32C */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028FB32C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FB32C */ cpu->r[1] = _t0;
|
|
/* 028FB330 */ cpu->r[0] = cpu->lr;
|
|
/* 028FB334 */ /* nop */
|
|
/* 028FB338 */ cpu->r[28] = cpu->r[4];
|
|
/* 028FB33C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0xFFFFFFFFu);
|
|
/* 028FB340 */ cpu->r[27] = cpu->r[3];
|
|
/* 028FB344 */ cpu->r[30] = cpu->r[6];
|
|
/* 028FB348 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028FB348 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028FB34C */ cpu->r[29] = cpu->r[5];
|
|
/* 028FB350 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB350 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028FB350 */ if (_t3) goto L_028FB42C; else goto L_028FB354;
|
|
L_028FB354: ; // 0x28fb354
|
|
/* 028FB354 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], 0x00000010u);
|
|
/* 028FB358 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB358 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028FB358 */ if (_t5) goto L_028FB35C; else goto L_028FB370;
|
|
L_028FB35C: ; // 0x28fb35c
|
|
/* 028FB35C */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)0x0000000Cu);
|
|
/* 028FB360 */ _t6 = cpu->r[27] + cpu->r[10];
|
|
/* 028FB360 */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028FB364 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028FB368 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB368 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028FB368 */ if (_t8) goto L_028FB3C8; else goto L_028FB36C;
|
|
L_028FB36C: ; // 0x28fb36c
|
|
/* 028FB36C */ goto L_028FB37C;
|
|
L_028FB370: ; // 0x28fb370
|
|
/* 028FB370 */ _t9 = cpu->r[27] + 0x00000000u;
|
|
/* 028FB370 */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028FB374 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028FB378 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB378 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028FB378 */ if (_t11) goto L_028FB3C8; else goto L_028FB37C;
|
|
L_028FB37C: ; // 0x28fb37c
|
|
/* 028FB37C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], 0x00000010u);
|
|
/* 028FB380 */ _t12 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB380 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028FB380 */ if (_t13) goto L_028FB384; else goto L_028FB3A8;
|
|
L_028FB384: ; // 0x28fb384
|
|
/* 028FB384 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)0x0000000Cu);
|
|
/* 028FB388 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], 0x00000010u);
|
|
/* 028FB38C */ cpu->r[10] = cpu->r[27] + cpu->r[12];
|
|
/* 028FB390 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB390 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028FB390 */ if (_t15) goto L_028FB3B4; else goto L_028FB394;
|
|
L_028FB394: ; // 0x28fb394
|
|
/* 028FB394 */ cpu->r[3] = cpu->r[27];
|
|
/* 028FB398 */ cpu->r[4] = cpu->r[27];
|
|
/* 028FB39C */ Gambit_fn_028FB1F0(cpu);
|
|
/* 028FB3A0 */ _t16 = cpu->r[10] + 0x00000008u;
|
|
/* 028FB3A0 */ rbrew_write32(cpu->mem, _t16, cpu->r[3]);
|
|
/* 028FB3A4 */ goto L_028FB3C8;
|
|
L_028FB3A8: ; // 0x28fb3a8
|
|
/* 028FB3A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], 0x00000010u);
|
|
/* 028FB3AC */ cpu->r[10] = cpu->r[27];
|
|
/* 028FB3B0 */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB3B0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028FB3B0 */ if (_t18) goto L_028FB3B4; else goto L_028FB394;
|
|
L_028FB3B4: ; // 0x28fb3b4
|
|
/* 028FB3B4 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)0x0000000Cu);
|
|
/* 028FB3B8 */ cpu->r[3] = cpu->r[27];
|
|
/* 028FB3BC */ cpu->r[4] = cpu->r[27] + cpu->r[0];
|
|
/* 028FB3C0 */ Gambit_fn_028FB1F0(cpu);
|
|
/* 028FB3C4 */ _t19 = cpu->r[10] + 0x00000008u;
|
|
/* 028FB3C4 */ rbrew_write32(cpu->mem, _t19, cpu->r[3]);
|
|
L_028FB3C8: ; // 0x28fb3c8
|
|
/* 028FB3C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028FB3CC */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB3CC */ _t21 = _t20 & 0x00000001u;
|
|
/* 028FB3CC */ if (_t21) goto L_028FB42C; else goto L_028FB3D0;
|
|
L_028FB3D0: ; // 0x28fb3d0
|
|
/* 028FB3D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], 0x00000010u);
|
|
/* 028FB3D4 */ _t22 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB3D4 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028FB3D4 */ if (_t23) goto L_028FB3D8; else goto L_028FB404;
|
|
L_028FB3D8: ; // 0x28fb3d8
|
|
/* 028FB3D8 */ cpu->r[7] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)0x0000000Cu);
|
|
/* 028FB3DC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], 0x00000010u);
|
|
/* 028FB3E0 */ cpu->r[31] = cpu->r[27] + cpu->r[7];
|
|
/* 028FB3E4 */ _t24 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB3E4 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028FB3E4 */ if (_t25) goto L_028FB410; else goto L_028FB3E8;
|
|
L_028FB3E8: ; // 0x28fb3e8
|
|
/* 028FB3E8 */ cpu->r[6] = cpu->r[30];
|
|
/* 028FB3EC */ cpu->r[5] = cpu->r[29];
|
|
/* 028FB3F0 */ cpu->r[3] = cpu->r[27];
|
|
/* 028FB3F4 */ cpu->r[4] = cpu->r[27];
|
|
/* 028FB3F8 */ Gambit_fn_028FB268(cpu);
|
|
/* 028FB3FC */ _t26 = cpu->r[31] + 0x00000008u;
|
|
/* 028FB3FC */ rbrew_write32(cpu->mem, _t26, cpu->r[3]);
|
|
/* 028FB400 */ goto L_028FB42C;
|
|
L_028FB404: ; // 0x28fb404
|
|
/* 028FB404 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], 0x00000010u);
|
|
/* 028FB408 */ cpu->r[31] = cpu->r[27];
|
|
/* 028FB40C */ _t27 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB40C */ _t28 = _t27 & 0x00000001u;
|
|
/* 028FB40C */ if (_t28) goto L_028FB410; else goto L_028FB3E8;
|
|
L_028FB410: ; // 0x28fb410
|
|
/* 028FB410 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)0x0000000Cu);
|
|
/* 028FB414 */ cpu->r[5] = cpu->r[29];
|
|
/* 028FB418 */ cpu->r[3] = cpu->r[27];
|
|
/* 028FB41C */ cpu->r[6] = cpu->r[30];
|
|
/* 028FB420 */ cpu->r[4] = cpu->r[27] + cpu->r[0];
|
|
/* 028FB424 */ Gambit_fn_028FB268(cpu);
|
|
/* 028FB428 */ _t29 = cpu->r[31] + 0x00000008u;
|
|
/* 028FB428 */ rbrew_write32(cpu->mem, _t29, cpu->r[3]);
|
|
L_028FB42C: ; // 0x28fb42c
|
|
/* 028FB42C */ /* nop */
|
|
/* 028FB430 */ _t30 = cpu->r[1] + 0x00000024u;
|
|
/* 028FB430 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028FB434 */ cpu->lr = cpu->r[0];
|
|
/* 028FB438 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028FB43C */ return;
|
|
}
|
|
|
|
// fn_028FB440 @ 0x28fb440
|
|
void Gambit_fn_028FB440(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66;
|
|
|
|
L_028FB440: ; // 0x28fb440
|
|
/* 028FB440 */ _t0 = cpu->r[1] + 0xFFFFFDD8u;
|
|
/* 028FB440 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FB440 */ cpu->r[1] = _t0;
|
|
/* 028FB444 */ cpu->r[0] = cpu->lr;
|
|
/* 028FB448 */ /* nop */
|
|
/* 028FB44C */ cpu->r[30] = 0x00000000u;
|
|
/* 028FB450 */ cpu->r[27] = cpu->r[30];
|
|
/* 028FB454 */ cpu->r[31] = cpu->r[3];
|
|
/* 028FB458 */ cpu->r[28] = cpu->r[1] + 0x00000008u;
|
|
/* 028FB45C */ _t1 = cpu->r[1] + 0x0000022Cu;
|
|
/* 028FB45C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028FB460 */ cpu->r[29] = cpu->r[30];
|
|
/* 028FB464 */ goto L_028FB470;
|
|
L_028FB468: ; // 0x28fb468
|
|
/* 028FB468 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], 0x00000010u);
|
|
/* 028FB46C */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB46C */ _t3 = _t2 & 0x00000001u;
|
|
/* 028FB46C */ if (_t3) goto L_028FB470; else goto L_028FB480;
|
|
L_028FB470: ; // 0x28fb470
|
|
/* 028FB470 */ cpu->r[12] = cpu->r[31] + cpu->r[27];
|
|
/* 028FB474 */ cpu->r[25] = cpu->r[27];
|
|
/* 028FB478 */ cpu->r[26] = cpu->r[28];
|
|
/* 028FB47C */ goto L_028FB484;
|
|
L_028FB480: ; // 0x28fb480
|
|
/* 028FB480 */ cpu->r[12] = cpu->r[31];
|
|
L_028FB484: ; // 0x28fb484
|
|
/* 028FB484 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], 0x00000010u);
|
|
/* 028FB488 */ _t4 = cpu->r[12] + 0x00000000u;
|
|
/* 028FB488 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028FB48C */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB48C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028FB48C */ if (_t6) goto L_028FB490; else goto L_028FB4A4;
|
|
L_028FB490: ; // 0x28fb490
|
|
/* 028FB490 */ cpu->r[5] = cpu->r[31] + cpu->r[25];
|
|
/* 028FB494 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028FB498 */ _t7 = cpu->r[5] + 0x00000004u;
|
|
/* 028FB498 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028FB49C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB49C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028FB49C */ if (_t9) goto L_028FB4A0; else goto L_028FB4B0;
|
|
L_028FB4A0: ; // 0x28fb4a0
|
|
/* 028FB4A0 */ goto L_028FB5C0;
|
|
L_028FB4A4: ; // 0x28fb4a4
|
|
/* 028FB4A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028FB4A8 */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 028FB4A8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028FB4AC */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB4AC */ _t12 = _t11 & 0x00000001u;
|
|
/* 028FB4AC */ if (_t12) goto L_028FB5C0; else goto L_028FB4B0;
|
|
L_028FB4B0: ; // 0x28fb4b0
|
|
/* 028FB4B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000010u);
|
|
/* 028FB4B4 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB4B4 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028FB4B4 */ if (_t14) goto L_028FB4B8; else goto L_028FB4D4;
|
|
L_028FB4B8: ; // 0x28fb4b8
|
|
/* 028FB4B8 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x00000014u);
|
|
/* 028FB4BC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], 0x00000010u);
|
|
/* 028FB4C0 */ cpu->r[6] = cpu->r[12] + cpu->r[0];
|
|
/* 028FB4C4 */ cpu->r[5] = cpu->r[26];
|
|
/* 028FB4C8 */ _t15 = cpu->r[6] + 0x00000009u;
|
|
/* 028FB4C8 */ cpu->r[11] = rbrew_read8(cpu->mem, _t15);
|
|
/* 028FB4CC */ _t16 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB4CC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028FB4CC */ if (_t17) goto L_028FB4E4; else goto L_028FB4D0;
|
|
L_028FB4D0: ; // 0x28fb4d0
|
|
/* 028FB4D0 */ goto L_028FB4FC;
|
|
L_028FB4D4: ; // 0x28fb4d4
|
|
/* 028FB4D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], 0x00000010u);
|
|
/* 028FB4D8 */ cpu->r[5] = cpu->r[26];
|
|
/* 028FB4DC */ _t18 = cpu->r[12] + 0x00000009u;
|
|
/* 028FB4DC */ cpu->r[11] = rbrew_read8(cpu->mem, _t18);
|
|
/* 028FB4E0 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB4E0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028FB4E0 */ if (_t20) goto L_028FB4E4; else goto L_028FB4FC;
|
|
L_028FB4E4: ; // 0x28fb4e4
|
|
/* 028FB4E4 */ cpu->r[7] = cpu->r[31] + cpu->r[25];
|
|
/* 028FB4E8 */ _t21 = cpu->r[7] + 0x00000008u;
|
|
/* 028FB4E8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028FB4EC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000010u);
|
|
/* 028FB4F0 */ _t22 = cpu->r[5] + 0x00000004u;
|
|
/* 028FB4F0 */ rbrew_write32(cpu->mem, _t22, cpu->r[9]);
|
|
/* 028FB4F4 */ _t23 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB4F4 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028FB4F4 */ if (_t24) goto L_028FB50C; else goto L_028FB4F8;
|
|
L_028FB4F8: ; // 0x28fb4f8
|
|
/* 028FB4F8 */ goto L_028FB52C;
|
|
L_028FB4FC: ; // 0x28fb4fc
|
|
/* 028FB4FC */ _t25 = cpu->r[31] + 0x00000008u;
|
|
/* 028FB4FC */ cpu->r[9] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028FB500 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000010u);
|
|
/* 028FB504 */ _t26 = cpu->r[5] + 0x00000004u;
|
|
/* 028FB504 */ rbrew_write32(cpu->mem, _t26, cpu->r[9]);
|
|
/* 028FB508 */ _t27 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB508 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028FB508 */ if (_t28) goto L_028FB50C; else goto L_028FB52C;
|
|
L_028FB50C: ; // 0x28fb50c
|
|
/* 028FB50C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x00000014u);
|
|
/* 028FB510 */ cpu->r[8] = cpu->r[12] + cpu->r[0];
|
|
/* 028FB514 */ _t29 = cpu->r[8] + 0x00000004u;
|
|
/* 028FB514 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028FB518 */ _t30 = cpu->r[5] + 0x00000000u;
|
|
/* 028FB518 */ rbrew_write32(cpu->mem, _t30, cpu->r[29]);
|
|
/* 028FB51C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000010u);
|
|
/* 028FB520 */ _t31 = cpu->r[5] + 0x00000008u;
|
|
/* 028FB520 */ rbrew_write32(cpu->mem, _t31, cpu->r[0]);
|
|
/* 028FB524 */ _t32 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB524 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028FB524 */ if (_t33) goto L_028FB540; else goto L_028FB528;
|
|
L_028FB528: ; // 0x28fb528
|
|
/* 028FB528 */ goto L_028FB558;
|
|
L_028FB52C: ; // 0x28fb52c
|
|
/* 028FB52C */ _t34 = cpu->r[12] + 0x00000004u;
|
|
/* 028FB52C */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028FB530 */ _t35 = cpu->r[5] + 0x00000000u;
|
|
/* 028FB530 */ rbrew_write32(cpu->mem, _t35, cpu->r[29]);
|
|
/* 028FB534 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000010u);
|
|
/* 028FB538 */ _t36 = cpu->r[5] + 0x00000008u;
|
|
/* 028FB538 */ rbrew_write32(cpu->mem, _t36, cpu->r[0]);
|
|
/* 028FB53C */ _t37 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB53C */ _t38 = _t37 & 0x00000001u;
|
|
/* 028FB53C */ if (_t38) goto L_028FB540; else goto L_028FB558;
|
|
L_028FB540: ; // 0x28fb540
|
|
/* 028FB540 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x00000014u);
|
|
/* 028FB544 */ _t39 = cpu->r[12] + cpu->r[4];
|
|
/* 028FB544 */ cpu->r[4] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028FB548 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000010u);
|
|
/* 028FB54C */ _t40 = cpu->r[5] + 0x0000000Cu;
|
|
/* 028FB54C */ rbrew_write32(cpu->mem, _t40, cpu->r[4]);
|
|
/* 028FB550 */ _t41 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB550 */ _t42 = _t41 & 0x00000001u;
|
|
/* 028FB550 */ if (_t42) goto L_028FB568; else goto L_028FB554;
|
|
L_028FB554: ; // 0x28fb554
|
|
/* 028FB554 */ goto L_028FB58C;
|
|
L_028FB558: ; // 0x28fb558
|
|
/* 028FB558 */ _t43 = cpu->r[12] + 0x00000000u;
|
|
/* 028FB558 */ cpu->r[4] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028FB55C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000010u);
|
|
/* 028FB560 */ _t44 = cpu->r[5] + 0x0000000Cu;
|
|
/* 028FB560 */ rbrew_write32(cpu->mem, _t44, cpu->r[4]);
|
|
/* 028FB564 */ _t45 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB564 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028FB564 */ if (_t46) goto L_028FB568; else goto L_028FB58C;
|
|
L_028FB568: ; // 0x28fb568
|
|
/* 028FB568 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x00000014u);
|
|
/* 028FB56C */ cpu->r[10] = cpu->r[12] + cpu->r[0];
|
|
/* 028FB570 */ _t47 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028FB570 */ cpu->r[6] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028FB574 */ _t48 = cpu->r[5] + 0x00000014u;
|
|
/* 028FB574 */ rbrew_write32(cpu->mem, _t48, cpu->r[11]);
|
|
/* 028FB578 */ _t49 = cpu->r[5] + 0x00000018u;
|
|
/* 028FB578 */ rbrew_write32(cpu->mem, _t49, cpu->r[6]);
|
|
/* 028FB57C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000010u);
|
|
/* 028FB580 */ _t50 = cpu->r[5] + 0x00000010u;
|
|
/* 028FB580 */ rbrew_write32(cpu->mem, _t50, cpu->r[11]);
|
|
/* 028FB584 */ _t51 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB584 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028FB584 */ if (_t52) goto L_028FB5A4; else goto L_028FB588;
|
|
L_028FB588: ; // 0x28fb588
|
|
/* 028FB588 */ goto L_028FB5AC;
|
|
L_028FB58C: ; // 0x28fb58c
|
|
/* 028FB58C */ _t53 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028FB58C */ cpu->r[6] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028FB590 */ _t54 = cpu->r[5] + 0x00000014u;
|
|
/* 028FB590 */ rbrew_write32(cpu->mem, _t54, cpu->r[11]);
|
|
/* 028FB594 */ _t55 = cpu->r[5] + 0x00000018u;
|
|
/* 028FB594 */ rbrew_write32(cpu->mem, _t55, cpu->r[6]);
|
|
/* 028FB598 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000010u);
|
|
/* 028FB59C */ _t56 = cpu->r[5] + 0x00000010u;
|
|
/* 028FB59C */ rbrew_write32(cpu->mem, _t56, cpu->r[11]);
|
|
/* 028FB5A0 */ _t57 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB5A0 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028FB5A0 */ if (_t58) goto L_028FB5A4; else goto L_028FB588;
|
|
L_028FB5A4: ; // 0x28fb5a4
|
|
/* 028FB5A4 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x00000014u);
|
|
/* 028FB5A8 */ cpu->r[12] = cpu->r[12] + cpu->r[4];
|
|
L_028FB5AC: ; // 0x28fb5ac
|
|
/* 028FB5AC */ _t59 = cpu->r[12] + 0x00000010u;
|
|
/* 028FB5AC */ cpu->r[7] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028FB5B0 */ cpu->r[26] = cpu->r[26] + 0x00000020u;
|
|
/* 028FB5B4 */ cpu->r[28] = cpu->r[28] + 0x00000020u;
|
|
/* 028FB5B8 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028FB5BC */ _t60 = cpu->r[5] + 0x0000001Cu;
|
|
/* 028FB5BC */ rbrew_write32(cpu->mem, _t60, cpu->r[7]);
|
|
L_028FB5C0: ; // 0x28fb5c0
|
|
/* 028FB5C0 */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028FB5C4 */ cpu->r[25] = cpu->r[25] + 0x0000000Cu;
|
|
/* 028FB5C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000010u);
|
|
/* 028FB5CC */ cpu->r[27] = cpu->r[27] + 0x0000000Cu;
|
|
/* 028FB5D0 */ _t61 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB5D0 */ _t62 = _t61 & 0x00000001u;
|
|
/* 028FB5D0 */ if (_t62) goto L_028FB468; else goto L_028FB5D4;
|
|
L_028FB5D4: ; // 0x28fb5d4
|
|
/* 028FB5D4 */ _t63 = cpu->r[31] + 0x000000ECu;
|
|
/* 028FB5D4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028FB5D8 */ cpu->r[7] = 0x00000000u;
|
|
/* 028FB5DC */ cpu->r[6] = cpu->r[1] + 0x00000008u;
|
|
/* 028FB5E0 */ cpu->r[5] = cpu->r[30];
|
|
/* 028FB5E4 */ cpu->r[8] = cpu->r[7];
|
|
/* 028FB5E8 */ cpu->r[3] = cpu->r[31] + 0x000000CCu;
|
|
/* 028FB5EC */ rbrew_dispatch(cpu, 0x02d05be0u);
|
|
/* 028FB5F0 */ cpu->r[4] = 0x00000000u;
|
|
/* 028FB5F4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028FB5F8 */ cpu->r[5] = cpu->r[4];
|
|
/* 028FB5FC */ rbrew_dispatch(cpu, 0x02d05860u);
|
|
/* 028FB600 */ cpu->r[4] = cpu->r[3];
|
|
/* 028FB604 */ _t64 = cpu->r[31] + 0x000000ECu;
|
|
/* 028FB604 */ cpu->r[3] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028FB608 */ rbrew_dispatch(cpu, 0x02d09328u);
|
|
/* 028FB60C */ cpu->r[0] = 0x00000001u;
|
|
/* 028FB610 */ _t65 = cpu->r[31] + 0x000000C8u;
|
|
/* 028FB610 */ rbrew_write8(cpu->mem, _t65, (uint8_t)cpu->r[0]);
|
|
/* 028FB614 */ /* nop */
|
|
/* 028FB618 */ _t66 = cpu->r[1] + 0x0000022Cu;
|
|
/* 028FB618 */ cpu->r[0] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028FB61C */ cpu->lr = cpu->r[0];
|
|
/* 028FB620 */ cpu->r[1] = cpu->r[1] + 0x00000228u;
|
|
/* 028FB624 */ return;
|
|
}
|
|
|
|
// fn_028FB628 @ 0x28fb628
|
|
void Gambit_fn_028FB628(CPUState* cpu) {
|
|
uint32_t _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_028FB628: ; // 0x28fb628
|
|
/* 028FB628 */ cpu->r[0] = cpu->lr;
|
|
/* 028FB62C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028FB62C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FB62C */ cpu->r[1] = _t0;
|
|
/* 028FB630 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FB630 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028FB634 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028FB634 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028FB638 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FB638 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028FB63C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FB63C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028FB640 */ cpu->r[29] = cpu->r[3];
|
|
/* 028FB644 */ cpu->r[3] = cpu->r[29] + 0x000000CCu;
|
|
/* 028FB648 */ rbrew_dispatch(cpu, 0x02d060b0u);
|
|
/* 028FB64C */ _t5 = cpu->r[29] + 0x000000C0u;
|
|
/* 028FB64C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028FB650 */ cpu->r[30] = 0x00000000u;
|
|
/* 028FB654 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028FB658 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB658 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028FB658 */ if (_t7) goto L_028FB65C; else goto L_028FB6A4;
|
|
L_028FB65C: ; // 0x28fb65c
|
|
/* 028FB65C */ cpu->r[31] = 0x00000000u;
|
|
L_028FB660: ; // 0x28fb660
|
|
/* 028FB660 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[0]);
|
|
/* 028FB664 */ _t8 = cpu->r[29] + 0x000000C4u;
|
|
/* 028FB664 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028FB668 */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB668 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028FB668 */ if (_t10) goto L_028FB66C; else goto L_028FB670;
|
|
L_028FB66C: ; // 0x28fb66c
|
|
/* 028FB66C */ cpu->r[12] = cpu->r[12] + cpu->r[31];
|
|
L_028FB670: ; // 0x28fb670
|
|
/* 028FB670 */ _t11 = cpu->r[12] + 0x00000000u;
|
|
/* 028FB670 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028FB674 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028FB678 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB678 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028FB678 */ if (_t13) goto L_028FB694; else goto L_028FB67C;
|
|
L_028FB67C: ; // 0x28fb67c
|
|
/* 028FB67C */ _t14 = cpu->r[11] + 0x00000140u;
|
|
/* 028FB67C */ cpu->r[6] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028FB680 */ cpu->r[3] = cpu->r[30];
|
|
/* 028FB684 */ _t15 = cpu->r[11] + 0x0000014Cu;
|
|
/* 028FB684 */ cpu->r[4] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028FB688 */ _t16 = cpu->r[11] + 0x00000144u;
|
|
/* 028FB688 */ cpu->r[5] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028FB68C */ rbrew_dispatch(cpu, 0x02d05fb0u);
|
|
/* 028FB690 */ _t17 = cpu->r[29] + 0x000000C0u;
|
|
/* 028FB690 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
L_028FB694: ; // 0x28fb694
|
|
/* 028FB694 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028FB698 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028FB69C */ cpu->r[31] = cpu->r[31] + 0x00000004u;
|
|
/* 028FB6A0 */ _t18 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB6A0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028FB6A0 */ if (_t19) goto L_028FB660; else goto L_028FB6A4;
|
|
L_028FB6A4: ; // 0x28fb6a4
|
|
/* 028FB6A4 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FB6A4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028FB6A8 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FB6A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028FB6AC */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028FB6AC */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028FB6B0 */ cpu->lr = cpu->r[0];
|
|
/* 028FB6B4 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028FB6B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028FB6B8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028FB6BC */ return;
|
|
}
|
|
|
|
// fn_028FB62C @ 0x28fb62c
|
|
void Gambit_fn_028FB62C(CPUState* cpu) {
|
|
uint32_t _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_028FB62C: ; // 0x28fb62c
|
|
/* 028FB62C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028FB62C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028FB62C */ cpu->r[1] = _t0;
|
|
/* 028FB630 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FB630 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028FB634 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028FB634 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028FB638 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028FB638 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028FB63C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FB63C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028FB640 */ cpu->r[29] = cpu->r[3];
|
|
/* 028FB644 */ cpu->r[3] = cpu->r[29] + 0x000000CCu;
|
|
/* 028FB648 */ rbrew_dispatch(cpu, 0x02d060b0u);
|
|
/* 028FB64C */ _t5 = cpu->r[29] + 0x000000C0u;
|
|
/* 028FB64C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028FB650 */ cpu->r[30] = 0x00000000u;
|
|
/* 028FB654 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028FB658 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB658 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028FB658 */ if (_t7) goto L_028FB65C; else goto L_028FB6A4;
|
|
L_028FB65C: ; // 0x28fb65c
|
|
/* 028FB65C */ cpu->r[31] = 0x00000000u;
|
|
L_028FB660: ; // 0x28fb660
|
|
/* 028FB660 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[0]);
|
|
/* 028FB664 */ _t8 = cpu->r[29] + 0x000000C4u;
|
|
/* 028FB664 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028FB668 */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB668 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028FB668 */ if (_t10) goto L_028FB66C; else goto L_028FB670;
|
|
L_028FB66C: ; // 0x28fb66c
|
|
/* 028FB66C */ cpu->r[12] = cpu->r[12] + cpu->r[31];
|
|
L_028FB670: ; // 0x28fb670
|
|
/* 028FB670 */ _t11 = cpu->r[12] + 0x00000000u;
|
|
/* 028FB670 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028FB674 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028FB678 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028FB678 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028FB678 */ if (_t13) goto L_028FB694; else goto L_028FB67C;
|
|
L_028FB67C: ; // 0x28fb67c
|
|
/* 028FB67C */ _t14 = cpu->r[11] + 0x00000140u;
|
|
/* 028FB67C */ cpu->r[6] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028FB680 */ cpu->r[3] = cpu->r[30];
|
|
/* 028FB684 */ _t15 = cpu->r[11] + 0x0000014Cu;
|
|
/* 028FB684 */ cpu->r[4] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028FB688 */ _t16 = cpu->r[11] + 0x00000144u;
|
|
/* 028FB688 */ cpu->r[5] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028FB68C */ rbrew_dispatch(cpu, 0x02d05fb0u);
|
|
/* 028FB690 */ _t17 = cpu->r[29] + 0x000000C0u;
|
|
/* 028FB690 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
L_028FB694: ; // 0x28fb694
|
|
/* 028FB694 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028FB698 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028FB69C */ cpu->r[31] = cpu->r[31] + 0x00000004u;
|
|
/* 028FB6A0 */ _t18 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028FB6A0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028FB6A0 */ if (_t19) goto L_028FB660; else goto L_028FB6A4;
|
|
L_028FB6A4: ; // 0x28fb6a4
|
|
/* 028FB6A4 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028FB6A4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028FB6A8 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028FB6A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028FB6AC */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028FB6AC */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028FB6B0 */ cpu->lr = cpu->r[0];
|
|
/* 028FB6B4 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028FB6B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028FB6B8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028FB6BC */ return;
|
|
}
|
|
|