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