[llvm-branch-commits] [llvm-branch] r235879 - Merging r232382:

Daniel Sanders daniel.sanders at imgtec.com
Mon Apr 27 06:36:41 PDT 2015


Author: dsanders
Date: Mon Apr 27 08:36:41 2015
New Revision: 235879

URL: http://llvm.org/viewvc/llvm-project?rev=235879&view=rev
Log:
Merging r232382:
------------------------------------------------------------------------
r232382 | petarj | 2015-03-16 15:01:09 +0000 (Mon, 16 Mar 2015) | 13 lines

[MIPS] Fix justify error for small structures

Fix justify error for small structures bigger than 32 bits in fixed
arguments for MIPS64 big endian. There was a problem when small structures
are passed as fixed arguments. The structures that are bigger than 32 bits
but smaller than 64 bits were not left justified properly on MIPS64 big
endian. This is fixed by shifting the value to make it left justified when
appropriate.

Patch by Aleksandar Beserminji.

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

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

Added:
    llvm/branches/release_36/test/CodeGen/Mips/cconv/arguments-small-structures-bigger-than-32bits.ll
      - copied, changed from r232382, llvm/trunk/test/CodeGen/Mips/cconv/arguments-small-structures-bigger-than-32bits.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 08:36:41 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,230657,230742,230748,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,230742,230748,231219,231227,231563,231601,232046,232085,232189,232382

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=235879&r1=235878&r2=235879&view=diff
==============================================================================
--- llvm/branches/release_36/lib/Target/Mips/MipsCallingConv.td (original)
+++ llvm/branches/release_36/lib/Target/Mips/MipsCallingConv.td Mon Apr 27 08:36:41 2015
@@ -123,7 +123,7 @@ def CC_MipsN_SoftFloat : CallingConv<[
 ]>;
 
 def CC_MipsN : CallingConv<[
-  CCIfType<[i8, i16, i32],
+  CCIfType<[i8, i16, i32, i64],
       CCIfSubtargetNot<"isLittle()",
           CCIfInReg<CCPromoteToUpperBitsInType<i64>>>>,
 

Copied: llvm/branches/release_36/test/CodeGen/Mips/cconv/arguments-small-structures-bigger-than-32bits.ll (from r232382, llvm/trunk/test/CodeGen/Mips/cconv/arguments-small-structures-bigger-than-32bits.ll)
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_36/test/CodeGen/Mips/cconv/arguments-small-structures-bigger-than-32bits.ll?p2=llvm/branches/release_36/test/CodeGen/Mips/cconv/arguments-small-structures-bigger-than-32bits.ll&p1=llvm/trunk/test/CodeGen/Mips/cconv/arguments-small-structures-bigger-than-32bits.ll&r1=232382&r2=235879&rev=235879&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/Mips/cconv/arguments-small-structures-bigger-than-32bits.ll (original)
+++ llvm/branches/release_36/test/CodeGen/Mips/cconv/arguments-small-structures-bigger-than-32bits.ll Mon Apr 27 08:36:41 2015
@@ -52,8 +52,8 @@ entry:
   %0 = bitcast { i48 }* %s1_1.coerce to i8*
   %1 = bitcast %struct.S1* %s1_1 to i8*
   call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* %1, i64 6, i32 0, i1 false)
-  %2 = getelementptr { i48 }, { i48 }* %s1_1.coerce, i32 0, i32 0
-  %3 = load i48, i48* %2, align 1
+  %2 = getelementptr { i48 }* %s1_1.coerce, i32 0, i32 0
+  %3 = load i48* %2, align 1
   call void @fS1(i48 inreg %3)
   ret void
  ; ALL-LABEL: f1:
@@ -69,8 +69,8 @@ entry:
   %0 = bitcast { i40 }* %s2_1.coerce to i8*
   %1 = bitcast %struct.S2* %s2_1 to i8*
   call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* %1, i64 5, i32 0, i1 false)
-  %2 = getelementptr { i40 }, { i40 }* %s2_1.coerce, i32 0, i32 0
-  %3 = load i40, i40* %2, align 1
+  %2 = getelementptr { i40 }* %s2_1.coerce, i32 0, i32 0
+  %3 = load i40* %2, align 1
   call void @fS2(i40 inreg %3)
   ret void
  ; ALL-LABEL: f2:





More information about the llvm-branch-commits mailing list