Skip to content

Commit 8ff9d1f

Browse files
committed
CHB:ARM: remove conversion for offsets
1 parent e57f546 commit 8ff9d1f

File tree

3 files changed

+12
-159
lines changed

3 files changed

+12
-159
lines changed

CodeHawk/CHB/bchlibarm32/bCHFnARMDictionary.ml

Lines changed: 12 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -648,7 +648,6 @@ object (self)
648648
(floc#get_var_at_address ~btype:(ptr_deref ptype) xx)
649649
else
650650
xx in
651-
let xx = TR.tvalue (floc#convert_xpr_offsets xx) ~default:xx in
652651
let rdef = get_rdef_r xvar_r in
653652
(xx :: xprs, xvar_r :: xvars, rdef :: rdefs, index + 1))
654653
([], [], [], 1) callargs in
@@ -739,16 +738,6 @@ object (self)
739738
match get_regvar_type_annotation () with
740739
| Some t -> t
741740
| _ -> t_unknown in
742-
(*
743-
let rresult_r =
744-
TR.tmap
745-
(fun rresult ->
746-
TR.tfold_default
747-
(fun v -> XOp ((Xf "addressofvar"), [(XVar v)]))
748-
rresult
749-
(floc#get_var_at_address rresult))
750-
rresult_r in
751-
*)
752741
let (tagstring, args) =
753742
mk_instrx_data_r
754743
~vars_r:[vrd_r]
@@ -1075,26 +1064,19 @@ object (self)
10751064
let csetter = floc#f#get_associated_cc_setter floc#cia in
10761065
let tcond = rewrite_test_expr csetter txpr in
10771066
let fcond = rewrite_test_expr csetter fxpr in
1078-
let tcond_r = floc#convert_xpr_offsets ~size:(Some 4) tcond in
1079-
let fcond_r = floc#convert_xpr_offsets ~size:(Some 4) fcond in
1067+
let csetter_addr_r = string_to_doubleword csetter in
1068+
let csetter_instr_r =
1069+
TR.tbind get_arm_assembly_instruction csetter_addr_r in
10801070
let bytestr =
1081-
try
1082-
let instr =
1083-
fail_tvalue
1084-
(trerror_record
1085-
(LBLOCK [STR "Internal error in FnARMDictionary:Branch"]))
1086-
(get_arm_assembly_instruction
1087-
(fail_tvalue
1088-
(trerror_record
1089-
(LBLOCK [STR "FnARMDictionary:Branch: "; STR csetter]))
1090-
(string_to_doubleword csetter))) in
1091-
instr#get_bytes_ashexstring
1092-
with
1093-
| _ -> "0x0" in
1071+
TR.tfold
1072+
~ok:(fun instr -> instr#get_bytes_ashexstring)
1073+
~error:(fun e ->
1074+
begin log_error_result __FILE__ __LINE__ e; "0x0" end)
1075+
csetter_instr_r in
10941076
let rdefs = (get_all_rdefs txpr) @ (get_all_rdefs tcond) in
10951077
let (tagstring, args) =
10961078
mk_instrx_data_r
1097-
~xprs_r:[Ok txpr; Ok fxpr; tcond_r; fcond_r; xtgt_r]
1079+
~xprs_r:[Ok txpr; Ok fxpr; Ok tcond; Ok fcond; xtgt_r]
10981080
~rdefs
10991081
() in
11001082
let (tags, args) = (tagstring :: ["TF"; csetter; bytestr], args) in
@@ -1191,8 +1173,6 @@ object (self)
11911173
let xresult_r =
11921174
TR.tmap2 (fun xrn xrm -> XOp (XMinus, [xrn; xrm])) xrn_r xrm_r in
11931175
let result_r = TR.tmap rewrite_expr xresult_r in
1194-
let result_r =
1195-
TR.tbind (floc#convert_xpr_offsets ~size:(Some 4)) result_r in
11961176
let rdefs =
11971177
[get_rdef_r xrn_r; get_rdef_r xrm_r] @ (get_all_rdefs_r result_r) in
11981178
let (tagstring, args) =
@@ -1530,8 +1510,6 @@ object (self)
15301510
let useshigh = [get_def_use_high_r vrt_r] in
15311511
let xxaddr_r = TR.tmap rewrite_expr xaddr_r in
15321512
let xrmem_r = TR.tmap rewrite_expr xmem_r in
1533-
let xrmem_r =
1534-
TR.tbind (floc#convert_xpr_offsets ~size:(Some 4)) xrmem_r in
15351513
let _ =
15361514
TR.tfold_default
15371515
(fun xrmem -> ignore (get_string_reference floc xrmem)) () xrmem_r in
@@ -1736,7 +1714,6 @@ object (self)
17361714
let vmem_r = mem#to_variable floc in
17371715
let xmem_r = mem#to_expr floc in
17381716
let xrmem_r = TR.tmap rewrite_expr xmem_r in
1739-
let xrmem_r = TR.tbind floc#convert_xpr_offsets xrmem_r in
17401717
let xxaddr_r = TR.tmap rewrite_expr xaddr_r in
17411718
let rdefs =
17421719
[get_rdef_r xrn_r; get_rdef_r xrm_r; get_rdef_memvar_r vmem_r]
@@ -2566,10 +2543,6 @@ object (self)
25662543
let xdst_r = dstop#to_expr floc in
25672544
let xxsrc_r = TR.tmap (rewrite_floc_expr srcfloc) xsrc_r in
25682545
let xxdst_r = TR.tmap (rewrite_expr ?restrict:(Some 4)) xdst_r in
2569-
let xxdst_r =
2570-
TR.tmap
2571-
(fun v -> XOp ((Xf "addressofvar"), [(XVar v)]))
2572-
(TR.tbind floc#get_var_at_address xxdst_r) in
25732546
let rdefs = [(get_rdef_r xsrc_r); (get_rdef_r xdst_r)] in
25742547
let _ =
25752548
TR.tfold_default
@@ -2643,11 +2616,6 @@ object (self)
26432616
(fun (acc, off) _reg ->
26442617
let memop = arm_reg_deref ~with_offset:off basereg WR in
26452618
let memlhs_r = memop#to_variable floc in
2646-
let memlhs_r =
2647-
let r =
2648-
TR.tbind
2649-
(floc#convert_variable_offsets ~size:(Some 4)) memlhs_r in
2650-
if Result.is_ok r then r else memlhs_r in
26512619
(acc @ [memlhs_r], off + 4)) ([], 4) rl#get_register_op_list in
26522620
let rdefs = List.map get_rdef_r (baserhs_r :: rrhss_rl) in
26532621
let uses = List.map get_def_use_r (baselhs_r :: memlhss_rl) in
@@ -2674,26 +2642,21 @@ object (self)
26742642

26752643
| StoreRegister (c, rt, rn, rm, mem, _) ->
26762644
let vmem_r = mem#to_variable floc in
2677-
let vmem_r =
2678-
let r = TR.tbind (floc#convert_variable_offsets ~size:(Some 4)) vmem_r in
2679-
if Result.is_ok r then r else vmem_r in
26802645
let xaddr_r = mem#to_address floc in
26812646
let xrt_r = rt#to_expr floc in
26822647
let xrn_r = rn#to_expr floc in
26832648
let xrm_r = rm#to_expr floc in
26842649
let xxrt_r = TR.tmap rewrite_expr xrt_r in
2685-
let xxrtc_r = TR.tbind floc#convert_xpr_offsets xxrt_r in
26862650
let xxaddr_r = TR.tmap rewrite_expr xaddr_r in
2687-
let lhsvar_r = TR.tbind floc#get_var_at_address xxaddr_r in
26882651
let rdefs =
26892652
[get_rdef_r xrn_r;
26902653
get_rdef_r xrm_r;
26912654
get_rdef_r xrt_r;
26922655
get_rdef_r xxrt_r] in
26932656
let uses = [get_def_use_r vmem_r] in
26942657
let useshigh = [get_def_use_high_r vmem_r] in
2695-
let xprs_r = [xrn_r; xrm_r; xrt_r; xxrt_r; xxrtc_r; xaddr_r] in
2696-
let vars_r = [vmem_r; lhsvar_r] in
2658+
let xprs_r = [xrn_r; xrm_r; xrt_r; xxrt_r; xaddr_r] in
2659+
let vars_r = [vmem_r] in
26972660
let _ =
26982661
floc#memrecorder#record_store_r
26992662
~addr_r:xxaddr_r
@@ -2722,17 +2685,12 @@ object (self)
27222685

27232686
| StoreRegisterByte (c, rt, rn, rm, mem, _) ->
27242687
let vmem_r = mem#to_variable floc in
2725-
let vmem_r =
2726-
let r = TR.tbind (floc#convert_variable_offsets ~size:(Some 1)) vmem_r in
2727-
if Result.is_ok r then r else vmem_r in
27282688
let xaddr_r = mem#to_address floc in
27292689
let xrt_r = rt#to_expr floc in
27302690
let xrn_r = rn#to_expr floc in
27312691
let xrm_r = rm#to_expr floc in
27322692
let xxrt_r = TR.tmap rewrite_expr xrt_r in
27332693
let xxaddr_r = TR.tmap rewrite_expr xaddr_r in
2734-
let lhsvar_r =
2735-
TR.tbind (floc#get_var_at_address ~size:(Some 1)) xxaddr_r in
27362694
let rdefs =
27372695
[get_rdef_r xrn_r;
27382696
get_rdef_r xrm_r;
@@ -2749,7 +2707,7 @@ object (self)
27492707
~xpr_r:xxrt_r in
27502708
let (tagstring, args) =
27512709
mk_instrx_data_r
2752-
~vars_r:[vmem_r; lhsvar_r]
2710+
~vars_r:[vmem_r]
27532711
~xprs_r:[xrn_r; xrm_r; xrt_r; xxrt_r; xaddr_r]
27542712
~rdefs
27552713
~uses
@@ -2774,13 +2732,7 @@ object (self)
27742732

27752733
| StoreRegisterDual (c, rt, rt2, rn, rm, mem, mem2) ->
27762734
let vmem_r = mem#to_variable floc in
2777-
let vmem_r =
2778-
let r = TR.tbind (floc#convert_variable_offsets ~size:(Some 4)) vmem_r in
2779-
if Result.is_ok r then r else vmem_r in
27802735
let vmem2_r = mem2#to_variable floc in
2781-
let vmem2_r =
2782-
let r = TR.tbind (floc#convert_variable_offsets ~size:(Some 4)) vmem2_r in
2783-
if Result.is_ok r then r else vmem2_r in
27842736
let xaddr1_r = mem#to_address floc in
27852737
let xaddr2_r = mem2#to_address floc in
27862738
let xaddr1_r = TR.tmap rewrite_expr xaddr1_r in
@@ -2867,15 +2819,11 @@ object (self)
28672819

28682820
| StoreRegisterHalfword (c, rt, rn, rm, mem, _) ->
28692821
let vmem_r = mem#to_variable floc in
2870-
let vmem_r =
2871-
let r = TR.tbind (floc#convert_variable_offsets ~size:(Some 2)) vmem_r in
2872-
if Result.is_ok r then r else vmem_r in
28732822
let xaddr_r = mem#to_address floc in
28742823
let xrt_r = rt#to_expr floc in
28752824
let xrn_r = rn#to_expr floc in
28762825
let xrm_r = rm#to_expr floc in
28772826
let xxrt_r = TR.tmap rewrite_expr xrt_r in
2878-
let xxrt_r = TR.tbind floc#convert_xpr_offsets xxrt_r in
28792827
let xxaddr_r = TR.tmap rewrite_expr xaddr_r in
28802828
let rdefs =
28812829
[get_rdef_r xrn_r;

CodeHawk/CHB/bchsummaries/so_functions/CRYPTO_malloc.xml

Lines changed: 0 additions & 54 deletions
This file was deleted.

CodeHawk/CHB/bchsummaries/so_functions/RAND_bytes.xml

Lines changed: 0 additions & 41 deletions
This file was deleted.

0 commit comments

Comments
 (0)