/* ISA definitions header for media.

THIS FILE IS MACHINE GENERATED WITH CGEN.

Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.

This file is part of the GNU Simulators.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

*/

#ifndef DEFS_SH64_MEDIA_H
#define DEFS_SH64_MEDIA_H

/* Instruction argument buffer.  */

union sem_fields {
  struct { /* no operands */
    int empty;
  } fmt_empty;
  struct { /*  */
    UINT f_dest;
    UINT f_uimm16;
  } sfmt_shori;
  struct { /*  */
    DI f_disp16;
    UINT f_tra;
  } sfmt_pta;
  struct { /*  */
    INT f_imm16;
    UINT f_dest;
  } sfmt_movi;
  struct { /*  */
    UINT f_dest;
    UINT f_left_right;
  } sfmt_fabsd;
  struct { /*  */
    UINT f_dest;
    UINT f_trb;
  } sfmt_blink;
  struct { /*  */
    INT f_imm6;
    UINT f_dest;
    UINT f_left;
  } sfmt_xori;
  struct { /*  */
    INT f_disp6;
    UINT f_dest;
    UINT f_left;
  } sfmt_sthil;
  struct { /*  */
    UINT f_dest;
    UINT f_left;
    UINT f_uimm6;
  } sfmt_shari;
  struct { /*  */
    INT f_imm10;
    UINT f_dest;
    UINT f_left;
  } sfmt_ori;
  struct { /*  */
    SI f_disp10x2;
    UINT f_dest;
    UINT f_left;
  } sfmt_lduw;
  struct { /*  */
    SI f_disp10x4;
    UINT f_dest;
    UINT f_left;
  } sfmt_flds;
  struct { /*  */
    SI f_disp10x8;
    UINT f_dest;
    UINT f_left;
  } sfmt_fldd;
  struct { /*  */
    INT f_imm6;
    UINT f_left;
    UINT f_tra;
  } sfmt_beqi;
  struct { /*  */
    UINT f_left;
    UINT f_right;
    UINT f_tra;
  } sfmt_beq;
  struct { /*  */
    INT f_disp10;
    UINT f_dest;
    UINT f_left;
  } sfmt_addi;
  struct { /*  */
    UINT f_dest;
    UINT f_left;
    UINT f_right;
  } sfmt_add;
  struct {
    INT f_disp6;
    UINT f_dest;
    UINT f_left;
  } sfmt_ldhil;
#if WITH_SCACHE_PBB
  /* Writeback handler.  */
  struct {
    /* Pointer to argbuf entry for insn whose results need writing back.  */
    const struct argbuf *abuf;
  } write;
  /* x-before handler */
  struct {
    /*const SCACHE *insns[MAX_PARALLEL_INSNS];*/
    int first_p;
  } before;
  /* x-after handler */
  struct {
    int empty;
  } after;
  /* This entry is used to terminate each pbb.  */
  struct {
    /* Number of insns in pbb.  */
    int insn_count;
    /* Next pbb to execute.  */
    SCACHE *next;
    SCACHE *branch_target;
  } chain;
#endif
};

/* The ARGBUF struct.  */
struct argbuf {
  /* These are the baseclass definitions.  */
  IADDR addr;
  const IDESC *idesc;
  char trace_p;
  char profile_p;
  /* ??? Temporary hack for skip insns.  */
  char skip_count;
  char unused;
  /* cpu specific data follows */
  union sem semantic;
  int written;
  union sem_fields fields;
};

/* A cached insn.

   ??? SCACHE used to contain more than just argbuf.  We could delete the
   type entirely and always just use ARGBUF, but for future concerns and as
   a level of abstraction it is left in.  */

struct scache {
  struct argbuf argbuf;
};

/* Macros to simplify extraction, reading and semantic code.
   These define and assign the local vars that contain the insn's fields.  */

#define EXTRACT_IFMT_EMPTY_VARS \
  unsigned int length;
