OSDN Git Service

android-x86/art.git
9 years agoFix wide volatile IGET/IPUT on ARM without atomic ldrd/strd.
Vladimir Marko [Tue, 13 Jan 2015 17:34:28 +0000 (17:34 +0000)]
Fix wide volatile IGET/IPUT on ARM without atomic ldrd/strd.

If ldrd/strd isn't atomic, IPUT_WIDE uses ldrexd+strexd and
we need to record the safepoint for the ldrexd rather than
strexd. IGET_WIDE was simply missing the memory barrier.

Bug: 18993519
Change-Id: I4e9270b994f413c1a047c1c4bb9cce5f29e42cb4

9 years agoMerge "ART: dex2oat flag for HGraphVisualizer dump file"
David Brazdil [Tue, 13 Jan 2015 18:31:51 +0000 (18:31 +0000)]
Merge "ART: dex2oat flag for HGraphVisualizer dump file"

9 years agoART: dex2oat flag for HGraphVisualizer dump file
David Brazdil [Tue, 13 Jan 2015 18:07:00 +0000 (18:07 +0000)]
ART: dex2oat flag for HGraphVisualizer dump file

This patch adds a new flag to dex2oat which allows to specify the
name of the file that HGraphVisualizer will store its output into.
Until now the graph was dumped to "art.cfg" in the current working
directory. To make Checker work with run-test, the output directory
needs to be customizable.

Change-Id: I395c518b987e594e89e5e80f202a96befa41ac20

9 years agoMerge "Fix error in JobjectComparator"
Mathieu Chartier [Mon, 12 Jan 2015 22:26:25 +0000 (22:26 +0000)]
Merge "Fix error in JobjectComparator"

9 years agoFix error in JobjectComparator
Mathieu Chartier [Mon, 12 Jan 2015 22:24:14 +0000 (14:24 -0800)]
Fix error in JobjectComparator

Was comparing class hash code vs object hash code.

Change-Id: I6427809876462100249809b6f9c5e996c0741cf1

9 years agoMerge "Revert "ART: Implement hard float for X86""
Vladimir Marko [Mon, 12 Jan 2015 18:21:37 +0000 (18:21 +0000)]
Merge "Revert "ART: Implement hard float for X86""

9 years agoRevert "ART: Implement hard float for X86"
Vladimir Marko [Mon, 12 Jan 2015 18:21:07 +0000 (18:21 +0000)]
Revert "ART: Implement hard float for X86"

This reverts commit 59b9cf7ec0ccc13df91be0bd5c723b8c52410739.

Change-Id: I08333b528032480def474286dc368d916a07e17f

9 years agoMerge "ART: Implement hard float for X86"
Vladimir Marko [Mon, 12 Jan 2015 18:19:45 +0000 (18:19 +0000)]
Merge "ART: Implement hard float for X86"

9 years agoART: Implement hard float for X86
Mark Mendell [Fri, 9 Jan 2015 19:44:36 +0000 (14:44 -0500)]
ART: Implement hard float for X86

Use XMM0-XMM3 as parameter registers for float/double on X86.  X86_64
already uses XMM0-XMM7 for parameters.

Change the 'hidden' argument register from XMM0 to XMM7 to avoid a
conflict.

This change was requested to simplify the Optimizing compiler
implementation.

Change-Id: I89ba8ade99b9a8a5b1ad1ee5f5cbfd33d656bfaa
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
9 years agoMerge "Fix handling of long argument spanning register/memory."
Nicolas Geoffray [Mon, 12 Jan 2015 14:10:24 +0000 (14:10 +0000)]
Merge "Fix handling of long argument spanning register/memory."

9 years agoFix handling of long argument spanning register/memory.
Nicolas Geoffray [Thu, 8 Jan 2015 14:52:29 +0000 (14:52 +0000)]
Fix handling of long argument spanning register/memory.

Comment in arm_lir.h says:
 * If a 64-bit argument would span the register/memory argument
 * boundary, it will instead be fully passed in the frame.

This change implements such logic for all platforms. We still need
to pass the low part in register as well because I haven't ported
the jni compilers (x86 and mips) to it.

Once the jni compilers are updated, we can remove the register
assignment.

Note that this greatly simplifies optimizing's register allocator
by not having to understand a long spanning register and memory.

Change-Id: I59706ca5d47269fc46e5489ac99bd6576e87e7f3

