HomePhabricator

Correct x86_64 fp128 calling convention

Authored by chh on Aug 10 2015, 10:33 AM.

Description

Correct x86_64 fp128 calling convention

These changes are for Android x86_64 targets to be compatible
with current Android g++ and conform to AMD64 ABI.

https://llvm.org/bugs/show_bug.cgi?id=23897

  • Return type of long double (fp128) should be fp128, not x86_fp80.
  • Vararg of long double (fp128) could be in register and overflowed to memory.

https://llvm.org/bugs/show_bug.cgi?id=24111

  • Return value of long double (fp128) _Complex should be in memory like a structure of {fp128,fp128}.

Differential Revision: http://reviews.llvm.org/D11437

llvm-svn: 244468

Details

Committed
chhAug 10 2015, 10:33 AM
Differential Revision
D11437: Correct x86_64 fp128 calling convention
Parents
rG397a98d86df7: Add new llvm.loop.unroll.enable metadata for use with "#pragma unroll".
Branches
Unknown
Tags
Unknown