Check-in [7d10eb6c2a]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Backup developer notes.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 7d10eb6c2a640021db80a85d4200e568150ca303
User & Date: squirreljme 2019-04-17 07:02:32
Context
2019-04-17
12:24
Base for loading of pool entries. check-in: 3a1b4cb8b5 user: stephanie.gawroriski tags: trunk
07:02
Backup developer notes. check-in: 7d10eb6c2a user: squirreljme tags: trunk
01:55
Correct relative offset for constant pools and such being off. check-in: 5dc108ae42 user: stephanie.gawroriski tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to assets/developer-notes/index.mkd.

2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
`09`
[**`10`**](stephanie-gawroriski/2019/04/10.mkd)
[**`11`**](stephanie-gawroriski/2019/04/11.mkd)
[**`12`**](stephanie-gawroriski/2019/04/12.mkd)
[**`13`**](stephanie-gawroriski/2019/04/13.mkd)
 * [**`14`**](stephanie-gawroriski/2019/04/14.mkd)
[**`15`**](stephanie-gawroriski/2019/04/15.mkd)
`16`
`17`
`18`
`19`
`20`
 * `21`
`22`
`23`







|







2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
`09`
[**`10`**](stephanie-gawroriski/2019/04/10.mkd)
[**`11`**](stephanie-gawroriski/2019/04/11.mkd)
[**`12`**](stephanie-gawroriski/2019/04/12.mkd)
[**`13`**](stephanie-gawroriski/2019/04/13.mkd)
 * [**`14`**](stephanie-gawroriski/2019/04/14.mkd)
[**`15`**](stephanie-gawroriski/2019/04/15.mkd)
[**`16`**](stephanie-gawroriski/2019/04/16.mkd)
`17`
`18`
`19`
`20`
 * `21`
`22`
`23`

Added assets/developer-notes/stephanie-gawroriski/2019/04/16.mkd.



























































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# 2019/04/16

## 10:27

Next will be `TABLESWITCH` but I think what I will do there is just transform
that into code rather than having gigantic instructions because that will be
a bit complicated to implement and it would put it on the VM to implement it
correctly. I think it is just too much to be really that worth it. Since I do
not really want to dual handle these two cases I will just simplify
`TABLESWITCH` into `LOOKUPSWITCH` since the previous is a linear set of values
while the second has multiple sorted pairs. Then I need only worry about doing
just a single format.

## 10:32

I think the only instructions remaining following doing all of this would be
`instanceof`, so I can do that quickly.

## 11:37

For lookup switches I am going to need an if compare to constant, but this can
just be a single instruction.

## 14:47

Need to check if `DUP_X2` is done correctly and such.

## 15:18

Seems to be correct, should hopefully be fine. However the stack map table
deltas seem to be wrong, they are according to my decoder:

 * 0, 26!, 34, 62!, 86 -- 26 and 62 are not valid!

According to javap, they are:

 * frame_type = 0 /* same */
 * frame_type = 252 /* append */, offset_delta = 26, locals = [ int ]
 * frame_type = 7 /* same */
 * frame_type = 27 /* same */
 * frame_type = 250 /* chop */, offset_delta = 23

There is a definite size difference here. Mine says there are 5 when there
are 6. So something is being read incorrectly, likely a type.

## 15:26

Okay in the stack map parse I found an off by one for appended frames. It
is subtracting 251, but I checked JVMS and it was correct.

## 15:33

Actually it is correct, just the offset delta is off by one.

## 15:37

It might have to do with implicit and explicit frames.

## 15:39

Definitely is this.

## 15:44

Okay so I cannot check against placeaddr, I need another variable to
determine if this is an address which gets incremented by one.

## 16:18

Okay so this next one is a append top top int, followed by a chop frame. It
chops off 3 locals. So the only logical thing I can think of is that those
extra top-undefined types are considered for chopping which I believe I am
doing.

## 16:59

So it seems that jumping to a state, unless my stack map table code is still
wrong, can add more types onto the target. More bugs in the stack map table
have been ironed out, it is a rather clunky format. So perhaps transitions can
happen.... let me seee.... maybe I could check if a value is placed there or
something. I suppose I can just assume that it means a zero register
transition or similar.

## 17:33

Definitely want to refactor the instruction writing and such so it is a bit
more compact.

## 18:32

I will definitely see how much more compact the classes are.

## 18:42

Still like 26K...

 * w/ Lines: 27180 bytes (26 KiB)
 * No Lines: 25628 bytes (25 KiB)

So the lines do not really matter much.

## 18:46

I could shave some bytes off the constant pool.

## 20:54

There are in the range of 300 pool entries, what if I could reduce that by
making it so handles are not their own thing.