binutils-gdb/include/opcode
Przemyslaw Wirkus fd195909ce aarch64: Add DSB instruction Armv8.7-a variant
This patch adds new variant (nXS) of DSB memory barrier instruction
available in Armv8.7-a. New nXS variant has different encoding in
comparison with pre Armv8.7-a DSB memory barrier variant thus new
instruction and new operand was added.

DSB memory nXS barrier variant specifies the limitation on the barrier
operation. Allowed values are:

	DSB SYnXS|#28
	DSB ISHnXS|#24
	DSB NSHnXS|#20
	DSB OSHnXS|#16

Please note that till now,  for barriers, barrier operation was encoded in
4-bit unsigned immediate CRm field (in the range 0 to 15).
For DSB memory nXS barrier variant, barrier operation is a 5-bit unsigned
assembly instruction immediate, encoded in instruction in two bits CRm<3:2>:

		CRm<3:2>  #imm
		  00       16
		  01       20
		  10       24
		  11       28

This patch extends current AArch64 barrier instructions with above mapping.

Notable patch changes include:
+ New DSB memory barrier variant encoding for Armv8.7-a.
+ New operand BARRIER_DSB_NXS for above instruction in order to
distinguish between existing and new DSB instruction flavour.
+ New set of DSB nXS barrier options.
+ New instruction inserter and extractor map between instruction
immediate 5-bit value and 2-bit CRm field of the instruction itself (see
FLD_CRm_dsb_nxs).
+ Regeneration of aarch64-[asm|dis|opc]-2.c files.
+ Test cases to cover new instruction assembling and disassembling.

For more details regarding DSB memory barrier instruction and its
Armv8.7-a flavour please refer to Arm A64 Instruction set documentation
for Armv8-A architecture profile, see document pages 132-133 of [0].

	[0]: https://developer.arm.com/docs/ddi0596/i

gas/ChangeLog:

2020-10-23  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

	* NEWS: Docs update.
	* config/tc-aarch64.c (parse_operands): Add
	AARCH64_OPND_BARRIER_DSB_NXS handler.
	(md_begin): Add content of aarch64_barrier_dsb_nxs_options to
	aarch64_barrier_opt_hsh hash.
	* testsuite/gas/aarch64/system-4-invalid.d: New test.
	* testsuite/gas/aarch64/system-4-invalid.l: New test.
	* testsuite/gas/aarch64/system-4-invalid.s: New test.
	* testsuite/gas/aarch64/system-4.d: New test.
	* testsuite/gas/aarch64/system-4.s: New test.

include/ChangeLog:

2020-10-23  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

	* opcode/aarch64.h (enum aarch64_opnd): New operand
	AARCH64_OPND_BARRIER_DSB_NXS.
	(aarch64_barrier_dsb_nxs_options): Declare DSB nXS options.

opcodes/ChangeLog:

2020-10-23  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

	* aarch64-asm.c (aarch64_ins_barrier_dsb_nxs): New inserter.
	* aarch64-asm.h (AARCH64_DECL_OPD_INSERTER): New inserter
	ins_barrier_dsb_nx.
	* aarch64-dis.c (aarch64_ext_barrier_dsb_nxs): New extractor.
	* aarch64-dis.h (AARCH64_DECL_OPD_EXTRACTOR): New extractor
	ext_barrier_dsb_nx.
	* aarch64-opc.c (aarch64_print_operand): New options table
	aarch64_barrier_dsb_nxs_options.
	* aarch64-opc.h (enum aarch64_field_kind): New field name FLD_CRm_dsb_nxs.
	* aarch64-tbl.h (struct aarch64_opcode): Define DSB nXS barrier
	Armv8.7-a instruction.
	* aarch64-asm-2.c: Regenerated.
	* aarch64-dis-2.c: Regenerated.
	* aarch64-opc-2.c: Regenerated.
2020-10-28 14:05:05 +00:00
..
aarch64.h aarch64: Add DSB instruction Armv8.7-a variant 2020-10-28 14:05:05 +00:00
alpha.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
arc-attrs.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
arc-func.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
arc.h [ARC] Add finer details for LLOCK and SCOND 2020-01-07 15:25:34 +02:00
arm.h Fix the ARM assembler to generate a Realtime profile for armv8-r. 2020-05-19 12:45:42 +01:00
avr.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
bfin.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
cgen.h opcodes: discriminate endianness and insn-endianness in CGEN ports 2020-06-04 16:17:42 +02:00
ChangeLog-0415
ChangeLog-9103
convex.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
cr16.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
cris.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
crx.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
csky.h CSKY: Add version flag in eflag and fix bug in disassembling register. 2020-10-26 16:20:10 +08:00
d10v.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
d30v.h ubsan: d30v: negation of -2147483648 2020-02-04 14:10:40 +10:30
dlx.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ft32.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
h8300.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
hppa.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
i386.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ia64.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
m68hc11.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
m68k.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
metag.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
mips.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
mmix.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
mn10200.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
mn10300.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
moxie.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
msp430-decode.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
msp430.h MSP430: Fix relocation overflow when using #lo(EXP) macro 2020-01-15 13:23:06 +00:00
nds32.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
nfp.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
nios2.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
nios2r1.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
nios2r2.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
np1.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ns32k.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
pdp11.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
pj.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
pn.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ppc.h Power10 Reduced precision outer product operations 2020-05-11 21:08:37 +09:30
pru.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
pyr.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
riscv-opc.h RISC-V: Support debug and float CSR as the unprivileged ones. 2020-06-30 09:54:55 +08:00
riscv.h PR26493 UBSAN: elfnn-riscv.c left shift of negative value 2020-08-31 20:28:10 +09:30
rl78.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
rx.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
s12z.h Enable building the s12z target on Solaris hosts where REG_Y is defined in system header files. 2020-01-02 12:04:40 +00:00
s390.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
score-datadep.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
score-inst.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
sparc.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
spu-insns.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
spu.h ubsan: spu: left shift of negative value 2020-01-10 17:32:33 +10:30
tic4x.h tic4x: sign extension using shifts 2020-01-13 12:12:05 +10:30
tic6x-control-registers.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
tic6x-insn-formats.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
tic6x-opcode-table.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
tic6x.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
tic30.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
tic54x.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
tilegx.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
tilepro.h PR26044, Some targets can't be compiled with GCC 10 (tilepro) 2020-05-28 21:11:51 +09:30
v850.h ubsan: v850-opc.c:412 left shift cannot be represented 2020-09-02 16:30:44 +09:30
vax.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
visium.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
wasm.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
xgate.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30