OSDN Git Service

android-x86/art.git
9 years agoMerge "Fix no relocate host tests"
Mathieu Chartier [Tue, 18 Nov 2014 23:39:24 +0000 (23:39 +0000)]
Merge "Fix no relocate host tests"

9 years agoFix no relocate host tests
Mathieu Chartier [Tue, 18 Nov 2014 23:34:09 +0000 (15:34 -0800)]
Fix no relocate host tests

Change-Id: I905bf0327685d2119a2a5d157795e0e3f16286a7

9 years agoMerge "ART: Build fix"
Andreas Gampe [Tue, 18 Nov 2014 21:49:52 +0000 (21:49 +0000)]
Merge "ART: Build fix"

9 years agoART: Build fix
Andreas Gampe [Tue, 18 Nov 2014 21:48:34 +0000 (13:48 -0800)]
ART: Build fix

Change-Id: I0c4d1c2981bdfb95e12c8c624826349281ada0cf

9 years agoMerge "Change 64 bit ArtMethod fields to be pointer sized"
Mathieu Chartier [Tue, 18 Nov 2014 21:05:53 +0000 (21:05 +0000)]
Merge "Change 64 bit ArtMethod fields to be pointer sized"

9 years agoChange 64 bit ArtMethod fields to be pointer sized
Mathieu Chartier [Mon, 10 Nov 2014 19:08:06 +0000 (11:08 -0800)]
Change 64 bit ArtMethod fields to be pointer sized

Changed the 64 bit entrypoint and gc map fields in ArtMethod to be
pointer sized. This saves a large amount of memory on 32 bit systems.
Reduces ArtMethod size by 16 bytes on 32 bit.

Total number of ArtMethod on low memory mako: 169957
Image size: 49203 methods -> 787248 image size reduction.
Zygote space size: 1070 methods -> 17120 size reduction.
App methods: ~120k -> 2 MB savings.

Savings per app on low memory mako: 125K+ per app
(less active apps -> more image methods per app).

Savings depend on how often the shared methods are on dirty pages vs
shared.

TODO in another CL, delete gc map field from ArtMethod since we
should be able to get it from the Oat method header.

Bug: 17643507

Change-Id: Ie9508f05907a9f693882d4d32a564460bf273ee8

(cherry picked from commit e832e64a7e82d7f72aedbd7d798fb929d458ee8f)

9 years agoMerge "Do not try to sharpen super calls to abstract methods."
Vladimir Marko [Tue, 18 Nov 2014 18:14:07 +0000 (18:14 +0000)]
Merge "Do not try to sharpen super calls to abstract methods."

9 years agoDo not try to sharpen super calls to abstract methods.
Vladimir Marko [Tue, 18 Nov 2014 14:47:31 +0000 (14:47 +0000)]
Do not try to sharpen super calls to abstract methods.

Bug: 18380491

(cherry picked from commit 474123dccc5aa9a0dfe566d332174877fd5b7040)

Change-Id: I6637aaa562115f6b07d8637f0cc6658f1a6739bb

9 years agoMerge "Fix typo."
Nicolas Geoffray [Tue, 18 Nov 2014 15:56:18 +0000 (15:56 +0000)]
Merge "Fix typo."

9 years agoFix typo.
Nicolas Geoffray [Tue, 18 Nov 2014 15:55:32 +0000 (15:55 +0000)]
Fix typo.

Change-Id: Iac3b6b2206bfacf5133775b706893fc80dcad5ec

9 years agoMerge "Opt compiler: Add support for more IRs on arm64."
Nicolas Geoffray [Tue, 18 Nov 2014 15:37:50 +0000 (15:37 +0000)]
Merge "Opt compiler: Add support for more IRs on arm64."

9 years agoOpt compiler: Add support for more IRs on arm64.
Alexandre Rames [Tue, 18 Nov 2014 10:55:16 +0000 (10:55 +0000)]
Opt compiler: Add support for more IRs on arm64.

Change-Id: I4b6425135d1af74912a206411288081d2516f8bf

9 years agoMerge "Fix a bug in the type propagation phase of optimizing."
Nicolas Geoffray [Tue, 18 Nov 2014 10:15:18 +0000 (10:15 +0000)]
Merge "Fix a bug in the type propagation phase of optimizing."

9 years agoMerge "Add support for int-to-float & int-to-double in optimizing."
Roland Levillain [Tue, 18 Nov 2014 09:59:13 +0000 (09:59 +0000)]
Merge "Add support for int-to-float & int-to-double in optimizing."

