summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@de.ibm.com>2012-11-05 19:13:42 +0000
committerUlrich Weigand <ulrich.weigand@de.ibm.com>2012-11-05 19:13:42 +0000
commit77ed89dbad943d657dcc79fa29f92fe6abd74efc (patch)
treeaddb5d7a42d1d3bdd5a32afd0e839466fe4bfd2f /clang/lib/CodeGen/CodeGenModule.cpp
parent2cce3f91f89e9ca353412db6c9e2b90b02d563fb (diff)
downloadbcm5719-llvm-77ed89dbad943d657dcc79fa29f92fe6abd74efc.tar.gz
bcm5719-llvm-77ed89dbad943d657dcc79fa29f92fe6abd74efc.zip
On PowerPC64, integer arguments and return values need to be sign- or
zero-extended to 64 bits. This information is currently provided to the back end by setting "signext" or "zeroext" attributes. However, this is done only for integer types *smaller* than i32, not for i32 itself. This causes clang to generate code violating the ABI, which results in a failure of the tramp3d-v4 test case (due to calling a system library routine without ABI-required extension). This patch implements custom versions of classifyArgumentType and classifyReturnType for PPC64_SVR4_ABIInfo, which are the same as the default versions except that they also classify "int" and "unsigned int" as types needing extending. This fixed tramp3d-v4 on PowerPC64. llvm-svn: 167393
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud