History log of /external/vixl/src/aarch64/assembler-aarch64.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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