summaryrefslogtreecommitdiffstats
path: root/vm/compiler/Compiler.h
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2010-01-04 12:29:56 -0800
committerBen Cheng <bccheng@google.com>2010-01-07 13:42:30 -0800
commit60c24f436d603c564d5351a6f81821f12635733c (patch)
treea7891b72a6390aed9692803e84642e6bcc61dc50 /vm/compiler/Compiler.h
parent81315cc4a0209073e0ae4946a6400b2cb571e616 (diff)
downloadandroid_dalvik-60c24f436d603c564d5351a6f81821f12635733c.tar.gz
android_dalvik-60c24f436d603c564d5351a6f81821f12635733c.tar.bz2
android_dalvik-60c24f436d603c564d5351a6f81821f12635733c.zip
Tear down the code cache when it is full and restart from scratch.
Because the code cache may be wiped out after safe points now the patching of inline cache for predicted chains is done through the compiler thread's work queue.
Diffstat (limited to 'vm/compiler/Compiler.h')
-rw-r--r--vm/compiler/Compiler.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/vm/compiler/Compiler.h b/vm/compiler/Compiler.h
index 06367a6ec..c66d5621a 100644
--- a/vm/compiler/Compiler.h
+++ b/vm/compiler/Compiler.h
@@ -38,7 +38,7 @@ typedef enum JitInstructionSetType {
typedef struct JitTranslationInfo {
void *codeAddress;
JitInstructionSetType instructionSet;
- bool discardResult; // Used for debugging divergence
+ bool discardResult; // Used for debugging divergence and IC patching
} JitTranslationInfo;
typedef enum WorkOrderKind {
@@ -46,6 +46,7 @@ typedef enum WorkOrderKind {
kWorkOrderMethod = 1, // Work is to compile a whole method
kWorkOrderTrace = 2, // Work is to compile code fragment(s)
kWorkOrderTraceDebug = 3, // Work is to compile/debug code fragment(s)
+ kWorkOrderICPatch = 4, // Work is to patch a polymorphic callsite
} WorkOrderKind;
typedef struct CompilerWorkOrder {