@@ -13,14 +13,14 @@ pub enum Abi {
13
13
// churn. The specific values are meaningless.
14
14
Rust ,
15
15
C { unwind : bool } ,
16
- Cdecl ,
16
+ Cdecl { unwind : bool } ,
17
17
Stdcall { unwind : bool } ,
18
- Fastcall ,
19
- Vectorcall ,
18
+ Fastcall { unwind : bool } ,
19
+ Vectorcall { unwind : bool } ,
20
20
Thiscall { unwind : bool } ,
21
- Aapcs ,
22
- Win64 ,
23
- SysV64 ,
21
+ Aapcs { unwind : bool } ,
22
+ Win64 { unwind : bool } ,
23
+ SysV64 { unwind : bool } ,
24
24
PtxKernel ,
25
25
Msp430Interrupt ,
26
26
X86Interrupt ,
@@ -50,16 +50,22 @@ const AbiDatas: &[AbiData] = &[
50
50
AbiData { abi : Abi :: Rust , name : "Rust" } ,
51
51
AbiData { abi : Abi :: C { unwind : false } , name : "C" } ,
52
52
AbiData { abi : Abi :: C { unwind : true } , name : "C-unwind" } ,
53
- AbiData { abi : Abi :: Cdecl , name : "cdecl" } ,
53
+ AbiData { abi : Abi :: Cdecl { unwind : false } , name : "cdecl" } ,
54
+ AbiData { abi : Abi :: Cdecl { unwind : true } , name : "cdecl-unwind" } ,
54
55
AbiData { abi : Abi :: Stdcall { unwind : false } , name : "stdcall" } ,
55
56
AbiData { abi : Abi :: Stdcall { unwind : true } , name : "stdcall-unwind" } ,
56
- AbiData { abi : Abi :: Fastcall , name : "fastcall" } ,
57
- AbiData { abi : Abi :: Vectorcall , name : "vectorcall" } ,
57
+ AbiData { abi : Abi :: Fastcall { unwind : false } , name : "fastcall" } ,
58
+ AbiData { abi : Abi :: Fastcall { unwind : true } , name : "fastcall-unwind" } ,
59
+ AbiData { abi : Abi :: Vectorcall { unwind : false } , name : "vectorcall" } ,
60
+ AbiData { abi : Abi :: Vectorcall { unwind : true } , name : "vectorcall-unwind" } ,
58
61
AbiData { abi : Abi :: Thiscall { unwind : false } , name : "thiscall" } ,
59
62
AbiData { abi : Abi :: Thiscall { unwind : true } , name : "thiscall-unwind" } ,
60
- AbiData { abi : Abi :: Aapcs , name : "aapcs" } ,
61
- AbiData { abi : Abi :: Win64 , name : "win64" } ,
62
- AbiData { abi : Abi :: SysV64 , name : "sysv64" } ,
63
+ AbiData { abi : Abi :: Aapcs { unwind : false } , name : "aapcs" } ,
64
+ AbiData { abi : Abi :: Aapcs { unwind : true } , name : "aapcs-unwind" } ,
65
+ AbiData { abi : Abi :: Win64 { unwind : false } , name : "win64" } ,
66
+ AbiData { abi : Abi :: Win64 { unwind : true } , name : "win64-unwind" } ,
67
+ AbiData { abi : Abi :: SysV64 { unwind : false } , name : "sysv64" } ,
68
+ AbiData { abi : Abi :: SysV64 { unwind : true } , name : "sysv64-unwind" } ,
63
69
AbiData { abi : Abi :: PtxKernel , name : "ptx-kernel" } ,
64
70
AbiData { abi : Abi :: Msp430Interrupt , name : "msp430-interrupt" } ,
65
71
AbiData { abi : Abi :: X86Interrupt , name : "x86-interrupt" } ,
@@ -101,32 +107,38 @@ impl Abi {
101
107
C { unwind : false } => 1 ,
102
108
C { unwind : true } => 2 ,
103
109
// Platform-specific ABIs
104
- Cdecl => 3 ,
105
- Stdcall { unwind : false } => 4 ,
106
- Stdcall { unwind : true } => 5 ,
107
- Fastcall => 6 ,
108
- Vectorcall => 7 ,
109
- Thiscall { unwind : false } => 8 ,
110
- Thiscall { unwind : true } => 9 ,
111
- Aapcs => 10 ,
112
- Win64 => 11 ,
113
- SysV64 => 12 ,
114
- PtxKernel => 13 ,
115
- Msp430Interrupt => 14 ,
116
- X86Interrupt => 15 ,
117
- AmdGpuKernel => 16 ,
118
- EfiApi => 17 ,
119
- AvrInterrupt => 18 ,
120
- AvrNonBlockingInterrupt => 19 ,
121
- CCmseNonSecureCall => 20 ,
122
- Wasm => 21 ,
110
+ Cdecl { unwind : false } => 3 ,
111
+ Cdecl { unwind : true } => 4 ,
112
+ Stdcall { unwind : false } => 5 ,
113
+ Stdcall { unwind : true } => 6 ,
114
+ Fastcall { unwind : false } => 7 ,
115
+ Fastcall { unwind : true } => 8 ,
116
+ Vectorcall { unwind : false } => 9 ,
117
+ Vectorcall { unwind : true } => 10 ,
118
+ Thiscall { unwind : false } => 11 ,
119
+ Thiscall { unwind : true } => 12 ,
120
+ Aapcs { unwind : false } => 13 ,
121
+ Aapcs { unwind : true } => 14 ,
122
+ Win64 { unwind : false } => 15 ,
123
+ Win64 { unwind : true } => 16 ,
124
+ SysV64 { unwind : false } => 17 ,
125
+ SysV64 { unwind : true } => 18 ,
126
+ PtxKernel => 19 ,
127
+ Msp430Interrupt => 20 ,
128
+ X86Interrupt => 21 ,
129
+ AmdGpuKernel => 22 ,
130
+ EfiApi => 23 ,
131
+ AvrInterrupt => 24 ,
132
+ AvrNonBlockingInterrupt => 25 ,
133
+ CCmseNonSecureCall => 26 ,
134
+ Wasm => 27 ,
123
135
// Cross-platform ABIs
124
- System { unwind : false } => 22 ,
125
- System { unwind : true } => 23 ,
126
- RustIntrinsic => 24 ,
127
- RustCall => 25 ,
128
- PlatformIntrinsic => 26 ,
129
- Unadjusted => 27 ,
136
+ System { unwind : false } => 28 ,
137
+ System { unwind : true } => 29 ,
138
+ RustIntrinsic => 30 ,
139
+ RustCall => 31 ,
140
+ PlatformIntrinsic => 32 ,
141
+ Unadjusted => 33 ,
130
142
} ;
131
143
debug_assert ! (
132
144
AbiDatas
0 commit comments