[llvm-branch-commits] [llvm-gcc-branch] r86894 - /llvm-gcc-4.2/branches/Apple/Leela/gcc/llvm-abi.h

Bob Wilson bob.wilson at apple.com
Wed Nov 11 15:08:14 PST 2009


Author: bwilson
Date: Wed Nov 11 17:08:14 2009
New Revision: 86894

URL: http://llvm.org/viewvc/llvm-project?rev=86894&view=rev
Log:
$ svn merge -c 86892 https://bwilson@llvm.org/svn/llvm-project/llvm-gcc-4.2/trunk
--- Merging r86892 into '.':
U    gcc/llvm-abi.h

Modified:
    llvm-gcc-4.2/branches/Apple/Leela/gcc/llvm-abi.h

Modified: llvm-gcc-4.2/branches/Apple/Leela/gcc/llvm-abi.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/branches/Apple/Leela/gcc/llvm-abi.h?rev=86894&r1=86893&r2=86894&view=diff

==============================================================================
--- llvm-gcc-4.2/branches/Apple/Leela/gcc/llvm-abi.h (original)
+++ llvm-gcc-4.2/branches/Apple/Leela/gcc/llvm-abi.h Wed Nov 11 17:08:14 2009
@@ -629,19 +629,18 @@
       Elts.push_back(ATy);
     }
 
-    if (Size >= 4) {
+    // Put any left over bytes into one last register.  This target-independent
+    // code does not know the size of the argument registers, so use the
+    // smallest size that will work.
+    if (Size > 4) {
+      Elts.push_back(Type::getInt64Ty(getGlobalContext()));
+    } else if (Size > 2) {
       Elts.push_back(Type::getInt32Ty(getGlobalContext()));
-      Size -= 4;
-    }
-    if (Size >= 2) {
+    } else if (Size > 1) {
       Elts.push_back(Type::getInt16Ty(getGlobalContext()));
-      Size -= 2;
-    }
-    if (Size >= 1) {
+    } else {
       Elts.push_back(Type::getInt8Ty(getGlobalContext()));
-      Size -= 1;
     }
-    assert(Size == 0 && "Didn't cover value?");
     const StructType *STy = StructType::get(getGlobalContext(), Elts, false);
 
     unsigned i = 0;
@@ -1073,19 +1072,18 @@
       Elts.push_back(ATy);
     }
 
-    if (Size >= 4) {
+    // Put any left over bytes into one last register.  This target-independent
+    // code does not know the size of the argument registers, so use the
+    // smallest size that will work.
+    if (Size > 4) {
+      Elts.push_back(Type::getInt64Ty(getGlobalContext()));
+    } else if (Size > 2) {
       Elts.push_back(Type::getInt32Ty(getGlobalContext()));
-      Size -= 4;
-    }
-    if (Size >= 2) {
+    } else if (Size > 1) {
       Elts.push_back(Type::getInt16Ty(getGlobalContext()));
-      Size -= 2;
-    }
-    if (Size >= 1) {
+    } else {
       Elts.push_back(Type::getInt8Ty(getGlobalContext()));
-      Size -= 1;
     }
-    assert(Size == 0 && "Didn't cover value?");
     const StructType *STy = StructType::get(getGlobalContext(), Elts, false);
 
     unsigned i = 0;





More information about the llvm-branch-commits mailing list