OSDN Git Service

android-x86/art.git
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 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 "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 "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 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 "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 "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: 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 "Fix reflection access check for attached native threads."
Vladimir Marko [Thu, 12 Jun 2014 17:15:23 +0000 (17:15 +0000)]
Merge "Fix reflection access check for attached native threads."

10 years agoFix reflection access check for attached native threads.
Vladimir Marko [Thu, 12 Jun 2014 14:22:31 +0000 (15:22 +0100)]
Fix reflection access check for attached native threads.

Bug: 15539150
Change-Id: Ie580cad1c0169d550162bcc878b07643259323c4

10 years agoMerge "Clean up ArmMirToLir::LoadDispBody()/StoreDispBody()."
Vladimir Marko [Thu, 12 Jun 2014 16:08:46 +0000 (16:08 +0000)]
Merge "Clean up ArmMirToLir::LoadDispBody()/StoreDispBody()."

10 years agoMerge "Add D/CHECK_CONSTEXPR macros for use in constexpr context."
Vladimir Marko [Thu, 12 Jun 2014 14:27:31 +0000 (14:27 +0000)]
Merge "Add D/CHECK_CONSTEXPR macros for use in constexpr context."

10 years agoAdd D/CHECK_CONSTEXPR macros for use in constexpr context.
Vladimir Marko [Wed, 11 Jun 2014 11:12:07 +0000 (12:12 +0100)]
Add D/CHECK_CONSTEXPR macros for use in constexpr context.

Make most RegStorage methods constexpr, make StorageSize()
const.

Change-Id: Ie63faa3b081094b3dd30352c6240fdf10ef8b87e

10 years agoMerge "Fix exception reporting from interpreter"
Sebastien Hertz [Wed, 11 Jun 2014 12:32:31 +0000 (12:32 +0000)]
Merge "Fix exception reporting from interpreter"

10 years agoFix exception reporting from interpreter
Sebastien Hertz [Fri, 23 May 2014 06:59:42 +0000 (08:59 +0200)]
Fix exception reporting from interpreter

To comply with JDWP exception report rules, we must report an exception at the
location of the throw (or the first instruction encountered after a native
call). To do this, we use the CatchLocationFinder visitor to look for a catch
handler until we reach a native frame or the top frame.

Because interpreter handles pending exception on a method-by-method basis, we
need a flag to remember we already reported the exception and avoid reporting
it multiple times when unwinding methods. The drawback is we need to maintain
the state of this flag. We clear it when the exception is cleared. In the case
we temporarily clear the exception (when finding a catch handler for instance),
we restore the flag to its previous value at the same time we restore the
pending exception.

Bump oat version to force recompilation because we modify Thread offsets.

Bug: 14402770
Change-Id: Ic059c58f80b2023b118038301f8f0a24f1e18241

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

10 years agoMerge "Rewrite use/def masks to support 128 bits."
Vladimir Marko [Thu, 12 Jun 2014 18:12:51 +0000 (18:12 +0000)]
Merge "Rewrite use/def masks to support 128 bits."

10 years agoRewrite use/def masks to support 128 bits.
Vladimir Marko [Fri, 6 Jun 2014 13:50:36 +0000 (14:50 +0100)]
Rewrite use/def masks to support 128 bits.

Reduce LIR memory usage by holding masks by pointers in the
LIR rather than directly and using pre-defined const masks
for the common cases, allocating very few on the arena.

Change-Id: I0f6d27ef6867acd157184c8c74f9612cebfe6c16

10 years agoX86_64: Proper IMT fix
Mark Mendell [Tue, 10 Jun 2014 14:21:29 +0000 (10:21 -0400)]
X86_64: Proper IMT fix

Unfortunately, 97184: X86_64: Pass 'hidden method index' in EAX wasn't
correct.  TargetReg(kInvokeTgt) is ALSO EAX, and so invoke-interface
blows up, since the saved index is overwritten by the generated code.

Change kInvokeTgt to EDI (the same as ARG0).

