OSDN Git Service

android-x86/art.git
10 years agoMerge "Revert "ART: Extracts an utility function of the duplicated code""
Andreas Gampe [Thu, 24 Apr 2014 17:30:53 +0000 (17:30 +0000)]
Merge "Revert "ART: Extracts an utility function of the duplicated code""

10 years agoRevert "ART: Extracts an utility function of the duplicated code"
Andreas Gampe [Thu, 24 Apr 2014 17:30:35 +0000 (17:30 +0000)]
Revert "ART: Extracts an utility function of the duplicated code"

This reverts commit 973cc95da6fb617bab133bd7a693c1cb7eafd393.

Change-Id: I3883c74ba06116e89d89d9cf085f20cff5d15f77

10 years agoMerge "Add test that Class.newInstance does not wrap its exceptions."
Jeff Hao [Thu, 24 Apr 2014 16:06:14 +0000 (16:06 +0000)]
Merge "Add test that Class.newInstance does not wrap its exceptions."

10 years agoMerge "ART: Extracts an utility function of the duplicated code"
Andreas Gampe [Thu, 24 Apr 2014 15:46:02 +0000 (15:46 +0000)]
Merge "ART: Extracts an utility function of the duplicated code"

10 years agoART: Extracts an utility function of the duplicated code
Dmitry Petrochenko [Fri, 18 Apr 2014 07:53:09 +0000 (14:53 +0700)]
ART: Extracts an utility function of the duplicated code

This patch introduces an utility function 'DataOffsetOfType' in
'mirror::Array' class that calculates the data offset at given index
in an array of given type.

Change-Id: Idb19558653c70a129245f220f0fbb553f898865b
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
10 years agoMerge "ART: Fixes an issue with REX prefix for instructions with no ModRM byte"
Ian Rogers [Thu, 24 Apr 2014 06:20:29 +0000 (06:20 +0000)]
Merge "ART: Fixes an issue with REX prefix for instructions with no ModRM byte"

10 years agoAdd test that Class.newInstance does not wrap its exceptions.
Jeff Hao [Wed, 23 Apr 2014 21:51:46 +0000 (14:51 -0700)]
Add test that Class.newInstance does not wrap its exceptions.

Unlike Constructor.newInstance, Class.newInstance should not wrap
exceptions it throws.

Bug: https://code.google.com/p/android/issues/detail?id=68620

Change-Id: I47d78904e72f299284d1382bc715ab120d3b1a7f

10 years agoMerge "Don't allow heap transitions if the runtime is shutting down."
Mathieu Chartier [Thu, 24 Apr 2014 00:17:52 +0000 (00:17 +0000)]
Merge "Don't allow heap transitions if the runtime is shutting down."

10 years agoMerge "art: fix dlopen error message"
Colin Cross [Wed, 23 Apr 2014 22:42:51 +0000 (22:42 +0000)]
Merge "art: fix dlopen error message"

10 years agoart: fix dlopen error message
Colin Cross [Wed, 23 Apr 2014 21:56:31 +0000 (14:56 -0700)]
art: fix dlopen error message

detail is a std::string *, dereference it when logging the error
message.

Change-Id: If73a5806445df17d91ff1a7f4f3a6d31f0e9f54e

10 years agoMerge "Delete throw launchpads."
Mingyao Yang [Wed, 23 Apr 2014 22:02:33 +0000 (22:02 +0000)]
Merge "Delete throw launchpads."

10 years agoDon't allow heap transitions if the runtime is shutting down.
Mathieu Chartier [Wed, 23 Apr 2014 21:41:11 +0000 (14:41 -0700)]
Don't allow heap transitions if the runtime is shutting down.

Bug: 14254222
Change-Id: I97ac988a96b56a8dc1eec018bf3ef7a691f04745

10 years agoMerge "Separate maps from code in oat file."
Vladimir Marko [Wed, 23 Apr 2014 08:50:20 +0000 (08:50 +0000)]
Merge "Separate maps from code in oat file."

10 years agoMerge "Fix FindCatchBlock to work in -Xverify:none mode."
Jeff Hao [Wed, 23 Apr 2014 00:16:15 +0000 (00:16 +0000)]
Merge "Fix FindCatchBlock to work in -Xverify:none mode."