9 years agoMerge "Move code around in OptimizingCompiler::Compile to reduce stack space."
Nicolas Geoffray [Mon, 12 Jan 2015 10:46:18 +0000 (10:46 +0000)]
Merge "Move code around in OptimizingCompiler::Compile to reduce stack space."

9 years agoMove code around in OptimizingCompiler::Compile to reduce stack space.
Nicolas Geoffray [Fri, 9 Jan 2015 14:53:50 +0000 (14:53 +0000)]
Move code around in OptimizingCompiler::Compile to reduce stack space.

Also fix an (intentional) memory leak, by allocating the CodeGenerator
on the heap instead of the arena: they construct an Assembler object
that requires destruction.

BUG:18787334

Change-Id: I8cf0667cb70ce5b14d4ac334bd4487a562635f1b

9 years agoMerge "JDWP: allow VirtualMachine.Resume on partial suspension"
Sebastien Hertz [Mon, 12 Jan 2015 08:14:54 +0000 (08:14 +0000)]
Merge "JDWP: allow VirtualMachine.Resume on partial suspension"

9 years agoMerge "ART: Fixed subsequent CHECK-NOTs Checker bug"
David Brazdil [Sat, 10 Jan 2015 02:42:33 +0000 (02:42 +0000)]
Merge "ART: Fixed subsequent CHECK-NOTs Checker bug"

9 years agoMerge "ART: Increase dump checkpoint timeout on the host"
Andreas Gampe [Sat, 10 Jan 2015 02:06:04 +0000 (02:06 +0000)]
Merge "ART: Increase dump checkpoint timeout on the host"

9 years agoMerge "[WIP] Fix a rosalloc verification crash."
Hiroshi Yamauchi [Sat, 10 Jan 2015 01:58:16 +0000 (01:58 +0000)]
Merge "[WIP] Fix a rosalloc verification crash."

9 years agoART: Increase dump checkpoint timeout on the host
Andreas Gampe [Sat, 10 Jan 2015 01:54:51 +0000 (17:54 -0800)]
ART: Increase dump checkpoint timeout on the host

Increase the dump checkpoint timeout on the host, as addr2line is
used and may put more strain onto the system.

Bug: 18964791
Change-Id: I9c1e9c1289fddfce25854e4425194882628bcf21

9 years ago[WIP] Fix a rosalloc verification crash.
Hiroshi Yamauchi [Sat, 10 Jan 2015 01:48:00 +0000 (17:48 -0800)]
[WIP] Fix a rosalloc verification crash.

Bug: 18960494
Change-Id: Ia7a11f06b3fc8207f6304ae881539251d6b1de24

9 years agoMerge "Clean up some #ifdefs."
Elliott Hughes [Fri, 9 Jan 2015 23:23:36 +0000 (23:23 +0000)]
Merge "Clean up some #ifdefs."

9 years agoClean up some #ifdefs.
Elliott Hughes [Fri, 9 Jan 2015 23:16:16 +0000 (15:16 -0800)]
Clean up some #ifdefs.

Only the Mac doesn't have POSIX clocks. (And it still doesn't, a decade
later.)

glibc gained pthread_setname_np in 2.12.

Only the Mac doesn't have prctl.

Change-Id: I218e409f7e133736e15fb68e8a254cdc5799d667

9 years agoMerge "ART: Fix prefix issues in Addr2line dump"
Andreas Gampe [Fri, 9 Jan 2015 23:13:30 +0000 (23:13 +0000)]
Merge "ART: Fix prefix issues in Addr2line dump"

9 years agoART: Fix prefix issues in Addr2line dump
Andreas Gampe [Fri, 9 Jan 2015 23:05:46 +0000 (15:05 -0800)]
ART: Fix prefix issues in Addr2line dump

The code incorrectly wrote the prefix twice for overly long lines.

Bug: 18933933
Change-Id: I4bc7c2cde435bd966276ca2dae6a5d060aa2d0f3

9 years agoMerge "Change hprof to use streaming"
Mathieu Chartier [Fri, 9 Jan 2015 23:05:08 +0000 (23:05 +0000)]
Merge "Change hprof to use streaming"

9 years agoChange hprof to use streaming
Mathieu Chartier [Fri, 9 Jan 2015 00:28:08 +0000 (16:28 -0800)]
Change hprof to use streaming

Previously, we compute the whole hprof dump in memory resulting in
> 50MB of memory usage for some apps (such as maps). This could
cause the app to get killed by the low memory killer.

