summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorElena Demikhovsky <elena.demikhovsky@intel.com>2012-02-01 10:46:14 +0000
committerElena Demikhovsky <elena.demikhovsky@intel.com>2012-02-01 10:46:14 +0000
commit824eed70a68a6b3c0c47c80a6c91d960da43bb67 (patch)
tree8b469322b6d867364507092a7aaeb3bbd9c7a6cc /llvm/lib
parent34cca175abb86430857b2eb28ba9a95d05507a8f (diff)
downloadbcm5719-llvm-824eed70a68a6b3c0c47c80a6c91d960da43bb67.tar.gz
bcm5719-llvm-824eed70a68a6b3c0c47c80a6c91d960da43bb67.zip
Passing AVX 256-bit structures in Win64 was wrong.
Fixed Win64 calling conventions. llvm-svn: 149494
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86CallingConv.td4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86CallingConv.td b/llvm/lib/Target/X86/X86CallingConv.td
index ed389a03a4c..1e48deee409 100644
--- a/llvm/lib/Target/X86/X86CallingConv.td
+++ b/llvm/lib/Target/X86/X86CallingConv.td
@@ -198,6 +198,10 @@ def CC_X86_Win64_C : CallingConv<[
// 128 bit vectors are passed by pointer
CCIfType<[v16i8, v8i16, v4i32, v2i64, v4f32, v2f64], CCPassIndirect<i64>>,
+
+ // 256 bit vectors are passed by pointer
+ CCIfType<[v32i8, v16i16, v8i32, v4i64, v8f32, v4f64], CCPassIndirect<i64>>,
+
// The first 4 MMX vector arguments are passed in GPRs.
CCIfType<[x86mmx], CCBitConvertToType<i64>>,
OpenPOWER on IntegriCloud