Proposal by Lars Wassermann for ARM jitter for Squeak VM

Proposed by Lars Wassermann (profile, biography) Don't forget to submit this proposal to official Google Melange site too!

How will I do that project

At first, I need to get familiar with the VM and the x86 simulator port. Based on what I learn there, I can evaluate different ARM simulators. Then it should be quite similar to the x86 work done so far, at least until the simulator is connected.

Once the simulator works, I should have acquired enough knowledge to start with writing the ARM JITer.

What methodologies will I use

I will try to use some explorative testing for the understanding of the existing simulator. The only longer project I did was using agile methods like sprints of 2 weeks length, user stories, and TDD. This worked quite well. But I'd reduce the sprint time to one week. So that's what I'll try.

Suggested timeline and milestones

First milestone is making a justified decision for which ARM-simulator to use. That should be done within first week of June.

Second milestone is connecting the chosen ARM-simulator to the VM, similar to the Bochs simulator port. This is the goal for the midterm evaluation in the beginning of July.

After that, the incremental development of the ARM Jitter is the third milestone. In parallel I'd try to organize an ARM-Processor to test the changed VM on actual hardware.

Depending on the speed of this last step, there is potential to add code sequences for inline cache checking.

Where I see the risks

I am not used to machine code and low-level machine organizations, like stack frame layout, just yet, and thus have problems seeing all the challenges ahead.

Second problem might be the availability of a good ARM simulator which is usable as a library and is available with a suitable license.

How the results will look like

The result is a Squeak VM plugin to connect to an ARM simulator and a simple JITter for ARM Assembler.

Updated: 5.4.2012