forked from OSchip/llvm-project
ARM: Permit "sp" in ARM variant of STREXD instructions
Patch from Mihail Popa llvm-svn: 179854
This commit is contained in:
parent
3cdeb17ff2
commit
27ff504653
|
@ -3573,7 +3573,7 @@ static DecodeStatus DecodeDoubleRegStore(MCInst &Inst, unsigned Insn,
|
||||||
unsigned Rn = fieldFromInstruction(Insn, 16, 4);
|
unsigned Rn = fieldFromInstruction(Insn, 16, 4);
|
||||||
unsigned pred = fieldFromInstruction(Insn, 28, 4);
|
unsigned pred = fieldFromInstruction(Insn, 28, 4);
|
||||||
|
|
||||||
if (!Check(S, DecoderGPRRegisterClass(Inst, Rd, Address, Decoder)))
|
if (!Check(S, DecodeGPRnopcRegisterClass(Inst, Rd, Address, Decoder)))
|
||||||
return MCDisassembler::Fail;
|
return MCDisassembler::Fail;
|
||||||
|
|
||||||
if ((Rt & 1) || Rt == 0xE || Rn == 0xF) return MCDisassembler::Fail;
|
if ((Rt & 1) || Rt == 0xE || Rn == 0xF) return MCDisassembler::Fail;
|
||||||
|
|
|
@ -1823,12 +1823,13 @@
|
||||||
# CHECK: strexh r4, r2, [r5
|
# CHECK: strexh r4, r2, [r5
|
||||||
# CHECK: strex r2, r1, [r7
|
# CHECK: strex r2, r1, [r7
|
||||||
# CHECK: strexd r6, r2, r3, [r8
|
# CHECK: strexd r6, r2, r3, [r8
|
||||||
|
# CHECK: strexd sp, r0, r1, [r0]
|
||||||
|
|
||||||
0x93 0x1f 0xc4 0xe1
|
0x93 0x1f 0xc4 0xe1
|
||||||
0x92 0x4f 0xe5 0xe1
|
0x92 0x4f 0xe5 0xe1
|
||||||
0x91 0x2f 0x87 0xe1
|
0x91 0x2f 0x87 0xe1
|
||||||
0x92 0x6f 0xa8 0xe1
|
0x92 0x6f 0xa8 0xe1
|
||||||
|
0x90 0xdf 0xa0 0xe1
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# SUB
|
# SUB
|
||||||
|
|
Loading…
Reference in New Issue