]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Fix compile time warnings in cgen-generated files
authorNick Clifton <nickc@redhat.com>
Tue, 9 Oct 2001 08:54:58 +0000 (08:54 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 9 Oct 2001 08:54:58 +0000 (08:54 +0000)
24 files changed:
opcodes/ChangeLog
opcodes/Makefile.in
opcodes/cgen-asm.in
opcodes/cgen-dis.in
opcodes/cgen-ibld.in
opcodes/fr30-asm.c
opcodes/fr30-desc.c
opcodes/fr30-dis.c
opcodes/fr30-ibld.c
opcodes/fr30-opc.c
opcodes/m32r-asm.c
opcodes/m32r-desc.c
opcodes/m32r-dis.c
opcodes/m32r-ibld.c
opcodes/m32r-opc.c
opcodes/m32r-opinst.c
opcodes/openrisc-asm.c
opcodes/openrisc-desc.c
opcodes/openrisc-dis.c
opcodes/openrisc-ibld.c
opcodes/openrisc-opc.c
opcodes/openrisc-opc.h
opcodes/po/POTFILES.in
opcodes/po/opcodes.pot

index 539c7262201fdb5d1a1b40b23e73ac1077370659..a523785ff0ab210f3720702addb5988751013c5a 100644 (file)
@@ -1,3 +1,30 @@
+2001-10-08  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * cgen-asm.in: Fix compile time warning messages in generated
+       C files.
+       * cgen-dis.in: The same.
+       * cgen-ibld.in: The same.
+        * fr30-asm.c: Regenerate.
+        * fr30-desc.c: Regenerate.
+        * fr30-dis.c: Regenerate.
+        * fr30-ibld.c: Regenerate.
+        * fr30-opc.c: Regenerate.
+        * m32r-asm.c: Regenerate.
+        * m32r-desc.c: Regenerate.
+        * m32r-dis.c: Regenerate.
+        * m32r-ibld.c: Regenerate.
+        * m32r-opc.c: Regenerate.
+        * m32r-opinst.c Regenerate.
+        * openrisc-asm.c: Regenerate.
+        * openrisc-desc.c: Regenerate.
+        * openrisc-dis.c: Regenerate.
+        * openrisc-ibld.c: Regenerate.
+        * openrisc-opc.c: Regenerate.
+        * openrisc-opc.h: Regenerate.
+       * Makefile.in: Regenerate.
+       * po/POTFILES.in: Regenerate.
+       * po/opcodes.pot: Regenerate.
+
 2001-10-08  Aldy Hernandez  <aldyh@redhat.com>
 
         * arm-opc.h (arm_opcodes): Add cirrus insns.
index 7d0605e366dc8531508691608e77b0a70c44988b..294341654ee7890f85bb50fe32a10ee544244db9 100644 (file)
@@ -389,7 +389,7 @@ acinclude.m4 aclocal.m4 config.in configure configure.in
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 SOURCES = libopcodes.a.c $(libopcodes_la_SOURCES)
 OBJECTS = libopcodes.a.$(OBJEXT) $(libopcodes_la_OBJECTS)
index 20380a297951f240fbb9de5da64c429f8871ea22..936c635e3114c6d0c22a02b53cbe8c837d1eaedd 100644 (file)
@@ -35,6 +35,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
 #include "@prefix@-opc.h"
 #include "opintl.h"
 #include "xregex.h"
+#include "libiberty.h"
 
 #undef min
 #define min(a,b) ((a) < (b) ? (a) : (b))
@@ -57,14 +58,13 @@ static const char * parse_insn_normal
   It then compiles the regex and stores it in the opcode, for
   later use by @arch@_cgen_assemble_insn
 
-  returns NULL for success, an error message for failure 
-*/
+  Returns NULL for success, an error message for failure. */
 
 char * 
 @arch@_cgen_build_insn_regex (insn)
      CGEN_INSN *insn;
 {  
-  CGEN_OPCODE *opc = CGEN_INSN_OPCODE (insn);
+  CGEN_OPCODE *opc = (CGEN_OPCODE *) CGEN_INSN_OPCODE (insn);
   const char *mnem = CGEN_INSN_MNEMONIC (insn);
   int mnem_len;
   char rxbuf[CGEN_MAX_RX_ELEMENTS];
index 2c4ce7feed9fbbea398388eff3bd810ef903c664..7065644b3e06be4961934e35e647faaf03b12ff9 100644 (file)
@@ -47,10 +47,13 @@ static void print_keyword
 static void print_insn_normal
      PARAMS ((CGEN_CPU_DESC, PTR, const CGEN_INSN *, CGEN_FIELDS *,
              bfd_vma, int));
-static int print_insn PARAMS ((CGEN_CPU_DESC, bfd_vma,
-                              disassemble_info *, char *, int));
+static int print_insn
+     PARAMS ((CGEN_CPU_DESC, bfd_vma,  disassemble_info *, char *, unsigned));
 static int default_print_insn
      PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *));
+static int read_insn
+     PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int,
+             CGEN_EXTRACT_INFO *, unsigned long *));
 \f
 /* -- disassembler routines inserted here */
 \f
@@ -58,21 +61,12 @@ static int default_print_insn
 
 static void
 print_normal (cd, dis_info, value, attrs, pc, length)
-#ifdef CGEN_PRINT_NORMAL
-     CGEN_CPU_DESC cd;
-#else
      CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
-#endif
      PTR dis_info;
      long value;
      unsigned int attrs;
-#ifdef CGEN_PRINT_NORMAL
-     bfd_vma pc;
-     int length;
-#else
      bfd_vma pc ATTRIBUTE_UNUSED;
      int length ATTRIBUTE_UNUSED;
-#endif
 {
   disassemble_info *info = (disassemble_info *) dis_info;
 
@@ -93,21 +87,12 @@ print_normal (cd, dis_info, value, attrs, pc, length)
 
 static void
 print_address (cd, dis_info, value, attrs, pc, length)
-#ifdef CGEN_PRINT_NORMAL
-     CGEN_CPU_DESC cd;
-#else
      CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
-#endif
      PTR dis_info;
      bfd_vma value;
      unsigned int attrs;
-#ifdef CGEN_PRINT_NORMAL
-     bfd_vma pc;
-     int length;
-#else
      bfd_vma pc ATTRIBUTE_UNUSED;
      int length ATTRIBUTE_UNUSED;
-#endif
 {
   disassemble_info *info = (disassemble_info *) dis_info;
 
@@ -190,9 +175,10 @@ print_insn_normal (cd, dis_info, insn, fields, pc, length)
 /* Subroutine of print_insn. Reads an insn into the given buffers and updates
    the extract info.
    Returns 0 if all is well, non-zero otherwise.  */
+
 static int
 read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
-     CGEN_CPU_DESC cd;
+     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
      bfd_vma pc;
      disassemble_info *info;
      char *buf;
@@ -227,7 +213,7 @@ print_insn (cd, pc, info, buf, buflen)
      bfd_vma pc;
      disassemble_info *info;
      char *buf;
-     int buflen;
+     unsigned int buflen;
 {
   CGEN_INSN_INT insn_value;
   const CGEN_INSN_LIST *insn_list;
@@ -255,7 +241,7 @@ print_insn (cd, pc, info, buf, buflen)
       unsigned long insn_value_cropped;
 
 #ifdef CGEN_VALIDATE_INSN_SUPPORTED 
-      /* not needed as insn shouldn't be in hash lists if not supported */
+      /* Not needed as insn shouldn't be in hash lists if not supported.  */
       /* Supported by this cpu?  */
       if (! @arch@_cgen_insn_supported (cd, insn))
         {
@@ -270,8 +256,8 @@ print_insn (cd, pc, info, buf, buflen)
 
       /* Base size may exceed this instruction's size.  Extract the
          relevant part from the buffer. */
-      if ((CGEN_INSN_BITSIZE (insn) / 8) < buflen &&
-         (CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long))
+      if ((unsigned) (CGEN_INSN_BITSIZE (insn) / 8) < buflen &&
+         (unsigned) (CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long))
        insn_value_cropped = bfd_get_bits (buf, CGEN_INSN_BITSIZE (insn), 
                                           info->endian == BFD_ENDIAN_BIG);
       else
@@ -286,8 +272,8 @@ print_insn (cd, pc, info, buf, buflen)
 
          /* Make sure the entire insn is loaded into insn_value, if it
             can fit.  */
-         if (CGEN_INSN_BITSIZE (insn) > cd->base_insn_bitsize &&
-             (CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long))
+         if (((unsigned) CGEN_INSN_BITSIZE (insn) > cd->base_insn_bitsize) &&
+             (unsigned) (CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long))
            {
              unsigned long full_insn_value;
              int rc = read_insn (cd, pc, info, buf,
index 61233bd2351111309dd429d7be65843082a356e2..9103524c947253e261e180cfe6f5e280400b60e6 100644 (file)
@@ -49,7 +49,6 @@ static const char * insert_normal
 static const char * insert_insn_normal
      PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *,
              CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma));
-
 static int extract_normal
      PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
              unsigned int, unsigned int, unsigned int, unsigned int,
@@ -57,9 +56,19 @@ static int extract_normal
 static int extract_insn_normal
      PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
              CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma));
+#if CGEN_INT_INSN_P
 static void put_insn_int_value
      PARAMS ((CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT));
-
+#endif
+#if ! CGEN_INT_INSN_P
+static CGEN_INLINE void insert_1
+     PARAMS ((CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *));
+static CGEN_INLINE int fill_cache
+     PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *,  int, int, bfd_vma));
+static CGEN_INLINE long extract_1
+     PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int,
+             unsigned char *, bfd_vma));
+#endif
 \f
 /* Operand insertion.  */
 
@@ -76,7 +85,6 @@ insert_1 (cd, value, start, length, word_length, bufp)
 {
   unsigned long x,mask;
   int shift;
-  int big_p = CGEN_CPU_INSN_ENDIAN (cd) == CGEN_ENDIAN_BIG;
 
   x = cgen_get_insn_value (cd, bufp, word_length);
 
@@ -248,8 +256,8 @@ insert_insn_normal (cd, insn, fields, buffer, pc)
 
 #else
 
-  cgen_put_insn_value (cd, buffer, min (cd->base_insn_bitsize,
-                                       CGEN_FIELDS_BITSIZE (fields)),
+  cgen_put_insn_value (cd, buffer, min ((unsigned) cd->base_insn_bitsize,
+                                       (unsigned) CGEN_FIELDS_BITSIZE (fields)),
                       value);
 
 #endif /* ! CGEN_INT_INSN_P */
@@ -275,6 +283,7 @@ insert_insn_normal (cd, insn, fields, buffer, pc)
   return NULL;
 }
 
+#if CGEN_INT_INSN_P
 /* Cover function to store an insn value into an integral insn.  Must go here
  because it needs <prefix>-desc.h for CGEN_INT_INSN_P.  */
 
@@ -298,6 +307,7 @@ put_insn_int_value (cd, buf, length, insn_length, value)
       *buf = (*buf & ~(mask << shift)) | ((value & mask) << shift);
     }
 }
+#endif
 \f
 /* Operand extraction.  */
 
@@ -311,14 +321,14 @@ put_insn_int_value (cd, buf, length, insn_length, value)
 
 static CGEN_INLINE int
 fill_cache (cd, ex_info, offset, bytes, pc)
