1 //! Lowering rules for S390x. 2 3 use crate::ir::Inst as IRInst; 4 use crate::isa::s390x::S390xBackend; 5 use crate::isa::s390x::inst::Inst; 6 use crate::machinst::{InstOutput, Lower, LowerBackend, MachLabel}; 7 8 pub mod isle; 9 10 //============================================================================= 11 // Lowering-backend trait implementation. 12 13 impl LowerBackend for S390xBackend { 14 type MInst = Inst; 15 lower(&self, ctx: &mut Lower<Inst>, ir_inst: IRInst) -> Option<InstOutput>16 fn lower(&self, ctx: &mut Lower<Inst>, ir_inst: IRInst) -> Option<InstOutput> { 17 isle::lower(ctx, self, ir_inst) 18 } 19 lower_branch( &self, ctx: &mut Lower<Inst>, ir_inst: IRInst, targets: &[MachLabel], ) -> Option<()>20 fn lower_branch( 21 &self, 22 ctx: &mut Lower<Inst>, 23 ir_inst: IRInst, 24 targets: &[MachLabel], 25 ) -> Option<()> { 26 isle::lower_branch(ctx, self, ir_inst, targets) 27 } 28 } 29