Method and apparatus for facilitating exception handling using a conditional trap instruction

   
   

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 для того чтобы расстегнуть деятельности выполненные умозрительной резьбой.

 
Web www.patentalert.com

< Java runtime system with modified constant pool

< Programming system and thread synchronization mechanisms for the development of selectively sequential and multithreaded computer programs

> Selectively enabling expression folding during program compilation

> Highly componentized system architecture with a loadable interprocess communication manager

~ 00103