The solution works by doing the dump in 2 passes.
The first pass calculates the size of the dump.
The second pass starts by sending the DDMS header with the correct
size, then does the rest of the hprof dump by streaming and sending
data one HprofRecord at a time.

Bug: 18921793
Change-Id: I7dd9f5cfe49799ba268095c994a8c2eb1fe493df

9 years agoMerge "ART: Added comments, fixed typos in Checker"
David Brazdil [Fri, 9 Jan 2015 19:21:16 +0000 (19:21 +0000)]
Merge "ART: Added comments, fixed typos in Checker"

9 years agoART: Added comments, fixed typos in Checker
David Brazdil [Wed, 7 Jan 2015 21:19:50 +0000 (21:19 +0000)]
ART: Added comments, fixed typos in Checker

Change-Id: I1ff12940035845c1a586d4df826efc794088bdc9

9 years agoMerge "Fix HandleScope with wrong thread error"
Mathieu Chartier [Fri, 9 Jan 2015 18:02:23 +0000 (18:02 +0000)]
Merge "Fix HandleScope with wrong thread error"

9 years agoFix HandleScope with wrong thread error
Mathieu Chartier [Fri, 9 Jan 2015 17:46:49 +0000 (09:46 -0800)]
Fix HandleScope with wrong thread error

Possibly fixes
+art F  5127  6995 art/runtime/handle_scope-inl.h:43]
Check failed: top_handle_scope == this
(top_handle_scope=0x2b449293c770, this=0x2b4492d6a0a8)
Seen in tests. A possible cause was that the thread dumping stacks
was running checkpoints on a suspended thread but putting a
HandleScope on that thread instead of itself. This isn't safe if the
suspended thread is doing HandleScope stuff in a non runnable state.

Change-Id: Icdaadabca5aff8d380d5cc9570b9e899fe790a62

9 years agoMerge "ART: Use addr2line on the host for DumpNativeStack"
Andreas Gampe [Fri, 9 Jan 2015 17:56:16 +0000 (17:56 +0000)]
Merge "ART: Use addr2line on the host for DumpNativeStack"

9 years agoART: Use addr2line on the host for DumpNativeStack
Andreas Gampe [Fri, 9 Jan 2015 04:11:09 +0000 (20:11 -0800)]
ART: Use addr2line on the host for DumpNativeStack

Use addr2line to attempt some better debug output for unexpected
signals in tests. This prints the demangled function name, source
file and line number (including inlined frames) when possible.

Bug: 18933933
Change-Id: I4b98d0cc7bef5cdc63c7ee0882629b363778afe2

9 years agoMerge "Remove back-door bootclasspath option from Runtime"
Richard Uhler [Fri, 9 Jan 2015 15:57:36 +0000 (15:57 +0000)]
Merge "Remove back-door bootclasspath option from Runtime"

9 years agoJDWP: allow VirtualMachine.Resume on partial suspension
Sebastien Hertz [Fri, 9 Jan 2015 13:51:41 +0000 (14:51 +0100)]
JDWP: allow VirtualMachine.Resume on partial suspension

Allows to resume multiple threads with a single VirtualMachine.Resume
command. When some threads are suspended for an event by the debugger
with a suspend count of 1 (other threads are running), a debugger can
resume them all this way.

Bug: 18924933
Change-Id: I81543df8228d56a4cf201e59885015880650f202

9 years agoMerge "Don't overwrite a register input."
Nicolas Geoffray [Fri, 9 Jan 2015 08:50:32 +0000 (08:50 +0000)]
Merge "Don't overwrite a register input."

9 years agoDon't overwrite a register input.
Nicolas Geoffray [Fri, 9 Jan 2015 08:48:29 +0000 (08:48 +0000)]
Don't overwrite a register input.

`addr` is a register input, which can survive the current instruction,
therefore we can't overwrite it.

Change-Id: I6eaa60e5f91c2b7b9b31673457d2a0d63474e587

9 years agoMerge "ART: Relax java_vm_ext test"
Andreas Gampe [Fri, 9 Jan 2015 01:01:10 +0000 (01:01 +0000)]
Merge "ART: Relax java_vm_ext test"

9 years agoART: Relax java_vm_ext test
Andreas Gampe [Fri, 9 Jan 2015 00:43:13 +0000 (16:43 -0800)]
ART: Relax java_vm_ext test

