|
From: <sv...@va...> - 2012-03-21 19:36:45
|
sewardj 2012-03-21 19:36:37 +0000 (Wed, 21 Mar 2012)
New Revision: 2266
Log:
For (T3) "ADD (SP plus register)", allow "add rX, SP, rY, lsl
#{1,2,3}" as well as the non-shifted version.
Modified files:
trunk/priv/guest_arm_toIR.c
Modified: trunk/priv/guest_arm_toIR.c (+2 -2)
===================================================================
--- trunk/priv/guest_arm_toIR.c 2012-03-17 23:38:39 +00:00 (rev 2265)
+++ trunk/priv/guest_arm_toIR.c 2012-03-21 19:36:37 +00:00 (rev 2266)
@@ -16365,10 +16365,10 @@
UInt how = INSN1(5,4);
Bool valid = !isBadRegT(rD) && !isBadRegT(rN) && !isBadRegT(rM);
- /* but allow "add.w reg, sp, reg w/ no shift
+ /* but allow "add.w reg, sp, reg, lsl #N for N=0,1,2 or 3
(T3) "ADD (SP plus register) */
if (!valid && INSN0(8,5) == BITS4(1,0,0,0) // add
- && rD != 15 && rN == 13 && imm5 == 0 && how == 0) {
+ && rD != 15 && rN == 13 && imm5 <= 3 && how == 0) {
valid = True;
}
/* also allow "sub.w reg, sp, reg w/ no shift
|