10 years agoFix FindCatchBlock to work in -Xverify:none mode.
Jeff Hao [Tue, 22 Apr 2014 20:54:32 +0000 (13:54 -0700)]
Fix FindCatchBlock to work in -Xverify:none mode.

FindCatchBlock now uses ResolveType to get the exception type,
since it might not be able to find it in the dex cache.

Bug: 13948502
Change-Id: Ia6f1c7dc743206ae1c8551bf6239f48ee4d3a784

10 years agoMerge "Remove support for app JNI workarounds."
Ian Rogers [Tue, 22 Apr 2014 23:03:01 +0000 (23:03 +0000)]
Merge "Remove support for app JNI workarounds."

10 years agoMerge "Warn when thread state lookup fails."
Ian Rogers [Tue, 22 Apr 2014 22:16:48 +0000 (22:16 +0000)]
Merge "Warn when thread state lookup fails."

10 years agoRemove support for app JNI workarounds.
Ian Rogers [Tue, 22 Apr 2014 18:42:59 +0000 (11:42 -0700)]
Remove support for app JNI workarounds.

Change-Id: I4396df7e93fcace4b5b19c2c387e5c30089182a6

10 years agoMerge "Update load/store utilities for 64-bit backends"
buzbee [Tue, 22 Apr 2014 19:51:16 +0000 (19:51 +0000)]
Merge "Update load/store utilities for 64-bit backends"

10 years agoUpdate load/store utilities for 64-bit backends
buzbee [Sat, 19 Apr 2014 20:32:20 +0000 (13:32 -0700)]
Update load/store utilities for 64-bit backends

This CL replaces the typical use of LoadWord/StoreWord
utilities (which, in practice, were 32-bit load/store) in
favor of a new set that make the size explicit.  We now have:

   LoadWordDisp/StoreWordDisp:
    32 or 64 depending on target.  Load or store the natural
    word size.  Expect this to be used infrequently - generally
    when we know we're dealing with a native pointer or flushed
    register not holding a Dalvik value (Dalvik values will flush
    to home location sizes based on Dalvik, rather than the target).

   Load32Disp/Store32Disp:
     Load or store 32 bits, regardless of target.

   Load64Disp/Store64Disp:
     Load or store 64 bits, regardless of target.

   LoadRefDisp:
     Load a 32-bit compressed reference, and expand it to the
     natural word size in the target register.

   StoreRefDisp:
     Compress a reference held in a register of the natural word
     size and store it as a 32-bit compressed reference.

Change-Id: I50fcbc8684476abd9527777ee7c152c61ba41c6f

10 years agoMerge "Return bytes freed from RosAlloc."
Mathieu Chartier [Tue, 22 Apr 2014 18:12:32 +0000 (18:12 +0000)]
Merge "Return bytes freed from RosAlloc."

10 years agoReturn bytes freed from RosAlloc.
Mathieu Chartier [Sat, 12 Apr 2014 00:53:48 +0000 (17:53 -0700)]
Return bytes freed from RosAlloc.

There was a problem with how RosAlloc space sweeping worked caused by
using the object size in the FreeList call, this won't work well with
class unloading since the object's class may be freed before the
object.

Bug: 13989231
Change-Id: I3df439c312310720fd34249334dec85030166fe9

10 years agoWarn when thread state lookup fails.
Ian Rogers [Tue, 22 Apr 2014 17:51:17 +0000 (10:51 -0700)]
Warn when thread state lookup fails.

Change-Id: I06781caddcade26148921bc225f28db8b3a63a35

10 years agoSeparate maps from code in oat file.
Vladimir Marko [Tue, 8 Apr 2014 13:00:50 +0000 (14:00 +0100)]
Separate maps from code in oat file.

Write all GC maps first, then all mapping tables and then
all vmap tables and only then align the offset to page size
and write all method code chunks with headers.

Bug: 11767815
Change-Id: Ic83555c8303c5be119afc43e95e58c0a32ff2a4f

10 years agoMerge "Avoid allocating OatFile::OatClass on the heap."
Vladimir Marko [Tue, 22 Apr 2014 13:25:20 +0000 (13:25 +0000)]
Merge "Avoid allocating OatFile::OatClass on the heap."

