Home | History | Annotate | Download | only in c
      1 HANDLE_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);
     20 OP_END
     21