OSDN Git Service

android-x86/art.git
10 years agoMerge "Now we have a proper C++ library, use std::unique_ptr."
Ian Rogers [Tue, 20 May 2014 05:29:04 +0000 (05:29 +0000)]
Merge "Now we have a proper C++ library, use std::unique_ptr."

10 years agoNow we have a proper C++ library, use std::unique_ptr.
Ian Rogers [Mon, 19 May 2014 23:49:03 +0000 (16:49 -0700)]
Now we have a proper C++ library, use std::unique_ptr.

Also remove the Android.libcxx.mk and other bits of stlport compatibility
mechanics.

Change-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61

10 years agoMerge "Updating clean-oat again"
Brian Carlstrom [Tue, 20 May 2014 05:12:31 +0000 (05:12 +0000)]
Merge "Updating clean-oat again"

10 years agoMerge "Quick compiler, out of registers fix"
buzbee [Tue, 20 May 2014 03:10:48 +0000 (03:10 +0000)]
Merge "Quick compiler, out of registers fix"

10 years agoQuick compiler, out of registers fix
buzbee [Sun, 18 May 2014 06:16:26 +0000 (23:16 -0700)]
Quick compiler, out of registers fix

It turns out that the register pool sanity checker was not
working as expected, leaving some inconsistencies unreported.
This could result in "out of registers" failures, as well
as other more subtle problems.

This CL fixes the sanity checker, adds a lot more check and cleans
up the previously undetected episodes of insanity.

Cherry-pick of internal change 468162

Change-Id: Id2da97e99105a4c272c5fd256205a94b904ecea8

10 years agoUpdating clean-oat again
Brian Carlstrom [Mon, 19 May 2014 23:09:42 +0000 (16:09 -0700)]
Updating clean-oat again

Also fix test-art-host-oat dex2oat'ing to use the proper new directory layout.

Change-Id: I4a65e88910a72dbe342c814551e4364d73e26e9c

10 years agoMerge "Don't get and restore thread state for ScopedFastNativeObjectAccess."
Mathieu Chartier [Mon, 19 May 2014 23:48:46 +0000 (23:48 +0000)]
Merge "Don't get and restore thread state for ScopedFastNativeObjectAccess."

10 years agoMerge "ART: Fix ARM64 long-jump context caller-save smashes"
Andreas Gampe [Mon, 19 May 2014 23:20:26 +0000 (23:20 +0000)]
Merge "ART: Fix ARM64 long-jump context caller-save smashes"

10 years agoART: Fix ARM64 long-jump context caller-save smashes
Andreas Gampe [Mon, 19 May 2014 18:32:41 +0000 (11:32 -0700)]
ART: Fix ARM64 long-jump context caller-save smashes

In aarch64, d8-d15 are callee-saved. We smashed exactly the wrong
registers.

Add code to stub_test that checks whether the callee-saved fp
registers are preserved on ARM64. There are no callee-saved registers
for x86, so the invoke methods are not extended for those architectures.

Fix a minor type in callee-save frame setup for ARM64.

Bug: 14160872
Change-Id: I080fce6eda7d560b4efb610f0e9454f3471fa4f9

10 years agoDon't get and restore thread state for ScopedFastNativeObjectAccess.
Mathieu Chartier [Mon, 19 May 2014 17:52:16 +0000 (10:52 -0700)]
Don't get and restore thread state for ScopedFastNativeObjectAccess.

Before we would ensure that we were runnable for fast native object
access. However, these are done when you are already runnable.

Change-Id: Ia4c6e4c83d146fe2a988b37b3133ca46b0f0fa42

10 years agoMerge "Check and log a to-space overflow explicitly."
Hiroshi Yamauchi [Mon, 19 May 2014 21:19:54 +0000 (21:19 +0000)]
Merge "Check and log a to-space overflow explicitly."

10 years agoCheck and log a to-space overflow explicitly.
Hiroshi Yamauchi [Mon, 19 May 2014 19:49:45 +0000 (12:49 -0700)]
Check and log a to-space overflow explicitly.

Measured no noticeable performance regression with Ritzperf
EvaluateAndApplyChanges and -Xgc:SS on Mako.

Change-Id: Ib5ab934b867f91789a82ae771b45c95e9d01390c