-     CGEN_CPU_DESC cd;
+     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
      CGEN_EXTRACT_INFO *ex_info;
      int offset, bytes;
      bfd_vma pc;
 {
   /* It's doubtful that the middle part has already been fetched so
      we don't optimize that case.  kiss.  */
-  int mask;
+  unsigned int mask;
   disassemble_info *info = (disassemble_info *) ex_info->dis_info;
 
   /* First do a quick check.  */
@@ -356,17 +366,18 @@ fill_cache (cd, ex_info, offset, bytes, pc)
 static CGEN_INLINE long
 extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
      CGEN_CPU_DESC cd;
-     CGEN_EXTRACT_INFO *ex_info;
+     CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
      int start,length,word_length;
      unsigned char *bufp;
-     bfd_vma pc;
+     bfd_vma pc ATTRIBUTE_UNUSED;
 {
   unsigned long x;
   int shift;
+#if 0
   int big_p = CGEN_CPU_INSN_ENDIAN (cd) == CGEN_ENDIAN_BIG;
 
   x = cgen_get_insn_value (cd, bufp, word_length);
-
+#endif
   if (CGEN_INSN_LSB0_P)
     shift = (start + 1) - length;
   else
index eae06208c37c5c931fbbd0067bad136eadd91373..da62c6e786a4b479e349f6a87f625b1b9d5003f0 100644 (file)
@@ -26,9 +26,9 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
    Keep that in mind.  */
 
 #include "sysdep.h"
+#include <ctype.h>
 #include <stdio.h>
 #include "ansidecl.h"
-#include "safe-ctype.h"
 #include "bfd.h"
 #include "symcat.h"
 #include "fr30-desc.h"
@@ -42,19 +42,26 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
 #undef max
 #define max(a,b) ((a) > (b) ? (a) : (b))
 
-static const char * parse_insn_normal          PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *));
-static int parse_register_number               PARAMS ((const char **));
-static const char * parse_register_list        PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *, int, int));
-static const char * parse_low_register_list_ld PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
-static const char * parse_hi_register_list_ld  PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
-static const char * parse_low_register_list_st PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
-static const char * parse_hi_register_list_st  PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
-       const char * fr30_cgen_parse_operand    PARAMS ((CGEN_CPU_DESC, int, const char **, CGEN_FIELDS *));
+static const char * parse_insn_normal
+     PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *));
 \f
 /* -- assembler routines inserted here */
 
 /* -- asm.c */
-/* Handle register lists for LDMx and STMx  */
+/* Handle register lists for LDMx and STMx.  */
+
+static int parse_register_number
+  PARAMS ((const char **));
+static const char * parse_register_list
+  PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *, int, int));
+static const char * parse_low_register_list_ld
+  PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
+static const char * parse_hi_register_list_ld
+  PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
+static const char * parse_low_register_list_st
+  PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
+static const char * parse_hi_register_list_st
+  PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
 
 static int
 parse_register_number (strp)
@@ -62,7 +69,7 @@ parse_register_number (strp)
 {
   int regno;
   if (**strp < '0' || **strp > '9')
-    return -1; /* error */
+    return -1; /* error */
   regno = **strp - '0';
   ++*strp;
 
@@ -85,6 +92,7 @@ parse_register_list (cd, strp, opindex, valuep, high_low, load_store)
      int load_store; /* 0 == load, 1 == store */
 {
   int regno;
+
   *valuep = 0;
   while (**strp && **strp != ')')
     {
@@ -103,7 +111,7 @@ parse_register_list (cd, strp, opindex, valuep, high_low, load_store)
       if (high_low)
        regno -= 8;
 
-      if (load_store) /* mask is reversed for store */
+      if (load_store) /* Mask is reversed for store.  */
        *valuep |= 0x80 >> regno;
       else
        *valuep |= 1 << regno;
@@ -164,6 +172,9 @@ parse_hi_register_list_st (cd, strp, opindex, valuep)
 
 /* -- */
 
+const char * fr30_cgen_parse_operand
+  PARAMS ((CGEN_CPU_DESC, int, const char **, CGEN_FIELDS *));
+
 /* Main entry point for operand parsing.
 
    This function is basically just a big switch statement.  Earlier versions
@@ -175,7 +186,8 @@ parse_hi_register_list_st (cd, strp, opindex, valuep)
 
    This function could be moved into `parse_insn_normal', but keeping it
    separate makes clear the interface between `parse_insn_normal' and each of
-   the handlers.  */
+   the handlers.
+*/
 
 const char *
 fr30_cgen_parse_operand (cd, opindex, strp, fields)
@@ -186,7 +198,7 @@ fr30_cgen_parse_operand (cd, opindex, strp, fields)
 {
   const char * errmsg = NULL;
   /* Used by scalar operands that still need to be parsed.  */
-  long junk;
+  long junk ATTRIBUTE_UNUSED;
 
   switch (opindex)
     {
@@ -343,8 +355,7 @@ fr30_cgen_init_asm (cd)
   It then compiles the regex and stores it in the opcode, for
   later use by fr30_cgen_assemble_insn
 
-  returns NULL for success, an error message for failure 
-*/
+  Returns NULL for success, an error message for failure. */
 
 char * 
 fr30_cgen_build_insn_regex (insn)
@@ -467,14 +478,14 @@ parse_insn_normal (cd, insn, strp, fields)
      GAS's input scrubber will ensure mnemonics are lowercase, but we may
      not be called from GAS.  */
   p = CGEN_INSN_MNEMONIC (insn);
-  while (*p && TOLOWER (*p) == TOLOWER (*str))
+  while (*p && tolower (*p) == tolower (*str))
     ++p, ++str;
 
   if (* p)
     return _("unrecognized instruction");
 
 #ifndef CGEN_MNEMONIC_OPERANDS
-  if (* str && !ISSPACE (* str))
+  if (* str && !isspace (* str))
     return _("unrecognized instruction");
 #endif
 
@@ -503,7 +514,7 @@ parse_insn_normal (cd, insn, strp, fields)
             first char after the mnemonic part is a space.  */
          /* FIXME: We also take inappropriate advantage of the fact that
             GAS's input scrubber will remove extraneous blanks.  */
-         if (TOLOWER (*str) == TOLOWER (CGEN_SYNTAX_CHAR (* syn)))
+         if (tolower (*str) == tolower (CGEN_SYNTAX_CHAR (* syn)))
            {
 #ifdef CGEN_MNEMONIC_OPERANDS
              if (CGEN_SYNTAX_CHAR(* syn) == ' ')
@@ -550,7 +561,7 @@ parse_insn_normal (cd, insn, strp, fields)
         blanks now.  IE: We needn't try again with a longer version of
         the insn and it is assumed that longer versions of insns appear
         before shorter ones (eg: lsr r2,r3,1 vs lsr r2,r3).  */
-      while (ISSPACE (* str))
+      while (isspace (* str))
        ++ str;
 
       if (* str != '\0')
@@ -599,7 +610,7 @@ fr30_cgen_assemble_insn (cd, str, fields, buf, errmsg)
   int recognized_mnemonic = 0;
 
   /* Skip leading white space.  */
-  while (ISSPACE (* str))
+  while (isspace (* str))
     ++ str;
 
   /* The instructions are stored in hashed lists.
index 9fc4379d600560faf31f332bd011a50163c51096..e3a1c8bb1077e2c097991b98d3f49ce2c8ddefce 100644 (file)
@@ -23,6 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 */
 
 #include "sysdep.h"
+#include <ctype.h>
 #include <stdio.h>
 #include <stdarg.h>
 #include "ansidecl.h"
@@ -33,14 +34,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "opintl.h"
 #include "libiberty.h"
 
-static void              init_tables              PARAMS ((void));
-static const CGEN_MACH * lookup_mach_via_bfd_name PARAMS ((const CGEN_MACH *, const char *));
-static void              build_hw_table           PARAMS ((CGEN_CPU_TABLE *));
-static void              build_ifield_table       PARAMS ((CGEN_CPU_TABLE *));
-static void              build_operand_table      PARAMS ((CGEN_CPU_TABLE *));
-static void              build_insn_table         PARAMS ((CGEN_CPU_TABLE *));
-static void              fr30_cgen_rebuild_tables PARAMS ((CGEN_CPU_TABLE *));
-
 /* Attributes.  */
 
 static const CGEN_ATTR_ENTRY bool_attr[] =
@@ -1368,12 +1361,21 @@ static const CGEN_IBASE fr30_cgen_insn_table[MAX_INSNS] =
 #undef A
 
 /* Initialize anything needed to be done once, before any cpu_open call.  */
+static void init_tables PARAMS ((void));
 
 static void
 init_tables ()
 {
 }
 
+static const CGEN_MACH * lookup_mach_via_bfd_name
+  PARAMS ((const CGEN_MACH *, const char *));
+static void build_hw_table  PARAMS ((CGEN_CPU_TABLE *));
+static void build_ifield_table  PARAMS ((CGEN_CPU_TABLE *));
+static void build_operand_table PARAMS ((CGEN_CPU_TABLE *));
+static void build_insn_table    PARAMS ((CGEN_CPU_TABLE *));
+static void fr30_cgen_rebuild_tables PARAMS ((CGEN_CPU_TABLE *));
+
 /* Subroutine of fr30_cgen_cpu_open to look up a mach via its bfd name.  */
 
 static const CGEN_MACH *
index f9adba50199cf5e622a735360fe3f2d3a8a67d40..5de2681d1fd4d542ecdeed020bfb11b2edd8d921 100644 (file)
@@ -38,24 +38,38 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
 /* Default text to print if an instruction isn't recognized.  */
 #define UNKNOWN_INSN_MSG _("*unknown*")
 
-static void print_normal               PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned, bfd_vma, int));
-static void print_address              PARAMS ((CGEN_CPU_DESC, PTR, bfd_vma, unsigned, bfd_vma, int));
-static void print_keyword              PARAMS ((CGEN_CPU_DESC, PTR, CGEN_KEYWORD *, long, unsigned));
-static void print_insn_normal          PARAMS ((CGEN_CPU_DESC, PTR, const CGEN_INSN *, CGEN_FIELDS *, bfd_vma, int));
-static int  print_insn                 PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int));
-static int  default_print_insn         PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *));
-static void print_register_list        PARAMS ((PTR, long, long, int));
-static void print_hi_register_list_ld  PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned, bfd_vma, int));
-static void print_low_register_list_ld PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned, bfd_vma, int));
-static void print_hi_register_list_st  PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned, bfd_vma, int));
-static void print_low_register_list_st PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned, bfd_vma, int));
-static void print_m4                   PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned, bfd_vma, int));
-       void fr30_cgen_print_operand    PARAMS ((CGEN_CPU_DESC, int, PTR, CGEN_FIELDS *, void const *, bfd_vma, int));
-static int  read_insn                  PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int, CGEN_EXTRACT_INFO *, unsigned long *));
+static void print_normal
+     PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned int, bfd_vma, int));
+static void print_address
+     PARAMS ((CGEN_CPU_DESC, PTR, bfd_vma, unsigned int, bfd_vma, int));
+static void print_keyword
+     PARAMS ((CGEN_CPU_DESC, PTR, CGEN_KEYWORD *, long, unsigned int));
+static void print_insn_normal
+     PARAMS ((CGEN_CPU_DESC, PTR, const CGEN_INSN *, CGEN_FIELDS *,
+             bfd_vma, int));
+static int print_insn
+     PARAMS ((CGEN_CPU_DESC, bfd_vma,  disassemble_info *, char *, unsigned));
+static int default_print_insn
+     PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *));
+static int read_insn
+     PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int,
+             CGEN_EXTRACT_INFO *, unsigned long *));
 \f
 /* -- disassembler routines inserted here */
 
 /* -- dis.c */
+static void print_register_list
+  PARAMS ((PTR, long, long, int));
+static void print_hi_register_list_ld
+  PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned, bfd_vma, int));
+static void print_low_register_list_ld
+  PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned, bfd_vma, int));
+static void print_hi_register_list_st
+  PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned, bfd_vma, int));
+static void print_low_register_list_st
+  PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned, bfd_vma, int));
+static void print_m4
+  PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned, bfd_vma, int));
 
 static void
 print_register_list (dis_info, value, offset, load_store)
@@ -97,66 +111,70 @@ print_register_list (dis_info, value, offset, load_store)
 
 static void
 print_hi_register_list_ld (cd, dis_info, value, attrs, pc, length)
-     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
+     CGEN_CPU_DESC cd;
      PTR dis_info;
      long value;
-     unsigned int attrs ATTRIBUTE_UNUSED;
-     bfd_vma pc ATTRIBUTE_UNUSED;
-     int length ATTRIBUTE_UNUSED;
+     unsigned int attrs;
+     bfd_vma pc;
+     int length;
 {
   print_register_list (dis_info, value, 8, 0/*load*/);
 }
 
 static void
 print_low_register_list_ld (cd, dis_info, value, attrs, pc, length)
-     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
+     CGEN_CPU_DESC cd;
      PTR dis_info;
      long value;
