Bug 381514 - unhandled instruction 0xD53BE002
Summary: unhandled instruction 0xD53BE002
Status: CLOSED NOT A BUG
Alias: None
Product: valgrind
Classification: Developer tools
Component: memcheck (other bugs)
Version First Reported In: 3.12.0
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-06-22 05:59 UTC by soren.brinkmann
Modified: 2017-06-22 14:42 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Full valgrind output (35.86 KB, text/plain)
2017-06-22 06:08 UTC, soren.brinkmann
Details

Note You need to log in before you can comment on or make changes to this bug.
Description soren.brinkmann 2017-06-22 05:59:27 UTC
I have an aarch64 Linux application that has the following instruction in its code:
   7d48c:       d53be002        mrs     x2, cntfrq_el0

That causes valgrind to abort execution with
ARM64 front end: branch_etc
disInstr(arm64): unhandled instruction 0xD53BE002
disInstr(arm64): 1101'0101 0011'1011 1110'0000 0000'0010
==2561== valgrind: Unrecognised instruction at address 0x48eb48c.
==2561==    at 0x48EB48C: xlnkGetGlobalCounter (in /media/card/libfilter2d_optflow.so)
==2561== Your program just tried to execute an instruction that Valgrind
==2561== did not recognise.  There are two possible reasons for this.
==2561== 1. Your program has a bug and erroneously jumped to a non-code
==2561==    location.  If you are running Memcheck and you just saw a
==2561==    warning about a bad jump, it's probably your program's fault.
==2561== 2. The instruction is legitimate but Valgrind doesn't handle it,
==2561==    i.e. it's Valgrind's fault.  If you think this is the case or
==2561==    you are not sure, please let us know and we'll try to fix it.
==2561== Either way, Valgrind will now raise a SIGILL signal which will
==2561== probably kill your program.
==2561==
==2561== Process terminating with default action of signal 4 (SIGILL)
==2561==  Illegal opcode at address 0x48EB48C
==2561==    at 0x48EB48C: xlnkGetGlobalCounter (in /media/card/libfilter2d_optflow.so)
Comment 1 soren.brinkmann 2017-06-22 06:03:43 UTC
uname -a:
Linux plnx_aarch64 4.9.0 #141 SMP Wed Jun 21 15:49:29 PDT 2017 aarch64 aarch64 aarch64 GNU/Linux
Comment 2 soren.brinkmann 2017-06-22 06:08:01 UTC
Created attachment 106221 [details]
Full valgrind output

This is the output from the valgrind run with the '-v' option.
Comment 3 Julian Seward 2017-06-22 12:27:46 UTC
This has been fixed already, in the 3.13.0 release which you can
now download from valgrind.org.  Upgrade!
Comment 4 soren.brinkmann 2017-06-22 14:42:08 UTC
Thanks, Julian. Correct 3.13 works, unfortunately that's not available through open-embedded yet.