3 ***DISCLAIMER***: _These notes are from the defunct k8 project which_
4 _precedes SquirrelJME. The notes for SquirrelJME start on 2016/02/26!_
5 _The k8 project was effectively a Java SE 8 operating system and as such_
6 _all of the notes are in the context of that scope. That project is no_
7 _longer my goal as SquirrelJME is the spiritual successor to it._
11 Making it not a singleton makes it just so better designed and less hacky as
12 you do not need a struct for storage.
16 Migrating my old code to this new better transformer system was quite easy,
17 now I am back to where I was before and now it will be much easier to work
18 with because I no longer need a public bridge. Although I disabled the opcode
19 decoding since I need to rework that a bit better anyway. Now for the
20 StackMapTable stuff, it seems the only place it gets generated is for code
21 that uses goto, subroutines, and branches. I would have to see this in actual
22 decompilation sets. However simple methods that do not branch and such are
23 simple to verify as they cause no complex behavior much. I need to eat
24 however, but I will need a simple stack pusher and popper and local
25 verification between solar and byte code.
29 What I need is a simple stack manager, the bad things is the state of the
30 stack where longs and doubles consist of two bits. That complicates things a
35 To limit exposure, placement of the gigantic instruction enumeration could be
36 moved to the decoder class, but then adding the Encoder would require the same
37 stuff also, so the code is just going to get very large.
41 I figured out the stack stuff, I will just have another special class which is
42 capable of handling the Java Stack with pushing and popping correctly. Well I
43 do not need a class, just a bunch of methods that can check things.
47 I need storage for every PC address for potential jumps back to older code and
52 Have basic loading for references and pushing of null references. Moons used
53 to be associated with planets, but not anymore because that makes the values
54 easier to move around rather than just being snatched to one thing. In the
55 future though, values could be intersections of planets.