Change-Id: I4b1d260237274ee26b9283d810d1b74484ea59af
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
10 years agoMerge "Use HOST_LIBRARY_PATH to access host shared libraries."
Ying Wang [Tue, 10 Jun 2014 20:31:29 +0000 (20:31 +0000)]
Merge "Use HOST_LIBRARY_PATH to access host shared libraries."

10 years agoUse HOST_LIBRARY_PATH to access host shared libraries.
Ying Wang [Tue, 10 Jun 2014 19:06:16 +0000 (12:06 -0700)]
Use HOST_LIBRARY_PATH to access host shared libraries.

With multilib host build, the build system installs host
shared libraries to different directories depending on a
library's bitness:
- HOST_OUT_SHARED_LIBRARIES points to the library path of 64-bit;
- 2ND_HOST_OUT_SHARED_LIBRARIES points to the library path of 32-bit;
- If you don't care the bitness of the libraries and just want whatever
  version the librareies are built by default, use HOST_LIBRARY_PATH.

Bug:13751317
Change-Id: I58a7ca5988d89b8619a804913461723719c9a873

10 years agoART: Update the DecodedInstruction for the Fused extended bytecodes.
Jean Christophe Beyler [Sun, 1 Jun 2014 18:39:39 +0000 (11:39 -0700)]
ART: Update the DecodedInstruction for the Fused extended bytecodes.

The BasicBlockOpt function creates extended MIRs but does not update the
associated DecodedInstruction. This results in an impossibility to re-create
the SSA algorithm.

Change-Id: I4a6393281e0ee52094f72f3de0001858c3d41ba3
Signed-off-by: Jean Christophe Beyler
10 years agoClean up ArmMirToLir::LoadDispBody()/StoreDispBody().
Vladimir Marko [Tue, 10 Jun 2014 17:15:57 +0000 (18:15 +0100)]
Clean up ArmMirToLir::LoadDispBody()/StoreDispBody().

Refactor the 64-bit load and store code to use a shared
helper function that can be used for any opcode with the
displacement limited to 8-bit value shifted by 2 (i.e. max
1020). Use that function also for 32-bit float load and
store as it is actually better than the old code for
offsets exceeding the 1020 byte limit.

Change-Id: I7dec38bae8cd9891420d2e92b1bac6138af5d64e

10 years agoMerge "Change MethodHelper to use a Handle."
Mathieu Chartier [Tue, 10 Jun 2014 18:21:32 +0000 (18:21 +0000)]
Merge "Change MethodHelper to use a Handle."

10 years agoMerge "ART: Add instrumentation stubs for ARM64 and X86-64"
Andreas Gampe [Tue, 10 Jun 2014 18:03:26 +0000 (18:03 +0000)]
Merge "ART: Add instrumentation stubs for ARM64 and X86-64"

10 years agoAArch64: fix MarkGCCard, enabling more MIR opcodes.
Matteo Franchin [Fri, 6 Jun 2014 09:09:56 +0000 (10:09 +0100)]
AArch64: fix MarkGCCard, enabling more MIR opcodes.

Fixing register usage in MarkGCCard. Also enabling more MIR opcodes in
the compiler filter.

Change-Id: I877250f8deaefc69115e861344ca47cc5ccea8ff

10 years agoMerge "Reduced frequency of blocks for concurrent gc"
Mathieu Chartier [Tue, 10 Jun 2014 17:37:50 +0000 (17:37 +0000)]
Merge "Reduced frequency of blocks for concurrent gc"

10 years agoReduced frequency of blocks for concurrent gc
Fred Shih [Mon, 9 Jun 2014 22:19:54 +0000 (15:19 -0700)]
Reduced frequency of blocks for concurrent gc

Immediately return for references that are marked before reference
processing without blocking. Soft references are kept in the queue until
the reference processor stops preserving, after which, all marked
references are removed. Finalizer references will still block on get().

Bug: 15471830
Change-Id: I588fcaef40b79ed7c95a4aa7f4fc2e17ee0c288f