-     unsigned int attrs ATTRIBUTE_UNUSED;
-     bfd_vma pc ATTRIBUTE_UNUSED;
-     int length ATTRIBUTE_UNUSED;
+     unsigned int attrs;
+     bfd_vma pc;
+     int length;
 {
   print_register_list (dis_info, value, 0, 0/*load*/);
 }
 
 static void
 print_hi_register_list_st (cd, dis_info, value, attrs, pc, length)
-     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
+     CGEN_CPU_DESC cd;
      PTR dis_info;
      long value;
-     unsigned int attrs ATTRIBUTE_UNUSED;
-     bfd_vma pc ATTRIBUTE_UNUSED;
-     int length ATTRIBUTE_UNUSED;
+     unsigned int attrs;
+     bfd_vma pc;
+     int length;
 {
   print_register_list (dis_info, value, 8, 1/*store*/);
 }
 
 static void
 print_low_register_list_st (cd, dis_info, value, attrs, pc, length)
-     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
+     CGEN_CPU_DESC cd;
      PTR dis_info;
      long value;
-     unsigned int attrs ATTRIBUTE_UNUSED;
-     bfd_vma pc ATTRIBUTE_UNUSED;
-     int length ATTRIBUTE_UNUSED;
+     unsigned int attrs;
+     bfd_vma pc;
+     int length;
 {
   print_register_list (dis_info, value, 0, 1/*store*/);
 }
 
 static void
 print_m4 (cd, dis_info, value, attrs, pc, length)
-     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
+     CGEN_CPU_DESC cd;
      PTR dis_info;
      long value;
-     unsigned int attrs ATTRIBUTE_UNUSED;
-     bfd_vma pc ATTRIBUTE_UNUSED;
-     int length ATTRIBUTE_UNUSED;
+     unsigned int attrs;
+     bfd_vma pc;
+     int length;
 {
   disassemble_info *info = (disassemble_info *) dis_info;
   (*info->fprintf_func) (info->stream, "%ld", value);
 }
 /* -- */
 
+void fr30_cgen_print_operand
+  PARAMS ((CGEN_CPU_DESC, int, PTR, CGEN_FIELDS *,
+           void const *, bfd_vma, int));
+
 /* Main entry point for printing operands.
    XINFO is a `void *' and not a `disassemble_info *' to not put a requirement
    of dis-asm.h on cgen.h.
@@ -325,21 +343,12 @@ fr30_cgen_init_dis (cd)
 
 static void
 print_normal (cd, dis_info, value, attrs, pc, length)
-#ifdef CGEN_PRINT_NORMAL
-     CGEN_CPU_DESC cd;
-#else
      CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
-#endif
      PTR dis_info;
      long value;
      unsigned int attrs;
-#ifdef CGEN_PRINT_NORMAL
-     bfd_vma pc;
-     int length;
-#else
      bfd_vma pc ATTRIBUTE_UNUSED;
      int length ATTRIBUTE_UNUSED;
-#endif
 {
   disassemble_info *info = (disassemble_info *) dis_info;
 
@@ -360,21 +369,12 @@ print_normal (cd, dis_info, value, attrs, pc, length)
 
 static void
 print_address (cd, dis_info, value, attrs, pc, length)
-#ifdef CGEN_PRINT_NORMAL
-     CGEN_CPU_DESC cd;
-#else
      CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
-#endif
      PTR dis_info;
      bfd_vma value;
      unsigned int attrs;
-#ifdef CGEN_PRINT_NORMAL
-     bfd_vma pc;
-     int length;
-#else
      bfd_vma pc ATTRIBUTE_UNUSED;
      int length ATTRIBUTE_UNUSED;
-#endif
 {
   disassemble_info *info = (disassemble_info *) dis_info;
 
@@ -457,6 +457,7 @@ print_insn_normal (cd, dis_info, insn, fields, pc, length)
 /* Subroutine of print_insn. Reads an insn into the given buffers and updates
    the extract info.
    Returns 0 if all is well, non-zero otherwise.  */
+
 static int
 read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
      CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
@@ -494,7 +495,7 @@ print_insn (cd, pc, info, buf, buflen)
      bfd_vma pc;
      disassemble_info *info;
      char *buf;
-     int buflen;
+     unsigned int buflen;
 {
   CGEN_INSN_INT insn_value;
   const CGEN_INSN_LIST *insn_list;
@@ -522,7 +523,7 @@ print_insn (cd, pc, info, buf, buflen)
       unsigned long insn_value_cropped;
 
 #ifdef CGEN_VALIDATE_INSN_SUPPORTED 
-      /* not needed as insn shouldn't be in hash lists if not supported */
+      /* Not needed as insn shouldn't be in hash lists if not supported.  */
       /* Supported by this cpu?  */
       if (! fr30_cgen_insn_supported (cd, insn))
         {
@@ -537,7 +538,7 @@ print_insn (cd, pc, info, buf, buflen)
 
       /* Base size may exceed this instruction's size.  Extract the
          relevant part from the buffer. */
-      if ((CGEN_INSN_BITSIZE (insn) / 8) < buflen &&
+      if ((unsigned) (CGEN_INSN_BITSIZE (insn) / 8) < buflen &&
          (unsigned) (CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long))
        insn_value_cropped = bfd_get_bits (buf, CGEN_INSN_BITSIZE (insn), 
                                           info->endian == BFD_ENDIAN_BIG);
@@ -553,7 +554,7 @@ print_insn (cd, pc, info, buf, buflen)
 
          /* Make sure the entire insn is loaded into insn_value, if it
             can fit.  */
-         if ((unsigned) CGEN_INSN_BITSIZE (insn) > cd->base_insn_bitsize &&
+         if (((unsigned) CGEN_INSN_BITSIZE (insn) > cd->base_insn_bitsize) &&
              (unsigned) (CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long))
            {
              unsigned long full_insn_value;
index 7c078867d7476191afc961397da4d8da258dac71..99bf3ac7c221f7797b0babed56fbebff87d6a504 100644 (file)
@@ -25,6 +25,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
    Keep that in mind.  */
 
 #include "sysdep.h"
+#include <ctype.h>
 #include <stdio.h>
 #include "ansidecl.h"
 #include "dis-asm.h"
@@ -59,27 +60,15 @@ static int extract_insn_normal
 static void put_insn_int_value
      PARAMS ((CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT));
 #endif
-static CGEN_INLINE int fill_cache
-     PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma));
-static CGEN_INLINE long extract_1
-     PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int, unsigned char *,
-             bfd_vma));
+#if ! CGEN_INT_INSN_P
 static CGEN_INLINE void insert_1
      PARAMS ((CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *));
-const char * fr30_cgen_insert_operand
-     PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma));
-int fr30_cgen_extract_operand
-     PARAMS ((CGEN_CPU_DESC, int, CGEN_EXTRACT_INFO *, CGEN_INSN_INT, CGEN_FIELDS *,
-             bfd_vma));
-int fr30_cgen_get_int_operand
-     PARAMS ((CGEN_CPU_DESC, int, const CGEN_FIELDS *));
-bfd_vma fr30_cgen_get_vma_operand
-     PARAMS ((CGEN_CPU_DESC, int, const CGEN_FIELDS *));
-void fr30_cgen_set_int_operand
-     PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, int));
-void fr30_cgen_set_vma_operand
-     PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, bfd_vma));
-
+static CGEN_INLINE int fill_cache
+     PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *,  int, int, bfd_vma));
+static CGEN_INLINE long extract_1
+     PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int,
+             unsigned char *, bfd_vma));
+#endif
 \f
 /* Operand insertion.  */
 
@@ -96,9 +85,8 @@ insert_1 (cd, value, start, length, word_length, bufp)
 {
   unsigned long x,mask;
   int shift;
-  int big_p = CGEN_CPU_INSN_ENDIAN (cd) == CGEN_ENDIAN_BIG;
 
-  x = bfd_get_bits (bufp, word_length, big_p);
+  x = cgen_get_insn_value (cd, bufp, word_length);
 
   /* Written this way to avoid undefined behaviour.  */
   mask = (((1L << (length - 1)) - 1) << 1) | 1;
@@ -108,7 +96,7 @@ insert_1 (cd, value, start, length, word_length, bufp)
     shift = (word_length - (start + length));
   x = (x & ~(mask << shift)) | ((value & mask) << shift);
 
-  bfd_put_bits ((bfd_vma) x, bufp, word_length, big_p);
+  cgen_put_insn_value (cd, bufp, word_length, (bfd_vma) x);
 }
 
 #endif /* ! CGEN_INT_INSN_P */
@@ -268,7 +256,7 @@ insert_insn_normal (cd, insn, fields, buffer, pc)
 
 #else
 
-  cgen_put_insn_value (cd, buffer, min (cd->base_insn_bitsize,
+  cgen_put_insn_value (cd, buffer, min ((unsigned) cd->base_insn_bitsize,
                                        (unsigned) CGEN_FIELDS_BITSIZE (fields)),
                       value);
 
@@ -385,10 +373,11 @@ extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
 {
   unsigned long x;
   int shift;
+#if 0
   int big_p = CGEN_CPU_INSN_ENDIAN (cd) == CGEN_ENDIAN_BIG;
 
-  x = bfd_get_bits (bufp, word_length, big_p);
-
+  x = cgen_get_insn_value (cd, bufp, word_length);
+#endif
   if (CGEN_INSN_LSB0_P)
     shift = (start + 1) - length;
   else
@@ -550,6 +539,9 @@ extract_insn_normal (cd, insn, ex_info, insn_value, fields, pc)
 \f
 /* machine generated code added here */
 
+const char * fr30_cgen_insert_operand
+  PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma));
+
 /* Main entry point for operand insertion.
 
    This function is basically just a big switch statement.  Earlier versions
@@ -571,7 +563,7 @@ fr30_cgen_insert_operand (cd, opindex, fields, buffer, pc)
      int opindex;
      CGEN_FIELDS * fields;
      CGEN_INSN_BYTES_PTR buffer;
-     bfd_vma pc;
+     bfd_vma pc ATTRIBUTE_UNUSED;
 {
   const char * errmsg = NULL;
   unsigned int total_length = CGEN_FIELDS_BITSIZE (fields);
@@ -744,6 +736,10 @@ fr30_cgen_insert_operand (cd, opindex, fields, buffer, pc)
   return errmsg;
 }
 
+int fr30_cgen_extract_operand
+  PARAMS ((CGEN_CPU_DESC, int, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
+           CGEN_FIELDS *, bfd_vma));
+
 /* Main entry point for operand extraction.
    The result is <= 0 for error, >0 for success.
    ??? Actual values aren't well defined right now.
@@ -958,6 +954,11 @@ cgen_extract_fn * const fr30_cgen_extract_handlers[] =
   extract_insn_normal,
 };
 
+int fr30_cgen_get_int_operand
+  PARAMS ((CGEN_CPU_DESC, int, const CGEN_FIELDS *));
+bfd_vma fr30_cgen_get_vma_operand
+  PARAMS ((CGEN_CPU_DESC, int, const CGEN_FIELDS *));
+
 /* Getting values from cgen_fields is handled by a collection of functions.
    They are distinguished by the type of the VALUE argument they return.
    TODO: floating point, inlining support, remove cases where result type
@@ -1221,6 +1222,11 @@ fr30_cgen_get_vma_operand (cd, opindex, fields)
   return value;
 }
 
+void fr30_cgen_set_int_operand
+  PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, int));
+void fr30_cgen_set_vma_operand
+  PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, bfd_vma));
+
 /* Stuffing values in cgen_fields is handled by a collection of functions.
    They are distinguished by the type of the VALUE argument they accept.
    TODO: floating point, inlining support, remove cases where argument type
index caa039ac7efc049c74bb78f6c394ab2a3b1a0fec..e1167d962bf20b58521bf07c2492859a62f54973 100644 (file)
@@ -33,11 +33,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 /* The hash functions are recorded here to help keep assembler code out of
    the disassembler and vice versa.  */
 
-static int           asm_hash_insn_p    PARAMS ((const CGEN_INSN *));
-static unsigned int  asm_hash_insn      PARAMS ((const char *));
-static int           dis_hash_insn_p    PARAMS ((const CGEN_INSN *));
-static unsigned int  dis_hash_insn      PARAMS ((const char *, CGEN_INSN_INT));
-static void          set_fields_bitsize PARAMS ((CGEN_FIELDS *, int));
+static int asm_hash_insn_p PARAMS ((const CGEN_INSN *));
+static unsigned int asm_hash_insn PARAMS ((const char *));
+static int dis_hash_insn_p PARAMS ((const CGEN_INSN *));
+static unsigned int dis_hash_insn PARAMS ((const char *, CGEN_INSN_INT));
 
 /* Instruction formats.  */
 
@@ -1335,12 +1334,14 @@ asm_hash_insn (mnem)
 
 static unsigned int
 dis_hash_insn (buf, value)
-     const char * buf;
+     const char * buf ATTRIBUTE_UNUSED;
      CGEN_INSN_INT value ATTRIBUTE_UNUSED;
 {
   return CGEN_DIS_HASH (buf, value);
 }
 
+static void set_fields_bitsize PARAMS ((CGEN_FIELDS *, int));
+
 /* Set the recorded length of the insn in the CGEN_FIELDS struct.  */
 
 static void
index a12cfd8681ed27b160a8c4e488e532c0e5b70ecc..496ab47f4616f9ca045e6e6e2e974c94e8e48bc5 100644 (file)
@@ -26,9 +26,9 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
    Keep that in mind.  */
 
 #include "sysdep.h"
+#include <ctype.h>
 #include <stdio.h>
 #include "ansidecl.h"
-#include "safe-ctype.h"
 #include "bfd.h"
 #include "symcat.h"
 #include "m32r-desc.h"
@@ -42,16 +42,20 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
 #undef max
 #define max(a,b) ((a) > (b) ? (a) : (b))
 
-static const char * parse_insn_normal       PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *));
-static const char * parse_hash              PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
-static const char * parse_hi16              PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
-static const char * parse_slo16             PARAMS ((CGEN_CPU_DESC, const char **, int, long *));
-static const char * parse_ulo16             PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
-       const char * m32r_cgen_parse_operand PARAMS ((CGEN_CPU_DESC, int, const char **, CGEN_FIELDS *));
+static const char * parse_insn_normal
+     PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *));
 \f
 /* -- assembler routines inserted here */
 
 /* -- asm.c */
