History log of /art/runtime/arch/mips64/quick_entrypoints_mips64.S
Revision Date Author Comments
0b95bf17e077b9d6c52514fec5ed122017111edb 24-Jun-2015 Mathieu Chartier <mathieuc@google.com> Fix imt conflict trampoline for mips64

Changed lwu to ld

Bug: 21815962
Change-Id: I137e871d9c00f83cd5efc9d3a87fa05e84dc5d23
9ad40fda952e854c4b571df36e46c834e209cd4c 13-Jun-2015 Mathieu Chartier <mathieuc@google.com> Change mips64 lwu to ld for loading caller ArtMethod*

Bug: 21815962
Change-Id: Id589f4a49349d817d3dc9128109048292fe0ed33
618fdff93cec53c0ed234898f2d42f38a25e3b66 10-Jun-2015 Lazar Trsic <Lazar.Trsic@imgtec.com> [MIPS] Fix method tracing for mips64

Reg $v0 is being clobbered on using
SETUP_REFS_ONLY_CALLEE_SAVE_FRAME inside instrumentation_exit()
trampoline, when falling through from instrumentation_entry().

To fix, use $t1 for ArtMethod* fetching inside SETUP_ macros.

Also fix some unrelated comment errors.

Bug: 21555893

(cherry picked from commit 84bc06e30ba12c3ff07e577c52b63b9df162af7e)

Change-Id: I4ab169f75988c4f0d924416a30196f21c1a043a3
3d21bdf8894e780d349c481e5c9e29fe1556051c 22-Apr-2015 Mathieu Chartier <mathieuc@google.com> Move mirror::ArtMethod to native

Optimizing + quick tests are passing, devices boot.

TODO: Test and fix bugs in mips64.

Saves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS.
Some of the savings are from removal of virtual methods and direct
methods object arrays.

Bug: 19264997

(cherry picked from commit e401d146407d61eeb99f8d6176b2ac13c4df1e33)

Change-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d

Fix some ArtMethod related bugs

Added root visiting for runtime methods, not currently required
since the GcRoots in these methods are null.

Added missing GetInterfaceMethodIfProxy in GetMethodLine, fixes
--trace run-tests 005, 044.

Fixed optimizing compiler bug where we used a normal stack location
instead of double on ARM64, this fixes the debuggable tests.

TODO: Fix JDWP tests.

Bug: 19264997

Change-Id: I7c55f69c61d1b45351fd0dc7185ffe5efad82bd3

ART: Fix casts for 64-bit pointers on 32-bit compiler.

Bug: 19264997
Change-Id: Ief45cdd4bae5a43fc8bfdfa7cf744e2c57529457

Fix JDWP tests after ArtMethod change

Fixes Throwable::GetStackDepth for exception event detection after
internal stack trace representation change.

Adds missing ArtMethod::GetInterfaceMethodIfProxy call in case of
proxy method.

Bug: 19264997
Change-Id: I363e293796848c3ec491c963813f62d868da44d2

Fix accidental IMT and root marking regression

Was always using the conflict trampoline. Also included fix for
regression in GC time caused by extra roots. Most of the regression
was IMT.

Fixed bug in DumpGcPerformanceInfo where we would get SIGABRT due to
detached thread.

EvaluateAndApplyChanges:
From ~2500 -> ~1980
GC time: 8.2s -> 7.2s due to 1s less of MarkConcurrentRoots

Bug: 19264997
Change-Id: I4333e80a8268c2ed1284f87f25b9f113d4f2c7e0

Fix bogus image test assert

Previously we were comparing the size of the non moving space to
size of the image file.

Now we properly compare the size of the image space against the size
of the image file.

Bug: 19264997
Change-Id: I7359f1f73ae3df60c5147245935a24431c04808a

[MIPS64] Fix art_quick_invoke_stub argument offsets.

ArtMethod reference's size got bigger, so we need to move other args
and leave enough space for ArtMethod* and 'this' pointer.

This fixes mips64 boot.

Bug: 19264997
Change-Id: I47198d5f39a4caab30b3b77479d5eedaad5006ab
04568815cbfa18f0fa8b8d751fb83a1089909660 23-Apr-2015 Goran Jakovljevic <Goran.Jakovljevic@imgtec.com> Fix stub_test for Mips64

Force ENTRY macro to load GP. Instead .cpload (used for o32 abi,
not working for n64) use .cpsetup to set up GP and save previous
GP value.

Fix expectations in GetSet32Static.

Change-Id: Ie97e32fa2fee7a6e8bae6bc36e78976b8be62b79
8223b809a527c15b68f7c5c462d4c55c1335c7a7 29-Apr-2015 Douglas Leung <douglas.leung@imgtec.com> Fix mips64 bugs.

