This is an archive of the discontinued LLVM Phabricator instance.

[mips] For N32/N64, structs must be passed in the upper bits of a register.
ClosedPublic

Authored by dsanders on Oct 24 2014, 3:21 AM.

Details

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.

Diff Detail

Event Timeline

dsanders updated this revision to Diff 15391.Oct 24 2014, 3:21 AM
dsanders retitled this revision from to [mips] For N32/N64, structs must be passed in the upper bits of a register..
dsanders updated this object.
dsanders edited the test plan for this revision. (Show Details)
dsanders added a reviewer: vmedic.
dsanders added a subscriber: Unknown Object (MLST).
vmedic accepted this revision.Oct 24 2014, 4:40 AM
vmedic edited edge metadata.

One line exceeds character limit, other then that LGTM.

lib/Target/Mips/MipsCallingConv.td
142

Exceeds 80 character limit.

This revision is now accepted and ready to land.Oct 24 2014, 4:40 AM
dsanders closed this revision.Oct 24 2014, 6:19 AM