OSDN Git Service

android-x86/art.git
10 years agoMerge "Revert "Fix access to FP registers when visiting stack""
Sebastien Hertz [Tue, 17 Jun 2014 09:50:39 +0000 (09:50 +0000)]
Merge "Revert "Fix access to FP registers when visiting stack""

10 years agoRevert "Fix access to FP registers when visiting stack"
Sebastien Hertz [Tue, 17 Jun 2014 09:49:21 +0000 (09:49 +0000)]
Revert "Fix access to FP registers when visiting stack"

This reverts commit aa9b3aee1e06f922e4518713f9b3dff00a0b2597.

Change-Id: Ied27deb89cca5ec9094d391374e03f83fcb76c33

10 years agoFix access to FP registers when visiting stack
Sebastien Hertz [Fri, 13 Jun 2014 12:49:27 +0000 (14:49 +0200)]
Fix access to FP registers when visiting stack

Adds GetFPR and SetFPR to Context class so we can read from and write to
floating-point registers during stack visit. They return a boolean flag
indicating whether the read/write is successful. This allows the debugger to
return the JDWP error ABSENT_INFORMATION when we can't read/write a register.
We also update GetGPR and SetGPR for consistency. We keep a default GetGPR
implementation asserting the read was successful using a CHECK so we don't
silently fail.

Adds missing JDWP object tags for StackFrame.SetValues to avoid crash when
setting corresponding objects (thread, thread group, class object or class
loader). Also returns JDWP error INVALID_OBJECT (when the given object id is
invalid) instead of crashing with an unimplemented message.

Bug: 15433097
Change-Id: I70843c9280e694aec1eae5cf6f2dc155cb9ea10e

10 years agoMerge "Add x86 inlined abs method for float/double"
Vladimir Marko [Tue, 17 Jun 2014 09:46:31 +0000 (09:46 +0000)]
Merge "Add x86 inlined abs method for float/double"

10 years agoMerge "Fix access to FP registers when visiting stack"
Sebastien Hertz [Tue, 17 Jun 2014 09:22:17 +0000 (09:22 +0000)]
Merge "Fix access to FP registers when visiting stack"

10 years agoMerge "Fix run-test for OSX."
Ian Rogers [Tue, 17 Jun 2014 05:24:03 +0000 (05:24 +0000)]
Merge "Fix run-test for OSX."

10 years agoFix run-test for OSX.
Ian Rogers [Tue, 17 Jun 2014 05:16:21 +0000 (22:16 -0700)]
Fix run-test for OSX.

Change-Id: I6b5dfeba5a3d04fa2bea3fde4604fa84ed362615

10 years agoMerge "Disable StubTest.IndexOf if heap poisoning is enabled for now."
Hiroshi Yamauchi [Mon, 16 Jun 2014 21:21:21 +0000 (21:21 +0000)]
Merge "Disable StubTest.IndexOf if heap poisoning is enabled for now."

10 years agoDisable StubTest.IndexOf if heap poisoning is enabled for now.
Hiroshi Yamauchi [Mon, 16 Jun 2014 19:59:49 +0000 (12:59 -0700)]
Disable StubTest.IndexOf if heap poisoning is enabled for now.

art_quick_indexof does not support heap poisoning yet.

Bug: 12687968
Change-Id: Ibc497cc782399f0d8e0d3dca59e1ebb358fe83a5

10 years agoMerge "AArch64: improve 64-bit immediates loads."
Bill Buzbee [Mon, 16 Jun 2014 20:54:38 +0000 (20:54 +0000)]
Merge "AArch64: improve 64-bit immediates loads."

10 years agoAArch64: improve 64-bit immediates loads.
Matteo Franchin [Fri, 13 Jun 2014 18:16:28 +0000 (19:16 +0100)]
AArch64: improve 64-bit immediates loads.

Improve the quick backend to load immediates by choosing the best
of the following strategies:

  - use wzr, xzr to load 0 (via mov) or -1 (via mvn),
  - use logical immediates (orr),
  - use one movz/movn optionally followed by one or more movk,
  - use the literal pool.

Change-Id: I8e46e6d9eaf46b717761dd9d60e63ee3f2a5422b

10 years agoMerge "ART: Instanceof returns true if ref == 0 on x86-64"
Bill Buzbee [Mon, 16 Jun 2014 20:16:00 +0000 (20:16 +0000)]
Merge "ART: Instanceof returns true if ref == 0 on x86-64"

10 years agoMerge "Add read barriers for the class and the intern tables."
Hiroshi Yamauchi [Mon, 16 Jun 2014 19:56:59 +0000 (19:56 +0000)]
Merge "Add read barriers for the class and the intern tables."

