[llvm-commits] [llvm-gcc-4.2] r132251 - /llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm.cpp
Bob Wilson
bob.wilson at apple.com
Fri May 27 22:51:46 PDT 2011
Author: bwilson
Date: Sat May 28 00:51:46 2011
New Revision: 132251
URL: http://llvm.org/viewvc/llvm-project?rev=132251&view=rev
Log:
Fix check for APCS calling convention to enable byval argument passing.
The previous check did not handle the case where the default C calling
convention uses APCS. Radar 7662569.
Modified:
llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm.cpp
Modified: llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm.cpp?rev=132251&r1=132250&r2=132251&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm.cpp Sat May 28 00:51:46 2011
@@ -2878,14 +2878,14 @@
bool llvm_arm_should_pass_aggregate_using_byval_attr(tree TreeType,
const Type *Ty,
CallingConv::ID &CC) {
- if (CC == CallingConv::ARM_APCS) {
+ if (CC == CallingConv::ARM_APCS ||
+ (CC == CallingConv::C && !TARGET_AAPCS_BASED)) {
enum machine_mode Mode = TYPE_MODE(TreeType);
- HOST_WIDE_INT Bytes =
- (Mode == BLKmode) ? int_size_in_bytes(TreeType) : (int) GET_MODE_SIZE(Mode);
-
+ HOST_WIDE_INT Bytes = (Mode == BLKmode) ? int_size_in_bytes(TreeType) :
+ (int) GET_MODE_SIZE(Mode);
return Bytes > 64;
- } else
- return false;
+ }
+ return false;
}
/* LLVM LOCAL end (ENTIRE FILE!) */
More information about the llvm-commits
mailing list