History log of /dalvik/vm/mterp/out/InterpC-portable.cpp
Revision Date Author Comments
bb046193c2da5d43a57b2fa8a17a0f634bf003ba 07-Aug-2012 Elliott Hughes <enh@google.com> Fix ALOGV bit rot.

Change-Id: Ia182af8f5ca3967a21003b3d1513145f8e6e5db0
0c2dc522d0e120f346cf0a40c8cf0c93346131c2 03-Jul-2012 Dong-Yuan Chen <dong-yuan.chen@intel.com> [X86] X86 trace JIT compiler support

This patch provides a fully functional x86 trace JIT compiler for Dalvik
VM. It is built on top of the existing x86 fast interpreter
with bug fixes and needed extension to support trace JIT interface. The
x86 trace JIT code generator was developed independent of the existing
template-based code generator and thus does not share exactly the same
infrastructure. Included in this patch are:

* Deprecated and removed the x86-atom fast interpreter that is no
longer functional since ICS.
* Augmented x86 fast interpreter to provide interfaces for x86 trace JIT
compiler.
* Added x86 trace JIT code generator with full JDWP debugging support.
* Method JIT and self-verification mode are not supported.

The x86 code generator uses the x86 instruction encoder/decoder library
from the Apache Harmony project. Additional wrapper extension and bug
fixes were added to support the x86 trace JIT code generator. The x86
instruction encoder/decoder is embedded inside the x86 code generator
under the libenc subdirectory.

Change-Id: I241113681963a16c13a3562390813cbaaa6eedf0
Signed-off-by: Dong-Yuan Chen <dong-yuan.chen@intel.com>
Signed-off-by: Yixin Shou <yixin.shou@intel.com>
Signed-off-by: Johnnie Birch <johnnie.l.birch.jr@intel.com>
Signed-off-by: Udayan <udayan.banerji@intel.com>
Signed-off-by: Sushma Kyasaralli Thimmappa <sushma.kyasaralli.thimmappa@intel.com>
Signed-off-by: Bijoy Jose <bijoy.a.jose@intel.com>
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Signed-off-by: Tim Hartley <timothy.d.hartley@intel.com>
a8b91c52fd8a90b784835dfe1f8898035266c4dd 02-May-2012 Raghu Gandham <raghu@mips.com> [MIPS] Dalvik fast interpreter support and JIT implementation

Change-Id: I9bb4f6875b7061d3ffaee73f204026cb8ba3ed39
Signed-off-by: Raghu Gandham <raghu@mips.com>
Signed-off-by: Chris Dearman <chris@mips.com>
Signed-off-by: Douglas Leung <douglas@mips.com>
Signed-off-by: Don Padgett <don@mips.com>
7882ef9e459373e31c5e06eb2d2fe96c2e948300 31-Jan-2012 Chris Dearman <chris@mips.com> Use old frame for dvmReportPreNativeInvoke/dvmReportPostNativeInvoke

The portable and standard interpreters were using different values.
The portable interpeter is correct...

Change-Id: I8669dfbc979f161666e6b7f63aae16f48612a0c6
Signed-off-by: Chris Dearman <chris@mips.com>
0d5443d0ef4c5538112a9ae1d1c8b93b8ab18736 31-Jan-2012 Chris Dearman <chris@mips.com> Restore fp after calling JNI method in allstubs interpreter

The allstubs interpreter uses self->interpSave.curFrame as fp.
The invokeMethod native code sets self->interpSave.curFrame directly
effectively updating fp, so restore fp after the call has completed.

Change-Id: I0ffb15b71a48c2780251bbcd66e551bb0a52fe94
Signed-off-by: Chris Dearman <chris@mips.com>
68df230d661dbafb117f942f981f8abfc12e552a 31-Jan-2012 Raghu Gandham <raghu@mips.com> Fix the warning emitted by codesourcery compiler 4.5.2

Change-Id: Ib2b8e87afff7af56281d83961edf79c17cbcf940
46f3fd49ebda372887192fa32b16040ed6710f58 31-Jan-2012 Chris Dearman <chris@mips.com> Fix instruction logging messages

Change-Id: Ifc7de30ea1c1221f7838523a5ebd269eec622e03
Signed-off-by: Chris Dearman <chris@mips.com>
3185a41fe8b3223003a07685c1acdf44bfe148d0 30-Jan-2012 buzbee <buzbee@google.com> x86 mterp debug/profile fix (issue 5938080)

When profiling or debugging is active, the Dalvik vm calls out to
a helper function to handle any pending debug/profile activities
before and after native invokes. The assembly code in footer.s
was passing arguments to these routines in the wrong oder.

Issue 5938080

Change-Id: I425eb2bfbee504a70eda8b382f4cf7340e458241
c1a4ab9c313d8a3d12007f2dbef7b5a6fa4ac2ef 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/157220

Also fix an occurrence of LOGW missed in an earlier change.

