Skip to main content

drreg_restore_app_aflags

Function drreg_restore_app_aflags 

Source
pub unsafe extern "C" fn drreg_restore_app_aflags(
    drcontext: *mut c_void,
    ilist: *mut instrlist_t,
    where_: *mut instr_t,
) -> drreg_status_t
Expand description

This routine ensures that the application’s value for the arithmetic flags is in place prior to \p where. This is automatically done when the flags are reserved prior to an application instruction, but sometimes instrumentation needs to read the value of the flags. This is intended as a convenience barrier for lazy restores performed by drreg.

If called during drmgr’s insertion phase, \p where must be the current application instruction.

TODO i#3823: Support multi-phase use. This will require adding support to spill aflags to slots other than AFLAGS_SLOT.

@return whether successful or an error code on failure.