Patent ID: 7783863
Filing Date: 2010-08-24
Classification: G06F

Abstract:
1. A method of handling a trace to be aborted, where the method is adapted for use with a processor that executes operations that represent instructions, the method comprising: receiving an indication of a trace to be aborted and an indication of an abort reason corresponding to an execution of the trace to be aborted, where the trace to be aborted has a trace type associated therewith, where the trace to be aborted includes a sequence of the operations, and where the trace to be aborted represents a sequence of at least two of the instructions; identifying a corrective action based at least in part on the type of the trace to be aborted and on the abort reason, wherein the identifying does not take into account a correspondence between at least one operation that caused the execution to be aborted and at least one instruction that the at least one operation at least in part represents; and determining a next trace for execution and the trace type of the next trace for execution, where the determining is based on the trace to be aborted and on the corrective action, when it is determined that the next trace is to be a degraded version of the trace to be aborted and when the trace to be aborted is a multi-block trace that represents a sequence of instructions that includes at least one control transfer instruction that is internal to the sequence of instructions, then the degraded version of the trace to be aborted is: a single instruction trace when representing an initial instruction of the sequence of instructions; a basic block trace when representing a subset of the sequence of instructions where the subset begins with an initial instruction of the sequence of instructions; and a multi-block trace when representing a subset of the sequence of instructions where the subset begins with an initial instruction of the sequence of instructions; and when the trace to be aborted is a basic block trace that represents a sequence of instructions that includes no control transfer instructions internal to the sequence of instructions, then the degraded version of the trace to be aborted is: a single instruction trace when representing an initial instruction of the sequence of instructions; and a basic block trace when representing a subset of the sequence of instructions where the subset begins with an initial instruction of the sequence of instructions.