IKVM11
11
Java SE 11 Virtual Machine for .NET
Loading...
Searching...
No Matches
ByteCodeMetaData.cs
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002, 2004, 2005, 2006 Jeroen Frijters
3
4
This software is provided 'as-is', without any express or implied
5
warranty. In no event will the authors be held liable for any damages
6
arising from the use of this software.
7
8
Permission is granted to anyone to use this software for any purpose,
9
including commercial applications, and to alter it and redistribute it
10
freely, subject to the following restrictions:
11
12
1. The origin of this software must not be misrepresented; you must not
13
claim that you wrote the original software. If you use this software
14
in a product, an acknowledgment in the product documentation would be
15
appreciated but is not required.
16
2. Altered source versions must be plainly marked as such, and must not be
17
misrepresented as being the original software.
18
3. This notice may not be removed or altered from any source distribution.
19
20
Jeroen Frijters
21
jeroen@frijters.net
22
23
*/
24
25
namespace
IKVM.Runtime
26
{
27
28
struct
ByteCodeMetaData
29
{
30
31
private
static
ByteCodeMetaData
[] data =
new
ByteCodeMetaData
[256];
32
private
ByteCodeMode
reg;
33
private
ByteCodeModeWide
wide;
34
private
NormalizedByteCode
normbc;
35
private
ByteCodeFlags
flags;
36
private
int
arg;
37
38
private
ByteCodeMetaData
(
ByteCode
bc,
ByteCodeMode
reg,
ByteCodeModeWide
wide,
bool
cannotThrow)
39
{
40
this.reg = reg;
41
this.wide = wide;
42
this.normbc = (
NormalizedByteCode
)bc;
43
this.arg = 0;
44
this.flags =
ByteCodeFlags
.None;
45
if
(cannotThrow)
46
{
47
this.flags |=
ByteCodeFlags
.CannotThrow;
48
}
49
data[(int)bc] =
this
;
50
}
51
52
private
ByteCodeMetaData
(
ByteCode
bc,
NormalizedByteCode
normbc,
ByteCodeMode
reg,
ByteCodeModeWide
wide,
bool
cannotThrow)
53
{
54
this.reg = reg;
55
this.wide = wide;
56
this.normbc = normbc;
57
this.arg = 0;
58
this.flags =
ByteCodeFlags
.None;
59
if
(cannotThrow)
60
{
61
this.flags |=
ByteCodeFlags
.CannotThrow;
62
}
63
data[(int)bc] =
this
;
64
}
65
66
private
ByteCodeMetaData
(
ByteCode
bc,
NormalizedByteCode
normbc,
int
arg,
ByteCodeMode
reg,
ByteCodeModeWide
wide,
bool
cannotThrow)
67
{
68
this.reg = reg;
69
this.wide = wide;
70
this.normbc = normbc;
71
this.arg = arg;
72
this.flags =
ByteCodeFlags
.FixedArg;
73
if
(cannotThrow)
74
{
75
this.flags |=
ByteCodeFlags
.CannotThrow;
76
}
77
data[(int)bc] =
this
;
78
}
79
80
internal
static
NormalizedByteCode
GetNormalizedByteCode(
ByteCode
bc)
81
{
82
return
data[(int)bc].normbc;
83
}
84
85
internal
static
int
GetArg(
ByteCode
bc,
int
arg)
86
{
87
if
((data[(
int
)bc].flags &
ByteCodeFlags
.FixedArg) != 0)
88
{
89
return
data[(int)bc].arg;
90
}
91
return
arg;
92
}
93
94
internal
static
ByteCodeMode
GetMode(
ByteCode
bc)
95
{
96
return
data[(int)bc].reg;
97
}
98
99
internal
static
ByteCodeModeWide
GetWideMode(
ByteCode
bc)
100
{
101
return
data[(int)bc].wide;
102
}
103
104
internal
static
ByteCodeFlowControl
GetFlowControl(
NormalizedByteCode
bc)
105
{
106
switch
(bc)
107
{
108
case
NormalizedByteCode
.__tableswitch:
109
case
NormalizedByteCode
.__lookupswitch:
110
return
ByteCodeFlowControl
.Switch;
111
112
case
NormalizedByteCode
.__goto:
113
case
NormalizedByteCode
.__goto_finally:
114
return
ByteCodeFlowControl
.Branch;
115
116
case
NormalizedByteCode
.__ifeq:
117
case
NormalizedByteCode
.__ifne:
118
case
NormalizedByteCode
.__iflt:
119
case
NormalizedByteCode
.__ifge:
120
case
NormalizedByteCode
.__ifgt:
121
case
NormalizedByteCode
.__ifle:
122
case
NormalizedByteCode
.__if_icmpeq:
123
case
NormalizedByteCode
.__if_icmpne:
124
case
NormalizedByteCode
.__if_icmplt:
125
case
NormalizedByteCode
.__if_icmpge:
126
case
NormalizedByteCode
.__if_icmpgt:
127
case
NormalizedByteCode
.__if_icmple:
128
case
NormalizedByteCode
.__if_acmpeq:
129
case
NormalizedByteCode
.__if_acmpne:
130
case
NormalizedByteCode
.__ifnull:
131
case
NormalizedByteCode
.__ifnonnull:
132
return
ByteCodeFlowControl
.CondBranch;
133
134
case
NormalizedByteCode
.__ireturn:
135
case
NormalizedByteCode
.__lreturn:
136
case
NormalizedByteCode
.__freturn:
137
case
NormalizedByteCode
.__dreturn:
138
case
NormalizedByteCode
.__areturn:
139
case
NormalizedByteCode
.__return:
140
return
ByteCodeFlowControl
.Return;
141
142
case
NormalizedByteCode
.__athrow:
143
case
NormalizedByteCode
.__athrow_no_unmap:
144
case
NormalizedByteCode
.__static_error:
145
return
ByteCodeFlowControl
.Throw;
146
147
default
:
148
return
ByteCodeFlowControl
.Next;
149
}
150
}
151
152
internal
static
bool
CanThrowException(
NormalizedByteCode
bc)
153
{
154
switch
(bc)
155
{
156
case
NormalizedByteCode
.__dynamic_invokeinterface:
157
case
NormalizedByteCode
.__dynamic_invokestatic:
158
case
NormalizedByteCode
.__dynamic_invokevirtual:
159
case
NormalizedByteCode
.__dynamic_getstatic:
160
case
NormalizedByteCode
.__dynamic_putstatic:
161
case
NormalizedByteCode
.__dynamic_getfield:
162
case
NormalizedByteCode
.__dynamic_putfield:
163
case
NormalizedByteCode
.__clone_array:
164
case
NormalizedByteCode
.__static_error:
165
case
NormalizedByteCode
.__methodhandle_invoke:
166
case
NormalizedByteCode
.__methodhandle_link:
167
return
true
;
168
case
NormalizedByteCode
.__iconst:
169
case
NormalizedByteCode
.__ldc_nothrow:
170
return
false
;
171
default
:
172
return
(data[(
int
)bc].flags &
ByteCodeFlags
.CannotThrow) == 0;
173
}
174
}
175
176
internal
static
bool
IsBranch(
NormalizedByteCode
bc)
177
{
178
switch
(data[(
int
)bc].reg)
179
{
180
case
ByteCodeMode
.Branch_2:
181
case
ByteCodeMode
.Branch_4:
182
case
ByteCodeMode
.Lookupswitch:
183
case
ByteCodeMode
.Tableswitch:
184
return
true
;
185
default
:
186
return
false
;
187
}
188
}
189
190
static
ByteCodeMetaData
()
191
{
192
new
ByteCodeMetaData
(
ByteCode
.__nop,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
193
new
ByteCodeMetaData
(
ByteCode
.__aconst_null,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
194
new
ByteCodeMetaData
(
ByteCode
.__iconst_m1,
NormalizedByteCode
.__iconst, -1,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
195
new
ByteCodeMetaData
(
ByteCode
.__iconst_0,
NormalizedByteCode
.__iconst, 0,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
196
new
ByteCodeMetaData
(
ByteCode
.__iconst_1,
NormalizedByteCode
.__iconst, 1,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
197
new
ByteCodeMetaData
(
ByteCode
.__iconst_2,
NormalizedByteCode
.__iconst, 2,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
198
new
ByteCodeMetaData
(
ByteCode
.__iconst_3,
NormalizedByteCode
.__iconst, 3,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
199
new
ByteCodeMetaData
(
ByteCode
.__iconst_4,
NormalizedByteCode
.__iconst, 4,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
200
new
ByteCodeMetaData
(
ByteCode
.__iconst_5,
NormalizedByteCode
.__iconst, 5,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
201
new
ByteCodeMetaData
(
ByteCode
.__lconst_0,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
202
new
ByteCodeMetaData
(
ByteCode
.__lconst_1,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
203
new
ByteCodeMetaData
(
ByteCode
.__fconst_0,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
204
new
ByteCodeMetaData
(
ByteCode
.__fconst_1,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
205
new
ByteCodeMetaData
(
ByteCode
.__fconst_2,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
206
new
ByteCodeMetaData
(
ByteCode
.__dconst_0,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
207
new
ByteCodeMetaData
(
ByteCode
.__dconst_1,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
208
new
ByteCodeMetaData
(
ByteCode
.__bipush,
NormalizedByteCode
.__iconst,
ByteCodeMode
.Immediate_1,
ByteCodeModeWide
.Unused,
true
);
209
new
ByteCodeMetaData
(
ByteCode
.__sipush,
NormalizedByteCode
.__iconst,
ByteCodeMode
.Immediate_2,
ByteCodeModeWide
.Unused,
true
);
210
new
ByteCodeMetaData
(
ByteCode
.__ldc,
ByteCodeMode
.Constant_1,
ByteCodeModeWide
.Unused,
false
);
211
new
ByteCodeMetaData
(
ByteCode
.__ldc_w,
NormalizedByteCode
.__ldc,
ByteCodeMode
.Constant_2,
ByteCodeModeWide
.Unused,
false
);
212
new
ByteCodeMetaData
(
ByteCode
.__ldc2_w,
NormalizedByteCode
.__ldc,
ByteCodeMode
.Constant_2,
ByteCodeModeWide
.Unused,
false
);
213
new
ByteCodeMetaData
(
ByteCode
.__iload,
ByteCodeMode
.Local_1,
ByteCodeModeWide
.Local_2,
true
);
214
new
ByteCodeMetaData
(
ByteCode
.__lload,
ByteCodeMode
.Local_1,
ByteCodeModeWide
.Local_2,
true
);
215
new
ByteCodeMetaData
(
ByteCode
.__fload,
ByteCodeMode
.Local_1,
ByteCodeModeWide
.Local_2,
true
);
216
new
ByteCodeMetaData
(
ByteCode
.__dload,
ByteCodeMode
.Local_1,
ByteCodeModeWide
.Local_2,
true
);
217
new
ByteCodeMetaData
(
ByteCode
.__aload,
ByteCodeMode
.Local_1,
ByteCodeModeWide
.Local_2,
true
);
218
new
ByteCodeMetaData
(
ByteCode
.__iload_0,
NormalizedByteCode
.__iload, 0,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
219
new
ByteCodeMetaData
(
ByteCode
.__iload_1,
NormalizedByteCode
.__iload, 1,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
220
new
ByteCodeMetaData
(
ByteCode
.__iload_2,
NormalizedByteCode
.__iload, 2,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
221
new
ByteCodeMetaData
(
ByteCode
.__iload_3,
NormalizedByteCode
.__iload, 3,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
222
new
ByteCodeMetaData
(
ByteCode
.__lload_0,
NormalizedByteCode
.__lload, 0,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
223
new
ByteCodeMetaData
(
ByteCode
.__lload_1,
NormalizedByteCode
.__lload, 1,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
224
new
ByteCodeMetaData
(
ByteCode
.__lload_2,
NormalizedByteCode
.__lload, 2,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
225
new
ByteCodeMetaData
(
ByteCode
.__lload_3,
NormalizedByteCode
.__lload, 3,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
226
new
ByteCodeMetaData
(
ByteCode
.__fload_0,
NormalizedByteCode
.__fload, 0,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
227
new
ByteCodeMetaData
(
ByteCode
.__fload_1,
NormalizedByteCode
.__fload, 1,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
228
new
ByteCodeMetaData
(
ByteCode
.__fload_2,
NormalizedByteCode
.__fload, 2,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
229
new
ByteCodeMetaData
(
ByteCode
.__fload_3,
NormalizedByteCode
.__fload, 3,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
230
new
ByteCodeMetaData
(
ByteCode
.__dload_0,
NormalizedByteCode
.__dload, 0,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
231
new
ByteCodeMetaData
(
ByteCode
.__dload_1,
NormalizedByteCode
.__dload, 1,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
232
new
ByteCodeMetaData
(
ByteCode
.__dload_2,
NormalizedByteCode
.__dload, 2,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
233
new
ByteCodeMetaData
(
ByteCode
.__dload_3,
NormalizedByteCode
.__dload, 3,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
234
new
ByteCodeMetaData
(
ByteCode
.__aload_0,
NormalizedByteCode
.__aload, 0,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
235
new
ByteCodeMetaData
(
ByteCode
.__aload_1,
NormalizedByteCode
.__aload, 1,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
236
new
ByteCodeMetaData
(
ByteCode
.__aload_2,
NormalizedByteCode
.__aload, 2,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
237
new
ByteCodeMetaData
(
ByteCode
.__aload_3,
NormalizedByteCode
.__aload, 3,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
238
new
ByteCodeMetaData
(
ByteCode
.__iaload,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
239
new
ByteCodeMetaData
(
ByteCode
.__laload,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
240
new
ByteCodeMetaData
(
ByteCode
.__faload,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
241
new
ByteCodeMetaData
(
ByteCode
.__daload,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
242
new
ByteCodeMetaData
(
ByteCode
.__aaload,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
243
new
ByteCodeMetaData
(
ByteCode
.__baload,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
244
new
ByteCodeMetaData
(
ByteCode
.__caload,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
245
new
ByteCodeMetaData
(
ByteCode
.__saload,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
246
new
ByteCodeMetaData
(
ByteCode
.__istore,
ByteCodeMode
.Local_1,
ByteCodeModeWide
.Local_2,
true
);
247
new
ByteCodeMetaData
(
ByteCode
.__lstore,
ByteCodeMode
.Local_1,
ByteCodeModeWide
.Local_2,
true
);
248
new
ByteCodeMetaData
(
ByteCode
.__fstore,
ByteCodeMode
.Local_1,
ByteCodeModeWide
.Local_2,
true
);
249
new
ByteCodeMetaData
(
ByteCode
.__dstore,
ByteCodeMode
.Local_1,
ByteCodeModeWide
.Local_2,
true
);
250
new
ByteCodeMetaData
(
ByteCode
.__astore,
ByteCodeMode
.Local_1,
ByteCodeModeWide
.Local_2,
true
);
251
new
ByteCodeMetaData
(
ByteCode
.__istore_0,
NormalizedByteCode
.__istore, 0,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
252
new
ByteCodeMetaData
(
ByteCode
.__istore_1,
NormalizedByteCode
.__istore, 1,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
253
new
ByteCodeMetaData
(
ByteCode
.__istore_2,
NormalizedByteCode
.__istore, 2,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
254
new
ByteCodeMetaData
(
ByteCode
.__istore_3,
NormalizedByteCode
.__istore, 3,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
255
new
ByteCodeMetaData
(
ByteCode
.__lstore_0,
NormalizedByteCode
.__lstore, 0,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
256
new
ByteCodeMetaData
(
ByteCode
.__lstore_1,
NormalizedByteCode
.__lstore, 1,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
257
new
ByteCodeMetaData
(
ByteCode
.__lstore_2,
NormalizedByteCode
.__lstore, 2,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
258
new
ByteCodeMetaData
(
ByteCode
.__lstore_3,
NormalizedByteCode
.__lstore, 3,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
259
new
ByteCodeMetaData
(
ByteCode
.__fstore_0,
NormalizedByteCode
.__fstore, 0,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
260
new
ByteCodeMetaData
(
ByteCode
.__fstore_1,
NormalizedByteCode
.__fstore, 1,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
261
new
ByteCodeMetaData
(
ByteCode
.__fstore_2,
NormalizedByteCode
.__fstore, 2,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
262
new
ByteCodeMetaData
(
ByteCode
.__fstore_3,
NormalizedByteCode
.__fstore, 3,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
263
new
ByteCodeMetaData
(
ByteCode
.__dstore_0,
NormalizedByteCode
.__dstore, 0,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
264
new
ByteCodeMetaData
(
ByteCode
.__dstore_1,
NormalizedByteCode
.__dstore, 1,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
265
new
ByteCodeMetaData
(
ByteCode
.__dstore_2,
NormalizedByteCode
.__dstore, 2,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
266
new
ByteCodeMetaData
(
ByteCode
.__dstore_3,
NormalizedByteCode
.__dstore, 3,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
267
new
ByteCodeMetaData
(
ByteCode
.__astore_0,
NormalizedByteCode
.__astore, 0,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
268
new
ByteCodeMetaData
(
ByteCode
.__astore_1,
NormalizedByteCode
.__astore, 1,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
269
new
ByteCodeMetaData
(
ByteCode
.__astore_2,
NormalizedByteCode
.__astore, 2,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
270
new
ByteCodeMetaData
(
ByteCode
.__astore_3,
NormalizedByteCode
.__astore, 3,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
271
new
ByteCodeMetaData
(
ByteCode
.__iastore,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
272
new
ByteCodeMetaData
(
ByteCode
.__lastore,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
273
new
ByteCodeMetaData
(
ByteCode
.__fastore,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
274
new
ByteCodeMetaData
(
ByteCode
.__dastore,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
275
new
ByteCodeMetaData
(
ByteCode
.__aastore,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
276
new
ByteCodeMetaData
(
ByteCode
.__bastore,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
277
new
ByteCodeMetaData
(
ByteCode
.__castore,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
278
new
ByteCodeMetaData
(
ByteCode
.__sastore,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
279
new
ByteCodeMetaData
(
ByteCode
.__pop,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
280
new
ByteCodeMetaData
(
ByteCode
.__pop2,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
281
new
ByteCodeMetaData
(
ByteCode
.__dup,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
282
new
ByteCodeMetaData
(
ByteCode
.__dup_x1,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
283
new
ByteCodeMetaData
(
ByteCode
.__dup_x2,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
284
new
ByteCodeMetaData
(
ByteCode
.__dup2,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
285
new
ByteCodeMetaData
(
ByteCode
.__dup2_x1,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
286
new
ByteCodeMetaData
(
ByteCode
.__dup2_x2,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
287
new
ByteCodeMetaData
(
ByteCode
.__swap,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
288
new
ByteCodeMetaData
(
ByteCode
.__iadd,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
289
new
ByteCodeMetaData
(
ByteCode
.__ladd,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
290
new
ByteCodeMetaData
(
ByteCode
.__fadd,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
291
new
ByteCodeMetaData
(
ByteCode
.__dadd,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
292
new
ByteCodeMetaData
(
ByteCode
.__isub,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
293
new
ByteCodeMetaData
(
ByteCode
.__lsub,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
294
new
ByteCodeMetaData
(
ByteCode
.__fsub,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
295
new
ByteCodeMetaData
(
ByteCode
.__dsub,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
296
new
ByteCodeMetaData
(
ByteCode
.__imul,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
297
new
ByteCodeMetaData
(
ByteCode
.__lmul,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
298
new
ByteCodeMetaData
(
ByteCode
.__fmul,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
299
new
ByteCodeMetaData
(
ByteCode
.__dmul,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
300
new
ByteCodeMetaData
(
ByteCode
.__idiv,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
301
new
ByteCodeMetaData
(
ByteCode
.__ldiv,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
302
new
ByteCodeMetaData
(
ByteCode
.__fdiv,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
303
new
ByteCodeMetaData
(
ByteCode
.__ddiv,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
304
new
ByteCodeMetaData
(
ByteCode
.__irem,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
305
new
ByteCodeMetaData
(
ByteCode
.__lrem,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
306
new
ByteCodeMetaData
(
ByteCode
.__frem,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
307
new
ByteCodeMetaData
(
ByteCode
.__drem,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
308
new
ByteCodeMetaData
(
ByteCode
.__ineg,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
309
new
ByteCodeMetaData
(
ByteCode
.__lneg,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
310
new
ByteCodeMetaData
(
ByteCode
.__fneg,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
311
new
ByteCodeMetaData
(
ByteCode
.__dneg,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
312
new
ByteCodeMetaData
(
ByteCode
.__ishl,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
313
new
ByteCodeMetaData
(
ByteCode
.__lshl,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
314
new
ByteCodeMetaData
(
ByteCode
.__ishr,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
315
new
ByteCodeMetaData
(
ByteCode
.__lshr,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
316
new
ByteCodeMetaData
(
ByteCode
.__iushr,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
317
new
ByteCodeMetaData
(
ByteCode
.__lushr,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
318
new
ByteCodeMetaData
(
ByteCode
.__iand,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
319
new
ByteCodeMetaData
(
ByteCode
.__land,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
320
new
ByteCodeMetaData
(
ByteCode
.__ior,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
321
new
ByteCodeMetaData
(
ByteCode
.__lor,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
322
new
ByteCodeMetaData
(
ByteCode
.__ixor,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
323
new
ByteCodeMetaData
(
ByteCode
.__lxor,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
324
new
ByteCodeMetaData
(
ByteCode
.__iinc,
ByteCodeMode
.Local_1_Immediate_1,
ByteCodeModeWide
.Local_2_Immediate_2,
true
);
325
new
ByteCodeMetaData
(
ByteCode
.__i2l,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
326
new
ByteCodeMetaData
(
ByteCode
.__i2f,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
327
new
ByteCodeMetaData
(
ByteCode
.__i2d,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
328
new
ByteCodeMetaData
(
ByteCode
.__l2i,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
329
new
ByteCodeMetaData
(
ByteCode
.__l2f,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
330
new
ByteCodeMetaData
(
ByteCode
.__l2d,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
331
new
ByteCodeMetaData
(
ByteCode
.__f2i,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
332
new
ByteCodeMetaData
(
ByteCode
.__f2l,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
333
new
ByteCodeMetaData
(
ByteCode
.__f2d,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
334
new
ByteCodeMetaData
(
ByteCode
.__d2i,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
335
new
ByteCodeMetaData
(
ByteCode
.__d2l,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
336
new
ByteCodeMetaData
(
ByteCode
.__d2f,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
337
new
ByteCodeMetaData
(
ByteCode
.__i2b,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
338
new
ByteCodeMetaData
(
ByteCode
.__i2c,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
339
new
ByteCodeMetaData
(
ByteCode
.__i2s,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
340
new
ByteCodeMetaData
(
ByteCode
.__lcmp,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
341
new
ByteCodeMetaData
(
ByteCode
.__fcmpl,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
342
new
ByteCodeMetaData
(
ByteCode
.__fcmpg,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
343
new
ByteCodeMetaData
(
ByteCode
.__dcmpl,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
344
new
ByteCodeMetaData
(
ByteCode
.__dcmpg,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
345
new
ByteCodeMetaData
(
ByteCode
.__ifeq,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
346
new
ByteCodeMetaData
(
ByteCode
.__ifne,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
347
new
ByteCodeMetaData
(
ByteCode
.__iflt,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
348
new
ByteCodeMetaData
(
ByteCode
.__ifge,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
349
new
ByteCodeMetaData
(
ByteCode
.__ifgt,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
350
new
ByteCodeMetaData
(
ByteCode
.__ifle,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
351
new
ByteCodeMetaData
(
ByteCode
.__if_icmpeq,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
352
new
ByteCodeMetaData
(
ByteCode
.__if_icmpne,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
353
new
ByteCodeMetaData
(
ByteCode
.__if_icmplt,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
354
new
ByteCodeMetaData
(
ByteCode
.__if_icmpge,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
355
new
ByteCodeMetaData
(
ByteCode
.__if_icmpgt,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
356
new
ByteCodeMetaData
(
ByteCode
.__if_icmple,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
357
new
ByteCodeMetaData
(
ByteCode
.__if_acmpeq,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
358
new
ByteCodeMetaData
(
ByteCode
.__if_acmpne,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
359
new
ByteCodeMetaData
(
ByteCode
.__goto,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
360
new
ByteCodeMetaData
(
ByteCode
.__jsr,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
361
new
ByteCodeMetaData
(
ByteCode
.__ret,
ByteCodeMode
.Local_1,
ByteCodeModeWide
.Local_2,
true
);
362
new
ByteCodeMetaData
(
ByteCode
.__tableswitch,
ByteCodeMode
.Tableswitch,
ByteCodeModeWide
.Unused,
true
);
363
new
ByteCodeMetaData
(
ByteCode
.__lookupswitch,
ByteCodeMode
.Lookupswitch,
ByteCodeModeWide
.Unused,
true
);
364
new
ByteCodeMetaData
(
ByteCode
.__ireturn,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
365
new
ByteCodeMetaData
(
ByteCode
.__lreturn,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
366
new
ByteCodeMetaData
(
ByteCode
.__freturn,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
367
new
ByteCodeMetaData
(
ByteCode
.__dreturn,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
368
new
ByteCodeMetaData
(
ByteCode
.__areturn,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
369
new
ByteCodeMetaData
(
ByteCode
.__return,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
true
);
370
new
ByteCodeMetaData
(
ByteCode
.__getstatic,
ByteCodeMode
.Constant_2,
ByteCodeModeWide
.Unused,
false
);
371
new
ByteCodeMetaData
(
ByteCode
.__putstatic,
ByteCodeMode
.Constant_2,
ByteCodeModeWide
.Unused,
false
);
372
new
ByteCodeMetaData
(
ByteCode
.__getfield,
ByteCodeMode
.Constant_2,
ByteCodeModeWide
.Unused,
false
);
373
new
ByteCodeMetaData
(
ByteCode
.__putfield,
ByteCodeMode
.Constant_2,
ByteCodeModeWide
.Unused,
false
);
374
new
ByteCodeMetaData
(
ByteCode
.__invokevirtual,
ByteCodeMode
.Constant_2,
ByteCodeModeWide
.Unused,
false
);
375
new
ByteCodeMetaData
(
ByteCode
.__invokespecial,
ByteCodeMode
.Constant_2,
ByteCodeModeWide
.Unused,
false
);
376
new
ByteCodeMetaData
(
ByteCode
.__invokestatic,
ByteCodeMode
.Constant_2,
ByteCodeModeWide
.Unused,
false
);
377
new
ByteCodeMetaData
(
ByteCode
.__invokeinterface,
ByteCodeMode
.Constant_2_1_1,
ByteCodeModeWide
.Unused,
false
);
378
new
ByteCodeMetaData
(
ByteCode
.__invokedynamic,
ByteCodeMode
.Constant_2_1_1,
ByteCodeModeWide
.Unused,
false
);
379
new
ByteCodeMetaData
(
ByteCode
.__new,
ByteCodeMode
.Constant_2,
ByteCodeModeWide
.Unused,
false
);
380
new
ByteCodeMetaData
(
ByteCode
.__newarray,
ByteCodeMode
.Immediate_1,
ByteCodeModeWide
.Unused,
false
);
381
new
ByteCodeMetaData
(
ByteCode
.__anewarray,
ByteCodeMode
.Constant_2,
ByteCodeModeWide
.Unused,
false
);
382
new
ByteCodeMetaData
(
ByteCode
.__arraylength,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
383
new
ByteCodeMetaData
(
ByteCode
.__athrow,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
384
new
ByteCodeMetaData
(
ByteCode
.__checkcast,
ByteCodeMode
.Constant_2,
ByteCodeModeWide
.Unused,
false
);
385
new
ByteCodeMetaData
(
ByteCode
.__instanceof,
ByteCodeMode
.Constant_2,
ByteCodeModeWide
.Unused,
false
);
386
new
ByteCodeMetaData
(
ByteCode
.__monitorenter,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
387
new
ByteCodeMetaData
(
ByteCode
.__monitorexit,
ByteCodeMode
.Simple,
ByteCodeModeWide
.Unused,
false
);
388
new
ByteCodeMetaData
(
ByteCode
.__wide,
NormalizedByteCode
.__nop,
ByteCodeMode
.WidePrefix,
ByteCodeModeWide
.Unused,
true
);
389
new
ByteCodeMetaData
(
ByteCode
.__multianewarray,
ByteCodeMode
.Constant_2_Immediate_1,
ByteCodeModeWide
.Unused,
false
);
390
new
ByteCodeMetaData
(
ByteCode
.__ifnull,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
391
new
ByteCodeMetaData
(
ByteCode
.__ifnonnull,
ByteCodeMode
.Branch_2,
ByteCodeModeWide
.Unused,
true
);
392
new
ByteCodeMetaData
(
ByteCode
.__goto_w,
NormalizedByteCode
.__goto,
ByteCodeMode
.Branch_4,
ByteCodeModeWide
.Unused,
true
);
393
new
ByteCodeMetaData
(
ByteCode
.__jsr_w,
NormalizedByteCode
.__jsr,
ByteCodeMode
.Branch_4,
ByteCodeModeWide
.Unused,
true
);
394
395
}
396
397
}
398
399
}
IKVM.Runtime
Definition
Accessor.cs:5
IKVM.Runtime.ByteCodeFlowControl
ByteCodeFlowControl
Definition
ByteCodeFlowControl.cs:29
IKVM.Runtime.ByteCodeMode
ByteCodeMode
Definition
ByteCodeMode.cs:29
IKVM.Runtime.ByteCodeModeWide
ByteCodeModeWide
Definition
ByteCodeModeWide.cs:29
IKVM.Runtime.ByteCode
ByteCode
Definition
ByteCode.cs:29
IKVM.Runtime.NormalizedByteCode
NormalizedByteCode
Definition
NormalizedByteCode.cs:29
IKVM.Runtime.ByteCodeFlags
ByteCodeFlags
Definition
ByteCodeFlags.cs:31
IKVM.Runtime.ByteCodeMetaData
Definition
ByteCodeMetaData.cs:29
IKVM.Runtime.ByteCodeMetaData.ByteCodeMetaData
static ByteCodeMetaData()
Definition
ByteCodeMetaData.cs:190
src
IKVM.Runtime
ByteCodeMetaData.cs
Generated by
1.12.0