Home | History | Annotate | Download | only in etc
      1 # Copyright (C) 2007 The Android Open Source Project
      2 #
      3 # Licensed under the Apache License, Version 2.0 (the "License");
      4 # you may not use this file except in compliance with the License.
      5 # You may obtain a copy of the License at
      6 #
      7 #      http://www.apache.org/licenses/LICENSE-2.0
      8 #
      9 # Unless required by applicable law or agreed to in writing, software
     10 # distributed under the License is distributed on an "AS IS" BASIS,
     11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 # See the License for the specific language governing permissions and
     13 # limitations under the License.
     14 
     15 # Bytecode definition file
     16 #
     17 # Columns are:
     18 #   hex for opcode
     19 #   format
     20 #   has result register (y/n)
     21 #   opcode name
     22 
     23 00 10x n nop
     24 01 12x y move
     25 02 22x y move/from16
     26 03 32x y move/16
     27 04 12x y move-wide
     28 05 22x y move-wide/from16
     29 06 32x y move-wide/16
     30 07 12x y move-object
     31 08 22x y move-object/from16
     32 09 32x y move-object/16
     33 0a 11x y move-result
     34 0b 11x y move-result-wide
     35 0c 11x y move-result-object
     36 0d 11x y move-exception
     37 0e 10x n return-void
     38 0f 11x n return
     39 10 11x n return-wide
     40 11 11x n return-object
     41 12 11n y const/4
     42 13 21s y const/16
     43 14 31i y const
     44 15 21h y const/high16
     45 16 21s y const-wide/16
     46 17 31i y const-wide/32
     47 18 51l y const-wide
     48 19 21h y const-wide/high16
     49 1a 21c y const-string
     50 1b 31c y const-string/jumbo
     51 1c 21c y const-class
     52 1d 11x n monitor-enter
     53 1e 11x n monitor-exit
     54 1f 21c y check-cast
     55 20 22c y instance-of
     56 21 12x y array-length
     57 22 21c y new-instance
     58 23 22c y new-array
     59 24 35c n filled-new-array
     60 25 3rc n filled-new-array/range
     61 26 31t n fill-array-data
     62 27 11x n throw
     63 28 10t n goto
     64 29 20t n goto/16
     65 2a 30t n goto/32
     66 2b 31t n packed-switch
     67 2c 31t n sparse-switch
     68 2d 23x y cmpl-float
     69 2e 23x y cmpg-float
     70 2f 23x y cmpl-double
     71 30 23x y cmpg-double
     72 31 23x y cmp-long
     73 32 22t n if-eq
     74 33 22t n if-ne
     75 34 22t n if-lt
     76 35 22t n if-ge
     77 36 22t n if-gt
     78 37 22t n if-le
     79 38 21t n if-eqz
     80 39 21t n if-nez
     81 3a 21t n if-ltz
     82 3b 21t n if-gez
     83 3c 21t n if-gtz
     84 3d 21t n if-lez
     85 3e 10x n unused-3e
     86 3f 10x n unused-3f
     87 40 10x n unused-40
     88 41 10x n unused-41
     89 42 10x n unused-42
     90 43 10x n unused-43
     91 44 23x y aget
     92 45 23x y aget-wide
     93 46 23x y aget-object
     94 47 23x y aget-boolean
     95 48 23x y aget-byte
     96 49 23x y aget-char
     97 4a 23x y aget-short
     98 4b 23x n aput
     99 4c 23x n aput-wide
    100 4d 23x n aput-object
    101 4e 23x n aput-boolean
    102 4f 23x n aput-byte
    103 50 23x n aput-char
    104 51 23x n aput-short
    105 52 22c y iget
    106 53 22c y iget-wide
    107 54 22c y iget-object
    108 55 22c y iget-boolean
    109 56 22c y iget-byte
    110 57 22c y iget-char
    111 58 22c y iget-short
    112 59 22c n iput
    113 5a 22c n iput-wide
    114 5b 22c n iput-object
    115 5c 22c n iput-boolean
    116 5d 22c n iput-byte
    117 5e 22c n iput-char
    118 5f 22c n iput-short
    119 60 21c y sget
    120 61 21c y sget-wide
    121 62 21c y sget-object
    122 63 21c y sget-boolean
    123 64 21c y sget-byte
    124 65 21c y sget-char
    125 66 21c y sget-short
    126 67 21c n sput
    127 68 21c n sput-wide
    128 69 21c n sput-object
    129 6a 21c n sput-boolean
    130 6b 21c n sput-byte
    131 6c 21c n sput-char
    132 6d 21c n sput-short
    133 6e 35c n invoke-virtual
    134 6f 35c n invoke-super
    135 70 35c n invoke-direct
    136 71 35c n invoke-static
    137 72 35c n invoke-interface
    138 73 10x n unused-73
    139 74 3rc n invoke-virtual/range
    140 75 3rc n invoke-super/range
    141 76 3rc n invoke-direct/range
    142 77 3rc n invoke-static/range
    143 78 3rc n invoke-interface/range
    144 79 10x n unused-79
    145 7a 10x n unused-7a
    146 7b 12x y neg-int
    147 7c 12x y not-int
    148 7d 12x y neg-long
    149 7e 12x y not-long
    150 7f 12x y neg-float
    151 80 12x y neg-double
    152 81 12x y int-to-long
    153 82 12x y int-to-float
    154 83 12x y int-to-double
    155 84 12x y long-to-int
    156 85 12x y long-to-float
    157 86 12x y long-to-double
    158 87 12x y float-to-int
    159 88 12x y float-to-long
    160 89 12x y float-to-double
    161 8a 12x y double-to-int
    162 8b 12x y double-to-long
    163 8c 12x y double-to-float
    164 8d 12x y int-to-byte
    165 8e 12x y int-to-char
    166 8f 12x y int-to-short
    167 90 23x y add-int
    168 91 23x y sub-int
    169 92 23x y mul-int
    170 93 23x y div-int
    171 94 23x y rem-int
    172 95 23x y and-int
    173 96 23x y or-int
    174 97 23x y xor-int
    175 98 23x y shl-int
    176 99 23x y shr-int
    177 9a 23x y ushr-int
    178 9b 23x y add-long
    179 9c 23x y sub-long
    180 9d 23x y mul-long
    181 9e 23x y div-long
    182 9f 23x y rem-long
    183 a0 23x y and-long
    184 a1 23x y or-long
    185 a2 23x y xor-long
    186 a3 23x y shl-long
    187 a4 23x y shr-long
    188 a5 23x y ushr-long
    189 a6 23x y add-float
    190 a7 23x y sub-float
    191 a8 23x y mul-float
    192 a9 23x y div-float
    193 aa 23x y rem-float
    194 ab 23x y add-double
    195 ac 23x y sub-double
    196 ad 23x y mul-double
    197 ae 23x y div-double
    198 af 23x y rem-double
    199 b0 12x y add-int/2addr
    200 b1 12x y sub-int/2addr
    201 b2 12x y mul-int/2addr
    202 b3 12x y div-int/2addr
    203 b4 12x y rem-int/2addr
    204 b5 12x y and-int/2addr
    205 b6 12x y or-int/2addr
    206 b7 12x y xor-int/2addr
    207 b8 12x y shl-int/2addr
    208 b9 12x y shr-int/2addr
    209 ba 12x y ushr-int/2addr
    210 bb 12x y add-long/2addr
    211 bc 12x y sub-long/2addr
    212 bd 12x y mul-long/2addr
    213 be 12x y div-long/2addr
    214 bf 12x y rem-long/2addr
    215 c0 12x y and-long/2addr
    216 c1 12x y or-long/2addr
    217 c2 12x y xor-long/2addr
    218 c3 12x y shl-long/2addr
    219 c4 12x y shr-long/2addr
    220 c5 12x y ushr-long/2addr
    221 c6 12x y add-float/2addr
    222 c7 12x y sub-float/2addr
    223 c8 12x y mul-float/2addr
    224 c9 12x y div-float/2addr
    225 ca 12x y rem-float/2addr
    226 cb 12x y add-double/2addr
    227 cc 12x y sub-double/2addr
    228 cd 12x y mul-double/2addr
    229 ce 12x y div-double/2addr
    230 cf 12x y rem-double/2addr
    231 d0 22s y add-int/lit16
    232 d1 22s y rsub-int
    233 d2 22s y mul-int/lit16
    234 d3 22s y div-int/lit16
    235 d4 22s y rem-int/lit16
    236 d5 22s y and-int/lit16
    237 d6 22s y or-int/lit16
    238 d7 22s y xor-int/lit16
    239 d8 22b y add-int/lit8
    240 d9 22b y rsub-int/lit8
    241 da 22b y mul-int/lit8
    242 db 22b y div-int/lit8
    243 dc 22b y rem-int/lit8
    244 dd 22b y and-int/lit8
    245 de 22b y or-int/lit8
    246 df 22b y xor-int/lit8
    247 e0 22b y shl-int/lit8
    248 e1 22b y shr-int/lit8
    249 e2 22b y ushr-int/lit8
    250 e3 10x n unused-e3
    251 e4 10x n unused-e4
    252 e5 10x n unused-e5
    253 e6 10x n unused-e6
    254 e7 10x n unused-e7
    255 e8 10x n unused-e8
    256 e9 10x n unused-e9
    257 ea 10x n unused-ea
    258 eb 10x n unused-eb
    259 ec 10x n unused-ec
    260 ed 10x n unused-ed
    261 ee 10x n unused-ee
    262 ef 10x n unused-ef
    263 f0 10x n unused-f0
    264 f1 10x n unused-f1
    265 f2 10x n unused-f2
    266 f3 10x n unused-f3
    267 f4 10x n unused-f4
    268 f5 10x n unused-f5
    269 f6 10x n unused-f6
    270 f7 10x n unused-f7
    271 f8 10x n unused-f8
    272 f9 10x n unused-f9
    273 fa 10x n unused-fa
    274 fb 10x n unused-fb
    275 fc 10x n unused-fc
    276 fd 10x n unused-fd
    277 fe 10x n unused-fe
    278 ff 10x n unused-ff
    279