[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