Home | History | Annotate | Line # | Download | only in opcodes
      1 /* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
      2 /* Instruction opcode header for mt.
      3 
      4 THIS FILE IS MACHINE GENERATED WITH CGEN.
      5 
      6 Copyright (C) 1996-2025 Free Software Foundation, Inc.
      7 
      8 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
      9 
     10    This file is free software; you can redistribute it and/or modify
     11    it under the terms of the GNU General Public License as published by
     12    the Free Software Foundation; either version 3, or (at your option)
     13    any later version.
     14 
     15    It is distributed in the hope that it will be useful, but WITHOUT
     16    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     17    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
     18    License for more details.
     19 
     20    You should have received a copy of the GNU General Public License along
     21    with this program; if not, write to the Free Software Foundation, Inc.,
     22    51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
     23 
     24 */
     25 
     26 #ifndef MT_OPC_H
     27 #define MT_OPC_H
     28 
     29 #ifdef __cplusplus
     30 extern "C" {
     31 #endif
     32 
     33 /* -- opc.h */
     34 
     35 /* Check applicability of instructions against machines.  */
     36 #define CGEN_VALIDATE_INSN_SUPPORTED
     37 
     38 /* Allows reason codes to be output when assembler errors occur.  */
     39 #define CGEN_VERBOSE_ASSEMBLER_ERRORS
     40 
     41 /* Override disassembly hashing - there are variable bits in the top
     42    byte of these instructions.  */
     43 #define CGEN_DIS_HASH_SIZE 8
     44 #define CGEN_DIS_HASH(buf, value) (((* (unsigned char *) (buf)) >> 5) % CGEN_DIS_HASH_SIZE)
     45 
     46 #define CGEN_ASM_HASH_SIZE 127
     47 #define CGEN_ASM_HASH(insn) mt_asm_hash (insn)
     48 
     49 extern unsigned int mt_asm_hash (const char *);
     50 
     51 extern int mt_cgen_insn_supported (CGEN_CPU_DESC, const CGEN_INSN *);
     52 
     53 
     54 /* -- opc.c */
     56 /* Enum declaration for mt instruction types.  */
     57 typedef enum cgen_insn_type {
     58   MT_INSN_INVALID, MT_INSN_ADD, MT_INSN_ADDU, MT_INSN_ADDI
     59  , MT_INSN_ADDUI, MT_INSN_SUB, MT_INSN_SUBU, MT_INSN_SUBI
     60  , MT_INSN_SUBUI, MT_INSN_MUL, MT_INSN_MULI, MT_INSN_AND
     61  , MT_INSN_ANDI, MT_INSN_OR, MT_INSN_NOP, MT_INSN_ORI
     62  , MT_INSN_XOR, MT_INSN_XORI, MT_INSN_NAND, MT_INSN_NANDI
     63  , MT_INSN_NOR, MT_INSN_NORI, MT_INSN_XNOR, MT_INSN_XNORI
     64  , MT_INSN_LDUI, MT_INSN_LSL, MT_INSN_LSLI, MT_INSN_LSR
     65  , MT_INSN_LSRI, MT_INSN_ASR, MT_INSN_ASRI, MT_INSN_BRLT
     66  , MT_INSN_BRLE, MT_INSN_BREQ, MT_INSN_BRNE, MT_INSN_JMP
     67  , MT_INSN_JAL, MT_INSN_DBNZ, MT_INSN_EI, MT_INSN_DI
     68  , MT_INSN_SI, MT_INSN_RETI, MT_INSN_LDW, MT_INSN_STW
     69  , MT_INSN_BREAK, MT_INSN_IFLUSH, MT_INSN_LDCTXT, MT_INSN_LDFB
     70  , MT_INSN_STFB, MT_INSN_FBCB, MT_INSN_MFBCB, MT_INSN_FBCCI
     71  , MT_INSN_FBRCI, MT_INSN_FBCRI, MT_INSN_FBRRI, MT_INSN_MFBCCI
     72  , MT_INSN_MFBRCI, MT_INSN_MFBCRI, MT_INSN_MFBRRI, MT_INSN_FBCBDR
     73  , MT_INSN_RCFBCB, MT_INSN_MRCFBCB, MT_INSN_CBCAST, MT_INSN_DUPCBCAST
     74  , MT_INSN_WFBI, MT_INSN_WFB, MT_INSN_RCRISC, MT_INSN_FBCBINC
     75  , MT_INSN_RCXMODE, MT_INSN_INTERLEAVER, MT_INSN_WFBINC, MT_INSN_MWFBINC
     76  , MT_INSN_WFBINCR, MT_INSN_MWFBINCR, MT_INSN_FBCBINCS, MT_INSN_MFBCBINCS
     77  , MT_INSN_FBCBINCRS, MT_INSN_MFBCBINCRS, MT_INSN_LOOP, MT_INSN_LOOPI
     78  , MT_INSN_DFBC, MT_INSN_DWFB, MT_INSN_FBWFB, MT_INSN_DFBR
     79 } CGEN_INSN_TYPE;
     80 
     81 /* Index of `invalid' insn place holder.  */
     82 #define CGEN_INSN_INVALID MT_INSN_INVALID
     83 
     84 /* Total number of insns in table.  */
     85 #define MAX_INSNS ((int) MT_INSN_DFBR + 1)
     86 
     87 /* This struct records data prior to insertion or after extraction.  */
     88 struct cgen_fields
     89 {
     90   int length;
     91   long f_nil;
     92   long f_anyof;
     93   long f_msys;
     94   long f_opc;
     95   long f_imm;
     96   long f_uu24;
     97   long f_sr1;
     98   long f_sr2;
     99   long f_dr;
    100   long f_drrr;
    101   long f_imm16u;
    102   long f_imm16s;
    103   long f_imm16a;
    104   long f_uu4a;
    105   long f_uu4b;
    106   long f_uu12;
    107   long f_uu8;
    108   long f_uu16;
    109   long f_uu1;
    110   long f_msopc;
    111   long f_uu_26_25;
    112   long f_mask;
    113   long f_bankaddr;
    114   long f_rda;
    115   long f_uu_2_25;
    116   long f_rbbc;
    117   long f_perm;
    118   long f_mode;
    119   long f_uu_1_24;
    120   long f_wr;
    121   long f_fbincr;
    122   long f_uu_2_23;
    123   long f_xmode;
    124   long f_a23;
    125   long f_mask1;
    126   long f_cr;
    127   long f_type;
    128   long f_incamt;
    129   long f_cbs;
    130   long f_uu_1_19;
    131   long f_ball;
    132   long f_colnum;
    133   long f_brc;
    134   long f_incr;
    135   long f_fbdisp;
    136   long f_uu_4_15;
    137   long f_length;
    138   long f_uu_1_15;
    139   long f_rc;
    140   long f_rcnum;
    141   long f_rownum;
    142   long f_cbx;
    143   long f_id;
    144   long f_size;
    145   long f_rownum1;
    146   long f_uu_3_11;
    147   long f_rc1;
    148   long f_ccb;
    149   long f_cbrb;
    150   long f_cdb;
    151   long f_rownum2;
    152   long f_cell;
    153   long f_uu_3_9;
    154   long f_contnum;
    155   long f_uu_1_6;
    156   long f_dup;
    157   long f_rc2;
    158   long f_ctxdisp;
    159   long f_imm16l;
    160   long f_loopo;
    161   long f_cb1sel;
    162   long f_cb2sel;
    163   long f_cb1incr;
    164   long f_cb2incr;
    165   long f_rc3;
    166   long f_msysfrsr2;
    167   long f_brc2;
    168   long f_ball2;
    169 };
    170 
    171 #define CGEN_INIT_PARSE(od) \
    172 {\
    173 }
    174 #define CGEN_INIT_INSERT(od) \
    175 {\
    176 }
    177 #define CGEN_INIT_EXTRACT(od) \
    178 {\
    179 }
    180 #define CGEN_INIT_PRINT(od) \
    181 {\
    182 }
    183 
    184 
    185    #ifdef __cplusplus
    186    }
    187    #endif
    188 
    189 #endif /* MT_OPC_H */
    190