10 years agoMerge "Use GetLow() to access low register of a pair"
Bill Buzbee [Mon, 16 Jun 2014 19:52:09 +0000 (19:52 +0000)]
Merge "Use GetLow() to access low register of a pair"

10 years agoUse GetLow() to access low register of a pair
Mark Mendell [Mon, 16 Jun 2014 17:03:42 +0000 (13:03 -0400)]
Use GetLow() to access low register of a pair

A couple of spots were missed.

Change-Id: I14bd1d1bec4b497b742ef9edaf762e0c8e4ebf79
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
10 years agoMerge "Arm64 hard-float"
buzbee [Mon, 16 Jun 2014 17:47:23 +0000 (17:47 +0000)]
Merge "Arm64 hard-float"

10 years agoArm64 hard-float
buzbee [Thu, 12 Jun 2014 21:56:32 +0000 (14:56 -0700)]
Arm64 hard-float

Basic enabling of hard-float for Arm64.  In future CLs we'll
consolidate the various targets - there is a lot of overlap.

Compilation remains turned off in this CL, but I expect
to enable a subset shortly.  With compilation fully enabled
(including the EXPERIMENTAL opcodes with the exception of
REM and THROW), we get the following run-test results:

003-omnibus-opcode failures:
     Classes.checkCast
     Classes.arrayInstance
     UnresTest2
Haven't gone deep, but these appear to be related to throw/catch and/or
stacktrace.

For REM, the generated code looks reasonable to me - my guess is that
we've got something wrong on the transition to the runtime.  Haven't
looked deeper yet, though.

The bulk of the other failure also appear to be related to transitioning
to the runtime system, or handling try/catch.

run-test status:
Status with optimizations disabled, REM_FLOAT/DOUBLE and THROW disabled:
succeeded tests: 94
failed tests: 22
failed: 003-omnibus-opcodes
failed: 004-annotations
failed: 009-instanceof2
failed: 024-illegal-access
failed: 025-access-controller
failed: 031-class-attributes
failed: 044-proxy
failed: 045-reflect-array
failed: 046-reflect
failed: 058-enum-order
failed: 062-character-encodings
failed: 063-process-manager
failed: 064-field-access
failed: 068-classloader
failed: 071-dexfile
failed: 083-compiler-regressions
failed: 084-class-init
failed: 086-null-super
failed: 087-gc-after-link
failed: 100-reflect2
failed: 107-int-math2
failed: 201-built-in-exception-detail-messages

Change-Id: Ib66209285cad8998d77a14781de300af02a96b15

10 years agoAdd x86 inlined abs method for float/double
Yixin Shou [Wed, 5 Mar 2014 11:07:48 +0000 (06:07 -0500)]
Add x86 inlined abs method for float/double

Add the optimized implementation of inlined abs method for
float/double for X86 side.

Change-Id: I4e095644a90524354040174954c1e127c7bb4ee2
Signed-off-by: Yixin Shou <yixin.shou@intel.com>
10 years agoART: Instanceof returns true if ref == 0 on x86-64
Alexei Zavjalov [Mon, 9 Jun 2014 16:27:46 +0000 (23:27 +0700)]
ART: Instanceof returns true if ref == 0 on x86-64

On x86-64 platform rl_result and kArg0 is not the same, so we have to
handle this in the proper way.

Change-Id: Ia651f5dd8dd2cf584f510739ed58b46197dfee94
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
10 years agoAdd read barriers for the class and the intern tables.
Hiroshi Yamauchi [Fri, 13 Jun 2014 23:44:55 +0000 (16:44 -0700)]
Add read barriers for the class and the intern tables.

Add read barriers for the strong roots in the intern table and the
(strong) roots in the class table to make possible concurrent scanning
of them.

Bug: 12687968
Change-Id: If6edc33a37e65a8494e66dc3b144138b1530367f

10 years agoMerge "Quick compiler:interpret on type mismatch"
buzbee [Sat, 14 Jun 2014 20:10:01 +0000 (20:10 +0000)]
Merge "Quick compiler:interpret on type mismatch"

10 years agoQuick compiler:interpret on type mismatch
buzbee [Sat, 14 Jun 2014 19:33:09 +0000 (12:33 -0700)]
Quick compiler:interpret on type mismatch

The Dex specification is a bit loose - particularly in regards
to types.  The Quick compiler, though, makes some assumptions
about types.  In particular, it doesn't expect to encounter the
use of a long or double virtual register pair that was defined
by two independent 32-bit operations.

