summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Deprecate GrowableArray, use ArenaVector instead."Vladimir Marko2014-09-2534-825/+638
|\
| * Deprecate GrowableArray, use ArenaVector instead.Vladimir Marko2014-09-2334-825/+638
| | | | | | | | | | | | | | Purge GrowableArray from Quick and Portable. Remove GrowableArray<T>::Iterator. Change-Id: I92157d3a6ea5975f295662809585b2dc15caa1c6
* | Merge "ART: Reject branch/switch/throw to move-result."Ian Rogers2014-09-252-2/+35
|\ \
| * | ART: Reject branch/switch/throw to move-result.Stephen Kyle2014-09-242-2/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | move-result* instructions must occur after invoke instructions, however it was still possible to branch or switch to a move-result* instruction with creative DEX manipulation. The verifier now rejects this situation, as well as having a move-result* instruction as the first instruction in a try block's handler. This now ensures that move-result* must happen dynamically after an invoke, not just statically. Change-Id: Ida97852f4051310fdaf38bed1d6e1c5a541c85c5 Signed-off-by: Stephen Kyle <stephen.kyle@arm.com>
* | | Merge "Fix "const-class v0, I" for libartd.so"Ian Rogers2014-09-253-0/+11
|\ \ \
| * | | Fix "const-class v0, I" for libartd.soLogan Chien2014-09-243-0/+11
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This CL fixes the verification of "const-class v0, I" by adding HasClassVirtual() to PrimitiveType. Without this CL, the DCHECK for HasClass() in RegType::GetClass() will raise an assertion failure, since the verifier is trying to get the class object for the dex cache. This issue can be reproduced by running the CTS dot.junit.opcodes.const_class.Main_testN2 with libartd.so. Change-Id: I605a3fcf7dd9d63e1f739fbb3153d0367911bb3e
* | | Merge "ART: Update for split native bridge initialization"Andreas Gampe2014-09-247-33/+109
|\ \ \ | |_|/ |/| |
| * | ART: Update for split native bridge initializationjgu212014-09-237-33/+109
| | | | | | | | | | | | Change-Id: I0b93da93251c6b4638de786bf98cf99df07c3fc2
* | | Merge "Restore kReasonLogging for kDexoptNeeded and kPatchoatNeeded"Brian Carlstrom2014-09-241-9/+10
|\ \ \
| * | | Restore kReasonLogging for kDexoptNeeded and kPatchoatNeededBrian Carlstrom2014-09-241-9/+10
|/ / / | | | | | | | | | | | | | | | | | | | | | Bug: 17565501 (cherry picked from commit 63582f211b7123d02f18dfa7075f6758ccb2b07c) Change-Id: Ie1196191d92286e543ed099c7d1ea4712802912d
* | | Merge "ART: Refactor elf_writer_quick for elf section order"Andreas Gampe2014-09-241-64/+163
|\ \ \
| * | | ART: Refactor elf_writer_quick for elf section orderAndreas Gampe2014-09-241-64/+163
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This writes ELF sections in approximate order (debug sections are currently out-of-order) to avoid incompletely written files appearing OK to ART loading code. Bug: 17622827 (cherry picked from commit 3c5ec99e156632a734c2359642ae928102850597) Change-Id: I812fd42fcf2823dbfaf5891bf101d3b59406f263
* | | | Merge "dex2oat should truncate files opened from file descriptors"Brian Carlstrom2014-09-241-0/+1
|\ \ \ \ | |/ / / |/| | |
| * | | dex2oat should truncate files opened from file descriptorsBrian Carlstrom2014-09-231-0/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | Bug: 17622827 (cherry picked from commit aa93129ca54cc897fdc2c8ddd0a7136f7b5632ed) Change-Id: I5467d488b4a57f7be35c72c16775df5bd5d69a52
* | | Merge "Optimizing compiler: ensure loop header dominates loop's blocks."Roland Levillain2014-09-231-0/+15
|\ \ \
| * | | Optimizing compiler: ensure loop header dominates loop's blocks.Roland Levillain2014-09-231-0/+15
| | | | | | | | | | | | | | | | Change-Id: I6b2f1fdaac9f91dc5d9901cc2ad4c83745e90e70
* | | | Merge "Enable computed goto interpreter on the host"Sebastien Hertz2014-09-232-32/+1
|\ \ \ \
| * | | | Enable computed goto interpreter on the hostSebastien Hertz2014-09-232-32/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We disabled the computed goto interpreter when compiling with clang because of compilation issues. Since we compile with clang on the host, we used the switch-based interpreter. Now clang is able to compile the computed goto interpreter, we can use it by default on the host. Change-Id: Ifa2a2d3c171b1116ecd3b3f213382c3c85e93f66
* | | | | Merge "Support for saving and restoring live registers in a slow path."Nicolas Geoffray2014-09-2313-19/+194
|\ \ \ \ \
| * | | | | Support for saving and restoring live registers in a slow path.Nicolas Geoffray2014-09-2313-19/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | And use it in suspend check slow paths. Change-Id: I79caf28f334c145a36180c79a6e2fceae3990c31
* | | | | | Merge "Fix code generation with materialized conditions."Nicolas Geoffray2014-09-239-21/+129
|\ \ \ \ \ \
| * | | | | | Fix code generation with materialized conditions.Nicolas Geoffray2014-09-239-21/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I8630af3c13fc1950d3fa718d7488407b00898796
* | | | | | | Merge "Add loop- and phi-related checks in the optimizing compiler."Roland Levillain2014-09-234-7/+110
|\ \ \ \ \ \ \ | |_|_|/ / / / |/| | | / / / | | |_|/ / / | |/| | | |
| * | | | | Add loop- and phi-related checks in the optimizing compiler.Roland Levillain2014-09-224-7/+110
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Ensure the pre-header block is first in the list of predecessors of a loop header. - Ensure the loop header has only two predecessors and that only the second one is the back edge. - Ensure there is only one back edge per loop. - Ensure the first input of a phi is not itself. - Ensure the number of phi inputs is the same as the number of its predecessors. - Ensure phi input at index I either comes from the Ith predecessor or from a block that dominates this predecessor. Change-Id: I4db5c68cfbc9b74d2d03125753d0143ece625378
* | | | | Merge "Add ScopedAssertNoThreadSuspension"Mathieu Chartier2014-09-227-60/+50
|\ \ \ \ \ | |_|_|_|/ |/| | | |
| * | | | Add ScopedAssertNoThreadSuspensionMathieu Chartier2014-09-197-60/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added a new class, ScopedAssertNoThreadSuspension. Deleted some unnecessary ScopedAssertNoThreadSuspension since VisitObjects already has a ScopedAssertNoThreadSuspension. Change-Id: I29ec0006120c39a27184d30e2d1d0c179e203776
* | | | | Merge "Also remove environment links to removed instructions."Nicolas Geoffray2014-09-224-4/+94
|\ \ \ \ \ | |_|/ / / |/| | | |
| * | | | Also remove environment links to removed instructions.Nicolas Geoffray2014-09-224-4/+94
|/ / / / | | | | | | | | | | | | Change-Id: I505163fb8683269c7d3fe21b34df92337d244552
* | | | Merge "Fix a bug in the handling of moves in register allocator."Nicolas Geoffray2014-09-224-0/+75
|\ \ \ \
| * | | | Fix a bug in the handling of moves in register allocator.Nicolas Geoffray2014-09-224-0/+75
| | | | | | | | | | | | | | | | | | | | Change-Id: Iaf1f34b0bece4f252290a97c3b73cc06e365985a
* | | | | Merge "Optimize JDWP stack local values access"Sebastien Hertz2014-09-223-316/+318
|\ \ \ \ \
| * | | | | Optimize JDWP stack local values accessSebastien Hertz2014-09-223-316/+318
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The StackFrame.GetValues and StackFrame.SetValues JDWP commands can refer to multiple variables at the same time in a given frame. However we used to walk the stack until getting to the requested frame for each variable. Now, we walk the stack only once until getting to the frame so the context is initialized. Then we read/write value for each variable from this context. Bug: 17343501 Bug: 15680615 Change-Id: I2a4128f29a3c5856b994e280037c0a09eb48c5c8
* | | | | | Merge "Do not hold breakpoint lock when running the verifier"Sebastien Hertz2014-09-221-21/+34
|\ \ \ \ \ \ | |_|/ / / / |/| | | | |
| * | | | | Do not hold breakpoint lock when running the verifierSebastien Hertz2014-09-221-21/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When setting a breakpoint, we need to know whether the method may be inlined. We run the method verifier but that may cause thread suspension. Therefore we must not hold any lock at this time. The issue is we do hold the breakpoint lock so we fails a check in debug mode. This CL ensures we don't hold the breakpoint lock when running the method verifier to detect inlining. Bug: 17562442 Change-Id: Ia6b128fc8917ce00025b68ae4ac62fb2a1f154e6
* | | | | | Merge "Add adb root to test-art-target, required by adb remount."Nicolas Geoffray2014-09-221-21/+24
|\ \ \ \ \ \
| * | | | | | Add adb root to test-art-target, required by adb remount.Nicolas Geoffray2014-09-191-21/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also replace our sleep 3 with wait-for-device. Change-Id: Icb53c4ad0e8d5c6e93b9610eb7e9530242720581
* | | | | | | Merge "Fix JDWP crash when reporting exception"Sebastien Hertz2014-09-222-6/+25
|\ \ \ \ \ \ \
| * | | | | | | Fix JDWP crash when reporting exceptionSebastien Hertz2014-09-222-6/+25
| | |_|/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The exception's throw location may be null so we need to handle that case. Also fixes a memset issue. Bug: 17571297 (cherry picked from commit bbb63897d7f2d99219cb50721fe530521e08ddff) Change-Id: Iedebb58f9460c5f04913c269200e51161bda1ba9
* | | | | | | Merge "Dump kernel/native stacks of pure native threads."Christopher Ferris2014-09-211-0/+7
|\ \ \ \ \ \ \
| * | | | | | | Dump kernel/native stacks of pure native threads.Christopher Ferris2014-09-211-0/+7
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug: 16463406 (cherry picked from commit 7da37cca5a5f71a0cd2442b2a119f76fa62e84b5) Change-Id: I22a26d4ec4e3048ddcfd668eee4fccd8b2b3b727
* | | | | | | Merge "Fix sput-wide verification flag."Ian Rogers2014-09-201-1/+1
|\ \ \ \ \ \ \
| * | | | | | | Fix sput-wide verification flag.Logan Chien2014-09-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The vA register for sput-wide is a wide register. Thus, the verification flag should be kVerifyRegAWide instead of kVerifyRegA. Without this change, the invalid Dex bytecode won't be rejected by VerifyInstruction(). As the result, the DCHECK_LT() in register_line-inl.h will abort the program. Change-Id: I24b746d8a85ddaf811d9aebed12a3dd9f97d755f
* | | | | | | | Merge "ART: Address three issues with x86 assembler before enabling load ↵Ian Rogers2014-09-192-16/+17
|\ \ \ \ \ \ \ \ | |_|_|_|_|/ / / |/| | | | | | | | | | | | | | | store elimination."
| * | | | | | | ART: Address three issues with x86 assembler before enabling load store ↵Haitao Feng2014-09-112-16/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | elimination. 1) Remove the IS_LOAD attribute from LEA instructions. 2) Change the attribute of fp stack instructions from IS_UNARY_OP to IS_BINARY_OP as operands[1] will be used to compute GetInstructionOffset. 3) Add IS_MOVE attribute for general register move instructions. Change-Id: I7054df47956f2acecf579ff7acfde385fd8ac194 Signed-off-by: Haitao Feng <haitao.feng@intel.com>
* | | | | | | | Merge "ART: Allow oatdump to verify oat file"Andreas Gampe2014-09-191-124/+243
|\ \ \ \ \ \ \ \
| * | | | | | | | ART: Allow oatdump to verify oat fileAndreas Gampe2014-09-181-124/+243
| | |_|_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bring up a runtime for oatdump of an oat file if the boot image option is given. This allows to use the verifier on any oat file. Some refactoring. Change-Id: Ifa895f22b648c7064fb0837fb36a0118422a3462
* | | | | | | | Merge "ART: Fix host test failure (assembler_thumb_test)."Ian Rogers2014-09-191-0/+13
|\ \ \ \ \ \ \ \
| * | | | | | | | ART: Fix host test failure (assembler_thumb_test).Tong Shen2014-09-051-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check if "bin/{as,objcopy,objdump}" exists in the tools dir we found in "prebuilts/gcc/linux-x86/arm/". Now there's an empty tree in platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9, causing assembler_thumb_test to fail. Change-Id: If6ba4f778b79f95239aa85e54816ab168e7d8940
* | | | | | | | | Merge "ART: Overflow of bound check in ArrayCopy intrinsic"Ian Rogers2014-09-191-8/+26
|\ \ \ \ \ \ \ \ \
| * | | | | | | | | ART: Overflow of bound check in ArrayCopy intrinsicavignate2014-09-171-8/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | System.arraycopy method is implemented as intrinsic on x86. It has bound check which has a bug to overflow in certain conditions when summ of array offset and number elements to be copied are more than MAX_INT. For the methods like CarArrayBuffer.get it means no OutOfBound exception to be thrown. The proposed solution fixed that. Change-Id: Id16a26163a61d934b862a8729a52ca5c1a56caec Signed-off-by: avignate <aleksey.v.ignatenko@intel.com>