Module Jasmin.Safety_common

type safety_cond = Expr.eassert list
val etrue : Expr.pexpr
val aands : Expr.eassert list -> Expr.eassert
val sign_of_var : (Var0.Var.var -> (Wsize.signedness * Var0.Var.var) option) -> Var0.Var.var -> Wsize.signedness option
val sign_of_gvar : (Var0.Var.var -> (Wsize.signedness * Var0.Var.var) option) -> Expr.gvar -> Wsize.signedness option
val sign_of_etype : BinNums.coq_Z Type.extended_type -> Wsize.signedness option
val sign_of_expr : (Var0.Var.var -> (Wsize.signedness * Var0.Var.var) option) -> Expr.pexpr -> Wsize.signedness option
val eneqi : Expr.pexpr -> Expr.pexpr -> Expr.pexpr
val elsli : Expr.pexpr -> Expr.pexpr -> Expr.pexpr
val ezero : Expr.pexpr
val emin_signed : Wsize.wsize -> Expr.pexpr
val emax_signed : Wsize.wsize -> Expr.pexpr
val emax_unsigned : Wsize.wsize -> Expr.pexpr
val safety_lbl : string
val safe_assert : 'a1 Sopn.asmOp -> Expr.instr_info -> safety_cond -> 'a1 Expr.instr list
val sc_in_range : Expr.pexpr -> Expr.pexpr -> Expr.pexpr -> Expr.pexpr
val sc_uint_range : Wsize.wsize -> Expr.pexpr -> Expr.pexpr
val sc_sint_range : Wsize.wsize -> Expr.pexpr -> Expr.pexpr
val check_xs : bool -> Var0.SvExtra.Sv.t -> Expr.lval list -> Expr.pexpr list list -> bool