ARM IAS: add support for the .pool directive

The .pool directive is an alias for the .ltorg directive used to create a
literal pool.  Simply treat .pool as if .ltorg was passed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197787 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Saleem Abdulrasool 2013-12-20 07:21:16 +00:00
parent 69475dd92b
commit 6692ce18e8
2 changed files with 20 additions and 2 deletions

View File

@ -7910,7 +7910,7 @@ bool ARMAsmParser::ParseDirective(AsmToken DirectiveID) {
return parseDirectiveInst(DirectiveID.getLoc(), 'n');
else if (IDVal == ".inst.w")
return parseDirectiveInst(DirectiveID.getLoc(), 'w');
else if (IDVal == ".ltorg")
else if (IDVal == ".ltorg" || IDVal == ".pool")
return parseDirectiveLtorg(DirectiveID.getLoc());
return true;
}
@ -8464,7 +8464,7 @@ bool ARMAsmParser::parseDirectiveInst(SMLoc Loc, char Suffix) {
}
/// parseDirectiveLtorg
/// ::= .ltorg
/// ::= .ltorg | .pool
bool ARMAsmParser::parseDirectiveLtorg(SMLoc L) {
MCStreamer &Streamer = getParser().getStreamer();
const MCSection *Section = Streamer.getCurrentSection().first;

18
test/MC/ARM/pool.s Normal file
View File

@ -0,0 +1,18 @@
@ RUN: llvm-mc -triple thumbv7-linux-gnueabi -o - %s | FileCheck %s
.syntax unified
.align 2
.global pool
.type pool,%function
pool:
ldr r0, =0xba5eba11
bx lr
.pool
@ CHECK-LABEL: pool
@ CHECK: ldr r0, .Ltmp0
@ CHECK: .align 2
@ CHECK-LABEL: .Ltmp0:
@ CHECK: .long 3126770193