9 years agoMerge "Enable the hspace compaction on OOM by default."
Hiroshi Yamauchi [Tue, 18 Nov 2014 02:22:09 +0000 (02:22 +0000)]
Merge "Enable the hspace compaction on OOM by default."

9 years agoEnable the hspace compaction on OOM by default.
Hiroshi Yamauchi [Tue, 18 Nov 2014 02:05:44 +0000 (18:05 -0800)]
Enable the hspace compaction on OOM by default.

(cherrypick commit d3f228062a1d71ce6ace2f31ecf369ae247633c2)

Bug: 18377775
Change-Id: I4a0998c7f35b6418004e92bc07926abc9b74962a

9 years agoMerge "Add denver64 as a known ARM64 variant."
Ian Rogers [Tue, 18 Nov 2014 01:40:22 +0000 (01:40 +0000)]
Merge "Add denver64 as a known ARM64 variant."

9 years agoAdd denver64 as a known ARM64 variant.
Ian Rogers [Tue, 18 Nov 2014 00:43:15 +0000 (16:43 -0800)]
Add denver64 as a known ARM64 variant.

Other bits of instruction_set_features_test clean up.
Bug: 18385422

Change-Id: Ic48cfa0564b41ea140805a700de7c1e51addf49d

9 years agoMerge "Change IsZygote test to !IsCompiler"
Mathieu Chartier [Mon, 17 Nov 2014 23:37:34 +0000 (23:37 +0000)]
Merge "Change IsZygote test to !IsCompiler"

9 years agoChange IsZygote test to !IsCompiler
Mathieu Chartier [Mon, 17 Nov 2014 22:52:44 +0000 (14:52 -0800)]
Change IsZygote test to !IsCompiler

Enables test coverage through run test 118.

Change-Id: I21ce32e83629eb507b8440cebdd721d29171a984

9 years agoMerge "Combine image string char arrays into single array"
Mathieu Chartier [Mon, 17 Nov 2014 22:44:16 +0000 (22:44 +0000)]
Merge "Combine image string char arrays into single array"

9 years agoCombine image string char arrays into single array
Mathieu Chartier [Sat, 15 Nov 2014 03:34:18 +0000 (19:34 -0800)]
Combine image string char arrays into single array

Having one giant char array shared between all the strings saves memory
since it avoids the 12 bytes of array overhead per image string. Also
added substring finding based on prefixes, strings are added into the
array in reverse sorted length.

Image size goes from 11767808 -> 11100160.

Bug: 17643507

Change-Id: I2a7f177b40d0458d5c50640643d8f16b0030bdce

(cherry picked from commit 23c1d0ca7ab63f4adad88631bddefb769d0dcc2c)

9 years agoMerge "Don't call AddImageStringsToTable or MoveImageClassesToClassTable if running...
Mathieu Chartier [Mon, 17 Nov 2014 21:55:28 +0000 (21:55 +0000)]
Merge "Don't call AddImageStringsToTable or MoveImageClassesToClassTable if running imageless"

9 years agoDon't call AddImageStringsToTable or MoveImageClassesToClassTable if running imageless
Mathieu Chartier [Mon, 17 Nov 2014 20:36:24 +0000 (12:36 -0800)]
Don't call AddImageStringsToTable or MoveImageClassesToClassTable if running imageless

If we fail to create the image we use imageless running, this was
breaking AddImageStringsToTable since we didn't check for this
case. Added a check which avoids calling AddImageStringsToTable and
MoveImageClassesToClassTable if we don't have an image.

Bug: 18412472

(cherry picked from commit ab1953f35880f94752e1fcde3f6b3f0d3532125b)

Change-Id: Ida18e1fcd04d752d55923e65c3122c0ac0bde728

9 years agoMerge "ART: copy dalvikInsn back on throw instruction processing"
Bill Buzbee [Mon, 17 Nov 2014 21:15:57 +0000 (21:15 +0000)]
Merge "ART: copy dalvikInsn back on throw instruction processing"

9 years agoMerge "Add stress test for field offset assignment sorting."
Vladimir Marko [Mon, 17 Nov 2014 20:50:41 +0000 (20:50 +0000)]
Merge "Add stress test for field offset assignment sorting."

9 years agoAdd stress test for field offset assignment sorting.
Vladimir Marko [Mon, 17 Nov 2014 20:22:16 +0000 (20:22 +0000)]
Add stress test for field offset assignment sorting.

Bug: 18211592
Change-Id: If6303a9d2b16b7242a90ffc11f5e87b5b4003267

