Modify / Add Instruction set of Java & Add New SuperInstruction to It

David Holmes david.holmes at oracle.com
Tue Oct 24 05:07:40 UTC 2017


Hi,

On 23/10/2017 12:23 AM, Adeel Iqbal wrote:
> Hi,
> i am working on a project where i have to modify the java bytecode instruction set by adding custom instruction  (SuperInstructions) as a replacement of sequence of instructions in order to reduce the size of the generated file and to modify the JVM to recognize these new instructions.
> can you please guide me.

That's a significant project. Not knowing how much you know about 
anything makes it hard to give guidance. But you're not the first to 
attempt such a thing so I suggest doing some initial research. This is a 
quick hit I got when I googled "bytecode compaction for the JVM":

https://link.springer.com/chapter/10.1007/978-3-642-13651-1_2

It's only a preview, you'll need to get full access to the paper by some 
means. But their project has a wikipedia entry:

https://en.wikipedia.org/wiki/TakaTuka

Disclaimer: I know nothing about this system.

The theory is simple enough:

1. Identify the sequences you want to replace
2. Write a tool (or modify javac) to recognize the sequences and replace 
them with the new bytecode.
3. Add the new bytecode to the interpreter.

Before proceeding with step 3 run the tool over your benchmark 
application and see if you're really achieving your goals with regards 
to saving space.

But please don't expect step-by-step assistance with this.

Cheers,
David


More information about the hotspot-dev mailing list