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/src/aarch64/assembler-aarch64.h
|
c21044ca2406a098d7993cec560c655c78dc691a |
|
30-Nov-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
Improve the check in `aarch64::Label::~Label()`. There should be no outstanding links when a label is destructed. Change-Id: I0d8ce264acabe58d2d334169906afc1a5f3df1f0
/external/vixl/src/aarch64/assembler-aarch64.h
|
fb8e3dfec6597f1859df1bda4f89e7104b353702 |
|
03-Nov-2016 |
Martyn Capewell <martyn.capewell@arm.com> |
Fix remaining AArch64 UBSan errors. Change-Id: I51e830076b5978aaf3920c1be1e406964ff20c46
/external/vixl/src/aarch64/assembler-aarch64.h
|
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/src/aarch64/assembler-aarch64.h
|
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/src/aarch64/assembler-aarch64.h
|
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/src/aarch64/assembler-aarch64.h
|
3976edb2d3b98f0012c4f18b7242a6382c2d136c |
|
18-Oct-2016 |
Jacob Bramley <jacob.bramley@arm.com> |
Fix and rename TruncateToIntN. - The return type should have been a 64-bit integer. - The name was inappropriate since it doesn't return or operate on signed quantities. The fixed-size helpers still return uint32_t for convenience and to avoid type-narrowing warnings, but we no longer define functions that cannot work, such as `uint32_t TruncateToInt33(...)`. This also fixes the return type of the deprecated fixed-width `truncate_to_int##N` functions. Change-Id: I58089caf57533b7f1ceb69a5619c4d4cd1e594b5
/external/vixl/src/aarch64/assembler-aarch64.h
|
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/src/aarch64/assembler-aarch64.h
|
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/src/aarch64/assembler-aarch64.h
|
b49bdb7996e603555eba4c8b56c7325e3e737ab6 |
|
26-Sep-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
Improve include directives in `src/aarch64`. Some `aarch64` files had include directives such as: #include "globals-vixl.h" #include "aarch64/other-aarch64.h" This required users of VIXL to compile with `-I<path/to/vixl/src>`. Change-Id: Ie0d1d39d1d8eb4a0e6b4b96af95a352b16043003
/external/vixl/src/aarch64/assembler-aarch64.h
|
86eb8871a7c87e6ef75066c3deaedfc9dbd3c4af |
|
15-Aug-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
AArch64: Introduce a templated version of `Assembler::dc`. Change-Id: I640e4c8e32311f178489b376434d291e2f897ff8
/external/vixl/src/aarch64/assembler-aarch64.h
|
fd09817b8770a5e3a64a6fe4fefe85cc29805cd7 |
|
09-Aug-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
Do not include data members conditionally on `VIXL_DEBUG` in headers. Objects visible via headers should have the same data-layout in release and debug modes. Change-Id: I7ce5014ab8406968cdd8e9818a7f840cb443b6c1
/external/vixl/src/aarch64/assembler-aarch64.h
|
01cbce53c0162cc3220b378bc6ce919b02a9cf4b |
|
08-Aug-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
AArch64: Make the destructors of 'scopes' virtual. Change-Id: Icf23d4ed777fe1f8b57e536774c95d6c8ced5ad5
/external/vixl/src/aarch64/assembler-aarch64.h
|
61240278b0526ce7a177b3641447948007696891 |
|
03-Aug-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
Follow the `Open()` and `Close()` design for `CodeBufferCheckScope`. The `Open()` and `Close()` helpers will be used in incoming commits refactoring related scopes. Change-Id: Ia57f74a5c98324cd6cd026a4c36f9049c7ae6a03
/external/vixl/src/aarch64/assembler-aarch64.h
|
a51a98b0833143eb54436fd853ec969c0ef62f39 |
|
04-Aug-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
AArch64: Use `CodeBufferCheckScope` more safely in the disassembler tests. In particular, the updated implementation works when initialising the code buffer with a size of `0`. Change-Id: Ic84ef05d45cace5411c472904aa23664455d0a0a
/external/vixl/src/aarch64/assembler-aarch64.h
|
def50a5485610ce9f61e3f9f4a7b1ee68eb83abf |
|
06-Jul-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
Aarch64: Extract registers and operands in separate files. Also clean `#include` directives of `assembler-aarch64.h`. Change-Id: Ic269216eba1c8c09318a92465365b5cf4a8dbd68
/external/vixl/src/aarch64/assembler-aarch64.h
|
d3832965c62a8ad461b9ea9eb0994ca6b0a3da2c |
|
04-Jul-2016 |
Alexandre Rames <alexandre.rames@linaro.org> |
Update naming to `aarch32` and `aarch64`. Change-Id: I40a929b1095ee3e1b2ca5ef879c7006d8b59acc9
/external/vixl/src/aarch64/assembler-aarch64.h
|