10 years agoMerge "Build fix."
Ian Rogers [Mon, 19 May 2014 20:29:27 +0000 (20:29 +0000)]
Merge "Build fix."

10 years agoBuild fix.
Ian Rogers [Mon, 19 May 2014 20:28:52 +0000 (13:28 -0700)]
Build fix.

Change-Id: Ie5a3abb9a729a4a724e247b127c200a7be4d900d

10 years agoMerge "Remove unneeded realpath that was causing bad dependencies in a clean build"
Brian Carlstrom [Mon, 19 May 2014 19:08:33 +0000 (19:08 +0000)]
Merge "Remove unneeded realpath that was causing bad dependencies in a clean build"

10 years agoRemove unneeded realpath that was causing bad dependencies in a clean build
Brian Carlstrom [Mon, 19 May 2014 18:58:55 +0000 (11:58 -0700)]
Remove unneeded realpath that was causing bad dependencies in a clean build

(cherry picked from commit 361b324a396071aa6e32ca3296ab07818f887e59)

Change-Id: I59756a4ad89014d01e4022caf63d1ac34bef5c07

10 years agoMerge "Switch ART to libc++."
Dan Albert [Mon, 19 May 2014 18:47:59 +0000 (18:47 +0000)]
Merge "Switch ART to libc++."

10 years agoSwitch ART to libc++.
Ian Rogers [Fri, 16 May 2014 19:26:00 +0000 (12:26 -0700)]
Switch ART to libc++.

TODO: remove all vestiges of stlport.

Change-Id: I95a3cb0b53d0898f0a5d388b606e79522f4d85e0

10 years agoMerge "Follow up to "Add ISA directory to image and odex pathnames.""
Brian Carlstrom [Mon, 19 May 2014 18:22:18 +0000 (18:22 +0000)]
Merge "Follow up to "Add ISA directory to image and odex pathnames.""

10 years agoFollow up to "Add ISA directory to image and odex pathnames."
Brian Carlstrom [Mon, 19 May 2014 17:25:33 +0000 (10:25 -0700)]
Follow up to "Add ISA directory to image and odex pathnames."

Change-Id: I7f08cc3052fbed93a56ccf1ab7675ae8bc129da9

10 years agoMerge "Add ISA directory to image and odex pathnames."
Brian Carlstrom [Mon, 19 May 2014 16:50:20 +0000 (16:50 +0000)]
Merge "Add ISA directory to image and odex pathnames."

10 years agoMerge "Increase the size of guard for Stack Overflow (x86_64)"
Andreas Gampe [Mon, 19 May 2014 15:06:54 +0000 (15:06 +0000)]
Merge "Increase the size of guard for Stack Overflow (x86_64)"

10 years agoMerge "Build live ranges in preparation for register allocation."
Nicolas Geoffray [Mon, 19 May 2014 09:24:53 +0000 (09:24 +0000)]
Merge "Build live ranges in preparation for register allocation."

10 years agoBuild live ranges in preparation for register allocation.
Nicolas Geoffray [Fri, 16 May 2014 08:28:54 +0000 (09:28 +0100)]
Build live ranges in preparation for register allocation.

Change-Id: I7ae24afaa4e49276136bf34f4ba7d62db7f28c01

10 years agoIncrease the size of guard for Stack Overflow (x86_64)
Serguei Katkov [Wed, 14 May 2014 10:00:05 +0000 (17:00 +0700)]
Increase the size of guard for Stack Overflow (x86_64)

24K stack overflow guard is not enough for 64-bit working in
Interpreter mode. ART unit test 107-int-math2 crashes with it.

Patch increases the size to 32KB.

Change-Id: I8935c0f50f87c5ae0784dbae8be9db57ce2aebb3
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
10 years agoMerge "Make vixl tests a dependency in the vixl makefile."
Ian Rogers [Sun, 18 May 2014 22:09:12 +0000 (22:09 +0000)]
Merge "Make vixl tests a dependency in the vixl makefile."

10 years agoMake vixl tests a dependency in the vixl makefile.
Ian Rogers [Sun, 18 May 2014 20:03:52 +0000 (13:03 -0700)]
Make vixl tests a dependency in the vixl makefile.

This fixes run test-art-host for 64-bit hosts.
Depends upon: https://android-review.googlesource.com/#/c/94999/

Change-Id: Ic595b7a5f6c5ddb86b5b4c20e626baba6ac7a28e

