Arm_mem_shiftCombine Mem and Shift
val lift_r_exp :
dest1:Arm_types.op ->
?dest2:Arm_types.op ->
base:Arm_types.op ->
offset:Bap.Std.exp ->
Arm_types.mode_r ->
Arm_types.sign ->
Arm_types.size ->
Arm_types.operation ->
Bap.Std.stmt listval lift_r_op :
dest1:Arm_types.op ->
?dest2:Arm_types.op ->
?shift:Arm_types.op ->
base:Arm_types.op ->
offset:Arm_types.op ->
Arm_types.mode_r ->
Arm_types.sign ->
Arm_types.size ->
Arm_types.operation ->
Bap.Std.stmt listval lift_m :
Arm_types.op list ->
Arm_types.op ->
Arm_types.mode_m ->
Arm_types.update_m ->
Arm_types.operation ->
Bap.Std.stmt listval repair_imm :
Bap.Std.word ->
sign_mask:int ->
imm_mask:int ->
Arm_types.repair ->
Bap.Std.exptakes a word and converts it to an exp that is the offset for some memory instructions sign_mask - a bitmask that determines the bit in src that is the repair bit imm_mask - a bitmask that determines which bits in src are the immediate type - whether a set mask indicates a positive or negative immediate. *
takes a word and a register and converts it to an exp that is the offset for some memory instructions sign_mask - a bitmask that determines the bit in src that is the negative bit rtype - whether a set mask indicates a positive or negative operand.
val repair_reg :
Bap.Std.exp ->
Bap.Std.word ->
sign_mask:int ->
Arm_types.repair ->
Bap.Std.expDecides whether to use the register or immediate as the offset value Also performs conversion to remove the negative bit and the
Decides whether to use the register or immediate as the offset value Also performs conversion to remove the negative bit and the
val mem_offset_reg_or_imm_neg : Arm_types.op -> Bap.Std.word -> Bap.Std.expval mem_offset_reg_or_imm_pos : Arm_types.op -> Bap.Std.word -> Bap.Std.exp