10 years agoMerge "ART: Generalize code to find PC for artInvokeInterfaceTrampoline"
Andreas Gampe [Tue, 10 Jun 2014 17:01:46 +0000 (17:01 +0000)]
Merge "ART: Generalize code to find PC for artInvokeInterfaceTrampoline"

10 years agoART: Generalize code to find PC for artInvokeInterfaceTrampoline
Alexei Zavjalov [Thu, 15 May 2014 09:02:46 +0000 (16:02 +0700)]
ART: Generalize code to find PC for artInvokeInterfaceTrampoline

This allows to determine target method when the interface method has
no dex index, now also for X86-64 and ARM64.

Add constexpr functions to callee_save_frame.h to have compile-time
sizes of callee-save frames. Add a test that ensures they agree
with computations by the corresponding ArtMethod methods.

Move some instruction-set functions into the header file to allow
inlining them. Move arch-specific pointer sizes and alignment sizes
out of globals.h to instruction_set.h to reduce dependencies.

Change-Id: I2997592c7dd1f4dd2bd497522c64bd235ae615a6
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
10 years agoMerge "Round up arena allocations to 8 bytes."
Vladimir Marko [Tue, 10 Jun 2014 15:59:23 +0000 (15:59 +0000)]
Merge "Round up arena allocations to 8 bytes."

10 years agoMerge "Remove TARGET_REX_SUPPORT define."
Ian Rogers [Tue, 10 Jun 2014 15:04:51 +0000 (15:04 +0000)]
Merge "Remove TARGET_REX_SUPPORT define."

10 years agoRemove TARGET_REX_SUPPORT define.
Ian Rogers [Tue, 10 Jun 2014 07:09:42 +0000 (00:09 -0700)]
Remove TARGET_REX_SUPPORT define.

Change-Id: I1c3644176c101064261d13b50484d2e3ae456316

10 years agoRound up arena allocations to 8 bytes.
Vladimir Marko [Tue, 10 Jun 2014 13:47:51 +0000 (14:47 +0100)]
Round up arena allocations to 8 bytes.

Prevent SIGBUS/BUS_ADRALN when we use the arena for classes
with 64-bit alignment.

Change-Id: I5382ed7072fcfb2349f61558e1fd8257315ee336

10 years agoMerge "Add locking around boot image generation."
Narayan Kamath [Tue, 10 Jun 2014 11:03:14 +0000 (11:03 +0000)]
Merge "Add locking around boot image generation."

10 years agoAdd locking around boot image generation.
Narayan Kamath [Mon, 9 Jun 2014 15:50:19 +0000 (16:50 +0100)]
Add locking around boot image generation.

If zygote aborts due to an error, it will restart and
spawn another dex2oat process while the old one is still
running. If this happens fast enough, the system will
eventually need a kernel reboot since neither the zygote
nor dex2oat are killable.

This brings boot image generation in line with dex2oat
generation, which uses a similar pattern of advisory
locking.

bug: 15415316

Change-Id: Iaccd274d3d96ab002b04e246ec4b3ef9a422ff7c

10 years agoMerge "Plug code generator into liveness analysis."
Nicolas Geoffray [Tue, 10 Jun 2014 09:54:07 +0000 (09:54 +0000)]
Merge "Plug code generator into liveness analysis."

10 years agoPlug code generator into liveness analysis.
Nicolas Geoffray [Mon, 9 Jun 2014 14:02:22 +0000 (15:02 +0100)]
Plug code generator into liveness analysis.

Also implement spill slot support.

Change-Id: If5e28811e9fbbf3842a258772c633318a2f4fafc

10 years agoMerge "Add a type propagation phase after building SSA."
Nicolas Geoffray [Tue, 10 Jun 2014 08:26:04 +0000 (08:26 +0000)]
Merge "Add a type propagation phase after building SSA."

10 years agoMerge "X86_64: Pass 'hidden method index' in EAX"
Ian Rogers [Tue, 10 Jun 2014 06:35:22 +0000 (06:35 +0000)]
Merge "X86_64: Pass 'hidden method index' in EAX"

