llvm: Add support for vectorcall (X86_VectorCall) convention
This commit is contained in:
parent
3150dddb0f
commit
9af75d2bec
4 changed files with 7 additions and 1 deletions
|
@ -478,6 +478,7 @@ are:
|
||||||
* `aapcs`
|
* `aapcs`
|
||||||
* `cdecl`
|
* `cdecl`
|
||||||
* `fastcall`
|
* `fastcall`
|
||||||
|
* `vectorcall`
|
||||||
* `Rust`
|
* `Rust`
|
||||||
* `rust-intrinsic`
|
* `rust-intrinsic`
|
||||||
* `system`
|
* `system`
|
||||||
|
|
|
@ -85,6 +85,7 @@ pub enum CallConv {
|
||||||
X86StdcallCallConv = 64,
|
X86StdcallCallConv = 64,
|
||||||
X86FastcallCallConv = 65,
|
X86FastcallCallConv = 65,
|
||||||
X86_64_Win64 = 79,
|
X86_64_Win64 = 79,
|
||||||
|
X86_VectorCall = 80
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Copy, Clone)]
|
#[derive(Copy, Clone)]
|
||||||
|
|
|
@ -35,7 +35,8 @@ use std::cmp;
|
||||||
use std::iter::once;
|
use std::iter::once;
|
||||||
use libc::c_uint;
|
use libc::c_uint;
|
||||||
use syntax::abi::{Cdecl, Aapcs, C, Win64, Abi};
|
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::attr;
|
||||||
use syntax::codemap::Span;
|
use syntax::codemap::Span;
|
||||||
use syntax::parse::token::{InternedString, special_idents};
|
use syntax::parse::token::{InternedString, special_idents};
|
||||||
|
@ -104,6 +105,7 @@ pub fn llvm_calling_convention(ccx: &CrateContext,
|
||||||
|
|
||||||
Stdcall => llvm::X86StdcallCallConv,
|
Stdcall => llvm::X86StdcallCallConv,
|
||||||
Fastcall => llvm::X86FastcallCallConv,
|
Fastcall => llvm::X86FastcallCallConv,
|
||||||
|
Vectorcall => llvm::X86_VectorCall,
|
||||||
C => llvm::CCallConv,
|
C => llvm::CCallConv,
|
||||||
Win64 => llvm::X86_64_Win64,
|
Win64 => llvm::X86_64_Win64,
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,7 @@ pub enum Abi {
|
||||||
Cdecl,
|
Cdecl,
|
||||||
Stdcall,
|
Stdcall,
|
||||||
Fastcall,
|
Fastcall,
|
||||||
|
Vectorcall,
|
||||||
Aapcs,
|
Aapcs,
|
||||||
Win64,
|
Win64,
|
||||||
|
|
||||||
|
@ -85,6 +86,7 @@ const AbiDatas: &'static [AbiData] = &[
|
||||||
AbiData {abi: Cdecl, name: "cdecl" },
|
AbiData {abi: Cdecl, name: "cdecl" },
|
||||||
AbiData {abi: Stdcall, name: "stdcall" },
|
AbiData {abi: Stdcall, name: "stdcall" },
|
||||||
AbiData {abi: Fastcall, name: "fastcall" },
|
AbiData {abi: Fastcall, name: "fastcall" },
|
||||||
|
AbiData {abi: Vectorcall, name: "vectorcall"},
|
||||||
AbiData {abi: Aapcs, name: "aapcs" },
|
AbiData {abi: Aapcs, name: "aapcs" },
|
||||||
AbiData {abi: Win64, name: "win64" },
|
AbiData {abi: Win64, name: "win64" },
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue