Here follows a description on all function in the Micro Architecture Interface. Many of the API functions use the enum type instruction_error_t for signaling error codes. The type is defined like this:
typedef enum instruction_error {
Sim_IE_OK = 0,
Sim_IE_Unresolved_Dependencies,
Sim_IE_Speculative,
Sim_IE_Stalling,
Sim_IE_Not_Inserted, /* trying to execute or squash an
instruction that is inserted. */
Sim_IE_Exception, /* (SPARC-V9 only) */
Sim_IE_Fault = Sim_IE_Exception,
Sim_IE_Trap, /* (X86 only) Returned if a trap is
encountered */
Sim_IE_Interrupt, /* (X86 only) Returned if an interrupt is
waiting and interrupts are enabled */
Sim_IE_Sync_Instruction, /* Returned if sync instruction is
not allowd to execute */
Sim_IE_No_Exception, /* Returned by SIM_instruction_
handle_exception */
Sim_IE_Illegal_Interrupt_Point,
Sim_IE_Illegal_Exception_Point,
Sim_IE_Illegal_Address,
Sim_IE_Illegal_Phase,
Sim_IE_Interrupts_Disabled,
Sim_IE_Illegal_Id,
Sim_IE_Instruction_Tree_Full,
Sim_IE_Null_Pointer,
Sim_IE_Illegal_Reg,
Sim_IE_Invalid,
Sim_IE_Out_of_Order_Commit,
Sim_IE_Retired_Instruction, /* try to squash a retiring instruction */
Sim_IE_Not_Committed, /* Returned by SIM_instruction_end */
Sim_IE_Code_Breakpoint,
Sim_IE_Mem_Breakpoint,
Sim_IE_Step_Breakpoint,
Sim_IE_Hap_Breakpoint
} instruction_error_t;
1 Micro Architecture API Functions