Bionic gives more than the requested stack size in some cases, see
change-id I7037ac8273ebe54dd19b1561c7a376819049124c. In that case,
attaching a thread with STACK_MIN may actually succeed.

Bug: 18908062
Change-Id: Ibb3f5c7a7399c01ec2032a133896cf91327370ed

9 years agoMerge "Add clamp growth limit"
Mathieu Chartier [Fri, 9 Jan 2015 00:12:28 +0000 (00:12 +0000)]
Merge "Add clamp growth limit"

9 years agoAdd clamp growth limit
Mathieu Chartier [Thu, 8 Jan 2015 19:28:13 +0000 (11:28 -0800)]
Add clamp growth limit

Clamp growth limit shrinks the space memmaps to the current growth
limit. This reduces virtual memory usage for apps with small heaps.

Bug: 18387825
Bug: 17131630

Change-Id: I4a8fdc335d2c40492e991708adabcc46299efb7d

9 years agoMerge "ART: Refactored regex code in Checker"
David Brazdil [Thu, 8 Jan 2015 22:20:26 +0000 (22:20 +0000)]
Merge "ART: Refactored regex code in Checker"

9 years agoART: Refactored regex code in Checker
David Brazdil [Wed, 31 Dec 2014 11:49:30 +0000 (11:49 +0000)]
ART: Refactored regex code in Checker

This patch refactors how Checker constructs regular expressions which
it uses to parse tests and verify compiler output. It also replaces
all occurrences of the '[0-9]+' ID-matching expression with the '\d+'
shorthand.

Change-Id: I5f854a25707e44ed2fa1673ff084990e8f43e4a2

9 years agoMerge "ART: Fixed formatting in HGraphVisualizerPrinter"
David Brazdil [Thu, 8 Jan 2015 21:50:01 +0000 (21:50 +0000)]
Merge "ART: Fixed formatting in HGraphVisualizerPrinter"

9 years agoART: Fixed subsequent CHECK-NOTs Checker bug
David Brazdil [Thu, 8 Jan 2015 01:49:53 +0000 (01:49 +0000)]
ART: Fixed subsequent CHECK-NOTs Checker bug

Matching a group of CHECK-NOT lines caused Checker to crash due to
incorrectly overwriting the varState variable. The second use of the
variable was renamed and a regression test added.

Change-Id: I1a879cf5368acca6b5092f69a9caa47b89a79532

9 years agoMerge "ART: Fix Mac build"
Andreas Gampe [Thu, 8 Jan 2015 19:37:26 +0000 (19:37 +0000)]
Merge "ART: Fix Mac build"

9 years agoART: Fix Mac build
Andreas Gampe [Thu, 8 Jan 2015 19:32:22 +0000 (11:32 -0800)]
ART: Fix Mac build

Fix Mac build after change-id Id2710d2fd44b7c3b3335973a9288979a5793638b.

Bug: 18933933
Change-Id: Ib0bb5082908d5dff33ef8f8a69d82c07406c176d

9 years agoART: Fixed formatting in HGraphVisualizerPrinter
David Brazdil [Thu, 8 Jan 2015 19:28:33 +0000 (19:28 +0000)]
ART: Fixed formatting in HGraphVisualizerPrinter

Change-Id: I06d9bb0fc03e13cfc49f2b4da07a0ee2d09a339a

9 years agoMerge "Add VerifyObject to StackHandleScope::SetReference"
Mathieu Chartier [Thu, 8 Jan 2015 18:54:45 +0000 (18:54 +0000)]
Merge "Add VerifyObject to StackHandleScope::SetReference"

9 years agoMerge "Implement double and float support for arm in register allocator."
Nicolas Geoffray [Thu, 8 Jan 2015 18:52:33 +0000 (18:52 +0000)]
Merge "Implement double and float support for arm in register allocator."

9 years agoRemove back-door bootclasspath option from Runtime
Richard Uhler [Fri, 2 Jan 2015 21:28:22 +0000 (13:28 -0800)]
Remove back-door bootclasspath option from Runtime

The 'bootclasspath' option allowed users of the Runtime to load their
own boot class path DexFiles and pass them directly to the Runtime as
an option. This obscures the fact that the Runtime must take ownership
of the boot class path DexFiles.

This change removes the use of the bootclasspath option by dex2oat and
the common runtime tests. For dex2oat, we use the existing
-Xbootclasspath option instead, and introduce a new
-Xbootclasspath-locations option to override the dex locations for the
loaded boot class path dex files. For the common runtime tests, we
simply use -Xbootclasspath.

