Public bug reported:

Valgrind, including version 3.16, mishandles the L field of the sync 
instruction.
More details are available at: https://bugs.kde.org/show_bug.cgi?id=422677

A fix is available upstream:

commit fb6f7abcbc92506d302fb18a2c5fc853d2929248
Author: Carl Love <c...@us.ibm.com>
Date:   Tue Jun 9 10:42:03 2020 -0500

    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.


Steps to Reproduce:

$ cat test-sync.c 
#define __SYNC(l) ".long (0x7c0004AC | ((" #l ") << 21))"

int
main ()
{
        asm volatile(__SYNC(4) : : : "memory");
}
$ gcc test-sync.c && valgrind --tool=none ./a.out
==150073== Nulgrind, the minimal Valgrind tool
==150073== Copyright (C) 2002-2017, and GNU GPL'd, by Nicholas Nethercote.
==150073== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==150073== Command: ./a.out
==150073== 
dis_memsync(ppc)(sync/lwsync,flag_L)
disInstr(ppc): unhandled instruction: 0x7C8004AC
                 primary 31(0x1F), secondary 1196(0x4AC)
==150073== valgrind: Unrecognised instruction at address 0x180788.
==150073==    at 0x180788: main (in /home/tuliom/tmp/a.out)
==150073== Your program just tried to execute an instruction that Valgrind
==150073== did not recognise.

** Affects: valgrind
     Importance: Unknown
         Status: Unknown

** Affects: valgrind (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1884117

Title:
   Valgrind: PPC sync instruction L field should only be 2 bits in ISA
  3.0

To manage notifications about this bug go to:
https://bugs.launchpad.net/valgrind/+bug/1884117/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to