diff options
author | buzbee <buzbee@google.com> | 2011-05-02 16:06:04 -0700 |
---|---|---|
committer | buzbee <buzbee@google.com> | 2011-05-02 16:06:04 -0700 |
commit | 2ec9f7802034144383261b2fd915bdf1eb396ea4 (patch) | |
tree | 92fc30d98395fca653da66397b65960be781a80d /vm/interp | |
parent | 17f22e19628bd8dc4c5d0789de7753e294aec9ee (diff) | |
download | android_dalvik-2ec9f7802034144383261b2fd915bdf1eb396ea4.tar.gz android_dalvik-2ec9f7802034144383261b2fd915bdf1eb396ea4.tar.bz2 android_dalvik-2ec9f7802034144383261b2fd915bdf1eb396ea4.zip |
x86 interpreter fix
Correct the ordering of FP save prior to special subMode handling.
Also added a stress test mode to help catch this sort of problem in
the future.
Change-Id: I5bcd325858fa63023498bfd47e910aaf1530d6bb
Diffstat (limited to 'vm/interp')
-rw-r--r-- | vm/interp/Interp.cpp | 5 | ||||
-rw-r--r-- | vm/interp/InterpState.h | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/vm/interp/Interp.cpp b/vm/interp/Interp.cpp index f61f7bab5..11e940827 100644 --- a/vm/interp/Interp.cpp +++ b/vm/interp/Interp.cpp @@ -1687,6 +1687,7 @@ void dvmInitInterpreterState(Thread* self) // Jit state that can change dvmJitUpdateThreadStateSingle(self); #endif + dvmInitializeInterpBreak(self); } /* @@ -1708,6 +1709,10 @@ void dvmInitializeInterpBreak(Thread* thread) if (gDvm.debuggerActive) { dvmEnableSubMode(thread, kSubModeDebuggerActive); } +#if 0 + // Debugging stress mode - force checkBefore + dvmEnableSubMode(thread, kSubModeCheckAlways); +#endif } /* diff --git a/vm/interp/InterpState.h b/vm/interp/InterpState.h index 3795bf93d..b782275d2 100644 --- a/vm/interp/InterpState.h +++ b/vm/interp/InterpState.h @@ -51,6 +51,7 @@ enum ExecutionSubModes { kSubModeSuspendPending = 0x0010, kSubModeCallbackPending = 0x0020, kSubModeCountedStep = 0x0040, + kSubModeCheckAlways = 0x0080, kSubModeJitTraceBuild = 0x4000, kSubModeJitSV = 0x8000, kSubModeDebugProfile = (kSubModeMethodTrace | @@ -78,6 +79,7 @@ enum InterpBreakFlags { #define SINGLESTEP_BREAK_MASK ( kSubModeInstCounting | \ kSubModeDebuggerActive | \ kSubModeCountedStep | \ + kSubModeCheckAlways | \ kSubModeJitSV | \ kSubModeJitTraceBuild ) |