9 years agoMerge "Change 512 to kLocalsMax."
Mathieu Chartier [Mon, 17 Nov 2014 19:28:27 +0000 (19:28 +0000)]
Merge "Change 512 to kLocalsMax."

9 years agoFix a bug in the type propagation phase of optimizing.
Nicolas Geoffray [Mon, 17 Nov 2014 17:50:33 +0000 (17:50 +0000)]
Fix a bug in the type propagation phase of optimizing.

The compiler was placing phis (and their floating point equivalent),
in a way that it did not expect.

Change-Id: I974be1ee4aae5d27d68c6bba171db0ed25377b70

9 years agoChange 512 to kLocalsMax.
Mathieu Chartier [Mon, 17 Nov 2014 18:24:04 +0000 (10:24 -0800)]
Change 512 to kLocalsMax.

Clean up after cherry pick.

Change-Id: I39308ed1497a94b2a47bba8806e494d066d5f6fc

9 years agoMerge "Fix ordering of fields with the same name."
Vladimir Marko [Mon, 17 Nov 2014 18:24:08 +0000 (18:24 +0000)]
Merge "Fix ordering of fields with the same name."

9 years agoMerge "Fix reference leaks in ToReflectedMethod and ToReflectedField"
Mathieu Chartier [Mon, 17 Nov 2014 18:23:51 +0000 (18:23 +0000)]
Merge "Fix reference leaks in ToReflectedMethod and ToReflectedField"

9 years agoFix reference leaks in ToReflectedMethod and ToReflectedField
Mathieu Chartier [Sat, 15 Nov 2014 21:07:39 +0000 (13:07 -0800)]
Fix reference leaks in ToReflectedMethod and ToReflectedField

Used ScopedLocalRef to fix, added regression tests.

Bug: 18396311

(cherry picked from commit 8c41753e5eda8322b4d992fe88855058f4c0c2e1)

Change-Id: I0ddfc20ac2384c90ff18586242c1f1d9a6d6eb6d

9 years agoMerge "Don't fall back to Quick in optimizing."
Nicolas Geoffray [Mon, 17 Nov 2014 18:16:20 +0000 (18:16 +0000)]
Merge "Don't fall back to Quick in optimizing."

9 years agoDon't fall back to Quick in optimizing.
Nicolas Geoffray [Mon, 17 Nov 2014 12:55:12 +0000 (12:55 +0000)]
Don't fall back to Quick in optimizing.

The compiler can now have a life of its own.

Change-Id: I804638c574d1a37299fa8427a3fd10d627d2844e

9 years agoFix ordering of fields with the same name.
Vladimir Marko [Mon, 17 Nov 2014 15:13:34 +0000 (15:13 +0000)]
Fix ordering of fields with the same name.

While the Java language doesn't allow multiple fields with
the same name in a single class (excluding fields from super
classes), the bytecode specification permits it and tools
such as proguard actually generate them. Define the order of
these fields by their dex file index and relax the check of
field ordering to permit identical names.

Bug: 18211592
Change-Id: I1dee9b2b669a6ea180a2d3a41030efb2aed53950

9 years agoAdd support for int-to-float & int-to-double in optimizing.
Roland Levillain [Mon, 17 Nov 2014 14:32:17 +0000 (14:32 +0000)]
Add support for int-to-float & int-to-double in optimizing.

- Add support for the int-to-float and int-to-double Dex
  instructions in the optimizing compiler.
- Generate x86, x86-64 and ARM (but not ARM64) code for
  byte to float, short to float, int to float, char to
  float, byte to double, short to double, int to double and
  char to double HTypeConversion nodes.
- Add related tests to test/422-type-conversion.

Change-Id: I963f9d0184a5d3721af2d8f593f133d5af7aa6a3

9 years agoMerge "Fix art_quick_instrumentation_entry stub for x86/x86_64"
Sebastien Hertz [Mon, 17 Nov 2014 16:25:20 +0000 (16:25 +0000)]
Merge "Fix art_quick_instrumentation_entry stub for x86/x86_64"

9 years agoFix art_quick_instrumentation_entry stub for x86/x86_64
Sebastien Hertz [Mon, 17 Nov 2014 11:46:27 +0000 (12:46 +0100)]
Fix art_quick_instrumentation_entry stub for x86/x86_64

Fixes bad stack offset for x86 where we read the return pc from an
incorrect location.

Fixes bad register for x86_64. The return pc is the 4th argument of
the called C function. It must be passed in rcx instead of r8 (which
is used for 5th argument).

Bug: 18170596
Change-Id: Idb521d2f6da415448fa61acf8b7d21076822830f