10 years agoMerge "Delete ClassHelper and fix compaction bug in GetDirectInterface"
Mathieu Chartier [Sun, 18 May 2014 20:00:29 +0000 (20:00 +0000)]
Merge "Delete ClassHelper and fix compaction bug in GetDirectInterface"

10 years agoDelete ClassHelper and fix compaction bug in GetDirectInterface
Mathieu Chartier [Fri, 16 May 2014 17:59:25 +0000 (10:59 -0700)]
Delete ClassHelper and fix compaction bug in GetDirectInterface

Cleanup helps to prevent compaction bugs. Fixed a fairly serious
compaction error caused by calling ClassHelper::GetDirectInterface
without handling the case where it causes thread suspension due to
ResolveType.

Bug: 8981901

Change-Id: I82b3bb6dd48d21eb6ece7aae0733c4a23c2bc408

10 years agoMerge "ART: Move start of linear mmap_scan out of reserved space"
Andreas Gampe [Sat, 17 May 2014 01:45:05 +0000 (01:45 +0000)]
Merge "ART: Move start of linear mmap_scan out of reserved space"

10 years agoART: Move start of linear mmap_scan out of reserved space
Andreas Gampe [Sat, 17 May 2014 00:28:58 +0000 (17:28 -0700)]
ART: Move start of linear mmap_scan out of reserved space

The first 64KB are protected by SELinux, and we will never be
able to acquire them.

Bug: 15024270
Change-Id: I186a0d5262d396a089d4028a8527a9c56f96dc49

10 years agoMerge "Fix generic jni issue in ArtMethod::GetQuickFrameInfo"
Andreas Gampe [Sat, 17 May 2014 00:24:16 +0000 (00:24 +0000)]
Merge "Fix generic jni issue in ArtMethod::GetQuickFrameInfo"

10 years agoFix generic jni issue in ArtMethod::GetQuickFrameInfo
Dmitry Petrochenko [Fri, 16 May 2014 10:43:39 +0000 (17:43 +0700)]
Fix generic jni issue in ArtMethod::GetQuickFrameInfo

The 64-bit host mode fails to start due to incorrect
detection of GetQuickGenericJniTrampoline.
The quick_code is 32-bit and taken from oat file, but
GetQuickGenericJniTrampoline returnf 0x7fffxx (64-bit)
address of trampoline and execution went to incorrect way.

Some clean-up.

Original Author: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Change-Id: I0952443b2a9f6833ad37ec373837ae208681fad7

10 years agoMerge "Visit methods in stack frames during root visits."
Hiroshi Yamauchi [Sat, 17 May 2014 00:08:37 +0000 (00:08 +0000)]
Merge "Visit methods in stack frames during root visits."

10 years agoAdd ISA directory to image and odex pathnames.
Brian Carlstrom [Thu, 15 May 2014 00:44:28 +0000 (17:44 -0700)]
Add ISA directory to image and odex pathnames.

Bug: 14882223
Bug: 14694978
Change-Id: Ic1b5ae836b8e91ea461dcd4f3da8e38dc3bec00f

10 years agoMerge "ART: Turn off ARM64 compilation for now"
Andreas Gampe [Fri, 16 May 2014 22:47:16 +0000 (22:47 +0000)]
Merge "ART: Turn off ARM64 compilation for now"

10 years agoART: Turn off ARM64 compilation for now
Andreas Gampe [Fri, 16 May 2014 22:45:02 +0000 (15:45 -0700)]
ART: Turn off ARM64 compilation for now

When no compiler filter string is given to dex2oat for ARM64,
default to interpreter.

Change-Id: I2a97e07b1d9b75a04aafe4aaa4437e500bdaf202

10 years agoVisit methods in stack frames during root visits.
Hiroshi Yamauchi [Fri, 16 May 2014 04:43:59 +0000 (21:43 -0700)]
Visit methods in stack frames during root visits.

This is necessary for a Baker-style read barrier to-space invariant to
hold. That is, an object either needs to be marked/forwarded as root
or it must be accessed only through a read barrier by mutators. Since
stack frames have direct pointers to methods that a mutator can access
without a read barrier, stack frame methods have to be visited as
root, which makes sense as stack frames are thread roots. This is the
case even if methods do not move as they have to be marked 'gray' for
the objects pointed to by them, which can move, to be recursively
marked/forwarded.

