From 6f81dbad1dcd74e1cf820651c6e0e1de8bbda764 Mon Sep 17 00:00:00 2001 From: David Guillen Fandos Date: Tue, 2 Nov 2021 21:14:38 +0100 Subject: [PATCH] Minor code cleanup to make it more readable --- x86/x86_emit.h | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/x86/x86_emit.h b/x86/x86_emit.h index 4a5fbc2..e8a002e 100644 --- a/x86/x86_emit.h +++ b/x86/x86_emit.h @@ -1022,17 +1022,6 @@ typedef enum // This is pretty infrequent (returning from interrupt handlers, et al) so // probably not worth optimizing for. -#define check_for_interrupts() \ - if((io_registers[REG_IE] & io_registers[REG_IF]) && \ - io_registers[REG_IME] && ((reg[REG_CPSR] & 0x80) == 0)) \ - { \ - reg_mode[MODE_IRQ][6] = reg[REG_PC] + 4; \ - spsr[MODE_IRQ] = reg[REG_CPSR]; \ - reg[REG_CPSR] = 0xD2; \ - address = 0x00000018; \ - set_cpu_mode(MODE_IRQ); \ - } \ - #define generate_load_reg_pc(ireg, reg_index, pc_offset) \ if(reg_index == 15) \ { \ @@ -1058,7 +1047,16 @@ u32 function_cc execute_spsr_restore(u32 address) reg[REG_CPSR] = spsr[reg[CPU_MODE]]; extract_flags(); set_cpu_mode(cpu_modes[reg[REG_CPSR] & 0x1F]); - check_for_interrupts(); + + if((io_registers[REG_IE] & io_registers[REG_IF]) && + io_registers[REG_IME] && ((reg[REG_CPSR] & 0x80) == 0)) + { + reg_mode[MODE_IRQ][6] = reg[REG_PC] + 4; + spsr[MODE_IRQ] = reg[REG_CPSR]; + reg[REG_CPSR] = 0xD2; + address = 0x00000018; + set_cpu_mode(MODE_IRQ); + } if(reg[REG_CPSR] & 0x20) address |= 0x01;