From 552fff6bb32ec9873feba5aa67007d6d8cbcdb7a Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 4 Nov 2014 23:30:07 +0100 Subject: [PATCH] Add valgrind-3.10.0-aarch64-frint.patch --- valgrind-3.10.0-aarch64-frint.patch | 33 +++++++++++++++++++++++++++++ valgrind.spec | 5 +++++ 2 files changed, 38 insertions(+) create mode 100644 valgrind-3.10.0-aarch64-frint.patch diff --git a/valgrind-3.10.0-aarch64-frint.patch b/valgrind-3.10.0-aarch64-frint.patch new file mode 100644 index 0000000..41b67bb --- /dev/null +++ b/valgrind-3.10.0-aarch64-frint.patch @@ -0,0 +1,33 @@ +commit 35343350beb699e87bae86a5466895de6d9827e9 +Author: sewardj +Date: Thu Oct 30 15:37:16 2014 +0000 + + Implement frintx d_d and s_s. Fixes #339926. + + + git-svn-id: svn://svn.valgrind.org/vex/trunk@2981 8f6e269a-dfd6-0310-a8e1-e2731360e62c + +diff --git a/VEX/priv/guest_arm64_toIR.c b/VEX/priv/guest_arm64_toIR.c +index 7f22f13..0377139 100644 +--- a/VEX/priv/guest_arm64_toIR.c ++++ b/VEX/priv/guest_arm64_toIR.c +@@ -11921,7 +11921,7 @@ Bool dis_AdvSIMD_fp_data_proc_1_source(/*MB_OUT*/DisResult* dres, UInt insn) + 011 zero (FRINTZ) + 000 tieeven + 100 tieaway (FRINTA) -- !! FIXME KLUDGED !! +- 110 per FPCR + "exact = TRUE" ++ 110 per FPCR + "exact = TRUE" (FRINTX) + 101 unallocated + */ + Bool isD = (ty & 1) == 1; +@@ -11935,6 +11935,10 @@ Bool dis_AdvSIMD_fp_data_proc_1_source(/*MB_OUT*/DisResult* dres, UInt insn) + case BITS3(0,0,1): ch = 'p'; irrmE = mkU32(Irrm_PosINF); break; + // The following is a kludge. Should be: Irrm_NEAREST_TIE_AWAY_0 + case BITS3(1,0,0): ch = 'a'; irrmE = mkU32(Irrm_NEAREST); break; ++ // I am unsure about the following, due to the "integral exact" ++ // description in the manual. What does it mean? ++ case BITS3(1,1,0): ++ ch = 'x'; irrmE = mkexpr(mk_get_IR_rounding_mode()); break; + default: break; + } + if (irrmE) { diff --git a/valgrind.spec b/valgrind.spec index e68967b..87424f4 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -73,6 +73,9 @@ Patch6: valgrind-3.10.0-aarch64-syscalls.patch # KDE#339858 arm64 recognize dmb sy. Data Memory Barrier full SYstem variant. Patch7: valgrind-3.10.0-aarch64-dmb-sy.patch +# KDE#339926 Implement frintx d_d and s_s. +Patch8: valgrind-3.10.0-aarch64-frint.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 @@ -178,6 +181,7 @@ Valgrind User Manual for details. %patch5 -p1 %patch6 -p1 %patch7 -p1 +%patch8 -p1 %build # We need to use the software collection compiler and binutils if available. @@ -332,6 +336,7 @@ echo ===============END TESTING=============== into valgrind-3.10.0-aarch64-syscalls.patch add fdatasync, msync, pread64, setreuid, setregid, mknodat, fchdir, chroot, fchownat, fchmod and fchown. +- Add valgrind-3.10.0-aarch64-frint.patch * Sat Oct 11 2014 Mark Wielaard - 3.10.0-4 - Add valgrind-3.10.0-aarch64-times.patch