+static const char * parse_hash
+  PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
+static const char * parse_hi16
+  PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
+static const char * parse_slo16
+  PARAMS ((CGEN_CPU_DESC, const char **, int, long *));
+static const char * parse_ulo16
+  PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
 
 /* Handle '#' prefixes (i.e. skip over them).  */
 
@@ -201,6 +205,9 @@ parse_ulo16 (cd, strp, opindex, valuep)
 
 /* -- */
 
+const char * m32r_cgen_parse_operand
+  PARAMS ((CGEN_CPU_DESC, int, const char **, CGEN_FIELDS *));
+
 /* Main entry point for operand parsing.
 
    This function is basically just a big switch statement.  Earlier versions
@@ -224,7 +231,7 @@ m32r_cgen_parse_operand (cd, opindex, strp, fields)
 {
   const char * errmsg = NULL;
   /* Used by scalar operands that still need to be parsed.  */
-  long junk;
+  long junk ATTRIBUTE_UNUSED;
 
   switch (opindex)
     {
@@ -350,8 +357,7 @@ m32r_cgen_init_asm (cd)
   It then compiles the regex and stores it in the opcode, for
   later use by m32r_cgen_assemble_insn
 
-  returns NULL for success, an error message for failure 
-*/
+  Returns NULL for success, an error message for failure. */
 
 char * 
 m32r_cgen_build_insn_regex (insn)
@@ -474,14 +480,14 @@ parse_insn_normal (cd, insn, strp, fields)
      GAS's input scrubber will ensure mnemonics are lowercase, but we may
      not be called from GAS.  */
   p = CGEN_INSN_MNEMONIC (insn);
-  while (*p && TOLOWER (*p) == TOLOWER (*str))
+  while (*p && tolower (*p) == tolower (*str))
     ++p, ++str;
 
   if (* p)
     return _("unrecognized instruction");
 
 #ifndef CGEN_MNEMONIC_OPERANDS
-  if (* str && !ISSPACE (* str))
+  if (* str && !isspace (* str))
     return _("unrecognized instruction");
 #endif
 
@@ -510,7 +516,7 @@ parse_insn_normal (cd, insn, strp, fields)
             first char after the mnemonic part is a space.  */
          /* FIXME: We also take inappropriate advantage of the fact that
             GAS's input scrubber will remove extraneous blanks.  */
-         if (TOLOWER (*str) == TOLOWER (CGEN_SYNTAX_CHAR (* syn)))
+         if (tolower (*str) == tolower (CGEN_SYNTAX_CHAR (* syn)))
            {
 #ifdef CGEN_MNEMONIC_OPERANDS
              if (CGEN_SYNTAX_CHAR(* syn) == ' ')
@@ -557,7 +563,7 @@ parse_insn_normal (cd, insn, strp, fields)
         blanks now.  IE: We needn't try again with a longer version of
         the insn and it is assumed that longer versions of insns appear
         before shorter ones (eg: lsr r2,r3,1 vs lsr r2,r3).  */
-      while (ISSPACE (* str))
+      while (isspace (* str))
        ++ str;
 
       if (* str != '\0')
@@ -606,7 +612,7 @@ m32r_cgen_assemble_insn (cd, str, fields, buf, errmsg)
   int recognized_mnemonic = 0;
 
   /* Skip leading white space.  */
-  while (ISSPACE (* str))
+  while (isspace (* str))
     ++ str;
 
   /* The instructions are stored in hashed lists.
index 824beea767a4126079a7712c71544bf3f4425dc8..5c63a2f956c19e5a7f9e41b4bfc189aa9619a55e 100644 (file)
@@ -23,6 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 */
 
 #include "sysdep.h"
+#include <ctype.h>
 #include <stdio.h>
 #include <stdarg.h>
 #include "ansidecl.h"
@@ -33,13 +34,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "opintl.h"
 #include "libiberty.h"
 
-static void               init_tables               PARAMS ((void));
-static const CGEN_MACH *  lookup_mach_via_bfd_name  PARAMS ((const CGEN_MACH *, const char *));
-static void               build_hw_table            PARAMS ((CGEN_CPU_TABLE *));
-static void               build_ifield_table        PARAMS ((CGEN_CPU_TABLE *));
-static void               build_operand_table       PARAMS ((CGEN_CPU_TABLE *));
-static void               build_insn_table          PARAMS ((CGEN_CPU_TABLE *));
-static void               m32r_cgen_rebuild_tables  PARAMS ((CGEN_CPU_TABLE *));
 /* Attributes.  */
 
 static const CGEN_ATTR_ENTRY bool_attr[] =
@@ -1091,12 +1085,21 @@ static const CGEN_IBASE m32r_cgen_insn_table[MAX_INSNS] =
 #undef A
 
 /* Initialize anything needed to be done once, before any cpu_open call.  */
+static void init_tables PARAMS ((void));
 
 static void
 init_tables ()
 {
 }
 
+static const CGEN_MACH * lookup_mach_via_bfd_name
+  PARAMS ((const CGEN_MACH *, const char *));
+static void build_hw_table  PARAMS ((CGEN_CPU_TABLE *));
+static void build_ifield_table  PARAMS ((CGEN_CPU_TABLE *));
+static void build_operand_table PARAMS ((CGEN_CPU_TABLE *));
+static void build_insn_table    PARAMS ((CGEN_CPU_TABLE *));
+static void m32r_cgen_rebuild_tables PARAMS ((CGEN_CPU_TABLE *));
+
 /* Subroutine of m32r_cgen_cpu_open to look up a mach via its bfd name.  */
 
 static const CGEN_MACH *
index 150f6eeeaffb87511128981a681621c8ec563461..287d6bc935a8281e17ec0a5309c15c4815bf1e37 100644 (file)
@@ -48,13 +48,9 @@ static void print_insn_normal
      PARAMS ((CGEN_CPU_DESC, PTR, const CGEN_INSN *, CGEN_FIELDS *,
              bfd_vma, int));
 static int print_insn
-     PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int));
-static void print_hash
-     PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned, bfd_vma, int));
-static int my_print_insn
+     PARAMS ((CGEN_CPU_DESC, bfd_vma,  disassemble_info *, char *, unsigned));
+static int default_print_insn
      PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *));
-void m32r_cgen_print_operand
-     PARAMS ((CGEN_CPU_DESC, int, PTR, CGEN_FIELDS *, void const *, bfd_vma, int));
 static int read_insn
      PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int,
              CGEN_EXTRACT_INFO *, unsigned long *));
@@ -62,31 +58,35 @@ static int read_insn
 /* -- disassembler routines inserted here */
 
 /* -- dis.c */
+static void print_hash PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned, bfd_vma, int));
+static int my_print_insn PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *));
 
 /* Immediate values are prefixed with '#'.  */
 
-#define CGEN_PRINT_NORMAL(cd, info, value, attrs, pc, length) \
-do { \
-  if (CGEN_BOOL_ATTR ((attrs), CGEN_OPERAND_HASH_PREFIX)) \
-    (*info->fprintf_func) (info->stream, "#"); \
-} while (0)
+#define CGEN_PRINT_NORMAL(cd, info, value, attrs, pc, length)  \
+  do                                                           \
+    {                                                          \
+      if (CGEN_BOOL_ATTR ((attrs), CGEN_OPERAND_HASH_PREFIX))  \
+        (*info->fprintf_func) (info->stream, "#");             \
+    }                                                          \
+  while (0)
 
 /* Handle '#' prefixes as operands.  */
 
 static void
 print_hash (cd, dis_info, value, attrs, pc, length)
-     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
+     CGEN_CPU_DESC cd;
      PTR dis_info;
-     long value ATTRIBUTE_UNUSED;
-     unsigned int attrs ATTRIBUTE_UNUSED;
-     bfd_vma pc ATTRIBUTE_UNUSED;
-     int length ATTRIBUTE_UNUSED;
+     long value;
+     unsigned int attrs;
+     bfd_vma pc;
+     int length;
 {
   disassemble_info *info = (disassemble_info *) dis_info;
   (*info->fprintf_func) (info->stream, "#");
 }
 
-#undef CGEN_PRINT_INSN
+#undef  CGEN_PRINT_INSN
 #define CGEN_PRINT_INSN my_print_insn
 
 static int
@@ -141,6 +141,10 @@ my_print_insn (cd, pc, info)
 
 /* -- */
 
+void m32r_cgen_print_operand
+  PARAMS ((CGEN_CPU_DESC, int, PTR, CGEN_FIELDS *,
+           void const *, bfd_vma, int));
+
 /* Main entry point for printing operands.
    XINFO is a `void *' and not a `disassemble_info *' to not put a requirement
    of dis-asm.h on cgen.h.
@@ -270,21 +274,12 @@ m32r_cgen_init_dis (cd)
 
 static void
 print_normal (cd, dis_info, value, attrs, pc, length)
-#ifdef CGEN_PRINT_NORMAL
      CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
-#else
-     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
-#endif
      PTR dis_info;
      long value;
      unsigned int attrs;
-#ifdef CGEN_PRINT_NORMAL
-     bfd_vma pc ATTRIBUTE_UNUSED;
-     int length ATTRIBUTE_UNUSED;
-#else
      bfd_vma pc ATTRIBUTE_UNUSED;
      int length ATTRIBUTE_UNUSED;
-#endif
 {
   disassemble_info *info = (disassemble_info *) dis_info;
 
@@ -305,21 +300,12 @@ print_normal (cd, dis_info, value, attrs, pc, length)
 
 static void
 print_address (cd, dis_info, value, attrs, pc, length)
-#ifdef CGEN_PRINT_NORMAL
-     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
-#else
      CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
-#endif
      PTR dis_info;
      bfd_vma value;
      unsigned int attrs;
-#ifdef CGEN_PRINT_NORMAL
      bfd_vma pc ATTRIBUTE_UNUSED;
      int length ATTRIBUTE_UNUSED;
-#else
-     bfd_vma pc ATTRIBUTE_UNUSED;
-     int length ATTRIBUTE_UNUSED;
-#endif
 {
   disassemble_info *info = (disassemble_info *) dis_info;
 
@@ -402,6 +388,7 @@ print_insn_normal (cd, dis_info, insn, fields, pc, length)
 /* Subroutine of print_insn. Reads an insn into the given buffers and updates
    the extract info.
    Returns 0 if all is well, non-zero otherwise.  */