9 years agoMerge "Fix DCHECK in artInstrumentationMethodEntryFromCode"
Sebastien Hertz [Mon, 17 Nov 2014 16:08:01 +0000 (16:08 +0000)]
Merge "Fix DCHECK in artInstrumentationMethodEntryFromCode"

9 years agoFix DCHECK in artInstrumentationMethodEntryFromCode
Sebastien Hertz [Mon, 17 Nov 2014 15:10:44 +0000 (16:10 +0100)]
Fix DCHECK in artInstrumentationMethodEntryFromCode

We do use the quick to interpreter bridge for deoptimized method. So
move the DCHECK only in the else case.

Bug: 18170596
Change-Id: Ife83fd71da7490196ada694a4227b43a9ecbf577

9 years agoMerge "Revert "Revert "Unfortunately, the test still hits too many run failures."""
Nicolas Geoffray [Mon, 17 Nov 2014 13:53:37 +0000 (13:53 +0000)]
Merge "Revert "Revert "Unfortunately, the test still hits too many run failures."""

9 years agoRevert "Revert "Unfortunately, the test still hits too many run failures.""
Nicolas Geoffray [Mon, 17 Nov 2014 13:52:16 +0000 (13:52 +0000)]
Revert "Revert "Unfortunately, the test still hits too many run failures.""

This reverts commit f8069a217312e486d034cb850e41639580b7385f.

Change-Id: I6359908ef1a2a7927b52d1fd993ef1b5873aa172

9 years agoMerge "[optimizing compiler] Add REM_INT, REM_LONG"
Calin Juravle [Mon, 17 Nov 2014 11:55:59 +0000 (11:55 +0000)]
Merge "[optimizing compiler] Add REM_INT, REM_LONG"

9 years ago[optimizing compiler] Add REM_INT, REM_LONG
Calin Juravle [Fri, 14 Nov 2014 15:54:36 +0000 (15:54 +0000)]
[optimizing compiler] Add REM_INT, REM_LONG

- for arm, x86, x86_64
- minor cleanup/fix in div tests

Change-Id: I240874010206a5a9b3aaffbc81a885b94c248f93

9 years agoMerge "Add support for int-to-short in the optimizing compiler."
Roland Levillain [Mon, 17 Nov 2014 10:24:03 +0000 (10:24 +0000)]
Merge "Add support for int-to-short in the optimizing compiler."

9 years agoMerge "Revert "Arm64: Use the debug version of VIXL for debug builds.""
Nicolas Geoffray [Mon, 17 Nov 2014 10:22:54 +0000 (10:22 +0000)]
Merge "Revert "Arm64: Use the debug version of VIXL for debug builds.""

9 years agoRevert "Arm64: Use the debug version of VIXL for debug builds."
Nicolas Geoffray [Mon, 17 Nov 2014 10:22:02 +0000 (10:22 +0000)]
Revert "Arm64: Use the debug version of VIXL for debug builds."

This reverts commit 195c576fbff290d4c313b67ed24ca36f2531acc4.

Change-Id: Id992a43ae346bb4c38a6c47639b02aea838d974a

9 years agoMerge "Fix lint error."
Nicolas Geoffray [Mon, 17 Nov 2014 09:51:59 +0000 (09:51 +0000)]
Merge "Fix lint error."

9 years agoFix lint error.
Nicolas Geoffray [Mon, 17 Nov 2014 09:51:16 +0000 (09:51 +0000)]
Fix lint error.

Change-Id: Ia0fa12f2208507b6bec0581edf4345025b877580

9 years agoMerge "Arm64: Use the debug version of VIXL for debug builds."
Nicolas Geoffray [Mon, 17 Nov 2014 09:47:52 +0000 (09:47 +0000)]
Merge "Arm64: Use the debug version of VIXL for debug builds."

9 years agoMerge "Minor object store optimizations."
Nicolas Geoffray [Mon, 17 Nov 2014 09:42:23 +0000 (09:42 +0000)]
Merge "Minor object store optimizations."

9 years agoMerge "Fix failure in --no-dex2oat invocation of 425-invokesuper."
Nicolas Geoffray [Mon, 17 Nov 2014 09:21:54 +0000 (09:21 +0000)]
Merge "Fix failure in --no-dex2oat invocation of 425-invokesuper."

9 years agoFix failure in --no-dex2oat invocation of 425-invokesuper.
Nicolas Geoffray [Thu, 13 Nov 2014 15:15:39 +0000 (15:15 +0000)]
Fix failure in --no-dex2oat invocation of 425-invokesuper.

