2da09a48dc4d5a3c585f897f256c2c6c5fa4eb5a |
|
11-Apr-2017 |
Artem Serov <artem.serov@linaro.org> |
Fix release of a QRegisters within a ScratchRegisterScope. Test: ./tools/test.py Change-Id: I11107d3a7c19eaf31a1dd8ad512c67d4600b7930
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
59bfe1ca76d3155c56ab97fba60646a734aeb01b |
|
24-Jan-2017 |
Pierre Langlois <pierre.langlois@arm.com> |
[aarch64] Do not mix the Assembler and MacroAssembler in tests Cleanup all of vixl64's test to stop use ExactAssemblyScope instead of CodeBufferCheckScope. The latter allows for mixing the assembler and macro-assembler. Fixing the disassembler tests were not completely obvious. We used to have a different SETUP macro for the Assembler and MacroAssembler. It's much simpler to have a single SETUP macro that always creates a MacroAssembler and then use COMPARE or COMPARE_MACRO to define the tests. The former allows the Assembler with an ExactAssemblyScope while the latter does not. Change-Id: Ic37c25742b77767f257f88e06c7e4106ea55425f
/external/vixl/test/aarch64/test-assembler-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-assembler-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-assembler-aarch64.cc
|
e79723a010a6f42fe78e2515c7b0eb9308b93093 |
|
07-Jun-2016 |
Jacob Bramley <jacob.bramley@arm.com> |
Trace taken branches in the A64 simulator. This is useful when debugging generated code, as it allows branch points to be quickly identified and examined. Change-Id: I2d1fdaf6fbf24582c73b2a301bc1a01217ef0fd3
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
a38f9aec7b79989b658790b2492e2de67a64b430 |
|
22-Nov-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
Ensure `MacroAssembler::Nop` generates a single `nop`. The `MacroAssembler` is allowed to emit any code that is functionally equivalent to what is requested by the user, and is expected to generate 'good' code. The user can expect calls such as `masm.Add(r0, r0, 0)` to be optimized away (think that `0` may be the value of a variable). Following this we *could* generate no code for calls to `Nop()`. But `Nop()` will likely not be used by mistake, so we ensure it generates at least one `nop` instruction. This is useful for tests where we want to generate 'some' code. Change-Id: Iecf31b5cfd151a77b1633ea5158ff54fef9f8908
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
5b24fb388927a1f1801a15d460d4c9448f7aa733 |
|
02-Nov-2016 |
Martyn Capewell <martyn.capewell@arm.com> |
Fix simulator-aarch64 to satisfy UBSan. Most changes are fixing shifts of signed integers, or out of range shifts. Change-Id: Ic5787ac2e99f05fd0d3118060f80b39d9e8d5621
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
07d1aa5b941ace15deb01e5df2c79e677039c4ae |
|
25-Oct-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
AArch64: follow the design guidelines for `ExactAssemblyScope`. Change-Id: I5b942e033681c69f5e6cac3a669b3b3ebacbf1f8
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
fac0a468cc6d7319f12a279beaded4236b6b394d |
|
25-Oct-2016 |
Martyn Capewell <martyn.capewell@arm.com> |
Fix AreConsecutive and add tests AreConsecutive misreported eg. (v0, NoVReg, v3, v4) as false, when the prototype description says all registers after NoVReg are ignored. Change-Id: I211dddaf828353fa84ca2815c32c0f5f73a02987
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
b953ea8255b36e27834f17941429cd17af12f6f2 |
|
20-Oct-2016 |
Martyn Capewell <martyn.capewell@arm.com> |
Fix simulation of NEON min/maxp and tbl The simulation of [su](min|max)p, tbl and tbx was broken when source and destination registers aliased. Fix these and add regression tests. Change-Id: I3945e520df7a1f9453595c9941bdfbb3447ae581
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
9dd6fa37dbb79f62177aebd04d7e945ce1dc3108 |
|
12-Oct-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
Follow the design guidelines for the AArch64 `CodeBufferCheckScope`. The implementation of the scopes relies only on the `AssemblerBase` interface. The AArch32 scopes will be updated in a separate commit. Change-Id: Ibe0eab35f60da39fe0bcbd60a16bdc65b12e0dd5
/external/vixl/test/aarch64/test-assembler-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-assembler-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-assembler-aarch64.cc
|
5ffcded0741a916337d39246361d2e61737b06a4 |
|
17-Oct-2016 |
Jacob Bramley <jacob.bramley@arm.com> |
Don't assume that pointer offsets fit in 32 bits. In particular, low-level instruction helpers like adr, b and the like should accept full 64-bit offsets. In all cases, an int can hold the offset, but narrowing the offset on input weakens the size assertion. Also note that this breaks backwards-compatibility, but only for some esoteric use-cases that access the Assembler directly: 'adr(x0, 0)' will now fail to compile because the call is ambiguous between the int64_t and Label* variants. Change-Id: I9821d742ff7b8e497e79fdede8af35a1d6325d23
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
bc01be684fe63a8a8c785f92e8aaa080cb6e87fa |
|
12-Oct-2016 |
Pierre Langlois <pierre.langlois@arm.com> |
Introduce --disassemble option to test-runner This patch adds a "--disassemble" option that one can pass to the test-runner binary so that generated instructions will be printed to standard output before executing. Change-Id: Idb767a43d8f2bd8fdd4fa3718b973fb35204d0e0
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
ea4c632f0a2e6c8f75cb4a64658f66015408f0ed |
|
12-Oct-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
Workaround for AArch64 platforms not supporting CRC32. For now we disable the CRC32 tests when running natively, to let the tests pass when running natively on platforms not supporting it. A task is open to address the issue. Change-Id: I7921440058d5d62205a99d94bf968b7327735b9c
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
0ec9dc10536b569b807274627e8c61bf6d6ceae7 |
|
05-Oct-2016 |
Pierre Langlois <pierre.langlois@arm.com> |
Rewrite `VIXL_CHECK` in terms of `abort`. The `VIXL_CHECK` macro is meant to be used for runtime checks. However VIXL is built, the check should always be done. We used `assert` to implement `VIXL_CHECK`, but an assertion in C can be disabled with the `NDEBUG` macro, which is also how Android builds VIXL. This patch also replaces uses of asserts with `VIXL_CHECK`. Change-Id: I576c5b4910c7dee66e37c3fd9f73ad4edca3f4b7
/external/vixl/test/aarch64/test-assembler-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-assembler-aarch64.cc
|
1c78c34397f2c08c012733cc661076e8bd029eab |
|
16-Sep-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
AArch64: Do not bypass optimisations in `Mov` for registers. Change-Id: I060e7518cf7e3bca5b531b714683a64f73ea8ba0
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
23703a72b1cd9a49428bcd850429f7be381c1e63 |
|
15-Aug-2016 |
Pierre Langlois <pierre.langlois@arm.com> |
[test] Fix NEON tests that assume zero'ed registers Some of the NEON AArch64 tests would rely on the top 64 bit of Q registers to be initialized with zero, which is not guaranteed to be the case. Change-Id: I374d40b759fd57d58ce244dde1cb0491456f8b72
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
1372e357419917aaa4d7aa626e12fb4ac5092850 |
|
23-Aug-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
AArch64: Avoid running the runtime call test for unsupported configurations. Change-Id: I2e0ce910fe5f5bb71188b62e7b5b4bdade8fb763
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
a4055d25c688d1397fc369a40abf57fa4f1ab805 |
|
17-Aug-2016 |
Pierre Langlois <pierre.langlois@arm.com> |
Add guards around the AArch64 simulator If VIXL_INCLUDE_SIMULATOR_AARCH64 is not defined, including the "simulator-aarch64.h" header should have no effect. We couldn't do this because the macro-assembler relies on TraceCommand and TraceParameter being defined. Change-Id: Ide0b9f87482e51addfb2b6199cb5453ca4f15f7f
/external/vixl/test/aarch64/test-assembler-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-assembler-aarch64.cc
|
c3487d2febf913244d5789d096732df569e8b7fd |
|
12-Aug-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
Fix macros for `CallRuntime` support. The associated test was failing to compile natively. Change-Id: I8962f348d3e019766c778dacd5c05f93b2295630
/external/vixl/test/aarch64/test-assembler-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-assembler-aarch64.cc
|
de5bb0beb4a3342bb9f0d7e7fe16737a171517b0 |
|
04-Aug-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
AArch64: Refactor `InstructionAccurateScope` and add a regression test. The previous implementation was not emitting the pools when it needed to upon construction, and was not correctly blocking emission of the pools. Change-Id: I06db5b5891234946b139ba64898929c0e3ced3c4
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
482d4df29d1466ff87d94e74034f1a8659f1b354 |
|
05-Aug-2016 |
Jacob Bramley <jacob.bramley@arm.com> |
Work around a GCC bug in runtime call support. For now, simulated runtime call support is disabled for GCC before version 4.9.1. A proper fix requires another way to force evaluation order. Also, fix a compiler warning. Change-Id: Iffb258aec6f36cdd0a1e0da2f419bd3de0c6ca72
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
ca73ba046c11d65b6dce59cfd26847d14aba06ab |
|
28-Jul-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
Fix `#define` directives related to ABI and runtime call simulation. Also add a regression test. Change-Id: Iad770e7181f3b994590bdee069845885039e8bc4
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
064e02d4e85938b2e2be4d4b37a2691b2e015ebb |
|
12-Jul-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
AArch64: Support runtime call simulation. Change-Id: I063c2223a63791e90d8aa9cffc6e88f96d57187e
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
4e7c93cc256c7719d69279d64e4f5d09044b8b2c |
|
19-Jul-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
AArch64: Introduce a new `GenericOperand` abstraction. Currently, a `GenericOperand` can represent a `CPURegister` or a memory area (`MemOperand` extended by a 'size' field). Change-Id: Ic37c4da07ea888444ccb1bfbd82646d0c56bbe84
/external/vixl/test/aarch64/test-assembler-aarch64.cc
|
703ff06a087f67fccde24a7ffbc8a2e74a406cb1 |
|
11-Jul-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
Aarch64: Rename `allow_simulator_instructions_` to `generate_simulator_code_`. Change-Id: I72956db90ab3380b5ad62b37d2ed203ec4045931
/external/vixl/test/aarch64/test-assembler-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-assembler-aarch64.cc
|