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
Merge "Fix reg type merging in the verifier"
Fix debugger crash in native method frames.

The main crash happens when we try to read (StackFrame::GetValues) or write
(StackFrame::SetValues) values in native frames. We use the method's vmap to
know where Dalvik registers live but native methods don't have vmap. The fix
is to reply with the OPAQUE_FRAME error which indicates local values are not
accessible in the frame.

We prevent from dereferencing null code item which causes some crashes too.
This happens when we compute the line table (Method::LineTable) and variable
table (Method::VariableTable) of methods without code: native, proxy and
abstract methods. We do not expect to encounter abstract methods though. We
take care of these kinds of method when mangling/demangling local value slots.

We also fix the location's pc of native and proxy frames where it must be -1
(as 8-byte value). We'll use this property to detect such frames in the JDWP
tests.

Bug: 13366758
Change-Id: I78e3263fbf2681b5573571c846390d52b9193849
Merge "Fix debugger crash in native method frames."
Class initialization check elimination.

Also, move null check elimination temporaries to the
ScopedArenaAllocator and reuse the same variables in the
class initialization check elimination.

Change-Id: Ic746f95427065506fa6016d4931e4cb8b34937af
Merge "Class initialization check elimination."
Test code generation for field accesses.

Bug: 11549140
Change-Id: I33e6fa16a7b53b61807395eb41b9c0483654137b
AArch64: Add memory allocation in low 4GB

MAP_32BIT is implemented for only x86_64. Other 64bit platforms
don't have an equivalent.

This is a unsophisticated implemention of a scheme using msync and
MAP_FIXED to reproduce the functionality of MAP_32BIT.

Adds MAP_FIXED to RemapAtEnd, as the address used for the new mmap
doesn't get located correctly without it on aarch64.

Add MemMap::next_mem_pos_ to store last position. Add a safety assert.

Change-Id: I61871ff7fc327554c43e1d7f448c3d376490f1ea
Merge "Test code generation for field accesses."
Merge "AArch64: Add memory allocation in low 4GB"
Quick typo fix in the 4GB lowmem code

Change-Id: I3371776b0468cd8690e3811c7a1e57f5444e9d8f
Merge "Quick typo fix in the 4GB lowmem code"
Merge https://android.googlesource.com/platform/art into aosp-staging