Bug 356823

Summary: Unsupported ARM instruction: stlex
Product: [Developer tools] valgrind Reporter: Роман Донченко <dpb>
Component: vexAssignee: Julian Seward <jseward>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:

Description Роман Донченко 2015-12-17 11:21:08 UTC
Note: this instruction is new to ARMv8.

Simple example:

$ cat test.c
int main() {
    asm volatile("stlex r0, r1, [r2]");
}
$ gcc -marm -march=armv8-a test.c 
$ valgrind ./a.out
==28004== Memcheck, a memory error detector
==28004== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==28004== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==28004== Command: ./a.out
==28004== 
disInstr(arm): unhandled instruction: 0xE1820E91
                 cond=14(0xE) 27:20=24(0x18) 4:4=1 3:0=1(0x1)
...


Reproducible: Always
Comment 1 Julian Seward 2016-09-16 13:53:45 UTC
Fixed in r3248, along with its friends, LDAEX{,B,H,D}, STLEX{,B,H,D}.