]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Correctly handle add(hi) when the destination register is the PC.
authorJulian Seward <jseward@acm.org>
Sat, 15 Mar 2014 08:14:06 +0000 (08:14 +0000)
committerJulian Seward <jseward@acm.org>
Sat, 15 Mar 2014 08:14:06 +0000 (08:14 +0000)
Fixes #332037.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2838

VEX/priv/guest_arm_toIR.c

index f3bc80d3473c94b2456f29ebc3913dd44607ab18..86fa03975dde101aecf544313c2c3c19873cc6d8 100644 (file)
@@ -18203,9 +18203,9 @@ DisResult disInstr_THUMB_WRK (
             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;