fc6898769ae1ef91ec3e41c0a273401213cb82cd |
|
26-Apr-2016 |
Andreas Gampe <agampe@google.com> |
ART: Log all monitor operations to systrace Add a VLOG option ("-verbose:systrace-locks") to log all monitor operations to systrace. This requires non-fastpath thread entrypoints, and ATRACE tags for locking and unlocking. Do a bit of cleanup to the entrypoint initialization to share common setup. Bug: 28423466 Change-Id: Ie67e4aa946ec15f8fcf8cb7134c5d3cff0119ab3
|
59028d90d51a800bcea8be354d77d7be924da3a0 |
|
29-Mar-2016 |
Goran Jakovljevic <Goran.Jakovljevic@imgtec.com> |
MIPS: Improving art_quick_imt_conflict_trampoline This is fixing stub_test for MIPS32 and MIPS64. This is follow up change for Ie74d1c77cf73d451a1142bdc5e3683f9f84bb4e7. Change-Id: I3c53ef690aff49d7cf9ad3de3aaed9a3d2e1c6b9
|
3bc13817a19e36f3833bb44624ef86800892eaad |
|
22-Mar-2016 |
Goran Jakovljevic <Goran.Jakovljevic@imgtec.com> |
Implement on-stack replacement for MIPS32 and MIPS64 Change-Id: I4e589f0597b597adff95e1289f20deb2eab97e9b
|
10d4c08c0ea9df0a85a11e1c77974df24078c0ec |
|
24-Feb-2016 |
Hiroshi Yamauchi <yamauchi@google.com> |
Assembly region TLAB allocation fast path for arm. This is for the CC collector. Share the common fast path code with the tlab fast path code. Speedup (on N5): BinaryTrees: 2291 -> 902 ms (-60%) MemAllocTest: 2137 -> 1845 ms (-14%) Bug: 9986565 Bug: 12687968 Change-Id: Ica63094ec2f85eaa4fd04d202a20090399275d85
|
cf283daf579e9eda586f312c3fc89444601e2525 |
|
20-Jan-2016 |
Chris Larsen <chris.larsen@imgtec.com> |
MIPS32: java.lang.Thread, and java.lang.String intrinsics: - Thread java.lang.Thread.currentThread() - int java.lang.String.compareTo(String anotherString) - int java.lang.String.indexOf(int ch) - int java.lang.String.indexOf(int ch, int fromIndex) - java.lang.StringFactory.newStringFromBytes(byte[] data, int high, int offset, int byteCount) - java.lang.StringFactory.newStringFromChars(int offset, int charCount, char[] data) - java.lang.StringFactory.newStringFromString(String toCopy) Change-Id: I96a06ff81e1e3bf18d45760282356854efaf4945
|
982a9a818915a0a03a1b6ac6f05e01934d9d27e8 |
|
21-Dec-2015 |
Goran Jakovljevic <Goran.Jakovljevic@imgtec.com> |
Rosalloc fast path in assembly for MIPS64 Change-Id: I93c49a8b45365aacfd7825bdd841f39d7059a967
|
a7a4759946d9f11c88dc108b2b6a9518ce9c1e18 |
|
24-Nov-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Revert "lambda: Add support for invoke-interface for boxed innate lambdas" 955-lambda is flaky Bug: 24618608 Bug: 25107649 This reverts commit 457e874459ae638145cab6d572e34d48480e39d2. (cherry picked from commit 3a0909248e04b22c3981cbf617bc2502ed5b6380) Change-Id: I24884344d21d7a4262e53e3f5dba57032687ddb7
|
3a0909248e04b22c3981cbf617bc2502ed5b6380 |
|
24-Nov-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Revert "lambda: Add support for invoke-interface for boxed innate lambdas" 955-lambda is flaky Bug: 24618608 Bug: 25107649 This reverts commit 457e874459ae638145cab6d572e34d48480e39d2. Change-Id: I24884344d21d7a4262e53e3f5dba57032687ddb7
|
457e874459ae638145cab6d572e34d48480e39d2 |
|
23-Oct-2015 |
Igor Murashkin <iam@google.com> |
lambda: Add support for invoke-interface for boxed innate lambdas Lambda closures created with the 'create-lambda' instruction (termed "innate lambdas") can be turned into an object with 'box-lambda'. This CL enables support for those kinds of lambdas to work with 'invoke-interface' by generating a proxy class for the lambda. Note: MIPS32/64 support not included. Bug: 24618608 Bug: 25107649 Change-Id: Ic8f1bb66ebeaed4097e758a50becf1cff6ccaefb
|
9701c2ee2dde033e2269dcfc592a09f21151e97e |
|
05-Sep-2015 |
Chris Larsen <chris.larsen@imgtec.com> |
MIPS64: Implement intrinsics from java.lang.String: - char charAt(int index) - int compareTo(String anotherString) - int indexOf(int ch) - int indexOf(int ch, int fromIndex) - String(byte[] bytes) - String(char[] value) - String(String original) Change-Id: I9c309b62580b42ae08a09cb1c2b4ebd1a203c5d2
|
e460d1df1f789c7c8bb97024a8efbd713ac175e9 |
|
29-Sep-2015 |
Calin Juravle <calin@google.com> |
Revert "Revert "Support unresolved fields in optimizing" The CL also changes the calling convetion for 64bit static field set to use kArg2 instead of kArg1. This allows optimizing to keep the asumptions: - arm pairs are always of form (even_reg, odd_reg) - ecx_edx is not used as a register on x86. This reverts commit e6f49b47b6a4dc9c7684e4483757872cfc7ff1a1. Change-Id: I93159917565824084abc96775f31be1a4249f2f3
|
dbf056d38dddda10c5f409e3155c7b4211183f63 |
|
25-Sep-2015 |
Andreas Gampe <agampe@google.com> |
ART: Move code from RA to T9 in Mips64 longjump Do not use the return address. It should not be clobbered as we may need it, e.g., for single-frame deopt. Change-Id: I401d7b0034bc4e210bda231ec78ee31242053b36
|
0747466fca310eedea5fc49e37d54f240a0b3c0f |
|
25-Aug-2015 |
Sebastien Hertz <shertz@google.com> |
Revert "Revert "Fix deoptimization with pending exception"" This reverts commit 6e2d5747d00697a25251d25dd33b953e54709507. Fixes the deoptimization path from compiled code (generated by the Optimizing compiler) by adding wrapper artDeoptimizeFromCompiledCode. This wrapper, called through the matching assembler stub art_quick_deoptimize_from_compiled_code, pushes the deoptimization context just before deoptimizing the stack. Bug: 23371176 Bug: 19944235 Change-Id: Ia7082656998aebdd0157438f7e6504c120e10d3e
|
6306921722283d2b0f8aac01883ad83215d6e864 |
|
22-Aug-2015 |
Man Cao <manc@google.com> |
Add a missing reader barrier in entrypoint stub Also refactored some comments. Change-Id: I5c50f487bf9d71f1be5f6c8814bf039993fc1267
|
1aee900d5a0b3a8d78725a7551356bda0d8554e1 |
|
15-Jul-2015 |
Man Cao <manc@google.com> |
Add read barrier support to the entrypoints. Also remove "THIS_LOAD_REQUIRES_READ_BARRIER" since reading an ArtMethod* no longer needs read barrier. stub_test should also work with read barriers now. Change-Id: I3fba18042de2f867a18dbdc38519986212bd9769
|
3031c8da0c5009183f770b005c245f9bf2a4d01b |
|
14-Jul-2015 |
Andreas Gampe <agampe@google.com> |
ART: Remove art_quick_invoke_interface_trampoline The function has only been used by the IMT conflict resolution trampoline for a while. Merge the two, which saves a branch. Change-Id: I2f8c9204adf839ddc5459cc04e70d98f858110a1
|
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
|
84bc06e30ba12c3ff07e577c52b63b9df162af7e |
|
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. Change-Id: I4ab169f75988c4f0d924416a30196f21c1a043a3
|
bfa5eb6e8d15ea73a36f8df449630f285a91e995 |
|
30-May-2015 |
Hiroshi Yamauchi <yamauchi@google.com> |
Add heap poisoning support to the entrypoints. In preparation for full compiler/managed-code support. Enable stub_test with heap poisoning. Bug: 12687968 Change-Id: I79fc54ce6386c0a1eb9621759bb4cc23bc393a75
|
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
|
80f7a57e2aec7515c7a54c4b5c9e703a66623fea |
|
02-Jun-2015 |
Nikola Veljkovic <Nikola.Veljkovic@imgtec.com> |
[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
|
e401d146407d61eeb99f8d6176b2ac13c4df1e33 |
|
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 Change-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d
|
8ea18d0f066f63fa4e5d154f14327468bf288e2b |
|
26-May-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Pass the dex method index directly to interface trampoline. This avoids computing the dex pc and re-finding the method index again. I have kept the code for kDebugBuild. Change-Id: Icd60e0deade755e32b54021c0875b1af592b8c3e
|
7ea6a170486d81b127e69673cd1020c4db628c93 |
|
19-May-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Don't hardcode the location of the caller. This is to avoid shooting ourselves in the foot when dealing with inlined frames. Instead, use common methods for fetching the caller and its dex pc. Change-Id: I3467a7b50cf163022d332e80356f0aab747de252
|
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
|