@@ -84,7 +84,7 @@ module CL = struct
84
84
| Iunop of string * eexp
85
85
| Ibinop of eexp * string * eexp
86
86
| Ilimbs of const * eexp list
87
- | IUnPack of tyvar * int * int * bool
87
+ | IUnPack of tyvar * int * int
88
88
89
89
let (!-) e1 = Iunop (" -" , e1)
90
90
let (-) e1 e2 = Ibinop (e1, " -" , e2)
@@ -134,7 +134,7 @@ module CL = struct
134
134
| Runop of string * rexp
135
135
| Rbinop of rexp * string * rexp
136
136
| RVget of tyvar * const
137
- | UnPack of tyvar * int * int * bool
137
+ | UnPack of tyvar * int * int
138
138
| Rlimbs of const * rexp list
139
139
140
140
let const (i1 ,z1 ) = Rconst (i1,z1)
@@ -557,9 +557,7 @@ module I (S:S): I = struct
557
557
| PappN (Oabstract {pa_name ="ze_16_32" } , [v ]) -> Ruext (! > v, 16 )
558
558
| PappN (Oabstract {pa_name ="limbs_4u64" } , [q ]) -> Rlimbs ((Z. of_int 64 ), (List. map (! > ) (extract_list q [] )))
559
559
| PappN (Oabstract {pa_name ="u256_as_16u16" } , [Pvar x ; Pconst z ]) ->
560
- UnPack (to_var ~sign x, 16 , Z. to_int z, false )
561
- | PappN (Oabstract {pa_name ="u256_as_16u16" } , [Presult (_ , x ) ; Pconst z ]) ->
562
- UnPack (to_var ~sign x, 16 , Z. to_int z, true )
560
+ UnPack (to_var ~sign x, 16 , Z. to_int z)
563
561
| _ -> error e
564
562
565
563
let rec gexp_to_rpred ?(sign =S. s) e : CL.R.rpred =
@@ -579,8 +577,8 @@ module I (S:S): I = struct
579
577
| Papp2 (Olt int , e1 , e2 ) -> ult ! > e1 ! > e2
580
578
| Papp2 (Ogt int , e1 , e2 ) -> ugt ! > e1 ! > e2
581
579
| Pif (_ , e1 , e2 , e3 ) -> RPand [RPor [RPnot ! >> e1; ! >> e2];RPor [ ! >> e1; ! >> e3]]
582
- | Pabstract ( { name ="eq" } , [e1 ;e2 ]) -> eq ! > e1 ! > e2
583
- | Pabstract ( { name ="eqsmod" } as _opa , [e1 ;e2 ;e3 ]) -> RPeqsmod (! > e1, ! > e2, ! > e3)
580
+ | PappN (Oabstract { pa_name ="eq" } , [e1 ;e2 ]) -> eq ! > e1 ! > e2
581
+ | PappN (Oabstract { pa_name ="eqsmod" } as _opa , [e1 ;e2 ;e3 ]) -> RPeqsmod (! > e1, ! > e2, ! > e3)
584
582
| _ -> error e
585
583
586
584
let rec get_const x =
@@ -696,11 +694,8 @@ module I (S:S): I = struct
696
694
mull ! > b (power (Ivar v) ! > a)
697
695
| PappN (Oabstract {pa_name ="mon0" } , [b ]) ->
698
696
! > b
699
- | PappN (Oabstract {name ="u256_as_16u16" } , [Pvar x ; Pconst z ]) ->
700
- IUnPack (to_var ~sign x, 16 , Z. to_int z, false )
701
- | Pabstract ({name ="u256_as_16u16" } , [Presult (_ , x ) ; Pconst z ]) ->
702
- IUnPack (to_var ~sign x, 16 , Z. to_int z, true )
703
- | Presult (_ ,x ) -> Ivar (to_var ~sign x)
697
+ | PappN (Oabstract {pa_name ="u256_as_16u16" } , [Pvar x ; Pconst z ]) ->
698
+ IUnPack (to_var ~sign x, 16 , Z. to_int z)
704
699
| _ -> error e
705
700
706
701
let rec gexp_to_epred env ?(sign =S. s) e :CL.I.epred list =
@@ -1886,11 +1881,10 @@ module Mk(O:BaseOp) = struct
1886
1881
[CL.Instr. assert_ pre_cl], [CL.Instr. assume post_cl]
1887
1882
in
1888
1883
(* FIXME: How are we sure that the variables in r are fresh ? *)
1889
- r , pre_cl @ post_cl
1890
1884
let formals = List. map O.I. var_to_tyvar fd.f_args in
1891
1885
let cond (a ,_ ) (x ,_ ) = (x.v_name = a.v_name) && (x.v_id = a.v_id) in
1892
1886
let formals = filter_add cond formals (List. map O.I. gexp_to_var params) in
1893
- r , formals , [ CL.Instr. assert_ pre_cl] @ [ CL.Instr. assume post_cl]
1887
+ r , formals, pre_cl @ post_cl
1894
1888
1895
1889
| Cassgn (a , _ , _ , e ) ->
1896
1890
begin
@@ -1934,7 +1928,6 @@ module Mk(O:BaseOp) = struct
1934
1928
let post = sub_fun_returns ci.f_ires r post in
1935
1929
let post = to_clause env post in
1936
1930
pre, post in
1937
- let lval,prog = pp_c env fds fd.f_body in
1938
1931
let lval,formals_args,prog = pp_c env fds fd.f_body in
1939
1932
let formals_lval = List. map (fun x -> O.I. get_lval (O.I. glval_to_lval x)) lval in
1940
1933
let cond (a ,_ ) (x ,_ ) = (x.v_name = a.v_name) && (x.v_id = a.v_id) in
0 commit comments