10 years agoMerge "Fix crash when debugging exception"
Sebastien Hertz [Tue, 22 Apr 2014 09:23:39 +0000 (09:23 +0000)]
Merge "Fix crash when debugging exception"

10 years agoMerge "Revert "64bit changes to the stack walker for the Quick ABI.""
Nicolas Geoffray [Tue, 22 Apr 2014 08:30:46 +0000 (08:30 +0000)]
Merge "Revert "64bit changes to the stack walker for the Quick ABI.""

10 years agoRevert "64bit changes to the stack walker for the Quick ABI."
Nicolas Geoffray [Tue, 22 Apr 2014 08:30:19 +0000 (08:30 +0000)]
Revert "64bit changes to the stack walker for the Quick ABI."

This reverts commit 5cb328362a633302ca0fcdbaa0da7d94069df051.

Change-Id: Icc0ec1a9f15c2e4e9103e732d7ba75a4feb853b1

10 years agoMerge "64bit changes to the stack walker for the Quick ABI."
Nicolas Geoffray [Tue, 22 Apr 2014 07:48:56 +0000 (07:48 +0000)]
Merge "64bit changes to the stack walker for the Quick ABI."

10 years agoMerge "Speed up single-stepping"
Sebastien Hertz [Tue, 22 Apr 2014 07:05:52 +0000 (07:05 +0000)]
Merge "Speed up single-stepping"

10 years agoMerge "GenArithOpInt should ensure that reg is in core"
Bill Buzbee [Tue, 22 Apr 2014 04:37:42 +0000 (04:37 +0000)]
Merge "GenArithOpInt should ensure that reg is in core"

10 years agoDelete throw launchpads.
Mingyao Yang [Mon, 21 Apr 2014 22:39:44 +0000 (15:39 -0700)]
Delete throw launchpads.

Bug: 13170824

Change-Id: I9d5834f5a66f5eb00f2ac80774e8c27dea99949e

10 years agoMerge "Revert "Revert "Use LIRSlowPath for throwing ArrayOutOfBoundsException."""
Mingyao Yang [Mon, 21 Apr 2014 22:30:12 +0000 (22:30 +0000)]
Merge "Revert "Revert "Use LIRSlowPath for throwing ArrayOutOfBoundsException."""

10 years agoMerge "Add an option to specify a list of methods for LIR dumping."
Mingyao Yang [Mon, 21 Apr 2014 21:50:49 +0000 (21:50 +0000)]
Merge "Add an option to specify a list of methods for LIR dumping."

10 years agoMerge "ART: GTest target tests missing "PASSED""
Andreas Gampe [Mon, 21 Apr 2014 17:45:40 +0000 (17:45 +0000)]
Merge "ART: GTest target tests missing "PASSED""

10 years agoART: GTest target tests missing "PASSED"
Andreas Gampe [Mon, 21 Apr 2014 16:51:07 +0000 (09:51 -0700)]
ART: GTest target tests missing "PASSED"

This seems to have gotten lost a while ago.

Change-Id: Ia0114d4fc0dfcf6e53339307cd556e168312fc53

10 years agoMerge "Fix dependencies in the test suite for multi-target tests"
Andreas Gampe [Mon, 21 Apr 2014 16:33:28 +0000 (16:33 +0000)]
Merge "Fix dependencies in the test suite for multi-target tests"

10 years agoFix dependencies in the test suite for multi-target tests
Andreas Gampe [Mon, 21 Apr 2014 14:50:39 +0000 (07:50 -0700)]
Fix dependencies in the test suite for multi-target tests

Change-Id: I94dd767490a7cd8cceddc158d90f56f5bd3fef26

10 years agoAdd an option to specify a list of methods for LIR dumping.
Mingyao Yang [Fri, 18 Apr 2014 23:49:39 +0000 (16:49 -0700)]
Add an option to specify a list of methods for LIR dumping.

An example would be:
--runtime-arg -verbose-methods:Array.checkRange32,Array.checkRange64
or
"-verbose-methods:void Array.checkRange32,void Array.checkRange64"

Change-Id: I61c1eb3b2eb4b24126a9264261c27889d53cc6bd

10 years agoMerge "Get instruction-set/features from build/core/config.mk"
Ian Rogers [Fri, 18 Apr 2014 23:23:04 +0000 (23:23 +0000)]
Merge "Get instruction-set/features from build/core/config.mk"

