summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix exception reporting from interpreterSebastien Hertz2014-06-1116-38/+153
| | | | | | | | | | | | | | | | | | | | 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
* Merge "ART: Fix MIPS build"Andreas Gampe2014-06-102-17/+17
|\
| * ART: Fix MIPS buildAndreas Gampe2014-06-102-17/+17
|/ | | | | | | Wrong name for an assembly file. Also, registers need $ prefix in our assembler. Change-Id: Ic2d5961ec7d0c8e65ca5b27d681487da847c9065
* Merge "ART: Move __memcmp16 from Bionic to ART"Andreas Gampe2014-06-1018-40/+370
|\
| * ART: Move __memcmp16 from Bionic to ARTAndreas Gampe2014-06-1018-40/+370
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge "Workaround frame size issues."Ian Rogers2014-06-103-406/+410
|\ \
| * | Workaround frame size issues.Ian Rogers2014-06-103-406/+410
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Merge "X86_64: Proper IMT fix"Ian Rogers2014-06-101-1/+2
|\ \ \ | |/ /
| * | X86_64: Proper IMT fixMark Mendell2014-06-101-1/+2
| |/ | | | | | | | | | | | | | | | | | | | | 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>
* | Merge "Fix for test-art-host"Brian Carlstrom2014-06-101-0/+4
|\ \ | |/ |/|
| * Fix for test-art-hostBrian Carlstrom2014-06-101-0/+4
|/ | | | | | Courtesy of dallison@ Change-Id: I160a5c84c176f22168bf236899349b6087494807
* Merge "Use HOST_LIBRARY_PATH to access host shared libraries."Ying Wang2014-06-102-6/+6
|\
| * Use HOST_LIBRARY_PATH to access host shared libraries.Ying Wang2014-06-102-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge "Change MethodHelper to use a Handle."Mathieu Chartier2014-06-1041-621/+711
|\ \ | |/ |/|
| * Change MethodHelper to use a Handle.Mathieu Chartier2014-06-0941-621/+711
| | | | | | | | | | | | | | | | | | | | | | 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
* | Merge "ART: Add instrumentation stubs for ARM64 and X86-64"Andreas Gampe2014-06-107-90/+240
|\ \
| * | ART: Add instrumentation stubs for ARM64 and X86-64Andreas Gampe2014-06-097-90/+240
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Merge "Reduced frequency of blocks for concurrent gc"Mathieu Chartier2014-06-103-21/+27
|\ \ \
| * | | Reduced frequency of blocks for concurrent gcFred Shih2014-06-103-21/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Merge "ART: Generalize code to find PC for artInvokeInterfaceTrampoline"Andreas Gampe2014-06-1011-198/+278
|\ \ \ \
| * | | | ART: Generalize code to find PC for artInvokeInterfaceTrampolineAlexei Zavjalov2014-06-1011-198/+278
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | | | Merge "Round up arena allocations to 8 bytes."Vladimir Marko2014-06-104-4/+4
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Round up arena allocations to 8 bytes.Vladimir Marko2014-06-104-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prevent SIGBUS/BUS_ADRALN when we use the arena for classes with 64-bit alignment. Change-Id: I5382ed7072fcfb2349f61558e1fd8257315ee336
* | | | | Merge "Remove TARGET_REX_SUPPORT define."Ian Rogers2014-06-103-56/+0
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Remove TARGET_REX_SUPPORT define.Ian Rogers2014-06-103-56/+0
|/ / / / | | | | | | | | | | | | Change-Id: I1c3644176c101064261d13b50484d2e3ae456316
* | | | Merge "Add locking around boot image generation."Narayan Kamath2014-06-107-56/+183
|\ \ \ \
| * | | | Add locking around boot image generation.Narayan Kamath2014-06-107-56/+183
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | Merge "Plug code generator into liveness analysis."Nicolas Geoffray2014-06-1011-146/+376
|\ \ \ \ \
| * | | | | Plug code generator into liveness analysis.Nicolas Geoffray2014-06-1011-146/+376
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | Also implement spill slot support. Change-Id: If5e28811e9fbbf3842a258772c633318a2f4fafc
* | | | | Merge "Add a type propagation phase after building SSA."Nicolas Geoffray2014-06-105-23/+160
|\ \ \ \ \
| * | | | | Add a type propagation phase after building SSA.Nicolas Geoffray2014-06-095-23/+160
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | This ensures all phis have a type. Change-Id: I7e4f9a16d1efb5f64c493c1351749b352c870cbd
* | | | | Merge "X86_64: Pass 'hidden method index' in EAX"Ian Rogers2014-06-103-7/+4
|\ \ \ \ \
| * | | | | X86_64: Pass 'hidden method index' in EAXMark Mendell2014-06-093-7/+4
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | | | Merge "Tidy up x86 assembler and fix byte register encoding."Ian Rogers2014-06-105-1503/+1561
|\ \ \ \ \
| * | | | | Tidy up x86 assembler and fix byte register encoding.Ian Rogers2014-06-095-1503/+1561
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also fix reg storage int size issues. Also fix bad use of byte registers in GenInlinedCas. Change-Id: Id47424f36f9000e051110553e0b51816910e2fe8
* | | | | | Merge "ART: Generic JNI for x86"Andreas Gampe2014-06-102-9/+90
|\ \ \ \ \ \ | |/ / / / / |/| | | | |
| * | | | | ART: Generic JNI for x86Andreas Gampe2014-06-092-9/+90
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | Add the generic JNI trampoline for x86. Small cleanup in the C code. Change-Id: Icaf9de7c0e5e8d1e6cb1135a54552040344cc5a3
* | | | | Merge "Fix output of 107 art/test"Bill Buzbee2014-06-101-1/+1
|\ \ \ \ \
| * | | | | Fix output of 107 art/testDmitry Petrochenko2014-06-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch affects 107 only when it is failed. Change-Id: Ic33e6088d3fa4ca2cf47997f2bd6615462fc13cd Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
* | | | | | Merge "X86_64: Fix core.oat compilation issues"Bill Buzbee2014-06-102-3/+8
|\ \ \ \ \ \
| * | | | | | X86_64: Fix core.oat compilation issuesMark Mendell2014-06-092-3/+8
| | |_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix neg-long and X86Mir2Lir::GenInstanceofFinal Change-Id: I7fbcc1a89857cc461f74b55573ac6cb7c8e64561 Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
* | | | | | Merge "x86_64: Reduce dex2oat compilation logs"Bill Buzbee2014-06-101-1/+3
|\ \ \ \ \ \
| * | | | | | x86_64: Reduce dex2oat compilation logsDmitry Petrochenko2014-06-101-1/+3
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Disable printing of all compiled methods to logcat. Change-Id: Ie210809f2595cc25da688a4ad0363c258bcf9233 Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
* | | | | | Merge "AArch64: fix and enable sparse- and packed-switch."Bill Buzbee2014-06-103-9/+46
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | |
| * | | | | AArch64: fix and enable sparse- and packed-switch.Matteo Franchin2014-06-093-9/+46
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | Merge "Fix GetFreeMemory to use fooprint limit instead of max memory."Mathieu Chartier2014-06-092-2/+2
|\ \ \ \ \ | |_|_|/ / |/| | | |
| * | | | Fix GetFreeMemory to use fooprint limit instead of max memory.Mathieu Chartier2014-06-092-2/+2
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Based on definitions in: http://developer.android.com/reference/java/lang/Runtime.html Bug: 15507122 Change-Id: I02f34682d7ac2d379a07631b5207b6cfb224da6b
* | | | Merge "AArch64: Fix kOpLsl, rem-float/double."Bill Buzbee2014-06-093-5/+15
|\ \ \ \ | |/ / / |/| | |
| * | | AArch64: Fix kOpLsl, rem-float/double.Zheng Xu2014-06-093-5/+15
| | | | | | | | | | | | | | | | Change-Id: I6f7293493c0f94f96882d2e559e3eef659a23aec
* | | | Merge "Avoid a memory allocation in OatFile::GetOatDexFile()."Vladimir Marko2014-06-092-11/+17
|\ \ \ \ | |_|/ / |/| | |