summaryrefslogtreecommitdiffstats
path: root/test/082-inline-execute
Commit message (Collapse)AuthorAgeFilesLines
* ART: Release inputs in Long.reverse intrinsic in x86Andreas Gampe2015-07-081-0/+39
| | | | | | | | | | | | | In the worst case we are using two temps each for input and output. Then we do not have a temp left over for the swap operations. The input is dead, however, after the first swap. So try to release it (a no-op if it isn't actually a temp). Bug: 22324327 (cherry picked from commit 575422fa5be7389bdaff5e2d25dd87b1d2d4de85) Change-Id: I1fc50159afdad14160e34abeaf4670958171d6b2
* ART: arm indexOf intrinsics for the optimizing compilerAndreas Gampe2015-05-121-0/+3
| | | | | | | | | | | Add intrinsics implementations for indexOf in the optimizing compiler. These are mostly ported from Quick. Bug: 20889065 (cherry picked from commit ba6fdbcb764d5a8972f5ff2d7147e4d78226b347) Change-Id: I18ee849d41187a381f99529669e6f97040aaacf6
* ART: x86 indexOf intrinsics for the optimizing compilerAndreas Gampe2015-05-111-0/+71
| | | | | | | | Add intrinsics implementations for indexOf in the optimizing compiler. These are mostly ported from Quick. Add instruction support to assemblers where necessary. Change-Id: Ife90ed0245532a5c436a26fe84715dc357f353c8
* ART: Refactor 082-inline-executeAndreas Gampe2015-05-071-12/+28
| | | | | | | | Refactor the indexOf intrinsics tests so that the optimizing compiler would actually compile them. Bug: 20889065 Change-Id: I69bfda7fa3eb4ce42c593203731e3ddd61f7e1ed
* ART: Arm intrinsics for Optimizing compilerAndreas Gampe2015-02-091-0/+1
| | | | | | Add arm32 intrinsics to the optimizing compiler. Change-Id: If4aeedbf560862074d8ee08ca4484b666d6b9bf0
* ART: Arm64 optimizing compiler intrinsicsAndreas Gampe2015-01-281-21/+42
| | | | | | Implement most intrinsics for the optimizing compiler for Arm64. Change-Id: Idb459be09f0524cb9aeab7a5c7fccb1c6b65a707
* Quick: Fix range check for intrinsic String.charAt() on x86.Vladimir Marko2015-01-261-1/+37
| | | | | Bug: 19125146 Change-Id: I274190a7a60cd2e29a854738ed1ec99a9e611969
* ART: Fix GenInlined functionsChao-ying Fu2015-01-211-0/+58
| | | | | | | | | | | | | | This patch fixes Mir2Lir::GenInlinedReverseBytes, Mir2Lir::GenInlinedAbsInt, Mir2Lir::GenInlinedAbsLong, Mir2Lir::GenInlinedFloatCvt, Mir2Lir::GenInlinedDoubleCvt, X86Mir2Lir::GenInlinedSqrt, X86Mir2Lir::GenInlinedMinMaxFP, X86Mir2Lir::GenInlinedMinMax, X86Mir2Lir::GenInlinedPeek, and X86Mir2Lir::GenInlinedReverseBits to generate no code, when results are unused. New calls without assignments are added to 082-inline-execute. Change-Id: I7076e9ddbea43545315f2aeb677c63a8a6e95224 Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
* ART: Optimizing compiler intrinsicsAndreas Gampe2015-01-151-0/+22
| | | | | | | | | Add intrinsics infrastructure to the optimizing compiler. Add almost all intrinsics supported by Quick to the x86-64 backend. Further intrinsics require more assembler support. Change-Id: I48de9b44c82886bb298d16e74e12a9506b8e8807
* Really fix tests.Alex Light2014-08-274-346/+429
| | | | | | | | | | | | Remove extra line in Android.run-test.mk. Update junit code in 082 and 021. Set correct bootclasspath for --no-image. Make host core.art depend on dex files being installed. Make 118 pass in the correct bootclasspath. Bug: 17290452 Change-Id: I415eddfa3632ec7eda927abe95925202de193749
* AArch64: Add inlining support for ceil(), floor(), rint(), round()Serban Constantinescu2014-08-041-0/+206
| | | | | | | | | | | | | | | This patch adds inlining support for the following Math, StrictMath methods in the ARM64 backend: * double ceil(double) * double floor(double) * double rint(double) * long round(double) * int round(float) Also some cleanup. Change-Id: I9f5a2f4065b1313649f4b0c4380b8176703c3fe1 Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
* ART: inline Math.Max/Min (float and double)Alexei Zavjalov2014-07-181-67/+88
| | | | | | | | This implements the inlined version of Math.Max/Min intrinsics. Change-Id: I2db8fa7603db3cdf01016ec26811a96f91b1e6ed Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com> Signed-off-by: Shou, Yixin <yixin.shou@intel.com>
* Merge "AArch64: Fix and enable reverseBytes intrinsic."Andreas Gampe2014-07-111-5/+34
|\
| * AArch64: Fix and enable reverseBytes intrinsic.Zheng Xu2014-07-101-5/+34
| | | | | | | | | | | | There is no revsh on arm64, use rev16 and sxth instead. Change-Id: I5f9879352f0ad76b386c82cbf476894af888a64c
* | ART: Compacting ROS/DlMalloc spaces with semispace copy GCZuo Wang2014-07-111-65/+10
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current semispace copy GC is mainly associated with bump pointer spaces. Though it squeezes fragmentation most aggressively, an extra copy is required to re-establish the data in the ROS/DlMalloc space to allow CMS GCs to happen afterwards. As semispace copy GC is still stop-the-world, this not only introduces unnecessary overheads but also longer response time. Response time indicates the time duration between the start of transition request and the start of transition animation, which may impact the user experience. Using semispace copy GC to compact the data in a ROS space to another ROS(or DlMalloc space to another DlMalloc) space solves this problem. Although it squeezes less fragmentation, CMS GCs can run immediately after the compaction. We apply this algorithm in two cases: 1) Right before throwing an OOM if -XX:EnableHSpaceCompactForOOM is passed in as true. 2) When app is switched to background if the -XX:BackgroundGC option has value HSpaceCompact. For case 1), OOMs are significantly delayed in the harmony GC stress test, with compaction ratio up to 0.87. For case 2), compaction ratio around 0.5 is observed in both built-in SMS and browser. Similar results have been obtained on other apps as well. Change-Id: Iad9eabc6d046659fda3535ae20f21bc31f89ded3 Signed-off-by: Wang, Zuo <zuo.wang@intel.com> Signed-off-by: Chang, Yang <yang.chang@intel.com> Signed-off-by: Lei Li <lei.l.li@intel.com> Signed-off-by: Lin Zang <lin.zang@intel.com>
* ART: Add simple tests for inlining of CASAndreas Gampe2014-07-091-0/+57
| | | | | | | | | Add simple test cases for the inlining of CAS in the quick compiler to run-test 082. The tests are not multi-threaded and will just establish that the baseline behavior is correct. For extensive evaluation consider tests available in libcore. Change-Id: I9f463599e48ab7abc725769dda84758c9c6a76c2
* x86_64: enable Peek and Poke intrinsicsAlexei Zavjalov2014-07-091-1/+139
| | | | | | | | | This implements intrinsics for: Memory.peekByte/Short/Int/Long() Memory.pokeByte/Short/Int/Long() Change-Id: I6da6250f262dfd7aded35c2e3ade2d0916bd73cb Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
* ART: Do not emit load when inlining unused Thread.currentThread()Andreas Gampe2014-07-081-0/+12
| | | | | | | When the result is not used, do not emit the load. This avoids uninitialized registers leading to size-check errors. Change-Id: I212392ffea7243720f120b2f12679df286106a02
* AArch64: Add few more inline functionsSerban Constantinescu2014-07-031-8/+172
| | | | | | | | | | | | This patch adds inlining support for the following functions: * Math.max/min(long, long) * Math.max/min(float, float) * Math.max/min(double, double) * Integer.reverse(int) * Long.reverse(long) Change-Id: Ia2b1619fd052358b3a0d23e5fcbfdb823d2029b9 Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
* String.IndexOf method handles negative start index value in incorrect wayAlexei Zavjalov2014-04-171-0/+2
| | | | | | | | | | | The standard implementation of String.IndexOf converts the negative value of the start index to 0 and searching will start from the beginning of the string. But current implementation may start searching from the incorrect memory offset, that can lead to sigsegv or return incorrect result. This patch adds the handler for cases when fromIndex is negative. Change-Id: I3ac86290712789559eaf5e46bef0006872395bfa Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
* ART's intrinsic for String.indexOf use the incorrect registerYevgeny Rouban2014-03-131-0/+3
| | | | | | | | | ART's intrinsic for String.indexOf of x86 platform use the incorrect register to compare start with the string length. It should be fixed. Change-Id: I22986b4d4b23f62b4bb97baab9fe43152d12145e Signed-off-by: Vladimir Ivanov <vladimir.a.ivanov@intel.com> Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
* Update intrinsic inlining test.Sebastien Hertz2013-03-061-0/+42
| | | | | | Adds invokes of StrictMath operations to reflect compiler inlining support. Change-Id: Ibb2205a41c1e79ddbeacc2e716a9d05b723eb532
* Test all cases of all intrinsics.Elliott Hughes2012-06-153-189/+259
| | | | | Bug: 6617283 Change-Id: I463ef1e2c09ad41af2e45f17f2f23e8d59f560e0
* Fix cpplint's whitespace complaints.Elliott Hughes2012-03-261-1/+1
| | | | Change-Id: I11fd2db2badf7bd98e7866ca2155d8ef1e112408
* Adding old unit tests to test suite.jeffhao2011-09-296-0/+593
These tests are copied straight over. They'll still run, but they're using the old system. Change-Id: If494519e52ddf858a9febfc55bdae830468cb3c8