step_info
interface can be implemented by
processors that optimize the execution by advancing the step count
using special instructions or processor modes.
The get_halt_steps and set_halt_steps functions are used to get and set the number of steps that have been advanced using special features in the architecture. Examples; X86 processor it is the number of halt instructions executed, PPC processors it is the number of steps spent in sleep mode, ARM processors it is the number of steps spent in the "wait for interrupt" state.
The get_ffwd and set_ffwd_steps functions are used to get and set the number of steps that the processor have optimized the execution by advancing time that is not architectural. This can for instance be execution loops that does not affect the processor state.
SIM_INTERFACE(step_info) { pc_step_t (*get_halt_steps)(conf_object_t *obj); void (*set_halt_steps)(conf_object_t *obj, pc_step_t steps); pc_step_t (*get_ffwd_steps)(conf_object_t *obj); void (*set_ffwd_steps)(conf_object_t *obj, pc_step_t steps); pc_step_t (*get_ma_steps)(conf_object_t *obj); void (*set_ma_steps)(conf_object_t *obj, pc_step_t steps); }; #define STEP_INFO_INTERFACE "step_info"