From efebd5589a53f3f21f36d1a3c92a4e567bd89c8e Mon Sep 17 00:00:00 2001
From: Normmatt <normmatt234@gmail.com>
Date: Wed, 17 Dec 2014 02:28:12 -0500
Subject: [PATCH] armemu: Fix SXTAH

---
 src/core/arm/interpreter/armemu.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/core/arm/interpreter/armemu.cpp b/src/core/arm/interpreter/armemu.cpp
index 5752d116f9..8433232933 100644
--- a/src/core/arm/interpreter/armemu.cpp
+++ b/src/core/arm/interpreter/armemu.cpp
@@ -6057,7 +6057,8 @@ L_stm_s_takeabort:
 
 			return 1;
 		}
-		case 0x6b: {
+		case 0x6b:
+		{
 			ARMword Rm;
 			int ror = -1;
 
@@ -6088,7 +6089,7 @@ L_stm_s_takeabort:
 			if (ror == -1)
 				break;
 
-			Rm = ((state->Reg[BITS(0, 3)] >> ror) & 0xFFFF);
+			Rm = ((state->Reg[BITS(0, 3)] >> ror) & 0xFFFF) | ((state->Reg[BITS(0, 3)] << (32 - ror)) & 0xFFFF) & 0xFFFF;
 			if (Rm & 0x8000)
 				Rm |= 0xffff0000;