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