| # 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 |