OSDN Git Service

android-x86/art.git
10 years agox86_64: Turn on 64-bit core registers initialization.
Dmitry Petrochenko [Thu, 5 Jun 2014 14:15:08 +0000 (21:15 +0700)]
x86_64: Turn on 64-bit core registers initialization.

This enables 64-bit core registers initialization for x86_64.
The backend update with 64-bit temp support is in progress.

Change-Id: If7c9a62c1145f81050adda86f2beed427220baa2
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
10 years agoMerge "Avoid register pool allocations on the heap."
Vladimir Marko [Thu, 5 Jun 2014 12:16:01 +0000 (12:16 +0000)]
Merge "Avoid register pool allocations on the heap."

10 years agoAvoid register pool allocations on the heap.
Vladimir Marko [Thu, 5 Jun 2014 09:57:05 +0000 (10:57 +0100)]
Avoid register pool allocations on the heap.

Create a helper template class ArrayRef and use it instead
of std::vector<> for register pools in target_<arch>.cc to
avoid these heap allocations during program startup.

Change-Id: I4ab0205af9c1d28a239c0a105fcdc60ba800a70a

10 years agoMerge "ART: Add a test checking TLS offsets and entrypoints"
Andreas Gampe [Thu, 5 Jun 2014 07:11:39 +0000 (07:11 +0000)]
Merge "ART: Add a test checking TLS offsets and entrypoints"

10 years agoMerge "Fix reflection_test failures."
Ian Rogers [Thu, 5 Jun 2014 06:23:08 +0000 (06:23 +0000)]
Merge "Fix reflection_test failures."

10 years agoMerge "ART: Allocate ostreams on the heap in Oatdump::DumpOatMethod"
Andreas Gampe [Thu, 5 Jun 2014 06:09:46 +0000 (06:09 +0000)]
Merge "ART: Allocate ostreams on the heap in Oatdump::DumpOatMethod"

10 years agoART: Allocate ostreams on the heap in Oatdump::DumpOatMethod
Andreas Gampe [Thu, 5 Jun 2014 05:42:28 +0000 (22:42 -0700)]
ART: Allocate ostreams on the heap in Oatdump::DumpOatMethod

The stack frame size for this method is above our limits. Allocate
ostreams on the heap instead of on the stack.

Bug: 15278350
Change-Id: Ia94a1f7190b7c2ac096e100682e747334f1bf6cc

10 years agoMerge "Do not force unwind info to debug_frame."
Christopher Ferris [Thu, 5 Jun 2014 03:24:08 +0000 (03:24 +0000)]
Merge "Do not force unwind info to debug_frame."

10 years agoART: Add a test checking TLS offsets and entrypoints
Andreas Gampe [Thu, 5 Jun 2014 01:59:01 +0000 (18:59 -0700)]
ART: Add a test checking TLS offsets and entrypoints

Add a test (runtime for now, as compile-time checks seem not
possible with current infrastructure) that checks the structure
of the thread tls and entrypoint structs. A failure of the test
indicates a structural change, which hints at a necessary oat
version bump.

Change-Id: I500b5cd940c916ebfc1580e9dd2c287c4d263956

10 years agoDo not force unwind info to debug_frame.
Christopher Ferris [Thu, 5 Jun 2014 00:21:11 +0000 (17:21 -0700)]
Do not force unwind info to debug_frame.

The .cfi_sections directive was forcing unwind information into the
debug_frame, which is stripped out. This causes any unwinds done by
libunwind/debuggerd through these art functions to terminate prematurely.

Bug: 15350524
Change-Id: Id6abe7c7106132083bc894a77564b652a08566cb

10 years agoMerge "Fix GetOutVROffset to use correct Method* size."
buzbee [Wed, 4 Jun 2014 23:02:08 +0000 (23:02 +0000)]
Merge "Fix GetOutVROffset to use correct Method* size."

10 years agoFix GetOutVROffset to use correct Method* size.
buzbee [Wed, 4 Jun 2014 22:35:41 +0000 (15:35 -0700)]
Fix GetOutVROffset to use correct Method* size.