We had two issues:
- dexmerger is broken and sometimes produces invalid dex files,
  thus the test was always failing. b/18051191.
- The reason only no-dex2oat caught it is because it doesn't prebuild,
  and our scripts just do not report an error when the prebuild failed.

I also gave up trying to emit the dex2oat error output in the console.
I clearly don't speak bash.

Change-Id: I34c40902855452ea0f3e0d4733e4149c87236cfe

9 years agoMerge "The libc++ gtest is being renamed to libgtest."
Dan Albert [Sat, 15 Nov 2014 23:42:09 +0000 (23:42 +0000)]
Merge "The libc++ gtest is being renamed to libgtest."

9 years agoMerge "Up the stack size limit for SANITIZE_HOST."
Dan Albert [Sat, 15 Nov 2014 07:04:19 +0000 (07:04 +0000)]
Merge "Up the stack size limit for SANITIZE_HOST."

9 years agoUp the stack size limit for SANITIZE_HOST.
Dan Albert [Sat, 15 Nov 2014 03:56:21 +0000 (19:56 -0800)]
Up the stack size limit for SANITIZE_HOST.

Change-Id: I7c507a6a2e8de534f0e09e961d13db0223eee891

9 years agoMerge "Avoid abort in malformed dex code."
Ian Rogers [Sat, 15 Nov 2014 00:19:56 +0000 (00:19 +0000)]
Merge "Avoid abort in malformed dex code."

9 years agoMerge "AArch64: Small improvements."
Bill Buzbee [Fri, 14 Nov 2014 23:51:16 +0000 (23:51 +0000)]
Merge "AArch64: Small improvements."

9 years agoAvoid abort in malformed dex code.
Ian Rogers [Wed, 5 Nov 2014 19:07:30 +0000 (11:07 -0800)]
Avoid abort in malformed dex code.

Don't allow a perceived double monitor-enter on a register
to abort libartd.
Allow expected verifier errors in the smali tests.
Tidy includes in the method verifier.
Bug: 17978759

Change-Id: Ic44924c788cd2334f91a047fb41b459b89a1843b

9 years agoArm64: Use the debug version of VIXL for debug builds.
Serban Constantinescu [Thu, 13 Nov 2014 11:14:25 +0000 (11:14 +0000)]
Arm64: Use the debug version of VIXL for debug builds.

This patch builds the debug version of ART against VIXL debug. In this
way VIXL will assert misuses of the assembler and disassembler.

Change-Id: Ic4654eb20e420f23b40e96a69be452dc50770c1c
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
9 years agoMerge "Fix LinkFieldsComparator."
Vladimir Marko [Fri, 14 Nov 2014 19:02:32 +0000 (19:02 +0000)]
Merge "Fix LinkFieldsComparator."

9 years agoFix LinkFieldsComparator.
Vladimir Marko [Wed, 12 Nov 2014 17:02:02 +0000 (17:02 +0000)]
Fix LinkFieldsComparator.

