1a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee%default { "reg":"rINST", "store":"movl", "shift":"4" } 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%verify "executed" 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Array put, 32 bits or less. vBB[vCC] <- vAA 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * for: aput, aput-object, aput-boolean, aput-byte, aput-char, aput-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 leal offArrayObject_contents(%eax,%ecx,$shift),%eax 20f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee.L${opcode}_finish: 21a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee GET_VREG_R rINST rINST 22a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee FETCH_INST_OPCODE 2 %ecx 23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project $store $reg,(%eax) 24f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee ADVANCE_PC 2 25a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee GOTO_NEXT_R %ecx 26