forked from OSchip/llvm-project
Thumb assembly parsing and encoding for ADD(register) instruction.
llvm-svn: 137759
This commit is contained in:
parent
59cce71af6
commit
58ffdccab1
|
@ -2757,6 +2757,15 @@ bool ARMAsmParser::shouldOmitCCOutOperand(StringRef Mnemonic,
|
||||||
static_cast<ARMOperand*>(Operands[4])->isImm0_65535Expr() &&
|
static_cast<ARMOperand*>(Operands[4])->isImm0_65535Expr() &&
|
||||||
static_cast<ARMOperand*>(Operands[1])->getReg() == 0)
|
static_cast<ARMOperand*>(Operands[1])->getReg() == 0)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
// Register-register 'add' for thumb does not have a cc_out operand
|
||||||
|
// when there are only two register operands.
|
||||||
|
if (isThumb() && Mnemonic == "add" && Operands.size() == 5 &&
|
||||||
|
static_cast<ARMOperand*>(Operands[3])->isReg() &&
|
||||||
|
static_cast<ARMOperand*>(Operands[4])->isReg() &&
|
||||||
|
static_cast<ARMOperand*>(Operands[1])->getReg() == 0)
|
||||||
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
@ RUN: llvm-mc -triple=thumbv6-apple-darwin -show-encoding < %s | FileCheck %s
|
||||||
|
.syntax unified
|
||||||
|
.globl _func
|
||||||
|
|
||||||
|
@ Check that the assembler can handle the documented syntax from the ARM ARM.
|
||||||
|
@ For complex constructs like shifter operands, check more thoroughly for them
|
||||||
|
@ once then spot check that following instructions accept the form generally.
|
||||||
|
@ This gives us good coverage while keeping the overall size of the test
|
||||||
|
@ more reasonable.
|
||||||
|
|
||||||
|
_func:
|
||||||
|
@ CHECK: _func
|
||||||
|
|
||||||
|
@------------------------------------------------------------------------------
|
||||||
|
@ ADD (register)
|
||||||
|
@------------------------------------------------------------------------------
|
||||||
|
adds r1, r2, r3
|
||||||
|
add r2, r8
|
||||||
|
|
||||||
|
@ CHECK: adds r1, r2, r3 @ encoding: [0xd1,0x18]
|
||||||
|
@ CHECK: add r2, r8 @ encoding: [0x42,0x44]
|
Loading…
Reference in New Issue