Define order for primitive types with the same sizes.
Previously, the comparator would consider the fields equal
so the order would depend on std::sort() implementation.
Changing the STL implementation could silently change the
field offsets. (And, unlike std::stable_sort(), the
std::sort() doesn't even need to be deterministic.)

Change-Id: I91fa562f82447606aced64643bea8c70784766b5

9 years agoAArch64: Small improvements.
Matteo Franchin [Wed, 12 Nov 2014 18:06:14 +0000 (18:06 +0000)]
AArch64: Small improvements.

Remove useless branches (branch to the next instruction).
Change the implicit stack overflow check to do a 32-bit rather than a
64-bit load. Also put the result in wzr, as we do not need it.

Change-Id: I2d29fc62cb757ac5443fdd09282871f734deeef9

9 years agoAdd support for int-to-short in the optimizing compiler.
Roland Levillain [Fri, 14 Nov 2014 16:27:39 +0000 (16:27 +0000)]
Add support for int-to-short in the optimizing compiler.

- Add support for the int-to-short Dex instruction in the
  optimizing compiler.
- Generate x86, x86-64 and ARM (but not ARM64) code for
  byte to short, int to short and char to short
  HTypeConversion nodes.
- Add related tests to test/422-type-conversion.

Change-Id: If1829549708d9c3473efaa641f7f0bcfa6080ae9

9 years agoMerge "Add support for int-to-char in the optimizing compiler."
Roland Levillain [Fri, 14 Nov 2014 15:21:32 +0000 (15:21 +0000)]
Merge "Add support for int-to-char in the optimizing compiler."

9 years agoMerge "Keep original order of fields in Class."
Vladimir Marko [Fri, 14 Nov 2014 14:36:43 +0000 (14:36 +0000)]
Merge "Keep original order of fields in Class."

9 years agoMinor object store optimizations.
Nicolas Geoffray [Wed, 12 Nov 2014 18:08:09 +0000 (18:08 +0000)]
Minor object store optimizations.

- Avoid emitting write barrier when the value is null.
- Do not do a typecheck on an arraystore when storing something that
  was loaded from the same array.

Change-Id: I902492928692e4553b5af0fc99cce3c2186c442a

9 years agoAdd support for int-to-char in the optimizing compiler.
Roland Levillain [Fri, 14 Nov 2014 11:47:14 +0000 (11:47 +0000)]
Add support for int-to-char in the optimizing compiler.

- Add support for the int-to-char Dex instruction in the
  optimizing compiler.
- Implement the ARM and Thumb-2 UBFX instructions and add
  tests for them.
- Generate x86, x86-64 and ARM (but not ARM64) code for
  byte to char, short to char, int to char (and char to
  char!) HTypeConversion nodes.
- Add related tests to test/422-type-conversion.

Change-Id: I5cd4c6d86f0f6a966c059715b98db35cc8f9de76

9 years agoKeep original order of fields in Class.
Vladimir Marko [Mon, 10 Nov 2014 18:32:59 +0000 (18:32 +0000)]
Keep original order of fields in Class.

The fields of a class are ordered alphabetically in the dex
file. Keep the same order in the field arrays so that we can
do binary search lookups by name. Those lookups will be
implemented in a subsequent change in libcore/.

Bug: 18211592

(cherry picked from commit bfa3ed0ad988e1da13626ddbaf6dcae0c58ea79e)

Change-Id: I8f979de62ffe37d1c7d5c721717d2f3501e7c9e6

9 years agoMerge "Quick: Fix arm64 AGET/APUT to use 32-bit index."
Vladimir Marko [Fri, 14 Nov 2014 10:51:40 +0000 (10:51 +0000)]
Merge "Quick: Fix arm64 AGET/APUT to use 32-bit index."

9 years agoMerge "ART: Fix last lpae occurrence, Arm64 generic"
Andreas Gampe [Fri, 14 Nov 2014 03:31:25 +0000 (03:31 +0000)]
Merge "ART: Fix last lpae occurrence, Arm64 generic"

9 years agoART: Fix last lpae occurrence, Arm64 generic
Andreas Gampe [Fri, 14 Nov 2014 03:10:33 +0000 (19:10 -0800)]
ART: Fix last lpae occurrence, Arm64 generic

Fix the last occurrence of an lpae string in the default
instruction-set-feature strings (should be removed).

Allow "generic" Arm64 variant (same as "default").

Change-Id: I8bdd9fc7f596245e6541469664db01b3e781c51c

9 years agoMerge "ART: Multiview assembler_test, fix x86-64 assembler"
Andreas Gampe [Fri, 14 Nov 2014 00:47:35 +0000 (00:47 +0000)]
Merge "ART: Multiview assembler_test, fix x86-64 assembler"

9 years agoART: Multiview assembler_test, fix x86-64 assembler
Andreas Gampe [Wed, 12 Nov 2014 22:05:46 +0000 (14:05 -0800)]
ART: Multiview assembler_test, fix x86-64 assembler

Expose "secondary" names for registers so it is possible to test
32b views for 64b architectures.

Add floating-point register testing.

Refactor assembler_test for better code reuse (and simpler adding
of combination drivers).

Fix movss, movsd (MR instead of RM encoding), xchgl, xchgq,
both versions of EmitGenericShift.

Tighten imull(Reg,Imm), imulq(Reg,Imm), xchgl and xchgq encoding.

Clarify cv*** variants with a comment.

Add tests for movl, addl, imull, imuli, mull, subl, cmpqi, cmpl,
xorq (regs), xorl, movss, movsd, addss, addsd, subss, subsd, mulss,
mulsd, divss, divsd, cvtsi2ss, cvtsi2sd, cvtss2si, cvtss2sd, cvtsd2si,
cvttss2si, cvttsd2si, cvtsd2ss, cvtdq2pd, comiss, comisd, sqrtss,
sqrtsd, xorps, xorpd, fincstp, fsin, fcos, fptan, xchgl (disabled,
see code comment), xchgq, testl, andl, andq, orl, orq, shll, shrl,
sarl, negq, negl, notq, notl, enter and leave, call, ret, and jmp,
and make some older ones more exhaustive.

Follow-up TODOs:
1) Support memory (Address).
2) Support tertiary and quaternary register views.