10 years agoGet instruction-set/features from build/core/config.mk
Ian Rogers [Fri, 18 Apr 2014 22:40:37 +0000 (15:40 -0700)]
Get instruction-set/features from build/core/config.mk

Depends upon https://android-review.googlesource.com/#/c/91524

Change-Id: Iad1a1b0499aac7acf7c4e42b62bb3fe4474e2f47

10 years agoMerge "Modify unwind to comply with stack parser tools."
Christopher Ferris [Fri, 18 Apr 2014 22:44:14 +0000 (22:44 +0000)]
Merge "Modify unwind to comply with stack parser tools."

10 years agoModify unwind to comply with stack parser tools.
Christopher Ferris [Thu, 17 Apr 2014 02:13:59 +0000 (19:13 -0700)]
Modify unwind to comply with stack parser tools.

Bug: 14081592

Change-Id: I6906b2575c74d64f1c3ba7602779b3a789de1c69

10 years agoMerge "Fixing missing newlines in Usage calls"
Brian Carlstrom [Fri, 18 Apr 2014 22:05:59 +0000 (22:05 +0000)]
Merge "Fixing missing newlines in Usage calls"

10 years agoRevert "Revert "Use LIRSlowPath for throwing ArrayOutOfBoundsException.""
Mingyao Yang [Fri, 18 Apr 2014 19:10:58 +0000 (12:10 -0700)]
Revert "Revert "Use LIRSlowPath for throwing ArrayOutOfBoundsException.""

This adds back using LIRSlowPath for ArrayIndexOutOfBoundsException.
And fix the host test crash.

Change-Id: Idbb602f4bb2c5ce59233feb480a0ff1b216e4887

10 years agoFixing missing newlines in Usage calls
Brian Carlstrom [Fri, 18 Apr 2014 21:18:41 +0000 (14:18 -0700)]
Fixing missing newlines in Usage calls

Change-Id: Ie5f1098dc7b3c485732bff929d36dbcc4b69511f

10 years agoMerge "Fix ForegroundHeapGrowthMultiplier and ParseDouble."
Mathieu Chartier [Fri, 18 Apr 2014 21:07:44 +0000 (21:07 +0000)]
Merge "Fix ForegroundHeapGrowthMultiplier and ParseDouble."

10 years agoFix ForegroundHeapGrowthMultiplier and ParseDouble.
Mathieu Chartier [Fri, 18 Apr 2014 19:02:39 +0000 (12:02 -0700)]
Fix ForegroundHeapGrowthMultiplier and ParseDouble.

ForegroundHeapGrowthMultiplier had a bad range of allowed values.
The new range is 0.1 - 10.0 instead of 0.1 to 0.9. ParseDouble usage
had incorrect printing var args and caused segfaults.

Change-Id: I4573005ee9f888cc8140200543176d6a2e17fccc

10 years agoMerge "Replace ObjectSet with LargeObjectBitmap."
Mathieu Chartier [Fri, 18 Apr 2014 18:27:49 +0000 (18:27 +0000)]
Merge "Replace ObjectSet with LargeObjectBitmap."

10 years agoMerge "Fix elf_writer_test for 64b target"
Andreas Gampe [Fri, 18 Apr 2014 17:11:36 +0000 (17:11 +0000)]
Merge "Fix elf_writer_test for 64b target"

10 years agoFix elf_writer_test for 64b target
Andreas Gampe [Fri, 18 Apr 2014 17:00:40 +0000 (10:00 -0700)]
Fix elf_writer_test for 64b target

The path to the core oat file is dependent on the bit-ness.

Change-Id: I725b9b0f760ae14d0c38d747ad31821da7445dec

10 years ago64bit changes to the stack walker for the Quick ABI.
Nicolas Geoffray [Thu, 17 Apr 2014 13:05:19 +0000 (14:05 +0100)]
64bit changes to the stack walker for the Quick ABI.

- Spill registers have different sizes.
- The ArtMethod at the bottom of the stack is always of kWordSize.

Change-Id: I92f67ff928477970c393c7146980255d08e8e6af

10 years agoMerge "Revert "Use LIRSlowPath for throwing ArrayOutOfBoundsException.""
Sebastien Hertz [Fri, 18 Apr 2014 06:45:02 +0000 (06:45 +0000)]
Merge "Revert "Use LIRSlowPath for throwing ArrayOutOfBoundsException.""

