1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%verify "executed"
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /*
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Array put, 64 bits.  vBB[vCC]<-vAA.
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /* op vAA, vBB, vCC */
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    movzbl    2(rPC),%eax               # eax<- BB
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    movzbl    3(rPC),%ecx               # ecx<- CC
9f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    GET_VREG_R  %eax %eax               # eax<- vBB (array object)
10f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    GET_VREG_R  %ecx %ecx               # ecs<- vCC (requested index)
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    testl     %eax,%eax                 # null array object?
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    je        common_errNullObject      # bail if so
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    cmpl      offArrayObject_length(%eax),%ecx
14a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    jae       common_errArrayIndex      # index >= length, bail.  Expects:
153e1bbffab14075a340ad0165c6ada6a43875a01fbuzbee                                        #   arrayObj in eax
163e1bbffab14075a340ad0165c6ada6a43875a01fbuzbee                                        #   index in ecx
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    leal      offArrayObject_contents(%eax,%ecx,8),%eax
18f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    GET_VREG_WORD %ecx rINST 0
19f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    GET_VREG_WORD rINST rINST 1
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    movl      %ecx,(%eax)
21a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    FETCH_INST_OPCODE 2 %ecx
22a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    movl      rINST,4(%eax)
23f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    ADVANCE_PC 2
24a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    GOTO_NEXT_R %ecx
25