notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
standalone: load per-game config from cmd line too
[pcsx_rearmed.git]
/
deps
/
lightrec
/
disassembler.c
diff --git
a/deps/lightrec/disassembler.c
b/deps/lightrec/disassembler.c
index
f687d28
..
5111d17
100644
(file)
--- a/
deps/lightrec/disassembler.c
+++ b/
deps/lightrec/disassembler.c
@@
-40,6
+40,10
@@
static const char * const std_opcodes[] = {
[OP_SWR] = "swr ",
[OP_LWC2] = "lwc2 ",
[OP_SWC2] = "swc2 ",
[OP_SWR] = "swr ",
[OP_LWC2] = "lwc2 ",
[OP_SWC2] = "swc2 ",
+ [OP_META_MULT2] = "mult2 ",
+ [OP_META_MULTU2] = "multu2 ",
+ [OP_META_LWU] = "lwu ",
+ [OP_META_SWU] = "swu ",
};
static const char * const special_opcodes[] = {
};
static const char * const special_opcodes[] = {
@@
-157,6
+161,10
@@
static const char * const opcode_branch_flags[] = {
"local branch",
};
"local branch",
};
+static const char * const opcode_movi_flags[] = {
+ "movi",
+};
+
static const char * const opcode_multdiv_flags[] = {
"No LO",
"No HI",
static const char * const opcode_multdiv_flags[] = {
"No LO",
"No HI",
@@
-403,10
+411,13
@@
static int print_op(union code c, u32 pc, char *buf, size_t len,
pc + 4 + ((s16)c.i.imm << 2));
case OP_ADDI:
case OP_ADDIU:
pc + 4 + ((s16)c.i.imm << 2));
case OP_ADDI:
case OP_ADDIU:
+ case OP_ORI:
+ *flags_ptr = opcode_movi_flags;
+ *nb_flags = ARRAY_SIZE(opcode_movi_flags);
+ fallthrough;
case OP_SLTI:
case OP_SLTIU:
case OP_ANDI:
case OP_SLTI:
case OP_SLTIU:
case OP_ANDI:
- case OP_ORI:
case OP_XORI:
return snprintf(buf, len, "%s%s,%s,0x%04hx",
std_opcodes[c.i.op],
case OP_XORI:
return snprintf(buf, len, "%s%s,%s,0x%04hx",
std_opcodes[c.i.op],
@@
-415,6
+426,8
@@
static int print_op(union code c, u32 pc, char *buf, size_t len,
(u16)c.i.imm);
case OP_LUI:
(u16)c.i.imm);
case OP_LUI:
+ *flags_ptr = opcode_movi_flags;
+ *nb_flags = ARRAY_SIZE(opcode_movi_flags);
return snprintf(buf, len, "%s%s,0x%04hx",
std_opcodes[c.i.op],
lightrec_reg_name(c.i.rt),
return snprintf(buf, len, "%s%s,0x%04hx",
std_opcodes[c.i.op],
lightrec_reg_name(c.i.rt),
@@
-435,6
+448,8
@@
static int print_op(union code c, u32 pc, char *buf, size_t len,
case OP_SWL:
case OP_SW:
case OP_SWR:
case OP_SWL:
case OP_SW:
case OP_SWR:
+ case OP_META_LWU:
+ case OP_META_SWU:
*flags_ptr = opcode_io_flags;
*nb_flags = ARRAY_SIZE(opcode_io_flags);
*is_io = true;
*flags_ptr = opcode_io_flags;
*nb_flags = ARRAY_SIZE(opcode_io_flags);
*is_io = true;