5 If you look at the jump target for instructions, you can notice loops and such.
9 Thinking about it, I could have exceptions done separate from the jump sources.
10 Then I can have a union list and cache it when exception data is loaded. This
11 will reduce the complication that would be required when handling such things.
12 The jump targets and jump sources would get additions to them. This would work
13 out since I only have to worry about exceptions later on.
17 Actually with this new way of doing things, I can load classes faster and just
18 have to worry about the translation parts as they are executed and/or
19 compiled. So this would in fact result in slightly increased load times at the
20 cost of execution time. However, the interpreter is not made for speed or
21 standard execution, it is designed for recompilation.
25 Need to bring back the by index variable states since now it is used.
29 In idea for having the interpreter or compiled target against J2ME, the older
30 versions, is that for filesystem handling I can still perform it and provide
31 `FileChannel` access and such. It would instead operate at a speed reduction
32 since seeking backwards is not really possible. Thus the `FileChannel` will
33 cache parts of the file, log any changes, and then create a new file when
34 closed or synchronized. Also with the verification state being combined with
35 the stack top and such, I can instead do it in a single pass. The locals are
36 done first, but the stack is placed after the locals. Before I would need a
37 pass for the locals and the stack, but now it can be combined into one. The
38 stack essentially will never drop down below the number of locals which are
43 Now to remove the program output and such.
47 So now I have enough of this new interpreter (which actually handles no
48 instructions) where I can continue on and start making objects for things and
49 such. Thus some verification will end up being lazy. Although at a slight speed
50 cost, it should be easier when it comes to memory usage sort of when
51 compilation is being performed. The partial program code could also be used
52 for inlining potential too.
56 One probably less known thing about the VM is that `.class` on a primitive is
57 syntactic sugar for `Boxed.TYPE`. I previously just did the primitive since
58 I figured instead of adding a bunch of magic I could instead just detect or
59 set the value of `TYPE` for boxed primitives. However magic would likely be
60 the better route due to the interpreter and compiler.