binutils-gdb/include
Alan Modra 9cf7e5687f Use operand->extract to provide defaults for optional PowerPC operands
Most optional operands to powerpc instructions use a default value of
zero, but there are a few exceptions.  Those have been handled by
PPC_OPERAND_OPTIONAL_VALUE and an entry in the powerpc_operands table
for the default value, smuggled in the shift field.  This patch
changes that to using the operand extract function to provide non-zero
defaults.

I've also moved the code determining whether optional operands are
provided or omitted, to the point the first optional operand is seen,
and allowed for the possibility of optional base register operands
in a future patch.

The patch does change the error you get on invalid assembly like

  ld 3,4

You'll now see "missing operand" rather than
"syntax error; end of line, expected `('".

gas/
	* config/tc-ppc.c (md_assemble): Delay counting of optional
	operands until one is encountered.  Allow for the possibility
	of optional base regs, ie. PPC_OPERAND_PARENS.  Call
	ppc_optional_operand_value with extra args.
include/
	* opcode/ppc.h (struct powerpc_operand): Correct "insert" comment.
	Mention use of "extract" function to provide default value.
	(PPC_OPERAND_OPTIONAL_VALUE): Delete.
	(ppc_optional_operand_value): Rewrite to use extract function.
opcodes/
	* ppc-dis.c (operand_value_powerpc): Init "invalid".
	(skip_optional_operands): Count optional operands, and update
	ppc_optional_operand_value call.
	* ppc-opc.c (extract_dxdn): Remove ATTRIBUTE_UNUSED from used arg.
	(extract_vlensi): Likewise.
	(extract_fxm): Return default value for missing optional operand.
	(extract_ls, extract_raq, extract_tbr): Likewise.
	(insert_sxl, extract_sxl): New functions.
	(insert_esync, extract_esync): Remove Power9 handling and simplify.
	(powerpc_operands <FXM4, TBR>): Delete PPC_OPERAND_OPTIONAL_VALUE
	flag and extra entry.
	(powerpc_operands <SXL>): Likewise, and use insert_sxl and
	extract_sxl.
2018-08-21 16:05:36 +09:30
..
aout
cgen
coff
elf arm - Add some comments about the versions of ARM ELF that define various e_flags values 2018-08-09 16:51:09 +01:00
gdb
mach-o
opcode Use operand->extract to provide defaults for optional PowerPC operands 2018-08-21 16:05:36 +09:30
som
vms
alloca-conf.h
ansidecl.h
bfdlink.h LD: Export relative-from-absolute symbol marking to BFD 2018-07-17 20:04:53 +01:00
binary-io.h
bout.h
ChangeLog Use operand->extract to provide defaults for optional PowerPC operands 2018-08-21 16:05:36 +09:30
ChangeLog-0415
ChangeLog-2016
ChangeLog-2017
ChangeLog-9103
COPYING
COPYING3
demangle.h
diagnostics.h Fix diagnostic errors 2018-07-06 15:18:59 +09:30
dis-asm.h Add support for the C_SKY series of processors. 2018-07-30 12:24:14 +01:00
dwarf2.def include: Sync with GCC 2018-06-19 14:15:17 -04:00
dwarf2.h
dyn-string.h
environ.h
fibheap.h
filenames.h
floatformat.h
fnmatch.h
fopen-bin.h
fopen-same.h
fopen-vms.h
gcc-c-fe.def
gcc-c-interface.h
gcc-cp-fe.def
gcc-cp-interface.h
gcc-interface.h
getopt.h
hashtab.h
hp-symtab.h
leb128.h
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
MAINTAINERS
md5.h
oasys.h
objalloc.h
obstack.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
os9k.h
partition.h
plugin-api.h
progress.h
safe-ctype.h
sha1.h
simple-object.h libiberty: Sync with GCC 2018-06-18 09:34:12 -04:00
sort.h
splay-tree.h
symcat.h
timeval-utils.h
vtv-change-permission.h
xregex2.h
xregex.h
xtensa-config.h
xtensa-isa-internal.h
xtensa-isa.h