binutils-gdb/include/opcode
Tamar Christina 369c9167d4 Fix AArch64 encodings for by element instructions.
Some instructions in Armv8-a place a limitation on FP16 registers that can be
used as the register from which to select an element from.

e.g. fmla restricts Rm to 4 bits when using an FP16 register.  This restriction
does not apply for all instructions, e.g. fcmla does not have this restriction
as it gets an extra bit from the M field.

Unfortunately, this restriction to S_H was added for all _Em operands before,
meaning for a large number of instructions you couldn't use the full register
file.

This fixes the issue by introducing a new operand _Em16 which applies this
restriction only when paired with S_H and leaves the _Em and the other
qualifiers for _Em16 unbounded (i.e. using the full 5 bit range).

Also the patch updates all instructions that should be affected by this.

opcodes/

	PR binutils/23192
	* aarch64-asm-2.c: Regenerate.
	* aarch64-dis-2.c: Likewise.
	* aarch64-opc-2.c: Likewise.
	* aarch64-dis.c (aarch64_ext_reglane): Add AARCH64_OPND_Em16 constraint.
	* aarch64-opc.c (operand_general_constraint_met_p,
	aarch64_print_operand): Likewise.
	* aarch64-tbl.h (aarch64_opcode_table): Change Em to Em16 for smlal,
	smlal2, fmla, fmls, fmul, fmulx, sqrdmlah, sqrdlsh, fmlal, fmlsl,
	fmlal2, fmlsl2.
	(AARCH64_OPERANDS): Add Em2.

gas/

	PR binutils/23192
	* config/tc-aarch64.c (process_omitted_operand, parse_operands): Add
	AARCH64_OPND_Em16
	* testsuite/gas/aarch64/advsimd-armv8_3.s: Expand tests to cover upper
	16 registers.
	* testsuite/gas/aarch64/advsimd-armv8_3.d: Likewise.
	* testsuite/gas/aarch64/advsimd-compnum.s: Likewise.
	* testsuite/gas/aarch64/advsimd-compnum.d: Likewise.
	* testsuite/gas/aarch64/sve.d: Likewise.

include/

	PR binutils/23192
	*opcode/aarch64.h (aarch64_opnd): Add AARCH64_OPND_Em16.
2018-06-29 12:14:42 +01:00
..
ChangeLog-0415 binutils ChangeLog rotation 2016-01-01 22:59:17 +10:30
ChangeLog-9103 Add copyright notices 2012-12-10 12:48:03 +00:00
aarch64.h Fix AArch64 encodings for by element instructions. 2018-06-29 12:14:42 +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 Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
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
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
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 Global INValidate ASE support 2018-06-14 21:34:49 +01: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 Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
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 Remove fake operand handling for extended mnemonics. 2018-05-21 17:31:07 -05:00
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 missing hint instructions from RV128I. 2018-05-08 15:46:19 -07:00
riscv.h RISC-V: Add .insn support. 2018-03-14 16:04:03 -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
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