The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 1 | .source all_opcodes.java |
| 2 | .class public dasm.test.all_opcodes |
| 3 | .super java/lang/Object |
| 4 | .implements java/lang/Runnable |
| 5 | |
| 6 | .field public pub_field I |
| 7 | .field public static static_field J |
| 8 | |
| 9 | .method public <init>()V |
| 10 | return-void |
| 11 | .end method |
| 12 | |
| 13 | .method public run()I |
| 14 | .throws java/lang/NullPointerException |
| 15 | .limit regs 4 |
| 16 | nop |
| 17 | move v1, v2 |
| 18 | move/from16 v11, v222 |
| 19 | move/16 v111, v222 |
| 20 | move-wide v1, v2 |
| 21 | move-wide/from16 v11, v222 |
| 22 | move-wide/16 v111, v222 |
| 23 | move-object v1, v2 |
| 24 | move-object/from16 v11, v222 |
| 25 | move-object/16 v111, v222 |
| 26 | move-result v11 |
| 27 | move-result-wide v11 |
| 28 | move-result-object v11 |
| 29 | move-exception v11 |
| 30 | return-void |
| 31 | return v11 |
| 32 | return-wide v11 |
| 33 | return-object v11 |
| 34 | const/4 v1, 1 |
| 35 | const/16 v11, 0x1234 |
| 36 | const v11, 0x12345678 |
| 37 | const/high16 v11, 0x12340000 |
| 38 | const-wide/16 v11, 0x1234 |
| 39 | const-wide/32 v11, 0x12345678 |
| 40 | const-wide v11, 3.1415 |
| 41 | const-wide/high16 v11, 0x1234000000000000 |
| 42 | const-string v11, "abc" |
| 43 | const-string/jumbo v11, "abcd" |
| 44 | const-class v11, java/lang/Object |
| 45 | monitor-enter v11 |
| 46 | monitor-exit v11 |
| 47 | check-cast v11, java/lang/Object |
| 48 | instance-of v1, v2, java/lang/Object |
| 49 | array-length v1, v2 |
| 50 | new-instance v11, java/lang/Object |
| 51 | new-array v1, v2, java/lang/Object |
| 52 | filled-new-array {v1, v2, v3, v4, v5}, I |
| 53 | filled-new-array/range {v3..v7}, D |
| 54 | fill-array-data v11 I |
| 55 | 1 |
| 56 | 2 |
| 57 | 3 |
| 58 | 4 |
| 59 | fill-array-data-end |
| 60 | throw v11 |
| 61 | goto $+1 |
| 62 | goto/16 Label1 |
| 63 | Label1: |
| 64 | goto/32 Label2 |
| 65 | Label2: |
| 66 | packed-switch v11, 1 |
| 67 | Label1 |
| 68 | Label3 |
| 69 | packed-switch-end |
| 70 | Label3: |
| 71 | sparse-switch v11 |
| 72 | 1 : Label2 |
| 73 | 33 : Label4 |
| 74 | sparse-switch-end |
| 75 | Label4: |
| 76 | |
| 77 | cmpl-float v11, v22, v33 |
| 78 | cmpg-float v11, v22, v33 |
| 79 | cmpl-double v11, v22, v33 |
| 80 | cmpg-double v11, v22, v33 |
| 81 | cmp-long v11, v22, v33 |
| 82 | if-eq v1, v2, Label1 |
| 83 | if-ne v1, v2, $+1 |
| 84 | if-lt v1, v2, Label1 |
| 85 | if-ge v1, v2, $-1 |
| 86 | if-gt v1, v2, Label1 |
| 87 | if-eqz v11, Label1 |
| 88 | if-nez v11, $+1 |
| 89 | if-ltz v11, Label1 |
| 90 | if-gez v11, $+1 |
| 91 | if-gtz v11, Label1 |
| 92 | if-lez v11, $-1 |
| 93 | aget v11, v22, v33 |
| 94 | aget-wide v11, v22, v33 |
| 95 | aget-object v11, v22, v33 |
| 96 | aget-boolean v11, v22, v33 |
| 97 | aget-byte v11, v22, v33 |
| 98 | aget-char v11, v22, v33 |
| 99 | aget-short v11, v22, v33 |
| 100 | aput v11, v22, v33 |
| 101 | aput-wide v11, v22, v33 |
| 102 | aput-object v11, v22, v33 |
| 103 | aput-boolean v11, v22, v33 |
| 104 | aput-byte v11, v22, v33 |
| 105 | aput-char v11, v22, v33 |
| 106 | aput-short v11, v22, v33 |
| 107 | iget v1, v2, dxc.junit.opcodes.nop.jm.T_nop_1.pub_field I |
| 108 | iget-wide v1, v2, dxc.junit.opcodes.nop.jm.T_nop_1.pub_field I |
| 109 | iget-object v1, v2, dxc.junit.opcodes.nop.jm.T_nop_1.pub_field I |
| 110 | iget-boolean v1, v2, dxc.junit.opcodes.nop.jm.T_nop_1.pub_field I |
| 111 | iget-byte v1, v2, dxc.junit.opcodes.nop.jm.T_nop_1.pub_field I |
| 112 | iget-char v1, v2, dxc.junit.opcodes.nop.jm.T_nop_1.pub_field I |
| 113 | iget-short v1, v2, dxc.junit.opcodes.nop.jm.T_nop_1.pub_field I |
| 114 | iput v1, v2, dxc.junit.opcodes.nop.jm.T_nop_1.pub_field I |
| 115 | iput-wide v1, v2, dxc.junit.opcodes.nop.jm.T_nop_1.pub_field I |
| 116 | iput-object v1, v2, dxc.junit.opcodes.nop.jm.T_nop_1.pub_field I |
| 117 | iput-boolean v1, v2, dxc.junit.opcodes.nop.jm.T_nop_1.pub_field I |
| 118 | iput-byte v1, v2, dxc.junit.opcodes.nop.jm.T_nop_1.pub_field I |
| 119 | iput-char v1, v2, dxc.junit.opcodes.nop.jm.T_nop_1.pub_field I |
| 120 | iput-short v1, v2, dxc.junit.opcodes.nop.jm.T_nop_1.pub_field I |
| 121 | sget v1, dxc.junit.opcodes.nop.jm.T_nop_1.static_field I |
| 122 | sget-wide v1, dxc.junit.opcodes.nop.jm.T_nop_1.static_field I |
| 123 | sget-object v1, dxc.junit.opcodes.nop.jm.T_nop_1.static_field I |
| 124 | sget-boolean v1, dxc.junit.opcodes.nop.jm.T_nop_1.static_field I |
| 125 | sget-byte v1, dxc.junit.opcodes.nop.jm.T_nop_1.static_field I |
| 126 | sget-char v1, dxc.junit.opcodes.nop.jm.T_nop_1.static_field I |
| 127 | sget-short v1, dxc.junit.opcodes.nop.jm.T_nop_1.static_field I |
| 128 | sput v1, dxc.junit.opcodes.nop.jm.T_nop_1.static_field I |
| 129 | sput-wide v1, dxc.junit.opcodes.nop.jm.T_nop_1.static_field I |
| 130 | sput-object v1, dxc.junit.opcodes.nop.jm.T_nop_1.static_field I |
| 131 | sput-boolean v1, dxc.junit.opcodes.nop.jm.T_nop_1.static_field I |
| 132 | sput-byte v1, dxc.junit.opcodes.nop.jm.T_nop_1.static_field I |
| 133 | sput-char v1, dxc.junit.opcodes.nop.jm.T_nop_1.static_field I |
| 134 | sput-short v1, dxc.junit.opcodes.nop.jm.T_nop_1.static_field I |
| 135 | |
| 136 | invoke-virtual {v1}, java/lang/Math/sqrt(D)D |
| 137 | invoke-super {v1}, java/lang/Math/sqrt(D)D |
| 138 | invoke-direct {v1}, java/lang/Math/sqrt(D)D |
| 139 | invoke-static {v1}, java/lang/Math/sqrt(D)D |
| 140 | ;invoke-interface {v1}, java/lang/Math/sqrt(D)D |
| 141 | |
| 142 | invoke-virtual/range {v1..v4}, java/lang/Math/sqrt(D)D |
| 143 | invoke-super/range {v1..v4}, java/lang/Math/sqrt(D)D |
| 144 | invoke-direct/range {v1..v4}, java/lang/Math/sqrt(D)D |
| 145 | invoke-static/range {v1..v4}, java/lang/Math/sqrt(D)D |
| 146 | ;invoke-interface/range {v1..v4}, java/lang/Math/sqrt(D)D |
| 147 | |
| 148 | neg-int v1, v2 |
| 149 | not-int v1, v2 |
| 150 | neg-long v1, v2 |
| 151 | not-long v1, v2 |
| 152 | neg-float v1, v2 |
| 153 | neg-double v1, v2 |
| 154 | int-to-long v1, v2 |
| 155 | int-to-float v1, v2 |
| 156 | int-to-double v1, v2 |
| 157 | long-to-int v1, v2 |
| 158 | long-to-float v1, v2 |
| 159 | long-to-double v1, v2 |
| 160 | float-to-int v1, v2 |
| 161 | float-to-long v1, v2 |
| 162 | float-to-double v1, v2 |
| 163 | double-to-int v1, v2 |
| 164 | double-to-long v1, v2 |
| 165 | double-to-float v1, v2 |
| 166 | int-to-byte v1, v2 |
| 167 | int-to-char v1, v2 |
| 168 | int-to-short v1, v2 |
| 169 | add-int v11, v22, v33 |
| 170 | sub-int v11, v22, v33 |
| 171 | mul-int v11, v22, v33 |
| 172 | div-int v11, v22, v33 |
| 173 | rem-int v11, v22, v33 |
| 174 | and-int v11, v22, v33 |
| 175 | or-int v11, v22, v33 |
| 176 | xor-int v11, v22, v33 |
| 177 | shl-int v11, v22, v33 |
| 178 | shr-int v11, v22, v33 |
| 179 | ushr-int v11, v22, v33 |
| 180 | add-long v11, v22, v33 |
| 181 | sub-long v11, v22, v33 |
| 182 | mul-long v11, v22, v33 |
| 183 | div-long v11, v22, v33 |
| 184 | rem-long v11, v22, v33 |
| 185 | and-long v11, v22, v33 |
| 186 | or-long v11, v22, v33 |
| 187 | xor-long v11, v22, v33 |
| 188 | shl-long v11, v22, v33 |
| 189 | shr-long v11, v22, v33 |
| 190 | ushr-long v11, v22, v33 |
| 191 | add-float v11, v22, v33 |
| 192 | sub-float v11, v22, v33 |
| 193 | mul-float v11, v22, v33 |
| 194 | div-float v11, v22, v33 |
| 195 | rem-float v11, v22, v33 |
| 196 | add-double v11, v22, v33 |
| 197 | sub-double v11, v22, v33 |
| 198 | mul-double v11, v22, v33 |
| 199 | div-double v11, v22, v33 |
| 200 | rem-double v11, v22, v33 |
| 201 | add-int/2addr v1, v2 |
| 202 | sub-int/2addr v1, v2 |
| 203 | mul-int/2addr v1, v2 |
| 204 | div-int/2addr v1, v2 |
| 205 | rem-int/2addr v1, v2 |
| 206 | and-int/2addr v1, v2 |
| 207 | or-int/2addr v1, v2 |
| 208 | xor-int/2addr v1, v2 |
| 209 | shl-int/2addr v1, v2 |
| 210 | shr-int/2addr v1, v2 |
| 211 | ushr-int/2addr v1, v2 |
| 212 | add-long/2addr v1, v2 |
| 213 | sub-long/2addr v1, v2 |
| 214 | mul-long/2addr v1, v2 |
| 215 | div-long/2addr v1, v2 |
| 216 | rem-long/2addr v1, v2 |
| 217 | and-long/2addr v1, v2 |
| 218 | or-long/2addr v1, v2 |
| 219 | xor-long/2addr v1, v2 |
| 220 | shl-long/2addr v1, v2 |
| 221 | shr-long/2addr v1, v2 |
| 222 | ushr-long/2addr v1, v2 |
| 223 | add-float/2addr v1, v2 |
| 224 | sub-float/2addr v1, v2 |
| 225 | mul-float/2addr v1, v2 |
| 226 | div-float/2addr v1, v2 |
| 227 | rem-float/2addr v1, v2 |
| 228 | add-double/2addr v1, v2 |
| 229 | sub-double/2addr v1, v2 |
| 230 | mul-double/2addr v1, v2 |
| 231 | div-double/2addr v1, v2 |
| 232 | rem-double/2addr v1, v2 |
| 233 | add-int/lit16 v1, v2, 0x1234 |
| 234 | rsub-int v1, v2, 0x1234 |
| 235 | mul-int/lit16 v1, v2, 0x1234 |
| 236 | div-int/lit16 v1, v2, 0x1234 |
| 237 | rem-int/lit16 v1, v2, 0x1234 |
| 238 | and-int/lit16 v1, v2, 0x1234 |
| 239 | or-int/lit16 v1, v2, 0x1234 |
| 240 | xor-int/lit16 v1, v2, 0x1234 |
| 241 | add-int/lit8 v1, v2, 0x12 |
| 242 | rsub-int/lit8 v1, v2, 0x12 |
| 243 | mul-int/lit8 v1, v2, 0x12 |
| 244 | div-int/lit8 v1, v2, 0x12 |
| 245 | rem-int/lit8 v1, v2, 0x12 |
| 246 | and-int/lit8 v1, v2, 0x12 |
| 247 | or-int/lit8 v1, v2, 0x12 |
| 248 | xor-int/lit8 v1, v2, 0x12 |
| 249 | shl-int/lit8 v1, v2, 0x12 |
| 250 | shr-int/lit8 v1, v2, 0x12 |
| 251 | ushr-int/lit8 v1, v2, 0x12 |
| 252 | |
| 253 | .catch java/lang/Exception from Label1 to Label2 using Label3 |
| 254 | .end method |
| 255 | |
| 256 | .source test_interface.java |
| 257 | .interface public dasm.test.interface.test_interface |
| 258 | |
| 259 | .method public native test()V |
| 260 | .end method |