dx does not create such patterns (at least in recent memory).
However, at least one such case exists in the wild.  The next
version of the Dex specification will add more type constraints
and formally disallow such cases.  Meanwhile, existing code will
be handled by identifying these cases an reverting to interpretation
for the offending method.

Fix for internal b/15616104

Change-Id: Ibe9c423be9a952ff58cf8d985aa164885b8dd2ae

10 years agoMerge "ART: Hide unreachable basic blocks in the compiler"
Andreas Gampe [Fri, 13 Jun 2014 22:50:49 +0000 (22:50 +0000)]
Merge "ART: Hide unreachable basic blocks in the compiler"

10 years agoART: Hide unreachable basic blocks in the compiler
Andreas Gampe [Fri, 13 Jun 2014 20:44:40 +0000 (13:44 -0700)]
ART: Hide unreachable basic blocks in the compiler

Unreachable blocks are not handled uniformly in the optimization
passes. Uniformly hide them to avoid initialization errors.

Bug: 15573463
Change-Id: Ia9e89fa357d5672a6cd8389f28a06ff618fe60ee

10 years agoMerge "Don't use signal handlers in interpreter only mode"
Dave Allison [Fri, 13 Jun 2014 18:51:05 +0000 (18:51 +0000)]
Merge "Don't use signal handlers in interpreter only mode"

10 years agoDon't use signal handlers in interpreter only mode
Dave Allison [Fri, 13 Jun 2014 16:09:41 +0000 (09:09 -0700)]
Don't use signal handlers in interpreter only mode

Bug: 15543631

Change-Id: I8f251b5a66487dce3ac3127bdf3b5bc824d0e4bc

10 years agoMerge "x86_64: Enable compilation"
Ian Rogers [Sat, 14 Jun 2014 06:51:15 +0000 (06:51 +0000)]
Merge "x86_64: Enable compilation"

10 years agox86_64: Enable compilation
Dmitry Petrochenko [Fri, 6 Jun 2014 08:18:14 +0000 (15:18 +0700)]
x86_64: Enable compilation

This patch enables compilation of all methods for x86_64
except image.

Change-Id: Ie210809f2595cc25da688a4ad0363c258bcf8233
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
10 years agoMerge "Add extra information to InitImageMethodVisitor CHECK"
Brian Carlstrom [Sat, 14 Jun 2014 05:40:21 +0000 (05:40 +0000)]
Merge "Add extra information to InitImageMethodVisitor CHECK"

10 years agoAdd extra information to InitImageMethodVisitor CHECK
Brian Carlstrom [Sat, 14 Jun 2014 01:23:20 +0000 (18:23 -0700)]
Add extra information to InitImageMethodVisitor CHECK

Bug: 15616246

(cherry picked from commit 21f1740e845505bf437dcf128912ce218ff92af9)

Change-Id: Ib698229cd56151c682d44e8dd59d8df18fb5a393

10 years agoMerge "Avoid a non-root monitor vector in Dbg::GetOwnedMonitors()."
Hiroshi Yamauchi [Fri, 13 Jun 2014 23:51:57 +0000 (23:51 +0000)]
Merge "Avoid a non-root monitor vector in Dbg::GetOwnedMonitors()."

10 years agoAvoid a non-root monitor vector in Dbg::GetOwnedMonitors().
Hiroshi Yamauchi [Fri, 13 Jun 2014 22:08:05 +0000 (15:08 -0700)]
Avoid a non-root monitor vector in Dbg::GetOwnedMonitors().

Following up on CL 96571, remove the need to use stack-scoped vectors,
one of which is a non-root vector that holds Object*, which could
cause a GC bug.

Bug: 12687968
Change-Id: I8582fe6bfe71bae7018dbf844fe75ebe989b6535

10 years agoMerge "x86_64: Disable all optimizations and fix bugs"
Ian Rogers [Fri, 13 Jun 2014 22:05:35 +0000 (22:05 +0000)]
Merge "x86_64: Disable all optimizations and fix bugs"

10 years agox86_64: Disable all optimizations and fix bugs
Chao-ying Fu [Wed, 11 Jun 2014 01:11:11 +0000 (18:11 -0700)]
x86_64: Disable all optimizations and fix bugs

This disables all optimizations and ensures that art tests still pass.

Change-Id: I43217378d6889bb04f4d064f8d53cb3ff4c20aa0
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
10 years agoMerge "Optionally add debug symbols to ELF files made by quick compiler."
Brian Carlstrom [Fri, 13 Jun 2014 21:18:04 +0000 (21:18 +0000)]
Merge "Optionally add debug symbols to ELF files made by quick compiler."

