mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
b01d1181e9
Summary: Dollar signed prefixed integers were not allowed by the AsmParser to be used as Identifiers, differing from the GNU assembler behavior. This patch updates the parsing of Identifiers to consider such cases as valid, where the identifier string includes the $ prefix itself. As the Lexer currently splits these occurrences into separate tokens, those need to be combined by the AsmParser itself. Reviewers: efriedma, chill Reviewed By: efriedma Subscribers: sdardis, hiraditya, jrtc27, atanasyan, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D75111
50 lines
2.0 KiB
ArmAsm
50 lines
2.0 KiB
ArmAsm
@ RUN: llvm-mc -triple=armv7-apple-darwin -show-encoding < %s | FileCheck %s
|
|
|
|
@------------------------------------------------------------------------------
|
|
@ Branch targets destined for ARM mode must == 0 (mod 4), otherwise (mod 2).
|
|
@------------------------------------------------------------------------------
|
|
|
|
b #4
|
|
bl #4
|
|
beq #4
|
|
blx #2
|
|
|
|
@ CHECK: b #4 @ encoding: [0x01,0x00,0x00,0xea]
|
|
@ CHECK: bl #4 @ encoding: [0x01,0x00,0x00,0xeb]
|
|
@ CHECK: beq #4 @ encoding: [0x01,0x00,0x00,0x0a]
|
|
@ CHECK: blx #2 @ encoding: [0x00,0x00,0x00,0xfb]
|
|
|
|
@------------------------------------------------------------------------------
|
|
@ Leading '$' on branch targets must not be dropped if part of symbol names
|
|
@------------------------------------------------------------------------------
|
|
|
|
.global $foo
|
|
.global $4
|
|
b $foo
|
|
bl $foo
|
|
beq $foo
|
|
blx $foo
|
|
b $foo + 4
|
|
bl $4
|
|
beq $4 + 4
|
|
|
|
@ CHECK: b ($foo) @ encoding: [A,A,A,0xea]
|
|
@ CHECK: bl ($foo) @ encoding: [A,A,A,0xeb]
|
|
@ CHECK: beq ($foo) @ encoding: [A,A,A,0x0a]
|
|
@ CHECK: blx ($foo) @ encoding: [A,A,A,0xfa]
|
|
@ CHECK: b #($foo)+4 @ encoding: [A,A,A,0xea]
|
|
@ CHECK: bl ($4) @ encoding: [A,A,A,0xeb]
|
|
@ CHECK: beq #($4)+4 @ encoding: [A,A,A,0x0a]
|
|
|
|
@------------------------------------------------------------------------------
|
|
@ Leading '$' should be allowed to introduce an expression
|
|
@------------------------------------------------------------------------------
|
|
|
|
.global bar
|
|
b $ 4
|
|
bl $ bar + 4
|
|
blx $ bar
|
|
@ CHECK: b #4 @ encoding: [0x01,0x00,0x00,0xea]
|
|
@ CHECK: bl #bar+4 @ encoding: [A,A,A,0xeb]
|
|
@ CHECK: blx bar @ encoding: [A,A,A,0xfa]
|