OP_MONITOR_ENTER.cpp revision 60fc806b679a3655c228b4093058c59941a49cfe
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", obj, obj->clazz->descriptor);
12        EXPORT_PC();    /* need for precise GC */
13        dvmLockObject(self, obj);
14    }
15    FINISH(1);
16OP_END
17