1a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham%verify "executed"
2a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham%verify "Class already resolved"
3a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham%verify "Class not yet resolved"
4a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham%verify "Class cannot be resolved"
5a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    # const/class vAA, Class               /* BBBB */
6a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    FETCH(a1, 1)                           #  a1 <- BBBB
7a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    LOAD_rSELF_methodClassDex(a2)          #  a2 <- self->methodClassDex
8a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    GET_OPA(rOBJ)                          #  rOBJ <- AA
9a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    LOAD_base_offDvmDex_pResClasses(a2, a2) #  a2 <- dvmDex->pResClasses
10a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    LOAD_eas2(v0, a2, a1)                  #  v0 <- pResClasses[BBBB]
11a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham
12a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    bnez      v0, .L${opcode}_resolve      #  v0!=0 => resolved-ok
13a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    /*
14a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham     * Continuation if the Class has not yet been resolved.
15a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham     *  a1: BBBB (Class ref)
16a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham     *  rOBJ: target register
17a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham     */
18a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    EXPORT_PC()
19a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    LOAD_rSELF_method(a0)                  #  a0 <- self->method
20a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    li        a2, 1                        #  a2 <- true
21a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    LOAD_base_offMethod_clazz(a0, a0)      #  a0 <- method->clazz
22a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    JAL(dvmResolveClass)                   #  v0 <- Class reference
23a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    # failed==0?
24a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    beqz      v0, common_exceptionThrown   #  yup, handle the exception
25a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham
26a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham.L${opcode}_resolve:
27a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    FETCH_ADVANCE_INST(2)                  #  advance rPC, load rINST
28a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    GET_INST_OPCODE(t0)                    #  extract opcode from rINST
29a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham    SET_VREG_GOTO(v0, rOBJ, t0)            #  vAA <- v0
30a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham
31a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham
32