-
Notifications
You must be signed in to change notification settings - Fork 14.8k
Closed
Labels
Description
Bugzilla Link | 1643 |
Resolution | FIXED |
Resolved on | Mar 06, 2010 14:00 |
Version | trunk |
OS | All |
Reporter | LLVM Bugzilla Contributor |
CC | @lattner,@sunfishcode |
Extended Description
Currently, when doing a call or for formal arguments, SelectionDAG gives a OrigAlignmentFlag to:
- arguments whose type is expanded (eg i8 -> i32)
- broken up arguments (eg i64 -> i32 + i32)
However the two cases need to have a different flag in the PPC32 ELF ABI. In this target, arguments are aligned when they are double word, for example:
declare void @foo(i32 %a, i64 %c)
%a goes into register 1
%c goes into registers 3 and 4
The PPC code generator sees three arguments for this function of type i32 and the last argument has the flag OrigAlignmentFlag. Currently, it can not know if the last argument is an i64 divided into two i32 or if the last argument is i1, i8 or i16 which are expanded.