x86: Fix assembler for Pextr

Pextr family instructions use r/m part of rmod byte as destination.
This should be handled appropriately.
Disassembler works correctly.

Change-Id: I89d00cb11ae792e9d28c178ba79a0bc1fa27e3c5
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Revert "Revert "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: I3aadb12a787164146a95bc314e85fa73ad91e12b
1. Fix CFI for quick compiled code in x86 & x86_64;
2. Emit CFI in .eh_frame instead of .debug_frame.

With CFI, we can correctly unwind past quick generated code.
Now gdb should unwind to main() for both x86 & x86_64 host-side ART.

Note that it does not work with relocation yet.

Testing:
1. art/test/run-test --host --gdb [--64] --no-relocate 005
2. In gdb, run 'b art_quick_invoke_stub', then 'r', then 'c' a few times
3. In gdb, run 'bt'. You should see stack frames down to main()

Change-Id: I5350d4097dc3d360a60cb17c94f1d02b99bc58bb
Merge "1. Fix CFI for quick compiled code in x86 & x86_64; 2. Emit CFI in .eh_frame instead of .debug_frame."
ART: Build fix

Make lint happy, as comments should be separated from code.

Change-Id: I4bfd88357302be9a6a104f1152e3b1fda386371e
Merge "ART: Build fix"
Reduce time and memory usage of GVN.

Filter out dead sregs in GVN. Reclaim memory after each LVN
in the GVN modification phase.

Bug: 16398693
Change-Id: I8c88c3009663754e1b66c0ef3f62c3b93276e385
Merge "Reduce time and memory usage of GVN."
Make ImageSpace skip validation if we are using a relocated image

Change-Id: I0682d1870f5b3e27adb9c9de803fbb7d364ad00d
Merge "Make ImageSpace skip validation if we are using a relocated image"
Add read barriers for the roots in the verifier.

Note: Because the roots (the class references in RegType objects) can
be updated by the read barriers, a lot of uses of type "const RegType"
were replaced with "RegType".

Bug: 12687968
Change-Id: I6cf37a87f352938d43fb51560a8d927ada104f50
Merge "Add read barriers for the roots in the verifier."
ART: LoadConstWide should clobber temp reg

If we have 2+ LoadConstWide(FP) calls in one method it is possible
that LoadConstWide will load the method poiner only once. In some
cases, for example, if we have branches, initialization might not be
done and it may lead to a segmentation fault.

Change-Id: If45fc2d1109d7ce9bd272f5c56446b2a6884daac
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
Merge "ART: LoadConstWide should clobber temp reg"
Fix image not regenerating on changes to bootclasspath

Bug: 16367410
Change-Id: I10e81d068ffc2ab712a287f88ef67f6a1be4df4c
Merge "Fix image not regenerating on changes to bootclasspath"
ART: Correct disassembling of 64bit immediates on x86_64

The patch fixes an issue with disassembling 'movsxd' and 'movabsq'
instructions altered with 64bit immediates: not only a REX.W prefix
may be prepended to these instructions.

Change-Id: Ida7c7b368327a6b5cae1ff12ec00ceb0769c0a3d
Signed-off-by: Vladimir Kostyukov <vladimir.kostyukov@intel.com>
Move from dalvik.vm.image-dex2oat-flags to dalvik.vm.dex2oat-filter [art]

This will allow us to conditionally change the compiler-filter based on other properties.

Bug: 15165413
Change-Id: I6877a6eab221ab142909b595fd28191b5d3a095b
Move image classes options from art to AndroidRuntime [art]

Bug: 15165413
Change-Id: I3dfa702ac29279cf76d4cc451138c03a5158ac3a
X86: Assembler: Correct r8_form for some cases

Set r8_form to false for instruction formats that don't reference
registers.

Change-Id: Ib01edef4ef7f22de25a31dc4207889bff97d163d
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>