# Copyright (C) 2007 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Bytecode definition file
#
# Columns are:
#   hex for opcode
#   format
#   has result register (y/n)
#   opcode name

00 10x n nop
01 12x y move
02 22x y move/from16
03 32x y move/16
04 12x y move-wide
05 22x y move-wide/from16
06 32x y move-wide/16
07 12x y move-object
08 22x y move-object/from16
09 32x y move-object/16
0a 11x y move-result
0b 11x y move-result-wide
0c 11x y move-result-object
0d 11x y move-exception
0e 10x n return-void
0f 11x n return
10 11x n return-wide
11 11x n return-object
12 11n y const/4
13 21s y const/16
14 31i y const
15 21h y const/high16
16 21s y const-wide/16
17 31i y const-wide/32
18 51l y const-wide
19 21h y const-wide/high16
1a 21c y const-string
1b 31c y const-string/jumbo
1c 21c y const-class
1d 11x n monitor-enter
1e 11x n monitor-exit
1f 21c y check-cast
20 22c y instance-of
21 12x y array-length
22 21c y new-instance
23 22c y new-array
24 35c n filled-new-array
25 3rc n filled-new-array/range
26 31t n fill-array-data
27 11x n throw
28 10t n goto
29 20t n goto/16
2a 30t n goto/32
2b 31t n packed-switch
2c 31t n sparse-switch
2d 23x y cmpl-float
2e 23x y cmpg-float
2f 23x y cmpl-double
30 23x y cmpg-double
31 23x y cmp-long
32 22t n if-eq
33 22t n if-ne
34 22t n if-lt
35 22t n if-ge
36 22t n if-gt
37 22t n if-le
38 21t n if-eqz
39 21t n if-nez
3a 21t n if-ltz
3b 21t n if-gez
3c 21t n if-gtz
3d 21t n if-lez
3e 10x n unused-3e
3f 10x n unused-3f
40 10x n unused-40
41 10x n unused-41
42 10x n unused-42
43 10x n unused-43
44 23x y aget
45 23x y aget-wide
46 23x y aget-object
47 23x y aget-boolean
48 23x y aget-byte
49 23x y aget-char
4a 23x y aget-short
4b 23x n aput
4c 23x n aput-wide
4d 23x n aput-object
4e 23x n aput-boolean
4f 23x n aput-byte
50 23x n aput-char
51 23x n aput-short
52 22c y iget
53 22c y iget-wide
54 22c y iget-object
55 22c y iget-boolean
56 22c y iget-byte
57 22c y iget-char
58 22c y iget-short
59 22c n iput
5a 22c n iput-wide
5b 22c n iput-object
5c 22c n iput-boolean
5d 22c n iput-byte
5e 22c n iput-char
5f 22c n iput-short
60 21c y sget
61 21c y sget-wide
62 21c y sget-object
63 21c y sget-boolean
64 21c y sget-byte
65 21c y sget-char
66 21c y sget-short
67 21c n sput
68 21c n sput-wide
69 21c n sput-object
6a 21c n sput-boolean
6b 21c n sput-byte
6c 21c n sput-char
6d 21c n sput-short
6e 35c n invoke-virtual
6f 35c n invoke-super
70 35c n invoke-direct
71 35c n invoke-static
72 35c n invoke-interface
73 10x n unused-73
74 3rc n invoke-virtual/range
75 3rc n invoke-super/range
76 3rc n invoke-direct/range
77 3rc n invoke-static/range
78 3rc n invoke-interface/range
79 10x n unused-79
7a 10x n unused-7a
7b 12x y neg-int
7c 12x y not-int
7d 12x y neg-long
7e 12x y not-long
7f 12x y neg-float
80 12x y neg-double
81 12x y int-to-long
82 12x y int-to-float
83 12x y int-to-double
84 12x y long-to-int
85 12x y long-to-float
86 12x y long-to-double
87 12x y float-to-int
88 12x y float-to-long
89 12x y float-to-double
8a 12x y double-to-int
8b 12x y double-to-long
8c 12x y double-to-float
8d 12x y int-to-byte
8e 12x y int-to-char
8f 12x y int-to-short
90 23x y add-int
91 23x y sub-int
92 23x y mul-int
93 23x y div-int
94 23x y rem-int
95 23x y and-int
96 23x y or-int
97 23x y xor-int
98 23x y shl-int
99 23x y shr-int
9a 23x y ushr-int
9b 23x y add-long
9c 23x y sub-long
9d 23x y mul-long
9e 23x y div-long
9f 23x y rem-long
a0 23x y and-long
a1 23x y or-long
a2 23x y xor-long
a3 23x y shl-long
a4 23x y shr-long
a5 23x y ushr-long
a6 23x y add-float
a7 23x y sub-float
a8 23x y mul-float
a9 23x y div-float
aa 23x y rem-float
ab 23x y add-double
ac 23x y sub-double
ad 23x y mul-double
ae 23x y div-double
af 23x y rem-double
b0 12x y add-int/2addr
b1 12x y sub-int/2addr
b2 12x y mul-int/2addr
b3 12x y div-int/2addr
b4 12x y rem-int/2addr
b5 12x y and-int/2addr
b6 12x y or-int/2addr
b7 12x y xor-int/2addr
b8 12x y shl-int/2addr
b9 12x y shr-int/2addr
ba 12x y ushr-int/2addr
bb 12x y add-long/2addr
bc 12x y sub-long/2addr
bd 12x y mul-long/2addr
be 12x y div-long/2addr
bf 12x y rem-long/2addr
c0 12x y and-long/2addr
c1 12x y or-long/2addr
c2 12x y xor-long/2addr
c3 12x y shl-long/2addr
c4 12x y shr-long/2addr
c5 12x y ushr-long/2addr
c6 12x y add-float/2addr
c7 12x y sub-float/2addr
c8 12x y mul-float/2addr
c9 12x y div-float/2addr
ca 12x y rem-float/2addr
cb 12x y add-double/2addr
cc 12x y sub-double/2addr
cd 12x y mul-double/2addr
ce 12x y div-double/2addr
cf 12x y rem-double/2addr
d0 22s y add-int/lit16
d1 22s y rsub-int
d2 22s y mul-int/lit16
d3 22s y div-int/lit16
d4 22s y rem-int/lit16
d5 22s y and-int/lit16
d6 22s y or-int/lit16
d7 22s y xor-int/lit16
d8 22b y add-int/lit8
d9 22b y rsub-int/lit8
da 22b y mul-int/lit8
db 22b y div-int/lit8
dc 22b y rem-int/lit8
dd 22b y and-int/lit8
de 22b y or-int/lit8
df 22b y xor-int/lit8
e0 22b y shl-int/lit8
e1 22b y shr-int/lit8
e2 22b y ushr-int/lit8
e3 10x n unused-e3
e4 10x n unused-e4
e5 10x n unused-e5
e6 10x n unused-e6
e7 10x n unused-e7
e8 10x n unused-e8
e9 10x n unused-e9
ea 10x n unused-ea
eb 10x n unused-eb
ec 10x n unused-ec
ed 10x n unused-ed
ee 10x n unused-ee
ef 10x n unused-ef
f0 10x n unused-f0
f1 10x n unused-f1
f2 10x n unused-f2
f3 10x n unused-f3
f4 10x n unused-f4
f5 10x n unused-f5
f6 10x n unused-f6
f7 10x n unused-f7
f8 10x n unused-f8
f9 10x n unused-f9
fa 10x n unused-fa
fb 10x n unused-fb
fc 10x n unused-fc
fd 10x n unused-fd
fe 10x n unused-fe
ff 10x n unused-ff
