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        EXPORT_PC();    /* need for precise GC, also WITH_MONITOR_TRACKING */
13        dvmLockObject(self, obj);
14#ifdef WITH_DEADLOCK_PREDICTION
15        if (dvmCheckException(self))
16            GOTO_exceptionThrown();
17#endif
18    }
19    FINISH(1);
20OP_END
21