From cd7de52fea8359da3c37f661b0da0c145b9b3f7e Mon Sep 17 00:00:00 2001
From: bunnei <ericbunnie@gmail.com>
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