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
|
4360be281a5f938e1762a1e3ec3b8a949ba05ff3 |
|
15-Jul-2015 |
Andreas Gampe <agampe@google.com> |
ART: Remove some of the Mac craziness We rely on new-enough Clang/LLVM builds nowadays. The integrated assembler supports named parameters. Throw away most of the old duplication (effectively cutting support for older Clang versions). The only required duplications are: 1) Clang as does not support .altmacro. However, the Clang preprocessor works different wrt/ the GCC preprocessor and does not give us trouble with inserted spaces. 2) On the Mac, symbols are prefixed with an underscore. This should help to avoid breaking the Mac build when changing the assembly code, and prepare for a complete Clang-only build for x86 and x86-64. Switching to the integrated assembler for the host build may be done in a follow-up CL. Bug: 17443165 Change-Id: I1a077d4b612abc2b1b851c1bdabb5008a52e5aa6
|
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
|
677cd61ad05d993c4d3b22656675874f06d6aabc |
|
15-Oct-2014 |
Ian Rogers <irogers@google.com> |
Make ART compile with GCC -O0 again. Tidy up InstructionSetFeatures so that it has a type hierarchy dependent on architecture. Add to instruction_set_test to warn when InstructionSetFeatures don't agree with ones from system properties, AT_HWCAP and /proc/cpuinfo. Clean-up class linker entry point logic to not return entry points but to test whether the passed code is the particular entrypoint. This works around image trampolines that replicate entrypoints. Bug: 17993736 (cherry picked from commit 6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3) Change-Id: I3e7595f437db4828072589d475a5453b7f31003e
|
6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3 |
|
15-Oct-2014 |
Ian Rogers <irogers@google.com> |
Make ART compile with GCC -O0 again. Tidy up InstructionSetFeatures so that it has a type hierarchy dependent on architecture. Add to instruction_set_test to warn when InstructionSetFeatures don't agree with ones from system properties, AT_HWCAP and /proc/cpuinfo. Clean-up class linker entry point logic to not return entry points but to test whether the passed code is the particular entrypoint. This works around image trampolines that replicate entrypoints. Bug: 17993736 Change-Id: I5f4b49e88c3b02a79f9bee04f83395146ed7be23
|
29b3841ad8c1c18ee7ddd2d8cab85806b3d62eaa |
|
13-Aug-2014 |
Andreas Gampe <agampe@google.com> |
ART: Set default visibility to protected Set default visibility of symbols to protected. This allows the linker to optimize internal calls and helps avoid plt calls. Make almost all assembly stubs hidden, as -fvisibility does not seem to apply to them. Change the assembly tests accordingly. Also allows to clean up previous hacks to avoid plt calls. Bug: 16974467 (cherry picked from commit 235e77bd9f19e4faefda109be40f8744f3a66f40) Change-Id: I9030dcf6116251f434f94a2b08e56e12085af652
|
235e77bd9f19e4faefda109be40f8744f3a66f40 |
|
13-Aug-2014 |
Andreas Gampe <agampe@google.com> |
ART: Set default visibility to protected Set default visibility of symbols to protected. This allows the linker to optimize internal calls and helps avoid plt calls. Make almost all assembly stubs hidden, as -fvisibility does not seem to apply to them. Change the assembly tests accordingly. Also allows to clean up previous hacks to avoid plt calls. Bug: 16974467 Change-Id: I9030dcf6116251f434f94a2b08e56e12085af652
|
85fa796277d23e6bf1679cbd0da0019b03d8066b |
|
10-Aug-2014 |
Dan Albert <danalbert@google.com> |
Fix more of the Mac build. Change-Id: I0fa52ef73e86318bb68de2c69bbed81a00bfc3e0
|
39b1ef077f61c27ef5aa0db18bb479d6b8fb0e59 |
|
25-Jun-2014 |
Brian Carlstrom <bdc@google.com> |
Fix linux build. Change-Id: Ic480b454fe7ecd435d1b2292971f2a59bd26d2bd
|
c3ccc1039e0bbc0744f958cb8719cf96bce5b853 |
|
25-Jun-2014 |
Ian Rogers <irogers@google.com> |
Fix the Mac build on x86-64. Change-Id: I4ed3783a96d844de0b0a295df26d0a48c02a3726
|
f4e910badbaa5aa48efbf697715f4815f0ebc7e4 |
|
30-Apr-2014 |
Andreas Gampe <agampe@google.com> |
Implement art_quick_aput_object stubs for X86-64 and ARM64 Implement the aput_object stubs for 64b architectures and enable their testing in stub_test. Fix missing @PLT for x86. Add automatic _local labels in function definitions in x86-64 so we can make local jumps (instead of PLT hoops). Change-Id: I614b88fd5966acd8a564b87c47d4c50ee605320c
|
5c1e4352614d61fed6868567e58b96682828cb4d |
|
22-Apr-2014 |
Andreas Gampe <agampe@google.com> |
Add "arch_test" gtest for assembly stub constants, add some ARM64 assembly code Add a test that (1) checks all callee-save method frame sizes for all architectures, (2) checks thread offsets for the runtime architecture and (3) checks callee-save method offsets for the runtime architecture. The "asm_support_XXX.h" files now only contain definitions that are common between all architectures. Architecture-specific definitions (i.e., special registers names) have been pushed into the corresponding .S file. This change was required to be able to undefine definitions in the test, so that multiple tests can be written in one file. Test (1) above is in a sense two-stage. The arch_test gtest compares constants (if it finds them) against the frame size as reported by the ArtMethods created by the Runtime. This works for all architectures as we can provide the instruction-set to CreateCalleeSaveMethod. The second stage of the "test" are preprocessor tests with "#error" in the case that the constants are not the expected value. Optimally I'd like to change that to an actual runtime test exercising the assembly code, which would also allow to check whether the right registers are stored. Also added missing assembly code for ARM64 for the callee-save macros. Also fix X86_64 compilation for Clang 3.5. Change-Id: I018e6433dffd3d31ba3bfcd75661653f4c7b6552
|
47d00c0a893b13b69e4bac1836e10cc3e1812d41 |
|
17-Apr-2014 |
Ian Rogers <irogers@google.com> |
Add untested x86-64 downcall and exception assembly. Change-Id: Ic555f9f5af8c3a2110a92e55772ff6c0128e5c19
|
fca82208f7128fcda09b6a4743199308332558a2 |
|
21-Mar-2014 |
Dmitry Petrochenko <dmitry.petrochenko@intel.com> |
x86_64: JNI compiler Passed all tests from jni_compiler_test and art/test on host with jni_copiler. Incoming argument spill is enabled, entry_spills refactored. Now each entry spill contains data type size (4 or 8) and offset which should be used for spill. Assembler REX support implemented in opcodes used in JNI compiler. Please note, JNI compiler is not enabled by default yet (see compiler_driver.cc:1875). Change-Id: I5fd19cca72122b197aec07c3708b1e80c324be44 Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
|
c6651298ef631d787a17c4f6f751bffe9e748a28 |
|
12-Mar-2014 |
Ian Rogers <irogers@google.com> |
Always reset CFI state. .cfi_startproc simple may do even less than .cfi_startproc, so don't rely on it. Instead, use regular .cfi_startporc and always set up the expected entry state. Change-Id: I6d3e8b8e4a07621bc99c062359a109eb76f85184
|
ee043fc5b2459d221ff020e2b096e2d492311d11 |
|
11-Mar-2014 |
Ian Rogers <irogers@google.com> |
Ensure functions start with clean CFA state. .cfi_startproc doesn't reset CFA state and so delivering exceptions and the like can leave the CFA with an incorrect offset. Reset the state in the DEFINE_FUNCTION macro. Also fix using test/run-test with --gdb for the target. Change-Id: I4c03768e118ef1e06d34fedce856919e6ecba0c4
|
44d6ff197b340b5ac2a4094db148b39c366317dd |
|
07-Mar-2014 |
Ian Rogers <irogers@google.com> |
Fix issues with clang and BUILD_HOST_64bit. Change-Id: Id954d0c1144de6eaf89a4d27d205e3bf6ccb655f
|
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
|