X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=opcodes%2Fm32c-desc.c;h=ee37d9c0562f2848375d840f53caff88198af160;hb=83bec4829b6ed5819b0a7b951bc172e7461fb1f4;hp=c501b2ad513f632b047c3a36494897e0f4fba9ca;hpb=f75eb1c00406df9d115a49dcf36c28dfef1478a6;p=binutils-gdb.git diff --git a/opcodes/m32c-desc.c b/opcodes/m32c-desc.c index c501b2ad513..ee37d9c0562 100644 --- a/opcodes/m32c-desc.c +++ b/opcodes/m32c-desc.c @@ -1,30 +1,32 @@ +/* DO NOT EDIT! -*- buffer-read-only: t -*- vi:set ro: */ /* CPU data for m32c. THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright (C) 1996-2022 Free Software Foundation, Inc. This file is part of the GNU Binutils and/or GDB, the GNU debugger. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include "sysdep.h" #include #include +#include #include "ansidecl.h" #include "bfd.h" #include "symcat.h" @@ -60,10 +62,20 @@ static const CGEN_ATTR_ENTRY ISA_attr[] ATTRIBUTE_UNUSED = { 0, 0 } }; +static const CGEN_ATTR_ENTRY RL_TYPE_attr[] ATTRIBUTE_UNUSED = +{ + { "NONE", RL_TYPE_NONE }, + { "JUMP", RL_TYPE_JUMP }, + { "1ADDR", RL_TYPE_1ADDR }, + { "2ADDR", RL_TYPE_2ADDR }, + { 0, 0 } +}; + const CGEN_ATTR_TABLE m32c_cgen_ifield_attr_table[] = { { "MACH", & MACH_attr[0], & MACH_attr[0] }, { "ISA", & ISA_attr[0], & ISA_attr[0] }, + { "RL_TYPE", & RL_TYPE_attr[0], & RL_TYPE_attr[0] }, { "VIRTUAL", &bool_attr[0], &bool_attr[0] }, { "PCREL-ADDR", &bool_attr[0], &bool_attr[0] }, { "ABS-ADDR", &bool_attr[0], &bool_attr[0] }, @@ -77,6 +89,7 @@ const CGEN_ATTR_TABLE m32c_cgen_hardware_attr_table[] = { { "MACH", & MACH_attr[0], & MACH_attr[0] }, { "ISA", & ISA_attr[0], & ISA_attr[0] }, + { "RL_TYPE", & RL_TYPE_attr[0], & RL_TYPE_attr[0] }, { "VIRTUAL", &bool_attr[0], &bool_attr[0] }, { "CACHE-ADDR", &bool_attr[0], &bool_attr[0] }, { "PC", &bool_attr[0], &bool_attr[0] }, @@ -88,6 +101,7 @@ const CGEN_ATTR_TABLE m32c_cgen_operand_attr_table[] = { { "MACH", & MACH_attr[0], & MACH_attr[0] }, { "ISA", & ISA_attr[0], & ISA_attr[0] }, + { "RL_TYPE", & RL_TYPE_attr[0], & RL_TYPE_attr[0] }, { "VIRTUAL", &bool_attr[0], &bool_attr[0] }, { "PCREL-ADDR", &bool_attr[0], &bool_attr[0] }, { "ABS-ADDR", &bool_attr[0], &bool_attr[0] }, @@ -103,6 +117,7 @@ const CGEN_ATTR_TABLE m32c_cgen_insn_attr_table[] = { { "MACH", & MACH_attr[0], & MACH_attr[0] }, { "ISA", & ISA_attr[0], & ISA_attr[0] }, + { "RL_TYPE", & RL_TYPE_attr[0], & RL_TYPE_attr[0] }, { "ALIAS", &bool_attr[0], &bool_attr[0] }, { "VIRTUAL", &bool_attr[0], &bool_attr[0] }, { "UNCOND-CTI", &bool_attr[0], &bool_attr[0] }, @@ -134,10 +149,10 @@ static const CGEN_MACH m32c_cgen_mach_table[] = { static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_gr_entries[] = { - { "r0", 0, {0, {0}}, 0, 0 }, - { "r1", 1, {0, {0}}, 0, 0 }, - { "r2", 2, {0, {0}}, 0, 0 }, - { "r3", 3, {0, {0}}, 0, 0 } + { "r0", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "r1", 1, {0, {{{0, 0}}}}, 0, 0 }, + { "r2", 2, {0, {{{0, 0}}}}, 0, 0 }, + { "r3", 3, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_gr = @@ -149,10 +164,10 @@ CGEN_KEYWORD m32c_cgen_opval_h_gr = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_gr_QI_entries[] = { - { "r0l", 0, {0, {0}}, 0, 0 }, - { "r0h", 1, {0, {0}}, 0, 0 }, - { "r1l", 2, {0, {0}}, 0, 0 }, - { "r1h", 3, {0, {0}}, 0, 0 } + { "r0l", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "r0h", 1, {0, {{{0, 0}}}}, 0, 0 }, + { "r1l", 2, {0, {{{0, 0}}}}, 0, 0 }, + { "r1h", 3, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_gr_QI = @@ -164,10 +179,10 @@ CGEN_KEYWORD m32c_cgen_opval_h_gr_QI = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_gr_HI_entries[] = { - { "r0", 0, {0, {0}}, 0, 0 }, - { "r1", 1, {0, {0}}, 0, 0 }, - { "r2", 2, {0, {0}}, 0, 0 }, - { "r3", 3, {0, {0}}, 0, 0 } + { "r0", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "r1", 1, {0, {{{0, 0}}}}, 0, 0 }, + { "r2", 2, {0, {{{0, 0}}}}, 0, 0 }, + { "r3", 3, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_gr_HI = @@ -179,8 +194,8 @@ CGEN_KEYWORD m32c_cgen_opval_h_gr_HI = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_gr_SI_entries[] = { - { "r2r0", 0, {0, {0}}, 0, 0 }, - { "r3r1", 1, {0, {0}}, 0, 0 } + { "r2r0", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "r3r1", 1, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_gr_SI = @@ -192,8 +207,8 @@ CGEN_KEYWORD m32c_cgen_opval_h_gr_SI = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_gr_ext_QI_entries[] = { - { "r0l", 0, {0, {0}}, 0, 0 }, - { "r1l", 1, {0, {0}}, 0, 0 } + { "r0l", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "r1l", 1, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_gr_ext_QI = @@ -205,8 +220,8 @@ CGEN_KEYWORD m32c_cgen_opval_h_gr_ext_QI = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_gr_ext_HI_entries[] = { - { "r0", 0, {0, {0}}, 0, 0 }, - { "r1", 1, {0, {0}}, 0, 0 } + { "r0", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "r1", 1, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_gr_ext_HI = @@ -218,7 +233,7 @@ CGEN_KEYWORD m32c_cgen_opval_h_gr_ext_HI = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_r0l_entries[] = { - { "r0l", 0, {0, {0}}, 0, 0 } + { "r0l", 0, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_r0l = @@ -230,7 +245,7 @@ CGEN_KEYWORD m32c_cgen_opval_h_r0l = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_r0h_entries[] = { - { "r0h", 0, {0, {0}}, 0, 0 } + { "r0h", 0, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_r0h = @@ -242,7 +257,7 @@ CGEN_KEYWORD m32c_cgen_opval_h_r0h = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_r1l_entries[] = { - { "r1l", 0, {0, {0}}, 0, 0 } + { "r1l", 0, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_r1l = @@ -254,7 +269,7 @@ CGEN_KEYWORD m32c_cgen_opval_h_r1l = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_r1h_entries[] = { - { "r1h", 0, {0, {0}}, 0, 0 } + { "r1h", 0, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_r1h = @@ -266,7 +281,7 @@ CGEN_KEYWORD m32c_cgen_opval_h_r1h = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_r0_entries[] = { - { "r0", 0, {0, {0}}, 0, 0 } + { "r0", 0, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_r0 = @@ -278,7 +293,7 @@ CGEN_KEYWORD m32c_cgen_opval_h_r0 = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_r1_entries[] = { - { "r1", 0, {0, {0}}, 0, 0 } + { "r1", 0, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_r1 = @@ -290,7 +305,7 @@ CGEN_KEYWORD m32c_cgen_opval_h_r1 = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_r2_entries[] = { - { "r2", 0, {0, {0}}, 0, 0 } + { "r2", 0, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_r2 = @@ -302,7 +317,7 @@ CGEN_KEYWORD m32c_cgen_opval_h_r2 = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_r3_entries[] = { - { "r3", 0, {0, {0}}, 0, 0 } + { "r3", 0, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_r3 = @@ -314,8 +329,8 @@ CGEN_KEYWORD m32c_cgen_opval_h_r3 = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_r0l_r0h_entries[] = { - { "r0l", 0, {0, {0}}, 0, 0 }, - { "r0h", 1, {0, {0}}, 0, 0 } + { "r0l", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "r0h", 1, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_r0l_r0h = @@ -327,7 +342,7 @@ CGEN_KEYWORD m32c_cgen_opval_h_r0l_r0h = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_r2r0_entries[] = { - { "r2r0", 0, {0, {0}}, 0, 0 } + { "r2r0", 0, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_r2r0 = @@ -339,7 +354,7 @@ CGEN_KEYWORD m32c_cgen_opval_h_r2r0 = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_r3r1_entries[] = { - { "r3r1", 0, {0, {0}}, 0, 0 } + { "r3r1", 0, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_r3r1 = @@ -351,7 +366,7 @@ CGEN_KEYWORD m32c_cgen_opval_h_r3r1 = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_r1r2r0_entries[] = { - { "r1r2r0", 0, {0, {0}}, 0, 0 } + { "r1r2r0", 0, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_r1r2r0 = @@ -363,8 +378,8 @@ CGEN_KEYWORD m32c_cgen_opval_h_r1r2r0 = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_ar_entries[] = { - { "a0", 0, {0, {0}}, 0, 0 }, - { "a1", 1, {0, {0}}, 0, 0 } + { "a0", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "a1", 1, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_ar = @@ -376,8 +391,8 @@ CGEN_KEYWORD m32c_cgen_opval_h_ar = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_ar_QI_entries[] = { - { "a0", 0, {0, {0}}, 0, 0 }, - { "a1", 1, {0, {0}}, 0, 0 } + { "a0", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "a1", 1, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_ar_QI = @@ -389,8 +404,8 @@ CGEN_KEYWORD m32c_cgen_opval_h_ar_QI = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_ar_HI_entries[] = { - { "a0", 0, {0, {0}}, 0, 0 }, - { "a1", 1, {0, {0}}, 0, 0 } + { "a0", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "a1", 1, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_ar_HI = @@ -402,7 +417,7 @@ CGEN_KEYWORD m32c_cgen_opval_h_ar_HI = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_ar_SI_entries[] = { - { "a1a0", 0, {0, {0}}, 0, 0 } + { "a1a0", 0, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_ar_SI = @@ -414,7 +429,7 @@ CGEN_KEYWORD m32c_cgen_opval_h_ar_SI = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_a0_entries[] = { - { "a0", 0, {0, {0}}, 0, 0 } + { "a0", 0, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_a0 = @@ -426,7 +441,7 @@ CGEN_KEYWORD m32c_cgen_opval_h_a0 = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_a1_entries[] = { - { "a1", 1, {0, {0}}, 0, 0 } + { "a1", 1, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_a1 = @@ -438,24 +453,24 @@ CGEN_KEYWORD m32c_cgen_opval_h_a1 = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_cond16_entries[] = { - { "geu", 0, {0, {0}}, 0, 0 }, - { "c", 0, {0, {0}}, 0, 0 }, - { "gtu", 1, {0, {0}}, 0, 0 }, - { "eq", 2, {0, {0}}, 0, 0 }, - { "z", 2, {0, {0}}, 0, 0 }, - { "n", 3, {0, {0}}, 0, 0 }, - { "le", 4, {0, {0}}, 0, 0 }, - { "o", 5, {0, {0}}, 0, 0 }, - { "ge", 6, {0, {0}}, 0, 0 }, - { "ltu", 248, {0, {0}}, 0, 0 }, - { "nc", 248, {0, {0}}, 0, 0 }, - { "leu", 249, {0, {0}}, 0, 0 }, - { "ne", 250, {0, {0}}, 0, 0 }, - { "nz", 250, {0, {0}}, 0, 0 }, - { "pz", 251, {0, {0}}, 0, 0 }, - { "gt", 252, {0, {0}}, 0, 0 }, - { "no", 253, {0, {0}}, 0, 0 }, - { "lt", 254, {0, {0}}, 0, 0 } + { "geu", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "c", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "gtu", 1, {0, {{{0, 0}}}}, 0, 0 }, + { "eq", 2, {0, {{{0, 0}}}}, 0, 0 }, + { "z", 2, {0, {{{0, 0}}}}, 0, 0 }, + { "n", 3, {0, {{{0, 0}}}}, 0, 0 }, + { "le", 4, {0, {{{0, 0}}}}, 0, 0 }, + { "o", 5, {0, {{{0, 0}}}}, 0, 0 }, + { "ge", 6, {0, {{{0, 0}}}}, 0, 0 }, + { "ltu", 248, {0, {{{0, 0}}}}, 0, 0 }, + { "nc", 248, {0, {{{0, 0}}}}, 0, 0 }, + { "leu", 249, {0, {{{0, 0}}}}, 0, 0 }, + { "ne", 250, {0, {{{0, 0}}}}, 0, 0 }, + { "nz", 250, {0, {{{0, 0}}}}, 0, 0 }, + { "pz", 251, {0, {{{0, 0}}}}, 0, 0 }, + { "gt", 252, {0, {{{0, 0}}}}, 0, 0 }, + { "no", 253, {0, {{{0, 0}}}}, 0, 0 }, + { "lt", 254, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_cond16 = @@ -467,24 +482,24 @@ CGEN_KEYWORD m32c_cgen_opval_h_cond16 = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_cond16c_entries[] = { - { "geu", 0, {0, {0}}, 0, 0 }, - { "c", 0, {0, {0}}, 0, 0 }, - { "gtu", 1, {0, {0}}, 0, 0 }, - { "eq", 2, {0, {0}}, 0, 0 }, - { "z", 2, {0, {0}}, 0, 0 }, - { "n", 3, {0, {0}}, 0, 0 }, - { "ltu", 4, {0, {0}}, 0, 0 }, - { "nc", 4, {0, {0}}, 0, 0 }, - { "leu", 5, {0, {0}}, 0, 0 }, - { "ne", 6, {0, {0}}, 0, 0 }, - { "nz", 6, {0, {0}}, 0, 0 }, - { "pz", 7, {0, {0}}, 0, 0 }, - { "le", 8, {0, {0}}, 0, 0 }, - { "o", 9, {0, {0}}, 0, 0 }, - { "ge", 10, {0, {0}}, 0, 0 }, - { "gt", 12, {0, {0}}, 0, 0 }, - { "no", 13, {0, {0}}, 0, 0 }, - { "lt", 14, {0, {0}}, 0, 0 } + { "geu", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "c", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "gtu", 1, {0, {{{0, 0}}}}, 0, 0 }, + { "eq", 2, {0, {{{0, 0}}}}, 0, 0 }, + { "z", 2, {0, {{{0, 0}}}}, 0, 0 }, + { "n", 3, {0, {{{0, 0}}}}, 0, 0 }, + { "ltu", 4, {0, {{{0, 0}}}}, 0, 0 }, + { "nc", 4, {0, {{{0, 0}}}}, 0, 0 }, + { "leu", 5, {0, {{{0, 0}}}}, 0, 0 }, + { "ne", 6, {0, {{{0, 0}}}}, 0, 0 }, + { "nz", 6, {0, {{{0, 0}}}}, 0, 0 }, + { "pz", 7, {0, {{{0, 0}}}}, 0, 0 }, + { "le", 8, {0, {{{0, 0}}}}, 0, 0 }, + { "o", 9, {0, {{{0, 0}}}}, 0, 0 }, + { "ge", 10, {0, {{{0, 0}}}}, 0, 0 }, + { "gt", 12, {0, {{{0, 0}}}}, 0, 0 }, + { "no", 13, {0, {{{0, 0}}}}, 0, 0 }, + { "lt", 14, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_cond16c = @@ -496,12 +511,12 @@ CGEN_KEYWORD m32c_cgen_opval_h_cond16c = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_cond16j_entries[] = { - { "le", 8, {0, {0}}, 0, 0 }, - { "o", 9, {0, {0}}, 0, 0 }, - { "ge", 10, {0, {0}}, 0, 0 }, - { "gt", 12, {0, {0}}, 0, 0 }, - { "no", 13, {0, {0}}, 0, 0 }, - { "lt", 14, {0, {0}}, 0, 0 } + { "le", 8, {0, {{{0, 0}}}}, 0, 0 }, + { "o", 9, {0, {{{0, 0}}}}, 0, 0 }, + { "ge", 10, {0, {{{0, 0}}}}, 0, 0 }, + { "gt", 12, {0, {{{0, 0}}}}, 0, 0 }, + { "no", 13, {0, {{{0, 0}}}}, 0, 0 }, + { "lt", 14, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_cond16j = @@ -513,18 +528,18 @@ CGEN_KEYWORD m32c_cgen_opval_h_cond16j = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_cond16j_5_entries[] = { - { "geu", 0, {0, {0}}, 0, 0 }, - { "c", 0, {0, {0}}, 0, 0 }, - { "gtu", 1, {0, {0}}, 0, 0 }, - { "eq", 2, {0, {0}}, 0, 0 }, - { "z", 2, {0, {0}}, 0, 0 }, - { "n", 3, {0, {0}}, 0, 0 }, - { "ltu", 4, {0, {0}}, 0, 0 }, - { "nc", 4, {0, {0}}, 0, 0 }, - { "leu", 5, {0, {0}}, 0, 0 }, - { "ne", 6, {0, {0}}, 0, 0 }, - { "nz", 6, {0, {0}}, 0, 0 }, - { "pz", 7, {0, {0}}, 0, 0 } + { "geu", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "c", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "gtu", 1, {0, {{{0, 0}}}}, 0, 0 }, + { "eq", 2, {0, {{{0, 0}}}}, 0, 0 }, + { "z", 2, {0, {{{0, 0}}}}, 0, 0 }, + { "n", 3, {0, {{{0, 0}}}}, 0, 0 }, + { "ltu", 4, {0, {{{0, 0}}}}, 0, 0 }, + { "nc", 4, {0, {{{0, 0}}}}, 0, 0 }, + { "leu", 5, {0, {{{0, 0}}}}, 0, 0 }, + { "ne", 6, {0, {{{0, 0}}}}, 0, 0 }, + { "nz", 6, {0, {{{0, 0}}}}, 0, 0 }, + { "pz", 7, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_cond16j_5 = @@ -536,24 +551,24 @@ CGEN_KEYWORD m32c_cgen_opval_h_cond16j_5 = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_cond32_entries[] = { - { "ltu", 0, {0, {0}}, 0, 0 }, - { "nc", 0, {0, {0}}, 0, 0 }, - { "leu", 1, {0, {0}}, 0, 0 }, - { "ne", 2, {0, {0}}, 0, 0 }, - { "nz", 2, {0, {0}}, 0, 0 }, - { "pz", 3, {0, {0}}, 0, 0 }, - { "no", 4, {0, {0}}, 0, 0 }, - { "gt", 5, {0, {0}}, 0, 0 }, - { "ge", 6, {0, {0}}, 0, 0 }, - { "geu", 8, {0, {0}}, 0, 0 }, - { "c", 8, {0, {0}}, 0, 0 }, - { "gtu", 9, {0, {0}}, 0, 0 }, - { "eq", 10, {0, {0}}, 0, 0 }, - { "z", 10, {0, {0}}, 0, 0 }, - { "n", 11, {0, {0}}, 0, 0 }, - { "o", 12, {0, {0}}, 0, 0 }, - { "le", 13, {0, {0}}, 0, 0 }, - { "lt", 14, {0, {0}}, 0, 0 } + { "ltu", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "nc", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "leu", 1, {0, {{{0, 0}}}}, 0, 0 }, + { "ne", 2, {0, {{{0, 0}}}}, 0, 0 }, + { "nz", 2, {0, {{{0, 0}}}}, 0, 0 }, + { "pz", 3, {0, {{{0, 0}}}}, 0, 0 }, + { "no", 4, {0, {{{0, 0}}}}, 0, 0 }, + { "gt", 5, {0, {{{0, 0}}}}, 0, 0 }, + { "ge", 6, {0, {{{0, 0}}}}, 0, 0 }, + { "geu", 8, {0, {{{0, 0}}}}, 0, 0 }, + { "c", 8, {0, {{{0, 0}}}}, 0, 0 }, + { "gtu", 9, {0, {{{0, 0}}}}, 0, 0 }, + { "eq", 10, {0, {{{0, 0}}}}, 0, 0 }, + { "z", 10, {0, {{{0, 0}}}}, 0, 0 }, + { "n", 11, {0, {{{0, 0}}}}, 0, 0 }, + { "o", 12, {0, {{{0, 0}}}}, 0, 0 }, + { "le", 13, {0, {{{0, 0}}}}, 0, 0 }, + { "lt", 14, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_cond32 = @@ -565,14 +580,14 @@ CGEN_KEYWORD m32c_cgen_opval_h_cond32 = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_cr1_32_entries[] = { - { "dct0", 0, {0, {0}}, 0, 0 }, - { "dct1", 1, {0, {0}}, 0, 0 }, - { "flg", 2, {0, {0}}, 0, 0 }, - { "svf", 3, {0, {0}}, 0, 0 }, - { "drc0", 4, {0, {0}}, 0, 0 }, - { "drc1", 5, {0, {0}}, 0, 0 }, - { "dmd0", 6, {0, {0}}, 0, 0 }, - { "dmd1", 7, {0, {0}}, 0, 0 } + { "dct0", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "dct1", 1, {0, {{{0, 0}}}}, 0, 0 }, + { "flg", 2, {0, {{{0, 0}}}}, 0, 0 }, + { "svf", 3, {0, {{{0, 0}}}}, 0, 0 }, + { "drc0", 4, {0, {{{0, 0}}}}, 0, 0 }, + { "drc1", 5, {0, {{{0, 0}}}}, 0, 0 }, + { "dmd0", 6, {0, {{{0, 0}}}}, 0, 0 }, + { "dmd1", 7, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_cr1_32 = @@ -584,13 +599,13 @@ CGEN_KEYWORD m32c_cgen_opval_h_cr1_32 = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_cr2_32_entries[] = { - { "intb", 0, {0, {0}}, 0, 0 }, - { "sp", 1, {0, {0}}, 0, 0 }, - { "sb", 2, {0, {0}}, 0, 0 }, - { "fb", 3, {0, {0}}, 0, 0 }, - { "svp", 4, {0, {0}}, 0, 0 }, - { "vct", 5, {0, {0}}, 0, 0 }, - { "isp", 7, {0, {0}}, 0, 0 } + { "intb", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "sp", 1, {0, {{{0, 0}}}}, 0, 0 }, + { "sb", 2, {0, {{{0, 0}}}}, 0, 0 }, + { "fb", 3, {0, {{{0, 0}}}}, 0, 0 }, + { "svp", 4, {0, {{{0, 0}}}}, 0, 0 }, + { "vct", 5, {0, {{{0, 0}}}}, 0, 0 }, + { "isp", 7, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_cr2_32 = @@ -602,12 +617,12 @@ CGEN_KEYWORD m32c_cgen_opval_h_cr2_32 = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_cr3_32_entries[] = { - { "dma0", 2, {0, {0}}, 0, 0 }, - { "dma1", 3, {0, {0}}, 0, 0 }, - { "dra0", 4, {0, {0}}, 0, 0 }, - { "dra1", 5, {0, {0}}, 0, 0 }, - { "dsa0", 6, {0, {0}}, 0, 0 }, - { "dsa1", 7, {0, {0}}, 0, 0 } + { "dma0", 2, {0, {{{0, 0}}}}, 0, 0 }, + { "dma1", 3, {0, {{{0, 0}}}}, 0, 0 }, + { "dra0", 4, {0, {{{0, 0}}}}, 0, 0 }, + { "dra1", 5, {0, {{{0, 0}}}}, 0, 0 }, + { "dsa0", 6, {0, {{{0, 0}}}}, 0, 0 }, + { "dsa1", 7, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_cr3_32 = @@ -619,13 +634,13 @@ CGEN_KEYWORD m32c_cgen_opval_h_cr3_32 = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_cr_16_entries[] = { - { "intbl", 1, {0, {0}}, 0, 0 }, - { "intbh", 2, {0, {0}}, 0, 0 }, - { "flg", 3, {0, {0}}, 0, 0 }, - { "isp", 4, {0, {0}}, 0, 0 }, - { "sp", 5, {0, {0}}, 0, 0 }, - { "sb", 6, {0, {0}}, 0, 0 }, - { "fb", 7, {0, {0}}, 0, 0 } + { "intbl", 1, {0, {{{0, 0}}}}, 0, 0 }, + { "intbh", 2, {0, {{{0, 0}}}}, 0, 0 }, + { "flg", 3, {0, {{{0, 0}}}}, 0, 0 }, + { "isp", 4, {0, {{{0, 0}}}}, 0, 0 }, + { "sp", 5, {0, {{{0, 0}}}}, 0, 0 }, + { "sb", 6, {0, {{{0, 0}}}}, 0, 0 }, + { "fb", 7, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_cr_16 = @@ -637,14 +652,14 @@ CGEN_KEYWORD m32c_cgen_opval_h_cr_16 = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_flags_entries[] = { - { "c", 0, {0, {0}}, 0, 0 }, - { "d", 1, {0, {0}}, 0, 0 }, - { "z", 2, {0, {0}}, 0, 0 }, - { "s", 3, {0, {0}}, 0, 0 }, - { "b", 4, {0, {0}}, 0, 0 }, - { "o", 5, {0, {0}}, 0, 0 }, - { "i", 6, {0, {0}}, 0, 0 }, - { "u", 7, {0, {0}}, 0, 0 } + { "c", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "d", 1, {0, {{{0, 0}}}}, 0, 0 }, + { "z", 2, {0, {{{0, 0}}}}, 0, 0 }, + { "s", 3, {0, {{{0, 0}}}}, 0, 0 }, + { "b", 4, {0, {{{0, 0}}}}, 0, 0 }, + { "o", 5, {0, {{{0, 0}}}}, 0, 0 }, + { "i", 6, {0, {{{0, 0}}}}, 0, 0 }, + { "u", 7, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_flags = @@ -656,22 +671,22 @@ CGEN_KEYWORD m32c_cgen_opval_h_flags = static CGEN_KEYWORD_ENTRY m32c_cgen_opval_h_shimm_entries[] = { - { "1", 0, {0, {0}}, 0, 0 }, - { "2", 1, {0, {0}}, 0, 0 }, - { "3", 2, {0, {0}}, 0, 0 }, - { "4", 3, {0, {0}}, 0, 0 }, - { "5", 4, {0, {0}}, 0, 0 }, - { "6", 5, {0, {0}}, 0, 0 }, - { "7", 6, {0, {0}}, 0, 0 }, - { "8", 7, {0, {0}}, 0, 0 }, - { "-1", -8, {0, {0}}, 0, 0 }, - { "-2", -7, {0, {0}}, 0, 0 }, - { "-3", -6, {0, {0}}, 0, 0 }, - { "-4", -5, {0, {0}}, 0, 0 }, - { "-5", -4, {0, {0}}, 0, 0 }, - { "-6", -3, {0, {0}}, 0, 0 }, - { "-7", -2, {0, {0}}, 0, 0 }, - { "-8", -1, {0, {0}}, 0, 0 } + { "1", 0, {0, {{{0, 0}}}}, 0, 0 }, + { "2", 1, {0, {{{0, 0}}}}, 0, 0 }, + { "3", 2, {0, {{{0, 0}}}}, 0, 0 }, + { "4", 3, {0, {{{0, 0}}}}, 0, 0 }, + { "5", 4, {0, {{{0, 0}}}}, 0, 0 }, + { "6", 5, {0, {{{0, 0}}}}, 0, 0 }, + { "7", 6, {0, {{{0, 0}}}}, 0, 0 }, + { "8", 7, {0, {{{0, 0}}}}, 0, 0 }, + { "-1", -8, {0, {{{0, 0}}}}, 0, 0 }, + { "-2", -7, {0, {{{0, 0}}}}, 0, 0 }, + { "-3", -6, {0, {{{0, 0}}}}, 0, 0 }, + { "-4", -5, {0, {{{0, 0}}}}, 0, 0 }, + { "-5", -4, {0, {{{0, 0}}}}, 0, 0 }, + { "-6", -3, {0, {{{0, 0}}}}, 0, 0 }, + { "-7", -2, {0, {{{0, 0}}}}, 0, 0 }, + { "-8", -1, {0, {{{0, 0}}}}, 0, 0 } }; CGEN_KEYWORD m32c_cgen_opval_h_shimm = @@ -684,90 +699,86 @@ CGEN_KEYWORD m32c_cgen_opval_h_shimm = /* The hardware table. */ -#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) #define A(a) (1 << CGEN_HW_##a) -#else -#define A(a) (1 << CGEN_HW_/**/a) -#endif const CGEN_HW_ENTRY m32c_cgen_hw_table[] = { - { "h-memory", HW_H_MEMORY, CGEN_ASM_NONE, 0, { 0, { (1<isas; + CGEN_BITSET *isas = cd->isas; unsigned int machs = cd->machs; cd->int_insn_p = CGEN_INT_INSN_P; @@ -62765,7 +62990,7 @@ m32c_cgen_rebuild_tables (CGEN_CPU_TABLE *cd) cd->min_insn_bitsize = 65535; /* Some ridiculously big number. */ cd->max_insn_bitsize = 0; for (i = 0; i < MAX_ISAS; ++i) - if (((1 << i) & isas) != 0) + if (cgen_bitset_contains (isas, i)) { const CGEN_ISA *isa = & m32c_cgen_isa_table[i]; @@ -62804,8 +63029,11 @@ m32c_cgen_rebuild_tables (CGEN_CPU_TABLE *cd) { if (cd->insn_chunk_bitsize != 0 && cd->insn_chunk_bitsize != mach->insn_chunk_bitsize) { - fprintf (stderr, "m32c_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: m32c_cgen_rebuild_tables: " + "conflicting insn-chunk-bitsize values: `%d' vs. `%d'"), + cd->insn_chunk_bitsize, mach->insn_chunk_bitsize); abort (); } @@ -62836,23 +63064,21 @@ m32c_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) - precluded. - - ??? We only support ISO C stdargs here, not K&R. - Laziness, plus experiment to see if anything requires K&R - eventually - K&R will no longer be supported - e.g. GDB is currently trying this. */ + precluded. */ CGEN_CPU_DESC m32c_cgen_cpu_open (enum cgen_cpu_open_arg arg_type, ...) { CGEN_CPU_TABLE *cd = (CGEN_CPU_TABLE *) xmalloc (sizeof (CGEN_CPU_TABLE)); static int init_p; - unsigned int isas = 0; /* 0 = "unspecified" */ + 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) @@ -62869,7 +63095,7 @@ m32c_cgen_cpu_open (enum cgen_cpu_open_arg arg_type, ...) switch (arg_type) { case CGEN_CPU_OPEN_ISAS : - isas = va_arg (ap, unsigned int); + isas = va_arg (ap, CGEN_BITSET *); break; case CGEN_CPU_OPEN_MACHS : machs = va_arg (ap, unsigned int); @@ -62880,15 +63106,22 @@ m32c_cgen_cpu_open (enum cgen_cpu_open_arg arg_type, ...) const CGEN_MACH *mach = lookup_mach_via_bfd_name (m32c_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, "m32c_cgen_cpu_open: unsupported argument `%d'\n", - arg_type); + opcodes_error_handler + (/* xgettext:c-format */ + _("internal error: m32c_cgen_cpu_open: " + "unsupported argument `%d'"), + arg_type); abort (); /* ??? return NULL? */ } arg_type = va_arg (ap, enum cgen_cpu_open_arg); @@ -62900,24 +63133,20 @@ m32c_cgen_cpu_open (enum cgen_cpu_open_arg arg_type, ...) machs = (1 << MAX_MACHS) - 1; /* Base mach is always selected. */ machs |= 1; - /* ISA unspecified means "all". */ - if (isas == 0) - isas = (1 << MAX_ISAS) - 1; if (endian == CGEN_ENDIAN_UNKNOWN) { /* ??? If target has only one, could have a default. */ - fprintf (stderr, "m32c_cgen_cpu_open: no endianness specified\n"); + opcodes_error_handler + (/* xgettext:c-format */ + _("internal error: m32c_cgen_cpu_open: no endianness specified")); abort (); } - cd->isas = isas; + 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 = m32c_cgen_rebuild_tables; @@ -62925,7 +63154,7 @@ m32c_cgen_cpu_open (enum cgen_cpu_open_arg arg_type, ...) /* Default to not allowing signed overflow. */ cd->signed_overflow_ok_p = 0; - + return (CGEN_CPU_DESC) cd; } @@ -62965,20 +63194,12 @@ m32c_cgen_cpu_close (CGEN_CPU_DESC cd) for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns) if (CGEN_INSN_RX (insns)) 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); }