Arm_mem_shift
Combine 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 list
val 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 list
val lift_m :
Arm_types.op list ->
Arm_types.op ->
Arm_types.mode_m ->
Arm_types.update_m ->
Arm_types.operation ->
Bap.Std.stmt list
val repair_imm :
Bap.Std.word ->
sign_mask:int ->
imm_mask:int ->
Arm_types.repair ->
Bap.Std.exp
takes 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.exp
Decides 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.exp
val mem_offset_reg_or_imm_pos : Arm_types.op -> Bap.Std.word -> Bap.Std.exp