Skip to main content

opnd_create_far_base_disp

Function opnd_create_far_base_disp 

Source
pub unsafe extern "C" fn opnd_create_far_base_disp(
    seg: reg_id_t,
    base_reg: reg_id_t,
    index_reg: reg_id_t,
    scale: c_int,
    disp: c_int,
    data_size: opnd_size_t,
) -> opnd_t
Expand description

Returns a far memory reference operand that refers to the address:

  • seg : disp(base_reg, index_reg, scale)

or, in other words,

  • seg : base_reg + index_reg*scale + disp

The operand has data size \p data_size (must be a OPSZ_ constant). \p seg must be a DR_SEG_ constant. Both \p base_reg and \p index_reg must be DR_REG_ constants. \p scale must be either 0, 1, 2, 4, or 8. On ARM, a negative value for \p disp will be converted into a positive value with #DR_OPND_NEGATED set in opnd_get_flags(). On ARM, either \p index_reg must be #DR_REG_NULL or disp must be 0.