OSDN Git Service

android-x86/art.git
9 years agoAdd --include-cfi compiler option.
David Srbecky [Sun, 12 Apr 2015 10:40:39 +0000 (11:40 +0100)]
Add --include-cfi compiler option.

Decouple generation of CFI from the rest of debug symbols.
This makes it possible to generate oat with CFI but without
the rest of debug symbols.

This is in line with intention of the .eh_frame section.
The section does not have the .debug_ prefix because it
is considered somewhat different to the rest of debug symbols.

Change-Id: I32816ecd4f30ac4e0dc69d69a4993e349c737f96

9 years agoMerge "Remove the --gen-gdb-info compiler option."
David Srbecky [Mon, 13 Apr 2015 20:00:53 +0000 (20:00 +0000)]
Merge "Remove the --gen-gdb-info compiler option."

9 years agoMerge "Whitespace cleanup in DWARFReg helper functions."
David Srbecky [Mon, 13 Apr 2015 20:00:39 +0000 (20:00 +0000)]
Merge "Whitespace cleanup in DWARFReg helper functions."

9 years agoMerge "Move 'ret' instruction generation inside GenerateFrameExit."
David Srbecky [Mon, 13 Apr 2015 20:00:25 +0000 (20:00 +0000)]
Merge "Move 'ret' instruction generation inside GenerateFrameExit."

9 years agoMerge "Relocate DWARF using .oat_patches."
David Srbecky [Mon, 13 Apr 2015 19:52:39 +0000 (19:52 +0000)]
Merge "Relocate DWARF using .oat_patches."

9 years agoMerge "Exercise the x86 and x86-64 FILD and FISTP instructions."
Roland Levillain [Mon, 13 Apr 2015 17:50:33 +0000 (17:50 +0000)]
Merge "Exercise the x86 and x86-64 FILD and FISTP instructions."

9 years agoMerge "ART: Clean up includes."
Vladimir Marko [Mon, 13 Apr 2015 17:10:48 +0000 (17:10 +0000)]
Merge "ART: Clean up includes."

9 years agoMerge "JDWP: fix thread_list deadlock"
Sebastien Hertz [Mon, 13 Apr 2015 17:04:58 +0000 (17:04 +0000)]
Merge "JDWP: fix thread_list deadlock"

9 years agoExercise the x86 and x86-64 FILD and FISTP instructions.
Roland Levillain [Mon, 13 Apr 2015 16:00:20 +0000 (17:00 +0100)]
Exercise the x86 and x86-64 FILD and FISTP instructions.

- Ensure the double- and quadword x87 (FPU) instructions for
  integer loading (resp. fildl and fildll) are properly
  generated by the x86 and x86-64 generators (resp.
  X86Assembler::filds/X86_64Assembler::filds and
  X86Assembler::fildl/X86_64Assembler::fildl).
- Ensure the double- and quadword x87 (FPU) instructions for
  integer storing & popping (resp. filstpl and fistpll) are
  properly generated by the x86 and x86-64 generators (resp.
  X86Assembler::fistps/X86_64Assembler::fistps and
  X86Assembler::fistpl/X86_64Assembler::fistpl).

These instructions can be used in the implementation of the
long-to-float and long-to-double Dex type conversions.

Change-Id: Iade52a9aee326d189d77d3dbd352a2b5dab52e46

9 years agoART: Clean up includes.
Vladimir Marko [Mon, 13 Apr 2015 11:22:36 +0000 (12:22 +0100)]
ART: Clean up includes.

Reduce dependencies to improve incremental build times.
Break up circular dependency involving class_linker-inl.h.

Change-Id: I4be742c5c2b5cd9855beea86630fd68aab76b0db

9 years agoMerge "Remove duplicated dex2oat usage message"
Nicolas Geoffray [Mon, 13 Apr 2015 14:26:25 +0000 (14:26 +0000)]
Merge "Remove duplicated dex2oat usage message"

9 years agoMerge "Revert "Fallback to quick in case of soft verification errors""
Calin Juravle [Mon, 13 Apr 2015 14:26:18 +0000 (14:26 +0000)]
Merge "Revert "Fallback to quick in case of soft verification errors""

9 years agoRevert "Fallback to quick in case of soft verification errors"
Calin Juravle [Mon, 13 Apr 2015 14:25:53 +0000 (14:25 +0000)]
Revert "Fallback to quick in case of soft verification errors"

This reverts commit c751d37e692d89b360f3c09421401f581b5c6d06.

