1 /* Decode header for bpfbf_ebpfle.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright (C) 1996-2023 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
9 This file 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, or (at your option)
14 It is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 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 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
25 #ifndef BPFBF_EBPFLE_DECODE_H
26 #define BPFBF_EBPFLE_DECODE_H
28 extern const IDESC
*bpfbf_ebpfle_decode (SIM_CPU
*, IADDR
,
31 extern void bpfbf_ebpfle_init_idesc_table (SIM_CPU
*);
32 extern void bpfbf_ebpfle_sem_init_idesc_table (SIM_CPU
*);
33 extern void bpfbf_ebpfle_semf_init_idesc_table (SIM_CPU
*);
35 /* Enum declaration for instructions in cpu family bpfbf. */
36 typedef enum bpfbf_ebpfle_insn_type
{
37 BPFBF_EBPFLE_INSN_X_INVALID
, BPFBF_EBPFLE_INSN_X_AFTER
, BPFBF_EBPFLE_INSN_X_BEFORE
, BPFBF_EBPFLE_INSN_X_CTI_CHAIN
38 , BPFBF_EBPFLE_INSN_X_CHAIN
, BPFBF_EBPFLE_INSN_X_BEGIN
, BPFBF_EBPFLE_INSN_ADDILE
, BPFBF_EBPFLE_INSN_ADDRLE
39 , BPFBF_EBPFLE_INSN_ADD32ILE
, BPFBF_EBPFLE_INSN_ADD32RLE
, BPFBF_EBPFLE_INSN_SUBILE
, BPFBF_EBPFLE_INSN_SUBRLE
40 , BPFBF_EBPFLE_INSN_SUB32ILE
, BPFBF_EBPFLE_INSN_SUB32RLE
, BPFBF_EBPFLE_INSN_MULILE
, BPFBF_EBPFLE_INSN_MULRLE
41 , BPFBF_EBPFLE_INSN_MUL32ILE
, BPFBF_EBPFLE_INSN_MUL32RLE
, BPFBF_EBPFLE_INSN_DIVILE
, BPFBF_EBPFLE_INSN_DIVRLE
42 , BPFBF_EBPFLE_INSN_DIV32ILE
, BPFBF_EBPFLE_INSN_DIV32RLE
, BPFBF_EBPFLE_INSN_ORILE
, BPFBF_EBPFLE_INSN_ORRLE
43 , BPFBF_EBPFLE_INSN_OR32ILE
, BPFBF_EBPFLE_INSN_OR32RLE
, BPFBF_EBPFLE_INSN_ANDILE
, BPFBF_EBPFLE_INSN_ANDRLE
44 , BPFBF_EBPFLE_INSN_AND32ILE
, BPFBF_EBPFLE_INSN_AND32RLE
, BPFBF_EBPFLE_INSN_LSHILE
, BPFBF_EBPFLE_INSN_LSHRLE
45 , BPFBF_EBPFLE_INSN_LSH32ILE
, BPFBF_EBPFLE_INSN_LSH32RLE
, BPFBF_EBPFLE_INSN_RSHILE
, BPFBF_EBPFLE_INSN_RSHRLE
46 , BPFBF_EBPFLE_INSN_RSH32ILE
, BPFBF_EBPFLE_INSN_RSH32RLE
, BPFBF_EBPFLE_INSN_MODILE
, BPFBF_EBPFLE_INSN_MODRLE
47 , BPFBF_EBPFLE_INSN_MOD32ILE
, BPFBF_EBPFLE_INSN_MOD32RLE
, BPFBF_EBPFLE_INSN_XORILE
, BPFBF_EBPFLE_INSN_XORRLE
48 , BPFBF_EBPFLE_INSN_XOR32ILE
, BPFBF_EBPFLE_INSN_XOR32RLE
, BPFBF_EBPFLE_INSN_ARSHILE
, BPFBF_EBPFLE_INSN_ARSHRLE
49 , BPFBF_EBPFLE_INSN_ARSH32ILE
, BPFBF_EBPFLE_INSN_ARSH32RLE
, BPFBF_EBPFLE_INSN_NEGLE
, BPFBF_EBPFLE_INSN_NEG32LE
50 , BPFBF_EBPFLE_INSN_MOVILE
, BPFBF_EBPFLE_INSN_MOVRLE
, BPFBF_EBPFLE_INSN_MOV32ILE
, BPFBF_EBPFLE_INSN_MOV32RLE
51 , BPFBF_EBPFLE_INSN_ENDLELE
, BPFBF_EBPFLE_INSN_ENDBELE
, BPFBF_EBPFLE_INSN_LDDWLE
, BPFBF_EBPFLE_INSN_LDABSW
52 , BPFBF_EBPFLE_INSN_LDABSH
, BPFBF_EBPFLE_INSN_LDABSB
, BPFBF_EBPFLE_INSN_LDABSDW
, BPFBF_EBPFLE_INSN_LDINDWLE
53 , BPFBF_EBPFLE_INSN_LDINDHLE
, BPFBF_EBPFLE_INSN_LDINDBLE
, BPFBF_EBPFLE_INSN_LDINDDWLE
, BPFBF_EBPFLE_INSN_LDXWLE
54 , BPFBF_EBPFLE_INSN_LDXHLE
, BPFBF_EBPFLE_INSN_LDXBLE
, BPFBF_EBPFLE_INSN_LDXDWLE
, BPFBF_EBPFLE_INSN_STXWLE
55 , BPFBF_EBPFLE_INSN_STXHLE
, BPFBF_EBPFLE_INSN_STXBLE
, BPFBF_EBPFLE_INSN_STXDWLE
, BPFBF_EBPFLE_INSN_STBLE
56 , BPFBF_EBPFLE_INSN_STHLE
, BPFBF_EBPFLE_INSN_STWLE
, BPFBF_EBPFLE_INSN_STDWLE
, BPFBF_EBPFLE_INSN_JEQILE
57 , BPFBF_EBPFLE_INSN_JEQRLE
, BPFBF_EBPFLE_INSN_JEQ32ILE
, BPFBF_EBPFLE_INSN_JEQ32RLE
, BPFBF_EBPFLE_INSN_JGTILE
58 , BPFBF_EBPFLE_INSN_JGTRLE
, BPFBF_EBPFLE_INSN_JGT32ILE
, BPFBF_EBPFLE_INSN_JGT32RLE
, BPFBF_EBPFLE_INSN_JGEILE
59 , BPFBF_EBPFLE_INSN_JGERLE
, BPFBF_EBPFLE_INSN_JGE32ILE
, BPFBF_EBPFLE_INSN_JGE32RLE
, BPFBF_EBPFLE_INSN_JLTILE
60 , BPFBF_EBPFLE_INSN_JLTRLE
, BPFBF_EBPFLE_INSN_JLT32ILE
, BPFBF_EBPFLE_INSN_JLT32RLE
, BPFBF_EBPFLE_INSN_JLEILE
61 , BPFBF_EBPFLE_INSN_JLERLE
, BPFBF_EBPFLE_INSN_JLE32ILE
, BPFBF_EBPFLE_INSN_JLE32RLE
, BPFBF_EBPFLE_INSN_JSETILE
62 , BPFBF_EBPFLE_INSN_JSETRLE
, BPFBF_EBPFLE_INSN_JSET32ILE
, BPFBF_EBPFLE_INSN_JSET32RLE
, BPFBF_EBPFLE_INSN_JNEILE
63 , BPFBF_EBPFLE_INSN_JNERLE
, BPFBF_EBPFLE_INSN_JNE32ILE
, BPFBF_EBPFLE_INSN_JNE32RLE
, BPFBF_EBPFLE_INSN_JSGTILE
64 , BPFBF_EBPFLE_INSN_JSGTRLE
, BPFBF_EBPFLE_INSN_JSGT32ILE
, BPFBF_EBPFLE_INSN_JSGT32RLE
, BPFBF_EBPFLE_INSN_JSGEILE
65 , BPFBF_EBPFLE_INSN_JSGERLE
, BPFBF_EBPFLE_INSN_JSGE32ILE
, BPFBF_EBPFLE_INSN_JSGE32RLE
, BPFBF_EBPFLE_INSN_JSLTILE
66 , BPFBF_EBPFLE_INSN_JSLTRLE
, BPFBF_EBPFLE_INSN_JSLT32ILE
, BPFBF_EBPFLE_INSN_JSLT32RLE
, BPFBF_EBPFLE_INSN_JSLEILE
67 , BPFBF_EBPFLE_INSN_JSLERLE
, BPFBF_EBPFLE_INSN_JSLE32ILE
, BPFBF_EBPFLE_INSN_JSLE32RLE
, BPFBF_EBPFLE_INSN_CALLLE
68 , BPFBF_EBPFLE_INSN_JA
, BPFBF_EBPFLE_INSN_EXIT
, BPFBF_EBPFLE_INSN_XADDDWLE
, BPFBF_EBPFLE_INSN_XADDWLE
69 , BPFBF_EBPFLE_INSN_BRKPT
, BPFBF_EBPFLE_INSN__MAX
70 } BPFBF_EBPFLE_INSN_TYPE
;
72 /* Enum declaration for semantic formats in cpu family bpfbf. */
73 typedef enum bpfbf_ebpfle_sfmt_type
{
74 BPFBF_EBPFLE_SFMT_EMPTY
, BPFBF_EBPFLE_SFMT_ADDILE
, BPFBF_EBPFLE_SFMT_ADDRLE
, BPFBF_EBPFLE_SFMT_NEGLE
75 , BPFBF_EBPFLE_SFMT_MOVILE
, BPFBF_EBPFLE_SFMT_MOVRLE
, BPFBF_EBPFLE_SFMT_ENDLELE
, BPFBF_EBPFLE_SFMT_LDDWLE
76 , BPFBF_EBPFLE_SFMT_LDABSW
, BPFBF_EBPFLE_SFMT_LDABSH
, BPFBF_EBPFLE_SFMT_LDABSB
, BPFBF_EBPFLE_SFMT_LDABSDW
77 , BPFBF_EBPFLE_SFMT_LDINDWLE
, BPFBF_EBPFLE_SFMT_LDINDHLE
, BPFBF_EBPFLE_SFMT_LDINDBLE
, BPFBF_EBPFLE_SFMT_LDINDDWLE
78 , BPFBF_EBPFLE_SFMT_LDXWLE
, BPFBF_EBPFLE_SFMT_LDXHLE
, BPFBF_EBPFLE_SFMT_LDXBLE
, BPFBF_EBPFLE_SFMT_LDXDWLE
79 , BPFBF_EBPFLE_SFMT_STXWLE
, BPFBF_EBPFLE_SFMT_STXHLE
, BPFBF_EBPFLE_SFMT_STXBLE
, BPFBF_EBPFLE_SFMT_STXDWLE
80 , BPFBF_EBPFLE_SFMT_STBLE
, BPFBF_EBPFLE_SFMT_STHLE
, BPFBF_EBPFLE_SFMT_STWLE
, BPFBF_EBPFLE_SFMT_STDWLE
81 , BPFBF_EBPFLE_SFMT_JEQILE
, BPFBF_EBPFLE_SFMT_JEQRLE
, BPFBF_EBPFLE_SFMT_CALLLE
, BPFBF_EBPFLE_SFMT_JA
82 , BPFBF_EBPFLE_SFMT_EXIT
, BPFBF_EBPFLE_SFMT_XADDDWLE
, BPFBF_EBPFLE_SFMT_XADDWLE
83 } BPFBF_EBPFLE_SFMT_TYPE
;
85 /* Function unit handlers (user written). */
87 extern int bpfbf_model_bpf_def_u_exec (SIM_CPU
*, const IDESC
*, int /*unit_num*/, int /*referenced*/);
89 /* Profiling before/after handlers (user written) */
91 extern void bpfbf_model_insn_before (SIM_CPU
*, int /*first_p*/);
92 extern void bpfbf_model_insn_after (SIM_CPU
*, int /*last_p*/, int /*cycles*/);
94 #endif /* BPFBF_EBPFLE_DECODE_H */