mirror of
https://github.com/hrydgard/ppsspp.git
synced 2024-11-23 21:39:52 +00:00
Clean up the immediate MIPS table, mostly flags.
This commit is contained in:
parent
d08f2bc3fb
commit
152f28aeac
@ -640,6 +640,9 @@ namespace MIPSAnalyst
|
|||||||
case MEMTYPE_FLOAT:
|
case MEMTYPE_FLOAT:
|
||||||
info.dataSize = 4;
|
info.dataSize = 4;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MEMTYPE_VQUAD:
|
||||||
|
info.dataSize = 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 rs = cpu->GetRegValue(0,MIPS_GET_RS(op));
|
u32 rs = cpu->GetRegValue(0,MIPS_GET_RS(op));
|
||||||
|
@ -143,25 +143,26 @@ const MIPSInstruction tableImmediate[64] = //xxxxxx .....
|
|||||||
INVALID,
|
INVALID,
|
||||||
INVALID,
|
INVALID,
|
||||||
INSTR("swr", &Jit::Comp_ITypeMem, Dis_ITypeMem, Int_ITypeMem, IN_IMM16|IN_RS_ADDR|IN_RT|OUT_MEM|MEMTYPE_WORD),
|
INSTR("swr", &Jit::Comp_ITypeMem, Dis_ITypeMem, Int_ITypeMem, IN_IMM16|IN_RS_ADDR|IN_RT|OUT_MEM|MEMTYPE_WORD),
|
||||||
INSTR("cache", &Jit::Comp_Generic, Dis_Generic, Int_Cache, 0),
|
INSTR("cache", &Jit::Comp_Generic, Dis_Generic, Int_Cache, IN_MEM|IN_IMM16|IN_RS_ADDR|IN_OTHER|OUT_OTHER),
|
||||||
//48
|
//48
|
||||||
INSTR("ll", &Jit::Comp_Generic, Dis_Generic, Int_StoreSync, 0),
|
INSTR("ll", &Jit::Comp_Generic, Dis_Generic, Int_StoreSync, IN_MEM|IN_IMM16|IN_RS_ADDR|OUT_RT|OUT_OTHER|MEMTYPE_WORD),
|
||||||
INSTR("lwc1", &Jit::Comp_FPULS, Dis_FPULS, Int_FPULS, IN_RT|IN_RS_ADDR),
|
INSTR("lwc1", &Jit::Comp_FPULS, Dis_FPULS, Int_FPULS, IN_MEM|IN_IMM16|IN_RS_ADDR|OUT_OTHER|MEMTYPE_FLOAT),
|
||||||
INSTR("lv.s", &Jit::Comp_SV, Dis_SV, Int_SV, IS_VFPU|VFPU_NO_PREFIX),
|
INSTR("lv.s", &Jit::Comp_SV, Dis_SV, Int_SV, IN_MEM|IN_IMM16|IN_RS_ADDR|OUT_OTHER|IS_VFPU|VFPU_NO_PREFIX|MEMTYPE_FLOAT),
|
||||||
INVALID, // HIT THIS IN WIPEOUT
|
INVALID, // HIT THIS IN WIPEOUT
|
||||||
ENCODING(VFPU4Jump),
|
ENCODING(VFPU4Jump),
|
||||||
INSTR("lv", &Jit::Comp_SVQ, Dis_SVLRQ, Int_SVQ, IS_VFPU|VFPU_NO_PREFIX),
|
INSTR("lv", &Jit::Comp_SVQ, Dis_SVLRQ, Int_SVQ, IN_MEM|IN_IMM16|IN_RS_ADDR|OUT_OTHER|IS_VFPU|VFPU_NO_PREFIX|MEMTYPE_VQUAD),
|
||||||
INSTR("lv.q", &Jit::Comp_SVQ, Dis_SVQ, Int_SVQ, IS_VFPU|VFPU_NO_PREFIX), //copU
|
INSTR("lv.q", &Jit::Comp_SVQ, Dis_SVQ, Int_SVQ, IN_MEM|IN_IMM16|IN_RS_ADDR|OUT_OTHER|IS_VFPU|VFPU_NO_PREFIX|MEMTYPE_VQUAD), //copU
|
||||||
ENCODING(VFPU5),
|
ENCODING(VFPU5),
|
||||||
//56
|
//56
|
||||||
INSTR("sc", &Jit::Comp_Generic, Dis_Generic, Int_StoreSync, 0),
|
INSTR("sc", &Jit::Comp_Generic, Dis_Generic, Int_StoreSync, IN_IMM16|IN_RS_ADDR|IN_OTHER|IN_RT|OUT_RT|OUT_MEM|MEMTYPE_WORD),
|
||||||
INSTR("swc1", &Jit::Comp_FPULS, Dis_FPULS, Int_FPULS, 0), //copU
|
INSTR("swc1", &Jit::Comp_FPULS, Dis_FPULS, Int_FPULS, IN_IMM16|IN_RS_ADDR|IN_OTHER|OUT_MEM|MEMTYPE_FLOAT), //copU
|
||||||
INSTR("sv.s", &Jit::Comp_SV, Dis_SV, Int_SV,IS_VFPU|VFPU_NO_PREFIX),
|
INSTR("sv.s", &Jit::Comp_SV, Dis_SV, Int_SV, IN_IMM16|IN_RS_ADDR|IN_OTHER|OUT_MEM|IS_VFPU|VFPU_NO_PREFIX|MEMTYPE_FLOAT),
|
||||||
INVALID,
|
INVALID,
|
||||||
//60
|
//60
|
||||||
ENCODING(VFPU6),
|
ENCODING(VFPU6),
|
||||||
INSTR("sv", &Jit::Comp_SVQ, Dis_SVLRQ, Int_SVQ, IS_VFPU|VFPU_NO_PREFIX), //copU
|
INSTR("sv", &Jit::Comp_SVQ, Dis_SVLRQ, Int_SVQ, IN_IMM16|IN_RS_ADDR|IN_OTHER|OUT_MEM|IS_VFPU|VFPU_NO_PREFIX|MEMTYPE_VQUAD), //copU
|
||||||
INSTR("sv.q", &Jit::Comp_SVQ, Dis_SVQ, Int_SVQ, IS_VFPU|VFPU_NO_PREFIX),
|
INSTR("sv.q", &Jit::Comp_SVQ, Dis_SVQ, Int_SVQ, IN_IMM16|IN_RS_ADDR|IN_OTHER|OUT_MEM|IS_VFPU|VFPU_NO_PREFIX|MEMTYPE_VQUAD),
|
||||||
|
// Some call this VFPU7 (vflush/vnop/vsync), but it's not super important.
|
||||||
INSTR("vflush", &Jit::Comp_DoNothing, Dis_Vflush, Int_Vflush, IS_VFPU|VFPU_NO_PREFIX),
|
INSTR("vflush", &Jit::Comp_DoNothing, Dis_Vflush, Int_Vflush, IS_VFPU|VFPU_NO_PREFIX),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
#define MEMTYPE_HWORD 0x00000002
|
#define MEMTYPE_HWORD 0x00000002
|
||||||
#define MEMTYPE_WORD 0x00000003
|
#define MEMTYPE_WORD 0x00000003
|
||||||
#define MEMTYPE_FLOAT 0x00000004
|
#define MEMTYPE_FLOAT 0x00000004
|
||||||
|
#define MEMTYPE_VQUAD 0x00000005
|
||||||
|
|
||||||
#define IS_CONDMOVE 0x00000008
|
#define IS_CONDMOVE 0x00000008
|
||||||
#define DELAYSLOT 0x00000010
|
#define DELAYSLOT 0x00000010
|
||||||
|
@ -847,6 +847,7 @@ void CtrlDisAsmView::updateStatusBarText()
|
|||||||
sprintf(text,"[%08X] = %04X",info.dataAddress,Memory::Read_U16(info.dataAddress));
|
sprintf(text,"[%08X] = %04X",info.dataAddress,Memory::Read_U16(info.dataAddress));
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
|
// TODO: Could also be a float...
|
||||||
{
|
{
|
||||||
u32 data = Memory::Read_U32(info.dataAddress);
|
u32 data = Memory::Read_U32(info.dataAddress);
|
||||||
const char* addressSymbol = debugger->findSymbolForAddress(data);
|
const char* addressSymbol = debugger->findSymbolForAddress(data);
|
||||||
@ -858,6 +859,9 @@ void CtrlDisAsmView::updateStatusBarText()
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 16:
|
||||||
|
// TODO: vector
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user