Bug 357734 - "unhandled instruction 0x1AC12D8C" for ARM64/AARCH64
Summary: "unhandled instruction 0x1AC12D8C" for ARM64/AARCH64
Status: RESOLVED FIXED
Alias: None
Product: valgrind
Classification: Developer tools
Component: memcheck (show other bugs)
Version: unspecified
Platform: Debian stable Linux
: NOR minor
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-01-09 13:00 UTC by Jeffrey Walton
Modified: 2016-07-04 16:41 UTC (History)
0 users

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jeffrey Walton 2016-01-09 13:00:16 UTC
Please ignore this bug report. The issue below was fixed in Valgrind 3.11. It will be experienced by Linaro users because the distro supplies Valgrind 3.10. We are providing the report for others who experience the finding but receive 0 search results.

We are using a LeMaker HiKey for testing (http://www.amazon.com/dp/B019O3QTSA). It runs Linaro/AARCH64. We experienced and illegal opcode:

    disInstr(arm64): unhandled instruction 0x1AC12D8C
    disInstr(arm64): 0001'1010 1100'0001 0010'1101 1000'1100

The offending line of code, rotlVariable, is a simple "rotate register" (as opposed to a "rotate immediate").

*****

It was experienced with 3.11:

    $ /usr/bin/valgrind --version
    valgrind-3.10.0

*****

ARM64 front end: data_processing_register
disInstr(arm64): unhandled instruction 0x1AC12D8C
disInstr(arm64): 0001'1010 1100'0001 0010'1101 1000'1100
==8610== valgrind: Unrecognised instruction at address 0x542a90.
==8610==    at 0x542A90: rotlVariable<unsigned int> (misc.h:1224)
==8610==    by 0x542A90: CryptoPP::CAST128::Enc::ProcessAndXorBlock(unsigned char const*, unsigned char const*, unsigned char*) const (cast.cpp:43)
==8610==    by 0x483E8B: ProcessBlock (cryptlib.h:726)
==8610==    by 0x483E8B: BlockTransformationTest(CipherFactory const&, CryptoPP::BufferedTransformation&, unsigned int) (validat1.cpp:1240)
==8610==    by 0x4869EB: ValidateCAST() (validat1.cpp:2031)
==8610==    by 0x48A4E3: ValidateAll(bool) (validat1.cpp:111)
==8610==    by 0x47391F: Validate(int, bool, char const*) (test.cpp:870)
==8610==    by 0x479B67: main (test.cpp:342)