@@ -33,10 +33,8 @@ open CHLanguage
3333
3434(* bchlib *)
3535open BCHBasicTypes
36- open BCHCPURegisters
3736open BCHDoubleword
3837open BCHLibTypes
39- open BCHSystemSettings
4038
4139module H = Hashtbl
4240module TR = CHTraceResult
@@ -327,93 +325,3 @@ let symbol_to_ctxt_string (s:symbol_t) =
327325
328326let ctxt_string_to_symbol (name :string ) ?(atts =[] ) (s :ctxt_iaddress_t ) =
329327 new symbol_t ~atts: (s::atts) name
330-
331-
332- class ssa_register_store_t =
333- object
334-
335- (* names of regular ssa variables *)
336- val store = H. create 3
337- val nextindex = H. create 3
338-
339- (* names of introduced ssa variables for joins *)
340- val jstore = H. create 3
341- val jnextindex = H. create 3
342-
343- method get_name
344- (name : string )
345- (faddr : doubleword_int )
346- (iaddr : ctxt_iaddress_t ): string =
347- let key = faddr#to_hex_string ^ " _" ^ iaddr ^ " _" ^ name in
348- if H. mem store key then
349- H. find store key
350- else
351- let idwr = string_to_doubleword iaddr in
352- let alignment = system_settings#get_instruction_alignment in
353- let vname =
354- TR. tfold_default
355- (fun idw ->
356- let offsetr = idw#subtract_to_int faddr in
357- TR. tfold_default
358- (fun offset -> name ^ " _" ^ (string_of_int (offset / alignment)))
359- (name ^ " _" ^ iaddr)
360- offsetr)
361- (name ^ " _" ^ iaddr)
362- idwr in
363- begin
364- H. add store key vname;
365- vname
366- end
367-
368- method get_join_name
369- (name : string )
370- (faddr : doubleword_int )
371- (iaddrs : ctxt_iaddress_t list ): string =
372- let key = faddr#to_hex_string ^ " _" ^ name ^ (String. concat " _" iaddrs) in
373- if H. mem jstore key then
374- H. find jstore key
375- else
376- let alignment = system_settings#get_instruction_alignment in
377- let idws_r = List. map string_to_doubleword iaddrs in
378- let offsets_r =
379- List. map
380- (fun idw_r ->
381- TR. tbind
382- (fun idw ->
383- let offset_r = idw#subtract_to_int faddr in
384- TR. tbind
385- (fun offset ->
386- Ok (string_of_int (offset / alignment)))
387- offset_r)
388- idw_r) idws_r in
389- let vname =
390- TR. tfold_list_default
391- ~ok: (fun acc offset -> acc ^ " _" ^ offset)
392- ~err: (fun acc -> acc ^ " _XXX" )
393- name
394- offsets_r in
395- begin
396- H. add jstore key vname;
397- vname
398- end
399-
400- end
401-
402-
403- let store = new ssa_register_store_t
404-
405-
406- let ssa_register_value_name
407- (reg : register_t )
408- (faddr : doubleword_int )
409- (iaddr : ctxt_iaddress_t ): string =
410- let name = " v" ^ (register_to_string reg) in
411- store#get_name name faddr iaddr
412-
413-
414- let ssa_register_value_join_name
415- (reg : register_t )
416- (faddr : doubleword_int )
417- (iaddrs : ctxt_iaddress_t list ): string =
418- let name = " vv" ^ register_to_string reg in
419- store#get_join_name name faddr iaddrs
0 commit comments