Lines Matching defs:dpc
480 if (gDvmJit.pJitEntryTable[i].dPC != 0) {
546 void dvmJitEndTraceSelect(Thread* self, const u2* dPC)
553 dvmCheckJit(dPC, self);
561 static JitEntry *lookupAndAdd(const u2* dPC, bool callerLocked,
565 u4 idx = dvmJitHash(dPC);
572 ((gDvmJit.pJitEntryTable[idx].dPC != dPC) ||
578 if (gDvmJit.pJitEntryTable[idx].dPC != dPC ||
584 * at previuosly (perhaps even the dPC we're trying to enter).
589 * At this point, if .dPC is NULL, then the slot we're
594 ANDROID_MEMBAR_FULL(); /* Make sure we reload [].dPC after lock */
595 if (gDvmJit.pJitEntryTable[idx].dPC != NULL) {
598 if (gDvmJit.pJitEntryTable[idx].dPC == dPC &&
601 /* Another thread got there first for this dPC */
609 * active chain whose last member contains a valid dPC */
610 assert(gDvmJit.pJitEntryTable[idx].dPC != NULL);
617 if ((gDvmJit.pJitEntryTable[idx].dPC == NULL) ||
638 if (gDvmJit.pJitEntryTable[idx].dPC == NULL) {
642 * happen in this order (since dPC is set, the entry is live.
644 android_atomic_release_store((int32_t)dPC,
645 (volatile int32_t *)(void *)&gDvmJit.pJitEntryTable[idx].dPC);
648 gDvmJit.pJitEntryTable[idx].dPC = dPC;
665 const u2* dpc;
680 dpc = dpcBase + trace->trace[curFrag].info.frag.startOffset;
682 dexDecodeInstruction(dpc, &decInsn);
683 ALOGD(" 0x%04x - %s %#x",(dpc-dpcBase),
684 dexGetOpcodeName(decInsn.opcode),(int)dpc);
685 dpc += dexGetWidthFromOpcode(decInsn.opcode);
1006 if ((gDvmJit.pJitEntryTable[idx].dPC == pc) &&
1013 if ((gDvmJit.pJitEntryTable[idx].dPC == pc) &&
1026 void* getCodeAddrCommon(const u2* dPC, bool methodEntry)
1028 int idx = dvmJitHash(dPC);
1029 const u2* pc = gDvmJit.pJitEntryTable[idx].dPC;
1032 if (pc == dPC &&
1047 if (gDvmJit.pJitEntryTable[idx].dPC == dPC &&
1074 void* dvmJitGetTraceAddr(const u2* dPC)
1076 return getCodeAddrCommon(dPC, false /* method entry */);
1083 void* dvmJitGetMethodAddr(const u2* dPC)
1085 return getCodeAddrCommon(dPC, true /* method entry */);
1092 void* dvmJitGetTraceAddrThread(const u2* dPC, Thread* self)
1095 getCodeAddrCommon(dPC, false /* method entry */);
1102 void* dvmJitGetMethodAddrThread(const u2* dPC, Thread* self)
1105 getCodeAddrCommon(dPC, true /* method entry */);
1121 void dvmJitSetCodeAddr(const u2* dPC, void *nPC, JitInstructionSetType set,
1127 * Get the JitTable slot for this dPC (or create one if JitTable
1132 lookupAndAdd(dPC, false /* caller holds tableLock */, isMethodEntry) :
1133 dvmJitFindEntry(dPC, isMethodEntry);
1356 if (pOldTable[i].dPC) {
1359 p = lookupAndAdd(pOldTable[i].dPC, true /* holds tableLock*/,