[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