Hi,

According to the "Procedure Call Standard for the ARM Architecture", a
function which returns a struct larger than 4 bytes must pass the return
value in memory provided by the caller. This is true when using the base
AAPCS calling convention, and the AAPCS-VFP extension when the callee is
variadic. However, clang currently does not do the necessary transformation
to return the result in memory when using the AAPCS-VFP calling convention,
and when the struct is a homogeneous aggregate of floating-point types.

The attached patch corrects this behaviour. Note, that this change will
break ABI backwards-compatibility with previous versions of clang/llvm.

Oliver

Attachment: arm-hfa-variadic-vfp-return.patch
Description: Binary data

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to