@@ -13,14 +13,14 @@ pub enum Abi {
1313 // churn. The specific values are meaningless.
1414 Rust ,
1515 C { unwind : bool } ,
16- Cdecl ,
16+ Cdecl { unwind : bool } ,
1717 Stdcall { unwind : bool } ,
18- Fastcall ,
19- Vectorcall ,
18+ Fastcall { unwind : bool } ,
19+ Vectorcall { unwind : bool } ,
2020 Thiscall { unwind : bool } ,
21- Aapcs ,
22- Win64 ,
23- SysV64 ,
21+ Aapcs { unwind : bool } ,
22+ Win64 { unwind : bool } ,
23+ SysV64 { unwind : bool } ,
2424 PtxKernel ,
2525 Msp430Interrupt ,
2626 X86Interrupt ,
@@ -50,16 +50,22 @@ const AbiDatas: &[AbiData] = &[
5050 AbiData { abi : Abi :: Rust , name : "Rust" } ,
5151 AbiData { abi : Abi :: C { unwind : false } , name : "C" } ,
5252 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" } ,
5455 AbiData { abi : Abi :: Stdcall { unwind : false } , name : "stdcall" } ,
5556 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" } ,
5861 AbiData { abi : Abi :: Thiscall { unwind : false } , name : "thiscall" } ,
5962 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" } ,
6369 AbiData { abi : Abi :: PtxKernel , name : "ptx-kernel" } ,
6470 AbiData { abi : Abi :: Msp430Interrupt , name : "msp430-interrupt" } ,
6571 AbiData { abi : Abi :: X86Interrupt , name : "x86-interrupt" } ,
@@ -101,32 +107,38 @@ impl Abi {
101107 C { unwind : false } => 1 ,
102108 C { unwind : true } => 2 ,
103109 // 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 ,
123135 // 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 ,
130142 } ;
131143 debug_assert ! (
132144 AbiDatas
0 commit comments