1 /* DO NOT EDIT! -*- buffer-read-only: t -*- vi:set ro: */
2 /* Instruction opcode header for iq2000.
4 THIS FILE IS MACHINE GENERATED WITH CGEN.
6 Copyright (C) 1996-2024 Free Software Foundation, Inc.
8 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
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)
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.
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.
35 /* Allows reason codes to be output when assembler errors occur. */
36 #define CGEN_VERBOSE_ASSEMBLER_ERRORS
38 /* Override disassembly hashing - there are variable bits in the top
39 byte of these instructions. */
40 #define CGEN_DIS_HASH_SIZE 8
41 #define CGEN_DIS_HASH(buf,value) (((* (unsigned char*) (buf)) >> 6) % CGEN_DIS_HASH_SIZE)
43 /* following activates check beyond hashing since some iq2000 and iq10
44 instructions have same mnemonics but different functionality. */
45 #define CGEN_VALIDATE_INSN_SUPPORTED
47 extern int iq2000_cgen_insn_supported (CGEN_CPU_DESC
, const CGEN_INSN
*);
50 /* Enum declaration for iq2000 instruction types. */
51 typedef enum cgen_insn_type
{
52 IQ2000_INSN_INVALID
, IQ2000_INSN_ADD2
, IQ2000_INSN_ADD
, IQ2000_INSN_ADDI2
53 , IQ2000_INSN_ADDI
, IQ2000_INSN_ADDIU2
, IQ2000_INSN_ADDIU
, IQ2000_INSN_ADDU2
54 , IQ2000_INSN_ADDU
, IQ2000_INSN_ADO162
, IQ2000_INSN_ADO16
, IQ2000_INSN_AND2
55 , IQ2000_INSN_AND
, IQ2000_INSN_ANDI2
, IQ2000_INSN_ANDI
, IQ2000_INSN_ANDOI2
56 , IQ2000_INSN_ANDOI
, IQ2000_INSN_NOR2
, IQ2000_INSN_NOR
, IQ2000_INSN_OR2
57 , IQ2000_INSN_OR
, IQ2000_INSN_ORI2
, IQ2000_INSN_ORI
, IQ2000_INSN_RAM
58 , IQ2000_INSN_SLL
, IQ2000_INSN_SLLV2
, IQ2000_INSN_SLLV
, IQ2000_INSN_SLMV2
59 , IQ2000_INSN_SLMV
, IQ2000_INSN_SLT2
, IQ2000_INSN_SLT
, IQ2000_INSN_SLTI2
60 , IQ2000_INSN_SLTI
, IQ2000_INSN_SLTIU2
, IQ2000_INSN_SLTIU
, IQ2000_INSN_SLTU2
61 , IQ2000_INSN_SLTU
, IQ2000_INSN_SRA2
, IQ2000_INSN_SRA
, IQ2000_INSN_SRAV2
62 , IQ2000_INSN_SRAV
, IQ2000_INSN_SRL
, IQ2000_INSN_SRLV2
, IQ2000_INSN_SRLV
63 , IQ2000_INSN_SRMV2
, IQ2000_INSN_SRMV
, IQ2000_INSN_SUB2
, IQ2000_INSN_SUB
64 , IQ2000_INSN_SUBU2
, IQ2000_INSN_SUBU
, IQ2000_INSN_XOR2
, IQ2000_INSN_XOR
65 , IQ2000_INSN_XORI2
, IQ2000_INSN_XORI
, IQ2000_INSN_BBI
, IQ2000_INSN_BBIN
66 , IQ2000_INSN_BBV
, IQ2000_INSN_BBVN
, IQ2000_INSN_BEQ
, IQ2000_INSN_BEQL
67 , IQ2000_INSN_BGEZ
, IQ2000_INSN_BGEZAL
, IQ2000_INSN_BGEZALL
, IQ2000_INSN_BGEZL
68 , IQ2000_INSN_BLTZ
, IQ2000_INSN_BLTZL
, IQ2000_INSN_BLTZAL
, IQ2000_INSN_BLTZALL
69 , IQ2000_INSN_BMB0
, IQ2000_INSN_BMB1
, IQ2000_INSN_BMB2
, IQ2000_INSN_BMB3
70 , IQ2000_INSN_BNE
, IQ2000_INSN_BNEL
, IQ2000_INSN_JALR
, IQ2000_INSN_JR
71 , IQ2000_INSN_LB
, IQ2000_INSN_LBU
, IQ2000_INSN_LH
, IQ2000_INSN_LHU
72 , IQ2000_INSN_LUI
, IQ2000_INSN_LW
, IQ2000_INSN_SB
, IQ2000_INSN_SH
73 , IQ2000_INSN_SW
, IQ2000_INSN_BREAK
, IQ2000_INSN_SYSCALL
, IQ2000_INSN_ANDOUI
74 , IQ2000_INSN_ANDOUI2
, IQ2000_INSN_ORUI2
, IQ2000_INSN_ORUI
, IQ2000_INSN_BGTZ
75 , IQ2000_INSN_BGTZL
, IQ2000_INSN_BLEZ
, IQ2000_INSN_BLEZL
, IQ2000_INSN_MRGB
76 , IQ2000_INSN_MRGB2
, IQ2000_INSN_BCTXT
, IQ2000_INSN_BC0F
, IQ2000_INSN_BC0FL
77 , IQ2000_INSN_BC3F
, IQ2000_INSN_BC3FL
, IQ2000_INSN_BC0T
, IQ2000_INSN_BC0TL
78 , IQ2000_INSN_BC3T
, IQ2000_INSN_BC3TL
, IQ2000_INSN_CFC0
, IQ2000_INSN_CFC1
79 , IQ2000_INSN_CFC2
, IQ2000_INSN_CFC3
, IQ2000_INSN_CHKHDR
, IQ2000_INSN_CTC0
80 , IQ2000_INSN_CTC1
, IQ2000_INSN_CTC2
, IQ2000_INSN_CTC3
, IQ2000_INSN_JCR
81 , IQ2000_INSN_LUC32
, IQ2000_INSN_LUC32L
, IQ2000_INSN_LUC64
, IQ2000_INSN_LUC64L
82 , IQ2000_INSN_LUK
, IQ2000_INSN_LULCK
, IQ2000_INSN_LUM32
, IQ2000_INSN_LUM32L
83 , IQ2000_INSN_LUM64
, IQ2000_INSN_LUM64L
, IQ2000_INSN_LUR
, IQ2000_INSN_LURL
84 , IQ2000_INSN_LUULCK
, IQ2000_INSN_MFC0
, IQ2000_INSN_MFC1
, IQ2000_INSN_MFC2
85 , IQ2000_INSN_MFC3
, IQ2000_INSN_MTC0
, IQ2000_INSN_MTC1
, IQ2000_INSN_MTC2
86 , IQ2000_INSN_MTC3
, IQ2000_INSN_PKRL
, IQ2000_INSN_PKRLR1
, IQ2000_INSN_PKRLR30
87 , IQ2000_INSN_RB
, IQ2000_INSN_RBR1
, IQ2000_INSN_RBR30
, IQ2000_INSN_RFE
88 , IQ2000_INSN_RX
, IQ2000_INSN_RXR1
, IQ2000_INSN_RXR30
, IQ2000_INSN_SLEEP
89 , IQ2000_INSN_SRRD
, IQ2000_INSN_SRRDL
, IQ2000_INSN_SRULCK
, IQ2000_INSN_SRWR
90 , IQ2000_INSN_SRWRU
, IQ2000_INSN_TRAPQFL
, IQ2000_INSN_TRAPQNE
, IQ2000_INSN_TRAPREL
91 , IQ2000_INSN_WB
, IQ2000_INSN_WBU
, IQ2000_INSN_WBR1
, IQ2000_INSN_WBR1U
92 , IQ2000_INSN_WBR30
, IQ2000_INSN_WBR30U
, IQ2000_INSN_WX
, IQ2000_INSN_WXU
93 , IQ2000_INSN_WXR1
, IQ2000_INSN_WXR1U
, IQ2000_INSN_WXR30
, IQ2000_INSN_WXR30U
94 , IQ2000_INSN_LDW
, IQ2000_INSN_SDW
, IQ2000_INSN_J
, IQ2000_INSN_JAL
95 , IQ2000_INSN_BMB
, IQ2000_INSN_ANDOUI_Q10
, IQ2000_INSN_ANDOUI2_Q10
, IQ2000_INSN_ORUI_Q10
96 , IQ2000_INSN_ORUI2_Q10
, IQ2000_INSN_MRGBQ10
, IQ2000_INSN_MRGBQ102
, IQ2000_INSN_JQ10
97 , IQ2000_INSN_JALQ10
, IQ2000_INSN_JALQ10_2
, IQ2000_INSN_BBIL
, IQ2000_INSN_BBINL
98 , IQ2000_INSN_BBVL
, IQ2000_INSN_BBVNL
, IQ2000_INSN_BGTZAL
, IQ2000_INSN_BGTZALL
99 , IQ2000_INSN_BLEZAL
, IQ2000_INSN_BLEZALL
, IQ2000_INSN_BGTZ_Q10
, IQ2000_INSN_BGTZL_Q10
100 , IQ2000_INSN_BLEZ_Q10
, IQ2000_INSN_BLEZL_Q10
, IQ2000_INSN_BMB_Q10
, IQ2000_INSN_BMBL
101 , IQ2000_INSN_BRI
, IQ2000_INSN_BRV
, IQ2000_INSN_BCTX
, IQ2000_INSN_YIELD
102 , IQ2000_INSN_CRC32
, IQ2000_INSN_CRC32B
, IQ2000_INSN_CNT1S
, IQ2000_INSN_AVAIL
103 , IQ2000_INSN_FREE
, IQ2000_INSN_TSTOD
, IQ2000_INSN_CMPHDR
, IQ2000_INSN_MCID
104 , IQ2000_INSN_DBA
, IQ2000_INSN_DBD
, IQ2000_INSN_DPWT
, IQ2000_INSN_CHKHDRQ10
105 , IQ2000_INSN_RBA
, IQ2000_INSN_RBAL
, IQ2000_INSN_RBAR
, IQ2000_INSN_WBA
106 , IQ2000_INSN_WBAU
, IQ2000_INSN_WBAC
, IQ2000_INSN_RBI
, IQ2000_INSN_RBIL
107 , IQ2000_INSN_RBIR
, IQ2000_INSN_WBI
, IQ2000_INSN_WBIC
, IQ2000_INSN_WBIU
108 , IQ2000_INSN_PKRLI
, IQ2000_INSN_PKRLIH
, IQ2000_INSN_PKRLIU
, IQ2000_INSN_PKRLIC
109 , IQ2000_INSN_PKRLA
, IQ2000_INSN_PKRLAU
, IQ2000_INSN_PKRLAH
, IQ2000_INSN_PKRLAC
110 , IQ2000_INSN_LOCK
, IQ2000_INSN_UNLK
, IQ2000_INSN_SWRD
, IQ2000_INSN_SWRDL
111 , IQ2000_INSN_SWWR
, IQ2000_INSN_SWWRU
, IQ2000_INSN_DWRD
, IQ2000_INSN_DWRDL
112 , IQ2000_INSN_CAM36
, IQ2000_INSN_CAM72
, IQ2000_INSN_CAM144
, IQ2000_INSN_CAM288
113 , IQ2000_INSN_CM32AND
, IQ2000_INSN_CM32ANDN
, IQ2000_INSN_CM32OR
, IQ2000_INSN_CM32RA
114 , IQ2000_INSN_CM32RD
, IQ2000_INSN_CM32RI
, IQ2000_INSN_CM32RS
, IQ2000_INSN_CM32SA
115 , IQ2000_INSN_CM32SD
, IQ2000_INSN_CM32SI
, IQ2000_INSN_CM32SS
, IQ2000_INSN_CM32XOR
116 , IQ2000_INSN_CM64CLR
, IQ2000_INSN_CM64RA
, IQ2000_INSN_CM64RD
, IQ2000_INSN_CM64RI
117 , IQ2000_INSN_CM64RIA2
, IQ2000_INSN_CM64RS
, IQ2000_INSN_CM64SA
, IQ2000_INSN_CM64SD
118 , IQ2000_INSN_CM64SI
, IQ2000_INSN_CM64SIA2
, IQ2000_INSN_CM64SS
, IQ2000_INSN_CM128RIA2
119 , IQ2000_INSN_CM128RIA3
, IQ2000_INSN_CM128RIA4
, IQ2000_INSN_CM128SIA2
, IQ2000_INSN_CM128SIA3
120 , IQ2000_INSN_CM128SIA4
, IQ2000_INSN_CM128VSA
, IQ2000_INSN_CFC
, IQ2000_INSN_CTC
123 /* Index of `invalid' insn place holder. */
124 #define CGEN_INSN_INVALID IQ2000_INSN_INVALID
126 /* Total number of insns in table. */
127 #define MAX_INSNS ((int) IQ2000_INSN_CTC + 1)
129 /* This struct records data prior to insertion or after extraction. */
172 #define CGEN_INIT_PARSE(od) \
175 #define CGEN_INIT_INSERT(od) \
178 #define CGEN_INIT_EXTRACT(od) \
181 #define CGEN_INIT_PRINT(od) \
190 #endif /* IQ2000_OPC_H */