Change-Id: I2183df8e856410989bc019f6a1f58af37d5d7eab

9 years agoRemove duplicated dex2oat usage message
Snowcat8436 [Mon, 13 Apr 2015 13:48:57 +0000 (22:48 +0900)]
Remove duplicated dex2oat usage message

Because '--huge-method-max' usage message is duplicated,
Remove duplicated dex2oat usage message.

Change-Id: I91cef8319d7292e4977eba49dfcb8cc2cd9ac1bf

9 years agoMerge "Fallback to quick in case of soft verification errors"
Calin Juravle [Mon, 13 Apr 2015 13:10:37 +0000 (13:10 +0000)]
Merge "Fallback to quick in case of soft verification errors"

9 years agoMerge "Revert "Optimizing: Fix long-to-fp conversion on x86.""
Nicolas Geoffray [Mon, 13 Apr 2015 12:53:56 +0000 (12:53 +0000)]
Merge "Revert "Optimizing: Fix long-to-fp conversion on x86.""

9 years agoRevert "Optimizing: Fix long-to-fp conversion on x86."
Nicolas Geoffray [Mon, 13 Apr 2015 12:53:37 +0000 (12:53 +0000)]
Revert "Optimizing: Fix long-to-fp conversion on x86."

Test fails on arm.

This reverts commit 2d45b4df3838d9c0e5a213305ccd1d7009e01437.

Change-Id: Id2864917b52f7ffba459680303a2d15b34f16a4e

9 years agoMerge "Optimizing: Fix long-to-fp conversion on x86."
Roland Levillain [Mon, 13 Apr 2015 11:33:08 +0000 (11:33 +0000)]
Merge "Optimizing: Fix long-to-fp conversion on x86."

9 years agoOptimizing: Fix long-to-fp conversion on x86.
Serguei Katkov [Tue, 7 Apr 2015 11:04:50 +0000 (17:04 +0600)]
Optimizing: Fix long-to-fp conversion on x86.

long-to-fp conversion implemented using SSE loses the precision.
The test is included. CL uses FPU to provide the correct result.

Change-Id: I8eaf3c46819a8cb52642a7e7d7c4e3e0edbc88db
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
9 years agoMerge "ART: Adds a help message for parallel compilation"
Nicolas Geoffray [Mon, 13 Apr 2015 09:19:04 +0000 (09:19 +0000)]
Merge "ART: Adds a help message for parallel compilation"

9 years agoMerge "ART: Ignore result for exception-case JNIEndWithReference"
Andreas Gampe [Sun, 12 Apr 2015 20:23:38 +0000 (20:23 +0000)]
Merge "ART: Ignore result for exception-case JNIEndWithReference"

9 years agoRemove the --gen-gdb-info compiler option.
David Srbecky [Sun, 12 Apr 2015 08:52:31 +0000 (09:52 +0100)]
Remove the --gen-gdb-info compiler option.

It is never used.  We generally use --include-debug-symbols instead.

Change-Id: I933495cd85ab4f7dfcf3ef3cd2d943d4b870ffeb

9 years agoWhitespace cleanup in DWARFReg helper functions.
David Srbecky [Sun, 12 Apr 2015 08:35:32 +0000 (09:35 +0100)]
Whitespace cleanup in DWARFReg helper functions.

Change-Id: Iedc05969b05be6d93e40467ff23287faaae08fb3

9 years agoMove 'ret' instruction generation inside GenerateFrameExit.
David Srbecky [Sun, 12 Apr 2015 08:27:43 +0000 (09:27 +0100)]
Move 'ret' instruction generation inside GenerateFrameExit.

Change-Id: I0c594d9a2356a006a5ce8dfd41d307cf7c3704ba

9 years agoRelocate DWARF using .oat_patches.
David Srbecky [Fri, 10 Apr 2015 23:17:53 +0000 (00:17 +0100)]
Relocate DWARF using .oat_patches.

The current solution is to hard-code knowledge of DWARF in the linker.
This works for simple use of DWARF, but breaks as soon as I try to do
anything more complex.  Making the linker fully support DWARF would be
non-trivial task and would be essentially rewrite.  Using .oat_patches
is much easier solution.

Relocating .debug_* sections required extending .oat_patches to support
more sections than just .text.  I have encoded each section as
null-terminated section name followed by ULEB128 deltas.

The ULEB128 encoding shrinks .oat_patches for .text by factor of
about 6 with 64-bit compiler, and factor of 3 with 32-bit compiler.

On the other hand, it grows by the extra .oat_patches for DWARF which
were not present before (if debug symbols are included).