Bug: 18809837
Change-Id: Idfcd4885390bf0f3dc350993756dd337220def73

9 years agoAdd VerifyObject to StackHandleScope::SetReference
Mathieu Chartier [Thu, 8 Jan 2015 17:41:25 +0000 (09:41 -0800)]
Add VerifyObject to StackHandleScope::SetReference

Helps catch GC bugs. Also moved some of the HandleScope logic to the
inl file.

Bug: 13054004
Change-Id: I81b9dd717092b6a467fcd28b4df0089ec075dd44

9 years agoMerge "ART: Improved fail reporting in Checker"
David Brazdil [Thu, 8 Jan 2015 18:44:19 +0000 (18:44 +0000)]
Merge "ART: Improved fail reporting in Checker"

9 years agoART: Improved fail reporting in Checker
David Brazdil [Wed, 31 Dec 2014 17:28:38 +0000 (17:28 +0000)]
ART: Improved fail reporting in Checker

Checker now keeps track of line numbers and prints more informative
log messages.

Change-Id: I59ba3fb81d91e265a7358b6abb116dcb9ce97cbb

9 years agoMerge "Do not use clang for mips target."
Chih-Hung Hsieh [Thu, 8 Jan 2015 18:26:12 +0000 (18:26 +0000)]
Merge "Do not use clang for mips target."

9 years agoMerge "ART: Pass ucontext to Backtrace in Stack Dump"
Andreas Gampe [Thu, 8 Jan 2015 17:38:02 +0000 (17:38 +0000)]
Merge "ART: Pass ucontext to Backtrace in Stack Dump"

9 years agoART: Pass ucontext to Backtrace in Stack Dump
Andreas Gampe [Thu, 8 Jan 2015 06:08:35 +0000 (22:08 -0800)]
ART: Pass ucontext to Backtrace in Stack Dump

In case of an unexpected signal on the host we dump the thread stack
ourselves. We have to pass the context given to the signal handler,
as the signal handler is run on an alternate stack. Otherwise
libbacktrace can't dump the actual faulty part.

Bug: 18933933
Change-Id: Id2710d2fd44b7c3b3335973a9288979a5793638b

9 years agoMerge "JDWP: do not report start/end events for thread without peer"
Sebastien Hertz [Thu, 8 Jan 2015 16:26:04 +0000 (16:26 +0000)]
Merge "JDWP: do not report start/end events for thread without peer"

9 years agoImplement double and float support for arm in register allocator.
Nicolas Geoffray [Wed, 7 Jan 2015 16:01:24 +0000 (16:01 +0000)]
Implement double and float support for arm in register allocator.

The basic approach is:
- An instruction that needs two registers gets two intervals.
- When allocating the low part, we also allocate the high part.
- When splitting a low (or high) interval, we also split the high
  (or low) equivalent.
- Allocation follows the (S/D register) requirement that low
  registers are always even and the high equivalent is low + 1.

Change-Id: I06a5148e05a2ffc7e7555d08e871ed007b4c2797

9 years agoDo not use clang for mips target.
Chih-Hung Hsieh [Fri, 19 Dec 2014 03:25:50 +0000 (19:25 -0800)]
Do not use clang for mips target.

Clang assembler cannot compile some inlined assembly code
in valgrind_malloc_space-inl.h:192:5: error: used $at without ".set noat"
However, clang generated assembly code for runtime/mirror/array.cc
cannot be compiled by gas.

BUG: 18789639
BUG: 18807290
Change-Id: Ifdeb3c50f11cefc7f0d62c1d36fdd1f8b9344fb4

9 years agoMerge "Fix valgrind imgdiag test failure / memory leak in runtime"
Igor Murashkin [Thu, 8 Jan 2015 02:44:30 +0000 (02:44 +0000)]
Merge "Fix valgrind imgdiag test failure / memory leak in runtime"

9 years agoMerge "ART: Print INTERNAL_FATAL Log messages immediately"
Andreas Gampe [Thu, 8 Jan 2015 02:27:49 +0000 (02:27 +0000)]
Merge "ART: Print INTERNAL_FATAL Log messages immediately"

9 years agoART: Print INTERNAL_FATAL Log messages immediately
Andreas Gampe [Thu, 8 Jan 2015 02:01:29 +0000 (18:01 -0800)]
ART: Print INTERNAL_FATAL Log messages immediately

