[llvm-branch-commits] [llvm-branch] r235872 - Merging r230657:

Daniel Sanders daniel.sanders at imgtec.com
Mon Apr 27 05:22:48 PDT 2015


Author: dsanders
Date: Mon Apr 27 07:22:47 2015
New Revision: 235872

URL: http://llvm.org/viewvc/llvm-project?rev=235872&view=rev
Log:
Merging r230657:
------------------------------------------------------------------------
r230657 | petarj | 2015-02-26 18:35:15 +0000 (Thu, 26 Feb 2015) | 13 lines

Fix justify error for small structures in varargs for MIPS64BE

There was a problem when passing structures as variable arguments.
The structures smaller than 64 bit were not left justified on MIPS64
big endian. This is now fixed by shifting the value to make it left-
justified when appropriate.

This fixes the bug http://llvm.org/bugs/show_bug.cgi?id=21608

Patch by Aleksandar Beserminji.

Differential Revision: http://reviews.llvm.org/D7881

------------------------------------------------------------------------

Added:
    llvm/branches/release_36/test/CodeGen/Mips/cconv/arguments-varargs-small-structs-byte.ll
      - copied unchanged from r230657, llvm/trunk/test/CodeGen/Mips/cconv/arguments-varargs-small-structs-byte.ll
    llvm/branches/release_36/test/CodeGen/Mips/cconv/arguments-varargs-small-structs-combinations.ll
      - copied unchanged from r230657, llvm/trunk/test/CodeGen/Mips/cconv/arguments-varargs-small-structs-combinations.ll
    llvm/branches/release_36/test/CodeGen/Mips/cconv/arguments-varargs-small-structs-multiple-args.ll
      - copied unchanged from r230657, llvm/trunk/test/CodeGen/Mips/cconv/arguments-varargs-small-structs-multiple-args.ll
Modified:
    llvm/branches/release_36/   (props changed)
    llvm/branches/release_36/lib/Target/Mips/MipsCallingConv.td

Propchange: llvm/branches/release_36/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Apr 27 07:22:47 2015
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,226023,226029,226044,226046,226048,226058,226075,226151,226164-226166,226170-226171,226182,226407-226409,226473,226588,226616,226652,226664,226708,226711,226755,226791,226808-226809,226905,227005,227084-227085,227087,227089,227250,227260-227261,227269,227290,227294,227299,227319,227339,227430,227491,227584,227603,227628,227670,227809,227815,227903,227934,227972,227983,228049,228129,228168,228331,228411,228444,228490,228500,228507,228518,228525,228565,228656,228760-228761,228793,228842,228899,228957,228969,228979,229029,229343,229351-229352,229421,229495,229529,229675,229731,229911,230058,230235,231219,231227,231563,231601,232046,232085,232189
+/llvm/trunk:155241,226023,226029,226044,226046,226048,226058,226075,226151,226164-226166,226170-226171,226182,226407-226409,226473,226588,226616,226652,226664,226708,226711,226755,226791,226808-226809,226905,227005,227084-227085,227087,227089,227250,227260-227261,227269,227290,227294,227299,227319,227339,227430,227491,227584,227603,227628,227670,227809,227815,227903,227934,227972,227983,228049,228129,228168,228331,228411,228444,228490,228500,228507,228518,228525,228565,228656,228760-228761,228793,228842,228899,228957,228969,228979,229029,229343,229351-229352,229421,229495,229529,229675,229731,229911,230058,230235,230657,231219,231227,231563,231601,232046,232085,232189

Modified: llvm/branches/release_36/lib/Target/Mips/MipsCallingConv.td
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_36/lib/Target/Mips/MipsCallingConv.td?rev=235872&r1=235871&r2=235872&view=diff
==============================================================================
--- llvm/branches/release_36/lib/Target/Mips/MipsCallingConv.td (original)
+++ llvm/branches/release_36/lib/Target/Mips/MipsCallingConv.td Mon Apr 27 07:22:47 2015
@@ -159,6 +159,10 @@ def CC_MipsN : CallingConv<[
 // N32/64 variable arguments.
 // All arguments are passed in integer registers.
 def CC_MipsN_VarArg : CallingConv<[
+  CCIfType<[i8, i16, i32, i64],
+      CCIfSubtargetNot<"isLittle()",
+          CCIfInReg<CCPromoteToUpperBitsInType<i64>>>>,
+
   // All integers are promoted to 64-bit.
   CCIfType<[i8, i16, i32], CCPromoteToType<i64>>,
 





More information about the llvm-branch-commits mailing list