Add valgrind-3.11.0-amd64-fcom.patch
This commit is contained in:
parent
1f54a53f19
commit
4e7e6ed1e6
49
valgrind-3.11.0-amd64-fcom.patch
Normal file
49
valgrind-3.11.0-amd64-fcom.patch
Normal file
@ -0,0 +1,49 @@
|
||||
commit 6f472ff11be7fa4a1114b2e3d321609717325311
|
||||
Author: tom <tom@8f6e269a-dfd6-0310-a8e1-e2731360e62c>
|
||||
Date: Wed Feb 3 10:14:18 2016 +0000
|
||||
|
||||
Handle missing FCOM case on amd64.
|
||||
|
||||
Patch from Mark Harris on BZ#212352.
|
||||
|
||||
|
||||
git-svn-id: svn://svn.valgrind.org/vex/trunk@3207 8f6e269a-dfd6-0310-a8e1-e2731360e62c
|
||||
|
||||
diff --git a/VEX/priv/guest_amd64_toIR.c b/VEX/priv/guest_amd64_toIR.c
|
||||
index af4817f..936d16f 100644
|
||||
--- a/VEX/priv/guest_amd64_toIR.c
|
||||
+++ b/VEX/priv/guest_amd64_toIR.c
|
||||
@@ -6401,19 +6401,20 @@ ULong dis_FPU ( /*OUT*/Bool* decode_ok,
|
||||
fp_do_op_mem_ST_0 ( addr, "mul", dis_buf, Iop_MulF64, True );
|
||||
break;
|
||||
|
||||
-//.. case 2: /* FCOM double-real */
|
||||
-//.. DIP("fcoml %s\n", dis_buf);
|
||||
-//.. /* This forces C1 to zero, which isn't right. */
|
||||
-//.. put_C3210(
|
||||
-//.. binop( Iop_And32,
|
||||
-//.. binop(Iop_Shl32,
|
||||
-//.. binop(Iop_CmpF64,
|
||||
-//.. get_ST(0),
|
||||
-//.. loadLE(Ity_F64,mkexpr(addr))),
|
||||
-//.. mkU8(8)),
|
||||
-//.. mkU32(0x4500)
|
||||
-//.. ));
|
||||
-//.. break;
|
||||
+ case 2: /* FCOM double-real */
|
||||
+ DIP("fcoml %s\n", dis_buf);
|
||||
+ /* This forces C1 to zero, which isn't right. */
|
||||
+ put_C3210(
|
||||
+ unop(Iop_32Uto64,
|
||||
+ binop( Iop_And32,
|
||||
+ binop(Iop_Shl32,
|
||||
+ binop(Iop_CmpF64,
|
||||
+ get_ST(0),
|
||||
+ loadLE(Ity_F64,mkexpr(addr))),
|
||||
+ mkU8(8)),
|
||||
+ mkU32(0x4500)
|
||||
+ )));
|
||||
+ break;
|
||||
|
||||
case 3: /* FCOMP double-real */
|
||||
DIP("fcompl %s\n", dis_buf);
|
@ -142,6 +142,9 @@ Patch30: valgrind-3.11.0-isZeroU.patch
|
||||
# KDE#359472 - PPC vsubuqm instruction doesn't always give the correct result
|
||||
Patch31: valgrind-3.11.0-ppc64-128bit-mod-carry.patch
|
||||
|
||||
# KDE#212352 - vex amd64 unhandled opc_aux = 0x 2, first_opcode == 0xDC (FCOM)
|
||||
Patch32: valgrind-3.11.0-amd64-fcom.patch
|
||||
|
||||
%if %{build_multilib}
|
||||
# Ensure glibc{,-devel} is installed for both multilib arches
|
||||
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
|
||||
@ -281,6 +284,7 @@ chmod 755 memcheck/tests/arm64-linux/filter_stderr
|
||||
%patch29 -p1
|
||||
%patch30 -p1
|
||||
%patch31 -p1
|
||||
%patch32 -p1
|
||||
|
||||
%build
|
||||
# We need to use the software collection compiler and binutils if available.
|
||||
@ -479,6 +483,7 @@ echo ===============END TESTING===============
|
||||
- Add valgrind-3.11.0-isZeroU.patch
|
||||
- Replace valgrind-3.11.0-arm64-ldpsw.patch with upstream version
|
||||
- Add valgrind-3.11.0-ppc64-128bit-mod-carry.patch
|
||||
- Add valgrind-3.11.0-amd64-fcom.patch
|
||||
|
||||
* Mon Mar 14 2016 Mark Wielaard <mjw@redhat.com> - 3.11.0-18
|
||||
- Update valgrind-3.11.0-libstdc++-supp.patch.
|
||||
|
Loading…
Reference in New Issue
Block a user