diff options
-rw-r--r-- | opcodes/ChangeLog | 7 | ||||
-rw-r--r-- | opcodes/cris-desc.c | 61 | ||||
-rw-r--r-- | opcodes/cris-desc.h | 13 | ||||
-rw-r--r-- | opcodes/cris-opc.h | 13 | ||||
-rw-r--r-- | opcodes/po/POTFILES.in | 3 |
5 files changed, 67 insertions, 30 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 263529e..fcb30c3 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,10 @@ +2021-05-25 Alan Modra <amodra@gmail.com> + + * cris-desc.c: Regenerate. + * cris-desc.h: Regenerate. + * cris-opc.h: Regenerate. + * po/POTFILES.in: Regenerate. + 2021-05-24 Mike Frysinger <vapier@gentoo.org> * Makefile.am (HFILES): Add cris-desc.h & cris-opc.h. diff --git a/opcodes/cris-desc.c b/opcodes/cris-desc.c index 78302e1..af81a9a 100644 --- a/opcodes/cris-desc.c +++ b/opcodes/cris-desc.c @@ -2,7 +2,7 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2021 Free Software Foundation, Inc. +Copyright (C) 1996-2021 Free Software Foundation, Inc. This file is part of the GNU Binutils and/or GDB, the GNU debugger. @@ -17,7 +17,8 @@ This file is part of the GNU Binutils and/or GDB, the GNU debugger. License for more details. You should have received a copy of the GNU General Public License along - with this program; if not, see <http://www.gnu.org/licenses/>. + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ @@ -2450,6 +2451,11 @@ init_tables (void) { } +#ifndef opcodes_error_handler +#define opcodes_error_handler(...) \ + fprintf (stderr, __VA_ARGS__); fputc ('\n', stderr) +#endif + static const CGEN_MACH * lookup_mach_via_bfd_name (const CGEN_MACH *, const char *); static void build_hw_table (CGEN_CPU_TABLE *); static void build_ifield_table (CGEN_CPU_TABLE *); @@ -2468,7 +2474,7 @@ lookup_mach_via_bfd_name (const CGEN_MACH *table, const char *name) return table; ++table; } - abort (); + return NULL; } /* Subroutine of cris_cgen_cpu_open to build the hardware table. */ @@ -2610,8 +2616,11 @@ cris_cgen_rebuild_tables (CGEN_CPU_TABLE *cd) { if (cd->insn_chunk_bitsize != 0 && cd->insn_chunk_bitsize != mach->insn_chunk_bitsize) { - fprintf (stderr, "cris_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'\n", - cd->insn_chunk_bitsize, mach->insn_chunk_bitsize); + opcodes_error_handler + (/* xgettext:c-format */ + _("internal error: cris_cgen_rebuild_tables: " + "conflicting insn-chunk-bitsize values: `%d' vs. `%d'"), + cd->insn_chunk_bitsize, mach->insn_chunk_bitsize); abort (); } @@ -2642,6 +2651,7 @@ cris_cgen_rebuild_tables (CGEN_CPU_TABLE *cd) CGEN_CPU_OPEN_MACHS: bitmap of values in enum mach_attr CGEN_CPU_OPEN_BFDMACH: specify 1 mach using bfd name CGEN_CPU_OPEN_ENDIAN: specify endian choice + CGEN_CPU_OPEN_INSN_ENDIAN: specify instruction endian choice CGEN_CPU_OPEN_END: terminates arguments ??? Simultaneous multiple isas might not make sense, but it's not (yet) @@ -2655,6 +2665,7 @@ cris_cgen_cpu_open (enum cgen_cpu_open_arg arg_type, ...) CGEN_BITSET *isas = 0; /* 0 = "unspecified" */ unsigned int machs = 0; /* 0 = "unspecified" */ enum cgen_endian endian = CGEN_ENDIAN_UNKNOWN; + enum cgen_endian insn_endian = CGEN_ENDIAN_UNKNOWN; va_list ap; if (! init_p) @@ -2682,15 +2693,22 @@ cris_cgen_cpu_open (enum cgen_cpu_open_arg arg_type, ...) const CGEN_MACH *mach = lookup_mach_via_bfd_name (cris_cgen_mach_table, name); - machs |= 1 << mach->num; + if (mach != NULL) + machs |= 1 << mach->num; break; } case CGEN_CPU_OPEN_ENDIAN : endian = va_arg (ap, enum cgen_endian); break; + case CGEN_CPU_OPEN_INSN_ENDIAN : + insn_endian = va_arg (ap, enum cgen_endian); + break; default : - fprintf (stderr, "cris_cgen_cpu_open: unsupported argument `%d'\n", - arg_type); + opcodes_error_handler + (/* xgettext:c-format */ + _("internal error: cris_cgen_cpu_open: " + "unsupported argument `%d'"), + arg_type); abort (); /* ??? return NULL? */ } arg_type = va_arg (ap, enum cgen_cpu_open_arg); @@ -2705,18 +2723,17 @@ cris_cgen_cpu_open (enum cgen_cpu_open_arg arg_type, ...) if (endian == CGEN_ENDIAN_UNKNOWN) { /* ??? If target has only one, could have a default. */ - fprintf (stderr, "cris_cgen_cpu_open: no endianness specified\n"); + opcodes_error_handler + (/* xgettext:c-format */ + _("internal error: cris_cgen_cpu_open: no endianness specified")); abort (); } cd->isas = cgen_bitset_copy (isas); cd->machs = machs; cd->endian = endian; - /* FIXME: for the sparc case we can determine insn-endianness statically. - The worry here is where both data and insn endian can be independently - chosen, in which case this function will need another argument. - Actually, will want to allow for more arguments in the future anyway. */ - cd->insn_endian = endian; + cd->insn_endian + = (insn_endian == CGEN_ENDIAN_UNKNOWN ? endian : insn_endian); /* Table (re)builder. */ cd->rebuild_tables = cris_cgen_rebuild_tables; @@ -2766,18 +2783,10 @@ cris_cgen_cpu_close (CGEN_CPU_DESC cd) regfree (CGEN_INSN_RX (insns)); } - if (cd->macro_insn_table.init_entries) - free ((CGEN_INSN *) cd->macro_insn_table.init_entries); - - if (cd->insn_table.init_entries) - free ((CGEN_INSN *) cd->insn_table.init_entries); - - if (cd->hw_table.entries) - free ((CGEN_HW_ENTRY *) cd->hw_table.entries); - - if (cd->operand_table.entries) - free ((CGEN_HW_ENTRY *) cd->operand_table.entries); - + free ((CGEN_INSN *) cd->macro_insn_table.init_entries); + free ((CGEN_INSN *) cd->insn_table.init_entries); + free ((CGEN_HW_ENTRY *) cd->hw_table.entries); + free ((CGEN_HW_ENTRY *) cd->operand_table.entries); free (cd); } diff --git a/opcodes/cris-desc.h b/opcodes/cris-desc.h index 0a75b24..2b608ed 100644 --- a/opcodes/cris-desc.h +++ b/opcodes/cris-desc.h @@ -2,7 +2,7 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2021 Free Software Foundation, Inc. +Copyright (C) 1996-2021 Free Software Foundation, Inc. This file is part of the GNU Binutils and/or GDB, the GNU debugger. @@ -17,13 +17,18 @@ This file is part of the GNU Binutils and/or GDB, the GNU debugger. License for more details. You should have received a copy of the GNU General Public License along - with this program; if not, see <http://www.gnu.org/licenses/>. + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef CRIS_CPU_H #define CRIS_CPU_H +#ifdef __cplusplus +extern "C" { +#endif + #define CGEN_ARCH cris /* Given symbol S, return cris_cgen_<S>. */ @@ -387,4 +392,8 @@ extern const CGEN_HW_ENTRY cris_cgen_hw_table[]; + #ifdef __cplusplus + } + #endif + #endif /* CRIS_CPU_H */ diff --git a/opcodes/cris-opc.h b/opcodes/cris-opc.h index 4e297a6..d7ed8dc 100644 --- a/opcodes/cris-opc.h +++ b/opcodes/cris-opc.h @@ -2,7 +2,7 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2021 Free Software Foundation, Inc. +Copyright (C) 1996-2021 Free Software Foundation, Inc. This file is part of the GNU Binutils and/or GDB, the GNU debugger. @@ -17,13 +17,18 @@ This file is part of the GNU Binutils and/or GDB, the GNU debugger. License for more details. You should have received a copy of the GNU General Public License along - with this program; if not, see <http://www.gnu.org/licenses/>. + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef CRIS_OPC_H #define CRIS_OPC_H +#ifdef __cplusplus +extern "C" { +#endif + /* Enum declaration for cris instruction types. */ typedef enum cgen_insn_type { CRIS_INSN_INVALID, CRIS_INSN_NOP, CRIS_INSN_MOVE_B_R, CRIS_INSN_MOVE_W_R @@ -151,4 +156,8 @@ struct cgen_fields } + #ifdef __cplusplus + } + #endif + #endif /* CRIS_OPC_H */ diff --git a/opcodes/po/POTFILES.in b/opcodes/po/POTFILES.in index 7572204..0659b99 100644 --- a/opcodes/po/POTFILES.in +++ b/opcodes/po/POTFILES.in @@ -30,8 +30,11 @@ cgen-dis.c cgen-opc.c cr16-dis.c cr16-opc.c +cris-desc.c +cris-desc.h cris-dis.c cris-opc.c +cris-opc.h crx-dis.c crx-opc.c csky-dis.c |