1 /* Instruction opcode header for iq2000.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
7 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
30 /* Allows reason codes to be output when assembler errors occur. */
31 #define CGEN_VERBOSE_ASSEMBLER_ERRORS
33 /* Override disassembly hashing - there are variable bits in the top
34 byte of these instructions. */
35 #define CGEN_DIS_HASH_SIZE 8
36 #define CGEN_DIS_HASH(buf,value) (((* (unsigned char*) (buf)) >> 6) % CGEN_DIS_HASH_SIZE)
38 /* following activates check beyond hashing since some iq2000 and iq10
39 instructions have same mnemonics but different functionality. */
40 #define CGEN_VALIDATE_INSN_SUPPORTED
42 extern int iq2000_cgen_insn_supported (CGEN_CPU_DESC cd
, CGEN_INSN
*insn
);
45 /* Enum declaration for iq2000 instruction types. */
46 typedef enum cgen_insn_type
{
47 IQ2000_INSN_INVALID
, IQ2000_INSN_ADD2
, IQ2000_INSN_ADD
, IQ2000_INSN_ADDI2
48 , IQ2000_INSN_ADDI
, IQ2000_INSN_ADDIU2
, IQ2000_INSN_ADDIU
, IQ2000_INSN_ADDU2
49 , IQ2000_INSN_ADDU
, IQ2000_INSN_ADO162
, IQ2000_INSN_ADO16
, IQ2000_INSN_AND2
50 , IQ2000_INSN_AND
, IQ2000_INSN_ANDI2
, IQ2000_INSN_ANDI
, IQ2000_INSN_ANDOI2
51 , IQ2000_INSN_ANDOI
, IQ2000_INSN_NOR2
, IQ2000_INSN_NOR
, IQ2000_INSN_OR2
52 , IQ2000_INSN_OR
, IQ2000_INSN_ORI2
, IQ2000_INSN_ORI
, IQ2000_INSN_RAM
53 , IQ2000_INSN_SLL
, IQ2000_INSN_SLLV2
, IQ2000_INSN_SLLV
, IQ2000_INSN_SLMV2
54 , IQ2000_INSN_SLMV
, IQ2000_INSN_SLT2
, IQ2000_INSN_SLT
, IQ2000_INSN_SLTI2
55 , IQ2000_INSN_SLTI
, IQ2000_INSN_SLTIU2
, IQ2000_INSN_SLTIU
, IQ2000_INSN_SLTU2
56 , IQ2000_INSN_SLTU
, IQ2000_INSN_SRA2
, IQ2000_INSN_SRA
, IQ2000_INSN_SRAV2
57 , IQ2000_INSN_SRAV
, IQ2000_INSN_SRL
, IQ2000_INSN_SRLV2
, IQ2000_INSN_SRLV
58 , IQ2000_INSN_SRMV2
, IQ2000_INSN_SRMV
, IQ2000_INSN_SUB2
, IQ2000_INSN_SUB
59 , IQ2000_INSN_SUBU2
, IQ2000_INSN_SUBU
, IQ2000_INSN_XOR2
, IQ2000_INSN_XOR
60 , IQ2000_INSN_XORI2
, IQ2000_INSN_XORI
, IQ2000_INSN_BBI
, IQ2000_INSN_BBIN
61 , IQ2000_INSN_BBV
, IQ2000_INSN_BBVN
, IQ2000_INSN_BEQ
, IQ2000_INSN_BEQL
62 , IQ2000_INSN_BGEZ
, IQ2000_INSN_BGEZAL
, IQ2000_INSN_BGEZALL
, IQ2000_INSN_BGEZL
63 , IQ2000_INSN_BLTZ
, IQ2000_INSN_BLTZL
, IQ2000_INSN_BLTZAL
, IQ2000_INSN_BLTZALL
64 , IQ2000_INSN_BMB0
, IQ2000_INSN_BMB1
, IQ2000_INSN_BMB2
, IQ2000_INSN_BMB3
65 , IQ2000_INSN_BNE
, IQ2000_INSN_BNEL
, IQ2000_INSN_JALR
, IQ2000_INSN_JR
66 , IQ2000_INSN_LB
, IQ2000_INSN_LBU
, IQ2000_INSN_LH
, IQ2000_INSN_LHU
67 , IQ2000_INSN_LUI
, IQ2000_INSN_LW
, IQ2000_INSN_SB
, IQ2000_INSN_SH
68 , IQ2000_INSN_SW
, IQ2000_INSN_BREAK
, IQ2000_INSN_SYSCALL
, IQ2000_INSN_ANDOUI
69 , IQ2000_INSN_ANDOUI2
, IQ2000_INSN_ORUI2
, IQ2000_INSN_ORUI
, IQ2000_INSN_BGTZ
70 , IQ2000_INSN_BGTZL
, IQ2000_INSN_BLEZ
, IQ2000_INSN_BLEZL
, IQ2000_INSN_MRGB
71 , IQ2000_INSN_MRGB2
, IQ2000_INSN_BCTXT
, IQ2000_INSN_BC0F
, IQ2000_INSN_BC0FL
72 , IQ2000_INSN_BC3F
, IQ2000_INSN_BC3FL
, IQ2000_INSN_BC0T
, IQ2000_INSN_BC0TL
73 , IQ2000_INSN_BC3T
, IQ2000_INSN_BC3TL
, IQ2000_INSN_CFC0
, IQ2000_INSN_CFC1
74 , IQ2000_INSN_CFC2
, IQ2000_INSN_CFC3
, IQ2000_INSN_CHKHDR
, IQ2000_INSN_CTC0
75 , IQ2000_INSN_CTC1
, IQ2000_INSN_CTC2
, IQ2000_INSN_CTC3
, IQ2000_INSN_JCR
76 , IQ2000_INSN_LUC32
, IQ2000_INSN_LUC32L
, IQ2000_INSN_LUC64
, IQ2000_INSN_LUC64L
77 , IQ2000_INSN_LUK
, IQ2000_INSN_LULCK
, IQ2000_INSN_LUM32
, IQ2000_INSN_LUM32L
78 , IQ2000_INSN_LUM64
, IQ2000_INSN_LUM64L
, IQ2000_INSN_LUR
, IQ2000_INSN_LURL
79 , IQ2000_INSN_LUULCK
, IQ2000_INSN_MFC0
, IQ2000_INSN_MFC1
, IQ2000_INSN_MFC2
80 , IQ2000_INSN_MFC3
, IQ2000_INSN_MTC0
, IQ2000_INSN_MTC1
, IQ2000_INSN_MTC2
81 , IQ2000_INSN_MTC3
, IQ2000_INSN_PKRL
, IQ2000_INSN_PKRLR1
, IQ2000_INSN_PKRLR30
82 , IQ2000_INSN_RB
, IQ2000_INSN_RBR1
, IQ2000_INSN_RBR30
, IQ2000_INSN_RFE
83 , IQ2000_INSN_RX
, IQ2000_INSN_RXR1
, IQ2000_INSN_RXR30
, IQ2000_INSN_SLEEP
84 , IQ2000_INSN_SRRD
, IQ2000_INSN_SRRDL
, IQ2000_INSN_SRULCK
, IQ2000_INSN_SRWR
85 , IQ2000_INSN_SRWRU
, IQ2000_INSN_TRAPQFL
, IQ2000_INSN_TRAPQNE
, IQ2000_INSN_TRAPREL
86 , IQ2000_INSN_WB
, IQ2000_INSN_WBU
, IQ2000_INSN_WBR1
, IQ2000_INSN_WBR1U
87 , IQ2000_INSN_WBR30
, IQ2000_INSN_WBR30U
, IQ2000_INSN_WX
, IQ2000_INSN_WXU
88 , IQ2000_INSN_WXR1
, IQ2000_INSN_WXR1U
, IQ2000_INSN_WXR30
, IQ2000_INSN_WXR30U
89 , IQ2000_INSN_LDW
, IQ2000_INSN_SDW
, IQ2000_INSN_J
, IQ2000_INSN_JAL
90 , IQ2000_INSN_BMB
, IQ2000_INSN_ANDOUI_Q10
, IQ2000_INSN_ANDOUI2_Q10
, IQ2000_INSN_ORUI_Q10
91 , IQ2000_INSN_ORUI2_Q10
, IQ2000_INSN_MRGBQ10
, IQ2000_INSN_MRGBQ102
, IQ2000_INSN_JQ10
92 , IQ2000_INSN_JALQ10
, IQ2000_INSN_JALQ10_2
, IQ2000_INSN_BBIL
, IQ2000_INSN_BBINL
93 , IQ2000_INSN_BBVL
, IQ2000_INSN_BBVNL
, IQ2000_INSN_BGTZAL
, IQ2000_INSN_BGTZALL
94 , IQ2000_INSN_BLEZAL
, IQ2000_INSN_BLEZALL
, IQ2000_INSN_BGTZ_Q10
, IQ2000_INSN_BGTZL_Q10
95 , IQ2000_INSN_BLEZ_Q10
, IQ2000_INSN_BLEZL_Q10
, IQ2000_INSN_BMB_Q10
, IQ2000_INSN_BMBL
96 , IQ2000_INSN_BRI
, IQ2000_INSN_BRV
, IQ2000_INSN_BCTX
, IQ2000_INSN_YIELD
97 , IQ2000_INSN_CRC32
, IQ2000_INSN_CRC32B
, IQ2000_INSN_CNT1S
, IQ2000_INSN_AVAIL
98 , IQ2000_INSN_FREE
, IQ2000_INSN_TSTOD
, IQ2000_INSN_CMPHDR
, IQ2000_INSN_MCID
99 , IQ2000_INSN_DBA
, IQ2000_INSN_DBD
, IQ2000_INSN_DPWT
, IQ2000_INSN_CHKHDRQ10
100 , IQ2000_INSN_RBA
, IQ2000_INSN_RBAL
, IQ2000_INSN_RBAR
, IQ2000_INSN_WBA
101 , IQ2000_INSN_WBAU
, IQ2000_INSN_WBAC
, IQ2000_INSN_RBI
, IQ2000_INSN_RBIL
102 , IQ2000_INSN_RBIR
, IQ2000_INSN_WBI
, IQ2000_INSN_WBIC
, IQ2000_INSN_WBIU
103 , IQ2000_INSN_PKRLI
, IQ2000_INSN_PKRLIH
, IQ2000_INSN_PKRLIU
, IQ2000_INSN_PKRLIC
104 , IQ2000_INSN_PKRLA
, IQ2000_INSN_PKRLAU
, IQ2000_INSN_PKRLAH
, IQ2000_INSN_PKRLAC
105 , IQ2000_INSN_LOCK
, IQ2000_INSN_UNLK
, IQ2000_INSN_SWRD
, IQ2000_INSN_SWRDL
106 , IQ2000_INSN_SWWR
, IQ2000_INSN_SWWRU
, IQ2000_INSN_DWRD
, IQ2000_INSN_DWRDL
107 , IQ2000_INSN_CAM36
, IQ2000_INSN_CAM72
, IQ2000_INSN_CAM144
, IQ2000_INSN_CAM288
108 , IQ2000_INSN_CM32AND
, IQ2000_INSN_CM32ANDN
, IQ2000_INSN_CM32OR
, IQ2000_INSN_CM32RA
109 , IQ2000_INSN_CM32RD
, IQ2000_INSN_CM32RI
, IQ2000_INSN_CM32RS
, IQ2000_INSN_CM32SA
110 , IQ2000_INSN_CM32SD
, IQ2000_INSN_CM32SI
, IQ2000_INSN_CM32SS
, IQ2000_INSN_CM32XOR
111 , IQ2000_INSN_CM64CLR
, IQ2000_INSN_CM64RA
, IQ2000_INSN_CM64RD
, IQ2000_INSN_CM64RI
112 , IQ2000_INSN_CM64RIA2
, IQ2000_INSN_CM64RS
, IQ2000_INSN_CM64SA
, IQ2000_INSN_CM64SD
113 , IQ2000_INSN_CM64SI
, IQ2000_INSN_CM64SIA2
, IQ2000_INSN_CM64SS
, IQ2000_INSN_CM128RIA2
114 , IQ2000_INSN_CM128RIA3
, IQ2000_INSN_CM128RIA4
, IQ2000_INSN_CM128SIA2
, IQ2000_INSN_CM128SIA3
115 , IQ2000_INSN_CM128SIA4
, IQ2000_INSN_CM128VSA
, IQ2000_INSN_CFC
, IQ2000_INSN_CTC
118 /* Index of `invalid' insn place holder. */
119 #define CGEN_INSN_INVALID IQ2000_INSN_INVALID
121 /* Total number of insns in table. */
122 #define MAX_INSNS ((int) IQ2000_INSN_CTC + 1)
124 /* This struct records data prior to insertion or after extraction. */
167 #define CGEN_INIT_PARSE(od) \
170 #define CGEN_INIT_INSERT(od) \
173 #define CGEN_INIT_EXTRACT(od) \
176 #define CGEN_INIT_PRINT(od) \
181 #endif /* IQ2000_OPC_H */