[PATCH 0/3] aarch64: Add support for the Armv9.4-a LSE128 extension

Victor Do Nascimento victor.donascimento@arm.com
Mon Nov 6 13:12:45 GMT 2023


Add support for the 128-bit Atomic Instructions extension, also known
and referred to as LSE128 and which is made optional from Armv9.4-a
onward.

The feature is enabled by passing the +lse128 option to -march
(eg: -march=armv9.4-a+lse128) or using the ".arch_extension lse128"
directive in the assembly file.  Given that the implementation of the
LSE128 feature requires that the LSE feature is also present, the
+lse128 option also implicitly enables the +lse feature.

LSE128 adds support for the following new 128-bit atomic instructions:

  * Atomic bit clear on quadword in memory (ldclrp{a|l|al});
  * Atomic bit set on quadword in memory (ldsetp{a|l|al});
  * Swap quadword in memory (swpp{a|l|al});

Regression testing for aarch64-none-linux-gnu target with no regressions.

Victor Do Nascimento (3):
  aarch64: Add LSE128 instruction operand support
  aarch64: Add arch support for LSE128 extension
  aarch64: Add LSE128 instructions

 gas/config/tc-aarch64.c                   |  6 +++++
 gas/doc/c-aarch64.texi                    |  2 ++
 gas/testsuite/gas/aarch64/lse128-atomic.d | 32 ++++++++++++++++++++++
 gas/testsuite/gas/aarch64/lse128-atomic.s | 33 +++++++++++++++++++++++
 include/opcode/aarch64.h                  |  5 ++++
 opcodes/aarch64-opc.c                     |  4 +++
 opcodes/aarch64-opc.h                     |  2 ++
 opcodes/aarch64-tbl.h                     | 20 ++++++++++++++
 8 files changed, 104 insertions(+)
 create mode 100644 gas/testsuite/gas/aarch64/lse128-atomic.d
 create mode 100644 gas/testsuite/gas/aarch64/lse128-atomic.s

-- 
2.41.0



More information about the Binutils mailing list