valgrind/0001-Power-PC-Fix-extraction-of-the-L-field-for-sync-inst.patch
Dirk Mueller a306f3d4aa - update to 3.16.0:
* Many bugfixes, too many to list here, see NEWS file
  - The implicit memcpy done by each call to realloc now counts towards the
    read and write counts of resized heap blocks, making those counts higher
    and more accurate.
  - cg_annotate's --auto and --show-percs options now default to 'yes', because
    they are usually wanted.
  - callgrind_annotate's --auto and --show-percs options now default to 'yes',
    because they are usually wanted.
  - The command option --collect-systime has been enhanced to specify
    the unit used to record the elapsed time spent during system calls.
    The command option now accepts the values no|yes|msec|usec|nsec,
    where yes is a synonym of msec.  When giving the value nsec, the
    system cpu time of system calls is also recorded.
  - Several memcheck options are now dynamically changeable.
    Use  valgrind --help-dyn-options  to list them.
  - The release 3.15 introduced a backward incompatible change for
    some suppression entries related to preadv and pwritev syscalls.
    When reading a suppression entry using the unsupported 3.14 format,
    valgrind will now produce a warning to say the suppression entry will not
    work, and suggest the needed change.
  - Significantly fewer false positive errors on optimised code generated by
    Clang and GCC.  In particular, Memcheck now deals better with the
    situation where the compiler will transform C-level "A && B" into "B && A"
    under certain circumstances (in which the transformation is valid).
    Handling of integer equality/non-equality checks on partially defined
    values is also improved on some architectures.
  - The exprimental Stack and Global Array Checking tool has been removed.
    It only ever worked on x86 and amd64, and even on those it had a
    high false positive rate and was slow.  An alternative for detecting

OBS-URL: https://build.opensuse.org/package/show/devel:tools/valgrind?expand=0&rev=221
2020-06-19 15:21:22 +00:00

35 lines
1.3 KiB
Diff

From fb6f7abcbc92506d302fb18a2c5fc853d2929248 Mon Sep 17 00:00:00 2001
From: Carl Love <cel@us.ibm.com>
Date: Tue, 9 Jun 2020 10:42:03 -0500
Subject: [PATCH] Power PC Fix extraction of the L field for sync instruction
The L field is currently a two bit[22:21] field in ISA 3.0. The size of the
L field has changed over time.
Currently the ISA 3.0 Valgrind sync instruction support code sets the
flag_L for the instruction L field to a five bit value that includes bits
that are marked reserved the sync instruction. This patch fixes the issue for ISA 3.0
to only setting flag_L the specified two bits.
Valgrind bugzilla: https://bugs.kde.org/show_bug.cgi?id=422677
---
VEX/priv/guest_ppc_toIR.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
index 582c59ec0..c4965a19e 100644
--- a/VEX/priv/guest_ppc_toIR.c
+++ b/VEX/priv/guest_ppc_toIR.c
@@ -8777,7 +8777,7 @@ static Bool dis_memsync ( UInt theInstr )
/* X-Form, XL-Form */
UChar opc1 = ifieldOPC(theInstr);
UInt b11to25 = IFIELD(theInstr, 11, 15);
- UChar flag_L = ifieldRegDS(theInstr);
+ UChar flag_L = IFIELD(theInstr, 21, 2); //ISA 3.0
UInt b11to20 = IFIELD(theInstr, 11, 10);
UInt M0 = IFIELD(theInstr, 11, 5);
UChar rD_addr = ifieldRegDS(theInstr);
--
2.27.0