This also puts us in the right direction toward moving methods (and
fields) in the future.

Bug: 12687968
Change-Id: Id32b913c021a140073deea9149a8782e8f308303

10 years agoMerge "Add missing header necessary for libc++."
Ian Rogers [Fri, 16 May 2014 19:28:33 +0000 (19:28 +0000)]
Merge "Add missing header necessary for libc++."

10 years agoAdd missing header necessary for libc++.
Ian Rogers [Fri, 16 May 2014 19:27:03 +0000 (12:27 -0700)]
Add missing header necessary for libc++.

Change-Id: I0fe951f681415cf40b3e3f606feffd5bd6bd14c8

10 years agoMerge "64-bit host multilib build."
Ying Wang [Fri, 16 May 2014 18:28:52 +0000 (18:28 +0000)]
Merge "64-bit host multilib build."

10 years agoMerge "ART: Add support for constant vector literals"
Bill Buzbee [Fri, 16 May 2014 18:06:42 +0000 (18:06 +0000)]
Merge "ART: Add support for constant vector literals"

10 years agoART: Add support for constant vector literals
Mark Mendell [Tue, 29 Apr 2014 20:55:20 +0000 (16:55 -0400)]
ART: Add support for constant vector literals

Add in some vector instructions.  Implement the ConstVector
instruction, which takes 4 words of data and loads it into
an XMM register.

Initially, only the ConstVector MIR opcode is implemented. Others will
be added after this one goes in.

Change-Id: I5c79bc8b7de9030ef1c213fc8b227debc47f6337
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
10 years ago64-bit host multilib build.
Ying Wang [Thu, 24 Apr 2014 01:19:44 +0000 (18:19 -0700)]
64-bit host multilib build.

Bug: 13751317
Change-Id: I98c0d593e441add79d51ec1b690c4abd3489a8cf

10 years agoMerge "Change ObjectLock to take Handle instead of Handle pointer."
Mathieu Chartier [Fri, 16 May 2014 17:41:50 +0000 (17:41 +0000)]
Merge "Change ObjectLock to take Handle instead of Handle pointer."

10 years agoChange ObjectLock to take Handle instead of Handle pointer.
Mathieu Chartier [Fri, 16 May 2014 16:59:29 +0000 (09:59 -0700)]
Change ObjectLock to take Handle instead of Handle pointer.

Change-Id: I9abdcdc5c9c9174634336b9250ab24c6aee434ec

10 years agoMerge "Add x86_64 code generation support"
Bill Buzbee [Fri, 16 May 2014 17:31:55 +0000 (17:31 +0000)]
Merge "Add x86_64 code generation support"

10 years agoMerge "add make target variables for gtests"
Tsu Chiang Chuang [Fri, 16 May 2014 17:22:54 +0000 (17:22 +0000)]
Merge "add make target variables for gtests"

10 years agoMerge "ART: Fix Segment Fault with null owner while monitor logging is enabled"
Mathieu Chartier [Fri, 16 May 2014 16:37:42 +0000 (16:37 +0000)]
Merge "ART: Fix Segment Fault with null owner while monitor logging is enabled"

10 years agoART: Fix Segment Fault with null owner while monitor logging is enabled
Haifeng Li [Fri, 16 May 2014 02:47:59 +0000 (10:47 +0800)]
ART: Fix Segment Fault with null owner while monitor logging is enabled

When the monitor inflates from thin to fat with the existing hashcode,
the owner is nullptr, which will cause segment fault with
owner->GetThreadId().

Change-Id: I90081d581a0ffd3d38763cc175fd2d7f66076747

10 years agoadd make target variables for gtests
Tsu Chiang Chuang [Fri, 16 May 2014 04:16:21 +0000 (21:16 -0700)]
add make target variables for gtests

Change-Id: I109dca4ffdb35484cdee49751cb5bb3be10dcb60

10 years agoMerge "AArch64: Fix quick compiler monitor implementation."
Bill Buzbee [Fri, 16 May 2014 12:34:27 +0000 (12:34 +0000)]
Merge "AArch64: Fix quick compiler monitor implementation."

10 years agoMerge "dalvikvm: create the dalvikvm symlink to the primary version"
Narayan Kamath [Fri, 16 May 2014 12:18:09 +0000 (12:18 +0000)]
Merge "dalvikvm: create the dalvikvm symlink to the primary version"

