[PATCH. BINUTILS, AArch64, 2/2] Update Store Allocation Tag instructions.
Sudakshina Das
Sudi.Das@arm.com
Tue Apr 2 16:09:00 GMT 2019
Hi
On 02/04/2019 17:06, Sudakshina Das wrote:
> Hi
>
> This patch adds the new LDGM/STGM instructions of the
> Armv8.5-A Memory Tagging Extension. This is part of the changes
> that have been introduced recently in the 00bet10 release
> https://developer.arm.com/architectures/cpu-architecture/a-profile/exploration-tools
>
>
> The instructions are as follows:
> LDGM Xt, [<Xn|SP>]
> https://developer.arm.com/docs/ddi0596/latest/base-instructions-alphabetic-order/ldgm-load-tag-multiple
>
>
> STGM Xt, [<Xn|SP>]
> https://developer.arm.com/docs/ddi0596/latest/base-instructions-alphabetic-order/stgm-store-tag-multiple
>
>
> For ease of review I have not added the regenerated files in the patch.
> I will add those in my final commit.
>
> Builds and reg tests all pass on aarch64-none-elf.
>
> Is this ok for trunk? And for backport to 2.32?
>
> Thanks
> Sudi
>
> *** gas/ChangeLog ***
>
> 2019-xx-xx Sudakshina Das <sudi.das@arm.com>
>
> * testsuite/gas/aarch64/armv8_5-a-memtag.d: New tests for ldgm and
> stgm.
> * testsuite/gas/aarch64/armv8_5-a-memtag.s: Likewise.
> * testsuite/gas/aarch64/illegal-memtag.l: Likewise.
> * testsuite/gas/aarch64/illegal-memtag.s: Likewise.
>
> *** opcodes/ChangeLog ***
>
> 2019-xx-xx Sudakshina Das <sudi.das@arm.com>
>
> * aarch64-asm-2.c: Regenerated.
> * aarch64-dis-2.c: Likewise.
> * aarch64-opc-2.c: Likewise.
> * aarch64-tbl.h (aarch64_opcode): Add new ldgm and stgm.
Hi
This patch updates the Store allocation tags instructions in
Armv8.5-A Memory Tagging Extension. This is part of the changes
that have been introduced recently in the 00bet10 release
https://developer.arm.com/architectures/cpu-architecture/a-profile/exploration-tools
All of these instructions have an updated register operand (Xt -> <Xt|SP>)
- STG <Xt|SP>, [<Xn|SP>, #<simm>]
- STG <Xt|SP>, [<Xn|SP>, #<simm>]!
- STG <Xt|SP>, [<Xn|SP>], #<simm>
- STZG <Xt|SP>, [<Xn|SP>, #<simm>]
- STZG <Xt|SP>, [<Xn|SP>, #<simm>]!
- STZG <Xt|SP>, [<Xn|SP>], #<simm>
- ST2G <Xt|SP>, [<Xn|SP>, #<simm>]
- ST2G <Xt|SP>, [<Xn|SP>, #<simm>]!
- ST2G <Xt|SP>, [<Xn|SP>], #<simm>
- STZ2G <Xt|SP>, [<Xn|SP>, #<simm>]
- STZ2G <Xt|SP>, [<Xn|SP>, #<simm>]!
- STZ2G <Xt|SP>, [<Xn|SP>], #<simm>
https://developer.arm.com/docs/ddi0596/latest/base-instructions-alphabetic-order
In order to accept <Rt|SP> a new operand type Rt_SP is introduced which
has the same field as FLD_Rt but follows other semantics of Rn_SP.
For ease of review I have not added the regenerated files in the patch.
I will add those in my final commit.
Builds and reg tests all pass on aarch64-none-elf.
Is this ok for trunk? And for backport to 2.32?
Thanks
Sudi
*** gas/ChangeLog ***
2019-xx-xx Sudakshina Das <sudi.das@arm.com>
* config/tc-aarch64.c (process_omitted_operand): Add case for
AARCH64_OPND_Rt_SP.
(parse_operands): Likewise.
* testsuite/gas/aarch64/armv8_5-a-memtag.d: Update tests.
* testsuite/gas/aarch64/armv8_5-a-memtag.s: Likewise.
* testsuite/gas/aarch64/illegal-memtag.l: Likewise.
* testsuite/gas/aarch64/illegal-memtag.s: Likewise.
*** include/ChangeLog ***
2019-xx-xx Sudakshina Das <sudi.das@arm.com>
* opcode/aarch64.h (enum aarch64_opnd): Add AARCH64_OPND_Rt_SP.
*** opcodes/ChangeLog ***
2019-xx-xx Sudakshina Das <sudi.das@arm.com>
* aarch64-opc.c (aarch64_print_operand): Add case for
AARCH64_OPND_Rt_SP.
(verify_constraints): Likewise.
* aarch64-tbl.h (QL_LDST_AT): Update to add SP qualifier.
(struct aarch64_opcode): Update stg, stzg, st2g, stz2g instructions
to accept Rt|SP as first operand.
(AARCH64_OPERANDS): Add new Rt_SP.
* aarch64-asm-2.c: Regenerated.
* aarch64-dis-2.c: Regenerated.
* aarch64-opc-2.c: Regenerated.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rb10869.patch
Type: text/x-patch
Size: 12306 bytes
Desc: rb10869.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20190402/51dbf2cd/attachment.bin>
More information about the Binutils
mailing list