summaryrefslogtreecommitdiff
path: root/runtime/nterp_helpers.cc
Commit message (Collapse)AuthorAgeFilesLines
* Add a nterp trampoline in the oat file, replaced at runtime.Nicolas Geoffray2021-01-271-14/+49
| | | | | | | | | | | To avoid checking whether an ArtMethod can run nterp when loading an image, record that information directly in the image, and patch the entrypoint so nterp can do direct pointer checks when calling an ArtMethod. Test: test.py Bug: 177444058 Change-Id: Ia87367c37848e1efe33336b3677490c07d7e1767
* Increment hotness in nterp when doing lookups.Nicolas Geoffray2020-06-261-1/+1
| | | | | | | | Test: test.py Test: google/perf/app-transition/app-transition-to-recents Bug: 112676029 Bug: 157402634 Change-Id: Ibe08720b442c5050062db1104be2d3a62641e629
* Split nterp frame alignment.Vladimir Marko2020-04-291-2/+9
| | | | | | | | Make sure the dex PC pointer and caller FP are stored at a pointer-aligned address. Test: testrunner.py --host --interpreter Change-Id: I7fe1be01b46558d871db24ce6cc08e35b68ec3fa
* nterp: Re-order where stack alignment happens in an nterp frame.Nicolas Geoffray2020-01-131-14/+18
| | | | | | Bug: 112676029 Test: test.py Change-Id: Ie84902723ef25802994f844b70173e21f3ac5def
* Fix StackVisitor::GetVReg for Nterp.Nicolas Geoffray2019-12-181-0/+4
| | | | | | | | | If the required type is reference, we should look at the reference array. Test: 686-get-this Bug: 112676029 Change-Id: Iee786723f67c576878d2f5d56f96694b75699cd1
* Add an implementation of Nterp for x64.Nicolas Geoffray2019-12-181-1/+1
| | | | | | | | | And enable it on x64 when runtime and ArtMethod requirements are met (see nterp.cc). Test: test.py Bug: 112676029 Change-Id: I772cd20a20fdc0ff99529df7495801d773091584
* Introduce the notion of an nterp frame.Nicolas Geoffray2019-12-171-0/+152
See comments in nterp_helpers.cc. An nterp frame follows the calling conventions and exception handling of the compiler. There are no ManagedStack transitions, and the compiler and interpreter can just call each other directly. For the stack walker, an nterp frame looks like a compiled frame. This CL introduces an nterp frame, another CL will contain an implementation for x64. Bug: 119800099 Test: test.py Change-Id: Ie9b691f58908b7f283b4cd63b84b651526155d27