10 years agoRevert "Use LIRSlowPath for throwing ArrayOutOfBoundsException."
Brian Carlstrom [Fri, 18 Apr 2014 06:11:17 +0000 (23:11 -0700)]
Revert "Use LIRSlowPath for throwing ArrayOutOfBoundsException."

This reverts commit 9d46314a309aff327f9913789b5f61200c162609.

10 years agoMerge "Fix a use of OpCondBranch that breaks the MIPS build."
Ian Rogers [Fri, 18 Apr 2014 05:50:59 +0000 (05:50 +0000)]
Merge "Fix a use of OpCondBranch that breaks the MIPS build."

10 years agoGenArithOpInt should ensure that reg is in core
Serguei Katkov [Tue, 15 Apr 2014 09:55:26 +0000 (16:55 +0700)]
GenArithOpInt should ensure that reg is in core

GenArithOpInt in two-addr case of add-int where destination is in
register should ensure that it is a core reg.

Change-Id: I5b5ca126773a2bb45f9b23ad892102b034d694b4
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
10 years agoReplace ObjectSet with LargeObjectBitmap.
Mathieu Chartier [Wed, 16 Apr 2014 16:48:48 +0000 (09:48 -0700)]
Replace ObjectSet with LargeObjectBitmap.

Speeds up large object marking since large objects no longer required
a lock. Changed the GCs to use the heap bitmap for marking objects
which aren't in the fast path. This eliminates the need for a
MarkLargeObject function.

Maps before (10 GC iterations):
Mean partial time: 180ms
Mean sticky time: 151ms

Maps after:
Mean partial time: 161ms
Mean sticky time: 101ms

Note: the GC durations are long due to recent ergonomic changes and
because the fast bulk free hasn't yet been enabled. Over 50% of the
GC time is spent in RosAllocSpace::FreeList.

Bug: 13571028

Change-Id: Id8f94718aeaa13052672ccbae1e8edf77d653f62

10 years agoFix a use of OpCondBranch that breaks the MIPS build.
Mingyao Yang [Fri, 18 Apr 2014 01:46:24 +0000 (18:46 -0700)]
Fix a use of OpCondBranch that breaks the MIPS build.

Change-Id: I09e19cb00c1e3f4bc0b0293f58674c9160094f7f

10 years agoMerge "Use LIRSlowPath for throwing ArrayOutOfBoundsException."
Mingyao Yang [Fri, 18 Apr 2014 00:18:27 +0000 (00:18 +0000)]
Merge "Use LIRSlowPath for throwing ArrayOutOfBoundsException."

10 years agoMerge "Interpreter-only mode should cause dex-to-dex compilation."
Ian Rogers [Fri, 18 Apr 2014 00:18:10 +0000 (00:18 +0000)]
Merge "Interpreter-only mode should cause dex-to-dex compilation."

10 years agoInterpreter-only mode should cause dex-to-dex compilation.
Ian Rogers [Thu, 17 Apr 2014 23:40:01 +0000 (16:40 -0700)]
Interpreter-only mode should cause dex-to-dex compilation.

Also, fix quick iget/iput that had similar issues to:
https://android-review.googlesource.com/91423
Also, remove fall-back resolution code from quick invokes/igets/iputs as we
allow class loading for the exception throw and regular verification already
allows class loading.
Bug: 14133618

Change-Id: I51199e6e2392da0354f64b157e79af494c183778

10 years agoMerge "Comment disallow new monitors."
Ian Rogers [Thu, 17 Apr 2014 23:38:39 +0000 (23:38 +0000)]
Merge "Comment disallow new monitors."

10 years agoComment disallow new monitors.
Ian Rogers [Thu, 17 Apr 2014 23:08:07 +0000 (16:08 -0700)]
Comment disallow new monitors.

Change-Id: Ie50424c73be051f9856ef9e86bdbf83fa76bbc48

10 years agoMerge "Use non volatile lock words in semispace collector."
Mathieu Chartier [Thu, 17 Apr 2014 23:06:26 +0000 (23:06 +0000)]
Merge "Use non volatile lock words in semispace collector."

