let p_interval ~atomic (ofs,sz) te rg =
let s = sizeof ~atomic te in
match rg with
| { D.inf=None ; D.sup=None } -> ofs,sz
| { D.inf=None ; D.sup=Some p } -> ofs,F.e_iop Imul s p
| { D.inf=Some a ; D.sup=None } -> ofs,F.e_iop Isub sz (F.e_iop Imul s a)
| { D.inf=Some a ; D.sup=Some b } ->
F.e_iop Iadd ofs (F.e_iop Imul s a) ,
F.e_iop Imul s (F.e_iop Iadd (F.e_int 1) (F.e_iop Isub b a))