524e7ea8cd17bad17bd9f3e0ccbb19ad0d4d9c02 |
|
16-Oct-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Remove ArtCode. - Instead use OatQuickMethodHeader. - Various cleanups now that we don't have all those ArtMethod -> ArtCode -> OatQuickMethodHeader indirections. As a consequence of this cleanup, exception handling got a bit faster. ParserCombinators benchmark (exception intensive) on x64: (lower is better) Before: ParserCombinators(RunTime): 1062500.0 us. After: ParserCombinators(RunTime): 833000.0 us. Change-Id: Idac917b6f1b0dc254ad68fb3781cd61bccadb0f3
|
639bdd13993644a267f177f8f5936496bda65e2b |
|
03-Jun-2015 |
Andreas Gampe <agampe@google.com> |
ART: Single-frame deopt Add deoptimization of a single frame. Works by removing the managed code frame and jumping into the quick-to-interpreter bridge, and the bridge understanding a stored ShadowFrame. We need a separate fixup pass. For x86, we leave the return address on the stack so we don't need to push it there. Bug: 21611912 Change-Id: I06625685ced8b054244f8685ab50b238a705b9d2
|
90443477f9a0061581c420775ce3b7eeae7468bc |
|
17-Jul-2015 |
Mathieu Chartier <mathieuc@google.com> |
Move to newer clang annotations Also enable -Wthread-safety-negative. Changes: Switch to capabilities and negative capabilities. Future work: Use capabilities to implement uninterruptible annotations to work with AssertNoThreadSuspension. Bug: 20072211 Change-Id: I42fcbe0300d98a831c89d1eff3ecd5a7e99ebf33
|
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
|
794ad76e8d5b5b9132819d5b08a0570e27615644 |
|
23-Feb-2015 |
Andreas Gampe <agampe@google.com> |
ART: Introduce NO_RETURN, Mark DoLongJump noreturn Add NO_RETURN macro that adds C++11 noreturn attribute. Mark DoLongJump methods as noreturn. Change-Id: Ifde4318e370493237050d4c1349285a0382df23f
|
966c3ae95d3c699ee9fbdbccc1acdaaf02325faf |
|
27-Jan-2015 |
Mark P Mendell <mark.p.mendell@intel.com> |
Revert "Revert "ART: Implement X86 hard float (Quick/JNI/Baseline)"" This reverts commit 949c91fb91f40a4a80b2b492913cf8541008975e. This time, don't clobber EBX before saving it. Redo some of the macros to make register usage explicit. Change-Id: I8db8662877cd006816e16a28f42444ab7c36bfef
|
949c91fb91f40a4a80b2b492913cf8541008975e |
|
27-Jan-2015 |
Vladimir Marko <vmarko@google.com> |
Revert "ART: Implement X86 hard float (Quick/JNI/Baseline)" And the 3 Mac build fixes. Fix conflicts in context_x86.* . This reverts commits 3d2c8e74c27efee58e24ec31441124f3f21384b9 , 34eda1dd66b92a361797c63d57fa19e83c08a1b4 , f601d1954348b71186fa160a0ae6a1f4f1c5aee6 , bc503348a1da573488503cc2819c9e30807bea31 . Bug: 19150481 Change-Id: I6650ee30a7d261159380fe2119e14379e4dc9970
|
96ba8dc82e7bd859106af837623fe8b2e9e772c3 |
|
22-Jan-2015 |
Sebastien Hertz <shertz@google.com> |
Refactor register access from StackVisitor Moves register access checking up to StackVisitor by adding methods IsAccessibleGPR and IsAccessibleFPR in Context class. It allows to simplify GetGPR/FPR and SetGPR/FPR methods in the Context class (and its subclasses). Also simplifies code in StackVisitor by adding IsAccessibleRegister, GetRegister and SetRegister methods which then call either GPR or FPR specific methods in Context depending on the nature of the accessed register. Bug: 18547544 Bug: 19106446 Change-Id: I6e707608d935a71571d0e975a6e766053de3763a
|
bc503348a1da573488503cc2819c9e30807bea31 |
|
26-Jan-2015 |
Vladimir Marko <vmarko@google.com> |
Fix Mac build. Change-Id: I88c0b3c7b799df8dd0aab86b6801c37093045129
|
3d2c8e74c27efee58e24ec31441124f3f21384b9 |
|
13-Jan-2015 |
Mark Mendell <mark.p.mendell@intel.com> |
ART: Implement X86 hard float (Quick/JNI/Baseline) Use XMM0-XMM3 as parameter registers for float/double on X86. X86_64 already uses XMM0-XMM7 for parameters. Change the 'hidden' argument register from XMM0 to XMM7 to avoid a conflict. Add support for FPR save/restore in runtime/arch/x86. Minimal support for Optimizing baseline compiler. Bump the version in runtime/oat.h because this is an ABI change. Change-Id: Ia6fe150e8488b9e582b0178c0dda65fc81d5a8ba Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
|
6a3c1fcb4ba42ad4d5d142c17a3712a6ddd3866f |
|
31-Oct-2014 |
Ian Rogers <irogers@google.com> |
Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags. Fix associated errors about unused paramenters and implict sign conversions. For sign conversion this was largely in the area of enums, so add ostream operators for the effected enums and fix tools/generate-operator-out.py. Tidy arena allocation code and arena allocated data types, rather than fixing new and delete operators. Remove dead code. Change-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b
|
aa9b3aee1e06f922e4518713f9b3dff00a0b2597 |
|
13-Jun-2014 |
Sebastien Hertz <shertz@google.com> |
Fix access to FP registers when visiting stack Adds GetFPR and SetFPR to Context class so we can read from and write to floating-point registers during stack visit. They return a boolean flag indicating whether the read/write is successful. This allows the debugger to return the JDWP error ABSENT_INFORMATION when we can't read/write a register. We also update GetGPR and SetGPR for consistency. We keep a default GetGPR implementation asserting the read was successful using a CHECK so we don't silently fail. Adds missing JDWP object tags for StackFrame.SetValues to avoid crash when setting corresponding objects (thread, thread group, class object or class loader). Also returns JDWP error INVALID_OBJECT (when the given object id is invalid) instead of crashing with an unimplemented message. Bug: 15433097 Change-Id: I70843c9280e694aec1eae5cf6f2dc155cb9ea10e
|
0bcb2902ec21393d71c94e63aa6733cb5311a0cc |
|
17-Jun-2014 |
Sebastien Hertz <shertz@google.com> |
Revert "Revert "Fix access to FP registers when visiting stack"" This reverts commit 8ebd94ab2e0d9867a7d384f00fa4cab24235216f. Fixes StackVisitor::GetVReg to read register value in a uintptr_t local and cast it into uint32_t pointer argument. Bug: 15433097 Change-Id: I4e13ed5446e823e9ec50fbc378b16be5b17b2294
|
8ebd94ab2e0d9867a7d384f00fa4cab24235216f |
|
17-Jun-2014 |
Sebastien Hertz <shertz@google.com> |
Revert "Fix access to FP registers when visiting stack" This reverts commit aa9b3aee1e06f922e4518713f9b3dff00a0b2597. Change-Id: Ied27deb89cca5ec9094d391374e03f83fcb76c33
|
17a7fc7f66d3e5e1ed6654134cfcec3babf2474a |
|
19-Feb-2014 |
Mathieu Chartier <mathieuc@google.com> |
Fix build. Change-Id: I088c4ff64453d98caf2964128e6d1b4f77f6f32e
|
815873ecc312b1d231acce71e1a16f42cdaf09f2 |
|
14-Feb-2014 |
Mathieu Chartier <mathieuc@google.com> |
Change root visitor to use Object**. Simplifies code and improves the performance of root visiting since we usually don't need to check to see if the object moved. Change-Id: Iba998f5a15ae1fa1b53ca5226dd2168a411196cf
|
ef7d42fca18c16fbaf103822ad16f23246e2905d |
|
06-Jan-2014 |
Ian Rogers <irogers@google.com> |
Object model changes to support 64bit. Modify mirror objects so that references between them use an ObjectReference value type rather than an Object* so that functionality to compress larger references can be captured in the ObjectRefererence implementation. ObjectReferences are 32bit and all other aspects of object layout remain as they are currently. Expand fields in objects holding pointers so they can hold 64bit pointers. Its expected the size of these will come down by improving where we hold compiler meta-data. Stub out x86_64 architecture specific runtime implementation. Modify OutputStream so that reads and writes are of unsigned quantities. Make the use of portable or quick code more explicit. Templatize AtomicInteger to support more than just int32_t as a type. Add missing, and fix issues relating to, missing annotalysis information on the mutator lock. Refactor and share implementations for array copy between System and uses elsewhere in the runtime. Fix numerous 64bit build issues. Change-Id: I1a5694c251a42c9eff71084dfdd4b51fff716822
|
834b394ee759ed31c5371d8093d7cd8cd90014a8 |
|
31-Jul-2013 |
Brian Carlstrom <bdc@google.com> |
Merge remote-tracking branch 'goog/dalvik-dev' into merge-art-to-dalvik-dev Change-Id: I323e9e8c29c3e39d50d9aba93121b26266c52a46
|
166db04e259ca51838c311891598664deeed85ad |
|
26-Jul-2013 |
Ian Rogers <irogers@google.com> |
Move assembler out of runtime into compiler/utils. Other directory layout bits of clean up. There is still work to separate quick and portable in some files (e.g. argument visitor, proxy..). Change-Id: If8fecffda8ba5c4c47a035f0c622c538c6b58351
|