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.