mirror of
https://github.com/zeldaret/oot-gc.git
synced 2026-09-30 07:22:29 -04:00
1027 lines
25 KiB
C
1027 lines
25 KiB
C
/*
|
|
Compile unit: C:\HOMEBOY\STEPHEN\Japanese Ocarina\Fire\rspASM.c
|
|
Producer: MW EABI PPC C-Compiler
|
|
Language: C89
|
|
Code range: 0x8008CF0C -> 0x8008D248
|
|
*/
|
|
|
|
#include "dolphin/types.h"
|
|
|
|
// Erased
|
|
static int rspVMULF(s16* pVec1, s16* pVec2, s16* pVecResult, unsigned int nElement, signed int* pAcc) {
|
|
// Parameters
|
|
// s16* pVec1; // r4
|
|
// s16* pVec2; // r30
|
|
// s16* pVecResult; // r6
|
|
// unsigned int nElement; // r31
|
|
// signed int* pAcc; // r8
|
|
|
|
// Local variables
|
|
int i; // r20
|
|
u16 du; // r1+0x8
|
|
s64 taccum; // r19
|
|
s64 clampMask; // r17
|
|
|
|
// References
|
|
// -> int cmask_tab[8];
|
|
// -> int emask_tab[8];
|
|
}
|
|
|
|
// Erased
|
|
static int rspVMUDL(s16* pVec1, s16* pVec2, s16* pVecResult, unsigned int nElement, signed int* pAcc) {
|
|
// Parameters
|
|
// s16* pVec1; // r4
|
|
// s16* pVec2; // r19
|
|
// s16* pVecResult; // r6
|
|
// unsigned int nElement; // r31
|
|
// signed int* pAcc; // r8
|
|
|
|
// Local variables
|
|
int i; // r22
|
|
u16 du; // r1+0x8
|
|
s64 taccum; // r3
|
|
s64 clampMask; // r21
|
|
|
|
// References
|
|
// -> int cmask_tab[8];
|
|
// -> int emask_tab[8];
|
|
}
|
|
|
|
// Erased
|
|
static int rspVMUDM(s16* pVec1, s16* pVec2, s16* pVecResult, unsigned int nElement, signed int* pAcc) {
|
|
// Parameters
|
|
// s16* pVec1; // r4
|
|
// s16* pVec2; // r17
|
|
// s16* pVecResult; // r6
|
|
// unsigned int nElement; // r18
|
|
// signed int* pAcc; // r8
|
|
|
|
// Local variables
|
|
int i; // r23
|
|
u16 du; // r1+0x8
|
|
s64 taccum; // r22
|
|
s64 clampMask; // r20
|
|
|
|
// References
|
|
// -> int cmask_tab[8];
|
|
// -> int emask_tab[8];
|
|
}
|
|
|
|
// Range: 0x8008D0B0 -> 0x8008D248
|
|
static int rspVMUDN(s16* pVec1, s16* pVec2, s16* pVecResult, unsigned int nElement, s64* pAcc) {
|
|
// Parameters
|
|
// s16* pVec1; // r4
|
|
// s16* pVec2; // r30
|
|
// s16* pVecResult; // r6
|
|
// unsigned int nElement; // r31
|
|
// s64* pAcc; // r8
|
|
|
|
// Local variables
|
|
int i; // r20
|
|
u16 du; // r1+0x8
|
|
s64 taccum; // r19
|
|
s64 clampMask; // r17
|
|
|
|
// References
|
|
// -> int cmask_tab[8];
|
|
// -> int emask_tab[8];
|
|
}
|
|
|
|
// Erased
|
|
static int rspVMUDH(s16* pVec1, s16* pVec2, s16* pVecResult, unsigned int nElement, signed int* pAcc) {
|
|
// Parameters
|
|
// s16* pVec1; // r4
|
|
// s16* pVec2; // r30
|
|
// s16* pVecResult; // r6
|
|
// unsigned int nElement; // r31
|
|
// signed int* pAcc; // r8
|
|
|
|
// Local variables
|
|
int i; // r22
|
|
u16 du; // r1+0x8
|
|
s64 taccum; // r21
|
|
s64 clampMask; // r19
|
|
|
|
// References
|
|
// -> int cmask_tab[8];
|
|
// -> int emask_tab[8];
|
|
}
|
|
|
|
// Erased
|
|
static int rspVMACF(s16* pVec1, s16* pVec2, s16* pVecResult, unsigned int nElement, signed int* pAcc) {
|
|
// Parameters
|
|
// s16* pVec1; // r4
|
|
// s16* pVec2; // r17
|
|
// s16* pVecResult; // r6
|
|
// unsigned int nElement; // r18
|
|
// signed int* pAcc; // r8
|
|
|
|
// Local variables
|
|
int i; // r23
|
|
u16 du; // r1+0x8
|
|
s64 taccum; // r22
|
|
s64 clampMask; // r20
|
|
|
|
// References
|
|
// -> int cmask_tab[8];
|
|
// -> int emask_tab[8];
|
|
}
|
|
|
|
// Erased
|
|
static int rspVMADL(s16* pVec1, s16* pVec2, s16* pVecResult, unsigned int nElement, signed int* pAcc) {
|
|
// Parameters
|
|
// s16* pVec1; // r4
|
|
// s16* pVec2; // r27
|
|
// s16* pVecResult; // r6
|
|
// unsigned int nElement; // r28
|
|
// signed int* pAcc; // r8
|
|
|
|
// Local variables
|
|
int i; // r31
|
|
u16 du; // r1+0x8
|
|
s64 taccum; // r3
|
|
s64 clampMask; // r30
|
|
|
|
// References
|
|
// -> int cmask_tab[8];
|
|
// -> int emask_tab[8];
|
|
}
|
|
|
|
// Erased
|
|
static int rspVMADM(s16* pVec1, s16* pVec2, s16* pVecResult, unsigned int nElement, signed int* pAcc) {
|
|
// Parameters
|
|
// s16* pVec1; // r4
|
|
// s16* pVec2; // r17
|
|
// s16* pVecResult; // r6
|
|
// unsigned int nElement; // r18
|
|
// signed int* pAcc; // r8
|
|
|
|
// Local variables
|
|
int i; // r23
|
|
u16 du; // r1+0x8
|
|
s64 taccum; // r22
|
|
s64 clampMask; // r20
|
|
|
|
// References
|
|
// -> int cmask_tab[8];
|
|
// -> int emask_tab[8];
|
|
}
|
|
|
|
// Range: 0x8008CF0C -> 0x8008D0B0
|
|
static int rspVMADN(s16* pVec1, s16* pVec2, s16* pVecResult, unsigned int nElement, s64* pAcc) {
|
|
// Parameters
|
|
// s16* pVec1; // r4
|
|
// s16* pVec2; // r30
|
|
// s16* pVecResult; // r6
|
|
// unsigned int nElement; // r31
|
|
// s64* pAcc; // r8
|
|
|
|
// Local variables
|
|
int i; // r20
|
|
u16 du; // r1+0x8
|
|
s64 taccum; // r19
|
|
s64 clampMask; // r17
|
|
|
|
// References
|
|
// -> int cmask_tab[8];
|
|
// -> int emask_tab[8];
|
|
}
|
|
|
|
// Erased
|
|
static int rspVMADH(s16* pVec1, s16* pVec2, s16* pVecResult, unsigned int nElement, signed int* pAcc) {
|
|
// Parameters
|
|
// s16* pVec1; // r4
|
|
// s16* pVec2; // r18
|
|
// s16* pVecResult; // r6
|
|
// unsigned int nElement; // r19
|
|
// signed int* pAcc; // r8
|
|
|
|
// Local variables
|
|
int i; // r24
|
|
u16 du; // r1+0x8
|
|
s64 taccum; // r23
|
|
s64 clampMask; // r21
|
|
|
|
// References
|
|
// -> int cmask_tab[8];
|
|
// -> int emask_tab[8];
|
|
}
|
|
|
|
// Erased
|
|
static int rspVADD(s16* pVec1, s16* pVec2, s16* pVecResult, unsigned int nElement, signed int* pAcc) {
|
|
// Parameters
|
|
// s16* pVec1; // r4
|
|
// s16* pVec2; // r1+0x10
|
|
// s16* pVecResult; // r6
|
|
// unsigned int nElement; // r1+0x18
|
|
// signed int* pAcc; // r8
|
|
|
|
// Local variables
|
|
int i; // r10
|
|
int carry; // r28
|
|
int di; // r28
|
|
|
|
// References
|
|
// -> static u16 rsp_VCO;
|
|
// -> int cmask_tab[8];
|
|
// -> int emask_tab[8];
|
|
}
|
|
|
|
// Erased
|
|
static int rspVSUB(s16* pVec1, s16* pVec2, s16* pVecResult, unsigned int nElement, signed int* pAcc) {
|
|
// Parameters
|
|
// s16* pVec1; // r4
|
|
// s16* pVec2; // r1+0x10
|
|
// s16* pVecResult; // r6
|
|
// unsigned int nElement; // r1+0x18
|
|
// signed int* pAcc; // r8
|
|
|
|
// Local variables
|
|
int i; // r10
|
|
int borrow; // r28
|
|
int di; // r29
|
|
|
|
// References
|
|
// -> static u16 rsp_VCO;
|
|
// -> int cmask_tab[8];
|
|
// -> int emask_tab[8];
|
|
}
|
|
|
|
// Erased
|
|
static int rspVADDC(s16* pVec1, s16* pVec2, s16* pVecResult, unsigned int nElement, signed int* pAcc) {
|
|
// Parameters
|
|
// s16* pVec1; // r4
|
|
// s16* pVec2; // r1+0x10
|
|
// s16* pVecResult; // r6
|
|
// unsigned int nElement; // r1+0x18
|
|
// signed int* pAcc; // r8
|
|
|
|
// Local variables
|
|
int i; // r10
|
|
unsigned int di; // r27
|
|
|
|
// References
|
|
// -> static u16 rsp_VCO;
|
|
// -> int cmask_tab[8];
|
|
// -> int emask_tab[8];
|
|
}
|
|
|
|
// Erased
|
|
static int rspVSUBC(s16* pVec1, s16* pVec2, s16* pVecResult, unsigned int nElement, signed int* pAcc) {
|
|
// Parameters
|
|
// s16* pVec1; // r4
|
|
// s16* pVec2; // r1+0x10
|
|
// s16* pVecResult; // r6
|
|
// unsigned int nElement; // r1+0x18
|
|
// signed int* pAcc; // r8
|
|
|
|
// Local variables
|
|
int i; // r10
|
|
int di; // r29
|
|
|
|
// References
|
|
// -> static u16 rsp_VCO;
|
|
// -> int cmask_tab[8];
|
|
// -> int emask_tab[8];
|
|
}
|
|
|
|
// Erased
|
|
static int rspVGE(s16* pVec1, s16* pVec2, s16* pVecResult, unsigned int nElement, signed int* pAcc) {
|
|
// Parameters
|
|
// s16* pVec1; // r4
|
|
// s16* pVec2; // r1+0x10
|
|
// s16* pVecResult; // r6
|
|
// unsigned int nElement; // r1+0x18
|
|
// signed int* pAcc; // r8
|
|
|
|
// Local variables
|
|
int i; // r12
|
|
s16 si; // r1+0x8
|
|
s16 ti; // r1+0x8
|
|
|
|
// References
|
|
// -> static u16 rsp_VCO;
|
|
// -> static u16 rsp_VCC;
|
|
// -> int cmask_tab[8];
|
|
// -> int emask_tab[8];
|
|
// -> static u8 vco_carry[8];
|
|
// -> static u8 vco_equal[8];
|
|
}
|
|
|
|
// Erased
|
|
static int rspVCL(s16* pVec1, s16* pVec2, s16* pVecResult, unsigned int nElement, signed int* pAcc) {
|
|
// Parameters
|
|
// s16* pVec1; // r4
|
|
// s16* pVec2; // r1+0x10
|
|
// s16* pVecResult; // r6
|
|
// unsigned int nElement; // r1+0x18
|
|
// signed int* pAcc; // r8
|
|
|
|
// Local variables
|
|
u16 sf; // r30
|
|
u16 tf; // r29
|
|
int di; // r1+0x8
|
|
int i; // r28
|
|
int ge; // r11
|
|
int le; // r27
|
|
int vce; // r26
|
|
int eq; // r25
|
|
int carry; // r24
|
|
|
|
// References
|
|
// -> static u8 rsp_VCE;
|
|
// -> static u16 rsp_VCO;
|
|
// -> static u16 rsp_VCC;
|
|
// -> int cmask_tab[8];
|
|
// -> int emask_tab[8];
|
|
}
|
|
|
|
// Erased
|
|
static int rspVSAW(s16* pResult, unsigned int nElement, signed int* pAcc) {
|
|
// Parameters
|
|
// s16* pResult; // r4
|
|
// unsigned int nElement; // r1+0x10
|
|
// signed int* pAcc; // r6
|
|
|
|
// Local variables
|
|
int i; // r29
|
|
int element; // r28
|
|
u16 ri; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmADD(struct __anon_0x5845E* pRSP, s16 rd, s16 rs, s16 rt) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rd; // r1+0x4
|
|
// s16 rs; // r1+0x6
|
|
// s16 rt; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmADDI(struct __anon_0x5845E* pRSP, s16 rt, s16 rs, s16 immediate) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rt; // r1+0x4
|
|
// s16 rs; // r1+0x6
|
|
// s16 immediate; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmAND(struct __anon_0x5845E* pRSP, s16 rd, s16 rs, s16 rt) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rd; // r1+0x4
|
|
// s16 rs; // r1+0x6
|
|
// s16 rt; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmANDI(struct __anon_0x5845E* pRSP, s16 rt, s16 rs, s16 immediate) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rt; // r1+0x4
|
|
// s16 rs; // r1+0x6
|
|
// s16 immediate; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmLB(struct __anon_0x5845E* pRSP, s16 rt, s16 offset, s16 base) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rt; // r1+0x4
|
|
// s16 offset; // r1+0x6
|
|
// s16 base; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmLBU(struct __anon_0x5845E* pRSP, s16 rt, s16 offset, s16 base) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rt; // r1+0x4
|
|
// s16 offset; // r1+0x6
|
|
// s16 base; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmLH(struct __anon_0x5845E* pRSP, s16 rt, s16 offset, s16 base) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rt; // r1+0x4
|
|
// s16 offset; // r1+0x6
|
|
// s16 base; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmLHU(struct __anon_0x5845E* pRSP, s16 rt, s16 offset, s16 base) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rt; // r1+0x4
|
|
// s16 offset; // r1+0x6
|
|
// s16 base; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmLUI(struct __anon_0x5845E* pRSP, s16 rt, s16 immediate) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rt; // r1+0x4
|
|
// s16 immediate; // r1+0x6
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmLW(struct __anon_0x5845E* pRSP, s16 rt, s16 offset, s16 base) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rt; // r1+0x4
|
|
// s16 offset; // r1+0x6
|
|
// s16 base; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmMFC0(struct __anon_0x5845E* pRSP, s16 rt, s16 rd) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rt; // r1+0x4
|
|
// s16 rd; // r1+0x6
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmMTC0(struct __anon_0x5845E* pRSP, s16 rt, s16 rd) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rt; // r1+0x4
|
|
// s16 rd; // r1+0x6
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmMTC2(struct __anon_0x5845E* pRSP, s16 rt, s16 vd, s16 e) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rt; // r1+0x4
|
|
// s16 vd; // r1+0x6
|
|
// s16 e; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmNOP() {}
|
|
|
|
// Erased
|
|
static int rspAsmOR(struct __anon_0x5845E* pRSP, s16 rd, s16 rs, s16 rt) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rd; // r1+0x4
|
|
// s16 rs; // r1+0x6
|
|
// s16 rt; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmORI(struct __anon_0x5845E* pRSP, s16 rt, s16 rs, s16 immediate) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rt; // r1+0x4
|
|
// s16 rs; // r1+0x6
|
|
// s16 immediate; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmSH(struct __anon_0x5845E* pRSP, s16 rt, s16 offset, s16 base) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rt; // r1+0x4
|
|
// s16 offset; // r1+0x6
|
|
// s16 base; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmSLL(struct __anon_0x5845E* pRSP, s16 rd, s16 rt, s16 sa) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rd; // r1+0x4
|
|
// s16 rt; // r1+0x6
|
|
// s16 sa; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmSRL(struct __anon_0x5845E* pRSP, s16 rd, s16 rt, s16 sa) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rd; // r1+0x4
|
|
// s16 rt; // r1+0x6
|
|
// s16 sa; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmSRLV(struct __anon_0x5845E* pRSP, s16 rd, s16 rt, s16 rs) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rd; // r1+0x4
|
|
// s16 rt; // r1+0x6
|
|
// s16 rs; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmSUB(struct __anon_0x5845E* pRSP, s16 rd, s16 rs, s16 rt) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rd; // r1+0x4
|
|
// s16 rs; // r1+0x6
|
|
// s16 rt; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmSW(struct __anon_0x5845E* pRSP, s16 rt, s16 offset, s16 nBase) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 rt; // r1+0x4
|
|
// s16 offset; // r1+0x6
|
|
// s16 nBase; // r1+0x8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmSSV(struct __anon_0x5845E* pRSP, s16 nVT, s16 nElement, s16 nOffset, s16 nBase) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 nVT; // r1+0x4
|
|
// s16 nElement; // r1+0x6
|
|
// s16 nOffset; // r1+0x8
|
|
// s16 nBase; // r1+0xA
|
|
|
|
// Local variables
|
|
char* pVT; // r4
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmSLV(struct __anon_0x5845E* pRSP, s16 nVT, s16 nElement, s16 nOffset, s16 nBase) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 nVT; // r1+0x4
|
|
// s16 nElement; // r1+0x6
|
|
// s16 nOffset; // r1+0x8
|
|
// s16 nBase; // r1+0xA
|
|
|
|
// Local variables
|
|
char* pVT; // r5
|
|
char* pDMEM; // r4
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmSDV(struct __anon_0x5845E* pRSP, s16 nVT, s16 nElement, s16 nOffset, s16 nBase) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 nVT; // r1+0x4
|
|
// s16 nElement; // r1+0x6
|
|
// s16 nOffset; // r1+0x8
|
|
// s16 nBase; // r1+0xA
|
|
|
|
// Local variables
|
|
char* pVT; // r5
|
|
char* pDMEM; // r4
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmSQV(struct __anon_0x5845E* pRSP, s16 nVT, s16 nElement, s16 nOffset, s16 nBase) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 nVT; // r1+0x4
|
|
// s16 nElement; // r1+0x6
|
|
// s16 nOffset; // r1+0x8
|
|
// s16 nBase; // r1+0xA
|
|
|
|
// Local variables
|
|
char* pVT; // r4
|
|
s16 i; // r3
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmLSV(struct __anon_0x5845E* pRSP, s16 nVT, s16 nElement, s16 nOffset, s16 nBase) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 nVT; // r1+0x4
|
|
// s16 nElement; // r1+0x6
|
|
// s16 nOffset; // r1+0x8
|
|
// s16 nBase; // r1+0xA
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmLDV(struct __anon_0x5845E* pRSP, s16 nVT, s16 nElement, s16 nOffset, s16 nBase) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 nVT; // r1+0x4
|
|
// s16 nElement; // r1+0x6
|
|
// s16 nOffset; // r1+0x8
|
|
// s16 nBase; // r1+0xA
|
|
|
|
// Local variables
|
|
char* pVReg; // r4
|
|
char* pDMEM; // r7
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmLPV(struct __anon_0x5845E* pRSP, s16 nVT, s16 nOffset, s16 nBase) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 nVT; // r1+0x4
|
|
// s16 nOffset; // r1+0x8
|
|
// s16 nBase; // r1+0xA
|
|
|
|
// Local variables
|
|
int nAddress; // r5
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmLQV(struct __anon_0x5845E* pRSP, s16 nVT, s16 nElement, s16 nOffset, s16 nBase) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 nVT; // r1+0x4
|
|
// s16 nElement; // r1+0x6
|
|
// s16 nOffset; // r1+0x8
|
|
// s16 nBase; // r1+0xA
|
|
|
|
// Local variables
|
|
char* pVT; // r9
|
|
s16 i; // r8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmLRV(struct __anon_0x5845E* pRSP, s16 nVT, s16 nElement, s16 nOffset, s16 nBase) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x0
|
|
// s16 nVT; // r1+0x4
|
|
// s16 nElement; // r1+0x6
|
|
// s16 nOffset; // r1+0x8
|
|
// s16 nBase; // r1+0xA
|
|
|
|
// Local variables
|
|
char* pVT; // r8
|
|
s16 i; // r7
|
|
s16 nStartAddress; // r8
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVAND(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r3
|
|
// s16 nVD; // r1+0xC
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
s16 i; // r28
|
|
s16 j; // r1+0x8
|
|
int nResult; // r4
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVXOR(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r3
|
|
// s16 nVD; // r1+0xC
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
s16 i; // r28
|
|
s16 j; // r1+0x8
|
|
int nResult; // r4
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVADD(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r3
|
|
// s16 nVD; // r1+0xC
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
s16 i; // r30
|
|
s16 j; // r29
|
|
int nResult; // r24
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVADDC(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r3
|
|
// s16 nVD; // r1+0xC
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
s16 i; // r30
|
|
s16 j; // r29
|
|
int nResult; // r27
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVSUB(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r3
|
|
// s16 nVD; // r1+0xC
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
s16 i; // r30
|
|
s16 j; // r29
|
|
int nResult; // r24
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVSUBC(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r3
|
|
// s16 nVD; // r1+0xC
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
s16 i; // r30
|
|
s16 j; // r29
|
|
int nResult; // r25
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVGE(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r3
|
|
// s16 nVD; // r1+0xC
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
s16 i; // r28
|
|
s16 j; // r27
|
|
int nResult; // r24
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVCL(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r22
|
|
// s16 nVD; // r1+0xC
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
s16 nLE; // r27
|
|
s16 nGE; // r26
|
|
s16 nEQ; // r25
|
|
s16 nCarry; // r21
|
|
s16 i; // r24
|
|
s16 j; // r23
|
|
s16 nDI; // r25
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVMADM(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x40
|
|
// s16 nVD; // r1+0x44
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
int i; // r26
|
|
int j; // r25
|
|
s64 product; // r30
|
|
s16 buffer[8]; // r1+0x1C
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVMADN(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x40
|
|
// s16 nVD; // r1+0x44
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
int i; // r26
|
|
int j; // r25
|
|
s64 product; // r30
|
|
s16 buffer[8]; // r1+0x1C
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVMADH(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x40
|
|
// s16 nVD; // r1+0x44
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
int i; // r26
|
|
int j; // r25
|
|
s64 product; // r30
|
|
s16 buffer[8]; // r1+0x1C
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVMADL(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x40
|
|
// s16 nVD; // r1+0x44
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
int i; // r26
|
|
int j; // r25
|
|
s64 product; // r1+0x8
|
|
s16 buffer[8]; // r1+0x1C
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVMUDH(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x38
|
|
// s16 nVD; // r1+0x3C
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
int i; // r28
|
|
int j; // r25
|
|
s64 product; // r30
|
|
s16 buffer[8]; // r1+0x1C
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVMUDL(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x38
|
|
// s16 nVD; // r1+0x3C
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
int i; // r28
|
|
int j; // r25
|
|
s64 product; // r1+0x8
|
|
s16 buffer[8]; // r1+0x1C
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVMUDM(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x38
|
|
// s16 nVD; // r1+0x3C
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
int i; // r28
|
|
int j; // r25
|
|
s64 product; // r30
|
|
s16 buffer[8]; // r1+0x1C
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVMUDN(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x38
|
|
// s16 nVD; // r1+0x3C
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
int i; // r28
|
|
int j; // r25
|
|
s64 product; // r30
|
|
s16 buffer[8]; // r1+0x1C
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVMULF(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x38
|
|
// s16 nVD; // r1+0x3C
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
int i; // r28
|
|
int j; // r25
|
|
s64 product; // r30
|
|
s16 buffer[8]; // r1+0x1C
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVMACF(struct __anon_0x5845E* pRSP, s16 nVD, s16 nVS, s16 nVT, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x40
|
|
// s16 nVD; // r1+0x44
|
|
// s16 nVS; // r1+0xE
|
|
// s16 nVT; // r1+0x10
|
|
// s16 nE; // r1+0x12
|
|
|
|
// Local variables
|
|
int i; // r26
|
|
int j; // r25
|
|
s64 product; // r30
|
|
s16 buffer[8]; // r1+0x1C
|
|
}
|
|
|
|
// Erased
|
|
static int rspAsmVSAR(struct __anon_0x5845E* pRSP, s16 nVD, s16 nE) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r3
|
|
// s16 nVD; // r1+0x4
|
|
// s16 nE; // r1+0xA
|
|
|
|
// Local variables
|
|
s16 i; // r6
|
|
}
|
|
|
|
// Erased
|
|
static int rspDMARead(struct __anon_0x5845E* pRSP, int nDMEMAddress, int nRDRAMAddress, int nLength) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x8
|
|
// int nDMEMAddress; // r1+0xC
|
|
// int nRDRAMAddress; // r1+0x10
|
|
// int nLength; // r30
|
|
|
|
// Local variables
|
|
int i; // r5
|
|
int nAddress; // r5
|
|
s16* pDMEM; // r31
|
|
s16* pRDRAM; // r6
|
|
void* pData; // r1+0x1C
|
|
}
|
|
|
|
// Erased
|
|
static int rspDMAWrite(struct __anon_0x5845E* pRSP, int nDMEMAddress, int nRDRAMAddress, int nLength) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r1+0x8
|
|
// int nDMEMAddress; // r1+0xC
|
|
// int nRDRAMAddress; // r1+0x10
|
|
// int nLength; // r31
|
|
|
|
// Local variables
|
|
int i; // r5
|
|
int nAddress; // r5
|
|
s16* pDMEM; // r30
|
|
s16* pRDRAM; // r6
|
|
void* pData; // r1+0x1C
|
|
}
|
|
|
|
// Erased
|
|
static int rspDisassemble(struct __anon_0x5845E* pRSP, struct __anon_0x575BD* pTask) {
|
|
// Parameters
|
|
// struct __anon_0x5845E* pRSP; // r22
|
|
// struct __anon_0x575BD* pTask; // r19
|
|
|
|
// Local variables
|
|
struct tXL_FILE* pIMEMFile; // r1+0x105C
|
|
int i; // r27
|
|
int h; // r20
|
|
int nCodeAddress; // r7
|
|
int nDataAddress; // r9
|
|
int nFound; // r24
|
|
unsigned int nOutData; // r31
|
|
void* pCode; // r1+0x1058
|
|
void* pData; // r1+0x1054
|
|
unsigned int nRS; // r7
|
|
unsigned int nRT; // r20
|
|
unsigned int nRD; // r21
|
|
unsigned int nSA; // r19
|
|
unsigned int nOffset; // r6
|
|
unsigned int nTarget; // r5
|
|
unsigned int nE; // r7
|
|
unsigned int nVT; // r7
|
|
unsigned int nVS; // r6
|
|
unsigned int nVD; // r5
|
|
unsigned int nDE; // r6
|
|
unsigned int nBase; // r7
|
|
unsigned int nElement; // r6
|
|
unsigned int nSize; // r1+0x1048
|
|
int nImmediate; // r7
|
|
int nCount; // r29
|
|
char acOp[8]; // r1+0x1040
|
|
char acTemp[8]; // r1+0x1038
|
|
char acOpString[8]; // r1+0x1030
|
|
char acTempString[128]; // r1+0xFB0
|
|
char acOpList[500][8]; // r1+0x10
|
|
int nFirst; // r23
|
|
}
|