summaryrefslogtreecommitdiffstats
path: root/vm/compiler/Compiler.h
diff options
context:
space:
mode:
authorBen Cheng <bccheng@android.com>2010-03-31 14:36:33 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-03-31 14:36:33 -0700
commit1071056dace973442293b718bf12e328935126f1 (patch)
tree2c3d962853ca88dfdfdaf2aa695ff6ec497249fa /vm/compiler/Compiler.h
parent3d82ade7a9b764695bad89d2476a73441118411b (diff)
parenta497359afa1abe4c5780c8799c6fe0edab551c2d (diff)
downloadandroid_dalvik-1071056dace973442293b718bf12e328935126f1.tar.gz
android_dalvik-1071056dace973442293b718bf12e328935126f1.tar.bz2
android_dalvik-1071056dace973442293b718bf12e328935126f1.zip
am a497359a: Fix a race condition in JIT state refresh under debugging / misc code cleanup.
Diffstat (limited to 'vm/compiler/Compiler.h')
-rw-r--r--vm/compiler/Compiler.h23
1 files changed, 13 insertions, 10 deletions
diff --git a/vm/compiler/Compiler.h b/vm/compiler/Compiler.h
index 5b667355d..ba23d7df1 100644
--- a/vm/compiler/Compiler.h
+++ b/vm/compiler/Compiler.h
@@ -79,17 +79,20 @@ typedef struct ICPatchWorkOrder {
PredictedChainingCell cellContent; /* content of the new cell */
} ICPatchWorkOrder;
+/* States of the dbg interpreter when serving a JIT-related request */
typedef enum JitState {
- kJitOff = 0,
- kJitNormal = 1, // Profiling in mterp or running native
- kJitTSelectRequest = 2, // Transition state - start trace selection
- kJitTSelectRequestHot = 3, // Transition state - start hot trace selection
- kJitTSelect = 4, // Actively selecting trace in dbg interp
- kJitTSelectAbort = 5, // Something threw during selection - abort
- kJitTSelectEnd = 6, // Done with the trace - wrap it up
- kJitSingleStep = 7, // Single step interpretation
- kJitSingleStepEnd = 8, // Done with single step, return to mterp
- kJitSelfVerification = 9, // Self Verification Mode
+ /* Entering states in the debug interpreter */
+ kJitNot = 0, // Non-JIT related reasons */
+ kJitTSelectRequest = 1, // Request a trace (subject to filtering)
+ kJitTSelectRequestHot = 2, // Request a hot trace (bypass the filter)
+ kJitSelfVerification = 3, // Self Verification Mode
+
+ /* Operational states in the debug interpreter */
+ kJitTSelect = 4, // Actively selecting a trace
+ kJitTSelectEnd = 5, // Done with the trace - wrap it up
+ kJitSingleStep = 6, // Single step interpretation
+ kJitSingleStepEnd = 7, // Done with single step, ready return to mterp
+ kJitDone = 8, // Ready to leave the debug interpreter
} JitState;
#if defined(WITH_SELF_VERIFICATION)