|| gDvm.activeProfilers
#endif
);
-
- /* First instruction - just remember the PC and exit */
- if (interpState->lastPC == NULL) {
- interpState->lastPC = pc;
- return switchInterp;
- }
-
/* Prepare to handle last PC and stage the current PC */
const u2 *lastPC = interpState->lastPC;
interpState->lastPC = pc;
int offset;
DecodedInstruction decInsn;
case kJitTSelect:
+ /* First instruction - just remember the PC and exit */
+ if (lastPC == NULL) break;
/* Grow the trace around the last PC if jitState is kJitTSelect */
dexDecodeInstruction(gDvm.instrFormat, lastPC, &decInsn);
#if defined(SHOW_TRACE)
#if defined(WITH_JIT)
// Something threw during trace selection - abort the current trace
- interpState->jitState = kJitTSelectEnd;
+ if (interpState->jitState == kJitTSelect) {
+ interpState->jitState = kJitTSelectEnd;
+ }
#endif
/*
* We save off the exception and clear the exception status. While
#if defined(WITH_JIT)
// Something threw during trace selection - abort the current trace
- interpState->jitState = kJitTSelectEnd;
+ if (interpState->jitState == kJitTSelect) {
+ interpState->jitState = kJitTSelectEnd;
+ }
#endif
/*
* We save off the exception and clear the exception status. While
#if defined(WITH_JIT)
// Something threw during trace selection - abort the current trace
- interpState->jitState = kJitTSelectEnd;
+ if (interpState->jitState == kJitTSelect) {
+ interpState->jitState = kJitTSelectEnd;
+ }
#endif
/*
* We save off the exception and clear the exception status. While
#if defined(WITH_JIT)
// Something threw during trace selection - abort the current trace
- interpState->jitState = kJitTSelectEnd;
+ if (interpState->jitState == kJitTSelect) {
+ interpState->jitState = kJitTSelectEnd;
+ }
#endif
/*
* We save off the exception and clear the exception status. While
#if defined(WITH_JIT)
// Something threw during trace selection - abort the current trace
- interpState->jitState = kJitTSelectEnd;
+ if (interpState->jitState == kJitTSelect) {
+ interpState->jitState = kJitTSelectEnd;
+ }
#endif
/*
* We save off the exception and clear the exception status. While