Ignore:
Timestamp:
Aug 16, 2003, 6:59:22 PM (22 years ago)
Author:
bird
Message:

binutils v2.14 - offical sources.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/GNU/src/binutils/opcodes/fr30-desc.c

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    33THIS FILE IS MACHINE GENERATED WITH CGEN.
    44
    5 Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
     5Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
    66
    77This file is part of the GNU Binutils and/or GDB, the GNU debugger.
     
    2424
    2525#include "sysdep.h"
    26 #include <ctype.h>
    2726#include <stdio.h>
    2827#include <stdarg.h>
     
    3433#include "opintl.h"
    3534#include "libiberty.h"
     35#include "xregex.h"
    3636
    3737/* Attributes.  */
     
    123123
    124124static const CGEN_MACH fr30_cgen_mach_table[] = {
    125   { "fr30", "fr30", MACH_FR30 },
    126   { 0, 0, 0 }
     125  { "fr30", "fr30", MACH_FR30, 0 },
     126  { 0, 0, 0, 0 }
    127127};
    128128
     
    154154  & fr30_cgen_opval_gr_names_entries[0],
    155155  19,
    156   0, 0, 0, 0
     156  0, 0, 0, 0, ""
    157157};
    158158
     
    181181  & fr30_cgen_opval_cr_names_entries[0],
    182182  16,
    183   0, 0, 0, 0
     183  0, 0, 0, 0, ""
    184184};
    185185
     
    198198  & fr30_cgen_opval_dr_names_entries[0],
    199199  6,
    200   0, 0, 0, 0
     200  0, 0, 0, 0, ""
    201201};
    202202
     
    210210  & fr30_cgen_opval_h_ps_entries[0],
    211211  1,
    212   0, 0, 0, 0
     212  0, 0, 0, 0, ""
    213213};
    214214
     
    222222  & fr30_cgen_opval_h_r13_entries[0],
    223223  1,
    224   0, 0, 0, 0
     224  0, 0, 0, 0, ""
    225225};
    226226
     
    234234  & fr30_cgen_opval_h_r14_entries[0],
    235235  1,
    236   0, 0, 0, 0
     236  0, 0, 0, 0, ""
    237237};
    238238
     
    246246  & fr30_cgen_opval_h_r15_entries[0],
    247247  1,
    248   0, 0, 0, 0
    249 };
    250 
     248  0, 0, 0, 0, ""
     249};
    251250
    252251
    253252/* The hardware table.  */
    254253
    255 #define A(a) (1 << CONCAT2 (CGEN_HW_,a))
     254#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
     255#define A(a) (1 << CGEN_HW_##a)
     256#else
     257#define A(a) (1 << CGEN_HW_/**/a)
     258#endif
    256259
    257260const CGEN_HW_ENTRY fr30_cgen_hw_table[] =
     
    287290#undef A
    288291
     292
    289293/* The instruction field table.  */
    290294
    291 #define A(a) (1 << CONCAT2 (CGEN_IFLD_,a))
     295#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
     296#define A(a) (1 << CGEN_IFLD_##a)
     297#else
     298#define A(a) (1 << CGEN_IFLD_/**/a)
     299#endif
    292300
    293301const CGEN_IFLD fr30_cgen_ifld_table[] =
     
    318326  { FR30_F_I20_4, "f-i20-4", 0, 16, 8, 4, { 0, { (1<<MACH_BASE) } }  },
    319327  { FR30_F_I20_16, "f-i20-16", 16, 16, 0, 16, { 0, { (1<<MACH_BASE) } }  },
     328  { FR30_F_I20, "f-i20", 0, 0, 0, 0,{ 0|A(VIRTUAL), { (1<<MACH_BASE) } }  },
    320329  { FR30_F_I32, "f-i32", 16, 32, 0, 32, { 0|A(SIGN_OPT), { (1<<MACH_BASE) } }  },
    321330  { FR30_F_UDISP6, "f-udisp6", 0, 16, 8, 4, { 0, { (1<<MACH_BASE) } }  },
     
    339348#undef A
    340349
     350
     351
     352/* multi ifield declarations */
     353
     354const CGEN_MAYBE_MULTI_IFLD FR30_F_I20_MULTI_IFIELD [];
     355
     356
     357/* multi ifield definitions */
     358
     359const CGEN_MAYBE_MULTI_IFLD FR30_F_I20_MULTI_IFIELD [] =
     360{
     361    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_I20_4] } },
     362    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_I20_16] } },
     363    { 0, { (const PTR) 0 } }
     364};
     365
    341366/* The operand table.  */
    342367
    343 #define A(a) (1 << CONCAT2 (CGEN_OPERAND_,a))
    344 #define OPERAND(op) CONCAT2 (FR30_OPERAND_,op)
     368#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
     369#define A(a) (1 << CGEN_OPERAND_##a)
     370#else
     371#define A(a) (1 << CGEN_OPERAND_/**/a)
     372#endif
     373#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
     374#define OPERAND(op) FR30_OPERAND_##op
     375#else
     376#define OPERAND(op) FR30_OPERAND_/**/op
     377#endif
    345378
    346379const CGEN_OPERAND fr30_cgen_operand_table[] =
     
    348381/* pc: program counter */
    349382  { "pc", FR30_OPERAND_PC, HW_H_PC, 0, 0,
     383    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_NIL] } },
    350384    { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
    351385/* Ri: destination register */
    352386  { "Ri", FR30_OPERAND_RI, HW_H_GR, 12, 4,
     387    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_RI] } },
    353388    { 0, { (1<<MACH_BASE) } }  },
    354389/* Rj: source register */
    355390  { "Rj", FR30_OPERAND_RJ, HW_H_GR, 8, 4,
     391    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_RJ] } },
    356392    { 0, { (1<<MACH_BASE) } }  },
    357393/* Ric: target register coproc insn */
    358394  { "Ric", FR30_OPERAND_RIC, HW_H_GR, 12, 4,
     395    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_RIC] } },
    359396    { 0, { (1<<MACH_BASE) } }  },
    360397/* Rjc: source register coproc insn */
    361398  { "Rjc", FR30_OPERAND_RJC, HW_H_GR, 8, 4,
     399    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_RJC] } },
    362400    { 0, { (1<<MACH_BASE) } }  },
    363401/* CRi: coprocessor register */
    364402  { "CRi", FR30_OPERAND_CRI, HW_H_CR, 12, 4,
     403    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_CRI] } },
    365404    { 0, { (1<<MACH_BASE) } }  },
    366405/* CRj: coprocessor register */
    367406  { "CRj", FR30_OPERAND_CRJ, HW_H_CR, 8, 4,
     407    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_CRJ] } },
    368408    { 0, { (1<<MACH_BASE) } }  },
    369409/* Rs1: dedicated register */
    370410  { "Rs1", FR30_OPERAND_RS1, HW_H_DR, 8, 4,
     411    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_RS1] } },
    371412    { 0, { (1<<MACH_BASE) } }  },
    372413/* Rs2: dedicated register */
    373414  { "Rs2", FR30_OPERAND_RS2, HW_H_DR, 12, 4,
     415    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_RS2] } },
    374416    { 0, { (1<<MACH_BASE) } }  },
    375417/* R13: General Register 13 */
    376418  { "R13", FR30_OPERAND_R13, HW_H_R13, 0, 0,
     419    { 0, { (const PTR) 0 } },
    377420    { 0, { (1<<MACH_BASE) } }  },
    378421/* R14: General Register 14 */
    379422  { "R14", FR30_OPERAND_R14, HW_H_R14, 0, 0,
     423    { 0, { (const PTR) 0 } },
    380424    { 0, { (1<<MACH_BASE) } }  },
    381425/* R15: General Register 15 */
    382426  { "R15", FR30_OPERAND_R15, HW_H_R15, 0, 0,
     427    { 0, { (const PTR) 0 } },
    383428    { 0, { (1<<MACH_BASE) } }  },
    384429/* ps: Program Status register */
    385430  { "ps", FR30_OPERAND_PS, HW_H_PS, 0, 0,
     431    { 0, { (const PTR) 0 } },
    386432    { 0, { (1<<MACH_BASE) } }  },
    387433/* u4: 4  bit unsigned immediate */
    388434  { "u4", FR30_OPERAND_U4, HW_H_UINT, 8, 4,
     435    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_U4] } },
    389436    { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
    390437/* u4c: 4  bit unsigned immediate */
    391438  { "u4c", FR30_OPERAND_U4C, HW_H_UINT, 12, 4,
     439    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_U4C] } },
    392440    { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
    393441/* u8: 8  bit unsigned immediate */
    394442  { "u8", FR30_OPERAND_U8, HW_H_UINT, 8, 8,
     443    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_U8] } },
    395444    { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
    396445/* i8: 8  bit unsigned immediate */
    397446  { "i8", FR30_OPERAND_I8, HW_H_UINT, 4, 8,
     447    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_I8] } },
    398448    { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
    399449/* udisp6: 6  bit unsigned immediate */
    400450  { "udisp6", FR30_OPERAND_UDISP6, HW_H_UINT, 8, 4,
     451    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_UDISP6] } },
    401452    { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
    402453/* disp8: 8  bit signed   immediate */
    403454  { "disp8", FR30_OPERAND_DISP8, HW_H_SINT, 4, 8,
     455    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_DISP8] } },
    404456    { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
    405457/* disp9: 9  bit signed   immediate */
    406458  { "disp9", FR30_OPERAND_DISP9, HW_H_SINT, 4, 8,
     459    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_DISP9] } },
    407460    { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
    408461/* disp10: 10 bit signed   immediate */
    409462  { "disp10", FR30_OPERAND_DISP10, HW_H_SINT, 4, 8,
     463    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_DISP10] } },
    410464    { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
    411465/* s10: 10 bit signed   immediate */
    412466  { "s10", FR30_OPERAND_S10, HW_H_SINT, 8, 8,
     467    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_S10] } },
    413468    { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
    414469/* u10: 10 bit unsigned immediate */
    415470  { "u10", FR30_OPERAND_U10, HW_H_UINT, 8, 8,
     471    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_U10] } },
    416472    { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
    417473/* i32: 32 bit immediate */
    418474  { "i32", FR30_OPERAND_I32, HW_H_UINT, 0, 32,
     475    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_I32] } },
    419476    { 0|A(HASH_PREFIX)|A(SIGN_OPT), { (1<<MACH_BASE) } }  },
    420477/* m4: 4  bit negative immediate */
    421478  { "m4", FR30_OPERAND_M4, HW_H_SINT, 8, 4,
     479    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_M4] } },
    422480    { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
    423481/* i20: 20 bit immediate */
    424482  { "i20", FR30_OPERAND_I20, HW_H_UINT, 0, 20,
     483    { 2, { (const PTR) &FR30_F_I20_MULTI_IFIELD[0] } },
    425484    { 0|A(HASH_PREFIX)|A(VIRTUAL), { (1<<MACH_BASE) } }  },
    426485/* dir8: 8  bit direct address */
    427486  { "dir8", FR30_OPERAND_DIR8, HW_H_UINT, 8, 8,
     487    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_DIR8] } },
    428488    { 0, { (1<<MACH_BASE) } }  },
    429489/* dir9: 9  bit direct address */
    430490  { "dir9", FR30_OPERAND_DIR9, HW_H_UINT, 8, 8,
     491    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_DIR9] } },
    431492    { 0, { (1<<MACH_BASE) } }  },
    432493/* dir10: 10 bit direct address */
    433494  { "dir10", FR30_OPERAND_DIR10, HW_H_UINT, 8, 8,
     495    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_DIR10] } },
    434496    { 0, { (1<<MACH_BASE) } }  },
    435497/* label9: 9  bit pc relative address */
    436498  { "label9", FR30_OPERAND_LABEL9, HW_H_IADDR, 8, 8,
     499    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_REL9] } },
    437500    { 0|A(PCREL_ADDR), { (1<<MACH_BASE) } }  },
    438501/* label12: 12 bit pc relative address */
    439502  { "label12", FR30_OPERAND_LABEL12, HW_H_IADDR, 5, 11,
     503    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_REL12] } },
    440504    { 0|A(PCREL_ADDR), { (1<<MACH_BASE) } }  },
    441505/* reglist_low_ld: 8 bit low register mask for ldm */
    442506  { "reglist_low_ld", FR30_OPERAND_REGLIST_LOW_LD, HW_H_UINT, 8, 8,
     507    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_REGLIST_LOW_LD] } },
    443508    { 0, { (1<<MACH_BASE) } }  },
    444509/* reglist_hi_ld: 8 bit high register mask for ldm */
    445510  { "reglist_hi_ld", FR30_OPERAND_REGLIST_HI_LD, HW_H_UINT, 8, 8,
     511    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_REGLIST_HI_LD] } },
    446512    { 0, { (1<<MACH_BASE) } }  },
    447513/* reglist_low_st: 8 bit low register mask for stm */
    448514  { "reglist_low_st", FR30_OPERAND_REGLIST_LOW_ST, HW_H_UINT, 8, 8,
     515    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_REGLIST_LOW_ST] } },
    449516    { 0, { (1<<MACH_BASE) } }  },
    450517/* reglist_hi_st: 8 bit high register mask for stm */
    451518  { "reglist_hi_st", FR30_OPERAND_REGLIST_HI_ST, HW_H_UINT, 8, 8,
     519    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_REGLIST_HI_ST] } },
    452520    { 0, { (1<<MACH_BASE) } }  },
    453521/* cc: condition codes */
    454522  { "cc", FR30_OPERAND_CC, HW_H_UINT, 4, 4,
     523    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_CC] } },
    455524    { 0, { (1<<MACH_BASE) } }  },
    456525/* ccc: coprocessor calc */
    457526  { "ccc", FR30_OPERAND_CCC, HW_H_UINT, 0, 8,
     527    { 0, { (const PTR) &fr30_cgen_ifld_table[FR30_F_CCC] } },
    458528    { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
    459529/* nbit: negative   bit */
    460530  { "nbit", FR30_OPERAND_NBIT, HW_H_NBIT, 0, 0,
     531    { 0, { (const PTR) 0 } },
    461532    { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
    462533/* vbit: overflow   bit */
    463534  { "vbit", FR30_OPERAND_VBIT, HW_H_VBIT, 0, 0,
     535    { 0, { (const PTR) 0 } },
    464536    { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
    465537/* zbit: zero       bit */
    466538  { "zbit", FR30_OPERAND_ZBIT, HW_H_ZBIT, 0, 0,
     539    { 0, { (const PTR) 0 } },
    467540    { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
    468541/* cbit: carry      bit */
    469542  { "cbit", FR30_OPERAND_CBIT, HW_H_CBIT, 0, 0,
     543    { 0, { (const PTR) 0 } },
    470544    { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
    471545/* ibit: interrupt  bit */
    472546  { "ibit", FR30_OPERAND_IBIT, HW_H_IBIT, 0, 0,
     547    { 0, { (const PTR) 0 } },
    473548    { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
    474549/* sbit: stack      bit */
    475550  { "sbit", FR30_OPERAND_SBIT, HW_H_SBIT, 0, 0,
     551    { 0, { (const PTR) 0 } },
    476552    { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
    477553/* tbit: trace trap bit */
    478554  { "tbit", FR30_OPERAND_TBIT, HW_H_TBIT, 0, 0,
     555    { 0, { (const PTR) 0 } },
    479556    { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
    480557/* d0bit: division 0 bit */
    481558  { "d0bit", FR30_OPERAND_D0BIT, HW_H_D0BIT, 0, 0,
     559    { 0, { (const PTR) 0 } },
    482560    { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
    483561/* d1bit: division 1 bit */
    484562  { "d1bit", FR30_OPERAND_D1BIT, HW_H_D1BIT, 0, 0,
     563    { 0, { (const PTR) 0 } },
    485564    { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
    486565/* ccr: condition code bits */
    487566  { "ccr", FR30_OPERAND_CCR, HW_H_CCR, 0, 0,
     567    { 0, { (const PTR) 0 } },
    488568    { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
    489569/* scr: system condition bits */
    490570  { "scr", FR30_OPERAND_SCR, HW_H_SCR, 0, 0,
     571    { 0, { (const PTR) 0 } },
    491572    { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
    492573/* ilm: interrupt level mask */
    493574  { "ilm", FR30_OPERAND_ILM, HW_H_ILM, 0, 0,
     575    { 0, { (const PTR) 0 } },
    494576    { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
    495   { 0, 0, 0, 0, 0, {0, {0}} }
     577/* sentinel */
     578  { 0, 0, 0, 0, 0,
     579    { 0, { (const PTR) 0 } },
     580    { 0, { 0 } } }
    496581};
    497582
    498583#undef A
    499584
    500 #define A(a) (1 << CONCAT2 (CGEN_INSN_,a))
     585
     586/* The instruction table.  */
     587
    501588#define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
    502 
    503 /* The instruction table.  */
     589#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
     590#define A(a) (1 << CGEN_INSN_##a)
     591#else
     592#define A(a) (1 << CGEN_INSN_/**/a)
     593#endif
    504594
    505595static const CGEN_IBASE fr30_cgen_insn_table[MAX_INSNS] =
     
    13361426};
    13371427
     1428#undef OP
    13381429#undef A
    1339 #undef MNEM
    1340 #undef OP
    13411430
    13421431/* Initialize anything needed to be done once, before any cpu_open call.  */
     1432static void init_tables PARAMS ((void));
    13431433
    13441434static void
     
    13461436{
    13471437}
     1438
     1439static const CGEN_MACH * lookup_mach_via_bfd_name
     1440  PARAMS ((const CGEN_MACH *, const char *));
     1441static void build_hw_table  PARAMS ((CGEN_CPU_TABLE *));
     1442static void build_ifield_table  PARAMS ((CGEN_CPU_TABLE *));
     1443static void build_operand_table PARAMS ((CGEN_CPU_TABLE *));
     1444static void build_insn_table    PARAMS ((CGEN_CPU_TABLE *));
     1445static void fr30_cgen_rebuild_tables PARAMS ((CGEN_CPU_TABLE *));
    13481446
    13491447/* Subroutine of fr30_cgen_cpu_open to look up a mach via its bfd name.  */
     
    14561554     CGEN_CPU_TABLE *cd;
    14571555{
    1458   int i,n_isas;
     1556  int i;
    14591557  unsigned int isas = cd->isas;
    1460 #if 0
    14611558  unsigned int machs = cd->machs;
    1462 #endif
    14631559
    14641560  cd->int_insn_p = CGEN_INT_INSN_P;
     
    14751571        const CGEN_ISA *isa = & fr30_cgen_isa_table[i];
    14761572
    1477         /* Default insn sizes of all selected isas must be equal or we set
    1478            the result to 0, meaning "unknown".  */
     1573        /* Default insn sizes of all selected isas must be
     1574           equal or we set the result to 0, meaning "unknown".  */
    14791575        if (cd->default_insn_bitsize == UNSET)
    14801576          cd->default_insn_bitsize = isa->default_insn_bitsize;
     
    14841580          cd->default_insn_bitsize = CGEN_SIZE_UNKNOWN;
    14851581
    1486         /* Base insn sizes of all selected isas must be equal or we set
    1487            the result to 0, meaning "unknown".  */
     1582        /* Base insn sizes of all selected isas must be equal
     1583           or we set the result to 0, meaning "unknown".  */
    14881584        if (cd->base_insn_bitsize == UNSET)
    14891585          cd->base_insn_bitsize = isa->base_insn_bitsize;
     
    14981594        if (isa->max_insn_bitsize > cd->max_insn_bitsize)
    14991595          cd->max_insn_bitsize = isa->max_insn_bitsize;
    1500 
    1501         ++n_isas;
    15021596      }
    15031597
    1504 #if 0 /* Does nothing?? */
    15051598  /* Data derived from the mach spec.  */
    15061599  for (i = 0; i < MAX_MACHS; ++i)
     
    15091602        const CGEN_MACH *mach = & fr30_cgen_mach_table[i];
    15101603
    1511         ++n_machs;
     1604        if (mach->insn_chunk_bitsize != 0)
     1605        {
     1606          if (cd->insn_chunk_bitsize != 0 && cd->insn_chunk_bitsize != mach->insn_chunk_bitsize)
     1607            {
     1608              fprintf (stderr, "fr30_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'\n",
     1609                       cd->insn_chunk_bitsize, mach->insn_chunk_bitsize);
     1610              abort ();
     1611            }
     1612
     1613          cd->insn_chunk_bitsize = mach->insn_chunk_bitsize;
     1614        }
    15121615      }
    1513 #endif
    15141616
    15151617  /* Determine which hw elements are used by MACH.  */
     
    15801682              lookup_mach_via_bfd_name (fr30_cgen_mach_table, name);
    15811683
    1582             machs |= mach->num << 1;
     1684            machs |= 1 << mach->num;
    15831685            break;
    15841686          }
     
    16511753     CGEN_CPU_DESC cd;
    16521754{
     1755  unsigned int i;
     1756  const CGEN_INSN *insns;
     1757
     1758  if (cd->macro_insn_table.init_entries)
     1759    {
     1760      insns = cd->macro_insn_table.init_entries;
     1761      for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns)
     1762        {
     1763          if (CGEN_INSN_RX ((insns)))
     1764            regfree (CGEN_INSN_RX (insns));
     1765        }
     1766    }
     1767
     1768  if (cd->insn_table.init_entries)
     1769    {
     1770      insns = cd->insn_table.init_entries;
     1771      for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns)
     1772        {
     1773          if (CGEN_INSN_RX (insns))
     1774            regfree (CGEN_INSN_RX (insns));
     1775        }
     1776    }
     1777
     1778 
     1779
     1780  if (cd->macro_insn_table.init_entries)
     1781    free ((CGEN_INSN *) cd->macro_insn_table.init_entries);
     1782
    16531783  if (cd->insn_table.init_entries)
    16541784    free ((CGEN_INSN *) cd->insn_table.init_entries);
     1785
    16551786  if (cd->hw_table.entries)
    16561787    free ((CGEN_HW_ENTRY *) cd->hw_table.entries);
     1788
     1789  if (cd->operand_table.entries)
     1790    free ((CGEN_HW_ENTRY *) cd->operand_table.entries);
     1791
    16571792  free (cd);
    16581793}
Note: See TracChangeset for help on using the changeset viewer.