aboutsummaryrefslogtreecommitdiff
path: root/test/Modules/Inputs/Module.framework/Module
diff options
context:
space:
mode:
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>2013-01-14 17:45:36 +0000
committerBill Schmidt <wschmidt@linux.vnet.ibm.com>2013-01-14 17:45:36 +0000
commit19f8e85d2e0ba2b97ad848b5f879ec96ebc1660e (patch)
treeb3dd04a0b1a7e0320b2b7e27ad6a471c3dd3643e /test/Modules/Inputs/Module.framework/Module
parentb6cbe517237c3c223beb064d60d5b49e56d65c06 (diff)
This patch addresses varargs processing for small complex types under
the 64-bit PowerPC ELF ABI. The ABI requires that the real and imaginary parts of a complex argument each occupy their own doubleword. Arguments smaller than 8 bytes are right-adjusted within the doubleword. Clang expects EmitVAARG() to return a pointer to a structure in which the real and imaginary parts are packed adjacently in memory. To accomplish this, we generate code to load the code appropriately from the varargs location and pack the values into a temporary variable in the form Clang expects, returning a pointer to that structure. The test case demonstrates correct code generation for all "small" complex types on PPC64: int, short, char, and float. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172438 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Modules/Inputs/Module.framework/Module')
0 files changed, 0 insertions, 0 deletions