/* DO NOT EDIT! -*- buffer-read-only: t -*- vi:set ro: */
/* Instruction opcode header for iq2000.
THIS FILE IS MACHINE GENERATED WITH CGEN.
Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU Binutils and/or GDB, the GNU debugger.
This file 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 3, or (at your option)
any later version.
It 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.,
51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef IQ2000_OPC_H
#define IQ2000_OPC_H
#ifdef __cplusplus
extern "C" {
#endif
/* -- 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)
/* following activates check beyond hashing since some iq2000 and iq10
instructions have same mnemonics but different functionality. */
#define CGEN_VALIDATE_INSN_SUPPORTED
extern int iq2000_cgen_insn_supported (CGEN_CPU_DESC, const CGEN_INSN *);
/* Index of `invalid' insn place holder. */
#define CGEN_INSN_INVALID IQ2000_INSN_INVALID
/* Total number of insns in table. */
#define MAX_INSNS ((int) IQ2000_INSN_CTC + 1)
/* This struct records data prior to insertion or after extraction. */
struct cgen_fields
{
int length;
long f_nil;
long f_anyof;
long f_opcode;
long f_rs;
long f_rt;
long f_rd;
long f_shamt;
long f_cp_op;
long f_cp_op_10;
long f_cp_grp;
long f_func;
long f_imm;
long f_rd_rs;
long f_rd_rt;
long f_rt_rs;
long f_jtarg;
long f_jtargq10;
long f_offset;
long f_count;
long f_bytecount;
long f_index;
long f_mask;
long f_maskq10;
long f_maskl;
long f_excode;
long f_rsrvd;
long f_10_11;
long f_24_19;
long f_5;
long f_10;
long f_25;
long f_cam_z;
long f_cam_y;
long f_cm_3func;
long f_cm_4func;
long f_cm_3z;
long f_cm_4z;
};