[llvm-branch-commits] [llvm-gcc-branch] r101309 - in /llvm-gcc-4.2/branches/Apple/Morbo: ./ gcc/config/arm/arm.h gcc/testsuite/objc.dg/arm-scalar-atomic-copyStruct.m
Jim Grosbach
grosbach at apple.com
Wed Apr 14 15:52:43 PDT 2010
Author: grosbach
Date: Wed Apr 14 17:52:43 2010
New Revision: 101309
URL: http://llvm.org/viewvc/llvm-project?rev=101309&view=rev
Log:
merge 101304
Modified:
llvm-gcc-4.2/branches/Apple/Morbo/ (props changed)
llvm-gcc-4.2/branches/Apple/Morbo/gcc/config/arm/arm.h
llvm-gcc-4.2/branches/Apple/Morbo/gcc/testsuite/objc.dg/arm-scalar-atomic-copyStruct.m
Propchange: llvm-gcc-4.2/branches/Apple/Morbo/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Apr 14 17:52:43 2010
@@ -1,2 +1,2 @@
/llvm/trunk:100565
-/llvm-gcc-4.2/trunk:98728,98841,98893,99196,99305,99592-99593,99629,99670,99982,99984-99986,99988,99992-99993,99995,99997-99999,100035,100149,100303,100565,100624-100626,100712,100721,101090-101091
+/llvm-gcc-4.2/trunk:98728,98841,98893,99196,99305,99592-99593,99629,99670,99982,99984-99986,99988,99992-99993,99995,99997-99999,100035,100149,100303,100565,100624-100626,100712,100721,101090-101091,101304
Modified: llvm-gcc-4.2/branches/Apple/Morbo/gcc/config/arm/arm.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/branches/Apple/Morbo/gcc/config/arm/arm.h?rev=101309&r1=101308&r2=101309&view=diff
==============================================================================
--- llvm-gcc-4.2/branches/Apple/Morbo/gcc/config/arm/arm.h (original)
+++ llvm-gcc-4.2/branches/Apple/Morbo/gcc/config/arm/arm.h Wed Apr 14 17:52:43 2010
@@ -3527,7 +3527,9 @@
if (TARGET_SOFT_FLOAT) \
argvec.push_back("-soft-float"); \
if (TARGET_HARD_FLOAT_ABI) \
- argvec.push_back("-float-abi=hard");
+ argvec.push_back("-float-abi=hard"); \
+ if (flag_mkernel || flag_apple_kext) \
+ argvec.push_back("-arm-long-calls");
/* Doing struct copy by partial-word loads and stores is not a good idea on ARM. */
#define TARGET_LLVM_MIN_BYTES_COPY_BY_MEMCPY 4
Modified: llvm-gcc-4.2/branches/Apple/Morbo/gcc/testsuite/objc.dg/arm-scalar-atomic-copyStruct.m
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/branches/Apple/Morbo/gcc/testsuite/objc.dg/arm-scalar-atomic-copyStruct.m?rev=101309&r1=101308&r2=101309&view=diff
==============================================================================
--- llvm-gcc-4.2/branches/Apple/Morbo/gcc/testsuite/objc.dg/arm-scalar-atomic-copyStruct.m (original)
+++ llvm-gcc-4.2/branches/Apple/Morbo/gcc/testsuite/objc.dg/arm-scalar-atomic-copyStruct.m Wed Apr 14 17:52:43 2010
@@ -36,3 +36,41 @@
}
/* { dg-final { scan-assembler-times "blx\t_objc_copyStruct" 2 } } */
+/* APPLE LOCAL file 6671703 use objc_copyStruct() for big scalars */
+/* { dg-do compile { target arm*-*-darwin* } } */
+/* { dg-options "-O0" } */
+
+#import <Foundation/NSObject.h>
+
+
+ at interface myClass : NSObject {
+ unsigned long long _i64;
+}
+
+ at property (readwrite) unsigned long long i64;
+
+ at end
+
+ at implementation myClass
+ at synthesize i64 = _i64;
+
+
+
+ at end
+
+extern int printf(const char *fmt, ...);
+
+void foo(myClass *obj)
+{
+ printf ("%llx\n", obj.i64);
+}
+
+int main()
+{
+ myClass *obj = [[myClass alloc] init];
+ obj.i64 = 0xfeedface55555555LL;
+ foo (obj);
+ return 0;
+}
+
+/* { dg-final { scan-assembler-times "blx\t_objc_copyStruct" 2 } } */
More information about the llvm-branch-commits
mailing list