Make all registers available when allocating an output register.

On ARM we currently only have two register pairs available, so we
need to use one already used for an input.

Change-Id: I5411862310009a41e50ddab3549d3a9e9052266a
ART: Add a last item in the MIROptimizationFlagPositions enumeration

- Added a last item in the enumeration in order to be able to notice
  when an extended MIR opcode is beyond the last one known to libart, and hence
  must be an opcode added by code from a plugin.
- Fixed the naming typo of the enumeration.

Change-Id: I0e021ba54b0e60531338f23ca0ab64755e15229b
Signed-Off-By: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
Create stack traces in unstarted runtimes.

Use to diagnose failed initialization in dex2oat of boot (-verbose:compiler).
Fix identity hashCode, ArtMethod.getMethodName, IntegralToString.convertInt and
use of Void when called from a unstarted runtime.

Change-Id: I2d536174b59e2e5f19519f93fc6b5916652fb6cd
ART: ARM64 art_quick_string_compareto

A simple implementation of the assembly stub for ARM64.

Make the string_compareto test in stub_test more interesting by
having strings with offsets in their backing arrays.

Change-Id: Ibc3a1bdb70e3764baa6b8e793987166c67b6fb39
Merge "Create stack traces in unstarted runtimes."
Merge "ART: ARM64 art_quick_string_compareto"
Implement field entrypoints for x86-64

This adds some stubs related to fields access.

Change-Id: Ie950624fb2d00475cb2018c9c3d0a12ebd892b12
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
Quick compiler: allocate doubles as doubles

Significant refactoring of register handling to unify usage across
all targets & 32/64 backends.

Reworked RegStorage encoding to allow expanded use of
x86 xmm registers; removed vector registers as a separate
register type.  Reworked RegisterInfo to describe aliased
physical registers.  Eliminated quite a bit of target-specific code
and generalized common code.

Use of RegStorage instead of int for registers now propagated down
to the NewLIRx() level.  In future CLs, the NewLIRx() routines will
be replaced with versions that are explicit about what kind of
operand they expect (RegStorage, displacement, etc.).  The goal
is to eventually use RegStorage all the way to the assembly phase.

TBD: MIPS needs verification.
TBD: Re-enable liveness tracking.

Change-Id: I388c006d5fa9b3ea72db4e37a19ce257f2a15964
Merge "Quick compiler: allocate doubles as doubles"
Handle implicit stack overflow without affecting stack walks

This changes the way in which implicit stack overflows are handled
to satisfy concerns about changes to the stack walk code.

Instead of creating a gap in the stack and checking for it in
the stack walker, use the ManagedStack infrastructure to concoct
an invisible gap that will never be seen by a stack walk.

Also, this uses madvise to tell the kernel that the main stack's
protected region will probably never be accessed, and instead
of using memset to map the pages in, use memcpy to read from
them.  This will save 32K on the main stack.

Also adds a 'signals' verbosity level as per a review request.

Bug: 14066862
Change-Id: I5257305feeaea241d11e6aa6f021d2a81da20b81
x86_64: Fix Array::DataOffset in calls

Calculates offset using utility function

Change-Id: I19339537f4458dcae931897f4ee282f5c40746d2
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Add some debugging info for bug 14469172.

Change-Id: Iba7d47b6a697ab61e10dfc9e1c2b8fde24af27be
Merge "Add some debugging info for bug 14469172."
Merge "x86_64: Fix Array::DataOffset in calls"
Add RecordFree to the GarbageCollector interface

RecordFree now calls the Heap::RecordFree as well as updates the
garbage collector's internal bytes freed accounting.

Change-Id: I8cb03748b0768e3c8c50ea709572960e6e4ad219
Merge "Add RecordFree to the GarbageCollector interface"
Merge "Implement field entrypoints for x86-64"
x86_64: Fix frame size calculation for 64-bit

Calculate frame size in the same way as calculated in patch
"64bit changes to the stack walker for the Quick ABI"

Change-Id: I8c2458f5973536a84f3fd6ad56167b5cfafa9ab4
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Merge "x86_64: Fix frame size calculation for 64-bit"
ART: Use utils.h::RoundUp instead of explicit bit-fiddling

Change-Id: I249a2cfeb044d3699d02e13d42b8e72518571640