1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%default { "load":"movl", "shift":"4" }
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%verify "executed"
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /*
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Array get, 32 bits or less.  vAA <- vBB[vCC].
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * for: aget, aget-object, aget-boolean, aget-byte, aget-char, aget-short
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /* op vAA, vBB, vCC */
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    movzbl    2(rPC),%eax               # eax<- BB
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    movzbl    3(rPC),%ecx               # ecx<- CC
11f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    GET_VREG_R  %eax %eax               # eax<- vBB (array object)
12f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    GET_VREG_R  %ecx %ecx               # ecs<- vCC (requested index)
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    testl     %eax,%eax                 # null array object?
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    je        common_errNullObject      # bail if so
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    cmpl      offArrayObject_length(%eax),%ecx
163e1bbffab14075a340ad0165c6ada6a43875a01fbuzbee    jae       common_errArrayIndex      # index >= length, bail.  Expects
173e1bbffab14075a340ad0165c6ada6a43875a01fbuzbee                                        #    arrayObj in eax
183e1bbffab14075a340ad0165c6ada6a43875a01fbuzbee                                        #    index in ecx
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    $load     offArrayObject_contents(%eax,%ecx,$shift),%eax
20f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee.L${opcode}_finish:
21a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    FETCH_INST_OPCODE 2 %ecx
22f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    SET_VREG  %eax rINST
23f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    ADVANCE_PC 2
24a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    GOTO_NEXT_R %ecx
25