@@ -202,41 +202,13 @@ where
202202impl < ' tcx > Stable < ' tcx > for ty:: FnSig < ' tcx > {
203203 type T = stable_mir:: ty:: FnSig ;
204204 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 ;
207206
208207 FnSig {
209208 inputs_and_output : self . inputs_and_output . iter ( ) . map ( |ty| ty. stable ( tables) ) . collect ( ) ,
210209 c_variadic : self . c_variadic ,
211210 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) ,
240212 }
241213 }
242214}
@@ -832,3 +804,51 @@ impl<'tcx> Stable<'tcx> for ty::Movability {
832804 }
833805 }
834806}
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