10 years agoAArch64: Fix quick compiler monitor implementation.
Zheng Xu [Thu, 15 May 2014 16:21:01 +0000 (17:21 +0100)]
AArch64: Fix quick compiler monitor implementation.

Also with some small fixes :
1. Enable some dex byte code to compile.
2. Copy the register definition from runtime.cc.
3. A quick fix for "cmp Wn, Wm" in the assembler.
4. Optimise GenMoveException a bit by using xzr.
5. Fix improper use of StoreValueWide() on 32-bit value in FlushIns().
6. Fix one debug assert in the assembler.
It can pass all cases in run-all-test, except 044 which also fails with
the interpreter.

Change-Id: I9cc0253f1039c78d5100640235ac33e884b02560

10 years agoMerge "Workaround for multi-line comment error when compiled with g++."
Nicolas Geoffray [Fri, 16 May 2014 08:48:11 +0000 (08:48 +0000)]
Merge "Workaround for multi-line comment error when compiled with g++."

10 years agoWorkaround for multi-line comment error when compiled with g++.
Nicolas Geoffray [Fri, 16 May 2014 08:36:00 +0000 (09:36 +0100)]
Workaround for multi-line comment error when compiled with g++.

Change-Id: I2f6921d698688526bc52cd7dd33fd39c6853dc09

10 years agoMerge "Linearize the graph before creating live ranges."
Nicolas Geoffray [Fri, 16 May 2014 08:10:05 +0000 (08:10 +0000)]
Merge "Linearize the graph before creating live ranges."

10 years agoLinearize the graph before creating live ranges.
Nicolas Geoffray [Wed, 14 May 2014 08:43:38 +0000 (09:43 +0100)]
Linearize the graph before creating live ranges.

Change-Id: I02eb5671e3304ab062286131745c1366448aff58

10 years agoMerge "Fix JDWP location event report on return instructions"
Sebastien Hertz [Fri, 16 May 2014 06:14:47 +0000 (06:14 +0000)]
Merge "Fix JDWP location event report on return instructions"

10 years agoMerge "Compatibility layer to transition from UniquePtr to std::unique_ptr."
Ian Rogers [Fri, 16 May 2014 00:06:58 +0000 (00:06 +0000)]
Merge "Compatibility layer to transition from UniquePtr to std::unique_ptr."

10 years agoCompatibility layer to transition from UniquePtr to std::unique_ptr.
Ian Rogers [Thu, 15 May 2014 23:42:40 +0000 (16:42 -0700)]
Compatibility layer to transition from UniquePtr to std::unique_ptr.

Use ART_WITH_STLPORT (enabled for the target) to cause the use of UniquePtr,
for the host switch to std::unique_ptr. For now the type remains called
UniquePtr.
Make dalvik compile with clang on the host, move its build to C++11.

Change-Id: I5ba8d2757904bc089ed62047ea03de3c0853fb12

10 years agoMerge "ART: A Compile Filter for x86_64"
Bill Buzbee [Thu, 15 May 2014 22:07:33 +0000 (22:07 +0000)]
Merge "ART: A Compile Filter for x86_64"

10 years agoMerge "Avoid some unnecessary use of stl types."
Ian Rogers [Thu, 15 May 2014 21:53:16 +0000 (21:53 +0000)]
Merge "Avoid some unnecessary use of stl types."

10 years agoAvoid some unnecessary use of stl types.
Ian Rogers [Thu, 15 May 2014 21:47:50 +0000 (14:47 -0700)]
Avoid some unnecessary use of stl types.

May be a minor performance win but really done for libc++ as this removes a
dependency on a library function whose prototype includes a std::string.

Change-Id: Ifc07a9caef1206caf2a69a6e1b0bfc0ba56c8c62

10 years agoMerge "ART: Make build error a warning for TARGET_CPU_SMP"
Andreas Gampe [Thu, 15 May 2014 21:45:44 +0000 (21:45 +0000)]
Merge "ART: Make build error a warning for TARGET_CPU_SMP"

10 years agoART: Make build error a warning for TARGET_CPU_SMP
Andreas Gampe [Thu, 15 May 2014 20:54:25 +0000 (13:54 -0700)]
ART: Make build error a warning for TARGET_CPU_SMP

