History log of /dalvik/vm/compiler/codegen/CodegenFactory.cpp
Revision Date Author Comments
cf4a20cf0cbc53f03a5b16c7152bbb29907f7108 25-May-2011 buzbee <buzbee@google.com> Interpreter/Debugger fix #4479968

This one was tricky to track down. The underlying problem arose
with the consolidation of InterpState with Thread. Rather than
having a state structure for each instance of the interpreter, we
moved to a model that had a single thread-local struct shared by all
interpreter instances running on that thread. A portion of interpreter
state can't be shared - and thus was saved and restored on nested
invocations of the interpreter.

The bug here was that the storage for method return values was not
included in the state that needed save/retore. In normal operation,
it doesn't need to be saved - that storage isn't live across an
invoke that could trigger a nested interpreter activation. However,
when debugging, the debugger itself may hijack threads and create
new interpreter instances for its own purposed - and there is a small
window in which live retval can be trashed.

The fix is simply to move retval into the InterpSave struct.

Change-Id: Ib621824b799c5caa16fdfa8f5689a181159059df
fe108f779db4fb3bc720a92e69e58177983088c1 12-May-2011 Ben Cheng <bccheng@android.com> Fix a Thumb vs Thumb2 codegen bug.

A Thumb2 pc-relative load is slipped into the codegen stream even though
the selected platform is armv5te (eg the emulator).

Bug: 4399358
Change-Id: I61dd6853cad6c82de43f384814c903dd9f3ae302
5d5b94c8d14b166af580d5dd5906db4f9527d6ca 20-Apr-2011 Carl Shapiro <cshapiro@google.com> Move the compiler into C++.

Change-Id: Idffbdb02c29e2be03a75f5a0a664603f2299504a