]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
PowerPC Improve support for Gekko & Broadway
authorAlex Chadwick <Alex.Chadwick@cl.cam.ac.uk>
Mon, 23 Jul 2018 23:51:44 +0000 (09:21 +0930)
committerAlan Modra <amodra@gmail.com>
Thu, 26 Jul 2018 08:12:47 +0000 (17:42 +0930)
commitfa758a70467c37cfe7b261e1dc20d431be3db62e
treeb2bb47d4a9ab6da95fe2d55e8b9eb4bf9e889a09
parentb358827438360cb5d04fbc59d594583fb506ba65
PowerPC Improve support for Gekko & Broadway

This is a relatively straightforward patch to improve support for the
IBM Gekko and IBM Broadway processors.  Broadway is functionally
equivalent to the IBM 750CL, while Gekko's functionality is a subset
of theirs.  The patch simplifies this reality and adds -mgekko and
-mbroadway as aliases for -m750cl.  I didn't feel it was worth wasting
a PPC_OPCODE_* bit to differentiate Gekko.  The patch adds a number of
simplified mnemonics for special purpose register access.  Notably,
Broadway adds 4 additional IBAT and DBAT registers but these are not
assigned sequential SPR numbers.

gas/
* config/tc-ppc.c (md_show_usage): Add -mgekko and -mbroadway.
* doc/as.texi (Target PowerPC options): Add -mgekko and -mbroadway.
* doc/c-ppc.texi (PowerPC-Opts): Likewise.
* testsuite/gas/ppc/broadway.d,
* testsuite/gas/ppc/broadway.s: New test for broadway.
* testsuite/gas/ppc/ppc.exp: Run new test.
include/
* opcode/ppc.h (PPC_OPCODE_750): Adjust comment.
opcodes/
* ppc-dis.c (ppc_opts): Add -mgekko and -mbroadway.
(powerpc_init_dialect): Handle bfd_mach_ppc_750.
* ppc-opc.c (insert_sprbat, extract_sprbat): New functions to
support disjointed BAT.
(powerpc_operands): Allow extra bit in SPRBAT_MASK.  Add SPRGQR.
(XSPRGQR_MASK, GEKKO, BROADWAY): Define.
(powerpc_opcodes): Add 750cl extended mnemonics for spr access.
12 files changed:
gas/ChangeLog
gas/config/tc-ppc.c
gas/doc/as.texi
gas/doc/c-ppc.texi
gas/testsuite/gas/ppc/broadway.d [new file with mode: 0644]
gas/testsuite/gas/ppc/broadway.s [new file with mode: 0644]
gas/testsuite/gas/ppc/ppc.exp
include/ChangeLog
include/opcode/ppc.h
opcodes/ChangeLog
opcodes/ppc-dis.c
opcodes/ppc-opc.c