llvm: Add support for vectorcall (X86_VectorCall) convention

This commit is contained in:
Steffen 2015-12-26 21:29:28 +01:00
parent 3150dddb0f
commit 9af75d2bec
4 changed files with 7 additions and 1 deletions

View file

@ -478,6 +478,7 @@ are:
* `aapcs`
* `cdecl`
* `fastcall`
* `vectorcall`
* `Rust`
* `rust-intrinsic`
* `system`

View file

@ -85,6 +85,7 @@ pub enum CallConv {
X86StdcallCallConv = 64,
X86FastcallCallConv = 65,
X86_64_Win64 = 79,
X86_VectorCall = 80
}
#[derive(Copy, Clone)]

View file

@ -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,

View file

@ -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" },