@@ -202,41 +202,13 @@ where
202
202
impl < ' tcx > Stable < ' tcx > for ty:: FnSig < ' tcx > {
203
203
type T = stable_mir:: ty:: FnSig ;
204
204
fn stable ( & self , tables : & mut Tables < ' _ > ) -> Self :: T {
205
- use rustc_target:: spec:: abi;
206
- use stable_mir:: ty:: { Abi , FnSig } ;
205
+ use stable_mir:: ty:: FnSig ;
207
206
208
207
FnSig {
209
208
inputs_and_output : self . inputs_and_output . iter ( ) . map ( |ty| ty. stable ( tables) ) . collect ( ) ,
210
209
c_variadic : self . c_variadic ,
211
210
unsafety : self . unsafety . stable ( tables) ,
212
- abi : match self . abi {
213
- abi:: Abi :: Rust => Abi :: Rust ,
214
- abi:: Abi :: C { unwind } => Abi :: C { unwind } ,
215
- abi:: Abi :: Cdecl { unwind } => Abi :: Cdecl { unwind } ,
216
- abi:: Abi :: Stdcall { unwind } => Abi :: Stdcall { unwind } ,
217
- abi:: Abi :: Fastcall { unwind } => Abi :: Fastcall { unwind } ,
218
- abi:: Abi :: Vectorcall { unwind } => Abi :: Vectorcall { unwind } ,
219
- abi:: Abi :: Thiscall { unwind } => Abi :: Thiscall { unwind } ,
220
- abi:: Abi :: Aapcs { unwind } => Abi :: Aapcs { unwind } ,
221
- abi:: Abi :: Win64 { unwind } => Abi :: Win64 { unwind } ,
222
- abi:: Abi :: SysV64 { unwind } => Abi :: SysV64 { unwind } ,
223
- abi:: Abi :: PtxKernel => Abi :: PtxKernel ,
224
- abi:: Abi :: Msp430Interrupt => Abi :: Msp430Interrupt ,
225
- abi:: Abi :: X86Interrupt => Abi :: X86Interrupt ,
226
- abi:: Abi :: EfiApi => Abi :: EfiApi ,
227
- abi:: Abi :: AvrInterrupt => Abi :: AvrInterrupt ,
228
- abi:: Abi :: AvrNonBlockingInterrupt => Abi :: AvrNonBlockingInterrupt ,
229
- abi:: Abi :: CCmseNonSecureCall => Abi :: CCmseNonSecureCall ,
230
- abi:: Abi :: Wasm => Abi :: Wasm ,
231
- abi:: Abi :: System { unwind } => Abi :: System { unwind } ,
232
- abi:: Abi :: RustIntrinsic => Abi :: RustIntrinsic ,
233
- abi:: Abi :: RustCall => Abi :: RustCall ,
234
- abi:: Abi :: PlatformIntrinsic => Abi :: PlatformIntrinsic ,
235
- abi:: Abi :: Unadjusted => Abi :: Unadjusted ,
236
- abi:: Abi :: RustCold => Abi :: RustCold ,
237
- abi:: Abi :: RiscvInterruptM => Abi :: RiscvInterruptM ,
238
- abi:: Abi :: RiscvInterruptS => Abi :: RiscvInterruptS ,
239
- } ,
211
+ abi : self . abi . stable ( tables) ,
240
212
}
241
213
}
242
214
}
@@ -832,3 +804,51 @@ impl<'tcx> Stable<'tcx> for ty::Movability {
832
804
}
833
805
}
834
806
}
807
+
808
+ impl < ' tcx > Stable < ' tcx > for rustc_target:: spec:: abi:: Abi {
809
+ type T = stable_mir:: ty:: Abi ;
810
+
811
+ fn stable ( & self , _: & mut Tables < ' _ > ) -> Self :: T {
812
+ use rustc_target:: spec:: abi;
813
+ use stable_mir:: ty:: Abi ;
814
+ match * self {
815
+ abi:: Abi :: Rust => Abi :: Rust ,
816
+ abi:: Abi :: C { unwind } => Abi :: C { unwind } ,
817
+ abi:: Abi :: Cdecl { unwind } => Abi :: Cdecl { unwind } ,
818
+ abi:: Abi :: Stdcall { unwind } => Abi :: Stdcall { unwind } ,
819
+ abi:: Abi :: Fastcall { unwind } => Abi :: Fastcall { unwind } ,
820
+ abi:: Abi :: Vectorcall { unwind } => Abi :: Vectorcall { unwind } ,
821
+ abi:: Abi :: Thiscall { unwind } => Abi :: Thiscall { unwind } ,
822
+ abi:: Abi :: Aapcs { unwind } => Abi :: Aapcs { unwind } ,
823
+ abi:: Abi :: Win64 { unwind } => Abi :: Win64 { unwind } ,
824
+ abi:: Abi :: SysV64 { unwind } => Abi :: SysV64 { unwind } ,
825
+ abi:: Abi :: PtxKernel => Abi :: PtxKernel ,
826
+ abi:: Abi :: Msp430Interrupt => Abi :: Msp430Interrupt ,
827
+ abi:: Abi :: X86Interrupt => Abi :: X86Interrupt ,
828
+ abi:: Abi :: EfiApi => Abi :: EfiApi ,
829
+ abi:: Abi :: AvrInterrupt => Abi :: AvrInterrupt ,
830
+ abi:: Abi :: AvrNonBlockingInterrupt => Abi :: AvrNonBlockingInterrupt ,
831
+ abi:: Abi :: CCmseNonSecureCall => Abi :: CCmseNonSecureCall ,
832
+ abi:: Abi :: Wasm => Abi :: Wasm ,
833
+ abi:: Abi :: System { unwind } => Abi :: System { unwind } ,
834
+ abi:: Abi :: RustIntrinsic => Abi :: RustIntrinsic ,
835
+ abi:: Abi :: RustCall => Abi :: RustCall ,
836
+ abi:: Abi :: PlatformIntrinsic => Abi :: PlatformIntrinsic ,
837
+ abi:: Abi :: Unadjusted => Abi :: Unadjusted ,
838
+ abi:: Abi :: RustCold => Abi :: RustCold ,
839
+ abi:: Abi :: RiscvInterruptM => Abi :: RiscvInterruptM ,
840
+ abi:: Abi :: RiscvInterruptS => Abi :: RiscvInterruptS ,
841
+ }
842
+ }
843
+ }
844
+
845
+ impl < ' tcx > Stable < ' tcx > for rustc_session:: cstore:: ForeignModule {
846
+ type T = stable_mir:: ty:: ForeignModule ;
847
+
848
+ fn stable ( & self , tables : & mut Tables < ' _ > ) -> Self :: T {
849
+ stable_mir:: ty:: ForeignModule {
850
+ def_id : tables. foreign_module_def ( self . def_id ) ,
851
+ abi : self . abi . stable ( tables) ,
852
+ }
853
+ }
854
+ }
0 commit comments