Overall, it is still a clear improvement even with the DWARF patches.

Change-Id: I78ffeda0f8a3da03341995a3b5ef15c954e16e9f

9 years agoART: Ignore result for exception-case JNIEndWithReference
Andreas Gampe [Sat, 11 Apr 2015 02:57:29 +0000 (19:57 -0700)]
ART: Ignore result for exception-case JNIEndWithReference

The value may not contain a valid jobject, so ignore and use null
directly.

Refactor a bit to have one common function for both synchronized
and non-synchronized case.

Add a test to the JNI compiler tests.

Bug: 18135031
Change-Id: If2f004a112f36f4ff68172a946dec67ce561ae4d

9 years agoMerge "ART: Add Array.createObjectArray to unstarted runtime"
Andreas Gampe [Fri, 10 Apr 2015 22:35:34 +0000 (22:35 +0000)]
Merge "ART: Add Array.createObjectArray to unstarted runtime"

9 years agoART: Add Array.createObjectArray to unstarted runtime
Andreas Gampe [Fri, 10 Apr 2015 21:57:10 +0000 (14:57 -0700)]
ART: Add Array.createObjectArray to unstarted runtime

Necessary for compile-time initialization of android.text.Layout.

Bug: 19542228
Change-Id: I4220c65fcc3a8aaa2765b6f07f1f81c330484244

9 years agoMerge "Revert "[optimizing] Improve x86 shifts""
Nicolas Geoffray [Fri, 10 Apr 2015 21:40:59 +0000 (21:40 +0000)]
Merge "Revert "[optimizing] Improve x86 shifts""

9 years agoMerge "Move ArtField to native"
Mathieu Chartier [Fri, 10 Apr 2015 21:22:55 +0000 (21:22 +0000)]
Merge "Move ArtField to native"

9 years agoMerge "ART: Fix failure-log script"
Andreas Gampe [Fri, 10 Apr 2015 20:14:01 +0000 (20:14 +0000)]
Merge "ART: Fix failure-log script"

9 years agoART: Fix failure-log script
Andreas Gampe [Fri, 10 Apr 2015 20:06:22 +0000 (13:06 -0700)]
ART: Fix failure-log script

The transaction error class has been changed, update the script.

Change-Id: Ibc4dfb8cdca01eb9dc9e868c18d36bf6badb0521

9 years agoMove ArtField to native
Mathieu Chartier [Fri, 27 Mar 2015 21:35:38 +0000 (14:35 -0700)]
Move ArtField to native

Add linear alloc. Moved ArtField to be native object. Changed image
writer to put ArtFields after the mirror section.

Savings:
2MB on low ram devices
4MB on normal devices

Total PSS measurements before (normal N5, 95s after shell start):
Image size: 7729152 bytes
23112 kB: .NonMoving
23212 kB: .NonMoving
22868 kB: .NonMoving
23072 kB: .NonMoving
22836 kB: .NonMoving
19618 kB: .Zygote
19850 kB: .Zygote
19623 kB: .Zygote
19924 kB: .Zygote
19612 kB: .Zygote
Avg: 42745.4 kB

After:
Image size: 7462912 bytes
17440 kB: .NonMoving
16776 kB: .NonMoving
16804 kB: .NonMoving
17812 kB: .NonMoving
16820 kB: .NonMoving
18788 kB: .Zygote
18856 kB: .Zygote
19064 kB: .Zygote
18841 kB: .Zygote
18629 kB: .Zygote
3499 kB: .LinearAlloc
3408 kB: .LinearAlloc
3424 kB: .LinearAlloc
3600 kB: .LinearAlloc
3436 kB: .LinearAlloc
Avg: 39439.4 kB

No reflection performance changes.

Bug: 19264997
Bug: 17643507

Change-Id: I10c73a37913332080aeb978c7c94713bdfe4fe1c

9 years agoMerge "ART: Refactor CompileOptimized"
Andreas Gampe [Fri, 10 Apr 2015 19:14:24 +0000 (19:14 +0000)]
Merge "ART: Refactor CompileOptimized"

9 years agoMerge "Avoid using dex cache array pointers in libart."
Vladimir Marko [Fri, 10 Apr 2015 18:22:10 +0000 (18:22 +0000)]
Merge "Avoid using dex cache array pointers in libart."

9 years agoRevert "[optimizing] Improve x86 shifts"
Roland Levillain [Fri, 10 Apr 2015 18:12:48 +0000 (18:12 +0000)]
Revert "[optimizing] Improve x86 shifts"

