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: _______________________________________________ llvm-branch-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/llvm-branch-commits