10 years agoUse non volatile lock words in semispace collector.
Mathieu Chartier [Thu, 17 Apr 2014 21:43:39 +0000 (14:43 -0700)]
Use non volatile lock words in semispace collector.

GSS FormulaEvaluationActions.EvaluateAndApplyChanges:
Before GC time: 9.1s
After GC time: 7.98s

Fixed timing logger errors.

Change-Id: I4193c6ccbbbe7a7220dfaabbf3472a5dcebae616

10 years agoUse LIRSlowPath for throwing ArrayOutOfBoundsException.
Mingyao Yang [Thu, 17 Apr 2014 22:22:09 +0000 (15:22 -0700)]
Use LIRSlowPath for throwing ArrayOutOfBoundsException.

Get rid of launchpads for throwing ArrayOutOfBoundsException
and use LIRSlowPath instead.

Bug: 13170824
Change-Id: I0e27f7a261a6a7fb5c0645e6113a957e098f699e

10 years agoMerge "Add untested x86-64 downcall and exception assembly."
Ian Rogers [Thu, 17 Apr 2014 21:57:26 +0000 (21:57 +0000)]
Merge "Add untested x86-64 downcall and exception assembly."

10 years agoMerge "Fix a class-loading bug in the verifier when throwing NPE"
Andreas Gampe [Thu, 17 Apr 2014 21:10:52 +0000 (21:10 +0000)]
Merge "Fix a class-loading bug in the verifier when throwing NPE"

10 years agoFix a class-loading bug in the verifier when throwing NPE
Andreas Gampe [Thu, 17 Apr 2014 19:28:43 +0000 (12:28 -0700)]
Fix a class-loading bug in the verifier when throwing NPE

When throwing an NPE for invocation, we try to resolve the class of
the method being called. When in the interpreter and having quickened
code, that failed.

Bug: 14133618
Change-Id: I4964b908bb26a82a12263fb86f5dc39c9042479b

10 years agoMerge "Use LIRSlowPath for throwing NPE."
Mingyao Yang [Thu, 17 Apr 2014 17:31:48 +0000 (17:31 +0000)]
Merge "Use LIRSlowPath for throwing NPE."

10 years agoAdd untested x86-64 downcall and exception assembly.
Ian Rogers [Thu, 17 Apr 2014 00:33:27 +0000 (17:33 -0700)]
Add untested x86-64 downcall and exception assembly.

Change-Id: Ic555f9f5af8c3a2110a92e55772ff6c0128e5c19

10 years agoMerge "String.IndexOf method handles negative start index value in incorrect way"
Bill Buzbee [Thu, 17 Apr 2014 17:10:45 +0000 (17:10 +0000)]
Merge "String.IndexOf method handles negative start index value in incorrect way"

10 years agoMerge "Code cleanup in preparation for x64 backend."
Nicolas Geoffray [Thu, 17 Apr 2014 14:17:09 +0000 (14:17 +0000)]
Merge "Code cleanup in preparation for x64 backend."

10 years agoCode cleanup in preparation for x64 backend.
Nicolas Geoffray [Thu, 17 Apr 2014 13:56:23 +0000 (14:56 +0100)]
Code cleanup in preparation for x64 backend.

- Use InvokeDexCallingConventionVisitor for setting
  up HParameterValues
- Use kVregSize instead of kX86WordSize when dealing with
  virtual registers.

Change-Id: Ia520223010194c70a3ff0ed659077f55cec4e7d8

10 years agoMerge "Simplify HInvokeStatic code generation."
Nicolas Geoffray [Thu, 17 Apr 2014 13:23:49 +0000 (13:23 +0000)]
Merge "Simplify HInvokeStatic code generation."

10 years agoSimplify HInvokeStatic code generation.
Nicolas Geoffray [Wed, 16 Apr 2014 16:38:32 +0000 (17:38 +0100)]
Simplify HInvokeStatic code generation.

HPushArgument is not needed for now (but might be when we start
optimizing). Also, calling convention for 64bits backend will
require to know more about the argument than the argument's
index. Therefore currently let HInvokeStatic setup the arguments,
which is possible because arguments of a calls are virtual registers
and not instructions.

Change-Id: I8753ed6083aa083c5180ab53b436dc8de4f1fe31

