binutils-gdb/include/opcode
Tamar Christina eae424aef0 AArch64: Mark sve instructions that require MOVPRFX constraints
This patch series is to allow certain instructions such as the SVE MOVPRFX
instruction to apply a constraint/dependency on the instruction at PC+4.

This patch starts this off by marking which instructions impose the constraint
and which instructions must adhere to the constraint.  This is done in a
generic way by extending the verifiers.

* The constraint F_SCAN indicates that an instruction opens a sequence and imposes
a constraint on an instructions following it.  The length of the sequence depends
on the instruction itself and it handled in the verifier code.

* The C_SCAN_MOVPRFX flag is used to indicate which constrain the instruction is
checked against.  An instruction with both F_SCAN and C_SCAN_MOVPRFX starts a
block for the C_SCAN_MOVPRFX instruction, and one with only C_SCAN_MOVPRFX must
adhere to a previous block constraint is applicable.

The SVE instructions in this list have been marked according to the SVE
specification[1].

[1] https://developer.arm.com/docs/ddi0584/latest/arm-architecture-reference-manual-supplement-the-scalable-vector-extension-sve-for-armv8-a

include/

	* opcode/aarch64.h (struct aarch64_opcode): Add constraints,
	extend flags field size.
	(F_SCAN, C_SCAN_MOVPRFX, C_MAX_ELEM): New.

opcodes/

	* aarch64-tbl.h (CORE_INSN, __FP_INSN, SIMD_INSN, CRYP_INSN, _CRC_INSN,
	_LSE_INSN, _LOR_INSN, RDMA_INSN, FF16_INSN, SF16_INSN, V8_2_INSN,
	_SVE_INSN, V8_3_INSN, CNUM_INSN, RCPC_INSN, SHA2_INSN, AES_INSN,
	V8_4_INSN, SHA3_INSN, SM4_INSN, FP16_V8_2_INSN, DOT_INSN): Initialize
	constraints.
	(_SVE_INSNC): New.
	(struct aarch64_opcode): (fjcvtzs, ldpsw, ldpsw, esb, psb): Initialize
	constraints.
	(movprfx): Change _SVE_INSN into _SVE_INSNC, add C_SCAN_MOVPRFX and
	F_SCAN flags.
	(msb, mul, neg, not, orr, rbit, revb, revh, revw, sabd, scvtf,
	sdiv, sdivr, sdot, smax, smin, smulh, splice, sqadd, sqdecd, sqdech,
	sqdecp, sqdecw, sqincd, sqinch, sqincp, sqincw, sqsub, sub, subr, sxtb,
	sxth, sxtw, uabd, ucvtf, udiv, udivr, udot, umax, umin, umulh, uqadd,
	uqdecd, uqdech, uqdecp, uqdecw, uqincd, uqinch, uqincp, uqincw, uqsub,
	uxtb, uxth, uxtw, bic, eon, orn, mov, fmov): Change _SVE_INSN into _SVE_INSNC and add
	C_SCAN_MOVPRFX and C_MAX_ELEM constraints.
2018-10-03 18:24:17 +01:00
..
aarch64.h AArch64: Mark sve instructions that require MOVPRFX constraints 2018-10-03 18:24:17 +01:00
alpha.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
arc-attrs.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
arc-func.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
arc.h [ARC] Update handling AUX-registers. 2018-08-06 16:41:32 +03:00
arm.h [ARM] Remove ARM_FEATURE_COPY macro 2018-02-27 16:40:45 +00:00
avr.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
bfin.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
cgen.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
ChangeLog-0415 binutils ChangeLog rotation 2016-01-01 22:59:17 +10:30
ChangeLog-9103
convex.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
cr16.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
cris.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
crx.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
csky.h Add support for the C_SKY series of processors. 2018-07-30 12:24:14 +01:00
d10v.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
d30v.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
dlx.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
ft32.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
h8300.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
hppa.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
i386.h x86: Remove support for old (<= 2.8.1) versions of gcc 2018-03-08 06:31:52 -08:00
ia64.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
m68hc11.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
m68k.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
metag.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
mips.h [MIPS] Add Loongson 2K1000 proccessor support. 2018-08-29 20:55:25 +08:00
mmix.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
mn10200.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
mn10300.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
moxie.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
msp430-decode.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
msp430.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
nds32.h Andes Technology has good news for you, we plan to update the nds32 port of binutils on upstream! 2018-09-20 13:32:58 +01:00
nfp.h Fix error messages in the NFP sources when building for 32-bit targets. 2018-05-15 13:28:06 +01:00
nios2.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
nios2r1.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
nios2r2.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
np1.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
ns32k.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
pdp11.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
pj.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
pn.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
ppc.h Use operand->extract to provide defaults for optional PowerPC operands 2018-08-21 16:05:36 +09:30
pru.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
pyr.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
riscv-opc.h RISC-V: Add fence.tso instruction 2018-10-02 08:26:32 -07:00
riscv.h RISC-V: Allow instruction require more than one extension 2018-08-30 13:23:12 -07:00
rl78.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
rx.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
s12z.h S12Z: Move opcode header to public include directory. 2018-08-18 07:50:03 +02:00
s390.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
score-datadep.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
score-inst.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
sparc.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
spu-insns.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
spu.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tic4x.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tic6x-control-registers.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tic6x-insn-formats.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tic6x-opcode-table.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tic6x.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tic30.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tic54x.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tic80.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tilegx.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tilepro.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
v850.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
vax.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
visium.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
wasm.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
xgate.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30