13.10.2014 Views

OPTIMIZING THE JAVA VIRTUAL MACHINE INSTRUCTION SET BY ...

OPTIMIZING THE JAVA VIRTUAL MACHINE INSTRUCTION SET BY ...

OPTIMIZING THE JAVA VIRTUAL MACHINE INSTRUCTION SET BY ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

133<br />

multicode block is defined to be a sequence of one or more bytecodes such<br />

that the following conditions are met:<br />

• The bytecodes within the sequence are adjacent to each other within<br />

the code stream.<br />

• A bytecode within the sequence is the target of a branch if and only<br />

if it is the first bytecode in the sequence.<br />

• Excluding exceptions, if the first bytecode within the block executes<br />

then all bytecodes within the sequence execute.<br />

• An exception handler covers a bytecode within the sequence if and<br />

only if that exception handler covers all bytecodes within the sequence.<br />

A multicode block is distinct from a basic block in two ways.<br />

1. It is possible for a basic block to include some instructions that reside<br />

outside of an exception handler and some instructions that reside<br />

within an exception handler. A multicode block does not permit<br />

this, requiring all bytecodes within the sequence to be handled by<br />

the same exception handlers.<br />

2. A basic block only permits a change in the flow of control at the<br />

end of the block. A multicode block is less restrictive, permitting a<br />

change in the flow of control to occur within the block provided that<br />

it occurs as the result of an exception.<br />

Multicode: A new Java Virtual Machine bytecode which provides functionality<br />

that is equivalent to a sequence of two or more existing Java<br />

bytecodes.<br />

Candidate Sequence: A sequence of adjacent bytecodes within a multicode<br />

block that is being considered for replacement with a multicode.<br />

7.2 An Overview of Multicodes<br />

Section 2.2 described several techniques that can be used to implement a Java interpreter.<br />

While these techniques represent increasingly efficient implementations, each

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!