[PATCH] D22948: Add Percent Symbol Before Named PPC Registers

Thomas Jablin via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 28 16:51:54 PDT 2016


tjablin created this revision.
tjablin added reviewers: kbarton, hfinkel.
tjablin added a subscriber: llvm-commits.
Herald added a subscriber: nemanjai.

The -ppc-asm-full-reg-names flag causes LLVM to generate named PPC registers instead of numbers. However, the resulting assembly code was not parsable by either GCC or LLVM due to missing percent symbols before register names. This patch inserts a percent sign before register names on PPC when -ppc-asm-full-reg-names is enabled except for the registers PPC::ZERO and other special registers that do not require the percent symbol.

https://reviews.llvm.org/D22948

Files:
  lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp
  test/CodeGen/PowerPC/reg-names.ll

Index: test/CodeGen/PowerPC/reg-names.ll
===================================================================
--- test/CodeGen/PowerPC/reg-names.ll
+++ test/CodeGen/PowerPC/reg-names.ll
@@ -9,7 +9,21 @@
   ret i64 %b
 
 ; CHECK: mr 3, 4
-; CHECK-FN: mr r3, r4
+; CHECK-FN: mr %r3, %r4
+
+; CHECK: blr
+; CHECK-FN: blr
+}
+
+define i64 @test2(i64 %a, i64 %b) {
+; CHECK-LABEL: @test2
+; CHECK-FN-LABEL: @test2
+
+entry:
+  ret i64 0
+
+; CHECK: li 3, 0
+; CHECK-FN: li %r3, 0
 
 ; CHECK: blr
 ; CHECK-FN: blr
Index: lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp
===================================================================
--- lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp
+++ lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp
@@ -437,6 +437,10 @@
     // The linux and AIX assembler does not take register prefixes.
     if (!isDarwinSyntax())
       RegName = stripRegisterPrefix(RegName);
+
+    if (FullRegNames && !isDarwinSyntax() &&
+        Op.getReg() != PPC::ZERO && Op.getReg() < PPC::ZERO8)
+      O << '%';
     
     O << RegName;
     return;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D22948.66058.patch
Type: text/x-patch
Size: 1071 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160728/695c4994/attachment.bin>


More information about the llvm-commits mailing list