10 years agoMerge "Tidy up x86 assembler and fix byte register encoding."
Ian Rogers [Tue, 10 Jun 2014 05:52:13 +0000 (05:52 +0000)]
Merge "Tidy up x86 assembler and fix byte register encoding."

10 years agoMerge "ART: Generic JNI for x86"
Andreas Gampe [Tue, 10 Jun 2014 05:48:30 +0000 (05:48 +0000)]
Merge "ART: Generic JNI for x86"

10 years agoTidy up x86 assembler and fix byte register encoding.
Ian Rogers [Mon, 9 Jun 2014 08:32:12 +0000 (01:32 -0700)]
Tidy up x86 assembler and fix byte register encoding.

Also fix reg storage int size issues.
Also fix bad use of byte registers in GenInlinedCas.

Change-Id: Id47424f36f9000e051110553e0b51816910e2fe8

10 years agoMerge "Fix output of 107 art/test"
Bill Buzbee [Tue, 10 Jun 2014 04:06:35 +0000 (04:06 +0000)]
Merge "Fix output of 107 art/test"

10 years agoMerge "X86_64: Fix core.oat compilation issues"
Bill Buzbee [Tue, 10 Jun 2014 04:06:29 +0000 (04:06 +0000)]
Merge "X86_64: Fix core.oat compilation issues"

10 years agoMerge "x86_64: Reduce dex2oat compilation logs"
Bill Buzbee [Tue, 10 Jun 2014 04:06:22 +0000 (04:06 +0000)]
Merge "x86_64: Reduce dex2oat compilation logs"

10 years agoMerge "AArch64: fix and enable sparse- and packed-switch."
Bill Buzbee [Tue, 10 Jun 2014 04:06:14 +0000 (04:06 +0000)]
Merge "AArch64: fix and enable sparse- and packed-switch."

10 years agoART: Generic JNI for x86
Andreas Gampe [Tue, 10 Jun 2014 01:29:38 +0000 (18:29 -0700)]
ART: Generic JNI for x86

Add the generic JNI trampoline for x86. Small cleanup in the C code.

Change-Id: Icaf9de7c0e5e8d1e6cb1135a54552040344cc5a3

10 years agoRewrite ElfWriterQuick to make it more modular.
Alex Light [Wed, 4 Jun 2014 22:43:03 +0000 (15:43 -0700)]
Rewrite ElfWriterQuick to make it more modular.

Remade ElfWriterQuick so that it would use a more modular design and allow
the addition of additional features onto it in a more straightforward way.

Change-Id: I07971eb2080890645fab1b02c7305697e85d3a64

10 years agoX86_64: Pass 'hidden method index' in EAX
Mark Mendell [Mon, 9 Jun 2014 19:10:50 +0000 (15:10 -0400)]
X86_64: Pass 'hidden method index' in EAX

Method* is in EDI, and EAX isn't an argument register, so EAX is free
to hold the hidden method index.

Change-Id: I793a54d00a4593e140f97144419d849b53bfdf44
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
10 years agoMerge "Fix GetFreeMemory to use fooprint limit instead of max memory."
Mathieu Chartier [Mon, 9 Jun 2014 20:54:50 +0000 (20:54 +0000)]
Merge "Fix GetFreeMemory to use fooprint limit instead of max memory."

10 years agoFix GetFreeMemory to use fooprint limit instead of max memory.
Mathieu Chartier [Mon, 9 Jun 2014 20:25:22 +0000 (13:25 -0700)]
Fix GetFreeMemory to use fooprint limit instead of max memory.

Based on definitions in:
http://developer.android.com/reference/java/lang/Runtime.html

Bug: 15507122
Change-Id: I02f34682d7ac2d379a07631b5207b6cfb224da6b

10 years agoChange MethodHelper to use a Handle.
Mathieu Chartier [Thu, 22 May 2014 00:43:44 +0000 (17:43 -0700)]
Change MethodHelper to use a Handle.

