Bug 357734

Summary: "unhandled instruction 0x1AC12D8C" for ARM64/AARCH64
Product: [Developer tools] valgrind Reporter: Jeffrey Walton <noloader>
Component: memcheckAssignee: Julian Seward <jseward>
Status: RESOLVED FIXED    
Severity: minor    
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Debian stable   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

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)