blob: 4b2642d5dc4c36ceec8b29eb0153d6994ef463eb [file] [log] [blame]
; Copyright (C) 2008 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.
.source TestStubs.java
.interface abstract dot.junit.opcodes.aput_object.d.SuperInterface
.source TestStubs.java
.interface public dot.junit.opcodes.aput_object.d.SuperInterface2
.source TestStubs.java
.class public dot.junit.opcodes.aput_object.d.SuperClass
.super java/lang/Object
.implements dot.junit.opcodes.aput_object.d.SuperInterface
.method public <init>()V
.limit regs 1
invoke-direct {v0}, java/lang/Object/<init>()V
return-void
.end method
.source TestStubs.java
.class public dot.junit.opcodes.aput_object.d.SubClass
.super dot.junit.opcodes.aput_object.d.SuperClass
.method public <init>()V
.limit regs 1
invoke-direct {v0}, dot/junit/opcodes/aput_object/d/SuperClass/<init>()V
return-void
.end method
.source T_aput_object_3.java
.class public dot.junit.opcodes.aput_object.d.T_aput_object_3
.super java/lang/Object
.method public <init>()V
.limit regs 1
invoke-direct {v0}, java/lang/Object/<init>()V
return-void
.end method
.method public run()I
.limit regs 32
const v1, 0
const v0, 1
; v2 = SubClass[]
new-array v2, v0, [Ldot/junit/opcodes/aput_object/d/SubClass;
; v3 = SuperClass[]
new-array v3, v0, [Ldot/junit/opcodes/aput_object/d/SuperClass;
; v4 = SubClass
new-instance v4, dot/junit/opcodes/aput_object/d/SubClass
invoke-direct {v4}, dot/junit/opcodes/aput_object/d/SubClass/<init>()V
; v5 = SuperClass
new-instance v5, dot/junit/opcodes/aput_object/d/SuperClass
invoke-direct {v5}, dot/junit/opcodes/aput_object/d/SuperClass/<init>()V
; v6 = SuperInterface[]
new-array v6, v0, [Ldot/junit/opcodes/aput_object/d/SuperInterface;
; v7 = Object[]
new-array v7, v0, [Ljava/lang/Object;
; v8 = SuperInterface2[]
new-array v8, v0, [Ldot/junit/opcodes/aput_object/d/SuperInterface2;
const/4 v0, 0
; (SubClass -> SuperClass[])
aput-object v4, v3, v0
; (SubClass -> SuperInterface[])
aput-object v4, v6, v0
; (SubClass -> Object[])
aput-object v4, v7, v0
; !(SuperClass -> SubClass[])
Label10:
aput-object v5, v2, v0
Label11:
goto Label2
Label12:
add-int/lit8 v1, v1, 1
goto Label2
; !(SuperClass -> SuperInterface2[])
Label2:
Label20:
aput-object v5, v8, v0
Label21:
goto Label3
Label22:
add-int/lit8 v1, v1, 1
goto Label3
; !(SubClass[] -> SuperInterface[])
Label3:
Label30:
aput-object v2, v6, v0
Label31:
goto Label4
Label32:
add-int/lit8 v1, v1, 1
goto Label4
Label4:
return v1
.catch java/lang/ArrayStoreException from Label10 to Label11 using Label12
.catch java/lang/ArrayStoreException from Label20 to Label21 using Label22
.catch java/lang/ArrayStoreException from Label30 to Label31 using Label32
.end method