+
 static int
 read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
      CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
@@ -439,7 +426,7 @@ print_insn (cd, pc, info, buf, buflen)
      bfd_vma pc;
      disassemble_info *info;
      char *buf;
-     int buflen;
+     unsigned int buflen;
 {
   CGEN_INSN_INT insn_value;
   const CGEN_INSN_LIST *insn_list;
@@ -467,7 +454,7 @@ print_insn (cd, pc, info, buf, buflen)
       unsigned long insn_value_cropped;
 
 #ifdef CGEN_VALIDATE_INSN_SUPPORTED 
-      /* not needed as insn shouldn't be in hash lists if not supported */
+      /* Not needed as insn shouldn't be in hash lists if not supported.  */
       /* Supported by this cpu?  */
       if (! m32r_cgen_insn_supported (cd, insn))
         {
@@ -482,8 +469,8 @@ print_insn (cd, pc, info, buf, buflen)
 
       /* Base size may exceed this instruction's size.  Extract the
          relevant part from the buffer. */
-      if ((CGEN_INSN_BITSIZE (insn) / 8) < buflen
-         && (unsigned) (CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long))
+      if ((unsigned) (CGEN_INSN_BITSIZE (insn) / 8) < buflen &&
+         (unsigned) (CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long))
        insn_value_cropped = bfd_get_bits (buf, CGEN_INSN_BITSIZE (insn), 
                                           info->endian == BFD_ENDIAN_BIG);
       else
@@ -498,8 +485,8 @@ print_insn (cd, pc, info, buf, buflen)
 
          /* Make sure the entire insn is loaded into insn_value, if it
             can fit.  */
-         if ((unsigned) CGEN_INSN_BITSIZE (insn) > cd->base_insn_bitsize
-             && ((unsigned) CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long))
+         if (((unsigned) CGEN_INSN_BITSIZE (insn) > cd->base_insn_bitsize) &&
+             (unsigned) (CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long))
            {
              unsigned long full_insn_value;
              int rc = read_insn (cd, pc, info, buf,
@@ -537,9 +524,7 @@ print_insn (cd, pc, info, buf, buflen)
 
 #ifndef CGEN_PRINT_INSN
 #define CGEN_PRINT_INSN default_print_insn
-
-static int default_print_insn
-     PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *));
+#endif
 
 static int
 default_print_insn (cd, pc, info)
@@ -570,7 +555,6 @@ default_print_insn (cd, pc, info)
 
   return print_insn (cd, pc, info, buf, buflen);
 }
-#endif
 
 /* Main entry point.
    Print one instruction from PC on INFO->STREAM.
index 3541f71d40046f67a610fcb20070373699922e4c..6c32b2327447e2831cc12e2fcf23e97204227a8c 100644 (file)
@@ -25,6 +25,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
    Keep that in mind.  */
 
 #include "sysdep.h"
+#include <ctype.h>
 #include <stdio.h>
 #include "ansidecl.h"
 #include "dis-asm.h"
@@ -48,7 +49,6 @@ static const char * insert_normal
 static const char * insert_insn_normal
      PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *,
              CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma));
-
 static int extract_normal
      PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
              unsigned int, unsigned int, unsigned int, unsigned int,
@@ -56,20 +56,19 @@ static int extract_normal
 static int extract_insn_normal
      PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
              CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma));
+#if CGEN_INT_INSN_P
 static void put_insn_int_value
      PARAMS ((CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT));
-const char * m32r_cgen_insert_operand
-     PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma));
-int m32r_cgen_extract_operand
-     PARAMS ((CGEN_CPU_DESC, int, CGEN_EXTRACT_INFO *, CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma));
-int m32r_cgen_get_int_operand
-     PARAMS ((CGEN_CPU_DESC, int, const CGEN_FIELDS *));
-bfd_vma m32r_cgen_get_vma_operand
-     PARAMS ((CGEN_CPU_DESC, int, const CGEN_FIELDS *));
-void m32r_cgen_set_int_operand
-     PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, int));
-void m32r_cgen_set_vma_operand
-     PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, bfd_vma));
+#endif
+#if ! CGEN_INT_INSN_P
+static CGEN_INLINE void insert_1
+     PARAMS ((CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *));
+static CGEN_INLINE int fill_cache
+     PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *,  int, int, bfd_vma));
+static CGEN_INLINE long extract_1
+     PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int,
+             unsigned char *, bfd_vma));
+#endif
 \f
 /* Operand insertion.  */
 
@@ -86,9 +85,8 @@ insert_1 (cd, value, start, length, word_length, bufp)
 {
   unsigned long x,mask;
   int shift;
-  int big_p = CGEN_CPU_INSN_ENDIAN (cd) == CGEN_ENDIAN_BIG;
 
-  x = bfd_get_bits (bufp, word_length, big_p);
+  x = cgen_get_insn_value (cd, bufp, word_length);
 
   /* Written this way to avoid undefined behaviour.  */
   mask = (((1L << (length - 1)) - 1) << 1) | 1;
@@ -98,7 +96,7 @@ insert_1 (cd, value, start, length, word_length, bufp)
     shift = (word_length - (start + length));
   x = (x & ~(mask << shift)) | ((value & mask) << shift);
 
-  bfd_put_bits ((bfd_vma) x, bufp, word_length, big_p);
+  cgen_put_insn_value (cd, bufp, word_length, (bfd_vma) x);
 }
 
 #endif /* ! CGEN_INT_INSN_P */
@@ -258,8 +256,8 @@ insert_insn_normal (cd, insn, fields, buffer, pc)
 
 #else
 
-  cgen_put_insn_value (cd, buffer, min (cd->base_insn_bitsize,
-                                       CGEN_FIELDS_BITSIZE (fields)),
+  cgen_put_insn_value (cd, buffer, min ((unsigned) cd->base_insn_bitsize,
+                                       (unsigned) CGEN_FIELDS_BITSIZE (fields)),
                       value);
 
 #endif /* ! CGEN_INT_INSN_P */
@@ -285,6 +283,7 @@ insert_insn_normal (cd, insn, fields, buffer, pc)
   return NULL;
 }
 
+#if CGEN_INT_INSN_P
 /* Cover function to store an insn value into an integral insn.  Must go here
  because it needs <prefix>-desc.h for CGEN_INT_INSN_P.  */
 
@@ -308,6 +307,7 @@ put_insn_int_value (cd, buf, length, insn_length, value)
       *buf = (*buf & ~(mask << shift)) | ((value & mask) << shift);
     }
 }
+#endif
 \f
 /* Operand extraction.  */
 
@@ -321,14 +321,14 @@ put_insn_int_value (cd, buf, length, insn_length, value)
 
 static CGEN_INLINE int
 fill_cache (cd, ex_info, offset, bytes, pc)
-     CGEN_CPU_DESC cd;
+     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
      CGEN_EXTRACT_INFO *ex_info;
      int offset, bytes;
      bfd_vma pc;
 {
   /* It's doubtful that the middle part has already been fetched so
      we don't optimize that case.  kiss.  */
-  int mask;
+  unsigned int mask;
   disassemble_info *info = (disassemble_info *) ex_info->dis_info;
 
   /* First do a quick check.  */
@@ -366,17 +366,18 @@ fill_cache (cd, ex_info, offset, bytes, pc)
 static CGEN_INLINE long
 extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
      CGEN_CPU_DESC cd;
-     CGEN_EXTRACT_INFO *ex_info;
+     CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
      int start,length,word_length;
      unsigned char *bufp;
-     bfd_vma pc;
+     bfd_vma pc ATTRIBUTE_UNUSED;
 {
   unsigned long x;
   int shift;
+#if 0
   int big_p = CGEN_CPU_INSN_ENDIAN (cd) == CGEN_ENDIAN_BIG;
 
-  x = bfd_get_bits (bufp, word_length, big_p);
-
+  x = cgen_get_insn_value (cd, bufp, word_length);
+#endif
   if (CGEN_INSN_LSB0_P)
     shift = (start + 1) - length;
   else
@@ -538,6 +539,9 @@ extract_insn_normal (cd, insn, ex_info, insn_value, fields, pc)
 \f
 /* machine generated code added here */
 
+const char * m32r_cgen_insert_operand
+  PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma));
+
 /* Main entry point for operand insertion.
 
    This function is basically just a big switch statement.  Earlier versions
@@ -559,7 +563,7 @@ m32r_cgen_insert_operand (cd, opindex, fields, buffer, pc)
      int opindex;
      CGEN_FIELDS * fields;
      CGEN_INSN_BYTES_PTR buffer;
-     bfd_vma pc;
+     bfd_vma pc ATTRIBUTE_UNUSED;
 {
   const char * errmsg = NULL;
   unsigned int total_length = CGEN_FIELDS_BITSIZE (fields);
@@ -661,6 +665,10 @@ m32r_cgen_insert_operand (cd, opindex, fields, buffer, pc)
   return errmsg;
 }
 
+int m32r_cgen_extract_operand
+  PARAMS ((CGEN_CPU_DESC, int, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
+           CGEN_FIELDS *, bfd_vma));
+
 /* Main entry point for operand extraction.
    The result is <= 0 for error, >0 for success.
    ??? Actual values aren't well defined right now.
@@ -801,6 +809,11 @@ cgen_extract_fn * const m32r_cgen_extract_handlers[] =
   extract_insn_normal,
 };
 
+int m32r_cgen_get_int_operand
+  PARAMS ((CGEN_CPU_DESC, int, const CGEN_FIELDS *));
+bfd_vma m32r_cgen_get_vma_operand
+  PARAMS ((CGEN_CPU_DESC, int, const CGEN_FIELDS *));
+
 /* Getting values from cgen_fields is handled by a collection of functions.
    They are distinguished by the type of the VALUE argument they return.
    TODO: floating point, inlining support, remove cases where result type
@@ -986,6 +999,11 @@ m32r_cgen_get_vma_operand (cd, opindex, fields)
   return value;
 }
 
+void m32r_cgen_set_int_operand
+  PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, int));
+void m32r_cgen_set_vma_operand
+  PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, bfd_vma));
+
 /* Stuffing values in cgen_fields is handled by a collection of functions.
    They are distinguished by the type of the VALUE argument they accept.
    TODO: floating point, inlining support, remove cases where argument type
index 5793ad687120e11ad4f475114d31b3cccb4ee1d7..56e7c933c6fd61144094f26f212e2370778b333e 100644 (file)
@@ -33,11 +33,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 /* The hash functions are recorded here to help keep assembler code out of
    the disassembler and vice versa.  */
 
-static int           asm_hash_insn_p     PARAMS ((const CGEN_INSN *));
-static unsigned int  asm_hash_insn       PARAMS ((const char *));
-static int           dis_hash_insn_p     PARAMS ((const CGEN_INSN *));
-static unsigned int  dis_hash_insn       PARAMS ((const char *, CGEN_INSN_INT));
-static void          set_fields_bitsize  PARAMS ((CGEN_FIELDS *, int));
+static int asm_hash_insn_p PARAMS ((const CGEN_INSN *));
+static unsigned int asm_hash_insn PARAMS ((const char *));
+static int dis_hash_insn_p PARAMS ((const CGEN_INSN *));
+static unsigned int dis_hash_insn PARAMS ((const char *, CGEN_INSN_INT));
 
 /* Instruction formats.  */
 
@@ -1652,12 +1651,14 @@ asm_hash_insn (mnem)
 
 static unsigned int
 dis_hash_insn (buf, value)
-     const char * buf;
+     const char * buf ATTRIBUTE_UNUSED;
      CGEN_INSN_INT value ATTRIBUTE_UNUSED;
 {
   return CGEN_DIS_HASH (buf, value);
 }
 
+static void set_fields_bitsize PARAMS ((CGEN_FIELDS *, int));
+
 /* Set the recorded length of the insn in the CGEN_FIELDS struct.  */
 
 static void
index 781f8e78fc9146cf511e830a82467db5123d560b..aaaa1c0749a2fb8fc4dee8c97ba1effa3f1a2ff4 100644 (file)
@@ -36,9 +36,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #else
 #define OP_ENT(op) M32R_OPERAND_/**/op
 #endif
