SetConstantWide should mark both SSA regs as constant

Without this change user have no chances to get the highest part
of wide reg using utility functions.

Change-Id: I2f56229ffb98276768a77c1e4a2913f288999328
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
ART: ReEnable check for a gap between method's arg "in" vregs and rest of its vregs

The Quick backend's runtime model includes a gap between a method's
argument ("in") vregs and the rest of its vregs.  Handling a range instruction
which spans the gap is somewhat complicated, and should not happen
in normal usage of dx. Punt to the interpreter if it happened.

This issue relates to https://code.google.com/p/android/issues/detail?id=66371
Which was fixed, but the problem returned after some changes in the verify
flags set for the range bytecodes.

Change-Id: I214f32e7b4227a450257f30607135930d0adff53
Signed-off-by: Katkov, Serguei I <serguei.i.katkov@intel.com>
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
ART: Special-case cb(n)z even for in-reg constant

Call out to OpCmpImmBranch in GenCompareAndBranch if the constant
is zero and we are testing == or !=, even when zero has been loaded
to a register already. This avoids a register size mismatch on 64b
architectures when basically doing a null check, and generally
squashes a cmp + branch to a cbz or cbnz on Arm and Mips. X86 is
not degraded.

Bug: 16562601
Change-Id: I1997760f43dc186a84247ad30ae91053f71d102d
Merge "ART: Special-case cb(n)z even for in-reg constant"
ART: Allow arrays with erroneous component type

Array classes must tolerate having component type classes that are
erroneous. Change CreateArrayClass to use LookupClass when FindClass
failed.

Bug: 16019155
Change-Id: Id4868c5498431c85c199aa3cbecd23566dce3601
Merge "ART: Allow arrays with erroneous component type"
ART: Native bridge command-line parameter

Add a command-line parameter for the native bridge library, slight
refactor/cleanup.

Add run-test 115 to test the native bridge interface. Currently the
tests are black-listed for the target, as the setup for the test
is too complicated in the current infrastructure.

Change-Id: I6ccf19485e8c30b96e9f2fd5425278cb1ebd403f
Merge "ART: Native bridge command-line parameter"
Merge "ART: ReEnable check for a gap between method's arg "in" vregs and rest of its vregs"
Merge "Enable Load Store Elimination for ARM and ARM64"
Merge "SetConstantWide should mark both SSA regs as constant"
Enable Load Store Elimination for ARM and ARM64

This patch refactors the implementation of the LoadStoreElimination
optimisation pass. Please note that this pass was disabled and not
functional for any of the backends.

The current implementation tracks aliases and handles DalvikRegs as well
as Heap memory regions. It has been tested and it is known to optimise
out the following:
  * Load - Load
  * Store - Load
  * Store - Store
  * Load Literals

Change-Id: Iefae9b696f87f833ef35c451ed4d49c5a1b6fde0
Revert "Enable Load Store Elimination for ARM and ARM64"

On extended testing, I'm seeing a CHECK failure at utility_arm.cc:1201.

This reverts commit fcc36ba2a2b8fd10e6eebd21ecb6329606443ded.

Change-Id: Icae3d49cd7c8fcab09f2f989cbcb1d7e5c6d137a
Merge "Revert "Enable Load Store Elimination for ARM and ARM64""
Remove the per-project FDO support. Use the common FDO support from build/core.
LOCAL_FDO_SUPPORT indicates if the module should enable FDO builds.

Change-Id: I1eab8bf418b7ceb060eea18bdd304a06597af3d3
Merge "Remove the per-project FDO support. Use the common FDO support from build/core. LOCAL_FDO_SUPPORT indicates if the module should enable FDO builds."
ART: Fix target test paths

Nativetest is now nativetest64 on 64b targets.

Change-Id: I4c4c6bba1a56525df2993708caaae3e6f7f5f2f6
Merge "ART: Fix target test paths"
Implement array get and array put in optimizing.

Also fix a couple of assembler/disassembler issues.

Change-Id: I705c8572988c1a9c4df3172b304678529636d5f6
Merge "Implement array get and array put in optimizing."