Added ConstHandle to help prevent errors where you modify the value
stored in the handle of the caller. Also fixed compaction bugs
related to not knowing MethodHelper::GetReturnType can resolve types.
This bug was present in interpreter RETURN_OBJECT.

Bug: 13077697

Change-Id: I71f964d4d810ab4debda1a09bc968af8f3c874a3

10 years agoFix output of 107 art/test
Dmitry Petrochenko [Mon, 9 Jun 2014 19:45:42 +0000 (02:45 +0700)]
Fix output of 107 art/test

This patch affects 107 only when it is failed.

Change-Id: Ic33e6088d3fa4ca2cf47997f2bd6615462fc13cd
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
10 years agox86_64: Reduce dex2oat compilation logs
Dmitry Petrochenko [Fri, 6 Jun 2014 08:18:14 +0000 (15:18 +0700)]
x86_64: Reduce dex2oat compilation logs

Disable printing of all compiled methods to logcat.

Change-Id: Ie210809f2595cc25da688a4ad0363c258bcf9233
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
10 years agoX86_64: Fix core.oat compilation issues
Mark Mendell [Mon, 9 Jun 2014 16:49:55 +0000 (12:49 -0400)]
X86_64: Fix core.oat compilation issues

Fix neg-long and X86Mir2Lir::GenInstanceofFinal

Change-Id: I7fbcc1a89857cc461f74b55573ac6cb7c8e64561
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
10 years agoMerge "AArch64: Fix kOpLsl, rem-float/double."
Bill Buzbee [Mon, 9 Jun 2014 16:29:12 +0000 (16:29 +0000)]
Merge "AArch64: Fix kOpLsl, rem-float/double."

10 years agoAArch64: fix and enable sparse- and packed-switch.
Matteo Franchin [Thu, 5 Jun 2014 14:10:35 +0000 (15:10 +0100)]
AArch64: fix and enable sparse- and packed-switch.

Changed implementation of sparse- and packed-switch to use w and x
registers appropriately. Also added a couple of utilities to obtain a
w/s register corresponding to a given x/d register and viceversa.

Change-Id: I485a110f6e91b09227d9e2a0b8b14224a10bca90

10 years agoART: Add instrumentation stubs for ARM64 and X86-64
Andreas Gampe [Thu, 5 Jun 2014 21:18:08 +0000 (14:18 -0700)]
ART: Add instrumentation stubs for ARM64 and X86-64

Adds instrumentation stubs necessary for debugger support.

Refactors MethodAndCode to a top-level TwoWordReturn. A function
having a return type of TwoWordReturn will return its two-word
content, either 2x32b or 2x64b, in two registers according to
the architecture's ABI.

Bug: 15443938
Change-Id: Id7e1fbd4ad8eb6f29e23d48903c76f77b28d981a

10 years agoAdd a type propagation phase after building SSA.
Nicolas Geoffray [Mon, 9 Jun 2014 13:06:02 +0000 (14:06 +0100)]
Add a type propagation phase after building SSA.

This ensures all phis have a type.

Change-Id: I7e4f9a16d1efb5f64c493c1351749b352c870cbd

10 years agoMerge "Avoid a memory allocation in OatFile::GetOatDexFile()."
Vladimir Marko [Mon, 9 Jun 2014 09:16:36 +0000 (09:16 +0000)]
Merge "Avoid a memory allocation in OatFile::GetOatDexFile()."

10 years agoAArch64: Fix kOpLsl, rem-float/double.
Zheng Xu [Mon, 9 Jun 2014 03:05:31 +0000 (11:05 +0800)]
AArch64: Fix kOpLsl, rem-float/double.

Change-Id: I6f7293493c0f94f96882d2e559e3eef659a23aec

10 years agoMerge "Fix some bugs in graph construction/simplification methods."
Nicolas Geoffray [Mon, 9 Jun 2014 08:00:05 +0000 (08:00 +0000)]
Merge "Fix some bugs in graph construction/simplification methods."