]>
git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/fr30/decode.h
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
*);
33 /* Enum declaration for instructions in cpu family fr30bf. */
34 typedef enum fr30bf_insn_type
{
35 FR30BF_INSN_X_INVALID
, FR30BF_INSN_X_AFTER
, FR30BF_INSN_X_BEFORE
, FR30BF_INSN_X_CTI_CHAIN
36 , FR30BF_INSN_X_CHAIN
, FR30BF_INSN_X_BEGIN
, FR30BF_INSN_ADD
, FR30BF_INSN_ADDI
37 , FR30BF_INSN_ADD2
, FR30BF_INSN_ADDC
, FR30BF_INSN_ADDN
, FR30BF_INSN_ADDNI
38 , FR30BF_INSN_ADDN2
, FR30BF_INSN_SUB
, FR30BF_INSN_SUBC
, FR30BF_INSN_SUBN
39 , FR30BF_INSN_CMP
, FR30BF_INSN_CMPI
, FR30BF_INSN_CMP2
, FR30BF_INSN_AND
40 , FR30BF_INSN_OR
, FR30BF_INSN_EOR
, FR30BF_INSN_ANDM
, FR30BF_INSN_ANDH
41 , FR30BF_INSN_ANDB
, FR30BF_INSN_ORM
, FR30BF_INSN_ORH
, FR30BF_INSN_ORB
42 , FR30BF_INSN_EORM
, FR30BF_INSN_EORH
, FR30BF_INSN_EORB
, FR30BF_INSN_BANDL
43 , FR30BF_INSN_BORL
, FR30BF_INSN_BEORL
, FR30BF_INSN_BANDH
, FR30BF_INSN_BORH
44 , FR30BF_INSN_BEORH
, FR30BF_INSN_BTSTL
, FR30BF_INSN_BTSTH
, FR30BF_INSN_MUL
45 , FR30BF_INSN_MULU
, FR30BF_INSN_MULH
, FR30BF_INSN_MULUH
, FR30BF_INSN_DIV0S
46 , FR30BF_INSN_DIV0U
, FR30BF_INSN_DIV1
, FR30BF_INSN_DIV2
, FR30BF_INSN_DIV3
47 , FR30BF_INSN_DIV4S
, FR30BF_INSN_LSL
, FR30BF_INSN_LSLI
, FR30BF_INSN_LSL2
48 , FR30BF_INSN_LSR
, FR30BF_INSN_LSRI
, FR30BF_INSN_LSR2
, FR30BF_INSN_ASR
49 , FR30BF_INSN_ASRI
, FR30BF_INSN_ASR2
, FR30BF_INSN_LDI8
, FR30BF_INSN_LDI20
50 , FR30BF_INSN_LDI32
, FR30BF_INSN_LD
, FR30BF_INSN_LDUH
, FR30BF_INSN_LDUB
51 , FR30BF_INSN_LDR13
, FR30BF_INSN_LDR13UH
, FR30BF_INSN_LDR13UB
, FR30BF_INSN_LDR14
52 , FR30BF_INSN_LDR14UH
, FR30BF_INSN_LDR14UB
, FR30BF_INSN_LDR15
, FR30BF_INSN_LDR15GR
53 , FR30BF_INSN_LDR15DR
, FR30BF_INSN_LDR15PS
, FR30BF_INSN_ST
, FR30BF_INSN_STH
54 , FR30BF_INSN_STB
, FR30BF_INSN_STR13
, FR30BF_INSN_STR13H
, FR30BF_INSN_STR13B
55 , FR30BF_INSN_STR14
, FR30BF_INSN_STR14H
, FR30BF_INSN_STR14B
, FR30BF_INSN_STR15
56 , FR30BF_INSN_STR15GR
, FR30BF_INSN_STR15DR
, FR30BF_INSN_STR15PS
, FR30BF_INSN_MOV
57 , FR30BF_INSN_MOVDR
, FR30BF_INSN_MOVPS
, FR30BF_INSN_MOV2DR
, FR30BF_INSN_MOV2PS
58 , FR30BF_INSN_JMP
, FR30BF_INSN_JMPD
, FR30BF_INSN_CALLR
, FR30BF_INSN_CALLRD
59 , FR30BF_INSN_CALL
, FR30BF_INSN_CALLD
, FR30BF_INSN_RET
, FR30BF_INSN_RET_D
60 , FR30BF_INSN_INT
, FR30BF_INSN_INTE
, FR30BF_INSN_RETI
, FR30BF_INSN_BRAD
61 , FR30BF_INSN_BRA
, FR30BF_INSN_BNOD
, FR30BF_INSN_BNO
, FR30BF_INSN_BEQD
62 , FR30BF_INSN_BEQ
, FR30BF_INSN_BNED
, FR30BF_INSN_BNE
, FR30BF_INSN_BCD
63 , FR30BF_INSN_BC
, FR30BF_INSN_BNCD
, FR30BF_INSN_BNC
, FR30BF_INSN_BND
64 , FR30BF_INSN_BN
, FR30BF_INSN_BPD
, FR30BF_INSN_BP
, FR30BF_INSN_BVD
65 , FR30BF_INSN_BV
, FR30BF_INSN_BNVD
, FR30BF_INSN_BNV
, FR30BF_INSN_BLTD
66 , FR30BF_INSN_BLT
, FR30BF_INSN_BGED
, FR30BF_INSN_BGE
, FR30BF_INSN_BLED
67 , FR30BF_INSN_BLE
, FR30BF_INSN_BGTD
, FR30BF_INSN_BGT
, FR30BF_INSN_BLSD
68 , FR30BF_INSN_BLS
, FR30BF_INSN_BHID
, FR30BF_INSN_BHI
, FR30BF_INSN_DMOVR13
69 , FR30BF_INSN_DMOVR13H
, FR30BF_INSN_DMOVR13B
, FR30BF_INSN_DMOVR13PI
, FR30BF_INSN_DMOVR13PIH
70 , FR30BF_INSN_DMOVR13PIB
, FR30BF_INSN_DMOVR15PI
, FR30BF_INSN_DMOV2R13
, FR30BF_INSN_DMOV2R13H
71 , FR30BF_INSN_DMOV2R13B
, FR30BF_INSN_DMOV2R13PI
, FR30BF_INSN_DMOV2R13PIH
, FR30BF_INSN_DMOV2R13PIB
72 , FR30BF_INSN_DMOV2R15PD
, FR30BF_INSN_LDRES
, FR30BF_INSN_STRES
, FR30BF_INSN_COPOP
73 , FR30BF_INSN_COPLD
, FR30BF_INSN_COPST
, FR30BF_INSN_COPSV
, FR30BF_INSN_NOP
74 , FR30BF_INSN_ANDCCR
, FR30BF_INSN_ORCCR
, FR30BF_INSN_STILM
, FR30BF_INSN_ADDSP
75 , FR30BF_INSN_EXTSB
, FR30BF_INSN_EXTUB
, FR30BF_INSN_EXTSH
, FR30BF_INSN_EXTUH
76 , FR30BF_INSN_LDM0
, FR30BF_INSN_LDM1
, FR30BF_INSN_STM0
, FR30BF_INSN_STM1
77 , FR30BF_INSN_ENTER
, FR30BF_INSN_LEAVE
, FR30BF_INSN_XCHB
, FR30BF_INSN_MAX
80 #if ! WITH_SEM_SWITCH_FULL
81 #define SEMFULL(fn) extern SEMANTIC_FN CONCAT3 (fr30bf,_sem_,fn);
86 #if ! WITH_SEM_SWITCH_FAST
87 #define SEMFAST(fn) extern SEMANTIC_FN CONCAT3 (fr30bf,_semf_,fn);
92 #define SEM(fn) SEMFULL (fn) SEMFAST (fn)
94 /* The function version of the before/after handlers is always needed,
95 so we always want the SEMFULL declaration of them. */
96 extern SEMANTIC_FN
CONCAT3 (fr30bf
,_sem_
,x_before
);
97 extern SEMANTIC_FN
CONCAT3 (fr30bf
,_sem_
,x_after
);
275 /* Function unit handlers (user written). */
277 extern int fr30bf_model_fr30_1_u_stm (SIM_CPU
*, const IDESC
*, int /*unit_num*/, int /*referenced*/, INT
/*reglist*/);
278 extern int fr30bf_model_fr30_1_u_ldm (SIM_CPU
*, const IDESC
*, int /*unit_num*/, int /*referenced*/, INT
/*reglist*/);
279 extern int fr30bf_model_fr30_1_u_store (SIM_CPU
*, const IDESC
*, int /*unit_num*/, int /*referenced*/, INT
/*Ri*/, INT
/*Rj*/);
280 extern int fr30bf_model_fr30_1_u_load (SIM_CPU
*, const IDESC
*, int /*unit_num*/, int /*referenced*/, INT
/*Rj*/, INT
/*Ri*/);
281 extern int fr30bf_model_fr30_1_u_cti (SIM_CPU
*, const IDESC
*, int /*unit_num*/, int /*referenced*/, INT
/*Ri*/);
282 extern int fr30bf_model_fr30_1_u_exec (SIM_CPU
*, const IDESC
*, int /*unit_num*/, int /*referenced*/, INT
/*Ri*/, INT
/*Rj*/, INT
/*Ri*/);
284 /* Profiling before/after handlers (user written) */
286 extern void fr30bf_model_insn_before (SIM_CPU
*, int /*first_p*/);
287 extern void fr30bf_model_insn_after (SIM_CPU
*, int /*last_p*/, int /*cycles*/);
289 #endif /* FR30BF_DECODE_H */