#define EXTRACT_IFMT_EMPTY_CODE \
  length = 0; \

#define EXTRACT_IFMT_ADD_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_ADD_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_ADDI_VARS \
  UINT f_op; \
  UINT f_left; \
  INT f_disp10; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_ADDI_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_disp10 = EXTRACT_LSB0_INT (insn, 32, 19, 10); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_ALLOCO_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  SI f_disp6x32; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_ALLOCO_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_disp6x32 = ((EXTRACT_LSB0_INT (insn, 32, 15, 6)) << (5)); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_BEQ_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_likely; \
  UINT f_8_2; \
  UINT f_tra; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_BEQ_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_likely = EXTRACT_LSB0_UINT (insn, 32, 9, 1); \
  f_8_2 = EXTRACT_LSB0_UINT (insn, 32, 8, 2); \
  f_tra = EXTRACT_LSB0_UINT (insn, 32, 6, 3); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_BEQI_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  INT f_imm6; \
  UINT f_likely; \
  UINT f_8_2; \
  UINT f_tra; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_BEQI_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_imm6 = EXTRACT_LSB0_INT (insn, 32, 15, 6); \
  f_likely = EXTRACT_LSB0_UINT (insn, 32, 9, 1); \
  f_8_2 = EXTRACT_LSB0_UINT (insn, 32, 8, 2); \
  f_tra = EXTRACT_LSB0_UINT (insn, 32, 6, 3); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_BLINK_VARS \
  UINT f_op; \
  UINT f_25; \
  UINT f_trb; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_BLINK_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_25 = EXTRACT_LSB0_UINT (insn, 32, 25, 3); \
  f_trb = EXTRACT_LSB0_UINT (insn, 32, 22, 3); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_BRK_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_BRK_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_BYTEREV_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_BYTEREV_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FABSD_VARS \
  UINT f_op; \
  UINT f_ext; \
  UINT f_left; \
  UINT f_right; \
  UINT f_left_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FABSD_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_left_right = f_left;\
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FABSS_VARS \
  UINT f_op; \
  UINT f_ext; \
  UINT f_left; \
  UINT f_right; \
  UINT f_left_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FABSS_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_left_right = f_left;\
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FADDD_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FADDD_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FADDS_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FADDS_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FCMPEQD_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FCMPEQD_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FCMPEQS_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FCMPEQS_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FCNVDS_VARS \
  UINT f_op; \
  UINT f_ext; \
  UINT f_left; \
  UINT f_right; \
  UINT f_left_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FCNVDS_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_left_right = f_left;\
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FCNVSD_VARS \
  UINT f_op; \
  UINT f_ext; \
  UINT f_left; \
  UINT f_right; \
  UINT f_left_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FCNVSD_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_left_right = f_left;\
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FGETSCR_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FGETSCR_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FIPRS_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FIPRS_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FLDD_VARS \
  UINT f_op; \
  UINT f_left; \
  SI f_disp10x8; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FLDD_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_disp10x8 = ((EXTRACT_LSB0_INT (insn, 32, 19, 10)) << (3)); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FLDP_VARS \
  UINT f_op; \
  UINT f_left; \
  SI f_disp10x8; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FLDP_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_disp10x8 = ((EXTRACT_LSB0_INT (insn, 32, 19, 10)) << (3)); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FLDS_VARS \
  UINT f_op; \
  UINT f_left; \
  SI f_disp10x4; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FLDS_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_disp10x4 = ((EXTRACT_LSB0_INT (insn, 32, 19, 10)) << (2)); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FLDXD_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FLDXD_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FLDXP_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FLDXP_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FMOVDQ_VARS \
  UINT f_op; \
  UINT f_ext; \
  UINT f_left; \
  UINT f_right; \
  UINT f_left_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FMOVDQ_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_left_right = f_left;\
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FMOVLS_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FMOVLS_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FMOVSL_VARS \
  UINT f_op; \
  UINT f_ext; \
  UINT f_left; \
  UINT f_right; \
  UINT f_left_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FMOVSL_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_left_right = f_left;\
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FPUTSCR_VARS \
  UINT f_op; \
  UINT f_ext; \
  UINT f_left; \
  UINT f_right; \
  UINT f_left_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FPUTSCR_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_left_right = f_left;\
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FSTXD_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FSTXD_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_FTRVS_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_FTRVS_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_GETCFG_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  INT f_disp6; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_GETCFG_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_disp6 = EXTRACT_LSB0_INT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_GETCON_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_GETCON_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_LDL_VARS \
  UINT f_op; \
  UINT f_left; \
  SI f_disp10x4; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_LDL_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_disp10x4 = ((EXTRACT_LSB0_INT (insn, 32, 19, 10)) << (2)); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_LDQ_VARS \
  UINT f_op; \
  UINT f_left; \
  SI f_disp10x8; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_LDQ_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_disp10x8 = ((EXTRACT_LSB0_INT (insn, 32, 19, 10)) << (3)); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_MMACNFX_WL_VARS \
  UINT f_op; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_MMACNFX_WL_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_MOVI_VARS \
  UINT f_op; \
  INT f_imm16; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_MOVI_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_imm16 = EXTRACT_LSB0_INT (insn, 32, 25, 16); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_ORI_VARS \
  UINT f_op; \
  UINT f_left; \
  INT f_imm10; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_ORI_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_imm10 = EXTRACT_LSB0_INT (insn, 32, 19, 10); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_PREFI_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  SI f_disp6x32; \
  UINT f_right; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_PREFI_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_disp6x32 = ((EXTRACT_LSB0_INT (insn, 32, 15, 6)) << (5)); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_PTA_VARS \
  UINT f_op; \
  DI f_disp16; \
  UINT f_likely; \
  UINT f_8_2; \
  UINT f_tra; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_PTA_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_disp16 = ((((EXTRACT_LSB0_INT (insn, 32, 25, 16)) << (2))) + (pc)); \
  f_likely = EXTRACT_LSB0_UINT (insn, 32, 9, 1); \
  f_8_2 = EXTRACT_LSB0_UINT (insn, 32, 8, 2); \
  f_tra = EXTRACT_LSB0_UINT (insn, 32, 6, 3); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_PTABS_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_likely; \
  UINT f_8_2; \
  UINT f_tra; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_PTABS_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_likely = EXTRACT_LSB0_UINT (insn, 32, 9, 1); \
  f_8_2 = EXTRACT_LSB0_UINT (insn, 32, 8, 2); \
  f_tra = EXTRACT_LSB0_UINT (insn, 32, 6, 3); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_PUTCON_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_PUTCON_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_SHARI_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_uimm6; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_SHARI_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_uimm6 = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_SHORI_VARS \
  UINT f_op; \
  UINT f_uimm16; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_SHORI_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 25, 16); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_STW_VARS \
  UINT f_op; \
  UINT f_left; \
  SI f_disp10x2; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_STW_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_disp10x2 = ((EXTRACT_LSB0_INT (insn, 32, 19, 10)) << (1)); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#define EXTRACT_IFMT_TRAPA_VARS \
  UINT f_op; \
  UINT f_left; \
  UINT f_ext; \
  UINT f_right; \
  UINT f_dest; \
  UINT f_rsvd; \
  unsigned int length;
#define EXTRACT_IFMT_TRAPA_CODE \
  length = 4; \
  f_op = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \
  f_left = EXTRACT_LSB0_UINT (insn, 32, 25, 6); \
  f_ext = EXTRACT_LSB0_UINT (insn, 32, 19, 4); \
  f_right = EXTRACT_LSB0_UINT (insn, 32, 15, 6); \
  f_dest = EXTRACT_LSB0_UINT (insn, 32, 9, 6); \
  f_rsvd = EXTRACT_LSB0_UINT (insn, 32, 3, 4); \

#endif /* DEFS_SH64_MEDIA_H */