This reverts commit 222fcf96c9b73bbb739012575e7e413caf9348ec.

Reverting this CL as it is breaking a few tests (see http://build.chromium.org/p/client.art/builders/host-x86/builds/3251/steps/test%20optimizing/logs/stdio).  Will investigate ASAP.

Change-Id: Iddd8363e83a24aa49fbdf0f0c9dc12e63b4848de

9 years agoART: Refactor CompileOptimized
Andreas Gampe [Fri, 10 Apr 2015 17:49:32 +0000 (10:49 -0700)]
ART: Refactor CompileOptimized

Factor out register allocation. Both Clang and GCC inline the
function, but it changes how Clang stack-allocates enough so
that the resulting frame size is below our limit.

Bug: 20139216
Change-Id: I2cf393aed70f2ce0556252b61ae639aacab6f3a7

9 years agoAvoid using dex cache array pointers in libart.
Vladimir Marko [Thu, 9 Apr 2015 13:13:13 +0000 (14:13 +0100)]
Avoid using dex cache array pointers in libart.

In preparation for making dex cache arrays native, avoid
using them in Java code.

This causes a performance regression for our reflection
benchmarks. Class_getDeclaredMethod and Class_getMethod
take an up to 30% hit, measured using the Quick compiler.
We accept this hit at this stage and we will tune the
performance after we're done with the larger effort.

Companion libcore/ change:
    https://android-review.googlesource.com/146069

Bug: 20134538
Change-Id: Ibbef3b50043a1311cd40723ed42e1f1c609b8fc1

9 years agoFallback to quick in case of soft verification errors
Calin Juravle [Wed, 1 Apr 2015 19:27:28 +0000 (20:27 +0100)]
Fallback to quick in case of soft verification errors

Add a regression test: using uninitialized values triggers a soft
verification error and optimizing should not crash.

Thanks to Stephen Kyle (stephenckyle@googlemail.com) for the bug report.

Bug: 19988704

Change-Id: I2493f737efd3fad72f6b41fb60eff1d3731613fb

9 years agoMerge "ART: Remove WriteElf from Compiler"
Andreas Gampe [Fri, 10 Apr 2015 16:47:48 +0000 (16:47 +0000)]
Merge "ART: Remove WriteElf from Compiler"

9 years agoART: Remove WriteElf from Compiler
Andreas Gampe [Fri, 10 Apr 2015 16:28:22 +0000 (09:28 -0700)]
ART: Remove WriteElf from Compiler

As Portable is gone, we only have one elf_writer left. It also
allows to put the decision for 32b vs 64b ELF into a central
point.

Change-Id: Iae67d06df85268b3f0ee5725abc65edd23eb2499

9 years agoMerge "Opt compiler: Instruction simplification for HAdd, HNeg, HNot, HSub."
Roland Levillain [Fri, 10 Apr 2015 16:20:23 +0000 (16:20 +0000)]
Merge "Opt compiler: Instruction simplification for HAdd, HNeg, HNot, HSub."

9 years agoOpt compiler: Instruction simplification for HAdd, HNeg, HNot, HSub.
Alexandre Rames [Thu, 9 Apr 2015 17:30:21 +0000 (18:30 +0100)]
Opt compiler: Instruction simplification for HAdd, HNeg, HNot, HSub.

Under assumptions for the 'cost' of each IR (eg. neither HAdd nor HSub
are faster than the other), transformations are only applied if they
(locally) cannot degrade the quality of the graph. The code could be
extended to look at uses of the IRs and detect more opportunities for
optimisations.  The optimisations in this patch do not look at other
uses for their inputs.

Change-Id: Ib60dab007af30f43421ef5bb55db2ec32fb8fc0c

9 years agoMerge "Follow up of "div/rem on x86 and x86_64", to tidy up the code a little."
Calin Juravle [Fri, 10 Apr 2015 16:15:07 +0000 (16:15 +0000)]
Merge "Follow up of "div/rem on x86 and x86_64", to tidy up the code a little."

9 years agoMerge "[optimizing] Improve x86 parallel moves/swaps"
Calin Juravle [Fri, 10 Apr 2015 16:12:12 +0000 (16:12 +0000)]
Merge "[optimizing] Improve x86 parallel moves/swaps"

9 years ago[optimizing] Improve x86 parallel moves/swaps
Mark Mendell [Wed, 1 Apr 2015 16:51:05 +0000 (12:51 -0400)]
[optimizing] Improve x86 parallel moves/swaps

Add a new constructor to ScratchRegisterScope that will supply a
register if there is a free one, but not spill to force one.  Use this
to generated alternate code that doesn't use a temporary, as the
spill/restore of a register generates extra instructions that aren't
necessary on x86.

Here is the benefit for a 32 bit memory-to-memory exchange with no
free registers:
<        50            push eax
<        53            push ebx
<  8B44244C            mov eax, [esp + 76]
<  8B5C246C            mov ebx, [esp + 108]
<  8944246C            mov [esp + 108], eax
<  895C244C            mov [esp + 76], ebx
<        5B            pop ebx
<        58            pop eax
---
>  FF742444            push [esp + 68]
>  FF742468            push [esp + 104]
>  8F44244C            pop [esp + 72]
>  8F442468            pop [esp + 100]

Avoid using xchg instruction, as it is slow on smaller processors.

Change-Id: Id29ee3abd998577baaee552d55d23e60ae0c7871
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
9 years agoMerge "[optimizing] Improve x86 shifts"
Roland Levillain [Fri, 10 Apr 2015 15:39:15 +0000 (15:39 +0000)]
Merge "[optimizing] Improve x86 shifts"

9 years agoMerge "Optimizing x86: Fix VisitArraySet for FP value"
Roland Levillain [Fri, 10 Apr 2015 14:15:37 +0000 (14:15 +0000)]
Merge "Optimizing x86: Fix VisitArraySet for FP value"

9 years agoMerge "[optimizing] Address x86_64 RIP patch comments"
Roland Levillain [Fri, 10 Apr 2015 13:46:09 +0000 (13:46 +0000)]
Merge "[optimizing] Address x86_64 RIP patch comments"

9 years ago[optimizing] Improve x86 shifts
Mark Mendell [Mon, 30 Mar 2015 18:13:30 +0000 (14:13 -0400)]
[optimizing] Improve x86 shifts

Support memory operands for integer shifts.  Generate better code for
long shifts by constants.

Change-Id: Icc92fa1b59cc280d4894af6f054e19b01977d5ce
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
9 years ago[optimizing] Address x86_64 RIP patch comments
Mark Mendell [Fri, 10 Apr 2015 00:42:42 +0000 (20:42 -0400)]
[optimizing] Address x86_64 RIP patch comments

Nicolas had some comments after the patch
https://android-review.googlesource.com/#/c/144100 had merged.  Fix the
problems that he found.

Change-Id: I40e8a4273997860db7511dc8f1986281b72bead2
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
9 years agoMerge "Fix checker tests in 458-checker-instruction-simplification."
Roland Levillain [Fri, 10 Apr 2015 11:07:18 +0000 (11:07 +0000)]
Merge "Fix checker tests in 458-checker-instruction-simplification."

9 years agoFix checker tests in 458-checker-instruction-simplification.
Alexandre Rames [Thu, 9 Apr 2015 14:21:41 +0000 (15:21 +0100)]
Fix checker tests in 458-checker-instruction-simplification.

Change-Id: I9931e1692117360b8396c0dd8d171c822f0aba3b

9 years agoFollow up of "div/rem on x86 and x86_64", to tidy up the code a little.
Guillaume Sanchez [Thu, 9 Apr 2015 20:12:15 +0000 (21:12 +0100)]
Follow up of "div/rem on x86 and x86_64", to tidy up the code a little.

Change-Id: Ibf39cbc8ac1d773599d70be2cb1e941674b60f1d

9 years agoOptimizing x86: Fix VisitArraySet for FP value
Serguei Katkov [Wed, 8 Apr 2015 07:26:09 +0000 (13:26 +0600)]
Optimizing x86: Fix VisitArraySet for FP value

Instruction generator expects to see FP value in XMM register,
so update location builder to follow this.

Change-Id: Idca4bb5cdb59249c77fcc6f76cdfcaba47222b3d
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
9 years agoMerge "Refine erratum 843419 check for linker workaround."
Vladimir Marko [Fri, 10 Apr 2015 08:46:20 +0000 (08:46 +0000)]
Merge "Refine erratum 843419 check for linker workaround."

9 years agoMerge "Move DWARF related code in ElfWriter to its own file."
David Srbecky [Fri, 10 Apr 2015 08:38:25 +0000 (08:38 +0000)]
Merge "Move DWARF related code in ElfWriter to its own file."

9 years agoMerge "Extend the DWARF library to support .debug_info section."
David Srbecky [Fri, 10 Apr 2015 08:37:00 +0000 (08:37 +0000)]
Merge "Extend the DWARF library to support .debug_info section."

9 years agoMove DWARF related code in ElfWriter to its own file.
David Srbecky [Thu, 9 Apr 2015 23:22:14 +0000 (00:22 +0100)]
Move DWARF related code in ElfWriter to its own file.

This is purely for organisation.  The DWARF related code
is becoming more complex and I do not want to keep mixing
it with the ElfWriter.  The ElfWriter probably should not
be dealing with the fine details of DWARF generation.

I intend to do much more work on DWARF in the future so
this situatuion would only get worse as the code grows.

The code could also use some refactoring and splitting.
However, I have mostly just moved it in this CL.

Change-Id: I6e3401a2b745ddf991b440ad7899ad7d4b921be6

9 years agoMerge "[MIPS] Refactoring code for disassembler"
Andreas Gampe [Thu, 9 Apr 2015 23:33:24 +0000 (23:33 +0000)]
Merge "[MIPS] Refactoring code for disassembler"

9 years agoMerge "ART: Use canonical location in dex2oat"
Andreas Gampe [Thu, 9 Apr 2015 23:07:00 +0000 (23:07 +0000)]
Merge "ART: Use canonical location in dex2oat"

9 years agoMerge "Add support for nested method verifiers"
Mathieu Chartier [Thu, 9 Apr 2015 23:03:45 +0000 (23:03 +0000)]
Merge "Add support for nested method verifiers"

9 years agoExtend the DWARF library to support .debug_info section.
David Srbecky [Wed, 8 Apr 2015 18:37:39 +0000 (19:37 +0100)]
Extend the DWARF library to support .debug_info section.

Change-Id: I9916abd8db227e7a73a3311294e675be5222a709

9 years agoMerge "Remove duplicate of DexFile::DecodeDebugInfo."
David Srbecky [Thu, 9 Apr 2015 22:39:32 +0000 (22:39 +0000)]
Merge "Remove duplicate of DexFile::DecodeDebugInfo."

9 years agoMerge "Fix memory leaks in the CFI tests."
David Srbecky [Thu, 9 Apr 2015 22:39:20 +0000 (22:39 +0000)]
Merge "Fix memory leaks in the CFI tests."

9 years agoFix memory leaks in the CFI tests.
David Srbecky [Thu, 9 Apr 2015 21:51:56 +0000 (22:51 +0100)]
Fix memory leaks in the CFI tests.

Change-Id: Icb98e4995731c7ac5f99d1be20b447161ea4c4bd

9 years agoMerge "ART: Fix indent in Mips backend"
Andreas Gampe [Thu, 9 Apr 2015 22:33:11 +0000 (22:33 +0000)]
Merge "ART: Fix indent in Mips backend"

9 years agoART: Fix indent in Mips backend
Andreas Gampe [Thu, 9 Apr 2015 22:30:51 +0000 (15:30 -0700)]
ART: Fix indent in Mips backend

Change-Id: Ib8bc6f6bf36079e0b6e4b65ceab8af7dedc60efc

9 years agoRemove duplicate of DexFile::DecodeDebugInfo.
David Srbecky [Tue, 7 Apr 2015 18:02:58 +0000 (19:02 +0100)]
Remove duplicate of DexFile::DecodeDebugInfo.

Call DexFile::DecodeDebugInfo instead of having a local copy.

Change-Id: I4f94fd56a81fea1a2d10d5a26b9650d6d7ff9448

9 years agoAdd support for nested method verifiers
Mathieu Chartier [Tue, 31 Mar 2015 21:59:59 +0000 (14:59 -0700)]
Add support for nested method verifiers

Can occur in the following scenario:
MethodVerifier::Verify -> MethodVerifier::GetStaticField ->
ResolveFieldJLS ->  ThrowNoSuchFieldError -> EnsureInitialized ->
VerifyClass

Also fixed another case where we can be requested to dump for ANR
while we are suspended in one of the AllowSuspension points.

Bug: 20140397

Change-Id: Ib17f6b98954caa5d1ea1c1dcde66091cc6d11c25

9 years agoMerge "Fix GenDivRemLit() for Mips."
Andreas Gampe [Thu, 9 Apr 2015 22:09:29 +0000 (22:09 +0000)]
Merge "Fix GenDivRemLit() for Mips."

9 years agoART: Use canonical location in dex2oat
Andreas Gampe [Thu, 9 Apr 2015 21:46:31 +0000 (14:46 -0700)]
ART: Use canonical location in dex2oat

To filter class-path dex files, use the canonical location, not
the location. That will correctly resolve relative vs absolute
paths.

Bug: 20133593
Change-Id: I894656cb6bef75cdaffb188987af0a3647c74ad6

9 years agoMerge "Fix build - the stack frame is too large."
David Srbecky [Thu, 9 Apr 2015 20:13:22 +0000 (20:13 +0000)]
Merge "Fix build - the stack frame is too large."

9 years agoFix build - the stack frame is too large.
David Srbecky [Thu, 9 Apr 2015 20:00:58 +0000 (21:00 +0100)]
Fix build - the stack frame is too large.

Change-Id: Icabad2e3ccbaa4783df6c18c60a206357398edc5

9 years agoMerge "Fix Mac compile error in debug_frame_writer.h"
David Srbecky [Thu, 9 Apr 2015 19:00:44 +0000 (19:00 +0000)]
Merge "Fix Mac compile error in debug_frame_writer.h"

9 years agoRefine erratum 843419 check for linker workaround.
Matteo Franchin [Thu, 2 Apr 2015 14:49:06 +0000 (15:49 +0100)]
Refine erratum 843419 check for linker workaround.

The check is extended to avoid patching sequences where the adrp
is followed by a load which can easily be proved to be aligned.

Change-Id: Ia5741e3d73bc143c29bf0e301f767012d7598171

9 years agoMerge "Quick: PC-relative loads from dex cache arrays on x86."
Vladimir Marko [Thu, 9 Apr 2015 18:40:37 +0000 (18:40 +0000)]
Merge "Quick: PC-relative loads from dex cache arrays on x86."

9 years agoFix Mac compile error in debug_frame_writer.h
David Srbecky [Thu, 9 Apr 2015 18:39:53 +0000 (19:39 +0100)]
Fix Mac compile error in debug_frame_writer.h

Change-Id: I1c5723348011570425cbe5cc1627cd9872020beb

9 years agoMerge "Implement CFI for Optimizing."
David Srbecky [Thu, 9 Apr 2015 17:27:31 +0000 (17:27 +0000)]
Merge "Implement CFI for Optimizing."

9 years agoMerge "[optimizing] Add RIP support for x86_64"
Roland Levillain [Thu, 9 Apr 2015 17:25:02 +0000 (17:25 +0000)]
Merge "[optimizing] Add RIP support for x86_64"

9 years agoMerge "ART: IRT refactor"
Andreas Gampe [Thu, 9 Apr 2015 17:15:22 +0000 (17:15 +0000)]
Merge "ART: IRT refactor"

9 years agoMerge "Implement CFI for JNI."
David Srbecky [Thu, 9 Apr 2015 16:47:14 +0000 (16:47 +0000)]
Merge "Implement CFI for JNI."

9 years agoMerge "x86_64: Fix the rex prefix for movzxb, movsxb, movb"
Andreas Gampe [Thu, 9 Apr 2015 16:41:55 +0000 (16:41 +0000)]
Merge "x86_64: Fix the rex prefix for movzxb, movsxb, movb"

9 years agoMerge "Fix for incorrect parse of PEXTRW instruction"
Andreas Gampe [Thu, 9 Apr 2015 16:40:40 +0000 (16:40 +0000)]
Merge "Fix for incorrect parse of PEXTRW instruction"

9 years agoART: IRT refactor
Andreas Gampe [Wed, 8 Apr 2015 17:26:16 +0000 (10:26 -0700)]
ART: IRT refactor

IRT creation might fail. Add a path that allows to bypass the aborts
and instead signal validity. Hide this path with a private constructor,
rewrite users to use a static Create method.

Bug: 20110201

Change-Id: I440499c3372cd7557eb970b70ce2c4543da520e4

9 years agoMerge "Add test cases to make sure GenDivRemLit() handles 16-bit constants correctly."
Andreas Gampe [Thu, 9 Apr 2015 16:04:55 +0000 (16:04 +0000)]
Merge "Add test cases to make sure GenDivRemLit() handles 16-bit constants correctly."

9 years agoAdd test cases to make sure GenDivRemLit() handles 16-bit
Douglas Leung [Wed, 8 Apr 2015 22:53:58 +0000 (15:53 -0700)]
Add test cases to make sure GenDivRemLit() handles 16-bit
constants correctly.

Change-Id: Idb4aee8b98dc908cb28887e96254f8c254ad7d4d

9 years agoMerge "Test DexOptStatus enum values match DexFile values."
Richard Uhler [Thu, 9 Apr 2015 15:59:02 +0000 (15:59 +0000)]
Merge "Test DexOptStatus enum values match DexFile values."

9 years agoTest DexOptStatus enum values match DexFile values.
Richard Uhler [Wed, 8 Apr 2015 20:17:29 +0000 (13:17 -0700)]
Test DexOptStatus enum values match DexFile values.

Change-Id: Id480fa3f273ff0ce3ec806749f26bfb5a995bc4a

9 years agoMerge "Implement CFI for Quick."
David Srbecky [Thu, 9 Apr 2015 15:52:20 +0000 (15:52 +0000)]
Merge "Implement CFI for Quick."

9 years agoImplement CFI for Optimizing.
David Srbecky [Tue, 7 Apr 2015 19:32:43 +0000 (20:32 +0100)]
Implement CFI for Optimizing.

CFI is necessary for stack unwinding in gdb, lldb, and libunwind.

Change-Id: I1a3480e3a4a99f48bf7e6e63c4e83a80cfee40a2

9 years ago[optimizing] Add RIP support for x86_64
Mark Mendell [Fri, 27 Mar 2015 01:07:46 +0000 (21:07 -0400)]
[optimizing] Add RIP support for x86_64

Support a constant area addressed using RIP on x86_64. Use it for FP
operations to avoid loading constants into a CPU register and moving
to a XMM register.

Change-Id: I58421759ef2a8475538876c20e696ec787015a72
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
9 years agoMerge "Rename isDexOptNeededInternal and add kSelfPatchOatNeeded"
Richard Uhler [Thu, 9 Apr 2015 14:13:29 +0000 (14:13 +0000)]
Merge "Rename isDexOptNeededInternal and add kSelfPatchOatNeeded"

9 years agoMerge "Speedup div/rem by constants on x86 and x86_64"
Calin Juravle [Thu, 9 Apr 2015 12:46:58 +0000 (12:46 +0000)]
Merge "Speedup div/rem by constants on x86 and x86_64"

9 years agoSpeedup div/rem by constants on x86 and x86_64
Guillaume Sanchez [Mon, 30 Mar 2015 16:55:45 +0000 (17:55 +0100)]
Speedup div/rem by constants on x86 and x86_64

This is done using the algorithms in Hacker's Delight chapter 10.

Change-Id: I7bacefe10067569769ed31a1f7834f796fb41119

9 years agoMerge "Opt compiler: ARM64: Use TBZ and TBNZ in VisitIf."
Roland Levillain [Thu, 9 Apr 2015 11:14:45 +0000 (11:14 +0000)]
Merge "Opt compiler: ARM64: Use TBZ and TBNZ in VisitIf."

9 years agoMerge "Exercise art::arm::Thumb2Assembler::StoreToOffset for word pairs."
Roland Levillain [Thu, 9 Apr 2015 10:59:36 +0000 (10:59 +0000)]
Merge "Exercise art::arm::Thumb2Assembler::StoreToOffset for word pairs."

9 years agoQuick: PC-relative loads from dex cache arrays on x86.
Vladimir Marko [Wed, 8 Apr 2015 19:51:48 +0000 (20:51 +0100)]
Quick: PC-relative loads from dex cache arrays on x86.

Rewrite all PC-relative addressing on x86 and implement
PC-relative loads from dex cache arrays. Don't adjust the
base to point to the start of the method, let it point to
the anchor, i.e. the target of the "call +0" insn.

Change-Id: Ic22544a8bc0c5e49eb00a75154dc8f3ead816989

9 years ago[MIPS] Refactoring code for disassembler
Goran Jakovljevic [Wed, 8 Apr 2015 14:26:05 +0000 (16:26 +0200)]
[MIPS] Refactoring code for disassembler

Code for mips64 is merged with code for mips.

Change-Id: I2e3f2118c69a189787ae8e7f09adb4ee5c0d00d9

9 years agox86_64: Fix the rex prefix for movzxb, movsxb, movb
Chao-ying Fu [Tue, 7 Apr 2015 23:03:04 +0000 (16:03 -0700)]
x86_64: Fix the rex prefix for movzxb, movsxb, movb

This patch sets the rex prefix for the source byte register of
movzxb, movsxb, and movb that has the destination memory operand,
when the register is SPL, BPL, SIL, DIL.

This patch adds tests for movzxb and movsxb via Repeatrb(),
and adds the tertiary and quaternary register views for word and
byte registers on x86_64.
TODO: Support tests with memory operands.

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