]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Fix stupid bug introduced in r2993, which causes many simple scalar
authorJulian Seward <jseward@acm.org>
Mon, 17 Nov 2014 14:16:56 +0000 (14:16 +0000)
committerJulian Seward <jseward@acm.org>
Mon, 17 Nov 2014 14:16:56 +0000 (14:16 +0000)
floating point instructions to ignore their operands and return zero.  Sigh.

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

VEX/priv/guest_arm64_toIR.c

index 9d0732809b1ef1fded003406d935c21c8c6588ff..f46fd5d823f69ed9b5b568c128377d6c36d2eb20 100644 (file)
@@ -12171,9 +12171,11 @@ Bool dis_AdvSIMD_fp_data_proc_2_source(/*MB_OUT*/DisResult* dres, UInt insn)
       }
       if (opcode <= BITS4(0,0,1,1)) {
          // This is really not good code.  TODO: avoid width-changing
+         IRTemp res = newTemp(ity);
+         assign(res, triop(iop, mkexpr(mk_get_IR_rounding_mode()),
+                                getQRegLO(nn, ity), getQRegLO(mm, ity)));
          putQReg128(dd, mkV128(0));
-         putQRegLO(dd, triop(iop, mkexpr(mk_get_IR_rounding_mode()),
-                                  getQRegLO(nn, ity), getQRegLO(mm, ity)));
+         putQRegLO(dd, mkexpr(res));
       } else {
          putQReg128(dd, unop(mkVecZEROHIxxOFV128(ty+2),
                              binop(iop, getQReg128(nn), getQReg128(mm))));