mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-27 13:30:05 +00:00
ARM IAS: support #:{lower,upper}16: for GNU compatibility
The GNU assembler supports prefixing the expression with a '#' to indiciate that the value that is being moved is infact a constant. This improves the compatibility of the integrated assembler's parser for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198916 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
003132d48c
commit
7ff05025b0
@ -4813,6 +4813,10 @@ bool ARMAsmParser::parseOperand(SmallVectorImpl<MCParsedAsmOperand*> &Operands,
|
||||
bool ARMAsmParser::parsePrefix(ARMMCExpr::VariantKind &RefKind) {
|
||||
RefKind = ARMMCExpr::VK_ARM_None;
|
||||
|
||||
// consume an optional '#' (GNU compatibility)
|
||||
if (getLexer().is(AsmToken::Hash))
|
||||
Parser.Lex();
|
||||
|
||||
// :lower16: and :upper16: modifiers
|
||||
assert(getLexer().is(AsmToken::Colon) && "expected a :");
|
||||
Parser.Lex(); // Eat ':'
|
||||
|
44
test/MC/ARM/target-expressions.s
Normal file
44
test/MC/ARM/target-expressions.s
Normal file
@ -0,0 +1,44 @@
|
||||
@ RUN: llvm-mc -triple armv7-eabi -filetype asm -o - %s | FileCheck %s
|
||||
|
||||
.syntax unified
|
||||
|
||||
.type function,%function
|
||||
function:
|
||||
bx lr
|
||||
|
||||
.set deadbeat, 0xdeadbea7
|
||||
|
||||
.type test,%function
|
||||
test:
|
||||
movw r0, :lower16:function
|
||||
movt r0, :upper16:function
|
||||
|
||||
movw r1, #:lower16:function
|
||||
movt r1, #:upper16:function
|
||||
|
||||
movw r2, :lower16:deadbeat
|
||||
movt r2, :upper16:deadbeat
|
||||
|
||||
movw r3, #:lower16:deadbeat
|
||||
movt r3, #:upper16:deadbeat
|
||||
|
||||
movw r4, :lower16:0xD1510D6E
|
||||
movt r4, :upper16:0xD1510D6E
|
||||
|
||||
movw r5, #:lower16:0xD1510D6E
|
||||
movt r5, #:upper16:0xD1510D6E
|
||||
|
||||
@ CHECK-LABEL: test:
|
||||
@ CHECK: movw r0, :lower16:function
|
||||
@ CHECK: movt r0, :upper16:function
|
||||
@ CHECK: movw r1, :lower16:function
|
||||
@ CHECK: movt r1, :upper16:function
|
||||
@ CHECK: movw r2, :lower16:(3735928487)
|
||||
@ CHECK: movt r2, :upper16:(3735928487)
|
||||
@ CHECK: movw r3, :lower16:(3735928487)
|
||||
@ CHECK: movt r3, :upper16:(3735928487)
|
||||
@ CHECK: movw r4, :lower16:(3511749998)
|
||||
@ CHECK: movt r4, :upper16:(3511749998)
|
||||
@ CHECK: movw r5, :lower16:(3511749998)
|
||||
@ CHECK: movt r5, :upper16:(3511749998)
|
||||
|
Loading…
Reference in New Issue
Block a user