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