pub unsafe extern "C" fn instr_compute_address_ex(
instr: *mut instr_t,
mc: *mut dr_mcontext_t,
index: uint,
addr: *mut app_pc,
write: *mut bool_,
) -> bool_Expand description
Performs address calculation in the same manner as instr_compute_address() but handles multiple memory operands. The \p index parameter should be initially set to 0 and then incremented with each successive call until this routine returns false, which indicates that there are no more memory operands. The address of each is computed in the same manner as instr_compute_address() and returned in \p addr; whether it is a write is returned in \p is_write. Either or both OUT variables can be NULL. \p mc->flags must include DR_MC_CONTROL and DR_MC_INTEGER. For instructions that use vector addressing (x86 VSIB, introduced in AVX2, or AArch64 scatter/gather instructions introduced in SVE/SVE2), mc->flags must additionally include DR_MC_MULTIMEDIA.
Like instr_reads_memory(), this routine does not consider multi-byte nops that use addressing operands, or the #OP_lea instruction’s source operand, to be memory references.