10 years agoOptionally add debug symbols to ELF files made by quick compiler.
Alex Light [Fri, 6 Jun 2014 22:45:32 +0000 (15:45 -0700)]
Optionally add debug symbols to ELF files made by quick compiler.

Added debug symbols to ELF files created by dex2oat using
the quick compiler. Adds two flags --include-debug-symbols and
--no-include-debug-symbols for dex2oat that control the inclusion of these
debug symbols. Debug info is added by default if kIsDebugBuild is true.

Fixed bug where Intel DWARF information would not correctly deal with
deduplicated code the binary.

Changed the portable compiler code path in dex2oat.cc so that symbols
will not be stripped when run with --include-debug-symbols.

Change-Id: Ia2eb2f654dedf0e5e8606f7744e05b8d14155fb1

10 years agoMerge "ART: Clean up DexFile verifier API"
Andreas Gampe [Fri, 13 Jun 2014 18:44:18 +0000 (18:44 +0000)]
Merge "ART: Clean up DexFile verifier API"

10 years agoART: Clean up DexFile verifier API
Andreas Gampe [Fri, 13 Jun 2014 18:35:12 +0000 (11:35 -0700)]
ART: Clean up DexFile verifier API

Use an out arg instead of widening a return type.

Change-Id: I70744eec408b0c6f3487f168faf510869277daff

10 years agoMerge "Don't verify runtime only opcodes in the data-flow phase of verification."
Ian Rogers [Fri, 13 Jun 2014 18:34:21 +0000 (18:34 +0000)]
Merge "Don't verify runtime only opcodes in the data-flow phase of verification."

10 years agoDon't verify runtime only opcodes in the data-flow phase of verification.
Ian Rogers [Fri, 13 Jun 2014 17:31:28 +0000 (10:31 -0700)]
Don't verify runtime only opcodes in the data-flow phase of verification.

Bug: 15570344
Change-Id: I0304e8742a1d0318783ba72862e684ab91f63d0e

10 years agoMerge "ART: Check the number of invocation args in verifier"
Andreas Gampe [Fri, 13 Jun 2014 18:01:51 +0000 (18:01 +0000)]
Merge "ART: Check the number of invocation args in verifier"

10 years agoART: Check the number of invocation args in verifier
Andreas Gampe [Fri, 13 Jun 2014 02:35:05 +0000 (19:35 -0700)]
ART: Check the number of invocation args in verifier

Check the number of invocation arguments against the method's
prototype signature. It could happen that the method wasn't
available, yet, in which case we would let a clearly wrong
instruction through.

This generalizes https://android-review.googlesource.com/#/c/97779/

Bug: 15570483
Change-Id: Ie81aff3c1166a2b2bf1385414dff2e22fbb40ef2

10 years agoMerge "ART: Invoke_virtual needs at least receiver parameter"
Andreas Gampe [Thu, 12 Jun 2014 23:44:57 +0000 (23:44 +0000)]
Merge "ART: Invoke_virtual needs at least receiver parameter"

10 years agoART: Invoke_virtual needs at least receiver parameter
Andreas Gampe [Thu, 12 Jun 2014 22:44:40 +0000 (15:44 -0700)]
ART: Invoke_virtual needs at least receiver parameter

Makes the method verifier reject invoke_virtual instructions that
claim they do not need any parameters.

Bug: 15570946
Change-Id: Ia76fddb7a08551d6c08654950e7085f09eacf430

10 years agoMerge "AArch64: Enable MOVE_*, some CONST_*, CMP_*."
Bill Buzbee [Thu, 12 Jun 2014 21:01:46 +0000 (21:01 +0000)]
Merge "AArch64: Enable MOVE_*, some CONST_*, CMP_*."

10 years agoAArch64: Enable MOVE_*, some CONST_*, CMP_*.
Zheng Xu [Thu, 12 Jun 2014 02:22:33 +0000 (10:22 +0800)]
AArch64: Enable MOVE_*, some CONST_*, CMP_*.

With the fixes of GenArithImmOpLong, GenShiftOpLong, OpRegImm,
OpRegRegImm, OpRegRegImm64, EncodeLogicalImmediate and fmov.

Change-Id: I8cae4f921d5150a6b8e4803ca4dee553928d1a58

10 years agoMerge "ART: Dex file verifier can't blindly use GetDescriptor"
Andreas Gampe [Sat, 14 Jun 2014 02:34:53 +0000 (02:34 +0000)]
Merge "ART: Dex file verifier can't blindly use GetDescriptor"

10 years agoART: Dex file verifier can't blindly use GetDescriptor
Andreas Gampe [Fri, 13 Jun 2014 22:31:40 +0000 (15:31 -0700)]
ART: Dex file verifier can't blindly use GetDescriptor

