1 /* Decode header for iq2000bf.
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 simulators.
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 3 of the License, or
12 (at your option) any later version.
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
20 along with this program. If not, see <http://www.gnu.org/licenses/>.
24 #ifndef IQ2000BF_DECODE_H
25 #define IQ2000BF_DECODE_H
27 extern const IDESC
*iq2000bf_decode (SIM_CPU
*, IADDR
,
28 CGEN_INSN_INT
, CGEN_INSN_INT
,
30 extern void iq2000bf_init_idesc_table (SIM_CPU
*);
31 extern void iq2000bf_sem_init_idesc_table (SIM_CPU
*);
32 extern void iq2000bf_semf_init_idesc_table (SIM_CPU
*);
34 /* Enum declaration for instructions in cpu family iq2000bf. */
35 typedef enum iq2000bf_insn_type
{
36 IQ2000BF_INSN_X_INVALID
, IQ2000BF_INSN_X_AFTER
, IQ2000BF_INSN_X_BEFORE
, IQ2000BF_INSN_X_CTI_CHAIN
37 , IQ2000BF_INSN_X_CHAIN
, IQ2000BF_INSN_X_BEGIN
, IQ2000BF_INSN_ADD
, IQ2000BF_INSN_ADDI
38 , IQ2000BF_INSN_ADDIU
, IQ2000BF_INSN_ADDU
, IQ2000BF_INSN_ADO16
, IQ2000BF_INSN_AND
39 , IQ2000BF_INSN_ANDI
, IQ2000BF_INSN_ANDOI
, IQ2000BF_INSN_NOR
, IQ2000BF_INSN_OR
40 , IQ2000BF_INSN_ORI
, IQ2000BF_INSN_RAM
, IQ2000BF_INSN_SLL
, IQ2000BF_INSN_SLLV
41 , IQ2000BF_INSN_SLMV
, IQ2000BF_INSN_SLT
, IQ2000BF_INSN_SLTI
, IQ2000BF_INSN_SLTIU
42 , IQ2000BF_INSN_SLTU
, IQ2000BF_INSN_SRA
, IQ2000BF_INSN_SRAV
, IQ2000BF_INSN_SRL
43 , IQ2000BF_INSN_SRLV
, IQ2000BF_INSN_SRMV
, IQ2000BF_INSN_SUB
, IQ2000BF_INSN_SUBU
44 , IQ2000BF_INSN_XOR
, IQ2000BF_INSN_XORI
, IQ2000BF_INSN_BBI
, IQ2000BF_INSN_BBIN
45 , IQ2000BF_INSN_BBV
, IQ2000BF_INSN_BBVN
, IQ2000BF_INSN_BEQ
, IQ2000BF_INSN_BEQL
46 , IQ2000BF_INSN_BGEZ
, IQ2000BF_INSN_BGEZAL
, IQ2000BF_INSN_BGEZALL
, IQ2000BF_INSN_BGEZL
47 , IQ2000BF_INSN_BLTZ
, IQ2000BF_INSN_BLTZL
, IQ2000BF_INSN_BLTZAL
, IQ2000BF_INSN_BLTZALL
48 , IQ2000BF_INSN_BMB0
, IQ2000BF_INSN_BMB1
, IQ2000BF_INSN_BMB2
, IQ2000BF_INSN_BMB3
49 , IQ2000BF_INSN_BNE
, IQ2000BF_INSN_BNEL
, IQ2000BF_INSN_JALR
, IQ2000BF_INSN_JR
50 , IQ2000BF_INSN_LB
, IQ2000BF_INSN_LBU
, IQ2000BF_INSN_LH
, IQ2000BF_INSN_LHU
51 , IQ2000BF_INSN_LUI
, IQ2000BF_INSN_LW
, IQ2000BF_INSN_SB
, IQ2000BF_INSN_SH
52 , IQ2000BF_INSN_SW
, IQ2000BF_INSN_BREAK
, IQ2000BF_INSN_SYSCALL
, IQ2000BF_INSN_ANDOUI
53 , IQ2000BF_INSN_ORUI
, IQ2000BF_INSN_BGTZ
, IQ2000BF_INSN_BGTZL
, IQ2000BF_INSN_BLEZ
54 , IQ2000BF_INSN_BLEZL
, IQ2000BF_INSN_MRGB
, IQ2000BF_INSN_BCTXT
, IQ2000BF_INSN_BC0F
55 , IQ2000BF_INSN_BC0FL
, IQ2000BF_INSN_BC3F
, IQ2000BF_INSN_BC3FL
, IQ2000BF_INSN_BC0T
56 , IQ2000BF_INSN_BC0TL
, IQ2000BF_INSN_BC3T
, IQ2000BF_INSN_BC3TL
, IQ2000BF_INSN_CFC0
57 , IQ2000BF_INSN_CFC1
, IQ2000BF_INSN_CFC2
, IQ2000BF_INSN_CFC3
, IQ2000BF_INSN_CHKHDR
58 , IQ2000BF_INSN_CTC0
, IQ2000BF_INSN_CTC1
, IQ2000BF_INSN_CTC2
, IQ2000BF_INSN_CTC3
59 , IQ2000BF_INSN_JCR
, IQ2000BF_INSN_LUC32
, IQ2000BF_INSN_LUC32L
, IQ2000BF_INSN_LUC64
60 , IQ2000BF_INSN_LUC64L
, IQ2000BF_INSN_LUK
, IQ2000BF_INSN_LULCK
, IQ2000BF_INSN_LUM32
61 , IQ2000BF_INSN_LUM32L
, IQ2000BF_INSN_LUM64
, IQ2000BF_INSN_LUM64L
, IQ2000BF_INSN_LUR
62 , IQ2000BF_INSN_LURL
, IQ2000BF_INSN_LUULCK
, IQ2000BF_INSN_MFC0
, IQ2000BF_INSN_MFC1
63 , IQ2000BF_INSN_MFC2
, IQ2000BF_INSN_MFC3
, IQ2000BF_INSN_MTC0
, IQ2000BF_INSN_MTC1
64 , IQ2000BF_INSN_MTC2
, IQ2000BF_INSN_MTC3
, IQ2000BF_INSN_PKRL
, IQ2000BF_INSN_PKRLR1
65 , IQ2000BF_INSN_PKRLR30
, IQ2000BF_INSN_RB
, IQ2000BF_INSN_RBR1
, IQ2000BF_INSN_RBR30
66 , IQ2000BF_INSN_RFE
, IQ2000BF_INSN_RX
, IQ2000BF_INSN_RXR1
, IQ2000BF_INSN_RXR30
67 , IQ2000BF_INSN_SLEEP
, IQ2000BF_INSN_SRRD
, IQ2000BF_INSN_SRRDL
, IQ2000BF_INSN_SRULCK
68 , IQ2000BF_INSN_SRWR
, IQ2000BF_INSN_SRWRU
, IQ2000BF_INSN_TRAPQFL
, IQ2000BF_INSN_TRAPQNE
69 , IQ2000BF_INSN_TRAPREL
, IQ2000BF_INSN_WB
, IQ2000BF_INSN_WBU
, IQ2000BF_INSN_WBR1
70 , IQ2000BF_INSN_WBR1U
, IQ2000BF_INSN_WBR30
, IQ2000BF_INSN_WBR30U
, IQ2000BF_INSN_WX
71 , IQ2000BF_INSN_WXU
, IQ2000BF_INSN_WXR1
, IQ2000BF_INSN_WXR1U
, IQ2000BF_INSN_WXR30
72 , IQ2000BF_INSN_WXR30U
, IQ2000BF_INSN_LDW
, IQ2000BF_INSN_SDW
, IQ2000BF_INSN_J
73 , IQ2000BF_INSN_JAL
, IQ2000BF_INSN_BMB
, IQ2000BF_INSN_MAX
76 /* Enum declaration for semantic formats in cpu family iq2000bf. */
77 typedef enum iq2000bf_sfmt_type
{
78 IQ2000BF_SFMT_EMPTY
, IQ2000BF_SFMT_ADD
, IQ2000BF_SFMT_ADDI
, IQ2000BF_SFMT_ADO16
79 , IQ2000BF_SFMT_RAM
, IQ2000BF_SFMT_SLL
, IQ2000BF_SFMT_SLMV
, IQ2000BF_SFMT_SLT
80 , IQ2000BF_SFMT_SLTI
, IQ2000BF_SFMT_BBI
, IQ2000BF_SFMT_BBV
, IQ2000BF_SFMT_BGEZ
81 , IQ2000BF_SFMT_BGEZAL
, IQ2000BF_SFMT_JALR
, IQ2000BF_SFMT_JR
, IQ2000BF_SFMT_LB
82 , IQ2000BF_SFMT_LH
, IQ2000BF_SFMT_LUI
, IQ2000BF_SFMT_LW
, IQ2000BF_SFMT_SB
83 , IQ2000BF_SFMT_SH
, IQ2000BF_SFMT_SW
, IQ2000BF_SFMT_BREAK
, IQ2000BF_SFMT_SYSCALL
84 , IQ2000BF_SFMT_ANDOUI
, IQ2000BF_SFMT_MRGB
, IQ2000BF_SFMT_BCTXT
, IQ2000BF_SFMT_LDW
85 , IQ2000BF_SFMT_SDW
, IQ2000BF_SFMT_J
, IQ2000BF_SFMT_JAL
88 /* Function unit handlers (user written). */
90 extern int iq2000bf_model_iq2000_u_exec (SIM_CPU
*, const IDESC
*, int /*unit_num*/, int /*referenced*/);
92 /* Profiling before/after handlers (user written) */
94 extern void iq2000bf_model_insn_before (SIM_CPU
*, int /*first_p*/);
95 extern void iq2000bf_model_insn_after (SIM_CPU
*, int /*last_p*/, int /*cycles*/);
97 #endif /* IQ2000BF_DECODE_H */