-#define INPUT    CGEN_OPINST_INPUT
-#define OUTPUT   CGEN_OPINST_OUTPUT
-#define END      CGEN_OPINST_END, "", 0, 0, 0, 0, 0 
+#define INPUT CGEN_OPINST_INPUT
+#define OUTPUT CGEN_OPINST_OUTPUT
+#define END CGEN_OPINST_END
 #define COND_REF CGEN_OPINST_COND_REF
 
 static const CGEN_OPINST sfmt_empty_ops[] = {
index b414cb574bbe59a27cea9d88471562d47fd122e6..de9b554719eb7cde50d798aa1a9274a3ddfd9efb 100644 (file)
@@ -26,9 +26,9 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
    Keep that in mind.  */
 
 #include "sysdep.h"
+#include <ctype.h>
 #include <stdio.h>
 #include "ansidecl.h"
-#include "safe-ctype.h"
 #include "bfd.h"
 #include "symcat.h"
 #include "openrisc-desc.h"
@@ -44,14 +44,6 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
 
 static const char * parse_insn_normal
      PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *));
-long openrisc_sign_extend_16bit
-     PARAMS ((long));
-static const char * parse_hi16
-     PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
-static const char * parse_lo16
-     PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
-const char * openrisc_cgen_parse_operand
-     PARAMS ((CGEN_CPU_DESC, int, const char **, CGEN_FIELDS *));
 \f
 /* -- assembler routines inserted here */
 
@@ -59,6 +51,11 @@ const char * openrisc_cgen_parse_operand
 
 #define CGEN_VERBOSE_ASSEMBLER_ERRORS
 
+static const char * parse_hi16
+  PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
+static const char * parse_lo16
+  PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
+
 long
 openrisc_sign_extend_16bit (value)
      long value;
@@ -66,7 +63,6 @@ openrisc_sign_extend_16bit (value)
   return (long) (short) value;
 }
 
-
 /* Handle hi().  */
 
 static const char *
@@ -116,8 +112,7 @@ parse_hi16 (cd, strp, opindex, valuep)
   return errmsg;
 }
 
-
-/* Handle lo() */
+/* Handle lo().  */
 
 static const char *
 parse_lo16 (cd, strp, opindex, valuep)
@@ -167,6 +162,9 @@ parse_lo16 (cd, strp, opindex, valuep)
 
 /* -- */
 
+const char * openrisc_cgen_parse_operand
+  PARAMS ((CGEN_CPU_DESC, int, const char **, CGEN_FIELDS *));
+
 /* Main entry point for operand parsing.
 
    This function is basically just a big switch statement.  Earlier versions
@@ -278,8 +276,7 @@ openrisc_cgen_init_asm (cd)
   It then compiles the regex and stores it in the opcode, for
   later use by openrisc_cgen_assemble_insn
 
-  returns NULL for success, an error message for failure 
-*/
+  Returns NULL for success, an error message for failure. */
 
 char * 
 openrisc_cgen_build_insn_regex (insn)
@@ -402,14 +399,14 @@ parse_insn_normal (cd, insn, strp, fields)
      GAS's input scrubber will ensure mnemonics are lowercase, but we may
      not be called from GAS.  */
   p = CGEN_INSN_MNEMONIC (insn);
-  while (*p && TOLOWER (*p) == TOLOWER (*str))
+  while (*p && tolower (*p) == tolower (*str))
     ++p, ++str;
 
   if (* p)
     return _("unrecognized instruction");
 
 #ifndef CGEN_MNEMONIC_OPERANDS
-  if (* str && !ISSPACE (* str))
+  if (* str && !isspace (* str))
     return _("unrecognized instruction");
 #endif
 
@@ -438,7 +435,7 @@ parse_insn_normal (cd, insn, strp, fields)
             first char after the mnemonic part is a space.  */
          /* FIXME: We also take inappropriate advantage of the fact that
             GAS's input scrubber will remove extraneous blanks.  */
-         if (TOLOWER (*str) == TOLOWER (CGEN_SYNTAX_CHAR (* syn)))
+         if (tolower (*str) == tolower (CGEN_SYNTAX_CHAR (* syn)))
            {
 #ifdef CGEN_MNEMONIC_OPERANDS
              if (CGEN_SYNTAX_CHAR(* syn) == ' ')
@@ -485,7 +482,7 @@ parse_insn_normal (cd, insn, strp, fields)
         blanks now.  IE: We needn't try again with a longer version of
         the insn and it is assumed that longer versions of insns appear
         before shorter ones (eg: lsr r2,r3,1 vs lsr r2,r3).  */
-      while (ISSPACE (* str))
+      while (isspace (* str))
        ++ str;
 
       if (* str != '\0')
@@ -534,7 +531,7 @@ openrisc_cgen_assemble_insn (cd, str, fields, buf, errmsg)
   int recognized_mnemonic = 0;
 
   /* Skip leading white space.  */
-  while (ISSPACE (* str))
+  while (isspace (* str))
     ++ str;
 
   /* The instructions are stored in hashed lists.
index 08eadebb8afb24ed360d0cf02663ad060ebfeacb..866dbdd0bd696c989268b7802b4a6f58c87ee930 100644 (file)
@@ -23,6 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 */
 
 #include "sysdep.h"
+#include <ctype.h>
 #include <stdio.h>
 #include <stdarg.h>
 #include "ansidecl.h"
@@ -33,13 +34,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "opintl.h"
 #include "libiberty.h"
 
-static void               init_tables               PARAMS ((void));
-static const CGEN_MACH *  lookup_mach_via_bfd_name  PARAMS ((const CGEN_MACH *, const char *));
-static void               build_hw_table            PARAMS ((CGEN_CPU_TABLE *));
-static void               build_ifield_table        PARAMS ((CGEN_CPU_TABLE *));
-static void               build_operand_table       PARAMS ((CGEN_CPU_TABLE *));
-static void               build_insn_table          PARAMS ((CGEN_CPU_TABLE *));
-static void               openrisc_cgen_rebuild_tables  PARAMS ((CGEN_CPU_TABLE *));
 /* Attributes.  */
 
 static const CGEN_ATTR_ENTRY bool_attr[] =
@@ -670,12 +664,21 @@ static const CGEN_IBASE openrisc_cgen_insn_table[MAX_INSNS] =
 #undef A
 
 /* Initialize anything needed to be done once, before any cpu_open call.  */
+static void init_tables PARAMS ((void));
 
 static void
 init_tables ()
 {
 }
 
+static const CGEN_MACH * lookup_mach_via_bfd_name
+  PARAMS ((const CGEN_MACH *, const char *));
+static void build_hw_table  PARAMS ((CGEN_CPU_TABLE *));
+static void build_ifield_table  PARAMS ((CGEN_CPU_TABLE *));
+static void build_operand_table PARAMS ((CGEN_CPU_TABLE *));
+static void build_insn_table    PARAMS ((CGEN_CPU_TABLE *));
+static void openrisc_cgen_rebuild_tables PARAMS ((CGEN_CPU_TABLE *));
+
 /* Subroutine of openrisc_cgen_cpu_open to look up a mach via its bfd name.  */
 
 static const CGEN_MACH *
index cf9a24f81f044a1d0c5279c4b5e01d99ab5269c0..6bbb0cbe7f2a7526562e8f4b9f9c7b357bc0497e 100644 (file)
@@ -47,18 +47,21 @@ static void print_keyword
 static void print_insn_normal
      PARAMS ((CGEN_CPU_DESC, PTR, const CGEN_INSN *, CGEN_FIELDS *,
              bfd_vma, int));
-static int print_insn PARAMS ((CGEN_CPU_DESC, bfd_vma,
-                              disassemble_info *, char *, int));
+static int print_insn
+     PARAMS ((CGEN_CPU_DESC, bfd_vma,  disassemble_info *, char *, unsigned));
 static int default_print_insn
      PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *));
-void openrisc_cgen_print_operand
-     PARAMS ((CGEN_CPU_DESC, int, PTR, CGEN_FIELDS *, void const *, bfd_vma, int));
 static int read_insn
-     PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int, CGEN_EXTRACT_INFO *, unsigned long *));
+     PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int,
+             CGEN_EXTRACT_INFO *, unsigned long *));
 \f
 /* -- disassembler routines inserted here */
 
 
+void openrisc_cgen_print_operand
+  PARAMS ((CGEN_CPU_DESC, int, PTR, CGEN_FIELDS *,
+           void const *, bfd_vma, int));
+
 /* Main entry point for printing operands.
    XINFO is a `void *' and not a `disassemble_info *' to not put a requirement
    of dis-asm.h on cgen.h.
@@ -158,21 +161,12 @@ openrisc_cgen_init_dis (cd)
 
 static void
 print_normal (cd, dis_info, value, attrs, pc, length)
-#ifdef CGEN_PRINT_NORMAL
-     CGEN_CPU_DESC cd;
-#else
      CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
-#endif
      PTR dis_info;
      long value;
      unsigned int attrs;
-#ifdef CGEN_PRINT_NORMAL
-     bfd_vma pc;
-     int length;
-#else
      bfd_vma pc ATTRIBUTE_UNUSED;
      int length ATTRIBUTE_UNUSED;
-#endif
 {
   disassemble_info *info = (disassemble_info *) dis_info;
 
@@ -193,21 +187,12 @@ print_normal (cd, dis_info, value, attrs, pc, length)
 
 static void
 print_address (cd, dis_info, value, attrs, pc, length)
-#ifdef CGEN_PRINT_NORMAL
-     CGEN_CPU_DESC cd;
-#else
      CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
-#endif
      PTR dis_info;
      bfd_vma value;
      unsigned int attrs;
-#ifdef CGEN_PRINT_NORMAL
-     bfd_vma pc;
-     int length;
-#else
      bfd_vma pc ATTRIBUTE_UNUSED;
      int length ATTRIBUTE_UNUSED;
-#endif
 {
   disassemble_info *info = (disassemble_info *) dis_info;
 
@@ -290,6 +275,7 @@ print_insn_normal (cd, dis_info, insn, fields, pc, length)
 /* Subroutine of print_insn. Reads an insn into the given buffers and updates
    the extract info.
    Returns 0 if all is well, non-zero otherwise.  */
+
 static int
 read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
      CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
@@ -327,7 +313,7 @@ print_insn (cd, pc, info, buf, buflen)
      bfd_vma pc;
      disassemble_info *info;
      char *buf;
-     int buflen;
+     unsigned int buflen;
 {
   CGEN_INSN_INT insn_value;
   const CGEN_INSN_LIST *insn_list;
@@ -355,7 +341,7 @@ print_insn (cd, pc, info, buf, buflen)
       unsigned long insn_value_cropped;
 
 #ifdef CGEN_VALIDATE_INSN_SUPPORTED 
-      /* not needed as insn shouldn't be in hash lists if not supported */
+      /* Not needed as insn shouldn't be in hash lists if not supported.  */
       /* Supported by this cpu?  */
       if (! openrisc_cgen_insn_supported (cd, insn))
         {
@@ -370,8 +356,8 @@ print_insn (cd, pc, info, buf, buflen)
 
       /* Base size may exceed this instruction's size.  Extract the
          relevant part from the buffer. */
-      if ((CGEN_INSN_BITSIZE (insn) / 8) < buflen &&
-         ((unsigned) CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long))
+      if ((unsigned) (CGEN_INSN_BITSIZE (insn) / 8) < buflen &&
+         (unsigned) (CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long))
        insn_value_cropped = bfd_get_bits (buf, CGEN_INSN_BITSIZE (insn), 
                                           info->endian == BFD_ENDIAN_BIG);
       else
@@ -386,8 +372,8 @@ print_insn (cd, pc, info, buf, buflen)
 
          /* Make sure the entire insn is loaded into insn_value, if it
             can fit.  */
-         if ( (unsigned) CGEN_INSN_BITSIZE (insn) > cd->base_insn_bitsize &&
-             ((unsigned) CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long))
+         if (((unsigned) CGEN_INSN_BITSIZE (insn) > cd->base_insn_bitsize) &&
+             (unsigned) (CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long))
            {
              unsigned long full_insn_value;
              int rc = read_insn (cd, pc, info, buf,
index b219f53d853216e467ded37309b15f439f872082..cb29a266068052222d2a5fca850df0efbf00b5f6 100644 (file)
@@ -25,6 +25,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
    Keep that in mind.  */
 
 #include "sysdep.h"
+#include <ctype.h>
 #include <stdio.h>
 #include "ansidecl.h"
 #include "dis-asm.h"
@@ -48,7 +49,6 @@ static const char * insert_normal
 static const char * insert_insn_normal
      PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *,
              CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma));
-
 static int extract_normal
      PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
              unsigned int, unsigned int, unsigned int, unsigned int,
@@ -56,20 +56,19 @@ static int extract_normal
 static int extract_insn_normal
      PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
              CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma));