Builds that do not build for targets will not have this information.
Make it a warning.

Change-Id: Ibd5fa6f5d2c1cf6d86de30df24d25eddb23fb81d

10 years agoMerge "Move RoS allocator to use unordered_set."
Ian Rogers [Thu, 15 May 2014 21:33:42 +0000 (21:33 +0000)]
Merge "Move RoS allocator to use unordered_set."

10 years agoMerge "Workaround x86 interpretter stack overflow"
Brian Carlstrom [Thu, 15 May 2014 20:09:03 +0000 (20:09 +0000)]
Merge "Workaround x86 interpretter stack overflow"

10 years agoMerge "Quick Compiler: fix Arm cts failures"
Bill Buzbee [Thu, 15 May 2014 19:55:32 +0000 (19:55 +0000)]
Merge "Quick Compiler: fix Arm cts failures"

10 years agoQuick Compiler: fix Arm cts failures
Bill Buzbee [Thu, 15 May 2014 13:57:54 +0000 (13:57 +0000)]
Quick Compiler: fix Arm cts failures

Fixes move_wide_16#testN1, move_wide_16#testN2

Two bugs for the price of one (thanks CTS!)

First, the new stack overflow checking code was broken for very
large frames.  For Arm on method entry, we only have 1 available
temp register, r12, until argument registers are flushed.
Previously, for explicit checks on large frames,
r12 was immediately loaded with the stack_end value.  However,
later on when the frame is extended, if the frame size exceeds
the range of a reg-reg-imm subtract, the codegen utilities will
allocate a new temporary register to complete the operation. r12
was getting clobbered.  Similarly, for medium-large frames r12
could get clobbered during frame creation.

What we should always do when directly using fixed registers like
this is to lock them to prevent them from being allocated as a
temp.  The other half of the first bug is easily solved by delaying
the load of stack_end until after the new sp is computed.  We'll
increase the stall cost, but this is an uncommon case.

The second bug was likely a typo in LoadValueDisp().  I'm a bit
surprised we hadn't hit this one earlier - but perhaps it was
recently introduced.  The wrong base register was being used in
the non-float, wide, excessive offset case (which I suppose is also
somewhat uncommon).

Cherry-pick of internal commit If5b30f729e31d86db604045dd7581fd4626e0b55

Change-Id: If5b30f729e31d86db604045dd7581fd4626e0b55

10 years agoMerge "ART: Fix MonitorExit code on ARM"
Andreas Gampe [Thu, 15 May 2014 19:34:40 +0000 (19:34 +0000)]
Merge "ART: Fix MonitorExit code on ARM"

10 years agoART: Fix MonitorExit code on ARM
Andreas Gampe [Thu, 15 May 2014 18:16:06 +0000 (11:16 -0700)]
ART: Fix MonitorExit code on ARM

We do not emit barriers on non-SMP systems. But on ARM, we have
places that need to conditionally execute, which is done through
an IT instruction. The guide of said instruction thus changes
between SMP and non-SMP systems.

To cleanly approach this, change the API so that GenMemBarrier
returns whether it generated an instruction. ARM will have to
query the result and update any dependent IT.

Throw a build system error if TARGET_CPU_SMP is not set.

Fix runtime/Android.mk to work with new multilib host.

Bug: 14989275
Change-Id: I9e611b770e8a1cd4ca19367d7dae0573ec08dc61

10 years agoMove RoS allocator to use unordered_set.
Ian Rogers [Thu, 15 May 2014 18:43:06 +0000 (11:43 -0700)]
Move RoS allocator to use unordered_set.

Work-around existing stlport issues for the target. This will go away when the
target is using libc++.

Change-Id: I8f213ecd9dc7d93d17f4a0d7e84182c12af6ca1b

10 years agoWorkaround x86 interpretter stack overflow
Brian Carlstrom [Thu, 15 May 2014 18:18:29 +0000 (11:18 -0700)]
Workaround x86 interpretter stack overflow

Bug: 14982147
Change-Id: I5fa5c30dbac7e50dd6dd7c8d12bbc769c0dfc150

10 years agoMerge "Don't import llvm.mk for non-portable builds."
Ian Rogers [Thu, 15 May 2014 17:23:38 +0000 (17:23 +0000)]
Merge "Don't import llvm.mk for non-portable builds."

