The present invention enables re-ordering of instructions to be executed
while assuring a precise exception. In Java language, an optimization
process of re-ordering instructions to be executed is performed by
Just-In-Time compiler. For instance, the instructions lining in order from
instruction E1 which was moved forward to instruction S2which had been
located before E1 is registered as interrupt inhibited section R1, and
from instruction S4 which was moved forward to instruction S3 which had
been located before S4 is registered as interrupt inhibited section R2 (S
is an instruction which has an affect observable from the outside at the
execution, and E is an instruction which may cause an exception). Also, in
FIG. 7, S4 which was an instruction behind E1 in the original order is
registered as R1's instruction invalid at an exception. If E1 causes an
exception, an interrupt handler is activated and the instructions of
interrupt inhibited section R1 are copied to another area. S4 is not
copied in that case. In addition, a branch code to an exception handling
routine is attached to the end of the copy. If execution is restarted from
S1, the instructions required to be executed for assuring the precise
exception are executed, and it may move on to an exception handling
routine thereafter.
Присытствыющий вымысел включает переупорядочивать инструкций быть исполненным пока убеждающ точного исключения. В языке java, процесс оптимизирования переупорядочивать инструкции быть исполненным выполнен составителем Как раз-В-Времени. For instance, инструкциями выравниваясь в заказе от инструкции E1 которая была двинута вперед к инструкции S2which были расположены прежде чем E1 будет зарегистрировано как раздел заблокированный interrupt R1, и от инструкции S4 которая была двинута вперед к инструкции S3 которая была обнаружена местонахождение прежде чем S4 будет зарегистрировано как раздел заблокированный interrupt R2 (с будут инструкцией которая имеет observable влияния от снаружи на исполнении, и е будут инструкция которая может причинить исключение). Также, в FIG 7, S4 которое было инструкция за E1 в первоначально заказе зарегистрировано как инструкция R1's инвалидная на исключении. Если E1 причиняет исключение, то укротитель interrupt активирован и инструкции раздела заблокированного interrupt R1 скопированы к другой области. S4 не скопировано в тот случай. In addition, Кодий ветви к режиму обработки ошибок прикреплено к концу экземпляра. Если исполнение повторено старт от S1, то исполнены инструкции необходимы, что были исполнены для убеждать точного исключения, и оно может двинуть дальше к режиму обработки ошибок в дальнейшем.