f75ec85cb9c8690e42125aea3dac1e57d46c21da |
|
03-Feb-2017 |
Alexandre Rames <alexandre.rames@uop.re> |
AArch64: Improve interaction between runtime and the simulator. With C++11 and later, the simulator exposes a templated `RunFrom()` method template <typename R, typename... P> R RunFrom(const Instruction* code, P... arguments); that automatically copies arguments in the appropriate registers and returns the result of the execution. Change-Id: I2bb901fc3d6029934dee2127b174383ffce920c7
/external/vixl/test/aarch64/test-simulator-aarch64.cc
|
bde2e4b5ce376456d50a972b6f3aaee3475f8786 |
|
24-Jan-2017 |
Pierre Langlois <pierre.langlois@arm.com> |
Enable clang-format in the tests Extend the clang_format.py script to format everything by trace files in the `test/` directory. Also, we have to add "on/off" marker in `test-simualtor-inputs-aarch64.h` as clang-format is getting confused there. Change-Id: I1159498072bda1bfd049082aeccb347ec55e7825
/external/vixl/test/aarch64/test-simulator-aarch64.cc
|
4fea551fb8ef5884ebd7157a82b1635063ea651f |
|
17-Jan-2017 |
Jacob Bramley <jacob.bramley@arm.com> |
Add specialised W and X Register classes. These allow for the register type to be determined at compile time, so that the it can be used for overload resolution. Note that this does break the API in the case of the ternary operator. The following pattern will no longer work: Register r0 = (condition) ? x0 : w0; The workaround is to explicitly cast each register: Register r0 = (condition) ? Register(x0) : Register(w0); Some existing overload situation may also fail with the new scheme; in general, resolutions can be added by simply providing specific WRegister and XRegister implementations, which typically can fall through to the existing Register implementation with an explicit cast. In the future, we expect an extension which will make WRegister and XRegister POD types. Change-Id: I6da8e3f87161f23de7c13e3c5142d4fc40532090
/external/vixl/test/aarch64/test-simulator-aarch64.cc
|
6a049f97861bd71c69d81f643e42308d28c5de31 |
|
21-Sep-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
Unify the `Assembler` helpers related to the code buffer. A few helpers in `Assembler` classes that were simply wrappers around `CodeBuffer` methods have been deprecated, and should be replaced by calls to the `CodeBuffer` methods. Change-Id: I72608c8c1f1f2823c58c8f6de042e932abe12629
/external/vixl/test/aarch64/test-simulator-aarch64.cc
|
919e3fe28a5024c53ede42922092bbc32e89dcb8 |
|
14-Oct-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
Create a base class for assemblers. This base class defines an interface that assemblers must adhere to. For now, we use it to hold the code buffer. Change-Id: I487430bb98c7044e57b348cffa1e74a2a4c8026f
/external/vixl/test/aarch64/test-simulator-aarch64.cc
|
491a575777fe21edc15bedd877a288a7f042bf48 |
|
18-Oct-2016 |
Martyn Capewell <martyn.capewell@arm.com> |
Fix NEON 'across' instruction simulation The simulation of NEON instructions that operate across a vector, eg. uminv, was incorrectly clearing its destination register, which was a problem when source and destination registers aliased. Fix the simulation and improve the tests to check instances of aliased registers. Change-Id: I65717c472e5bfc85258952002b571597d554270d
/external/vixl/test/aarch64/test-simulator-aarch64.cc
|
31dd2ae90d5e82871667fbf3ee2697a155e7c3ac |
|
05-Jul-2016 |
Alex Gilday <Alexander.Gilday2@arm.com> |
Correctly allocate executable memory in CodeBuffer CodeBuffer allocates memory that is executable via an ExecuteMemory function. Change-Id: Ib2dca824e9edd3144694cfac627becd35dd48e3c
/external/vixl/test/aarch64/test-simulator-aarch64.cc
|
826b7cfb0dba0f628b2b7ea4278e9f9f5fd549a7 |
|
01-Sep-2016 |
Pierre Langlois <pierre.langlois@arm.com> |
Make sure AArch64 simulator tests mark memory executable When running the AArch64 simulator tests natively, no simulator is actually used. This is done so we can generate reference traces on hardware to validate the simulator. However, said tests would directly attempt to execute the code buffer, instead of using mmap to explicitely mark the buffer as executable. Change-Id: I63cd6c2ec5746a2fc35b5bdd1f4a48b7653b2f82
/external/vixl/test/aarch64/test-simulator-aarch64.cc
|
1e85b7f2e8ad2bfb233de29405aade635ed207ce |
|
05-Aug-2016 |
Pierre Langlois <pierre.langlois@arm.com> |
Introduce architecture specific guards for the simulator This patch makes the VIXL_INCLUDE_SIMULATOR and VIXL_GENERATE_SIMULATOR_CODE header guards specific to either AArch64 or AArch32. Even though the simulator only support AArch64. The build system was updated accordingly, the "simulator" variable now takes "aarch64" or "none" as possible values instead of "on" and "off". This fixes issues we have when we want to build VIXL natively on AArch64 without a simulator, but still include the AArch32 macro-assembler. The later would check for VIXL_GENERATE_SIMULATOR_CODE and then generate calls to native code, which breaks. Change-Id: I2850782558d4cc37f37c1644f0efbd70a3123057
/external/vixl/test/aarch64/test-simulator-aarch64.cc
|
78973f258039f6e96eba85f1b5ecdb14b3c51dbb |
|
10-Aug-2016 |
Pierre Langlois <pierre.langlois@arm.com> |
Correctly include C headers This patch refactors VIXL to use `extern` block when including C header that do not have a C++ counterpart. Change-Id: I203d7d107755dbac3e5f4cf8d2f196f70dea1e07
/external/vixl/test/aarch64/test-simulator-aarch64.cc
|
9aded35530cca400c853a59bd279a1c946fcadae |
|
11-Jul-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
Aarch64: Clean a few more usage of the `MacroAssembler` constructor. Change-Id: Ibc1ed87b7105c9b2c6e710f15347e7023e8f8a98
/external/vixl/test/aarch64/test-simulator-aarch64.cc
|
d3832965c62a8ad461b9ea9eb0994ca6b0a3da2c |
|
04-Jul-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
Update naming to `aarch32` and `aarch64`. Change-Id: I40a929b1095ee3e1b2ca5ef879c7006d8b59acc9
/external/vixl/test/aarch64/test-simulator-aarch64.cc
|