+#if CGEN_INT_INSN_P
 static void put_insn_int_value
      PARAMS ((CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT));
-const char * openrisc_cgen_insert_operand
-     PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma));
-int openrisc_cgen_extract_operand
-     PARAMS ((CGEN_CPU_DESC, int, CGEN_EXTRACT_INFO *, CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma));
-int openrisc_cgen_get_int_operand
-     PARAMS ((CGEN_CPU_DESC, int, const CGEN_FIELDS *));
-bfd_vma openrisc_cgen_get_vma_operand
-     PARAMS ((CGEN_CPU_DESC, int, const CGEN_FIELDS *));
-void openrisc_cgen_set_int_operand
-     PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, int));
-void openrisc_cgen_set_vma_operand
-     PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, bfd_vma));
+#endif
+#if ! CGEN_INT_INSN_P
+static CGEN_INLINE void insert_1
+     PARAMS ((CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *));
+static CGEN_INLINE int fill_cache
+     PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *,  int, int, bfd_vma));
+static CGEN_INLINE long extract_1
+     PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int,
+             unsigned char *, bfd_vma));
+#endif
 \f
 /* Operand insertion.  */
 
@@ -86,9 +85,8 @@ insert_1 (cd, value, start, length, word_length, bufp)
 {
   unsigned long x,mask;
   int shift;
-  int big_p = CGEN_CPU_INSN_ENDIAN (cd) == CGEN_ENDIAN_BIG;
 
-  x = bfd_get_bits (bufp, word_length, big_p);
+  x = cgen_get_insn_value (cd, bufp, word_length);
 
   /* Written this way to avoid undefined behaviour.  */
   mask = (((1L << (length - 1)) - 1) << 1) | 1;
@@ -98,7 +96,7 @@ insert_1 (cd, value, start, length, word_length, bufp)
     shift = (word_length - (start + length));
   x = (x & ~(mask << shift)) | ((value & mask) << shift);
 
-  bfd_put_bits ((bfd_vma) x, bufp, word_length, big_p);
+  cgen_put_insn_value (cd, bufp, word_length, (bfd_vma) x);
 }
 
 #endif /* ! CGEN_INT_INSN_P */
@@ -258,8 +256,8 @@ insert_insn_normal (cd, insn, fields, buffer, pc)
 
 #else
 
-  cgen_put_insn_value (cd, buffer, min (cd->base_insn_bitsize,
-                                       CGEN_FIELDS_BITSIZE (fields)),
+  cgen_put_insn_value (cd, buffer, min ((unsigned) cd->base_insn_bitsize,
+                                       (unsigned) CGEN_FIELDS_BITSIZE (fields)),
                       value);
 
 #endif /* ! CGEN_INT_INSN_P */
@@ -285,6 +283,7 @@ insert_insn_normal (cd, insn, fields, buffer, pc)
   return NULL;
 }
 
+#if CGEN_INT_INSN_P
 /* Cover function to store an insn value into an integral insn.  Must go here
  because it needs <prefix>-desc.h for CGEN_INT_INSN_P.  */
 
@@ -308,6 +307,7 @@ put_insn_int_value (cd, buf, length, insn_length, value)
       *buf = (*buf & ~(mask << shift)) | ((value & mask) << shift);
     }
 }
+#endif
 \f
 /* Operand extraction.  */
 
@@ -321,14 +321,14 @@ put_insn_int_value (cd, buf, length, insn_length, value)
 
 static CGEN_INLINE int
 fill_cache (cd, ex_info, offset, bytes, pc)
-     CGEN_CPU_DESC cd;
+     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
      CGEN_EXTRACT_INFO *ex_info;
      int offset, bytes;
      bfd_vma pc;
 {
   /* It's doubtful that the middle part has already been fetched so
      we don't optimize that case.  kiss.  */
-  int mask;
+  unsigned int mask;
   disassemble_info *info = (disassemble_info *) ex_info->dis_info;
 
   /* First do a quick check.  */
@@ -366,17 +366,18 @@ fill_cache (cd, ex_info, offset, bytes, pc)
 static CGEN_INLINE long
 extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
      CGEN_CPU_DESC cd;
-     CGEN_EXTRACT_INFO *ex_info;
+     CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
      int start,length,word_length;
      unsigned char *bufp;
-     bfd_vma pc;
+     bfd_vma pc ATTRIBUTE_UNUSED;
 {
   unsigned long x;
   int shift;
+#if 0
   int big_p = CGEN_CPU_INSN_ENDIAN (cd) == CGEN_ENDIAN_BIG;
 
-  x = bfd_get_bits (bufp, word_length, big_p);
-
+  x = cgen_get_insn_value (cd, bufp, word_length);
+#endif
   if (CGEN_INSN_LSB0_P)
     shift = (start + 1) - length;
   else
@@ -538,6 +539,9 @@ extract_insn_normal (cd, insn, ex_info, insn_value, fields, pc)
 \f
 /* machine generated code added here */
 
+const char * openrisc_cgen_insert_operand
+  PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma));
+
 /* Main entry point for operand insertion.
 
    This function is basically just a big switch statement.  Earlier versions
@@ -559,7 +563,7 @@ openrisc_cgen_insert_operand (cd, opindex, fields, buffer, pc)
      int opindex;
      CGEN_FIELDS * fields;
      CGEN_INSN_BYTES_PTR buffer;
-     bfd_vma pc;
+     bfd_vma pc ATTRIBUTE_UNUSED;
 {
   const char * errmsg = NULL;
   unsigned int total_length = CGEN_FIELDS_BITSIZE (fields);
@@ -635,6 +639,10 @@ openrisc_cgen_insert_operand (cd, opindex, fields, buffer, pc)
   return errmsg;
 }
 
+int openrisc_cgen_extract_operand
+  PARAMS ((CGEN_CPU_DESC, int, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
+           CGEN_FIELDS *, bfd_vma));
+
 /* Main entry point for operand extraction.
    The result is <= 0 for error, >0 for success.
    ??? Actual values aren't well defined right now.
@@ -713,8 +721,6 @@ openrisc_cgen_extract_operand (cd, opindex, ex_info, insn_value, fields, pc)
         length = extract_normal (cd, ex_info, insn_value, 0, 0, 25, 5, 32, total_length, pc, & fields->f_i16_2);
         if (length <= 0) break;
 {
-  extern long openrisc_sign_extend_16bit PARAMS ((long));
-  
   FLD (f_i16nc) = openrisc_sign_extend_16bit (((((FLD (f_i16_2)) << (11))) | (FLD (f_i16_1))));
 }
       }
@@ -746,6 +752,11 @@ cgen_extract_fn * const openrisc_cgen_extract_handlers[] =
   extract_insn_normal,
 };
 
+int openrisc_cgen_get_int_operand
+  PARAMS ((CGEN_CPU_DESC, int, const CGEN_FIELDS *));
+bfd_vma openrisc_cgen_get_vma_operand
+  PARAMS ((CGEN_CPU_DESC, int, const CGEN_FIELDS *));
+
 /* Getting values from cgen_fields is handled by a collection of functions.
    They are distinguished by the type of the VALUE argument they return.
    TODO: floating point, inlining support, remove cases where result type
@@ -871,6 +882,11 @@ openrisc_cgen_get_vma_operand (cd, opindex, fields)
   return value;
 }
 
+void openrisc_cgen_set_int_operand
+  PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, int));
+void openrisc_cgen_set_vma_operand
+  PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, bfd_vma));
+
 /* Stuffing values in cgen_fields is handled by a collection of functions.
    They are distinguished by the type of the VALUE argument they accept.
    TODO: floating point, inlining support, remove cases where argument type
index 12ca3062de11d07327a9ac8a1fe831b3ded44881..87a397be3592e64851006e834b1296efbd9e507b 100644 (file)
@@ -35,11 +35,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 /* The hash functions are recorded here to help keep assembler code out of
    the disassembler and vice versa.  */
 
-static int           asm_hash_insn_p     PARAMS ((const CGEN_INSN *));
-static unsigned int  asm_hash_insn       PARAMS ((const char *));
-static int           dis_hash_insn_p     PARAMS ((const CGEN_INSN *));
-static unsigned int  dis_hash_insn       PARAMS ((const char *, CGEN_INSN_INT));
-static void          set_fields_bitsize  PARAMS ((CGEN_FIELDS *, int));
+static int asm_hash_insn_p PARAMS ((const CGEN_INSN *));
+static unsigned int asm_hash_insn PARAMS ((const char *));
+static int dis_hash_insn_p PARAMS ((const CGEN_INSN *));
+static unsigned int dis_hash_insn PARAMS ((const char *, CGEN_INSN_INT));
 
 /* Instruction formats.  */
 
@@ -645,12 +644,14 @@ asm_hash_insn (mnem)
 
 static unsigned int
 dis_hash_insn (buf, value)
-     const char * buf;
+     const char * buf ATTRIBUTE_UNUSED;
      CGEN_INSN_INT value ATTRIBUTE_UNUSED;
 {
   return CGEN_DIS_HASH (buf, value);
 }
 
+static void set_fields_bitsize PARAMS ((CGEN_FIELDS *, int));
+
 /* Set the recorded length of the insn in the CGEN_FIELDS struct.  */
 
 static void
index 50515ac685ab509ccedd2605cd3cc56e8151106a..bdd7e2434e0df202e67e38a790bd34283be65e14 100644 (file)
@@ -26,11 +26,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #define OPENRISC_OPC_H
 
 /* -- opc.h */
-#undef CGEN_DIS_HASH_SIZE
+#undef  CGEN_DIS_HASH_SIZE
 #define CGEN_DIS_HASH_SIZE 64
-#undef CGEN_DIS_HASH
+#undef  CGEN_DIS_HASH
 #define CGEN_DIS_HASH(buffer, value) (((unsigned char *) (buffer))[0] >> 2)
 
