binutils-gdb/include
Peter Bergner 11a0cf2ec0 Allow for optional operands with non-zero default values.
ISA 2.07 (ie, POWER8) added the rfebb instruction which takes one operand
with the value of either a 0 or 1.  It also defines an extended mnemonic
with no operands (ie, "rfebb") that is supposed to be equivalent to "rfebb 1".
I implemented rfebb's lone operand with PPC_OPERAND_OPTIONAL, but the
problem is, optional operands that are ommitted always default to the
value 0, which is wrong in this case.  I have added support for allowing
non-zero default values by adding an additional flag PPC_OPERAND_OPTIONAL_VALUE
that specifies that the default operand value to be used is stored in the
SHIFT field of the operand field immediately following this one.

This fixes the rfebb issue.  I also fixed the mftb and mfcr instructions
so they use the same mechanism.  This allows us to flag invalid uses of
mfcr where we explicitly pass in a zero FXM value, like the use in a2.[sd].

include/opcode/

	* ppc.h (PPC_OPERAND_OPTIONAL_VALUE): New.
	(ppc_optional_operand_value): New inline function.

opcodes/
	* ppc-dis.h (skip_optional_operands): Use ppc_optional_operand_value.
	* ppc-opc.c (FXM4): Add non-zero optional value.
	(TBR): Likewise.
	(SXL): Likewise.
	(insert_fxm): Handle new default operand value.
	(extract_fxm): Likewise.
	(insert_tbr): Likewise.
	(extract_tbr): Likewise.

gas/
	* config/tc-ppc.c (md_assemble): Use ppc_optional_operand_value.
	Allow for optional operands without insert functions.

gas/testsuite/
	* gas/ppc/power8.d: Fixup rfebb test results.
	* gas/ppc/a2.s: Fix invalid mfcr test.
	* gas/ppc/a2.d: Likewise.
2015-06-19 17:17:07 -05:00
..
aout
cgen
coff
elf Recognize GNU_ABI_TAG_SYLLABLE and GNU_ABI_TAG_NACL. 2015-05-29 09:13:53 -07:00
gdb sim: callback: add human readable strings for debugging to maps 2015-06-17 13:19:51 -04:00
mach-o
nlm
opcode Allow for optional operands with non-zero default values. 2015-06-19 17:17:07 -05:00
som
vms
alloca-conf.h
ansidecl.h
bfdlink.h Compact EH Support 2015-05-28 15:21:17 -07:00
binary-io.h
bout.h
ChangeLog Compact EH Support 2015-05-28 15:21:17 -07:00
ChangeLog-9103
COPYING
COPYING3
demangle.h
dis-asm.h Make RL78 disassembler and simulator respect ISA for mul/div 2015-04-30 15:25:49 -04:00
dwarf2.def GCC5/DWARFv5 Handle DW_TAG_atomic_type for C11 _Atomic type qualifier. 2015-02-09 15:09:22 +01:00
dwarf2.h Recognize new DWARF5/GCC5 DW_LANG constants for Fortran 03 and Fortran 08. 2015-02-10 09:07:25 +01:00
dyn-string.h
fibheap.h
filenames.h Sync filenames.h with gcc 2015-05-01 09:11:15 -07:00
floatformat.h floatformat.h: Wrap in extern "C" 2015-02-19 22:44:44 +00:00
fnmatch.h
fopen-bin.h
fopen-same.h
fopen-vms.h
gcc-c-fe.def
gcc-c-interface.h
gcc-interface.h
getopt.h
hashtab.h
hp-symtab.h
ieee.h
leb128.h
libiberty.h
longlong.h
lto-symtab.h
MAINTAINERS
md5.h
oasys.h
objalloc.h
obstack.h
os9k.h
partition.h Merge include/partition.h from GCC. 2015-04-17 16:13:43 +01:00
plugin-api.h
progress.h
safe-ctype.h
sha1.h
simple-object.h
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