The dex file verifier cannot call GetDescriptor without checking
the index first.

Bug: 15615908
Change-Id: Iec5e20b77aac3e6c25fb94b1b630d0846c0b8f33

10 years agoMerge "ART: Ignore timing issues in debug builds"
Andreas Gampe [Sat, 14 Jun 2014 02:34:44 +0000 (02:34 +0000)]
Merge "ART: Ignore timing issues in debug builds"

10 years agoART: Ignore timing issues in debug builds
Andreas Gampe [Fri, 13 Jun 2014 22:46:46 +0000 (15:46 -0700)]
ART: Ignore timing issues in debug builds

When in debug builds, do not warn about slow verification and
compilation.

Change-Id: Ib982e1c7cf40cf624688bbf6c41f0a7cc53bbc67

10 years agoMerge "Tidy x86 assembler."
Ian Rogers [Sat, 14 Jun 2014 01:03:01 +0000 (01:03 +0000)]
Merge "Tidy x86 assembler."

10 years agoTidy x86 assembler.
Ian Rogers [Fri, 13 Jun 2014 23:38:24 +0000 (16:38 -0700)]
Tidy x86 assembler.

Use helper functions to compute when the kind has a SIB, a ModRM and RegReg
form.

Change-Id: I86a5cb944eec62451c63281265e6974cd7a08e07

10 years agoMerge "ART: Add initialize_type stubs for ARM64; indexof test"
Andreas Gampe [Fri, 13 Jun 2014 17:25:16 +0000 (17:25 +0000)]
Merge "ART: Add initialize_type stubs for ARM64; indexof test"

10 years agoART: Add initialize_type stubs for ARM64; indexof test
Andreas Gampe [Mon, 9 Jun 2014 21:55:53 +0000 (14:55 -0700)]
ART: Add initialize_type stubs for ARM64; indexof test

Add down-call stubs for ARM64. Add a test for indexof in stub_test.

Change-Id: I7bc045e29e4ca11ded5b318c47544edc1266afdb

10 years agoMerge "AArch64: Add support for inlined methods"
Bill Buzbee [Thu, 12 Jun 2014 21:53:06 +0000 (21:53 +0000)]
Merge "AArch64: Add support for inlined methods"

10 years agoAArch64: Add support for inlined methods
Serban Constantinescu [Wed, 11 Jun 2014 15:43:35 +0000 (16:43 +0100)]
AArch64: Add support for inlined methods

This patch adds support for Arm64 inlined methods.

Change-Id: Ic6aeed6d2d32f65cd1e63cf482f83cdcf958798a

10 years agoMerge "ART: Dex file verifier needs to check proto idx of method id."
Andreas Gampe [Thu, 12 Jun 2014 21:47:57 +0000 (21:47 +0000)]
Merge "ART: Dex file verifier needs to check proto idx of method id."

10 years agoART: Dex file verifier needs to check proto idx of method id.
Andreas Gampe [Thu, 12 Jun 2014 04:46:05 +0000 (21:46 -0700)]
ART: Dex file verifier needs to check proto idx of method id.

Bug: 15570490
Change-Id: I4e90aea6e77711ee37d14d96a1fc9a2fbb980d94

10 years agoMerge "AArch64: fix MarkGCCard, enabling more MIR opcodes."
Bill Buzbee [Thu, 12 Jun 2014 17:39:09 +0000 (17:39 +0000)]
Merge "AArch64: fix MarkGCCard, enabling more MIR opcodes."

10 years agoMerge "consolidate profiles and profile-cache"
Nick Kralevich [Thu, 12 Jun 2014 23:05:01 +0000 (23:05 +0000)]
Merge "consolidate profiles and profile-cache"

10 years agoMerge "ART: Do not allow quickened dex codes in compiler mode."
Andreas Gampe [Thu, 12 Jun 2014 22:51:22 +0000 (22:51 +0000)]
Merge "ART: Do not allow quickened dex codes in compiler mode."

10 years agoART: Do not allow quickened dex codes in compiler mode.
Andreas Gampe [Thu, 12 Jun 2014 21:35:51 +0000 (14:35 -0700)]
ART: Do not allow quickened dex codes in compiler mode.

The method verifier will reject quickened dex opcodes when the
runtime is in compiler mode, as we do not expect them here.

Bug: 15570344
Change-Id: I072567835139860213f9882cac995370b4548a79

10 years agoconsolidate profiles and profile-cache
Nick Kralevich [Thu, 12 Jun 2014 01:29:07 +0000 (18:29 -0700)]
consolidate profiles and profile-cache

