Fix reg type merging in the verifier

Fixes bad merging of float, long and double reg types with constant types. Adds
merging tests in reg_type_test.

Bug: https://code.google.com/p/android/issues/detail?id=66434
Bug: 13464407
Change-Id: I56761f5f5562b742d0ef9cc66b58d55f7b668949

Conflicts:
	runtime/verifier/reg_type_test.cc
Test code generation for field accesses.

Bug: 11549140
Change-Id: I33e6fa16a7b53b61807395eb41b9c0483654137b
ART change: Script is using function(), which is bash specific.

Change-Id: Ieb2a9674c95aafadbdb26c060f186f3f2d0f5e15
Fix lint error, and Makefile that could be confused with local files.

Change-Id: I780cc0d6593eadd6f82e1126d7ad445894af666c

Conflicts:
	compiler/optimizing/nodes.cc
Make test-art pass with heap reference poisoning enabled.

Heap reference poisoning is currently interpreter only. This change
disables one compiler driver test that actually invokes compiled code
if heap reference poisoning is enabled.

Bug: 12687968
Change-Id: Ia9516f4067d84e9a4de50d9ff44cfbe38f282d16

Conflicts:
	runtime/common_runtime_test.h
Do not send JDWP data in case of error.

When sending JDWP reply packet with an error, we want to ignore any data in the
buffer. While we reflect that in the packet's length (first 4 bytes), we used
to send all data in the buffer. This causes the receiver to read malformed JDWP
packet.

This CL adds "length" argument to JdwpNetStateBase::WritePacket so we control
the amount of data we send. If the reply has no error, it is set to the length
of the buffer. Otherwise it is the length of JDWP packet header indicating no
data is available.

Bug: 13366758
Change-Id: Ib72c10d5faf065fb44901c34b2732496b6667efa
Fix thread suspension in ObjectReference.MonitorInfo JDWP command.

Uses ThreadList::SuspendAll and ThreadList::ResumeAll to suspend/resume all
the threads so we collect monitor info while all threads are suspended.

Bug: 13528439
Change-Id: I81ad0698a759cae428aa6a0149dafda3db4cd198
Fix message in 083-compiler_regressions test

Fix test failure message to reflect expected result.

Change-Id: I75ae3e882671aa429ecb17487188720c19ff4d32

Conflicts:
	test/083-compiler-regressions/src/Main.java
Make all gc maps with 0 entries identical.

Change-Id: Ie4fee22ffed07d23d103f52e4ab39ef083678d85

Conflicts:
	compiler/gc_map_builder.h
HACK: force target art executables to be compiled for 32-bit

64-bit dex2oat doesn't support 32-bit targets yet, force all
art executables to compile 32-bit for now.

Change-Id: If69f0a45e55104a5e915a9c58afa9009aa68b71c

Conflicts:
	build/Android.executable.mk
Fix a libartd.so boot DCHECK failure with the GSS collector.

Bug: 11650816
Change-Id: Ibbdf1e66d2c1afe92351ee7a0ca84702bd07035d

Conflicts:
	runtime/gc/accounting/remembered_set.cc
Fix issue parsing implicit_checks property

It was missing the initial value.

Change-Id: Id7554c9286947791a46358b0c07339e4d0eac1ee

Conflicts:
	runtime/parsed_options.cc
Support inlining detection from debugger.

In the context of the compiler, every method and field should be resolved. The
InlineMethodAnalyser uses that property so we don't inline unresolved methods
or methods accessing unresolved fields. In the context of the debugger, this is
not true. We may install a breakpoint in a method that's never been resolved
yet for instance.

This CL weaks that property so we can detect getter/setter methods can be
inlined even if they're not resolved yet. To differentiate both contexts, we
pass a null inline method pointer to InlineMethodAnalyser::AnalyseIGetMethod.

Bug: 12187616
Change-Id: I247f315b9abd6b065d5a7ec4116de15a6cce7649

Conflicts:
	runtime/quick/inline_method_analyser.cc
Don't return null for null utf in AllocFromModifiedUtf8.

If you pass in a null utf string it should not be the same behavior
as out of memory.

This previously caused serious problems in:
https://android-review.googlesource.com/#/c/80768/

Change-Id: I9dfb710b57f6cc91064812f52a3db64254769461

Conflicts:
	runtime/mirror/string.cc
An argument is handled incorrectly for add-int/lit8 during optimization phase

Dalvik instruction 'add-int/lit8' stores a constant in the third parameter.
But during optimization phase the compiler reads the constant from the
second parameter. This is incorrect because it leads to wrong decision that
no array bound checks are needed in our test case. As a consequence it
fails with SIGSEGV because of accessing elements which are beyond the bounds.

Change-Id: I653892514934046d31a9e4d206d9d95ebb6267ab
Signed-off-by: nikolay serdjuk <nikolay.y.serdjuk@intel.com>

Conflicts:
	compiler/dex/local_value_numbering.cc
Fix missing link line for libgtest_host.

bug 13435344

Change-Id: If4197ddb97b235c731e4c771968eae46483d55b3

Conflicts:
	build/Android.gtest.mk
Revert "Don't return null for null utf in AllocFromModifiedUtf8."

This reverts commit 210e3ef6267870525aa7810d1cdeeb77b8d18784.
Fix imm5 and shift_type detection

Bug: 13628315
Change-Id: I8ff044cc18721b7ea50c75c796a2fb63a1e189f9
Fix host gtests compiled with gcc

(cherry picked from commit d016e1fab648093706f85cc78b63da0f3f487733)

Change-Id: I5d2b8061278fd5a477ec87395fca435a3da801a3
Fix CopyRegInfo to keep live/dirty flags of new registers.

CopyRegInfo should not change live/dirty flags of new registgers.
Otherwise, it will lead to incorrectly clobbering these live registers
that are not live actually, and then allocating them to another usage.

Change-Id: Ia9f055b33a11a6d70c0aca1a9fe8639ecfb09464
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>

Conflicts:
	test/083-compiler-regressions/expected.txt
	test/083-compiler-regressions/src/Main.java