Fix justify error for small structures in varargs for MIPS64BE
authorPetar Jovanovic <petar.jovanovic@imgtec.com>
Thu, 26 Feb 2015 18:35:15 +0000 (18:35 +0000)
committerPetar Jovanovic <petar.jovanovic@imgtec.com>
Thu, 26 Feb 2015 18:35:15 +0000 (18:35 +0000)
commit90ec1b175e803a26eb14c9f720b175fa0bd4309f
treeb2cef4d2cccd453599fb9b96e0512e7dc7ec092b
parenta076430ba9e5d42513a85fd69dd9f39e327c332d
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

llvm-svn: 230657
llvm/lib/Target/Mips/MipsCallingConv.td
llvm/test/CodeGen/Mips/cconv/arguments-varargs-small-structs-byte.ll [new file with mode: 0644]
llvm/test/CodeGen/Mips/cconv/arguments-varargs-small-structs-combinations.ll [new file with mode: 0644]
llvm/test/CodeGen/Mips/cconv/arguments-varargs-small-structs-multiple-args.ll [new file with mode: 0644]