]> git.lizzy.rs Git - rust.git/commitdiff
llvm: Add support for vectorcall (X86_VectorCall) convention
authorSteffen <steffen.butzer@outlook.com>
Sat, 26 Dec 2015 20:29:28 +0000 (21:29 +0100)
committerSteffen <steffen.butzer@outlook.com>
Sat, 26 Dec 2015 20:40:40 +0000 (21:40 +0100)
src/doc/book/ffi.md
src/librustc_llvm/lib.rs
src/librustc_trans/trans/foreign.rs
src/libsyntax/abi.rs

index c3896e4e9c55737ad35d2b1d24046c34f54bcb61..e4a67112f18d1152fd518d109d4b646714cb4d06 100644 (file)
@@ -478,6 +478,7 @@ are:
 * `aapcs`
 * `cdecl`
 * `fastcall`
+* `vectorcall`
 * `Rust`
 * `rust-intrinsic`
 * `system`
index e2217e367a08e01ccb2fe3a2a67dba5342b2df9a..fc7fa299fb8fae9546f9d8b499cb0417fa23ba4c 100644 (file)
@@ -85,6 +85,7 @@ pub enum CallConv {
     X86StdcallCallConv = 64,
     X86FastcallCallConv = 65,
     X86_64_Win64 = 79,
+    X86_VectorCall = 80
 }
 
 #[derive(Copy, Clone)]
index 9012ecaa2134fe5cde58e5e2dc7edc5fc4b55c6c..6d264fc7813e6c43cc71ed74d4a36fc8fd8a3446 100644 (file)
@@ -35,7 +35,8 @@
 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,
 
index ca44dec627e37177e0475436510c3fc4ecd693d0..a16f232f4a1c10dd89e8963cb813fb398e11e0a3 100644 (file)
@@ -39,6 +39,7 @@ pub enum Abi {
     Cdecl,
     Stdcall,
     Fastcall,
+    Vectorcall,
     Aapcs,
     Win64,
 
@@ -85,6 +86,7 @@ pub enum AbiArchitecture {
     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" },