[Tip 'o the hat to Mark Mendell for noticing this one]

Use StackReference to find Method* size in GetOutVROffset.

Change-Id: Ie1b25eb839c59305cadc5fdc7cbb5f41f1a85686

10 years agoMerge "Enable -Wframe-larger-than=1728 compilation error"
Andreas Gampe [Wed, 4 Jun 2014 22:57:01 +0000 (22:57 +0000)]
Merge "Enable -Wframe-larger-than=1728 compilation error"

10 years agoEnable -Wframe-larger-than=1728 compilation error
Sebastien Hertz [Tue, 27 May 2014 13:27:58 +0000 (15:27 +0200)]
Enable -Wframe-larger-than=1728 compilation error

Bug: 15278350
Change-Id: I142dc9de0312ac1f8aa55a4bce86b5bb6722535f

10 years agoMerge "ART: Heap-allocate buffer in space_bitmap when on 64b arch"
Andreas Gampe [Wed, 4 Jun 2014 22:47:48 +0000 (22:47 +0000)]
Merge "ART: Heap-allocate buffer in space_bitmap when on 64b arch"

10 years agoART: Heap-allocate buffer in space_bitmap when on 64b arch
Andreas Gampe [Wed, 4 Jun 2014 22:25:28 +0000 (15:25 -0700)]
ART: Heap-allocate buffer in space_bitmap when on 64b arch

The stack frame size will be above our limit if we stack-allocate
a buffer.

Bug: 15278350
Change-Id: Ie1a31370538410d47c177f0a6e51879a1fc0752c

10 years agoMerge "art: -Wsystem-header warning"
Mark Salyzyn [Wed, 4 Jun 2014 19:27:12 +0000 (19:27 +0000)]
Merge "art: -Wsystem-header warning"

10 years agoMerge "Print mutexes held in Thread::Dump."
Mathieu Chartier [Wed, 4 Jun 2014 19:07:57 +0000 (19:07 +0000)]
Merge "Print mutexes held in Thread::Dump."

10 years agoPrint mutexes held in Thread::Dump.
Mathieu Chartier [Wed, 4 Jun 2014 18:23:58 +0000 (11:23 -0700)]
Print mutexes held in Thread::Dump.

Should help finding and fixing thread suspend timeout issues.

Bug: 15328839
Change-Id: I30a10529cec0716c7571a0318e9f66be54734fd8

10 years agoMerge "Fix compiler warnings."
Mathieu Chartier [Wed, 4 Jun 2014 18:23:35 +0000 (18:23 +0000)]
Merge "Fix compiler warnings."

10 years agoMerge "ART: Fix forbidden thread state change in interpreter"
Andreas Gampe [Wed, 4 Jun 2014 18:02:34 +0000 (18:02 +0000)]
Merge "ART: Fix forbidden thread state change in interpreter"

10 years agoART: Fix forbidden thread state change in interpreter
Andreas Gampe [Tue, 3 Jun 2014 05:05:22 +0000 (22:05 -0700)]
ART: Fix forbidden thread state change in interpreter

While loading a type for assignability, it might happen that it's
not available yet locally and must be resolved. Formerly, we
disallowed a state change to ensure no GC taking place while a new
shadow frame has not been pushed on the stack yet.

As a fix, allow a "shadow frame under construction" in the thread,
which is visited during GC.

Change-Id: I973487a46b0e9e21fd6d49099d713b58f06d3b45

10 years agoMerge "Use sendfile when copying profile file."
Calin Juravle [Wed, 4 Jun 2014 17:37:43 +0000 (17:37 +0000)]
Merge "Use sendfile when copying profile file."

10 years agoFix compiler warnings.
Mathieu Chartier [Tue, 3 Jun 2014 22:37:03 +0000 (15:37 -0700)]
Fix compiler warnings.

Added GetReference, GetHandle to StackHandleScope to prevent the
compiler from optimizing away these loads/stores from inline
functions.

Change-Id: I4db02dd3194665d844292e74e3a7d7c80e730e06

10 years agoUse sendfile when copying profile file.
Calin Juravle [Wed, 4 Jun 2014 11:01:50 +0000 (12:01 +0100)]
Use sendfile when copying profile file.

This removes the 4k stack allocation and allow to activate
-Wframe-larger-than=1728 compiler opion.

Bug: 15278350
Change-Id: I389ffe06feb3c1c1bf620e20164cca04a0594788

10 years agoMerge "Add missing preamble in switch-based interpreter"
Sebastien Hertz [Wed, 4 Jun 2014 15:24:52 +0000 (15:24 +0000)]
Merge "Add missing preamble in switch-based interpreter"

10 years agoMerge "AArch64: Fix cmp-long and method with long arguments."
Bill Buzbee [Wed, 4 Jun 2014 15:18:13 +0000 (15:18 +0000)]
Merge "AArch64: Fix cmp-long and method with long arguments."

10 years agoMerge "ART: x86_64 disassembler improvements"
Ian Rogers [Wed, 4 Jun 2014 15:12:40 +0000 (15:12 +0000)]
Merge "ART: x86_64 disassembler improvements"

10 years agoMerge "ART: Fix stub_test inline assembly for ARM64"
Andreas Gampe [Wed, 4 Jun 2014 15:10:23 +0000 (15:10 +0000)]
Merge "ART: Fix stub_test inline assembly for ARM64"

10 years agoMerge "ART: Make LOCAL_CLANG architecture dependent for the target"
Andreas Gampe [Wed, 4 Jun 2014 15:05:22 +0000 (15:05 +0000)]
Merge "ART: Make LOCAL_CLANG architecture dependent for the target"

10 years agoART: Make LOCAL_CLANG architecture dependent for the target
Andreas Gampe [Thu, 29 May 2014 09:09:33 +0000 (02:09 -0700)]
ART: Make LOCAL_CLANG architecture dependent for the target

Be selective for which target we compile with Clang. Currently we
only want to compile with Clang for ARM64, which means we need to
be careful about ARM, which is the second architecture for that.

Bug: 15014252

(cherry picked from commit 9689e3768621130b2536564f4e00fcb6b3d25df4)

Change-Id: I312e1caea08f2f3a20304b27f979d3c7b72b0a04

10 years agoMerge "Fix a bug in SSA construction."
Nicolas Geoffray [Wed, 4 Jun 2014 12:50:44 +0000 (12:50 +0000)]
Merge "Fix a bug in SSA construction."

10 years agoFix a bug in SSA construction.
Nicolas Geoffray [Wed, 4 Jun 2014 11:12:08 +0000 (12:12 +0100)]
Fix a bug in SSA construction.

If a join block does not have an incoming value for a local
from a predecessor block, we should not create a phi. The
verifier has made sure the local is updated before any
following reads after this block.

Change-Id: Id2785efc73c9fb3224826fff2f4b4ad215905ff4

10 years agoMerge "Fix a possible file descriptor leakage"
Calin Juravle [Wed, 4 Jun 2014 12:27:44 +0000 (12:27 +0000)]
Merge "Fix a possible file descriptor leakage"

10 years agoFix a possible file descriptor leakage
Calin Juravle [Tue, 3 Jun 2014 15:30:39 +0000 (16:30 +0100)]
Fix a possible file descriptor leakage

Bug: 15279918
Change-Id: I7909a53f9028d2f445fb97a0a4293f36b3c012dd

10 years agoAArch64: Fix cmp-long and method with long arguments.
Zheng Xu [Tue, 3 Jun 2014 08:22:23 +0000 (16:22 +0800)]
AArch64: Fix cmp-long and method with long arguments.

1. Fix cmp-long.
2. Use single register to pass long argument.
3. Flush StackReference<ArtMethod> on arm64 the same as in common code.
3. Fix the mismatch in calculate reg offset.

Change-Id: Ie2723260fb143512e4da6ee88d4f3aded80d3d5e

10 years agoAdd missing preamble in switch-based interpreter
Sebastien Hertz [Wed, 4 Jun 2014 07:41:21 +0000 (09:41 +0200)]
Add missing preamble in switch-based interpreter

Adds missing preamble for CONST_WIDE_HIGH16 instruction.

Change-Id: I80371d6f5e5d1b60c88837706dc139782776eefa

10 years agoART: x86_64 disassembler improvements
Vladimir Kostyukov [Fri, 30 May 2014 10:56:23 +0000 (17:56 +0700)]
ART: x86_64 disassembler improvements

This patch
 (a) enables full support of 64bit extended regs r8-r15,
     including 8bit r8l-r15l, 16bit r8w-r15w and also
     32bit r8d-r15d
 (b) fixes an issue with decoding reg from ModRM byte
     (REX.B should be used)
 (c) fixes an issue with decoding regs from SIB byte
     (regs that contain addr are target-specific)

Change-Id: I6bf3d7102780907b1cbe2a46927352ac0b506295
Signed-off-by: Vladimir Kostyukov <vladimir.kostyukov@intel.com>
10 years agoMerge "ART: Add another proxy test"
Andreas Gampe [Wed, 4 Jun 2014 03:04:27 +0000 (03:04 +0000)]
Merge "ART: Add another proxy test"

10 years agoFix reflection_test failures.
Douglas Leung [Tue, 3 Jun 2014 00:45:54 +0000 (17:45 -0700)]
Fix reflection_test failures.

This change also allows the Mips emulator to boot in interpreter mode.

Change-Id: Id1d5d65df79f65a747d37ddce6dd79906d1f4fcf
Signed-off-by: Douglas Leung <douglas@mips.com>
10 years agoART: Fix stub_test inline assembly for ARM64
Andreas Gampe [Tue, 3 Jun 2014 21:38:30 +0000 (14:38 -0700)]
ART: Fix stub_test inline assembly for ARM64

The rebased Clang resolves register constraints differently from
before. Change the inline assembly.

Bug: 15393246
Change-Id: Iea2c2693f0a035db541ff91f796ee5f997a2ced7

10 years agoMerge "Correct another RegStorage::Solo32"
Bill Buzbee [Tue, 3 Jun 2014 20:56:27 +0000 (20:56 +0000)]
Merge "Correct another RegStorage::Solo32"

10 years agoMerge "ART: Fix an error in proxy_invoke stub on ARM64"
Andreas Gampe [Tue, 3 Jun 2014 20:50:18 +0000 (20:50 +0000)]
Merge "ART: Fix an error in proxy_invoke stub on ARM64"

10 years agoCorrect another RegStorage::Solo32
Mark Mendell [Tue, 3 Jun 2014 20:05:37 +0000 (16:05 -0400)]
Correct another RegStorage::Solo32

It should be RegStorage::FloatSolo32

Change-Id: Iadfc6654254e5a1d117b35cc2d88ceb7057cc30d
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
10 years agoMerge "Modified functions to return pointers where appropriate"
Mathieu Chartier [Tue, 3 Jun 2014 19:18:48 +0000 (19:18 +0000)]
Merge "Modified functions to return pointers where appropriate"

10 years agoMerge "AArch64: split list of opcodes in compiler filter."
Bill Buzbee [Tue, 3 Jun 2014 19:12:48 +0000 (19:12 +0000)]
Merge "AArch64: split list of opcodes in compiler filter."

10 years agoMerge "Quick compiler: reference cleanup"
buzbee [Tue, 3 Jun 2014 18:28:26 +0000 (18:28 +0000)]
Merge "Quick compiler: reference cleanup"

10 years agoAArch64: split list of opcodes in compiler filter.
Matteo Franchin [Thu, 29 May 2014 13:24:10 +0000 (14:24 +0100)]
AArch64: split list of opcodes in compiler filter.

Some of the opcodes that are currently enabled in the compiler
filter are generating assertion failures when using libartd.so.
In this patch, these opcodes are marked as experimental
via #if ... #endif and are disabled. This allows using libartd.so
to run the tests and for development. Further commits will follow
to fix the assertion issues.

Change-Id: I9493fddc281542cb15ced38b262f37f4ef4f0870

10 years agoQuick compiler: reference cleanup
buzbee [Sun, 1 Jun 2014 16:33:49 +0000 (09:33 -0700)]
Quick compiler: reference cleanup

For 32-bit targets, object references are 32 bits wide both in
Dalvik virtual registers and in core physical registers.  Because of
this, object references and non-floating point values were both
handled as if they had the same register class (kCoreReg).

However, for 64-bit systems, references are 32 bits in Dalvik vregs, but
64 bits in physical registers.  Although the same underlying physical
core registers will still be used for object reference and non-float
values, different register class views will be used to represent them.
For example, an object reference in arm64 might be held in x3 at some
point, while the same underlying physical register, w3, would be used
to hold a 32-bit int.

This CL breaks apart the handling of object reference and non-float values
to allow the proper register class (or register view) to be used.  A
new register class, kRefReg, is introduced which will map to a 32-bit
core register on 32-bit targets, and 64-bit core registers on 64-bit
targets.  From this point on, object references should be allocated
registers in the kRefReg class rather than kCoreReg.

Change-Id: I6166827daa8a0ea3af326940d56a6a14874f5810

10 years agoMerge "x86_64: Fix art_quick_aput_obj"
Andreas Gampe [Tue, 3 Jun 2014 17:22:20 +0000 (17:22 +0000)]
Merge "x86_64: Fix art_quick_aput_obj"

10 years agoMerge "Don't use Dump for printing a bitset in liveness_test."
Nicolas Geoffray [Tue, 3 Jun 2014 11:07:00 +0000 (11:07 +0000)]
Merge "Don't use Dump for printing a bitset in liveness_test."

10 years agoDon't use Dump for printing a bitset in liveness_test.
Nicolas Geoffray [Tue, 3 Jun 2014 10:36:16 +0000 (10:36 +0000)]
Don't use Dump for printing a bitset in liveness_test.

Change-Id: Ib33e975cee838da97a3bebe04176b5ae8b62f9d5

10 years agox86_64: Fix art_quick_aput_obj
Dmitry Petrochenko [Thu, 29 May 2014 19:14:49 +0000 (02:14 +0700)]
x86_64: Fix art_quick_aput_obj

The ebx register is not scratch for x86_64 and it leads to
its corruption (seen on art/test 201). Replacing ebx by ecx.

Change-Id: I7f5eeba47688ada5afba82a9303fa736f823d77e
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
10 years agoMerge "ART: BitVector not calculating number_of_bits correctly"
Vladimir Marko [Tue, 3 Jun 2014 10:14:41 +0000 (10:14 +0000)]
Merge "ART: BitVector not calculating number_of_bits correctly"

10 years agoART: Fix an error in proxy_invoke stub on ARM64
Andreas Gampe [Tue, 3 Jun 2014 05:50:05 +0000 (22:50 -0700)]
ART: Fix an error in proxy_invoke stub on ARM64

Make sure that d0 is filled with the right value, as the return
from C code is always in x0.

Bug: 15386201
Change-Id: I6c048b3d92272d769f1de3bdc9ce30733b9e1935

10 years agoModified functions to return pointers where appropriate
Fred Shih [Mon, 2 Jun 2014 18:11:52 +0000 (11:11 -0700)]
Modified functions to return pointers where appropriate

GetStringChars will return a pointer to the underlying char array iff
it is not movable. Otherwise, it will return a copy of the char array.
For consistency, the null terminating character has been removed as the
specification for a jchar strings are not null terminated:

http://developer.android.com/training/articles/perf-jni.html

GetStringCritical will now always return a pointer to the char array.
The char array is pinned and moving gc is disabled until the pointer is
released.

Change-Id: I19c8cbaecc1f3f723d80acec074fb8c5e2d489c3

10 years agoam 0f821c00: Merge "Make class status volatile."
Ian Rogers [Tue, 3 Jun 2014 00:05:14 +0000 (00:05 +0000)]
am 0f821c00: Merge "Make class status volatile."

* commit '0f821c00aeca7b6fca789e5613a91aef786b45af':
  Make class status volatile.

10 years agoam 7a33c4b8: Merge "Fix interpreter entrypoint initialization in the image"
Ian Rogers [Tue, 3 Jun 2014 00:05:13 +0000 (00:05 +0000)]
am 7a33c4b8: Merge "Fix interpreter entrypoint initialization in the image"

* commit '7a33c4b8260e2fafc9ca94e51334d4f18c8e4324':
  Fix interpreter entrypoint initialization in the image

10 years agoMerge "Make class status volatile."
Ian Rogers [Tue, 3 Jun 2014 00:04:17 +0000 (00:04 +0000)]
Merge "Make class status volatile."

10 years agoMerge "Fix interpreter entrypoint initialization in the image"
Ian Rogers [Tue, 3 Jun 2014 00:03:39 +0000 (00:03 +0000)]
Merge "Fix interpreter entrypoint initialization in the image"

10 years agoFix interpreter entrypoint initialization in the image
Sebastien Hertz [Wed, 21 May 2014 13:44:09 +0000 (15:44 +0200)]
Fix interpreter entrypoint initialization in the image

Sets the interpreter_to_interpreter_bridge entrypoint if the method is not
compiled. This avoids the slow path through Quick compiler's world.i

Bumps oat version to force recompilation of image.

Bug: 15098601
Change-Id: I08f7dfce26ecc5ca88bdf21187b2909c0c069596

10 years agoMake class status volatile.
Ian Rogers [Mon, 2 Jun 2014 21:24:56 +0000 (14:24 -0700)]
Make class status volatile.

Discourage loads and stores from reordering around the status being updated.
Bug: 15347354

Change-Id: Ice805cb834617747c8209e98a142d3e5c7585719

10 years agoART: BitVector not calculating number_of_bits correctly
Jean Christophe Beyler [Mon, 2 Jun 2014 18:21:21 +0000 (11:21 -0700)]
ART: BitVector not calculating number_of_bits correctly

The number_of_bits_ field has an unclear intent. Instead, using
  storage_size_ * kWordBits when relevant.

Change-Id: I8c13be0d6643de37813fb154296d451f22c298c8
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
10 years agoART: Add another proxy test
Andreas Gampe [Mon, 2 Jun 2014 18:23:43 +0000 (11:23 -0700)]
ART: Add another proxy test

Change-Id: Ie5beda276a40067b7246001720cc5eea2fa7585a

10 years agoam 502a1975: Merge "Switch on implicit checks and bump oat version to force recompila...
Dave Allison [Mon, 2 Jun 2014 18:09:33 +0000 (18:09 +0000)]
am 502a1975: Merge "Switch on implicit checks and bump oat version to force recompilation"

* commit '502a1975e146b288356e49a3af82629637da5ece':
  Switch on implicit checks and bump oat version to force recompilation

10 years agoMerge "Switch on implicit checks and bump oat version to force recompilation"
Dave Allison [Mon, 2 Jun 2014 18:06:48 +0000 (18:06 +0000)]
Merge "Switch on implicit checks and bump oat version to force recompilation"

10 years agoam a3209fae: Merge "Added workaround passing empty arg array for proxy invocation."
Jeff Hao [Mon, 2 Jun 2014 17:03:20 +0000 (17:03 +0000)]
am a3209fae: Merge "Added workaround passing empty arg array for proxy invocation."

* commit 'a3209fae94bf7db935b235cc97a4852721accd3e':
  Added workaround passing empty arg array for proxy invocation.

10 years agoMerge "Added workaround passing empty arg array for proxy invocation."
Jeff Hao [Mon, 2 Jun 2014 17:01:01 +0000 (17:01 +0000)]
Merge "Added workaround passing empty arg array for proxy invocation."

10 years agoAdded workaround passing empty arg array for proxy invocation.
Jeff Hao [Fri, 30 May 2014 00:29:47 +0000 (17:29 -0700)]
Added workaround passing empty arg array for proxy invocation.

This recreates old Dalvik behavior for older target sdk versions,
but will still pass null for newer ones.

Bug: 13247236

(cherry picked from commit 01d5a146e20660bd06f026c16f19ec080f8fdd7b)

Change-Id: I911889cf559ad8d9f37ea9be3929387c86446851

10 years agoam f6b5378b: Merge "ART: Fix comments and link before MIR to next in Remove method"
Ian Rogers [Mon, 2 Jun 2014 16:31:13 +0000 (16:31 +0000)]
am f6b5378b: Merge "ART: Fix comments and link before MIR to next in Remove method"

* commit 'f6b5378ba182c5c26c556ae34638afc38adef519':
  ART: Fix comments and link before MIR to next in Remove method

10 years agoMerge "ART: Fix comments and link before MIR to next in Remove method"
Ian Rogers [Mon, 2 Jun 2014 16:27:18 +0000 (16:27 +0000)]
Merge "ART: Fix comments and link before MIR to next in Remove method"

10 years agoam 042cbb60: Merge "x86: art_quick_instrumentation_entry should not use offset address"
Ian Rogers [Mon, 2 Jun 2014 16:12:01 +0000 (16:12 +0000)]
am 042cbb60: Merge "x86: art_quick_instrumentation_entry should not use offset address"

* commit '042cbb60dc25c16806b02d41dfad040861f727ad':
  x86: art_quick_instrumentation_entry should not use offset address

10 years agoam 8928d477: Merge "Fix GC race condition in visit roots"
Ian Rogers [Mon, 2 Jun 2014 16:08:34 +0000 (16:08 +0000)]
am 8928d477: Merge "Fix GC race condition in visit roots"

* commit '8928d4779c5cb4844e213cc483777c745d0749be':
  Fix GC race condition in visit roots

10 years agoMerge "x86: art_quick_instrumentation_entry should not use offset address"
Ian Rogers [Mon, 2 Jun 2014 16:07:44 +0000 (16:07 +0000)]
Merge "x86: art_quick_instrumentation_entry should not use offset address"

10 years agoMerge "Fix GC race condition in visit roots"
Ian Rogers [Mon, 2 Jun 2014 16:06:03 +0000 (16:06 +0000)]
Merge "Fix GC race condition in visit roots"

10 years agoART: Fix comments and link before MIR to next in Remove method
Jean Christophe Beyler [Mon, 2 Jun 2014 16:04:32 +0000 (09:04 -0700)]
ART: Fix comments and link before MIR to next in Remove method

There are some comments without a period at the end and the remove does not
link the MIR before the one we want to remove to the one after.

Change-Id: Ia1263d3191e39b4f8f76ef62b28f7fbb1c6c0403
Signed-off-by: Jean Christophe Beyler jean.christophe.beyler@intel.com
10 years agox86: art_quick_instrumentation_entry should not use offset address
Serguei Katkov [Thu, 22 May 2014 03:07:44 +0000 (10:07 +0700)]
x86: art_quick_instrumentation_entry should not use offset address

art_quick_instrumentation_entry uses offset of the address
instead of full adress but this address is used in ret instruction
which does not expect it.

Change-Id: I9e576037d7adf14a7e9fa8f6d4aba4ee540fcc14
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
10 years agoFix GC race condition in visit roots
Serguei Katkov [Mon, 26 May 2014 04:23:39 +0000 (11:23 +0700)]
Fix GC race condition in visit roots

While GC visits roots other code can change the set pending exception
due to lack of synchronization.

Change-Id: If387944ac933a66fe176df066c3a0ea52131cad4
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
10 years agoam e4283be9: Merge "Quick compiler: fix array overrun."
buzbee [Sun, 1 Jun 2014 18:41:02 +0000 (18:41 +0000)]
am e4283be9: Merge "Quick compiler: fix array overrun."

* commit 'e4283be97047a26d3476acd3863dcc386498be17':
  Quick compiler: fix array overrun.

10 years agoMerge "Quick compiler: fix array overrun."
buzbee [Sun, 1 Jun 2014 18:37:53 +0000 (18:37 +0000)]
Merge "Quick compiler: fix array overrun."

10 years agoQuick compiler: fix array overrun.
buzbee [Sat, 31 May 2014 15:59:01 +0000 (08:59 -0700)]
Quick compiler: fix array overrun.

MIRGraph::InlineCalls() was using the MIR opcode to recover
Dalvik instruction flags - something that is only valid for
Dalvik opcodes and not the set of extended MIR opcodes.

This is probably the 3rd or 4th time we've had a bug using
the MIR opcode in situations that are only valid for the Dalvik
opcode subset.  I took the opportunity to scan the code for
other cases of this (didn't find any), and did some cleanup while
I was in the neighborhood.

We should probably rework the DalvikOpcode/MirOpcode model whenver we
get around to removing DalvikInstruction from MIR.

Internal bug b/15352667: out-of-bound access in mir_optimization.cc

Change-Id: I75f06780468880892151e3cdd313e14bfbbaa489

10 years agoam fbc3e0ba: Merge "ART: Add thread safety test for LargeObjectSpace"
Andreas Gampe [Fri, 30 May 2014 22:13:30 +0000 (22:13 +0000)]
am fbc3e0ba: Merge "ART: Add thread safety test for LargeObjectSpace"

* commit 'fbc3e0baa16f265a5dbc99a38383b4dbc41b04a8':
  ART: Add thread safety test for LargeObjectSpace

10 years agoMerge "ART: Add thread safety test for LargeObjectSpace"
Andreas Gampe [Fri, 30 May 2014 22:10:57 +0000 (22:10 +0000)]
Merge "ART: Add thread safety test for LargeObjectSpace"

10 years agoART: Add thread safety test for LargeObjectSpace
Andreas Gampe [Fri, 30 May 2014 21:42:59 +0000 (14:42 -0700)]
ART: Add thread safety test for LargeObjectSpace

Add a test that just calls Alloc and Free repeatedly with multiple
threads, checking whether things are really race-free.

Change-Id: I39ea9e7449e3354b49c3aa11c27fcfeb07acff9f

10 years agoam b20c373e: Merge "AArch64: Enable extended MIR"
Bill Buzbee [Fri, 30 May 2014 21:54:07 +0000 (21:54 +0000)]
am b20c373e: Merge "AArch64: Enable extended MIR"

* commit 'b20c373e45200102eaf2d4aac35d366067e0074b':
  AArch64: Enable extended MIR

10 years agoMerge "AArch64: Enable extended MIR"
Bill Buzbee [Fri, 30 May 2014 21:49:34 +0000 (21:49 +0000)]
Merge "AArch64: Enable extended MIR"

10 years agoam b379e8d1: Merge "Compaction cleanup for FindArrayClass."
Mathieu Chartier [Fri, 30 May 2014 21:19:29 +0000 (21:19 +0000)]
am b379e8d1: Merge "Compaction cleanup for FindArrayClass."

* commit 'b379e8d107b9131d9b6c7b48aea01f9866e4047b':
  Compaction cleanup for FindArrayClass.

10 years agoMerge "Compaction cleanup for FindArrayClass."
Mathieu Chartier [Fri, 30 May 2014 21:15:32 +0000 (21:15 +0000)]
Merge "Compaction cleanup for FindArrayClass."

10 years agoCompaction cleanup for FindArrayClass.
Mathieu Chartier [Thu, 29 May 2014 21:31:33 +0000 (14:31 -0700)]
Compaction cleanup for FindArrayClass.

We now pass double pointer in to signify that it can cause thread
suspension, this double pointer gets wrapped by a handle if don't
find the array class in the cache.

Change-Id: I43436b6c35597c7252b65d1180baddb5ac4caabb

10 years agoam e4e04bbd: Merge "Support disassembly of 16-bit immediates"
Ian Rogers [Fri, 30 May 2014 20:27:39 +0000 (20:27 +0000)]
am e4e04bbd: Merge "Support disassembly of 16-bit immediates"

* commit 'e4e04bbd86d1131b9f380a52a46b1a3b83335d5f':
  Support disassembly of 16-bit immediates

10 years agoam afa8e909: Merge "Fix race condition in MemMap::MapAnonymous."
Mathieu Chartier [Fri, 30 May 2014 20:27:38 +0000 (20:27 +0000)]
am afa8e909: Merge "Fix race condition in MemMap::MapAnonymous."

* commit 'afa8e909b7fbf53cb45573c458c031d3174069c9':
  Fix race condition in MemMap::MapAnonymous.

10 years agoMerge "Support disassembly of 16-bit immediates"
Ian Rogers [Fri, 30 May 2014 20:26:12 +0000 (20:26 +0000)]
Merge "Support disassembly of 16-bit immediates"

10 years agoMerge "Fix race condition in MemMap::MapAnonymous."
Mathieu Chartier [Fri, 30 May 2014 20:24:53 +0000 (20:24 +0000)]
Merge "Fix race condition in MemMap::MapAnonymous."

10 years agoFix race condition in MemMap::MapAnonymous.
Mathieu Chartier [Fri, 30 May 2014 20:02:46 +0000 (13:02 -0700)]
Fix race condition in MemMap::MapAnonymous.

Previously we were using MAP_FIXED which introduced a serious race
condition if MAP_32BIT was set since it would possibly overwrite
an existing map at the address which we determined was free with
msync. There was a window of time after we had msynced a page where
another thread could map something at that page. The new method
avoids using MAP_FIXED and unmaps allocations which succeed but
aren't in the low 4GB when MAP_32BIT is set.

Bug: 15338094
Bug: 14974497
Change-Id: I57f00baf4143e9fa17fb1d4c2be04b30705a2bfd

10 years agoSupport disassembly of 16-bit immediates
Mark Mendell [Fri, 30 May 2014 19:05:09 +0000 (15:05 -0400)]
Support disassembly of 16-bit immediates

Change-Id: I66f5ce93077241204311e52c547599f5287bae04
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
10 years agoam b413cd79: Merge "Don\'t report down-calls as unhandled exceptions."
Ian Rogers [Fri, 30 May 2014 19:56:36 +0000 (19:56 +0000)]
am b413cd79: Merge "Don\'t report down-calls as unhandled exceptions."

* commit 'b413cd79c46b7c48ac763cb8152a55a4ed60fe9f':
  Don't report down-calls as unhandled exceptions.

10 years agoMerge "Don't report down-calls as unhandled exceptions."
Ian Rogers [Fri, 30 May 2014 19:53:48 +0000 (19:53 +0000)]
Merge "Don't report down-calls as unhandled exceptions."

10 years agoam 22460ecb: Merge "Quick compiler: Method* as a reference"
buzbee [Fri, 30 May 2014 19:50:35 +0000 (19:50 +0000)]
am 22460ecb: Merge "Quick compiler: Method* as a reference"

* commit '22460ecbaae7e489a3bc17a2adb2e7e9d0028f9c':
  Quick compiler: Method* as a reference

10 years agoMerge "Quick compiler: Method* as a reference"
buzbee [Fri, 30 May 2014 19:48:41 +0000 (19:48 +0000)]
Merge "Quick compiler: Method* as a reference"

10 years agoDon't report down-calls as unhandled exceptions.
Ian Rogers [Fri, 30 May 2014 04:31:50 +0000 (21:31 -0700)]
Don't report down-calls as unhandled exceptions.

Bug: 15310540
Also, narrow scope of catch/deoptimize stack visitors that are specific to
quick exception delivery.

Change-Id: Ib13a006ce1347acb93a36b0186550d4c3ec2034b