To diagnose some problems, print out messages sent to Severity level
INTERNAL_FATAL immediately. This avoids the buffering we do.

Bug: 18933933
Change-Id: I3e536ae2e78560eb561d0b873fb4e88b9495ebbf

9 years agoMerge "Re-enable ParallelGC test for gcstress mode"
Mathieu Chartier [Thu, 8 Jan 2015 02:00:29 +0000 (02:00 +0000)]
Merge "Re-enable ParallelGC test for gcstress mode"

9 years agoRe-enable ParallelGC test for gcstress mode
Mathieu Chartier [Thu, 8 Jan 2015 01:42:07 +0000 (17:42 -0800)]
Re-enable ParallelGC test for gcstress mode

Ran the test hundreds of times with gcstress without any failures.

Bug: 16406852
Change-Id: Idd2d248bd43bfb20ad7313e12ce3dce85bea3de5

9 years agoMerge "Fix signal test to work with gcstress"
Mathieu Chartier [Thu, 8 Jan 2015 01:35:43 +0000 (01:35 +0000)]
Merge "Fix signal test to work with gcstress"

9 years agoFix signal test to work with gcstress
Mathieu Chartier [Thu, 8 Jan 2015 00:00:03 +0000 (16:00 -0800)]
Fix signal test to work with gcstress

We now avoid running GC if we are handling a stack overflow, this
helps prevent running past the end of the stack overflow reserved
bytes.

Added logic in ThrowStackOverflowError to use a stack overflow
exception without a stack trace if we fail to allocate the stack
trace.

Bug: 16406852
Change-Id: Ib34e235cd0af6d7c4c93c9705fa822f2b9b23b38

9 years agoMerge "ART: Fix Clang CFLAGS inclusion"
Andreas Gampe [Thu, 8 Jan 2015 00:39:59 +0000 (00:39 +0000)]
Merge "ART: Fix Clang CFLAGS inclusion"

9 years agoFix valgrind imgdiag test failure / memory leak in runtime
Igor Murashkin [Thu, 8 Jan 2015 00:37:24 +0000 (16:37 -0800)]
Fix valgrind imgdiag test failure / memory leak in runtime

Bug: 18907700
Change-Id: I399a6a64a743d3fac86b8bb5bf0eef1f23b95dc4

9 years agoART: Fix Clang CFLAGS inclusion
Andreas Gampe [Wed, 7 Jan 2015 22:35:44 +0000 (14:35 -0800)]
ART: Fix Clang CFLAGS inclusion

Only include the CFLAGS if Clang is not explicitly disabled for the
architecture.

Change-Id: Ic63d7c8018f633a9b20a4ff9285d6380426017a5

9 years agoMerge "ART: Add copyright to Optimizing's Inliner test"
David Brazdil [Wed, 7 Jan 2015 19:37:32 +0000 (19:37 +0000)]
Merge "ART: Add copyright to Optimizing's Inliner test"

9 years agoART: Add copyright to Optimizing's Inliner test
David Brazdil [Wed, 7 Jan 2015 19:22:04 +0000 (19:22 +0000)]
ART: Add copyright to Optimizing's Inliner test

Change-Id: I10c29d607baa5b8b23b5d998a3c72dafcb7f47b8

9 years agoMerge "Fix sigchainlib's implementation of sigaction"
Dmitriy Ivanov [Tue, 6 Jan 2015 23:44:13 +0000 (23:44 +0000)]
Merge "Fix sigchainlib's implementation of sigaction"

9 years agoFix sigchainlib's implementation of sigaction
Dmitriy Ivanov [Tue, 6 Jan 2015 22:55:26 +0000 (14:55 -0800)]
Fix sigchainlib's implementation of sigaction

  Correctly handles the case when old_action == new_action

Bug: 18740478
Change-Id: I97092318439e4f6f0a2513d4336496c72f8c5599
(cherry picked from commit 797a29b334f2d311135602bf5204ae8b890f4a14)

9 years agoMerge "Fix frequent gcstress ThreadStress crash"
Mathieu Chartier [Tue, 6 Jan 2015 22:31:47 +0000 (22:31 +0000)]
Merge "Fix frequent gcstress ThreadStress crash"

9 years agoFix frequent gcstress ThreadStress crash
Mathieu Chartier [Tue, 6 Jan 2015 22:17:57 +0000 (14:17 -0800)]
Fix frequent gcstress ThreadStress crash

