[llvm-commits] [llvm-gcc-4.2] r104460 - in /llvm-gcc-4.2/trunk/gcc: config/i386/i386.h llvm-convert.cpp

Duncan Sands baldrick at free.fr
Sun May 23 03:45:56 PDT 2010


Author: baldrick
Date: Sun May 23 05:45:56 2010
New Revision: 104460

URL: http://llvm.org/viewvc/llvm-project?rev=104460&view=rev
Log:
Replace the last remaining direct use of reg_names with LLVM_GET_REG_NAME.
Patch by Bob Wilson.  Tested on x86-32 and x86-64 only.

Modified:
    llvm-gcc-4.2/trunk/gcc/config/i386/i386.h
    llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp

Modified: llvm-gcc-4.2/trunk/gcc/config/i386/i386.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/i386.h?rev=104460&r1=104459&r2=104460&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/i386.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/i386.h Sun May 23 05:45:56 2010
@@ -3929,8 +3929,8 @@
    means we can't distinguish them. */
 #define LLVM_GET_REG_NAME(REG_NAME, REG_NUM) __extension__ \
   ({ const char *nm = (REG_NAME); \
-     if (*nm == '%' || *nm == '#') ++nm; \
-     (ISDIGIT (*nm) ? reg_names[REG_NUM] : nm); })
+     if (nm && (*nm == '%' || *nm == '#')) ++nm; \
+     ((!nm || ISDIGIT (*nm)) ? reg_names[REG_NUM] : nm); })
 
 /* Propagate code model setting to backend */
 #define LLVM_SET_MACHINE_OPTIONS(argvec)                \

Modified: llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp?rev=104460&r1=104459&r2=104460&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Sun May 23 05:45:56 2010
@@ -4175,7 +4175,8 @@
 //===----------------------------------------------------------------------===//
 
 // LLVM_GET_REG_NAME - Default to use GCC's register names.  Targets may
-// override this to use different names for some registers.
+// override this to use different names for some registers.  The REG_NAME is
+// the name before it was decoded; it may be null in some contexts.
 #ifndef LLVM_GET_REG_NAME
 #define LLVM_GET_REG_NAME(REG_NAME, REG_NUM) reg_names[REG_NUM]
 #endif
@@ -4411,7 +4412,7 @@
     // If we found a single register register class, return the register.
     if (RegMember != -1) {
       Result += '{';
-      Result += reg_names[RegMember];
+      Result += LLVM_GET_REG_NAME(0, RegMember);
       Result += '}';
     } else {
       Result += ConstraintChar;





More information about the llvm-commits mailing list