There are 2 bugs here. First is Method* is computed twice. The
second is the wrong runtime callee save frame offset is being
used in computing Method*.

Change-Id: Ica23585a08be480a54d0cdd17eeca8027061b3f3
e85e123a2dff7d4b20266183a0583f9364a8b824 28-Apr-2015 Vladimir Marko <vmarko@google.com> ART: Add FOUR_ARG_DOWNCALL macro for MIPS64 entry points.

Missing from
https://android-review.googlesource.com/79174

Change-Id: If182b73824edfd4639f645612b2f7b67c1f31bef
5ea536aa4a6414db01beaf6f8bd8cb9adc5cfc92 20-Apr-2015 Vladimir Marko <vmarko@google.com> Remove ArtMethod* parameter from dex cache entry points.

Load the ArtMethod* using an optimized stack walk instead.
This reduces the size of the generated code.

Three of the entry points are called only from a slow-path
and the fourth (InitializeTypeAndVerifyAccess) is rare and
already slow enough that the one or two extra loads
(depending on whether we already have the ArtMethod* in a
register) are insignificant. And as we're starting to use
PC-relative addressing of the dex cache arrays (already
done by Quick for the boot image), having the ArtMethod* in
a register becomes less likely anyway.

Change-Id: Ib19b9d204e355e13bf386662a8b158178bf8ad28
2cebb24bfc3247d3e9be138a3350106737455918 22-Apr-2015 Mathieu Chartier <mathieuc@google.com> Replace NULL with nullptr

Also fixed some lines that were too long, and a few other minor
details.

Change-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb
bb87e0f1a52de656bc77cb01cb887e51a0e5198b 03-Apr-2015 Mathieu Chartier <mathieuc@google.com> Refactor and improve GC root handling

Changed GcRoot to use compressed references. Changed root visiting to
use virtual functions instead of function pointers. Changed root visting
interface to be an array of roots instead of a single root at a time.
Added buffered root marking helper to avoid dispatch overhead.

Root marking seems a bit faster on EvaluateAndApplyChanges due to batch
marking. Pause times unaffected.

Mips64 is untested but might work, maybe.

Before:
MarkConcurrentRoots: Sum: 67.678ms 99% C.I. 2us-664.999us Avg: 161.138us Max: 671us

After:
MarkConcurrentRoots: Sum: 54.806ms 99% C.I. 2us-499.986us Avg: 136.333us Max: 602us

Bug: 19264997

Change-Id: I0a71ebb5928f205b9b3f7945b25db6489d5657ca
f96e8bdf47cfcbecd8ad8ebceb765e5a257ca143 27-Mar-2015 Douglas Leung <douglas.leung@imgtec.com> Fix 099-vmdebug and 802-deoptimization art tests for Mips.

There are 2 bugs that are causing these 2 tests to fail the same way.
The first one is we should be using $t9 for function calls so $gp can
be calculated correctly. The second bug is there can't be a gap between
the quick frame and the callee save frame, otherwise the WalkStack()
function will get confused and crash.

Bug: 19003184
Change-Id: I3c545ce18268deb73150fca2a7d7a798540f1cf2
6ea651f0f4c7de4580beb2e887d86802c1ae0738 24-Feb-2015 Maja Gagic <maja.gagic@imgtec.com> Initial support for quick compiler on MIPS64r6.

Change-Id: I6f43027b84e4a98ea320cddb972d9cf39bf7c4f8
126d65952a03b3e44d5021208673c01920a982a4 03-Mar-2015 Nicolas Geoffray <ngeoffray@google.com> Fix generic JNI stubs to not discard the Java native frame.

Change-Id: Ic856b442fdde5ce91673fc5856eb0dfc84c75d28
6461d19fe1132ec25b92d008c1a7b57f5ecc134b 31-Jan-2015 Douglas Leung <douglas.leung@imgtec.com> Add Mips64 art_quick_proxy_invoke_handler assembly.

This fixes a crash during boot.

Change-Id: Ia69f3a38757355d1c33095ab59ce659a9b4ef737
cc7c39d747f5802282adcc51ffe44405f116f84b 31-Jan-2015 Andreas Gampe <agampe@google.com> ART: Add Mips64 resolution trampoline assembly

Add the resolution trampoline assembly.

Change-Id: I45306f5913c6f57f46b97cb87fa321ae16642292
1a5c40672783fac98aca5a04ac798a0a0014de65 15-Jan-2015 Andreas Gampe <agampe@google.com> ART: Mips64 runtime support

Interpret-only Mips64 runtime support.

Change-Id: Iee22d0c8c77105d9b2f03a67dc4e09957fe0ab0a