Combine JDWP location events

The runtime now sends location events BREAKPOINT, SINGLE_STEP, METHOD_ENTRY,
METHOD_EXIT and METHOD_EXIT_WITH_RETURN_VALUE in the same JDWP event packet
when they relate to the same location.

We update the Dbg::UpdateDebugger method to take initial event flags and
returned value. It allows to call this method from DebugInstrumentationListener
so we can treat method entry/exit events with breakpoint and single-step.

In the interpreter, we ensure we do not call Instrumentation::DexPcMovedEvent
when Instrumentation::MethodEnterEvent has just been called or when we're about
to call Instrumentation::MethodExitEvent. This prevents from sending duplicated
events.

I measured the average performance impact on some benchmarks with a Nexus 4
without a debugger attached:
* 1%-2% for the computed-goto-based interpreter (default interpreter)
* 5%-10% for the switch-based interpreter.
This is mostly due to the test of the boolean flag for the method entry event.

Bug: https://code.google.com/p/android/issues/detail?id=68427
Bug: 11874828
Change-Id: Ic4ff61375ff6b4ed5825adeac09f61f97b4be619
ART: Fix ARM dmb placement in monitor-exit

This moves the dmb in quick-compiled monitor-exit before the str
perfoming the unlock.

Change-Id: I231f98ff21eb7bac45b4a1b7ff57316deeb858cc
x86_64: Handle UnsafeGet/Put equal to x86

This patch extends "Handle x86_64 architecture equal to x86"
and covers UnsafeGet/UnsafePut.

Change-Id: Ib07cfc217c7825cff0b49cfbb9151452d62b1b68
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Support any cpu register sequence in LoadArgRegs

The LoadArgRegs was designed only for case when
arg1.reg < arg2.reg < arg3.reg which is not true for x86_64 ABI.
Now LoadArgRegs supports three args passed by any cpu register.

Change-Id: I62f58c47ec12b8e3f8124724cb3b5371dde8173f
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Fix special getter/setter to use RegClassForFieldLoadStore().

This ensures correct register class is used for volatile
load/store in these getters and setters.

Bug: 14112919
Change-Id: Ib7aa83d441fb007e97f9acc2a778bc20ffed837c
Merge "Fix special getter/setter to use RegClassForFieldLoadStore()."
Merge "x86_64: Handle UnsafeGet/Put equal to x86"
Merge "Support any cpu register sequence in LoadArgRegs"
Add a compilation tracing mechanism to the new compiler.

Code mostly imported from: https://android-review.googlesource.com/#/c/81653/.

Change-Id: I150fe942be0fb270e03fabb19032180f7a065d13
Merge "Add a compilation tracing mechanism to the new compiler."
Remove ISA from boot image name.

Partially reverts b9beb2e2efb6a204a69ca660d478b45f851e8f09

Bug: 14882223

(cherry picked from commit 3da44327c8306bb354c0163a7c7779dea6eeb38a)

Change-Id: Idc9266a97d1047434c110ef140e2f2708c4aadef
Merge "Remove ISA from boot image name."
Declare variable for all art dex tests.

Change-Id: Icd073e99ebf6bc8eb2bcc715685b0def9d133b85
Ensure JNI primitive array type is appropriate.

Check the primitive array type for GetPrimitiveArray, ReleasePrimitiveArray,
GetPrimitiveArrayRegion and SetPrimitiveArrayRegion matches the given array
type. Check the GetPrimitiveArrayCritical and ReleasePrimitiveArrayCritical are
given a primitive array.
Add unit tests that null parameters lead to fatal errors, not crashes. Fix
issues where CheckJNI assumed non-null arguments.
Tidy testing code via the use of nullptr. Add a few extra checks.
Ensure arrays of void are not able to be created, use RI compatible
NoClassDefError.

Bug: 14817823

Change-Id: I9903bcd800d0da1988ced07f61fb97b783c5deab
Merge "Ensure JNI primitive array type is appropriate."
Address comments from HandleScope change.

For:
https://android-review.googlesource.com/#/c/93793

Change-Id: I020d22a1508bf4f1770e6806d70e4fbb9a0fa0ab
64-bit build fix.

sizeof vs jlong comparison.

Change-Id: I6d9377e71169911201b2342d914ac014eb9c0b4a
Merge "64-bit build fix."
Merge "Address comments from HandleScope change."
ART: Fix PWD in oat tests

PWD is not correct when OUT_DIR_COMMON_BASE is set to build into
a different out directory. Replace with $(realpath X).

Change-Id: I050bb859271c21ee1ecabbacd8c40669ae34accb