Home | History | Annotate | Download | only in jm
      1 ; Copyright (C) 2008 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 .source T_aastore_11.java
     16 .class public dxc/junit/opcodes/aastore/jm/T_aastore_11
     17 .super java/lang/Object
     18 
     19 .method public <init>()V
     20     aload_0
     21     invokespecial java/lang/Object/<init>()V
     22     return
     23 .end method
     24 
     25 .method public run()I
     26     .limit stack 20
     27     .limit locals 10
     28     
     29     iconst_0
     30     istore_1
     31 
     32     iconst_1
     33     anewarray dxc/junit/opcodes/aastore/jm/SubClass
     34     astore_2    ; SubClass[]
     35     
     36     iconst_1
     37     anewarray dxc/junit/opcodes/aastore/jm/SuperClass
     38     astore_3    ; SuperClass[]
     39     
     40     new        dxc/junit/opcodes/aastore/jm/SubClass
     41     dup
     42     invokespecial dxc/junit/opcodes/aastore/jm/SubClass.<init>()V
     43     astore 4    ; SubClass
     44     
     45     new        dxc/junit/opcodes/aastore/jm/SuperClass
     46     dup
     47     invokespecial dxc/junit/opcodes/aastore/jm/SuperClass.<init>()V
     48     astore 5    ; SuperClass
     49     
     50     iconst_1
     51     anewarray dxc/junit/opcodes/aastore/jm/SuperInterface
     52     astore 6    ; SuperInterface[]
     53     
     54     iconst_1
     55     anewarray java/lang/Object
     56     astore 7    ; Object[]
     57     
     58     iconst_1
     59     anewarray dxc/junit/opcodes/aastore/jm/SuperInterface2
     60     astore 8    ; SuperInterface2[]    
     61     
     62 ; (SubClass -> SuperClass[])
     63     aload 3
     64     iconst_0
     65     aload 4
     66     aastore
     67     
     68 ; (SubClass -> SuperInterface[])
     69     aload 6
     70     iconst_0
     71     aload 4
     72     aastore
     73     
     74 ; (SubClass -> Object[])
     75     aload 7
     76     iconst_0
     77     aload 4
     78     aastore        
     79         
     80 ; !(SuperClass -> SubClass[])    
     81 Label1:
     82     aload 2
     83     iconst_0
     84     aload 5
     85 Label10:        
     86     nop
     87     aastore
     88 Label11:    
     89     goto Label2
     90 Label12:
     91     pop
     92     iinc 1 1
     93     goto Label2
     94         
     95 ; !(SuperClass -> SuperInterface2[])    
     96 Label2:
     97     aload 8
     98     iconst_0
     99     aload 5
    100 Label20:    
    101     aastore
    102 Label21:    
    103     goto Label3
    104 Label22:
    105     pop
    106     iinc 1 1
    107     goto Label3
    108 
    109 ; !(SubClass[] -> SuperInterface[])    
    110 Label3:
    111     aload 6
    112     iconst_0
    113     aload 2
    114 Label30:    
    115     aastore
    116 Label31:    
    117     goto Label4
    118 Label32:    
    119     pop
    120     iinc 1 1
    121     goto Label4
    122 
    123 Label4:
    124 Label6:        
    125     iload_1
    126     ireturn
    127     
    128 .catch java/lang/ArrayStoreException from Label10 to Label11 using Label12
    129 .catch java/lang/ArrayStoreException from Label20 to Label21 using Label22
    130 .catch java/lang/ArrayStoreException from Label30 to Label31 using Label32
    131 
    132 .end method
    133