Skip to main content

opnd_create_abs_addr

Function opnd_create_abs_addr 

Source
pub unsafe extern "C" fn opnd_create_abs_addr(
    addr: *mut c_void,
    data_size: opnd_size_t,
) -> opnd_t
Expand description

Returns a memory reference operand that refers to the address \p addr. The operand has data size \p data_size (must be a OPSZ_ constant).

If \p addr <= 2^32 (which is always true in 32-bit mode), this routine is equivalent to opnd_create_base_disp(DR_REG_NULL, DR_REG_NULL, 0, (int)addr, data_size).

Otherwise, this routine creates a separate operand type with an absolute 64-bit memory address. Such an operand can only be guaranteed to be encodable in absolute form as a load or store from or to the rax (or eax) register. It will automatically be converted to a pc-relative operand (as though opnd_create_rel_addr() had been called) if it is used in any other way.