From cd7de52fea8359da3c37f661b0da0c145b9b3f7e Mon Sep 17 00:00:00 2001 From: bunnei Date: Sat, 12 Apr 2014 01:35:45 -0400 Subject: [PATCH] added a SETABORT method that does not update LR (for HLE'd SVC that does not jump appcore CPU to an IRQ vector) --- src/core/arm/interpreter/armemu.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/core/arm/interpreter/armemu.h b/src/core/arm/interpreter/armemu.h index 7391dea7f..7c118948a 100644 --- a/src/core/arm/interpreter/armemu.h +++ b/src/core/arm/interpreter/armemu.h @@ -229,6 +229,17 @@ extern ARMword isize; } \ while (0) +#define SETABORT_SKIPBRANCH(i, m, d) \ + do \ + { \ + int SETABORT_mode = (m); \ + \ + ARMul_SetSPSR (state, SETABORT_mode, ARMul_GetCPSR (state)); \ + ARMul_SetCPSR (state, ((ARMul_GetCPSR (state) & ~(EMODE | TBIT)) \ + | (i) | SETABORT_mode)); \ + } \ + while (0) + //#ifndef MODE32 #define VECTORS 0x20 #define LEGALADDR 0x03ffffff