summaryrefslogtreecommitdiff
path: root/lib/Target/X86/X86CallingConv.td
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
commit1766971769c21aa4e55671ac5be45b21ff31f8cd (patch)
treed51d384e3f0646eefc6297179aff586d324f1286 /lib/Target/X86/X86CallingConv.td
parent732525758f3c486f5e570528e7fd9b35fe121ba0 (diff)
downloadllvm-1766971769c21aa4e55671ac5be45b21ff31f8cd.tar.gz
llvm-1766971769c21aa4e55671ac5be45b21ff31f8cd.tar.bz2
llvm-1766971769c21aa4e55671ac5be45b21ff31f8cd.tar.xz
Passing AVX 256-bit structures in Win64 was wrong.
Fixed Win64 calling conventions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149494 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 ed389a03a4..1e48deee40 100644
--- a/lib/Target/X86/X86CallingConv.td
+++ b/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>>,