HANDLE_OPCODE(OP_MONITOR_ENTER)1HANDLE_OPCODE(OP_MONITOR_ENTER /*vAA*/) 2 { 3 Object* obj; 4 5 vsrc1 = INST_AA(inst); 6 ILOGV("|monitor-enter v%d %s(0x%08x)", 7 vsrc1, kSpacing+6, GET_REGISTER(vsrc1)); 8 obj = (Object*)GET_REGISTER(vsrc1); 9 if (!checkForNullExportPC(obj, fp, pc)) 10 GOTO_exceptionThrown(); 11 ILOGV("+ locking %p %s\n", obj, obj->clazz->descriptor); 12 #ifdef WITH_MONITOR_TRACKING 13 EXPORT_PC(); /* need for stack trace */ 14 #endif 15 dvmLockObject(self, obj); 16 #ifdef WITH_DEADLOCK_PREDICTION 17 if (dvmCheckException(self)) 18 GOTO_exceptionThrown(); 19 #endif 20 } 21 FINISH(1); 22 OP_END 23