History log of /external/vixl/src/aarch64/macro-assembler-aarch64.cc
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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/src/aarch64/macro-assembler-aarch64.cc
e8ce9f0ec7fe9484fca0c446ecc8a9d7929bea66 14-Dec-2016 Jacob Bramley <jacob.bramley@arm.com> Assert perfect nesting for UseScratchRegisterScope.

Since UseScratchRegisterScope now has a MacroAssembler pointer anyway, this
patch also removes available_ and availablefp_, and uses the MacroAssembler
directly.

Some negative tests would be useful but I'll add them separately.

Change-Id: Ia093c67a980044f8e1514cff81998fd9dbfaa44e
/external/vixl/src/aarch64/macro-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/src/aarch64/macro-assembler-aarch64.cc
c0b25f28106fbbbf8880e0b259de1a639ea1e73f 19-Oct-2016 Alexandre Rames <alexandre.rames@linaro.org> Follow the design guidelines for the AArch64 `EmissionCheckScope`.

It uses a newly defined `MacroAssemblerInterface` class.

Change-Id: I10ba663ec047d1ea320610bc2d5565de24d9686b
/external/vixl/src/aarch64/macro-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/src/aarch64/macro-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/src/aarch64/macro-assembler-aarch64.cc
f5348cedd702124c90fc75e75d0195e2e485c620 22-Sep-2016 Pierre Langlois <pierre.langlois@arm.com> Remove implicit 64 to 32 bit narrowing

This patch fixes cases of implicit 64 to 32 bit narrowing. The issue is
that `CodeBuffer` represents code offsets with `ptrdiff_t`, which will
be 64 bit on a 64 bit system. However, we want to support generating 32
bit code from a 64 bit program, therefore the 32 bit part of VIXL works
with `int32_t` for code offsets. We had implicit conversions happening
due to this.

We solve this by explicitely casting to `int32_t` in the AArch32
assembler when calling `GetCursorOffset`. If you are working with the
`CodeBuffer` directly, you are dealing with a code buffer on the host
and so will work with offsets as `ptrdiff_t`. But, when working with the
AArch32 assembler itself you will get offsets as `int32_t`. The
assembler is in charge of checking that the offsets it gets from the
code buffer fit into `int32_t`.

Additionally, we had narrowing cases when generally wrapping host
pointers into an Operand. This can only work if the pointer fits into 32
bits. This patch introduces a Operand::From() factory method that can be
used for converting any integral or pointer type to an immediate
operand.

Change-Id: Icc15711b34c2477ed997eef238e25496d86ea9aa
/external/vixl/src/aarch64/macro-assembler-aarch64.cc
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/macro-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/src/aarch64/macro-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/src/aarch64/macro-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/src/aarch64/macro-assembler-aarch64.cc
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/macro-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/src/aarch64/macro-assembler-aarch64.cc
9fbd11bbc6a56071f455df28e08854a848f46c3b 08-Aug-2016 Alexandre Rames <alexandre.rames@linaro.org> AArch64: Refactor `EmissionCheckScope`.

It now inherits from `CodeBufferCheckScope` instead of reimplementing the
buffer size checking feature.

Change-Id: I9cb5f0ea49aba8b87c21d9de41d94562265943f3
/external/vixl/src/aarch64/macro-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/src/aarch64/macro-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/src/aarch64/macro-assembler-aarch64.cc
d3832965c62a8ad461b9ea9eb0994ca6b0a3da2c 04-Jul-2016 Alexandre Rames <alexandre.rames@linaro.org> Update naming to `aarch32` and `aarch64`.

Change-Id: I40a929b1095ee3e1b2ca5ef879c7006d8b59acc9
/external/vixl/src/aarch64/macro-assembler-aarch64.cc