One embodiment of the present invention provides a system that supports
exception handling through use of a conditional trap instruction. The
system supports a head thread that executes program instructions and a
speculative thread that speculatively executes program instructions in
advance of the head thread. During operation, the system uses the
speculative thread to execute code, which includes an instruction that can
cause an exception condition. After the instruction is executed, the
system determines if the instruction caused the exception condition. If
so, the system writes an exception condition indicator to a register. At
some time in the future, the system executes a conditional trap
instruction which examines a value in the register. If the value in the
register is an exception condition indicator, the system executes a trap
handling routine to handle the exception condition. Otherwise, the system
proceeds with execution of the code. In one embodiment of the present
invention, prior to executing the instruction, the system allows a
compiler to optimize a program containing the instruction. This
optimization process includes scheduling an exception testing instruction
associated with the instruction to occupy a free instruction slot
following the instruction. This exception testing instruction determines
if the instruction causes the exception condition. In one embodiment of
the present invention, the trap handling routine triggers a rollback
operation to undo operations performed by the speculative thread.
Одно воплощение присытствыющего вымысла обеспечивает систему поддерживает обработку ошибок через пользу условно инструкции ловушки. Система поддерживает головную резьбу исполняет инструктирования по программе и умозрительная резьбу умозрительно исполняет инструктирования по программе in advance of головная резьба. Во время деятельности, система использует умозрительную резьбу для того чтобы исполнить Кодего, которое вклюает инструкцию которая может причинить условие исключения. После того как инструкция исполнена, система обусловливает если инструкция причинила условие исключения. Если так, система пишет индикатор условия исключения к регистру. На некотором времени in the future, система исполняет условно инструкцию ловушки которая рассматривает значение в регистре. Если значением в регистре будет индикатор условия исключения, то система исполняет ловушку регулируя режим для того чтобы отрегулировать условие исключения. В противном случае, система продолжает с исполнением Кодего. В одном воплощении присытствыющего вымысла, перед исполнять инструкцию, система позволяет составителю оптимизировать программу содержа инструкцию. Этот процесс оптимизирования вклюает планировать инструкцию по испытаниям исключения связанную с инструкцией занять свободно шлиц инструкции после инструкции. Эта инструкция по испытаниям исключения обусловливает если инструкция причиняет условие исключения. В одном воплощении присытствыющего вымысла, ловушка регулируя режим вызывает деятельность rollback для того чтобы расстегнуть деятельности выполненные умозрительной резьбой.