forked from OSchip/llvm-project
Teach the Thumb ASM parser that BKPT is allowed in IT blocks, even though it is always executed unconditionally.
llvm-svn: 139610
This commit is contained in:
parent
2cb4e3c554
commit
44ae2da4ec
|
@ -3532,7 +3532,10 @@ validateInstruction(MCInst &Inst,
|
|||
MCInstrDesc &MCID = getInstDesc(Inst.getOpcode());
|
||||
SMLoc Loc = Operands[0]->getStartLoc();
|
||||
// Check the IT block state first.
|
||||
if (inITBlock()) {
|
||||
// NOTE: In Thumb mode, the BKPT instruction has the interesting property of
|
||||
// being allowed in IT blocks, but not being predicable. It just always
|
||||
// executes.
|
||||
if (inITBlock() && Inst.getOpcode() != ARM::tBKPT) {
|
||||
unsigned bit = 1;
|
||||
if (ITState.FirstCond)
|
||||
ITState.FirstCond = false;
|
||||
|
|
|
@ -259,6 +259,14 @@ _func:
|
|||
@ CHECK: bic.w r8, r8, r5, asr #15 @ encoding: [0x28,0xea,0xe5,0x38]
|
||||
@ CHECK: bic.w r12, r12, r6, ror #29 @ encoding: [0x2c,0xea,0x76,0x7c]
|
||||
|
||||
@------------------------------------------------------------------------------
|
||||
@ BKPT
|
||||
@------------------------------------------------------------------------------
|
||||
it pl
|
||||
bkpt #234
|
||||
|
||||
@ CHECK: it pl @ encoding: [0x58,0xbf]
|
||||
@ CHECK: bkpt #234 @ encoding: [0xea,0xbe]
|
||||
|
||||
@------------------------------------------------------------------------------
|
||||
@ BXJ
|
||||
|
|
Loading…
Reference in New Issue