* elf32-hppa.c: (LONG_BRANCH_PIC_IN_SHLIB): Delete. Remove all
[deliverable/binutils-gdb.git] / opcodes / cgen-dis.c
index f8598f1e33bc43dbf022c13c078bf86efa205b08..8e9fe56e87ad9248511d0cc1a11c02b118f089fa 100644 (file)
@@ -1,6 +1,7 @@
 /* CGEN generic disassembler support code.
 
-   Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+   Copyright 1996, 1997, 1998, 1999, 2000, 2001
+   Free Software Foundation, Inc.
 
    This file is part of the GNU Binutils and GDB, the GNU debugger.
 
 #include "symcat.h"
 #include "opcode/cgen.h"
 
+static CGEN_INSN_LIST *  hash_insn_array      PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, int, int, CGEN_INSN_LIST **, CGEN_INSN_LIST *));
+static CGEN_INSN_LIST *  hash_insn_list       PARAMS ((CGEN_CPU_DESC, const CGEN_INSN_LIST *, CGEN_INSN_LIST **, CGEN_INSN_LIST *));
+static void              build_dis_hash_table PARAMS ((CGEN_CPU_DESC));
+     
 /* Subroutine of build_dis_hash_table to add INSNS to the hash table.
 
    COUNT is the number of elements in INSNS.
@@ -64,27 +69,10 @@ hash_insn_array (cd, insns, count, entsize, htable, hentbuf)
         to hash on, so set both up.  */
 
       value = CGEN_INSN_BASE_VALUE (insn);
-      switch (CGEN_INSN_MASK_BITSIZE (insn))
-       {
-       case 8:
-         buf[0] = value;
-         break;
-       case 16:
-         if (big_p)
-           bfd_putb16 ((bfd_vma) value, buf);
-         else
-           bfd_putl16 ((bfd_vma) value, buf);
-         break;
-       case 32:
-         if (big_p)
-           bfd_putb32 ((bfd_vma) value, buf);
-         else
-           bfd_putl32 ((bfd_vma) value, buf);
-         break;
-       default:
-         abort ();
-       }
-
+      bfd_put_bits ((bfd_vma) value,
+                   buf,
+                   CGEN_INSN_MASK_BITSIZE (insn),
+                   big_p);
       hash = (* cd->dis_hash) (buf, value);
       hentbuf->next = htable[hash];
       hentbuf->insn = insn;
@@ -121,27 +109,10 @@ hash_insn_list (cd, insns, htable, hentbuf)
         to hash on, so set both up.  */
 
       value = CGEN_INSN_BASE_VALUE (ilist->insn);
-      switch (CGEN_INSN_MASK_BITSIZE (ilist->insn))
-       {
-       case 8:
-         buf[0] = value;
-         break;
-       case 16:
-         if (big_p)
-           bfd_putb16 ((bfd_vma) value, buf);
-         else
-           bfd_putl16 ((bfd_vma) value, buf);
-         break;
-       case 32:
-         if (big_p)
-           bfd_putb32 ((bfd_vma) value, buf);
-         else
-           bfd_putl32 ((bfd_vma) value, buf);
-         break;
-       default:
-         abort ();
-       }
-
+      bfd_put_bits((bfd_vma) value,
+                  buf,
+                  CGEN_INSN_MASK_BITSIZE (ilist->insn),
+                  big_p);
       hash = (* cd->dis_hash) (buf, value);
       hentbuf->next = htable [hash];
       hentbuf->insn = ilist->insn;
This page took 0.023499 seconds and 4 git commands to generate.