[llvm-commits] [llvm-gcc-4.2] r106055 - /llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm-target.h

Rafael Espindola rafael.espindola at gmail.com
Tue Jun 15 15:11:59 PDT 2010


Author: rafael
Date: Tue Jun 15 17:11:59 2010
New Revision: 106055

URL: http://llvm.org/viewvc/llvm-project?rev=106055&view=rev
Log:
If the target ABI and the DEFAULT ABI use the same calling convention,
use the C calling convention instead of forcing a particular one.

Modified:
    llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm-target.h

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm-target.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm-target.h?rev=106055&r1=106054&r2=106055&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm-target.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm-target.h Tue Jun 15 17:11:59 2010
@@ -25,17 +25,24 @@
    specification says that varargs functions must use the base standard
    instead of the VFP hard float variant. We check for that with
    (isVoid || hasArgList). */
+
+/* from  TARGET_AAPCS_BASED */
+#define DEFAULT_TARGET_AAPCS_BASED \
+  (ARM_DEFAULT_ABI != ARM_ABI_APCS && ARM_DEFAULT_ABI != ARM_ABI_ATPCS)
+
 #define TARGET_ADJUST_LLVM_CC(CC, type)                       \
   {                                                           \
-    if (TARGET_AAPCS_BASED)                                   \
-      CC = ((TARGET_VFP && TARGET_HARD_FLOAT_ABI &&           \
+    if (TARGET_AAPCS_BASED) {                                 \
+      if (TARGET_VFP && TARGET_HARD_FLOAT_ABI &&              \
              ((TYPE_ARG_TYPES(type) == 0) ||                  \
               (TREE_VALUE(tree_last(TYPE_ARG_TYPES(type))) == \
-               void_type_node))) ?                            \
-      CallingConv::ARM_AAPCS_VFP :                            \
-      CallingConv::ARM_AAPCS);                                \
-    else                                                      \
-      CC = CallingConv::ARM_APCS;                             \
+               void_type_node)))                              \
+        CC = CallingConv::ARM_AAPCS_VFP;                      \
+      if (!DEFAULT_TARGET_AAPCS_BASED)                        \
+        CC = CallingConv::ARM_AAPCS;                          \
+    } else if (DEFAULT_TARGET_AAPCS_BASED) {                  \
+        CC = CallingConv::ARM_APCS;                           \
+    }                                                         \
   }
 
 #ifdef LLVM_ABI_H





More information about the llvm-commits mailing list