summaryrefslogtreecommitdiff
path: root/lib/Target/X86/X86CallingConv.td
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2008-04-28 07:40:07 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2008-04-28 07:40:07 +0000
commit2810d675f855133cad90c14d725d9ac0704f4923 (patch)
treefc8c824c25e606c8df06610677360937d890c36b /lib/Target/X86/X86CallingConv.td
parent6833b0601bdd53957db049b13dfa2e6a9e56f65f (diff)
downloadllvm-2810d675f855133cad90c14d725d9ac0704f4923.tar.gz
llvm-2810d675f855133cad90c14d725d9ac0704f4923.tar.bz2
llvm-2810d675f855133cad90c14d725d9ac0704f4923.tar.xz
Fix FP return for Win64 ABI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50342 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86CallingConv.td')
-rw-r--r--lib/Target/X86/X86CallingConv.td4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Target/X86/X86CallingConv.td b/lib/Target/X86/X86CallingConv.td
index e32a891eba..60ee0a1bd3 100644
--- a/lib/Target/X86/X86CallingConv.td
+++ b/lib/Target/X86/X86CallingConv.td
@@ -83,6 +83,10 @@ def RetCC_X86_Win64_C : CallingConv<[
// The X86-Win64 calling convention always returns __m64 values in RAX.
CCIfType<[v8i8, v4i16, v2i32, v1i64], CCAssignToReg<[RAX]>>,
+ // And FP in XMM0 only.
+ CCIfType<[f32], CCAssignToReg<[XMM0]>>,
+ CCIfType<[f64], CCAssignToReg<[XMM0]>>,
+
// Otherwise, everything is the same as 'normal' X86-64 C CC.
CCDelegateTo<RetCC_X86_64_C>
]>;