Fixed bug in x86-atom fast interpreter. Adds guard for potential null pointer.
Adds guard for potential null pointer when checking for debugger active on return from method.

Change-Id: Iaef2b6815fe6c64450cc0cc36f8920e4c38f40e6
Dump native stack of JNI methods when handling SIGQUIT.

Change-Id: I7da7259f1350e853153ba4dea96797fc86284068
merge in ics-release history after reset to master
Rename (IF_)LOG() to (IF_)ALOG()  DO NOT MERGE

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

Bug: 5449033
Change-Id: Ie3bc0d5436218ea05f98cb0373ecf5924f78db05
am 1663a6c1: (-s ours) Rename (IF_)LOG() to (IF_)ALOG()  DO NOT MERGE

* commit '1663a6c12fdf4732d7ea0a0406af6085b3c408e4':
  Rename (IF_)LOG() to (IF_)ALOG()  DO NOT MERGE
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
am 92c1f6f1: (-s ours) Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF)  DO NOT MERGE

* commit '92c1f6f1b4249e4e379452ee7b49f027052bf4ce':
  Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF)  DO NOT MERGE
merge in ics-release history after reset to master
reset to ics-mr1, but keep history
undo reset to ics-mr1 until we have a better method
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
Add a simple performance test for IndirectRefTable.

Change-Id: Ib75354508fff1921d8d73eba5e3a3905a362b1e1
Optimize IndirectRefTable.

Removed unused debugging code that maintained pointers to the
4 previous objects in each slot.

Promoted the serial number property of a slot to be first class.
This is a sufficiently cheap and useful check to perform that we
might as well always do it.

Changed get() and remove() so they check the validity of the
references at the same time as they retrieve them.  They're
also a bit smarter about checking the reference kind given
that they can assume that the table will only contain references
of one kind.  The checks are now much more consistent.
For example, remove() used to check whether an index was
stale only in the case where it was not removing the top entry
(now it always checks).

Made add() return NULL instead of dvmAbort()'ing in the case
where the table overflowed and ensure we don't blow away the
table in that cases.  This change resolves an issue with
TestIndirectRefTable.cpp which deliberately overflows the table
and expects add() to return NULL (as documented!).  As it
happens, the add() method is called in exactly 3 places in
Jni.cpp.  In each of those cases, the code was written to
handle a NULL result and only in the case of adding a weak
global reference did it not abort.  Fixed the weak global
reference case to be consistent with the others.

Changed the signature of contains() to take an Object* since
that's what we're actually looking for inside the table.

Added a couple of calls to dump() in TestIndirectRefTable.cpp
for visual inspection of its correctness.

Performance as measured by TestIndirectRefTable on same hardware.

Old implementation:
- Add/remove 100 objects FIFO order, 100000 iterations, 0.023ms / iteration
- Add/remove 100 objects LIFO order, 100000 iterations, 0.020ms / iteration
- Get 100 objects, 100000 iterations, 0.009ms / iteration

New implementation:
- Add/remove 100 objects FIFO order, 100000 iterations, 0.010ms / iteration
- Add/remove 100 objects LIFO order, 100000 iterations, 0.009ms / iteration
- Get 100 objects, 100000 iterations, 0.002ms / iteration

Change-Id: I1c904eb03bc8dd9822e6d9cce702c696e976974e
Fix single-stepping resume mode in the interpreter.

When a resume attempt is cancelled due to other pending request make sure
the old native resume PC is cleared. Otherwise the JIT code cache may be
re-entered with mismatching Dalvik PC.

Also fix a code bloat problem where single-step count is not set properly
after executing a return instruction.

Change-Id: Ia926bc3a87cae1296719a1069838060b181ce54d
Dump stacks for all native threads, not just those in JNI.

Change-Id: I276f5f448f22f8a926cdfc8c93935da687db5d9b
Merge "Fix single-stepping resume mode in the interpreter."
keep previous history after reset to mr1 plus aah changes (ics-aah-wip)
am 8faec7e7: Fix single-stepping resume mode in the interpreter.

* commit '8faec7e782eca1fd6a2ad071c30b939c77c82662':
  Fix single-stepping resume mode in the interpreter.
am f4948cc1: am b1e2271b: Fix single-stepping resume mode in the interpreter.

* commit 'f4948cc1ddb41ed72e5843ffe3d4af4889e6c74c':
  Fix single-stepping resume mode in the interpreter.
merge in ics-release history after reset to master