OP_APUT.S revision f3e177289ac078f18401cfd8eebafe584dd0d01f
1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%default { "reg":"%ecx", "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 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project jae common_errArrayIndex # index >= length, bail 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project leal offArrayObject_contents(%eax,%ecx,$shift),%eax 18f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee.L${opcode}_finish: 19f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee GET_VREG_R %ecx rINST 20f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee FETCH_INST_OPCODE 2 %edx 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project $store $reg,(%eax) 22f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee ADVANCE_PC 2 23f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee GOTO_NEXT_R %edx 24