History log of /art/runtime/interpreter/mterp/arm64/entry.S
Revision Date Author Comments
64ef58b8fb912c3522162ba7d8d30e31f6a88716 08-Feb-2018 David Srbecky <dsrbecky@google.com> Use different method to mark DEX PC in the interpreter's CFI.

gdb handles unknown register numbers very ungracefully, so
we have to find a different way to insert the information.

Test: testrunner.py -j40 --host --cdex-fast -t 137
Change-Id: Ie4f8abb45e1b4ade32a510ac09413c6ee72edf2c
cd5b86d9e08e04a04e289df881fd2a94c7c8dad1 20-Oct-2017 buzbee <buzbee@google.com> Frame tracking cfi for mterp

Add cfi information to allow libunwind to find Java context
in native tracebacks.

Test: m test-art-host
Test: testrunner.py --host --interpreter

Change-Id: Ib51b7a692bcc20a0662ae2ff3b8946f409574d57
fc9555dac51a3cf12bb13f4e3781d2f2f6c9f91f 06-Nov-2017 Mathieu Chartier <mathieuc@google.com> Remove mterp reliance on code item layout

Pass dex instruction pointer intead of code item pointer to the mterp
entry code. This removes a dependency on the code item layout since it
may change in the future for compact dex.

Bug: 63756964
Test: test/testrunner/testrunner.py --host -j40

Change-Id: Icfffb2e17372439f0833ecce1c0ddb05e7e7e69c
0de2d595af38bfa8362deb3efbe8b2ac3cb2a146 06-Oct-2017 buzbee <buzbee@google.com> Fix overlapping cfi ranges in mterp

Some residual .type and .size directives in mterp cause the
unwinder to see code covered by overlapping functions. This
CL removes them, treating the mterp's assembly stubs as all
part of the same function.

Test: m test-art-host
Test: testrunner.py --host --interpreter
Bug: 66749877

Change-Id: Id4cebf140c3d4baa2298f1c56b66bad6686161ce
a710d91a57c5c7de0f448c2dbfaa24cac53b52f9 12-Sep-2017 Vladimir Marko <vmarko@google.com> ART: Pass current Thread* to Jit::ShouldUsePriorityThreadWeight().

And avoid some instructions from REFRESH_IBASE on x86-64.

Test: testrunner.py --host --interpreter --jit
Test: testrunner.py --target --interpreter --jit on Nexus 6P
Change-Id: Id42545d0d8fb8db0659b6c937ed7e8106d1dcfdb
112aa1088cf283d57c533be17d79c4b638665651 01-Dec-2016 Vladimir Marko <vmarko@google.com> Mterp/arm64: Add CFI directives.

Also add two bug 31975598 workarounds to arm64 entrypoints.

Test: m ART_TEST_INTERPRETER=true test-art-target
Bug: 31456348
Bug: 31975598
Change-Id: Ibf64160cf3b3f1ef644ff8f051ab7dc89643acf3
1d011d9306fd4ff57d72411775d415a86f5ed398 04-Apr-2016 Bill Buzbee <buzbee@google.com> Revert "Revert "Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp""""

Bug: 28081559

This reverts commit 961ea9fe42edcc2c57469bf451d1ca421da5cd59.

Change-Id: I98a5bb8112646706ae7bd73bf6393cb956466be3
961ea9fe42edcc2c57469bf451d1ca421da5cd59 01-Apr-2016 Hiroshi Yamauchi <yamauchi@google.com> Revert "Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp"""

This reverts commit 4a8ac9cee4312ac910fabf31c64d28d4c8362836.

570-checker-osr intermittently failing.

Bug: 27939339
d6190dcdfb1f247ff0bf8268dacf413c93b58cf5 31-Mar-2016 Calin Juravle <calin@google.com> Revert "Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp"""

This reverts commit 4a8ac9cee4312ac910fabf31c64d28d4c8362836.

Bug: 27939339
4a8ac9cee4312ac910fabf31c64d28d4c8362836 25-Mar-2016 Bill Buzbee <buzbee@google.com> Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp""

Ready for review.

This reverts commit 6aef867f4d1a98a12bcdd65e9bf2ff894f0f2d7e.

Change-Id: I5d53ed2bedc7e429ce7d3cdf80b6696a9628740e
6aef867f4d1a98a12bcdd65e9bf2ff894f0f2d7e 25-Mar-2016 Calin Juravle <calin@google.com> Revert "ART: Improve JitProfile perf in arm/arm64 mterp"

This reverts commit c1d6b341eed646e5adafc6c4fd4e3748f0292368.
c1d6b341eed646e5adafc6c4fd4e3748f0292368 02-Mar-2016 buzbee <buzbee@google.com> ART: Improve JitProfile perf in arm/arm64 mterp

ART currently requires two profiling-related things from the
interpreters: hotness updates and OSR switch checks. The hotness
updates previously used the existing instrumentation framework - which
is flexible, but quite heavyweight. For most things, the
instrumentation framework overhead is acceptable, but because we do a
hotness update on every backwards branch the overhead is unacceptable.
Prior to this CL, branch profiling dominates interpreter cost.

Here, we bypass the instrumentation framework for hotness updates
and deliver a significant performance improvement. Running
interpreter-only (dalvikvm -Xint) on a Nexus 6, we see the logic
subtest of Caffeinemark improving from 2600 to 9200, and the
overall score going from 1979 to over 3000. Compared to the
C++ switch interpreter, we see a 6x improvement on the branchy logic
subtest and a 2.6x improvement overall.

Compared with the previous mterp which did not have support for
jit profiling, we see a few (1% to 5%) performance loss on the
standard command-line benchmarks. I consider this acceptable
(we could create an alternate non-profiling mterp which would
have no penalty, but I don't consider this overhead big enough to
justify that).

Change-Id: I50b5b8c5ed8ebda3c8b4e65d27ba7393c3feae04
ace690f5e440930d7bbad97fdbfdc3eb65e230be 11-Mar-2016 buzbee <buzbee@google.com> ART: mterp arm/arm64 cleanup

Assembly code cleanup in response to comments from already-submitted
CL: https://android-review.googlesource.com/#/c/188977/

Change-Id: I0ea85c5759a08cb50ef3e97dc5cf79b3ba041640
3b0b4b9d09baae7234fc26b7970b3ec55560735e 02-Feb-2016 Bill Buzbee <buzbee@google.com> Revert "Revert "ART: Mterp for arm64""

Looks like some of our assemblers disagree on valid arm64 assembly syntax
Force use of clang for art runtime. In a subsequent CL, will use form
that both gcc and clang accept.

This reverts commit 43f3fb960bce978df699c8a68a972be2a0d0d221.

Change-Id: Ice83072171ab502c43d492e2238b446c4814ea67
43f3fb960bce978df699c8a68a972be2a0d0d221 02-Feb-2016 Sebastien Hertz <shertz@google.com> Revert "ART: Mterp for arm64"

This reverts commit e0c269e0a5f50b1a551ddba1205f6e5b4b5e6c98.

The CL is causing build breakages on arm64 targets.

Change-Id: I7402fe34869258ae870c57308b2062e50d801bdd
e0c269e0a5f50b1a551ddba1205f6e5b4b5e6c98 27-Jan-2016 buzbee <buzbee@google.com> ART: Mterp for arm64

Ready for review. All opcodes handled. All applicable run-tests pass.
Device boots to desktop in interpret-only mode.

Change-Id: I937d8bcf848a831e04d4b9de8d1914667a197d75