Home | History | Annotate | Download | only in test
      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