10 years agoMerge "Declare variable for all art oat tests"
Tsu Chiang Chuang [Thu, 15 May 2014 17:08:31 +0000 (17:08 +0000)]
Merge "Declare variable for all art oat tests"

10 years agoDeclare variable for all art oat tests
Tsu Chiang Chuang [Thu, 15 May 2014 16:59:33 +0000 (09:59 -0700)]
Declare variable for all art oat tests

Change-Id: If0795928ab08bbce80479eec32b987662631b8cf

10 years agoMerge "Improve large object free CHECK"
Mathieu Chartier [Thu, 15 May 2014 16:43:53 +0000 (16:43 +0000)]
Merge "Improve large object free CHECK"

10 years agoImprove large object free CHECK
Mathieu Chartier [Thu, 15 May 2014 16:35:48 +0000 (09:35 -0700)]
Improve large object free CHECK

The new CHECK prints the address of the object.

Bug: 14974497

Change-Id: I8e9e9f66767a220330cc77ef6549529bb2ac4112

10 years agoMerge "Fix CompilationUnit constructor issues."
Ian Rogers [Thu, 15 May 2014 16:20:42 +0000 (16:20 +0000)]
Merge "Fix CompilationUnit constructor issues."

10 years agoFix CompilationUnit constructor issues.
Ian Rogers [Thu, 15 May 2014 16:11:23 +0000 (09:11 -0700)]
Fix CompilationUnit constructor issues.

Ensure target64 is initialized. Switch from NULL to nullptr as the former gives
compilation errors with std::unique_ptr from libc++.

Change-Id: I7153368d9324d10ef257f7c7ce9571a1753e5ba8

10 years agoDon't import llvm.mk for non-portable builds.
Ian Rogers [Thu, 15 May 2014 16:03:20 +0000 (09:03 -0700)]
Don't import llvm.mk for non-portable builds.

Change-Id: I447e7d816c0e4f84bc4d13bc34ff93b026d192b5

10 years agoFix JDWP location event report on return instructions
Sebastien Hertz [Thu, 15 May 2014 08:48:53 +0000 (10:48 +0200)]
Fix JDWP location event report on return instructions

After change https://android-review.googlesource.com/94334, the debugger may
listen to kDexPcChange event without listening for kMethodExit event. In this
case, we need to report kDexPcChange event on RETURN instructions.

Bug: 11874828
Change-Id: Ic61f4eec71e7ece494bee628d7f3358a616d31d3

10 years agoMerge "ART: Resolve MAP_32BIT limitation in x86_64"
Andreas Gampe [Thu, 15 May 2014 14:45:44 +0000 (14:45 +0000)]
Merge "ART: Resolve MAP_32BIT limitation in x86_64"

10 years agoMerge "Fix build"
Sebastien Hertz [Thu, 15 May 2014 09:30:08 +0000 (09:30 +0000)]
Merge "Fix build"

10 years agoFix build
Sebastien Hertz [Thu, 15 May 2014 09:26:34 +0000 (11:26 +0200)]
Fix build

Fix format error.

Change-Id: Ic793c52f46d645bf88ea6b28d5b4fa1bdb315a20

10 years agoMerge "Register debugger for interesting instrumentation events only"
Sebastien Hertz [Thu, 15 May 2014 08:10:45 +0000 (08:10 +0000)]
Merge "Register debugger for interesting instrumentation events only"

10 years agoRegister debugger for interesting instrumentation events only
Sebastien Hertz [Tue, 13 May 2014 12:15:41 +0000 (14:15 +0200)]
Register debugger for interesting instrumentation events only

This avoids the overhead of notifying events (like method entry/exit, field
read/write, ...) from the interpreter when they are not requested on the JDWP
side. It also avoids burning JDWP ids for objects and classes before we find
out we do not need to report the event.

When we register a JDWP event (like a breakpoint), we add the debugger as
a listener for the corresponding instrumentation event (like kDexPcChanged).
On the other hand, when a JDWP event is cleared, we remove the debugger as a
listener for the corresponding instrumentation event. To control we add/remove
the debugger as listener only once per instrumentation event, we use reference
counting.

