]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit - gas/ChangeLog
PowerPC register expression checks
authorAlan Modra <amodra@gmail.com>
Tue, 14 Feb 2017 10:08:21 +0000 (20:38 +1030)
committerAlan Modra <amodra@gmail.com>
Tue, 14 Feb 2017 10:42:07 +0000 (21:12 +1030)
commit7e0de605cbacbbbb2531bb70506c0843aea13111
tree70e16baeeedac264df23c6d884e95743dcbc570f
parent606a935e3a9066ab11308b8c934c9bdec7f128d3
PowerPC register expression checks

This stops powerpc gas blithely accepting such nonsense as
"addi %f4,%cr3,%r31".

PR 21118
gas/
* NEWS: Mention powerpc register checks.
* config/tc-ppc.c (struct pd_reg): Make value a short.  Add flags.
(pre_defined_registers): Delete fpscr and pmr entries.  Set
register type in flags.
(cr_names): Set type in flags.
(reg_name_search): Return pointer to struct pd_reg rather than value.
(register_name): Adjust to suit.  Set X_md from flags.
(ppc_parse_name): Likewise.
(ppc_optimize_expr): New function.
(md_assemble): Verify expresion reg flags match operand.
* config/tc-ppc.h (md_optimize_expr): Define.
(ppc_optimize_expr): Declare.
include/
* opcode/ppc.h (PPC_OPERAND_*): Reassign values, regs first.
(PPC_OPERAND_SPR, PPC_OPERAND_GQR): Define.
opcodes/
* ppc-opc.c (powerpc_operands): Flag SPR, SPRG and TBR entries
with PPC_OPERAND_SPR.  Flag PSQ and PSQM with PPC_OPERAND_GQR.
gas/ChangeLog
gas/NEWS
gas/config/tc-ppc.c
gas/config/tc-ppc.h
include/ChangeLog
include/opcode/ppc.h
opcodes/ChangeLog
opcodes/ppc-opc.c