Module Arm_mem_shift

Combine Mem and Shift

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