From: Julian Seward Date: Sat, 15 Mar 2014 08:14:06 +0000 (+0000) Subject: Correctly handle add(hi) when the destination register is the PC. X-Git-Tag: svn/VALGRIND_3_10_1^2~132 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=325c0d5bea46678e0759e3cb5679e01fb671d0ac;p=thirdparty%2Fvalgrind.git Correctly handle add(hi) when the destination register is the PC. Fixes #332037. git-svn-id: svn://svn.valgrind.org/vex/trunk@2838 --- diff --git a/VEX/priv/guest_arm_toIR.c b/VEX/priv/guest_arm_toIR.c index f3bc80d347..86fa03975d 100644 --- a/VEX/priv/guest_arm_toIR.c +++ b/VEX/priv/guest_arm_toIR.c @@ -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;