about summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-11-20 11:01:34 -0800
committerbors <bors@rust-lang.org>2013-11-20 11:01:34 -0800
commite12bc239b4e85d0dedc5ba6e9f7ffa0b91ade634 (patch)
tree3f5752af4483fea874d47504a3b0cffd52ef2989 /src/libsyntax
parent6a25ba374b2bfe32d4411cab3547d76d47769d6c (diff)
parent02e565a187adc0b5a7348852de664be26eb1701c (diff)
downloadrust-e12bc239b4e85d0dedc5ba6e9f7ffa0b91ade634.tar.gz
rust-e12bc239b4e85d0dedc5ba6e9f7ffa0b91ade634.zip
auto merge of #10527 : eholk/rust/win64, r=alexcrichton
This was needed to access UEFI boot services in my new Boot2Rust experiment.

I also realized that Rust functions declared as extern always use the C calling convention regardless of how they were declared, so this pull request fixes that as well.
Diffstat (limited to 'src/libsyntax')
-rw-r--r--src/libsyntax/abi.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/libsyntax/abi.rs b/src/libsyntax/abi.rs
index c2283bf1227..60d49b4c9ed 100644
--- a/src/libsyntax/abi.rs
+++ b/src/libsyntax/abi.rs
@@ -23,6 +23,7 @@ pub enum Abi {
     Stdcall,
     Fastcall,
     Aapcs,
+    Win64,
 
     // Multiplatform ABIs second
     Rust,
@@ -73,6 +74,8 @@ static AbiDatas: &'static [AbiData] = &[
     AbiData {abi: Stdcall, name: "stdcall", abi_arch: Archs(IntelBits)},
     AbiData {abi: Fastcall, name:"fastcall", abi_arch: Archs(IntelBits)},
     AbiData {abi: Aapcs, name: "aapcs", abi_arch: Archs(ArmBits)},
+    AbiData {abi: Win64, name: "win64",
+             abi_arch: Archs(1 << (X86_64 as uint))},
 
     // Cross-platform ABIs
     //