[cfe-commits] r110775 - in /cfe/trunk: lib/Basic/Targets.cpp test/CodeGen/asm_arm.c

Daniel Dunbar daniel at zuster.org
Tue Aug 10 19:17:21 PDT 2010


Author: ddunbar
Date: Tue Aug 10 21:17:20 2010
New Revision: 110775

URL: http://llvm.org/viewvc/llvm-project?rev=110775&view=rev
Log:
ARM: Recognize single precision float register names.
 - We don't recognize double or NEON register names yet -- we don't have the
   infrastructure to generate the right clobbers for them.

Modified:
    cfe/trunk/lib/Basic/Targets.cpp
    cfe/trunk/test/CodeGen/asm_arm.c

Modified: cfe/trunk/lib/Basic/Targets.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=110775&r1=110774&r2=110775&view=diff
==============================================================================
--- cfe/trunk/lib/Basic/Targets.cpp (original)
+++ cfe/trunk/lib/Basic/Targets.cpp Tue Aug 10 21:17:20 2010
@@ -1787,8 +1787,18 @@
 };
 
 const char * const ARMTargetInfo::GCCRegNames[] = {
+  // Integer registers
   "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
-  "r8", "r9", "r10", "r11", "r12", "sp", "lr", "pc"
+  "r8", "r9", "r10", "r11", "r12", "sp", "lr", "pc",
+
+  // Float registers
+  "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7",
+  "s8", "s9", "s10", "s11", "s12", "s13", "s14", "s15",
+  "s16", "s17", "s18", "s19", "s20", "s21", "s22", "s23",
+  "s24", "s25", "s26", "s27", "s28", "s29", "s30", "s31"
+
+  // FIXME: Need double and NEON registers, but we need support for aliasing
+  // multiple registers for that.
 };
 
 void ARMTargetInfo::getGCCRegNames(const char * const *&Names,

Modified: cfe/trunk/test/CodeGen/asm_arm.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/asm_arm.c?rev=110775&r1=110774&r2=110775&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/asm_arm.c (original)
+++ cfe/trunk/test/CodeGen/asm_arm.c Tue Aug 10 21:17:20 2010
@@ -38,3 +38,17 @@
 void test5() {
   __asm__("" : : : "r13", "r14", "r15", "sp", "lr", "pc");
 }
+
+// CHECK: @test6
+// CHECK: call void asm sideeffect "", "
+// CHECK: ~{s0},~{s1},~{s2},~{s3},~{s4},~{s5},~{s6},~{s7},
+// CHECK: ~{s8},~{s9},~{s10},~{s11},~{s12},~{s13},~{s14},~{s15},
+// CHECK: ~{s16},~{s17},~{s18},~{s19},~{s20},~{s21},~{s22},~{s23},
+// CHECK: ~{s24},~{s25},~{s26},~{s27},~{s28},~{s29},~{s30},~{s31}"()
+void test6() {
+  __asm__("" : : :
+          "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7",
+          "s8", "s9", "s10", "s11", "s12", "s13", "s14", "s15",
+          "s16", "s17", "s18", "s19", "s20", "s21", "s22", "s23",
+          "s24", "s25", "s26", "s27", "s28", "s29", "s30", "s31");
+}





More information about the cfe-commits mailing list