about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/doc/book/ffi.md1
-rw-r--r--src/librustc_llvm/lib.rs1
-rw-r--r--src/librustc_trans/trans/foreign.rs4
-rw-r--r--src/libsyntax/abi.rs2
4 files changed, 7 insertions, 1 deletions
diff --git a/src/doc/book/ffi.md b/src/doc/book/ffi.md
index c3896e4e9c5..e4a67112f18 100644
--- a/src/doc/book/ffi.md
+++ b/src/doc/book/ffi.md
@@ -478,6 +478,7 @@ are:
 * `aapcs`
 * `cdecl`
 * `fastcall`
+* `vectorcall`
 * `Rust`
 * `rust-intrinsic`
 * `system`
diff --git a/src/librustc_llvm/lib.rs b/src/librustc_llvm/lib.rs
index e2217e367a0..fc7fa299fb8 100644
--- a/src/librustc_llvm/lib.rs
+++ b/src/librustc_llvm/lib.rs
@@ -85,6 +85,7 @@ pub enum CallConv {
     X86StdcallCallConv = 64,
     X86FastcallCallConv = 65,
     X86_64_Win64 = 79,
+    X86_VectorCall = 80
 }
 
 #[derive(Copy, Clone)]
diff --git a/src/librustc_trans/trans/foreign.rs b/src/librustc_trans/trans/foreign.rs
index 9012ecaa213..6d264fc7813 100644
--- a/src/librustc_trans/trans/foreign.rs
+++ b/src/librustc_trans/trans/foreign.rs
@@ -35,7 +35,8 @@ use std::cmp;
 use std::iter::once;
 use libc::c_uint;
 use syntax::abi::{Cdecl, Aapcs, C, Win64, Abi};
-use syntax::abi::{PlatformIntrinsic, RustIntrinsic, Rust, RustCall, Stdcall, Fastcall, System};
+use syntax::abi::{PlatformIntrinsic, RustIntrinsic, Rust, RustCall, Stdcall};
+use syntax::abi::{Fastcall, Vectorcall, System};
 use syntax::attr;
 use syntax::codemap::Span;
 use syntax::parse::token::{InternedString, special_idents};
@@ -104,6 +105,7 @@ pub fn llvm_calling_convention(ccx: &CrateContext,
 
         Stdcall => llvm::X86StdcallCallConv,
         Fastcall => llvm::X86FastcallCallConv,
+        Vectorcall => llvm::X86_VectorCall,
         C => llvm::CCallConv,
         Win64 => llvm::X86_64_Win64,
 
diff --git a/src/libsyntax/abi.rs b/src/libsyntax/abi.rs
index ca44dec627e..a16f232f4a1 100644
--- a/src/libsyntax/abi.rs
+++ b/src/libsyntax/abi.rs
@@ -39,6 +39,7 @@ pub enum Abi {
     Cdecl,
     Stdcall,
     Fastcall,
+    Vectorcall,
     Aapcs,
     Win64,
 
@@ -85,6 +86,7 @@ const AbiDatas: &'static [AbiData] = &[
     AbiData {abi: Cdecl, name: "cdecl" },
     AbiData {abi: Stdcall, name: "stdcall" },
     AbiData {abi: Fastcall, name: "fastcall" },
+    AbiData {abi: Vectorcall, name: "vectorcall"},
     AbiData {abi: Aapcs, name: "aapcs" },
     AbiData {abi: Win64, name: "win64" },