https://bugs.kde.org/show_bug.cgi?id=513218

            Bug ID: 513218
           Summary: disInstr(arm64): unhandled instruction 0xA8000C02
    Classification: Developer tools
           Product: valgrind
      Version First 3.24.0
       Reported In:
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: vex
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

Created attachment 187523
  --> https://bugs.kde.org/attachment.cgi?id=187523&action=edit
Naïve fix.

SUMMARY
The STNP instruction, encountered in the Mali driver, is not handled.
For reference:
https://developer.arm.com/documentation/ddi0602/2023-06/Base-Instructions/STNP--Store-Pair-of-Registers--with-non-temporal-hint-?lang=en

OBSERVED RESULT
(Truncated output)
```
ARM64 front end: load_store
disInstr(arm64): unhandled instruction 0xA8000C02
disInstr(arm64): 1010'1000 0000'0000 0000'1100 0000'0010
==7901== valgrind: Unrecognised instruction at address 0x73cc4c0.
==7901==    at 0x73CC4C0: ??? (in /usr/lib/libmali.so.0.47.0)
==7901==    by 0x73D48E7: ??? (in /usr/lib/libmali.so.0.47.0)
==7901==    by 0x73C5C33: ??? (in /usr/lib/libmali.so.0.47.0)
==7901==    by 0x737AC2F: ??? (in /usr/lib/libmali.so.0.47.0)
==7901==    by 0x63C2477: ??? (in /usr/lib/libmali.so.0.47.0)
==7901==    by 0x63822C7: ??? (in /usr/lib/libmali.so.0.47.0)
==7901==    by 0x638170B: ??? (in /usr/lib/libmali.so.0.47.0)
==7901==    by 0x639C18B: ??? (in /usr/lib/libmali.so.0.47.0)
==7901==    by 0x639CBA3: ??? (in /usr/lib/libmali.so.0.47.0)
==7901==    by 0x638E477: ??? (in /usr/lib/libmali.so.0.47.0)
==7901==    by 0x6341597: glTexSubImage2D (in /usr/lib/libmali.so.0.47.0)
==7901==    by 0x5092A3B: ??? (in /usr/lib/libskia.so)
==7901== Your program just tried to execute an instruction that Valgrind
==7901== did not recognise.  There are two possible reasons for this.
==7901== 1. Your program has a bug and erroneously jumped to a non-code
==7901==    location.  If you are running Memcheck and you just saw a
==7901==    warning about a bad jump, it's probably your program's fault.
==7901== 2. The instruction is legitimate but Valgrind doesn't handle it,
==7901==    i.e. it's Valgrind's fault.  If you think this is the case or
==7901==    you are not sure, please let us know and we'll try to fix it.
==7901== Either way, Valgrind will now raise a SIGILL signal which will
==7901== probably kill your program.
```

EXPECTED RESULT
The instruction is handled.

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
(available in the Info Center app, or by running `kinfo` in a terminal window)
Linux/KDE Plasma: 
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
I have attached a patch that at least superficially fixes the issue but I
cannot myself confirm that it actually does the right thing. It relies on the
assumption that L/STP is similar enough that they can be treated as the same.
Hopefully it will help provide context.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to