I now have Hello World executing to completion, 303,371 instructions on 32-bit and 307,209 on 64. There’s a lot missing, and a lot I plain don’t understand. And it’s very, very slow. I have a copy of javac
running on 64-bit as I write. And running. And running. I attached gdb
briefly and it was nearing two billion instructions. On 64-bit, that is. 32-bit is crashing in the garbage collector after a mere 300 million bytecodes or so. Debugging GC crashes is something I was dreading.
The interpreter compiled as it will for jvmg is terribly slow. For something big you may well want the fastdebug build or hack the makefiles so that for jvmg it builds the interpreter with optimization.
This is part of the problem — I’d hacked the makefiles to build the interpreter without optimisation :)