binutils-gdb/include
Tamar Christina a68f4cd235 AArch64: Add SVE constraints verifier.
This patch adds the verification rules for move prefix constraints.

The Arm SVE instruction MOVPRFX introduces[1] constraints on the instruction at
PC+4. Particularly the following constraints are handled by this patch

* MOVPRFX must be followed by an instruction.
* MOVPRFX can only be followed by non-layout altering directives.
* MOVPRFX destination register MUST be used as the destination register in the
  instruction at PC+4, and is not allowed to be used in any other position other than
  destructive input.  This includes registers that architecturally overlap. e.g. x1
  should be treated as z1.
* MOVPRFX must be followed by a restricted set of SVE instructions.
* The size of the destination register of MOVPRFX must be equal to that of
  the operation at PC+4.
* The predicate register and operation of MOVPRFX must match that of the instruction
  at PC+4
* The predicated instruction at PC+4 must use the merging predicate.
* Architectural aliases and pseudo-instructions need to be supported as well.
* MOVPRFX cannot be the last instruction in a sequence

Any failure to adhere to any of these constrains will emit an assembly warning
and a disassembly note.

[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 (aarch64_inst): Remove.
	(enum err_type): Add ERR_VFI.
	(aarch64_is_destructive_by_operands): New.
	(init_insn_sequence): New.
	(aarch64_decode_insn): Remove param name.

opcodes/

	* aarch64-opc.c (init_insn_block): New.
	(verify_constraints, aarch64_is_destructive_by_operands): New.
	* aarch64-opc.h (verify_constraints): New.

gas/

        * config/tc-aarch64.c (output_operand_error_report): Order warnings.
2018-10-03 18:49:37 +01:00
..
aout various i386-aout and i386-coff target removal 2018-04-18 09:34:19 +09:30
cgen Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
coff -Wstringop-truncation warnings 2018-05-04 18:58:23 +09:30
elf [ARC] Fixed issue with DTSOFF relocs. 2018-10-01 12:42:11 +01:00
gdb Update copyright year range in all GDB files 2018-01-02 07:38:06 +04:00
mach-o PR22069, Several instances of register accidentally spelled as regsiter 2018-05-09 15:55:28 +09:30
opcode AArch64: Add SVE constraints verifier. 2018-10-03 18:49:37 +01:00
som Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
vms Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
COPYING
COPYING3
ChangeLog AArch64: Add SVE constraints verifier. 2018-10-03 18:49:37 +01:00
ChangeLog-0415 binutils ChangeLog rotation 2016-01-01 22:59:17 +10:30
ChangeLog-2016 ChangeLog rotation 2017-01-02 13:55:05 +10:30
ChangeLog-2017 ChangeLog rotation 2018-01-03 17:49:42 +10:30
ChangeLog-9103
MAINTAINERS Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
alloca-conf.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
ansidecl.h -Wstringop-truncation warnings 2018-05-04 18:58:23 +09:30
bfdlink.h LD: Export relative-from-absolute symbol marking to BFD 2018-07-17 20:04:53 +01:00
binary-io.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
bout.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
demangle.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
diagnostics.h Disable -Wformat-nonliteral in parts of printcmd.c 2018-09-05 21:47:33 -06:00
dis-asm.h Make print_insn_s12z public. 2018-10-03 10:43:02 +02:00
dwarf2.def include: Sync with GCC 2018-06-19 14:15:17 -04:00
dwarf2.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
dyn-string.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
environ.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
fibheap.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
filenames.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
floatformat.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
fnmatch.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
fopen-bin.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
fopen-same.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
fopen-vms.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
gcc-c-fe.def Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
gcc-c-interface.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
gcc-cp-fe.def Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
gcc-cp-interface.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
gcc-interface.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
getopt.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
hashtab.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
hp-symtab.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
leb128.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
libiberty.h Copy from GCC: Add linker_output as prefix for LTO temps (PR lto/86548). 2018-08-01 14:23:10 +01:00
longlong.h include: Sync with GCC 2018-06-19 14:15:17 -04:00
lto-symtab.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
md5.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
oasys.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
objalloc.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
obstack.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
os9k.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
partition.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
plugin-api.h New plugin interface to get list of symbols wrapped with --wrap option. 2018-02-22 13:56:46 -08:00
progress.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
safe-ctype.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
sha1.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
simple-object.h libiberty: Sync with GCC 2018-06-18 09:34:12 -04:00
sort.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
splay-tree.h include: 2018-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de> 2018-05-31 10:17:13 +01:00
symcat.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
timeval-utils.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
vtv-change-permission.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
xregex.h
xregex2.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
xtensa-config.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
xtensa-isa-internal.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
xtensa-isa.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30