10 years agoString.IndexOf method handles negative start index value in incorrect way
Alexei Zavjalov [Wed, 16 Apr 2014 18:55:43 +0000 (01:55 +0700)]
String.IndexOf method handles negative start index value in incorrect way

The standard implementation of String.IndexOf converts the negative value of
the start index to 0 and searching will start from the beginning of the string.
But current implementation may start searching from the incorrect memory
offset, that can lead to sigsegv or return incorrect result.
This patch adds the handler for cases when fromIndex is negative.

Change-Id: I3ac86290712789559eaf5e46bef0006872395bfa
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
10 years agoART: Fixes an issue with REX prefix for instructions with no ModRM byte
Vladimir Kostyukov [Tue, 15 Apr 2014 08:41:47 +0000 (15:41 +0700)]
ART: Fixes an issue with REX prefix for instructions with no ModRM byte

There are instructions (such as push, pop, mov) in the x86 ISA
that encode first operands in their opcodes (opcode + reg).
In order to enable an extended 64bit registers (R9-R15) a special
prefix REX.B should be emitted before such instructions.

This patch fixes the issue when REX.R prefix was emitted before
instructions with no MorRM byte. So, the REX-prefix was simply
ignored by CPU for those instructions whose operands are encoded
in their opcodes.

This patch makes the jni_compiler_test passed with JNI compiler
enabled for x86_64 target.

Change-Id: Ib84da1cf9f8ff96bd7afd4e0fc53078f3231f8ec
Signed-off-by: Vladimir Kostyukov <vladimir.kostyukov@intel.com>
10 years agoMerge "Preparation for transition to libc++."
Ian Rogers [Thu, 17 Apr 2014 00:13:27 +0000 (00:13 +0000)]
Merge "Preparation for transition to libc++."

10 years agoPreparation for transition to libc++.
Ian Rogers [Wed, 16 Apr 2014 23:34:44 +0000 (16:34 -0700)]
Preparation for transition to libc++.

Move the dependency on libc++ to its own makefile so that we can switch in a
single place between libc++ and stlport.

Change-Id: Ie61e7d054dcd049e36d5e7298c27d8a4abe6edf7

10 years agoMerge "Disable another timing sensitive test on dist builds"
Brian Carlstrom [Wed, 16 Apr 2014 22:19:47 +0000 (22:19 +0000)]
Merge "Disable another timing sensitive test on dist builds"

10 years agoMerge "Build dex2oat as 64b for the target when using zygote64"
Andreas Gampe [Wed, 16 Apr 2014 22:17:24 +0000 (22:17 +0000)]
Merge "Build dex2oat as 64b for the target when using zygote64"

10 years agoDisable another timing sensitive test on dist builds
Brian Carlstrom [Wed, 16 Apr 2014 22:12:45 +0000 (15:12 -0700)]
Disable another timing sensitive test on dist builds

Change-Id: I1c0dc16ff22b23dbd238cbeba3f4c078c3ffeaed

10 years agoMerge "Fix volatile wide put/get to be atomic on x86 arch"
Ian Rogers [Wed, 16 Apr 2014 22:08:29 +0000 (22:08 +0000)]
Merge "Fix volatile wide put/get to be atomic on x86 arch"

10 years agoFix volatile wide put/get to be atomic on x86 arch
Yevgeny Rouban [Wed, 16 Apr 2014 11:13:10 +0000 (18:13 +0700)]
Fix volatile wide put/get to be atomic on x86 arch

Current implementation puts memory barriers for volatile fields.
Volatile semantics needs atomicity, which are not guaranteed by memory barriers.

The patch forces all wide volatile fields to be loaded/stored using
xmm registers.

Change-Id: Ie78e186d13ffa237e6e93747b71d26651fa02866
Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
10 years agoBuild dex2oat as 64b for the target when using zygote64
Andreas Gampe [Wed, 16 Apr 2014 22:03:11 +0000 (15:03 -0700)]
Build dex2oat as 64b for the target when using zygote64

In single-zygote 64b builds we should build dex2oat as 64b to
avoid installd issues

Change-Id: I5f281d90fbd44abbca4182e39162b184be9f1b35

10 years agoMerge "Decrease target utilization for foreground apps."
Mathieu Chartier [Wed, 16 Apr 2014 22:01:38 +0000 (22:01 +0000)]
Merge "Decrease target utilization for foreground apps."

