OSDN Git Service

[mips] For N32/N64, structs must be passed in the upper bits of a register.
authorDaniel Sanders <daniel.sanders@imgtec.com>
Fri, 24 Oct 2014 13:09:19 +0000 (13:09 +0000)
committerDaniel Sanders <daniel.sanders@imgtec.com>
Fri, 24 Oct 2014 13:09:19 +0000 (13:09 +0000)
commitde90aa00ac7f4e2ad5ead35cc0118a7666991fb7
treeec1202a9df86b4e39941326379434593afa168e7
parent9bb3f37aa44e39b937802cc9443c6a5aafa1de52
[mips] For N32/N64, structs must be passed in the upper bits of a register.

Summary:
Most structs were fixed by r218451 but those of between >32-bits and
<64-bits remained broken since they were not marked with [ASZ]ExtUpper.
This patch fixes the remaining cases by using
CCPromoteToUpperBitsInType<i64> on i64's in addition to i32 and smaller.

Reviewers: vmedic

Reviewed By: vmedic

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220556 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/Mips/MipsCallingConv.td
test/CodeGen/Mips/cconv/return-struct.ll