From: Julian Seward Date: Thu, 2 Sep 2010 21:14:10 +0000 (+0000) Subject: Enable BX PC in Thumb mode. Partial fix for #249775. X-Git-Tag: svn/VALGRIND_3_6_1^2~55 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=45bd698086355b8cd3b6af05ea1c2fd00bc54a3f;p=thirdparty%2Fvalgrind.git Enable BX PC in Thumb mode. Partial fix for #249775. git-svn-id: svn://svn.valgrind.org/vex/trunk@2027 --- diff --git a/VEX/priv/guest_arm_toIR.c b/VEX/priv/guest_arm_toIR.c index c5652ccfdf..32daaf0d7b 100644 --- a/VEX/priv/guest_arm_toIR.c +++ b/VEX/priv/guest_arm_toIR.c @@ -14560,7 +14560,7 @@ DisResult disInstr_THUMB_WRK ( suitably encoded address therefore (w CPSR.T at the bottom). Have to special-case r15, as usual. */ UInt rM = (INSN0(6,6) << 3) | INSN0(5,3); - if (BITS3(0,0,0) == INSN0(2,0) &&/*atc*/rM != 15) { + if (BITS3(0,0,0) == INSN0(2,0)) { IRTemp dst = newTemp(Ity_I32); gen_SIGILL_T_if_in_but_NLI_ITBlock(old_itstate, new_itstate); mk_skip_over_T16_if_cond_is_false(condT); @@ -14569,7 +14569,6 @@ DisResult disInstr_THUMB_WRK ( if (rM <= 14) { assign( dst, getIRegT(rM) ); } else { - break; // ATC vassert(rM == 15); assign( dst, mkU32(guest_R15_curr_instr_notENC + 4) ); }