]> granicus.if.org Git - clang/commit
Correct x86_64 fp128 calling convention
authorChih-Hung Hsieh <chh@google.com>
Mon, 10 Aug 2015 17:33:31 +0000 (17:33 +0000)
committerChih-Hung Hsieh <chh@google.com>
Mon, 10 Aug 2015 17:33:31 +0000 (17:33 +0000)
commit9caa74a1baa8df5f3bfd4e2fcc469ea3f7f0d42d
tree6399dd87acf6d845a7d30ebc86f697c46baa5361
parent1476822dedfb8de49257c925d42be01676d226fd
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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@244468 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/TargetInfo.cpp
test/CodeGen/x86_64-fp128.c [new file with mode: 0644]