|
From: <sv...@va...> - 2011-10-27 11:03:22
|
Author: sewardj
Date: 2011-10-27 11:58:38 +0100 (Thu, 27 Oct 2011)
New Revision: 2228
Log:
Merge from trunk, r2227 (Handle "add.w reg, sp, #constT" et al better.)
Modified:
branches/VEX_3_7_BRANCH/priv/guest_arm_toIR.c
Modified: branches/VEX_3_7_BRANCH/priv/guest_arm_toIR.c
===================================================================
--- branches/VEX_3_7_BRANCH/priv/guest_arm_toIR.c 2011-10-26 15:06:25 UTC (rev 2227)
+++ branches/VEX_3_7_BRANCH/priv/guest_arm_toIR.c 2011-10-27 10:58:38 UTC (rev 2228)
@@ -16077,8 +16077,8 @@
UInt rN = INSN0(3,0);
UInt rD = INSN1(11,8);
Bool valid = !isBadRegT(rN) && !isBadRegT(rD);
- /* but allow "add.w reg, sp, #constT" */
- if (!valid && rN == 13 && rD != 15)
+ /* but allow "add.w reg, sp, #constT" for reg != PC */
+ if (!valid && rD <= 14 && rN == 13)
valid = True;
if (valid) {
IRTemp argL = newTemp(Ity_I32);
@@ -16104,8 +16104,8 @@
UInt rN = INSN0(3,0);
UInt rD = INSN1(11,8);
Bool valid = !isBadRegT(rN) && !isBadRegT(rD);
- /* but allow "addw sp, sp, #uimm12" */
- if (!valid && rD == 13 && rN == 13)
+ /* but allow "addw reg, sp, #uimm12" for reg != PC */
+ if (!valid && rD <= 14 && rN == 13)
valid = True;
if (valid) {
IRTemp argL = newTemp(Ity_I32);
|