/* SHmedia opcode support.  -*- C -*-
   Copyright (C) 2000, 2001, 2005 Red Hat, Inc.
   This file is part of CGEN.  */

/* This file is an addendum to sh-media.cpu.  Heavy use of C code isn't
   appropriate in .cpu files, so it resides here.  This especially applies
   to assembly/disassembly where parsing/printing can be quite involved.
   Such things aren't really part of the specification of the cpu, per se,
   so .cpu files provide the general framework and .opc files handle the
   nitty-gritty details as necessary.

   Each section is delimited with start and end markers.

   <arch>-opc.h additions use: "-- opc.h"
   <arch>-opc.c additions use: "-- opc.c"
   <arch>-asm.c additions use: "-- asm.c"
   <arch>-dis.c additions use: "-- dis.c"
   <arch>-ibd.h additions use: "-- ibd.h"  */

/* -- opc.h */

/* Allows reason codes to be output when assembler errors occur.  */
#define CGEN_VERBOSE_ASSEMBLER_ERRORS

/* Override disassembly hashing - there are variable bits in the top
   byte of these instructions.  */
#define CGEN_DIS_HASH_SIZE 8
#define CGEN_DIS_HASH(buf,value) (((* (unsigned char*) (buf)) >> 6) % CGEN_DIS_HASH_SIZE)

/* -- asm.c */

static const char *
parse_fsd (CGEN_CPU_DESC cd,
	   const char ** strp,
	   int opindex,
	   long * valuep)
{
  abort ();
}

/* -- dis.c */

static void
print_likely (CGEN_CPU_DESC cd,
	      void * dis_info,
	      long value,
	      unsigned int attrs,
	      bfd_vma pc,
	      int length)
{
  disassemble_info *info = (disassemble_info *) dis_info;

  (*info->fprintf_func) (info->stream, (value) ? "/l" : "/u");
}

/* -- */