+extern long openrisc_sign_extend_16bit PARAMS ((long));
 /* -- */
 /* Enum declaration for openrisc instruction types.  */
 typedef enum cgen_insn_type {
index 220711c588416221618135dc40c547c59a81cbe7..6b01ed9424be922b224b16715489a58551979d57 100644 (file)
@@ -16,8 +16,8 @@ d10v-dis.c
 d10v-opc.c
 d30v-dis.c
 d30v-opc.c
-dis-buf.c
 disassemble.c
+dis-buf.c
 fr30-asm.c
 fr30-desc.c
 fr30-desc.h
@@ -40,12 +40,12 @@ ia64-dis.c
 ia64-gen.c
 ia64-opc-a.c
 ia64-opc-b.c
+ia64-opc.c
 ia64-opc-d.c
 ia64-opc-f.c
+ia64-opc.h
 ia64-opc-i.c
 ia64-opc-m.c
-ia64-opc.c
-ia64-opc.h
 m10200-dis.c
 m10200-opc.c
 m10300-dis.c
@@ -65,9 +65,9 @@ m68k-opc.c
 m88k-dis.c
 mcore-dis.c
 mcore-opc.h
+mips16-opc.c
 mips-dis.c
 mips-opc.c
-mips16-opc.c
 ns32k-dis.c
 openrisc-asm.c
 openrisc-desc.c
@@ -101,5 +101,5 @@ vax-dis.c
 w65-dis.c
 w65-opc.h
 z8k-dis.c
-z8k-opc.h
 z8kgen.c
+z8k-opc.h
index e8135741b8b1b27f2c78fa41c48e2b095e52670e..8baf99ed98ba23a6c8978b25f5647b9509d77cd0 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2001-04-27 15:23+0100\n"
+"POT-Creation-Date: 2001-10-09 09:40+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -22,21 +22,21 @@ msgstr ""
 msgid "jump hint unaligned"
 msgstr ""
 
-#: arm-dis.c:490
+#: arm-dis.c:509
 msgid "<illegal precision>"
 msgstr ""
 
-#: arm-dis.c:922
+#: arm-dis.c:941
 #, c-format
 msgid "Unrecognised register name set: %s\n"
 msgstr ""
 
-#: arm-dis.c:929
+#: arm-dis.c:948
 #, c-format
 msgid "Unrecognised disassembler option: %s\n"
 msgstr ""
 
-#: arm-dis.c:1101
+#: arm-dis.c:1120
 msgid ""
 "\n"
 "The following ARM specific disassembler options are supported for use with\n"
@@ -56,21 +56,21 @@ msgstr ""
 msgid "unknown constraint `%c'"
 msgstr ""
 
-#: cgen-asm.c:224
+#: cgen-asm.c:232
 msgid "unrecognized keyword/register name"
 msgstr ""
 
-#: cgen-asm.c:332 fr30-ibld.c:172 m32r-ibld.c:172 openrisc-ibld.c:172
+#: cgen-asm.c:340 fr30-ibld.c:207 m32r-ibld.c:197 openrisc-ibld.c:197
 #, c-format
 msgid "operand out of range (%ld not between %ld and %ld)"
 msgstr ""
 
-#: cgen-asm.c:353
+#: cgen-asm.c:361
 #, c-format
 msgid "operand out of range (%lu not between %lu and %lu)"
 msgstr ""
 
-#: d30v-dis.c:306
+#: d30v-dis.c:312
 #, c-format
 msgid "<unknown register %d>"
 msgstr ""
@@ -86,99 +86,108 @@ msgstr ""
 msgid "Address 0x%x is out of bounds.\n"
 msgstr ""
 
-#: fr30-asm.c:305 m32r-asm.c:313 openrisc-asm.c:237
+#: fr30-asm.c:312 m32r-asm.c:319 openrisc-asm.c:247
 #, c-format
 msgid "Unrecognized field %d while parsing.\n"
 msgstr ""
 
 #. We couldn't parse it.
-#: fr30-asm.c:369 fr30-asm.c:373 fr30-asm.c:458 fr30-asm.c:552 m32r-asm.c:377
-#: m32r-asm.c:381 m32r-asm.c:466 m32r-asm.c:560 openrisc-asm.c:301
-#: openrisc-asm.c:305 openrisc-asm.c:390 openrisc-asm.c:484
+#: fr30-asm.c:474 fr30-asm.c:478 fr30-asm.c:563 fr30-asm.c:665 m32r-asm.c:481
+#: m32r-asm.c:485 m32r-asm.c:570 m32r-asm.c:672 openrisc-asm.c:409
+#: openrisc-asm.c:413 openrisc-asm.c:498 openrisc-asm.c:600
 msgid "unrecognized instruction"
 msgstr ""
 
-#: fr30-asm.c:415 m32r-asm.c:423 openrisc-asm.c:347
+#: fr30-asm.c:520 m32r-asm.c:527 openrisc-asm.c:455
 #, c-format
 msgid "syntax error (expected char `%c', found `%c')"
 msgstr ""
 
-#: fr30-asm.c:424 m32r-asm.c:432 openrisc-asm.c:356
+#: fr30-asm.c:529 m32r-asm.c:536 openrisc-asm.c:464
 #, c-format
 msgid "syntax error (expected char `%c', found end of instruction)"
 msgstr ""
 
-#: fr30-asm.c:452 m32r-asm.c:460 openrisc-asm.c:384
+#: fr30-asm.c:557 m32r-asm.c:564 openrisc-asm.c:492
 msgid "junk at end of line"
 msgstr ""
 
-#: fr30-asm.c:563 m32r-asm.c:571 openrisc-asm.c:495
+#: fr30-asm.c:664 m32r-asm.c:671 openrisc-asm.c:599
+msgid "unrecognized form of instruction"
+msgstr ""
+
+#: fr30-asm.c:676 m32r-asm.c:683 openrisc-asm.c:611
 #, c-format
 msgid "bad instruction `%.50s...'"
 msgstr ""
 
-#: fr30-asm.c:566 m32r-asm.c:574 openrisc-asm.c:498
+#: fr30-asm.c:679 m32r-asm.c:686 openrisc-asm.c:614
 #, c-format
 msgid "bad instruction `%.50s'"
 msgstr ""
 
-#: fr30-dis.c:300 m32r-dis.c:239 openrisc-dis.c:130
+#: fr30-dis.c:301 m32r-dis.c:246 openrisc-dis.c:134
 #, c-format
 msgid "Unrecognized field %d while printing insn.\n"
 msgstr ""
 
-#: fr30-ibld.c:156 m32r-ibld.c:156 openrisc-ibld.c:156
+#: fr30-ibld.c:178 m32r-ibld.c:168 openrisc-ibld.c:168
+#, c-format
+msgid "operand out of range (%ld not between %ld and %lu)"
+msgstr ""
+
+#: fr30-ibld.c:191 m32r-ibld.c:181 openrisc-ibld.c:181
 #, c-format
 msgid "operand out of range (%lu not between 0 and %lu)"
 msgstr ""
 
-#: fr30-ibld.c:702 m32r-ibld.c:631 openrisc-ibld.c:605
+#: fr30-ibld.c:739 m32r-ibld.c:656 openrisc-ibld.c:630
 #, c-format
 msgid "Unrecognized field %d while building insn.\n"
 msgstr ""
 
-#: fr30-ibld.c:906 m32r-ibld.c:761 openrisc-ibld.c:704
+#: fr30-ibld.c:943 m32r-ibld.c:786 openrisc-ibld.c:731
 #, c-format
 msgid "Unrecognized field %d while decoding insn.\n"
 msgstr ""
 
-#: fr30-ibld.c:1050 m32r-ibld.c:866 openrisc-ibld.c:779
+#: fr30-ibld.c:1087 m32r-ibld.c:891 openrisc-ibld.c:806
 #, c-format
 msgid "Unrecognized field %d while getting int operand.\n"
 msgstr ""
 
-#: fr30-ibld.c:1179 m32r-ibld.c:956 openrisc-ibld.c:839
+#: fr30-ibld.c:1216 m32r-ibld.c:981 openrisc-ibld.c:866
 #, c-format
 msgid "Unrecognized field %d while getting vma operand.\n"
 msgstr ""
 
-#: fr30-ibld.c:1308 m32r-ibld.c:1049 openrisc-ibld.c:903
+#: fr30-ibld.c:1345 m32r-ibld.c:1074 openrisc-ibld.c:930
 #, c-format
 msgid "Unrecognized field %d while setting int operand.\n"
 msgstr ""
 
-#: fr30-ibld.c:1430 m32r-ibld.c:1135 openrisc-ibld.c:960
+#: fr30-ibld.c:1467 m32r-ibld.c:1160 openrisc-ibld.c:987
 #, c-format
 msgid "Unrecognized field %d while setting vma operand.\n"
 msgstr ""
 
-#: h8300-dis.c:380
+#: h8300-dis.c:384
 #, c-format
 msgid "Hmmmm %x"
 msgstr ""
 
-#: h8300-dis.c:391
+#: h8300-dis.c:395
 #, c-format
 msgid "Don't understand %x \n"
 msgstr ""
 
-#: h8500-dis.c:141
+#: h8500-dis.c:143
 #, c-format
 msgid "can't cope with insert %d\n"
 msgstr ""
 
 #. Couldn't understand anything.
-#: h8500-dis.c:348
+#: h8500-dis.c:350
 #, c-format
 msgid "%02x\t\t*unknown*"
 msgstr ""
@@ -198,61 +207,70 @@ msgstr ""
 msgid "unknown\t0x%04x"
 msgstr ""
 
-#: m68k-dis.c:430
+#: m68k-dis.c:429
 #, c-format
 msgid "<internal error in opcode table: %s %s>\n"
 msgstr ""
 
-#: m68k-dis.c:1008
+#: m68k-dis.c:1007
 #, c-format
 msgid "<function code %d>"
 msgstr ""
 
-#: m88k-dis.c:274
+#: m88k-dis.c:255
 #, c-format
 msgid "# <dis error: %08x>"
 msgstr ""
 
-#: mips-dis.c:274
+#: mips-dis.c:292
 #, c-format
 msgid "# internal error, undefined modifier(%c)"
 msgstr ""
 
+#: mips-dis.c:1129
+#, c-format
+msgid "# internal disassembler error, unrecognised modifier (%c)"
+msgstr ""
+
 #. I and Z are output operands and can`t be immediate
 #. * A is an address and we can`t have the address of
 #. * an immediate either. We don't know how much to increase
 #. * aoffsetp by since whatever generated this is broken
 #. * anyway!
 #.
-#: ns32k-dis.c:619
+#: ns32k-dis.c:628
 msgid "$<undefined>"
 msgstr ""
 
-#: ppc-opc.c:620 ppc-opc.c:651
+#: ppc-opc.c:625 ppc-opc.c:656
 msgid "invalid conditional option"
 msgstr ""
 
-#: ppc-opc.c:653
+#: ppc-opc.c:658
 msgid "attempt to set y bit when using + or - modifier"
 msgstr ""
 
-#: ppc-opc.c:708
+#: ppc-opc.c:688
+msgid "offset not a multiple of 4"
+msgstr ""
+
+#: ppc-opc.c:715
 msgid "ignoring least significant bits in branch offset"
 msgstr ""
 
-#: ppc-opc.c:743 ppc-opc.c:780
+#: ppc-opc.c:750 ppc-opc.c:787
 msgid "illegal bitmask"
 msgstr ""
 
-#: ppc-opc.c:849
+#: ppc-opc.c:856
 msgid "value out of range"
 msgstr ""
 
-#: ppc-opc.c:923
+#: ppc-opc.c:930
 msgid "index register in load range"
 msgstr ""
 
-#: ppc-opc.c:938
+#: ppc-opc.c:945
 msgid "invalid register operand when updating"
 msgstr ""
 
@@ -276,12 +294,12 @@ msgstr ""
 msgid "Internal error: bad sparc-opcode.h: \"%s\" == \"%s\"\n"
 msgstr ""
 
-#: v850-dis.c:221
+#: v850-dis.c:224
 #, c-format
 msgid "unknown operand shift: %x\n"
 msgstr ""
 
-#: v850-dis.c:233
+#: v850-dis.c:236
 #, c-format
 msgid "unknown pop reg: %d\n"
 msgstr ""
@@ -291,46 +309,46 @@ msgstr ""
 #. v850_insert_operand() in gas/config/tc-v850.c.  Error messages
 #. containing the string 'out of range' will be ignored unless a
 #. specific command line option is given to GAS.
-#: v850-opc.c:46
+#: v850-opc.c:68
 msgid "displacement value is not in range and is not aligned"
 msgstr ""
 
-#: v850-opc.c:47
+#: v850-opc.c:69
 msgid "displacement value is out of range"
 msgstr ""
 
-#: v850-opc.c:48
+#: v850-opc.c:70
 msgid "displacement value is not aligned"
 msgstr ""
 
-#: v850-opc.c:50
+#: v850-opc.c:72
 msgid "immediate value is out of range"
 msgstr ""
 
-#: v850-opc.c:61
+#: v850-opc.c:83
 msgid "branch value not in range and to odd offset"
 msgstr ""
 
-#: v850-opc.c:63 v850-opc.c:95
+#: v850-opc.c:85 v850-opc.c:117
 msgid "branch value out of range"
 msgstr ""
 
-#: v850-opc.c:66 v850-opc.c:98
+#: v850-opc.c:88 v850-opc.c:120
 msgid "branch to odd offset"
 msgstr ""
 
-#: v850-opc.c:93
+#: v850-opc.c:115
 msgid "branch value not in range and to an odd offset"
 msgstr ""
 
-#: v850-opc.c:321
+#: v850-opc.c:346
 msgid "invalid register for stack adjustment"
 msgstr ""
 
-#: v850-opc.c:343
+#: v850-opc.c:370
 msgid "immediate value not in range and not even"
 msgstr ""
 
-#: v850-opc.c:348
+#: v850-opc.c:375
 msgid "immediate value must be even"
 msgstr ""