Bug: 5449033
Change-Id: I2e3b23839e6dcd09015d6402280e9300c75e3406
e8e1ddccd616e8226b7cc1e4e9fdb327429249e8 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/157065

Bug: 5449033
Change-Id: Ia5d301248024df26c2a29dabdfe738e39ec87c82
ab35b50311951feea3782151dd5422ee944685c2 05-Jan-2012 Elliott Hughes <enh@google.com> Remove unsupported experimental opcodes.

External developers were starting to try to get themselves into trouble with
this stuff...

Change-Id: I2b03bfeaa8c98b6a994bc7924fc8dcf4e4d4f6cb
062bf509a77fce9dfcb7e7b2e401cf2a124d83d5 20-Dec-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/156016

Bug: 5449033
Change-Id: Ic663376d1ad6a6cb14bf81405ad9afd247cf2f60
34987b48d216786454aca59474cb76015af48bd9 27-Oct-2011 Jeff Brown <jeffbrown@google.com> Fix reference to non-existent function in debug code.

The generated interpreter code has some debugging code
that call dvmIsHeapAddressObject, which doesn't exist.
This causes the build to fails when we build Dalvik with
DEBUG_DALVIK_VM=true. Use dvmIsHeapAddress instead.

Change-Id: Ifc5eeb4bd2ea6b45046c606b744b1a70a5e56dfc
92c1f6f1b4249e4e379452ee7b49f027052bf4ce 20-Oct-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/143865

Bug: 5449033
Change-Id: I8bd96961e369a08e86ff78b82d90f20f42787eb1
1663a6c12fdf4732d7ea0a0406af6085b3c408e4 12-Oct-2011 Steve Block <steveblock@google.com> Rename (IF_)LOG() to (IF_)ALOG() DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/141576

Bug: 5449033
Change-Id: Ie3bc0d5436218ea05f98cb0373ecf5924f78db05
8bc8bf71a52e17d483021b4c9dc8e735d9bce3ed 20-Jul-2011 Elliott Hughes <enh@google.com> Don't use dvmIsValidObject outside the GC.

Use dvmIsHeapPointer outside the GC. (This still isn't safe because there's
no synchronization when dealing with the HeapSource.)

Bug: 5049447
Change-Id: Ie0b325ef0a92687ea1eaf1491a4bb832298893c5
291c84f60853d30e1c0d79dd08c5e5164f588e26 26-May-2011 Dan Bornstein <danfuzz@android.com> Prefer printf format "%#x" over "0x%x".

I exist to serve.

Change-Id: I8e2880b20eefd466da8515d5b6b0c5cb75d56169
60fc806b679a3655c228b4093058c59941a49cfe 26-May-2011 Dan Bornstein <danfuzz@android.com> Further conservation of newlines.

Friends don't let friends end LOG() strings with newlines.

Change-Id: I5a18c766c90c4ab5f03caa6acd601d34d91beb00
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
9c6f0a6a36fcce4a55e3764db45c6c7cced077a5 10-May-2011 Carl Shapiro <cshapiro@google.com> Fixes to allow the debug VM configuration to build.

Change-Id: Ifbe6acf84beb75014303152d20153072e7e50c55
a62c3a0ab3fcdde37f47d16e9699a935ae7a8e88 04-May-2011 Carl Shapiro <cshapiro@google.com> Establish a subclass relationship between ArrayObject and Object.

Change-Id: I9f9fe52bd4ceebb6dde48251a89190ba6bb00ce4
92a3b69286a757afff76402d8a0d5ec04d7f177c 30-Apr-2011 Carl Shapiro <cshapiro@google.com> Type the reference member of JValue as an Object pointer.

Previously this had been a void pointer. To avoid adding lots of
casts from the logical Object subtypes to Object the RETURN_PTR macro
silently casts its argument to an Object* before performing an
assignment to the JValue return value. After an inheritance
relationship is established between Object and its subtypes this cast
can be removed.

Change-Id: Id05e5c11e57e2a9afd12bad0be095f1dfe9e1f51
c67c23bc6f5f3621f31c41bd48553b196ab0325e 28-Apr-2011 Carl Shapiro <cshapiro@google.com> Eliminate the PROFILE_FIELD_ACCESS feature.

Change-Id: I27bf2d18c4c0735913ea8698825b05e393b046b2
30bc0d46ae730d78c42c39cfa56a59ba3025380b 22-Apr-2011 buzbee <buzbee@google.com> Consolidate curFrame fields in thread storage

We ended up with two locations in the Thread structure for saved
Dalvik frame pointer. This change consolidates them.

Change-Id: I78f288e4e57e232f29663be930101e775bfe370f
cd8f5e701547739f241594b43e9470c92d98e9cf 21-Apr-2011 Carl Shapiro <cshapiro@google.com> Move the interpreter into C++.

Change-Id: I4b7d6ed9c54dbf3244304a7ea0f13e6c37cca2aa