|
From: <sv...@va...> - 2014-03-15 08:14:19
|
Author: sewardj
Date: Sat Mar 15 08:14:06 2014
New Revision: 2838
Log:
Correctly handle add(hi) when the destination register is the PC.
Fixes #332037.
Modified:
trunk/priv/guest_arm_toIR.c
Modified: trunk/priv/guest_arm_toIR.c
==============================================================================
--- trunk/priv/guest_arm_toIR.c (original)
+++ trunk/priv/guest_arm_toIR.c Sat Mar 15 08:14:06 2014
@@ -18203,9 +18203,9 @@
condT = IRTemp_INVALID;
// now uncond
/* non-interworking branch */
- irsb->next = binop(Iop_Or32, mkexpr(res), mkU32(1));
- irsb->jumpkind = Ijk_Boring;
- dres.whatNext = Dis_StopHere;
+ llPutIReg(15, binop(Iop_Or32, mkexpr(res), mkU32(1)));
+ dres.jk_StopHere = Ijk_Boring;
+ dres.whatNext = Dis_StopHere;
}
DIP("add(hi) r%u, r%u\n", rD, rM);
goto decode_success;
|