Ownership problems originally prevented using the same directory
for /data/dalvik-cache/profiles and /data/dalvik-cache/profile-cache.
Now that ownership is assigned via init.rc, we can consolidate these
two directories.

Old profile files are stored in /data/dalvik-cache/profiles/ with
the "@old" extension. We use "@" instead of "." to avoid conflicts
should someone create a package ending in ".old".

Change-Id: Ic1b44009faa30d704855e97631006c4b990a4ad3

10 years agoMerge "Fix typo comment by removing."
Ian Rogers [Wed, 11 Jun 2014 23:45:26 +0000 (23:45 +0000)]
Merge "Fix typo comment by removing."

10 years agoFix typo comment by removing.
Ian Rogers [Wed, 11 Jun 2014 23:44:24 +0000 (16:44 -0700)]
Fix typo comment by removing.

Change-Id: I09764f194317634164be9431328013205fba2910

10 years agoMerge "ART: Add mul_long bytecode for X86-64"
Ian Rogers [Wed, 11 Jun 2014 23:39:15 +0000 (23:39 +0000)]
Merge "ART: Add mul_long bytecode for X86-64"

10 years agoART: Add mul_long bytecode for X86-64
Alexei Zavjalov [Wed, 11 Jun 2014 11:26:40 +0000 (18:26 +0700)]
ART: Add mul_long bytecode for X86-64

This patch implements the inlined version of the mul-long
bytecode for X86-64 platform.

Change-Id: I828e5861e17024d33f09223e0245380aef63a622
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
10 years agoMerge "ART: arm64 explicit stack overflow checks"
Bill Buzbee [Thu, 12 Jun 2014 17:39:32 +0000 (17:39 +0000)]
Merge "ART: arm64 explicit stack overflow checks"

10 years agoART: arm64 explicit stack overflow checks
Stuart Monteith [Fri, 6 Jun 2014 16:05:08 +0000 (17:05 +0100)]
ART: arm64 explicit stack overflow checks

Implement only the explicit checks for the quick backend for arm64.
Implicit checks require fault handlers, which are currently unimplemented.

CMN + CMP have extended versions implemented for comparisons against the
stack pointer. More extended opcode implementations will need to follow.

Change-Id: I8db297aec73df818b20fe410297800c886701c76

10 years agoMerge "Final CL to enable register allocation on x86."
Nicolas Geoffray [Thu, 12 Jun 2014 09:04:03 +0000 (09:04 +0000)]
Merge "Final CL to enable register allocation on x86."

10 years agoFinal CL to enable register allocation on x86.
Nicolas Geoffray [Wed, 4 Jun 2014 10:12:39 +0000 (11:12 +0100)]
Final CL to enable register allocation on x86.

This CL implements:
1) Resolution after allocation: connecting the locations
   allocated to an interval within a block and between blocks.
2) Handling of fixed registers: some instructions require
   inputs/output to be at a specific location, and the allocator
   needs to deal with them in a special way.
3) ParallelMoveResolver::EmitNativeCode for x86.

Change-Id: I0da6bd7eb66877987148b87c3be6a983b4e3f858

10 years agoMerge "ART: Check indices in dex file verifier"
Andreas Gampe [Thu, 12 Jun 2014 01:36:15 +0000 (01:36 +0000)]
Merge "ART: Check indices in dex file verifier"

10 years agoMerge "Fix mem_map_test for Mips."
Ian Rogers [Wed, 11 Jun 2014 23:17:59 +0000 (23:17 +0000)]
Merge "Fix mem_map_test for Mips."

10 years agoFix mem_map_test for Mips.
Douglas Leung [Wed, 11 Jun 2014 18:47:09 +0000 (11:47 -0700)]
Fix mem_map_test for Mips.

Mips' kuseg window is from 0x0 to 0x80000000.

Change-Id: I3e90b04030672c003cdb4f7e9cda414b673b2d04
Signed-off-by: Douglas Leung <douglas@mips.com>
10 years agoMerge "Remove Object* weak roots from the debugger."
Hiroshi Yamauchi [Wed, 11 Jun 2014 23:04:03 +0000 (23:04 +0000)]
Merge "Remove Object* weak roots from the debugger."

10 years agoRemove Object* weak roots from the debugger.
Hiroshi Yamauchi [Mon, 9 Jun 2014 19:11:20 +0000 (12:11 -0700)]
Remove Object* weak roots from the debugger.

The weak roots were converted to JNI weak refs.

Since the weak roots are now normal JNI weak refs, we eliminate the
need to insert read barriers for those weak roots in the debugger and
the need for the GC to have a separate step to update them as part of
the system weak sweeping.

