diff options
author | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2012-02-01 10:46:14 +0000 |
---|---|---|
committer | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2012-02-01 10:46:14 +0000 |
commit | 824eed70a68a6b3c0c47c80a6c91d960da43bb67 (patch) | |
tree | 8b469322b6d867364507092a7aaeb3bbd9c7a6cc /llvm/lib | |
parent | 34cca175abb86430857b2eb28ba9a95d05507a8f (diff) | |
download | bcm5719-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.td | 4 |
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>>, |