Bug: 18117217
Change-Id: I1d583a3bec552e3cc7c315925e1e006f393ab687

9 years agoMerge "Instruction set features for ARM64, MIPS and X86."
Ian Rogers [Fri, 14 Nov 2014 00:21:21 +0000 (00:21 +0000)]
Merge "Instruction set features for ARM64, MIPS and X86."

9 years agoInstruction set features for ARM64, MIPS and X86.
Ian Rogers [Thu, 6 Nov 2014 07:46:43 +0000 (23:46 -0800)]
Instruction set features for ARM64, MIPS and X86.

Also, refactor how feature strings are handled so they are additive or
subtractive.
Make MIPS have features for FPU 32-bit and MIPS v2. Use in the quick compiler
rather than #ifdefs that wouldn't have worked in cross-compilation.
Add SIMD features for x86/x86-64 proposed in:
  https://android-review.googlesource.com/#/c/112370/

Bug: 18056890

Change-Id: Ic88ff84a714926bd277beb74a430c5c7d5ed7666

9 years agoMerge "ART: Implicit null check should break def tracking"
Bill Buzbee [Thu, 13 Nov 2014 23:41:14 +0000 (23:41 +0000)]
Merge "ART: Implicit null check should break def tracking"

9 years agoMerge "ART: Compiled-classes list for compiler-driver"
Andreas Gampe [Thu, 13 Nov 2014 21:26:09 +0000 (21:26 +0000)]
Merge "ART: Compiled-classes list for compiler-driver"

9 years agoART: Compiled-classes list for compiler-driver
Andreas Gampe [Tue, 11 Nov 2014 21:28:29 +0000 (13:28 -0800)]
ART: Compiled-classes list for compiler-driver

Similar to the image-classes list, introduce a list of class names
that are to be compiled when creating a boot image. This defaults
to all classes.

Bug: 18336591

(cherry picked from commit 26318f722958ac1cba6a812026a1377f37c54941)

Change-Id: I95f69afdb500a9defb6795803d4040bbe67c5a01

9 years agoMerge "kill HAVE_GETHOSTBYNAME_R"
Yabin Cui [Thu, 13 Nov 2014 19:09:36 +0000 (19:09 +0000)]
Merge "kill HAVE_GETHOSTBYNAME_R"

9 years agoMerge "Disable DumpNativeStack."
Ian Rogers [Thu, 13 Nov 2014 18:56:03 +0000 (18:56 +0000)]
Merge "Disable DumpNativeStack."

9 years agoMerge "Exercise the generation of SBFX on ARM32 & Thumb-2."
Roland Levillain [Thu, 13 Nov 2014 18:44:47 +0000 (18:44 +0000)]
Merge "Exercise the generation of SBFX on ARM32 & Thumb-2."

9 years agoMerge "Add support for int-to-byte in the optimizing compiler."
Roland Levillain [Thu, 13 Nov 2014 18:44:19 +0000 (18:44 +0000)]
Merge "Add support for int-to-byte in the optimizing compiler."

9 years agoDisable DumpNativeStack.
Ian Rogers [Thu, 13 Nov 2014 18:34:29 +0000 (10:34 -0800)]
Disable DumpNativeStack.

Causes crashes on 004-ThreadStress, already was a no-op on the target.
Bug: 15446488

Change-Id: I9a1541b894087337dafa3fdde00d845f3542b141

9 years agokill HAVE_GETHOSTBYNAME_R
Yabin Cui [Thu, 13 Nov 2014 18:29:25 +0000 (10:29 -0800)]
kill HAVE_GETHOSTBYNAME_R

Bug: 18363225
Change-Id: I71a62235db14412d2471f20ea663beb7df7326cd

9 years agoMerge "Revert "Unfortunately, the test still hits too many run failures.""
Ian Rogers [Thu, 13 Nov 2014 18:25:02 +0000 (18:25 +0000)]
Merge "Revert "Unfortunately, the test still hits too many run failures.""

9 years agoRevert "Unfortunately, the test still hits too many run failures."
Ian Rogers [Thu, 13 Nov 2014 18:24:52 +0000 (18:24 +0000)]
Revert "Unfortunately, the test still hits too many run failures."

This reverts commit 05b6570eb63d1236d38b1bb8b4ebeb8d36a76c31.

Change-Id: I8e0143e59e4e2f66930f04ecf295ed01418a7135