10 years agoUse LIRSlowPath for throwing NPE.
Mingyao Yang [Tue, 8 Apr 2014 18:02:52 +0000 (11:02 -0700)]
Use LIRSlowPath for throwing NPE.

Get rid of launchpads for throwing NPE and use LIRSlowPath instead.
Also clean up some code of using LIRSlowPath for checking div
by zero.

Bug: 13170824

Change-Id: I0c20a49c39feff3eb1f147755e557d9bc0ff15bb

10 years agoDecrease target utilization for foreground apps.
Mathieu Chartier [Tue, 15 Apr 2014 22:37:02 +0000 (15:37 -0700)]
Decrease target utilization for foreground apps.

GC time in FormulaEvaluationActions.EvaluateAndApplyChanges goes from
26.1s to 23.2s. Benchmark score goes down ~50 in
FormulaEvaluationActions.EvaluateAndApplyChanges, and up ~50 in
GenericCalcActions.MemAllocTest.

Bug: 8788501
Change-Id: I412af1205f8b67e70a12237c990231ea62167bc0

10 years agoMerge "Fix thread join hangs"
Ian Rogers [Wed, 16 Apr 2014 19:14:21 +0000 (19:14 +0000)]
Merge "Fix thread join hangs"

10 years agoMerge "Fix typo in ISA centralization"
Andreas Gampe [Wed, 16 Apr 2014 18:35:07 +0000 (18:35 +0000)]
Merge "Fix typo in ISA centralization"

10 years agoFix typo in ISA centralization
Andreas Gampe [Wed, 16 Apr 2014 18:23:27 +0000 (11:23 -0700)]
Fix typo in ISA centralization

X86 needs sign-extension.

Change-Id: I1253fbc9aa0e732e37b976a0723ec89155e7e2e7

10 years agoMerge "Centralize instruction-set pointer-size, alignment, 64b-width code in instruct...
Andreas Gampe [Wed, 16 Apr 2014 15:18:13 +0000 (15:18 +0000)]
Merge "Centralize instruction-set pointer-size, alignment, 64b-width code in instruction_set.h/cc"

10 years agoMerge "Long support in optimizing compiler."
Nicolas Geoffray [Wed, 16 Apr 2014 13:22:37 +0000 (13:22 +0000)]
Merge "Long support in optimizing compiler."

10 years agoLong support in optimizing compiler.
Nicolas Geoffray [Fri, 11 Apr 2014 16:43:50 +0000 (17:43 +0100)]
Long support in optimizing compiler.

- Add stack locations to the Location class.
- Change logic of parameter passing/setup by setting the
  location of such instructions the ones for the calling
  convention.

Change-Id: I4730ad58732813dcb9c238f44f55dfc0baa18799

10 years agoFix thread join hangs
Yevgeny Rouban [Wed, 16 Apr 2014 11:26:09 +0000 (18:26 +0700)]
Fix thread join hangs

Current implementation notifies only one of joining threads on thread exit.
This causes the other joining threads to hang.

This patch notifies all joining threads: just call NotifyAll() instead of Notify().

Change-Id: If75f101d3d3d876f1aa7dcf537e56a37cc347803
Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
10 years agoMerge "Disable JDWP field watchpoint capabilities"
Sebastien Hertz [Wed, 16 Apr 2014 10:10:28 +0000 (10:10 +0000)]
Merge "Disable JDWP field watchpoint capabilities"

10 years agoDisable JDWP field watchpoint capabilities
Sebastien Hertz [Wed, 16 Apr 2014 10:03:00 +0000 (12:03 +0200)]
Disable JDWP field watchpoint capabilities

We do not fully support field watchpoint yet. We can only enable these
capabilities when we do report these events.

Bug: 8267708
Change-Id: I07ccf7ddffdd26e143b7fb0f13ebe030d75e8491

10 years agoMerge "Allow use of instance filter for JDWP events"
Sebastien Hertz [Wed, 16 Apr 2014 08:08:11 +0000 (08:08 +0000)]
Merge "Allow use of instance filter for JDWP events"

10 years agoMerge "Fix JDWP count event modifier"
Sebastien Hertz [Wed, 16 Apr 2014 07:29:10 +0000 (07:29 +0000)]
Merge "Fix JDWP count event modifier"