Like deoptimization, we can update instrumentation listeners only when when all
mutator threads are suspended. To add or remove the debugger as listener, we
extend the support of deoptimization requests to a more general support dealing
with instrumentation requests.
We add kRegisterForEvent and kUnregisterForEvent request kinds, respectively to
add or remove the debugger as a listener for a given instrumentation event.
Note: we will rename the related classes, methods, ... to avoid pollution in
the code review.

This CL also fixes Instrumentation::IsActive to take field read/write events
into account.

Bug: 14401699
Bug: 14826953
Change-Id: Ic896469e82a8589de419ebea4b9dc3116925f3ab

10 years agoMerge "Combine JDWP location events"
Sebastien Hertz [Thu, 15 May 2014 06:56:11 +0000 (06:56 +0000)]
Merge "Combine JDWP location events"

10 years agoART: Resolve MAP_32BIT limitation in x86_64
Qiming Shi [Thu, 24 Apr 2014 07:38:41 +0000 (15:38 +0800)]
ART: Resolve MAP_32BIT limitation in x86_64

Add checks that ensure when low4gb is set and an expected pointer
is given the requested memory fits into 4GB.

On x86_64, only use MAP_32BIT when there is no expected pointer.
This avoids a limitation in mmap (only 2GB visible).

Add tests to check behavior.

Original Author: Qiming Shi <qiming.shi@intel.com>
Change-Id: Ia2e3e0a46764ef70126b0c264f1fae681622d3cb

10 years agoMerge "ART: Fix oat_test for 64b"
Andreas Gampe [Thu, 15 May 2014 01:19:02 +0000 (01:19 +0000)]
Merge "ART: Fix oat_test for 64b"

10 years agoART: Fix oat_test for 64b
Andreas Gampe [Thu, 15 May 2014 00:37:41 +0000 (17:37 -0700)]
ART: Fix oat_test for 64b

The QuickEntryPoints structure has a size dependent on the pointer
size.

Change-Id: I369353200430a6ccaccded7589105312fd411b97

10 years agoMerge "ART: Fix typo in ArtMethod::FindCatchBlock"
Andreas Gampe [Thu, 15 May 2014 00:35:31 +0000 (00:35 +0000)]
Merge "ART: Fix typo in ArtMethod::FindCatchBlock"

10 years agoART: Fix typo in ArtMethod::FindCatchBlock
Andreas Gampe [Wed, 14 May 2014 04:42:05 +0000 (21:42 -0700)]
ART: Fix typo in ArtMethod::FindCatchBlock

The thrown exception is always resolved, as we have an instance of
it. What is potentially not resolved is the catch handler's exception
type.

The resolution failure will trigger a NoClassDefFoundError, which
should replace the original exception. For this, the API has to be
changed a little bit to tell callers that there was this change.

Change-Id: Id51d54a15c732ed175eb617b3b0331b89cbb2051

10 years agoMerge "Fix race in inflating thin locks."
Mathieu Chartier [Thu, 15 May 2014 00:32:14 +0000 (00:32 +0000)]
Merge "Fix race in inflating thin locks."

10 years agoFix race in inflating thin locks.
Mathieu Chartier [Wed, 14 May 2014 23:51:03 +0000 (16:51 -0700)]
Fix race in inflating thin locks.

Before we were inflating the lock word in the blocked state, this
meant that the garbage collector could be running at this point
resulting in the lock word changing from underneath us.

Bug: 14881707
Change-Id: If8897b2572a1b29a3cf44e5eb2e11c186236f519

10 years agoMerge "ART: Fix PWD in oat tests"
Andreas Gampe [Wed, 14 May 2014 23:55:45 +0000 (23:55 +0000)]
Merge "ART: Fix PWD in oat tests"

10 years agoMerge "Declare variable for all art dex tests."
Brian Carlstrom [Wed, 14 May 2014 23:47:34 +0000 (23:47 +0000)]
Merge "Declare variable for all art dex tests."

10 years agoMerge "ART: Fix comments for dmb"
Andreas Gampe [Wed, 14 May 2014 23:36:59 +0000 (23:36 +0000)]
Merge "ART: Fix comments for dmb"

10 years agoART: Fix comments for dmb
Andreas Gampe [Wed, 14 May 2014 23:28:34 +0000 (16:28 -0700)]
ART: Fix comments for dmb

Update the comments to mention correct barrier type.

Bug: 14680557
Change-Id: I26df43078c189cf16cc65e99b851981cbd063017