Okay so the wrong value was getting pushed or loaded, but it is in a
constructor which takes a
long argument so I believe that the top
of types has not be handled.
And that works now.
So the full frame is wrong with there is a long/double, it is missing a top so I suppose that is very much implied perhaps.
Okay so, the top is just implied in the local variable info. So that is fun.
I had an idea. For native instructions and such I really do want to keep
it in Java code or at least have something very close. So what I can do is,
when I write my own Java assembler I can have
impdep1 be used for these
things. Since this instruction is reserved I can just use it and the class
dumper should be fine with it. Since I cannot encode any information into
it and it would actually be quite complicated, I can have an extra attribute
in the byte code which contains the meaning for every one of those
instructions. So when my assembler reaches a special native assembly kind of
thing it will just pretty much do the thing with it. I will just have this
assembler and the compiler itself which will be for everything related to the
Java language. It will pretty much be the same tool really.
I also thought the progression of VMs:
- SpringCoat -- Initial pure interpreter, what I am building now.
- SummerCoat -- Register based machine with some optimizations as needed.
- AutumnCoat -- A fake raw instruction kind of like native machines.
- WinterCoat -- The final implementation that SquirrelJME will use.
Also, I thought instead of MIDlets, I will just have a basic hello world kind of thing. That is simple and shows things off nicely.
Now I just really want a basic demo that does the one thing.
Note sure how I want to handle
Reference and such.