Bug: 12687968
Change-Id: If16396d4713457b8af4f1ea6a0c6ec6799cb615e

10 years agoMerge changes I70a3b6fe,Ib12f3474
Brian Carlstrom [Wed, 11 Jun 2014 23:01:40 +0000 (23:01 +0000)]
Merge changes I70a3b6fe,Ib12f3474

* changes:
  Fix build by converting from bionic to elfutils version of elf.h
  Revert "Revert "Rewrite ElfWriterQuick to make it more modular.""

10 years agoFix build by converting from bionic to elfutils version of elf.h
Brian Carlstrom [Wed, 11 Jun 2014 21:22:02 +0000 (14:22 -0700)]
Fix build by converting from bionic to elfutils version of elf.h

Change-Id: I70a3b6fedae6d290a4f01d4ae8fdd726b8aaa90f

10 years agoRevert "Revert "Rewrite ElfWriterQuick to make it more modular.""
Brian Carlstrom [Wed, 11 Jun 2014 21:54:46 +0000 (14:54 -0700)]
Revert "Revert "Rewrite ElfWriterQuick to make it more modular.""

This reverts commit 35f72251e722cad03a08e8ceacbd5c244eab5c29.

10 years agoMerge "Revert "Rewrite ElfWriterQuick to make it more modular.""
Brian Carlstrom [Wed, 11 Jun 2014 21:35:05 +0000 (21:35 +0000)]
Merge "Revert "Rewrite ElfWriterQuick to make it more modular.""

10 years agoRevert "Rewrite ElfWriterQuick to make it more modular."
Brian Carlstrom [Wed, 11 Jun 2014 21:24:53 +0000 (21:24 +0000)]
Revert "Rewrite ElfWriterQuick to make it more modular."

This reverts commit ad13cb2db8c4a64298ed85c82ae7366ee73f7640.

Change-Id: Iee1d1fd08a008d7d382c181cb352ef46a6eaf5d3

10 years agoMerge "x86_64: Fix issue in JNI compiler"
Andreas Gampe [Wed, 11 Jun 2014 21:56:39 +0000 (21:56 +0000)]
Merge "x86_64: Fix issue in JNI compiler"

10 years agox86_64: Fix issue in JNI compiler
avignate [Wed, 4 Jun 2014 10:59:44 +0000 (17:59 +0700)]
x86_64: Fix issue in JNI compiler

This patch fixed 64 bit conversion issue in Immediate.
The issue is inside type conversion of Immediate:
explicit Immediate(int64_t value) : value_(value) {}.
In case of the following example we'll have unexpected value in Immediate:
size_t t = 1;
Immediate(-t) will contain value 4294967295 because by conversion
rules -t is first transformed to unsigned and then transformed
to 64bit (size64_t). The issue can be fixed by using long value
as a parameter of Immediate constructor.

Added tests for BuildFrame, RemoveFrame, IncreaseFrameSize and
DecreaseFrameSize to assembler_x86_64_test.

Change-Id: I0652bac83e4266fd4153bc6a4e9d3aae7cc4cb6f
Signed-off-by: avignate <aleksey.v.ignatenko@intel.com>
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
10 years agoMerge "ART: Update the DecodedInstruction for the Fused extended bytecodes."
Ian Rogers [Wed, 11 Jun 2014 21:47:08 +0000 (21:47 +0000)]
Merge "ART: Update the DecodedInstruction for the Fused extended bytecodes."

10 years agoMerge "Rewrite ElfWriterQuick to make it more modular."
Brian Carlstrom [Wed, 11 Jun 2014 20:33:09 +0000 (20:33 +0000)]
Merge "Rewrite ElfWriterQuick to make it more modular."

10 years agoMerge "Fix compilation errors when setting kTracing = true."
Ian Rogers [Wed, 11 Jun 2014 20:14:09 +0000 (20:14 +0000)]
Merge "Fix compilation errors when setting kTracing = true."

10 years agoFix compilation errors when setting kTracing = true.
Douglas Leung [Wed, 11 Jun 2014 18:41:11 +0000 (11:41 -0700)]
Fix compilation errors when setting kTracing = true.

Change-Id: I946c98021166bd099983a8f50a18b57d8eac6af6
Signed-off-by: Douglas Leung <douglas@mips.com>
10 years agoMerge "Fix host Mac build."
Ian Rogers [Wed, 11 Jun 2014 20:10:02 +0000 (20:10 +0000)]
Merge "Fix host Mac build."