Calling IdentityHashCode before PrettyTypeOf was causing occasional
stale root errors since IdentityHashCode can cause thread suspension.

Cleaned up VisitLocks.

Bug: 18766916
Change-Id: I7679539877e48a8c9aadb8a34718404ebce98d25

9 years agoMerge "ART: Fix leak in codegen_test"
Andreas Gampe [Tue, 6 Jan 2015 22:20:39 +0000 (22:20 +0000)]
Merge "ART: Fix leak in codegen_test"

9 years agoMerge "Don't allow suspension from FindLocksAtDexPc"
Mathieu Chartier [Tue, 6 Jan 2015 22:16:05 +0000 (22:16 +0000)]
Merge "Don't allow suspension from FindLocksAtDexPc"

9 years agoART: Fix leak in codegen_test
Andreas Gampe [Tue, 6 Jan 2015 22:13:52 +0000 (14:13 -0800)]
ART: Fix leak in codegen_test

Make sure the InstructionSetFeatures isn't leaked.

Change-Id: Ide25773500c1513ecb204a380bb0a95513ff7276

9 years agoDon't allow suspension from FindLocksAtDexPc
Mathieu Chartier [Sat, 20 Dec 2014 02:41:47 +0000 (18:41 -0800)]
Don't allow suspension from FindLocksAtDexPc

Transitioning to suspended from runnable sometimes runs dump
checkpoints in ThreadStress which can cause deadlocks. This happens
since FindLocksAtDexPC runs the verifier which calls
AllowThreadSuspension. This results in a blocked thread which holds
the monitor lock, and if another thread tries to do a monitor enter,
it deadlocks while holding the mutator lock (assuming the GC is
suspending all).

The fix for avoiding this deadlock is not calling
AllowThreadSuspension from FindLocksAtDexPc.

Bug: 18576985
Change-Id: I7e5faaf3bbbd5b5f680de95d53c33b5106705b0c

9 years agoMerge "Mute common case DexFile.isDexOptNeeded log spam"
Brian Carlstrom [Tue, 6 Jan 2015 20:33:52 +0000 (20:33 +0000)]
Merge "Mute common case DexFile.isDexOptNeeded log spam"

9 years agoMute common case DexFile.isDexOptNeeded log spam
Brian Carlstrom [Tue, 6 Jan 2015 20:05:34 +0000 (12:05 -0800)]
Mute common case DexFile.isDexOptNeeded log spam

Bug: 18914409
Change-Id: I885f1aa87c48ff25353d44b720c7cff24ed01e45

9 years agoMerge "ART: Remove LowestSetBit and IsPowerOfTwo"
Andreas Gampe [Tue, 6 Jan 2015 16:54:43 +0000 (16:54 +0000)]
Merge "ART: Remove LowestSetBit and IsPowerOfTwo"

9 years agoMerge "ART: Remove unused parts of x86 assemblers"
Andreas Gampe [Tue, 6 Jan 2015 16:54:15 +0000 (16:54 +0000)]
Merge "ART: Remove unused parts of x86 assemblers"

9 years agoMerge "ART: Fix divide-by-zero for ARM"
Andreas Gampe [Tue, 6 Jan 2015 16:53:10 +0000 (16:53 +0000)]
Merge "ART: Fix divide-by-zero for ARM"

9 years agoART: Fix divide-by-zero for ARM
Andreas Gampe [Tue, 6 Jan 2015 03:30:59 +0000 (19:30 -0800)]
ART: Fix divide-by-zero for ARM

There was an infinite loop in the code generation for a divide
by literal zero.

Bug: 18887754
Change-Id: Ibd481918d3c6d7bc62fdd1a6807042009f561d95

9 years agoART: Remove LowestSetBit and IsPowerOfTwo
Andreas Gampe [Tue, 6 Jan 2015 16:28:12 +0000 (08:28 -0800)]
ART: Remove LowestSetBit and IsPowerOfTwo

Remove those functions from Mir2Lir and replace with functionality
from utils.h.

Change-Id: Ieb67092b22d5d460b5241c7c7931c15b9faf2815

9 years agoART: Remove unused parts of x86 assemblers
Andreas Gampe [Tue, 6 Jan 2015 15:47:10 +0000 (07:47 -0800)]
ART: Remove unused parts of x86 assemblers

These functions are neither used nor functional.

Change-Id: Ib6d0761388a45662ad9448ceb2c539c6f0b77f23

