Skip to content

Commit 9af75d2

Browse files
committed
llvm: Add support for vectorcall (X86_VectorCall) convention
1 parent 3150ddd commit 9af75d2

File tree

4 files changed

+7
-1
lines changed

4 files changed

+7
-1
lines changed

src/doc/book/ffi.md

+1
Original file line numberDiff line numberDiff line change
@@ -478,6 +478,7 @@ are:
478478
* `aapcs`
479479
* `cdecl`
480480
* `fastcall`
481+
* `vectorcall`
481482
* `Rust`
482483
* `rust-intrinsic`
483484
* `system`

src/librustc_llvm/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ pub enum CallConv {
8585
X86StdcallCallConv = 64,
8686
X86FastcallCallConv = 65,
8787
X86_64_Win64 = 79,
88+
X86_VectorCall = 80
8889
}
8990

9091
#[derive(Copy, Clone)]

src/librustc_trans/trans/foreign.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ use std::cmp;
3535
use std::iter::once;
3636
use libc::c_uint;
3737
use syntax::abi::{Cdecl, Aapcs, C, Win64, Abi};
38-
use syntax::abi::{PlatformIntrinsic, RustIntrinsic, Rust, RustCall, Stdcall, Fastcall, System};
38+
use syntax::abi::{PlatformIntrinsic, RustIntrinsic, Rust, RustCall, Stdcall};
39+
use syntax::abi::{Fastcall, Vectorcall, System};
3940
use syntax::attr;
4041
use syntax::codemap::Span;
4142
use syntax::parse::token::{InternedString, special_idents};
@@ -104,6 +105,7 @@ pub fn llvm_calling_convention(ccx: &CrateContext,
104105

105106
Stdcall => llvm::X86StdcallCallConv,
106107
Fastcall => llvm::X86FastcallCallConv,
108+
Vectorcall => llvm::X86_VectorCall,
107109
C => llvm::CCallConv,
108110
Win64 => llvm::X86_64_Win64,
109111

src/libsyntax/abi.rs

+2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ pub enum Abi {
3939
Cdecl,
4040
Stdcall,
4141
Fastcall,
42+
Vectorcall,
4243
Aapcs,
4344
Win64,
4445

@@ -85,6 +86,7 @@ const AbiDatas: &'static [AbiData] = &[
8586
AbiData {abi: Cdecl, name: "cdecl" },
8687
AbiData {abi: Stdcall, name: "stdcall" },
8788
AbiData {abi: Fastcall, name: "fastcall" },
89+
AbiData {abi: Vectorcall, name: "vectorcall"},
8890
AbiData {abi: Aapcs, name: "aapcs" },
8991
AbiData {abi: Win64, name: "win64" },
9092

0 commit comments

Comments
 (0)