9 years agoExercise the generation of SBFX on ARM32 & Thumb-2.
Roland Levillain [Thu, 13 Nov 2014 18:03:06 +0000 (18:03 +0000)]
Exercise the generation of SBFX on ARM32 & Thumb-2.

Exercise the generation of the ARM SBFX intruction in
compiler/utils/arm/assembler_arm32_test.cc (ARM
instruction set encoding) and in
compiler/utils/arm/assembler_thumb2_test.cc (Thumb
instruction set encoding).

Change-Id: Ic72683aac6dd6628e227523e352c395e1a63b52e

9 years agoMerge "[optimizing compiler] Add 014-math3 to the list of arm64 broken tests"
Calin Juravle [Thu, 13 Nov 2014 17:33:20 +0000 (17:33 +0000)]
Merge "[optimizing compiler] Add 014-math3 to the list of arm64 broken tests"

9 years agoMerge "[optimizing compiler] Rename dex_offset to dex_pc in the builder"
Calin Juravle [Thu, 13 Nov 2014 17:32:29 +0000 (17:32 +0000)]
Merge "[optimizing compiler] Rename dex_offset to dex_pc in the builder"

9 years ago[optimizing compiler] Add 014-math3 to the list of arm64 broken tests
Calin Juravle [Thu, 13 Nov 2014 17:31:59 +0000 (17:31 +0000)]
[optimizing compiler] Add 014-math3 to the list of arm64 broken tests

Change-Id: I71f48c55eaf86113c1b19c490939bb1518f8dd9e

9 years agoAdd support for int-to-byte in the optimizing compiler.
Roland Levillain [Thu, 13 Nov 2014 14:11:42 +0000 (14:11 +0000)]
Add support for int-to-byte in the optimizing compiler.

- Add support for the int-to-byte Dex instruction in the
  optimizing compiler.
- Implement the ARM and Thumb-2 SBFX instructions.
- Generate x86, x86-64 and ARM (but not ARM64) code for
  char to byte, short to byte and int to byte
  HTypeConversion nodes.
- Add related tests to test/422-type-conversion.

Change-Id: Ic8b8911b90d4b5281fad15bcee96bc3ee85dc577

9 years ago[optimizing compiler] Rename dex_offset to dex_pc in the builder
Calin Juravle [Thu, 13 Nov 2014 16:46:39 +0000 (16:46 +0000)]
[optimizing compiler] Rename dex_offset to dex_pc in the builder

The term dex offset comes from Dalvik where these were addresses in
memory. Currently these should be dex PCs, namely offsets from the start
of code items. Quick lacks this clean up but there's no need to bring
over the convention to optimizing.

(thanks to irogers for the commit message text)

Change-Id: If86c0cf021a06f04a21462053e9d5f31bba7f65d

9 years agoMerge "[optimizing compiler] Fix Move for instruction with constant output"
Calin Juravle [Thu, 13 Nov 2014 16:28:16 +0000 (16:28 +0000)]
Merge "[optimizing compiler] Fix Move for instruction with constant output"

9 years ago[optimizing compiler] Fix Move for instruction with constant output
Calin Juravle [Thu, 13 Nov 2014 15:53:04 +0000 (15:53 +0000)]
[optimizing compiler] Fix Move for instruction with constant output

Change-Id: I15d89292dc62f8dd8643530f95ace2e8be034411

9 years agoMerge "Use correct register class for refs"
Vladimir Marko [Thu, 13 Nov 2014 14:27:54 +0000 (14:27 +0000)]
Merge "Use correct register class for refs"

9 years agoART: Implicit null check should break def tracking
Pavel Vyssotski [Thu, 13 Nov 2014 12:25:23 +0000 (18:25 +0600)]
ART: Implicit null check should break def tracking

Implicit null check can provoke exception that needs to be sure all VRs are saved on stack.
The fix is to reset the def tracking system at the moment of adding an implicit null check.

Change-Id: Ie8a32b727086438e04e745d4a3f87f096ff36cac
Signed-off-by: Pavel Vyssotski <pavel.n.vyssotski@intel.com>
9 years agoQuick: Fix arm64 AGET/APUT to use 32-bit index.
Vladimir Marko [Fri, 7 Nov 2014 16:11:00 +0000 (16:11 +0000)]
Quick: Fix arm64 AGET/APUT to use 32-bit index.

Change-Id: Iaa230024c934fc0ff7e45dcbebeb6c0e94e1af63

9 years agoMerge "[optimizing compiler] Add DIV_LONG"
Calin Juravle [Thu, 13 Nov 2014 11:16:37 +0000 (11:16 +0000)]
Merge "[optimizing compiler] Add DIV_LONG"