9 years agoMerge "Improve Thumb disassembler for LDR/STR/PUSH/POP/BKPT."
Vladimir Marko [Tue, 6 Jan 2015 12:27:54 +0000 (12:27 +0000)]
Merge "Improve Thumb disassembler for LDR/STR/PUSH/POP/BKPT."

9 years agoMerge "Look at instruction set features when generating volatiles code"
Calin Juravle [Tue, 6 Jan 2015 12:10:48 +0000 (12:10 +0000)]
Merge "Look at instruction set features when generating volatiles code"

9 years agoImprove Thumb disassembler for LDR/STR/PUSH/POP/BKPT.
Vladimir Marko [Mon, 5 Jan 2015 15:17:01 +0000 (15:17 +0000)]
Improve Thumb disassembler for LDR/STR/PUSH/POP/BKPT.

Disassemble 16-bit Thumb PUSH, POP, BKPT.

Clean up 32-bit load/store to handle all cases (including
previously unrecognized indexed load/store) in one place;
this also fixes LDRSH erroneously disassembled as LDRSB.

Recognize more UNDEFINED instructions and other minor
cleanup.

Change-Id: Ifdd177745b70e3f774cc0469deb81191b035f51b

9 years agoMerge "ART: Add imgdiag_test test dependency"
Andreas Gampe [Tue, 6 Jan 2015 00:30:53 +0000 (00:30 +0000)]
Merge "ART: Add imgdiag_test test dependency"

9 years agoMerge "ART: Reorder entrypoint argument order"
Andreas Gampe [Mon, 5 Jan 2015 19:26:08 +0000 (19:26 +0000)]
Merge "ART: Reorder entrypoint argument order"

9 years agoMerge "Opt Compiler: ARM64: Add support for rem-float, rem-double and volatile."
Calin Juravle [Mon, 5 Jan 2015 18:30:49 +0000 (18:30 +0000)]
Merge "Opt Compiler: ARM64: Add support for rem-float, rem-double and volatile."

9 years agoOpt Compiler: ARM64: Add support for rem-float, rem-double and volatile.
Serban Constantinescu [Mon, 5 Jan 2015 16:08:49 +0000 (16:08 +0000)]
Opt Compiler: ARM64: Add support for rem-float, rem-double and volatile.

Add support for rem-float, rem-double and volatile memory accesses
using acquire-release and memory barriers.

Change-Id: I96a24dff66002c3b772c3d8e6ed792e3cb59048a
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
9 years agoLook at instruction set features when generating volatiles code
Calin Juravle [Fri, 19 Dec 2014 17:22:29 +0000 (17:22 +0000)]
Look at instruction set features when generating volatiles code

Change-Id: Ia882405719fdd60b63e4102af7e085f7cbe0bb2a

9 years agoMerge "Fix braino in x64 assembler."
Nicolas Geoffray [Mon, 5 Jan 2015 09:16:00 +0000 (09:16 +0000)]
Merge "Fix braino in x64 assembler."

9 years agoMerge "ART: Cut filename for DumpCFG"
Andreas Gampe [Fri, 2 Jan 2015 20:07:10 +0000 (20:07 +0000)]
Merge "ART: Cut filename for DumpCFG"

9 years agoMerge "ART: Ensure FP GET/PUT doesn't use Core register"
Bill Buzbee [Fri, 2 Jan 2015 19:21:24 +0000 (19:21 +0000)]
Merge "ART: Ensure FP GET/PUT doesn't use Core register"

9 years agoMerge "Implement LogLineLowStack() properly."
Vladimir Marko [Fri, 2 Jan 2015 16:22:06 +0000 (16:22 +0000)]
Merge "Implement LogLineLowStack() properly."

9 years agoImplement LogLineLowStack() properly.
Vladimir Marko [Fri, 2 Jan 2015 14:23:26 +0000 (14:23 +0000)]
Implement LogLineLowStack() properly.

Avoid stack-based buffers used by the log formatting in
__android_log_print().

Move the VLOG(threads) in Thread::InitStackHwm() after the
low stack check as it's not safe to actually log before
that; even the StringPrintf() is using a stack-based buffer.

Bug: 18830897
Change-Id: I13b2166438e871c52ab91dabfe98f2200fd7c1cf

9 years agoMerge "ART: New types of Checker assertions"
David Brazdil [Wed, 31 Dec 2014 16:16:29 +0000 (16:16 +0000)]
Merge "ART: New types of Checker assertions"