[PATCH] D115854: [PowerPC] Support parsing GNU attributes in MC

Qiu Chaofan via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Jan 22 07:34:20 PST 2022


This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG00d68c3824bf: [PowerPC] Support parsing GNU attributes in MC (authored by qiucf).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D115854/new/

https://reviews.llvm.org/D115854

Files:
  llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
  llvm/test/MC/PowerPC/gnu-attribute.s


Index: llvm/test/MC/PowerPC/gnu-attribute.s
===================================================================
--- /dev/null
+++ llvm/test/MC/PowerPC/gnu-attribute.s
@@ -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
Index: llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
===================================================================
--- llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
+++ llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
@@ -121,6 +121,7 @@
   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 @@
     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 @@
   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() {


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D115854.402216.patch
Type: text/x-patch
Size: 1718 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220122/a1327186/attachment.bin>


More information about the llvm-commits mailing list