1 /* Decode header for fr30bf.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright (C) 1996, 1997, 1998, 1999 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 FR30BF_DECODE_H
26 #define FR30BF_DECODE_H
28 extern const IDESC
*fr30bf_decode (SIM_CPU
*, IADDR
,
31 extern void fr30bf_init_idesc_table (SIM_CPU
*);
32 extern void fr30bf_sem_init_idesc_table (SIM_CPU
*);
33 extern void fr30bf_semf_init_idesc_table (SIM_CPU
*);
35 /* Enum declaration for instructions in cpu family fr30bf. */
36 typedef enum fr30bf_insn_type
{
37 FR30BF_INSN_X_INVALID
, FR30BF_INSN_X_AFTER
, FR30BF_INSN_X_BEFORE
, FR30BF_INSN_X_CTI_CHAIN
38 , FR30BF_INSN_X_CHAIN
, FR30BF_INSN_X_BEGIN
, FR30BF_INSN_ADD
, FR30BF_INSN_ADDI
39 , FR30BF_INSN_ADD2
, FR30BF_INSN_ADDC
, FR30BF_INSN_ADDN
, FR30BF_INSN_ADDNI
40 , FR30BF_INSN_ADDN2
, FR30BF_INSN_SUB
, FR30BF_INSN_SUBC
, FR30BF_INSN_SUBN
41 , FR30BF_INSN_CMP
, FR30BF_INSN_CMPI
, FR30BF_INSN_CMP2
, FR30BF_INSN_AND
42 , FR30BF_INSN_OR
, FR30BF_INSN_EOR
, FR30BF_INSN_ANDM
, FR30BF_INSN_ANDH
43 , FR30BF_INSN_ANDB
, FR30BF_INSN_ORM
, FR30BF_INSN_ORH
, FR30BF_INSN_ORB
44 , FR30BF_INSN_EORM
, FR30BF_INSN_EORH
, FR30BF_INSN_EORB
, FR30BF_INSN_BANDL
45 , FR30BF_INSN_BORL
, FR30BF_INSN_BEORL
, FR30BF_INSN_BANDH
, FR30BF_INSN_BORH
46 , FR30BF_INSN_BEORH
, FR30BF_INSN_BTSTL
, FR30BF_INSN_BTSTH
, FR30BF_INSN_MUL
47 , FR30BF_INSN_MULU
, FR30BF_INSN_MULH
, FR30BF_INSN_MULUH
, FR30BF_INSN_DIV0S
48 , FR30BF_INSN_DIV0U
, FR30BF_INSN_DIV1
, FR30BF_INSN_DIV2
, FR30BF_INSN_DIV3
49 , FR30BF_INSN_DIV4S
, FR30BF_INSN_LSL
, FR30BF_INSN_LSLI
, FR30BF_INSN_LSL2
50 , FR30BF_INSN_LSR
, FR30BF_INSN_LSRI
, FR30BF_INSN_LSR2
, FR30BF_INSN_ASR
51 , FR30BF_INSN_ASRI
, FR30BF_INSN_ASR2
, FR30BF_INSN_LDI8
, FR30BF_INSN_LDI20
52 , FR30BF_INSN_LDI32
, FR30BF_INSN_LD
, FR30BF_INSN_LDUH
, FR30BF_INSN_LDUB
53 , FR30BF_INSN_LDR13
, FR30BF_INSN_LDR13UH
, FR30BF_INSN_LDR13UB
, FR30BF_INSN_LDR14
54 , FR30BF_INSN_LDR14UH
, FR30BF_INSN_LDR14UB
, FR30BF_INSN_LDR15
, FR30BF_INSN_LDR15GR
55 , FR30BF_INSN_LDR15DR
, FR30BF_INSN_LDR15PS
, FR30BF_INSN_ST
, FR30BF_INSN_STH
56 , FR30BF_INSN_STB
, FR30BF_INSN_STR13
, FR30BF_INSN_STR13H
, FR30BF_INSN_STR13B
57 , FR30BF_INSN_STR14
, FR30BF_INSN_STR14H
, FR30BF_INSN_STR14B
, FR30BF_INSN_STR15
58 , FR30BF_INSN_STR15GR
, FR30BF_INSN_STR15DR
, FR30BF_INSN_STR15PS
, FR30BF_INSN_MOV
59 , FR30BF_INSN_MOVDR
, FR30BF_INSN_MOVPS
, FR30BF_INSN_MOV2DR
, FR30BF_INSN_MOV2PS
60 , FR30BF_INSN_JMP
, FR30BF_INSN_JMPD
, FR30BF_INSN_CALLR
, FR30BF_INSN_CALLRD
61 , FR30BF_INSN_CALL
, FR30BF_INSN_CALLD
, FR30BF_INSN_RET
, FR30BF_INSN_RET_D
62 , FR30BF_INSN_INT
, FR30BF_INSN_INTE
, FR30BF_INSN_RETI
, FR30BF_INSN_BRAD
63 , FR30BF_INSN_BRA
, FR30BF_INSN_BNOD
, FR30BF_INSN_BNO
, FR30BF_INSN_BEQD
64 , FR30BF_INSN_BEQ
, FR30BF_INSN_BNED
, FR30BF_INSN_BNE
, FR30BF_INSN_BCD
65 , FR30BF_INSN_BC
, FR30BF_INSN_BNCD
, FR30BF_INSN_BNC
, FR30BF_INSN_BND
66 , FR30BF_INSN_BN
, FR30BF_INSN_BPD
, FR30BF_INSN_BP
, FR30BF_INSN_BVD
67 , FR30BF_INSN_BV
, FR30BF_INSN_BNVD
, FR30BF_INSN_BNV
, FR30BF_INSN_BLTD
68 , FR30BF_INSN_BLT
, FR30BF_INSN_BGED
, FR30BF_INSN_BGE
, FR30BF_INSN_BLED
69 , FR30BF_INSN_BLE
, FR30BF_INSN_BGTD
, FR30BF_INSN_BGT
, FR30BF_INSN_BLSD
70 , FR30BF_INSN_BLS
, FR30BF_INSN_BHID
, FR30BF_INSN_BHI
, FR30BF_INSN_DMOVR13
71 , FR30BF_INSN_DMOVR13H
, FR30BF_INSN_DMOVR13B
, FR30BF_INSN_DMOVR13PI
, FR30BF_INSN_DMOVR13PIH
72 , FR30BF_INSN_DMOVR13PIB
, FR30BF_INSN_DMOVR15PI
, FR30BF_INSN_DMOV2R13
, FR30BF_INSN_DMOV2R13H
73 , FR30BF_INSN_DMOV2R13B
, FR30BF_INSN_DMOV2R13PI
, FR30BF_INSN_DMOV2R13PIH
, FR30BF_INSN_DMOV2R13PIB
74 , FR30BF_INSN_DMOV2R15PD
, FR30BF_INSN_LDRES
, FR30BF_INSN_STRES
, FR30BF_INSN_COPOP
75 , FR30BF_INSN_COPLD
, FR30BF_INSN_COPST
, FR30BF_INSN_COPSV
, FR30BF_INSN_NOP
76 , FR30BF_INSN_ANDCCR
, FR30BF_INSN_ORCCR
, FR30BF_INSN_STILM
, FR30BF_INSN_ADDSP
77 , FR30BF_INSN_EXTSB
, FR30BF_INSN_EXTUB
, FR30BF_INSN_EXTSH
, FR30BF_INSN_EXTUH
78 , FR30BF_INSN_LDM0
, FR30BF_INSN_LDM1
, FR30BF_INSN_STM0
, FR30BF_INSN_STM1
79 , FR30BF_INSN_ENTER
, FR30BF_INSN_LEAVE
, FR30BF_INSN_XCHB
, FR30BF_INSN_MAX
82 /* Enum declaration for semantic formats in cpu family fr30bf. */
83 typedef enum fr30bf_sfmt_type
{
84 FR30BF_SFMT_EMPTY
, FR30BF_SFMT_ADD
, FR30BF_SFMT_ADDI
, FR30BF_SFMT_ADD2
85 , FR30BF_SFMT_ADDC
, FR30BF_SFMT_ADDN
, FR30BF_SFMT_ADDNI
, FR30BF_SFMT_ADDN2
86 , FR30BF_SFMT_CMP
, FR30BF_SFMT_CMPI
, FR30BF_SFMT_CMP2
, FR30BF_SFMT_AND
87 , FR30BF_SFMT_ANDM
, FR30BF_SFMT_ANDH
, FR30BF_SFMT_ANDB
, FR30BF_SFMT_BANDL
88 , FR30BF_SFMT_BTSTL
, FR30BF_SFMT_MUL
, FR30BF_SFMT_MULU
, FR30BF_SFMT_MULH
89 , FR30BF_SFMT_DIV0S
, FR30BF_SFMT_DIV0U
, FR30BF_SFMT_DIV1
, FR30BF_SFMT_DIV2
90 , FR30BF_SFMT_DIV3
, FR30BF_SFMT_DIV4S
, FR30BF_SFMT_LSL
, FR30BF_SFMT_LSLI
91 , FR30BF_SFMT_LDI8
, FR30BF_SFMT_LDI20
, FR30BF_SFMT_LDI32
, FR30BF_SFMT_LD
92 , FR30BF_SFMT_LDR13
, FR30BF_SFMT_LDR14
, FR30BF_SFMT_LDR14UH
, FR30BF_SFMT_LDR14UB
93 , FR30BF_SFMT_LDR15
, FR30BF_SFMT_LDR15GR
, FR30BF_SFMT_LDR15DR
, FR30BF_SFMT_LDR15PS
94 , FR30BF_SFMT_ST
, FR30BF_SFMT_STR13
, FR30BF_SFMT_STR14
, FR30BF_SFMT_STR14H
95 , FR30BF_SFMT_STR14B
, FR30BF_SFMT_STR15
, FR30BF_SFMT_STR15GR
, FR30BF_SFMT_STR15DR
96 , FR30BF_SFMT_STR15PS
, FR30BF_SFMT_MOV
, FR30BF_SFMT_MOVDR
, FR30BF_SFMT_MOVPS
97 , FR30BF_SFMT_MOV2DR
, FR30BF_SFMT_MOV2PS
, FR30BF_SFMT_JMP
, FR30BF_SFMT_CALLR
98 , FR30BF_SFMT_CALL
, FR30BF_SFMT_RET
, FR30BF_SFMT_INT
, FR30BF_SFMT_INTE
99 , FR30BF_SFMT_RETI
, FR30BF_SFMT_BRAD
, FR30BF_SFMT_BNOD
, FR30BF_SFMT_BEQD
100 , FR30BF_SFMT_BCD
, FR30BF_SFMT_BND
, FR30BF_SFMT_BVD
, FR30BF_SFMT_BLTD
101 , FR30BF_SFMT_BLED
, FR30BF_SFMT_BLSD
, FR30BF_SFMT_DMOVR13
, FR30BF_SFMT_DMOVR13H
102 , FR30BF_SFMT_DMOVR13B
, FR30BF_SFMT_DMOVR13PI
, FR30BF_SFMT_DMOVR13PIH
, FR30BF_SFMT_DMOVR13PIB
103 , FR30BF_SFMT_DMOVR15PI
, FR30BF_SFMT_DMOV2R13
, FR30BF_SFMT_DMOV2R13H
, FR30BF_SFMT_DMOV2R13B
104 , FR30BF_SFMT_DMOV2R13PI
, FR30BF_SFMT_DMOV2R13PIH
, FR30BF_SFMT_DMOV2R13PIB
, FR30BF_SFMT_DMOV2R15PD
105 , FR30BF_SFMT_LDRES
, FR30BF_SFMT_COPOP
, FR30BF_SFMT_ANDCCR
, FR30BF_SFMT_STILM
106 , FR30BF_SFMT_ADDSP
, FR30BF_SFMT_EXTSB
, FR30BF_SFMT_EXTUB
, FR30BF_SFMT_EXTSH
107 , FR30BF_SFMT_EXTUH
, FR30BF_SFMT_LDM0
, FR30BF_SFMT_LDM1
, FR30BF_SFMT_STM0
108 , FR30BF_SFMT_STM1
, FR30BF_SFMT_ENTER
, FR30BF_SFMT_LEAVE
, FR30BF_SFMT_XCHB
111 /* Function unit handlers (user written). */
113 extern int fr30bf_model_fr30_1_u_stm (SIM_CPU
*, const IDESC
*, int /*unit_num*/, int /*referenced*/, INT
/*reglist*/);
114 extern int fr30bf_model_fr30_1_u_ldm (SIM_CPU
*, const IDESC
*, int /*unit_num*/, int /*referenced*/, INT
/*reglist*/);
115 extern int fr30bf_model_fr30_1_u_store (SIM_CPU
*, const IDESC
*, int /*unit_num*/, int /*referenced*/, INT
/*Ri*/, INT
/*Rj*/);
116 extern int fr30bf_model_fr30_1_u_load (SIM_CPU
*, const IDESC
*, int /*unit_num*/, int /*referenced*/, INT
/*Rj*/, INT
/*Ri*/);
117 extern int fr30bf_model_fr30_1_u_cti (SIM_CPU
*, const IDESC
*, int /*unit_num*/, int /*referenced*/, INT
/*Ri*/);
118 extern int fr30bf_model_fr30_1_u_exec (SIM_CPU
*, const IDESC
*, int /*unit_num*/, int /*referenced*/, INT
/*Ri*/, INT
/*Rj*/, INT
/*Ri*/);
120 /* Profiling before/after handlers (user written) */
122 extern void fr30bf_model_insn_before (SIM_CPU
*, int /*first_p*/);
123 extern void fr30bf_model_insn_after (SIM_CPU
*, int /*last_p*/, int /*cycles*/);
125 #endif /* FR30BF_DECODE_H */
This page took 0.050293 seconds and 5 git commands to generate.