10 years agoFix host Mac build.
Ian Rogers [Wed, 11 Jun 2014 20:00:44 +0000 (13:00 -0700)]
Fix host Mac build.

Ptr - ptr is an int not size_t on the Mac.
Fix use of assembly literal macro.
Remove forgotten about WITH_HOST_DALVIK.

Change-Id: I64db1927b2c6a145b6a96ffcc33d704914bba1bb

10 years agoMerge "Remove deprecated WITH_HOST_DALVIK."
Ian Rogers [Wed, 11 Jun 2014 17:29:23 +0000 (17:29 +0000)]
Merge "Remove deprecated WITH_HOST_DALVIK."

10 years agoRemove deprecated WITH_HOST_DALVIK.
Ian Rogers [Fri, 6 Jun 2014 03:48:42 +0000 (20:48 -0700)]
Remove deprecated WITH_HOST_DALVIK.

Bug: 13751317
Fix the Mac build:
 - disable x86 selector removal that causes OS/X 10.9 kernel panics,
 - madvise don't need does zero memory on the Mac, factor into MemMap
   routine,
 - switch to the elf.h in elfutils to avoid Linux kernel dependencies,
 - we can't rely on exclusive_owner_ being available from other pthread
   libraries so maintain our own when futexes aren't available (we
   can't rely on the OS/X 10.8 hack any more),
 - fix symbol naming in assembly code,
 - work around C library differences,
 - disable backtrace in DumpNativeStack to avoid a broken libbacktrace
   dependency,
 - disable main thread signal handling logic,
 - align the stack in stub_test,
 - use $(HOST_SHLIB_SUFFIX) rather than .so in host make file variables.

Not all host tests are passing on the Mac with this change. dex2oat
works as does running HelloWorld.
Change-Id: I5a232aedfb2028524d49daa6397a8e60f3ee40d3

10 years agoMerge "Workaround frame size issues."
Ian Rogers [Tue, 10 Jun 2014 23:56:41 +0000 (23:56 +0000)]
Merge "Workaround frame size issues."

10 years agoWorkaround frame size issues.
Ian Rogers [Tue, 10 Jun 2014 23:31:03 +0000 (16:31 -0700)]
Workaround frame size issues.

x86 and x86-64 are exceeding the frame size for the switch interpreter.
The SOMETIMES_INLINE hack doesn't work with GCC as inline and the noinline
attribute are mutually exclusive. As a temporary solution move the effected
code to the the interpreter_common.cc file.
Bug: 14882674

Change-Id: Id5383ef5436046b36565cd1d76de8e3d59f42cff

10 years agoMerge "X86_64: Proper IMT fix"
Ian Rogers [Tue, 10 Jun 2014 23:34:42 +0000 (23:34 +0000)]
Merge "X86_64: Proper IMT fix"

10 years agoMerge "Fix for test-art-host"
Brian Carlstrom [Tue, 10 Jun 2014 23:21:40 +0000 (23:21 +0000)]
Merge "Fix for test-art-host"

10 years agoFix for test-art-host
Brian Carlstrom [Tue, 10 Jun 2014 22:42:52 +0000 (15:42 -0700)]
Fix for test-art-host

Courtesy of dallison@

Change-Id: I160a5c84c176f22168bf236899349b6087494807

10 years agoMerge "ART: Fix MIPS build"
Andreas Gampe [Wed, 11 Jun 2014 05:15:19 +0000 (05:15 +0000)]
Merge "ART: Fix MIPS build"

10 years agoART: Fix MIPS build
Andreas Gampe [Wed, 11 Jun 2014 04:57:00 +0000 (21:57 -0700)]
ART: Fix MIPS build

Wrong name for an assembly file. Also, registers need $ prefix
in our assembler.

Change-Id: Ic2d5961ec7d0c8e65ca5b27d681487da847c9065

10 years agoMerge "ART: Move __memcmp16 from Bionic to ART"
Andreas Gampe [Wed, 11 Jun 2014 03:13:42 +0000 (03:13 +0000)]
Merge "ART: Move __memcmp16 from Bionic to ART"

10 years agoART: Move __memcmp16 from Bionic to ART
Andreas Gampe [Tue, 10 Jun 2014 23:10:56 +0000 (16:10 -0700)]
ART: Move __memcmp16 from Bionic to ART

Handle __memcmp16 / MemCmp16 in ART. Import assembly implementations
for arm and mips from Bionic. Use a generic C version for all other
platforms.

Removes the memcmp16 quick entrypoint, as it is never used. Bump
the oat version and update thread.cc and checks to reflect the
structural change.

Change-Id: I54a5a1da2a0a43ef271c8aeda0bf2276b8b11ac6