summaryrefslogtreecommitdiff
path: root/psp/mips_emit.h
diff options
context:
space:
mode:
Diffstat (limited to 'psp/mips_emit.h')
-rw-r--r--psp/mips_emit.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/psp/mips_emit.h b/psp/mips_emit.h
index aa00d86..3f70f13 100644
--- a/psp/mips_emit.h
+++ b/psp/mips_emit.h
@@ -535,14 +535,14 @@ u32 arm_to_mips_reg[] =
#define generate_load_pc(ireg, new_pc) \
{ \
- s32 pc_delta = new_pc - stored_pc; \
+ s32 pc_delta = (new_pc) - (stored_pc); \
if((pc_delta >= -32768) && (pc_delta <= 32767)) \
{ \
mips_emit_addiu(ireg, reg_pc, pc_delta); \
} \
else \
{ \
- generate_load_imm(ireg, new_pc); \
+ generate_load_imm(ireg, (new_pc)); \
} \
} \
@@ -1697,6 +1697,9 @@ u32 execute_store_cpsr_body(u32 _cpsr, u32 store_mask, u32 address)
arm_psr_##transfer_type(op_type, psr_reg); \
} \
+#define thumb_load_pc_pool_const(rd, value) \
+ generate_load_imm(arm_to_mips_reg[rd], (value)); \
+
#define arm_access_memory_load(mem_type) \
cycle_count += 2; \
mips_emit_jal(mips_absolute_offset(execute_load_##mem_type)); \