forked from OSchip/llvm-project
[PowerPC] Support parsing GNU attributes in MC
This patch is the first step to enable support of GNU attribute in LLVM PowerPC, enabling it for PowerPC targets, otherwise llvm-mc raises error when seeing the attribute section. Reviewed By: jsji Differential Revision: https://reviews.llvm.org/D115854
This commit is contained in:
parent
8dedf9b58b
commit
00d68c3824
|
@ -121,6 +121,7 @@ class PPCAsmParser : public MCTargetAsmParser {
|
|||
bool ParseDirectiveMachine(SMLoc L);
|
||||
bool ParseDirectiveAbiVersion(SMLoc L);
|
||||
bool ParseDirectiveLocalEntry(SMLoc L);
|
||||
bool ParseGNUAttribute(SMLoc L);
|
||||
|
||||
bool MatchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode,
|
||||
OperandVector &Operands, MCStreamer &Out,
|
||||
|
@ -1605,6 +1606,8 @@ bool PPCAsmParser::ParseDirective(AsmToken DirectiveID) {
|
|||
ParseDirectiveAbiVersion(DirectiveID.getLoc());
|
||||
else if (IDVal == ".localentry")
|
||||
ParseDirectiveLocalEntry(DirectiveID.getLoc());
|
||||
else if (IDVal.startswith(".gnu_attribute"))
|
||||
ParseGNUAttribute(DirectiveID.getLoc());
|
||||
else
|
||||
return true;
|
||||
return false;
|
||||
|
@ -1720,7 +1723,16 @@ bool PPCAsmParser::ParseDirectiveLocalEntry(SMLoc L) {
|
|||
return false;
|
||||
}
|
||||
|
||||
bool PPCAsmParser::ParseGNUAttribute(SMLoc L) {
|
||||
int64_t Tag;
|
||||
int64_t IntegerValue;
|
||||
if (!getParser().parseGNUAttribute(L, Tag, IntegerValue))
|
||||
return false;
|
||||
|
||||
getParser().getStreamer().emitGNUAttribute(Tag, IntegerValue);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// Force static initialization.
|
||||
extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializePowerPCAsmParser() {
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
# RUN: llvm-mc -triple powerpc64-unknown-linux-gnu < %s | FileCheck %s
|
||||
# RUN: llvm-mc -triple powerpc64le-unknown-linux-gnu < %s | FileCheck %s
|
||||
|
||||
.text
|
||||
add:
|
||||
add 3, 4, 3
|
||||
blr
|
||||
.gnu_attribute 4, 13
|
||||
|
||||
# CHECK-LABEL: add:
|
||||
# CHECK: .gnu_attribute 4, 13
|
Loading…
Reference in New Issue