1 /* Decode header for bpfbf_ebpfbe.
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_EBPFBE_DECODE_H
26 #define BPFBF_EBPFBE_DECODE_H
28 extern const IDESC
*bpfbf_ebpfbe_decode (SIM_CPU
*, IADDR
,
31 extern void bpfbf_ebpfbe_init_idesc_table (SIM_CPU
*);
32 extern void bpfbf_ebpfbe_sem_init_idesc_table (SIM_CPU
*);
33 extern void bpfbf_ebpfbe_semf_init_idesc_table (SIM_CPU
*);
35 /* Enum declaration for instructions in cpu family bpfbf. */
36 typedef enum bpfbf_ebpfbe_insn_type
{
37 BPFBF_EBPFBE_INSN_X_INVALID
, BPFBF_EBPFBE_INSN_X_AFTER
, BPFBF_EBPFBE_INSN_X_BEFORE
, BPFBF_EBPFBE_INSN_X_CTI_CHAIN
38 , BPFBF_EBPFBE_INSN_X_CHAIN
, BPFBF_EBPFBE_INSN_X_BEGIN
, BPFBF_EBPFBE_INSN_ADDIBE
, BPFBF_EBPFBE_INSN_ADDRBE
39 , BPFBF_EBPFBE_INSN_ADD32IBE
, BPFBF_EBPFBE_INSN_ADD32RBE
, BPFBF_EBPFBE_INSN_SUBIBE
, BPFBF_EBPFBE_INSN_SUBRBE
40 , BPFBF_EBPFBE_INSN_SUB32IBE
, BPFBF_EBPFBE_INSN_SUB32RBE
, BPFBF_EBPFBE_INSN_MULIBE
, BPFBF_EBPFBE_INSN_MULRBE
41 , BPFBF_EBPFBE_INSN_MUL32IBE
, BPFBF_EBPFBE_INSN_MUL32RBE
, BPFBF_EBPFBE_INSN_DIVIBE
, BPFBF_EBPFBE_INSN_DIVRBE
42 , BPFBF_EBPFBE_INSN_DIV32IBE
, BPFBF_EBPFBE_INSN_DIV32RBE
, BPFBF_EBPFBE_INSN_ORIBE
, BPFBF_EBPFBE_INSN_ORRBE
43 , BPFBF_EBPFBE_INSN_OR32IBE
, BPFBF_EBPFBE_INSN_OR32RBE
, BPFBF_EBPFBE_INSN_ANDIBE
, BPFBF_EBPFBE_INSN_ANDRBE
44 , BPFBF_EBPFBE_INSN_AND32IBE
, BPFBF_EBPFBE_INSN_AND32RBE
, BPFBF_EBPFBE_INSN_LSHIBE
, BPFBF_EBPFBE_INSN_LSHRBE
45 , BPFBF_EBPFBE_INSN_LSH32IBE
, BPFBF_EBPFBE_INSN_LSH32RBE
, BPFBF_EBPFBE_INSN_RSHIBE
, BPFBF_EBPFBE_INSN_RSHRBE
46 , BPFBF_EBPFBE_INSN_RSH32IBE
, BPFBF_EBPFBE_INSN_RSH32RBE
, BPFBF_EBPFBE_INSN_MODIBE
, BPFBF_EBPFBE_INSN_MODRBE
47 , BPFBF_EBPFBE_INSN_MOD32IBE
, BPFBF_EBPFBE_INSN_MOD32RBE
, BPFBF_EBPFBE_INSN_XORIBE
, BPFBF_EBPFBE_INSN_XORRBE
48 , BPFBF_EBPFBE_INSN_XOR32IBE
, BPFBF_EBPFBE_INSN_XOR32RBE
, BPFBF_EBPFBE_INSN_ARSHIBE
, BPFBF_EBPFBE_INSN_ARSHRBE
49 , BPFBF_EBPFBE_INSN_ARSH32IBE
, BPFBF_EBPFBE_INSN_ARSH32RBE
, BPFBF_EBPFBE_INSN_NEGBE
, BPFBF_EBPFBE_INSN_NEG32BE
50 , BPFBF_EBPFBE_INSN_MOVIBE
, BPFBF_EBPFBE_INSN_MOVRBE
, BPFBF_EBPFBE_INSN_MOV32IBE
, BPFBF_EBPFBE_INSN_MOV32RBE
51 , BPFBF_EBPFBE_INSN_ENDLEBE
, BPFBF_EBPFBE_INSN_ENDBEBE
, BPFBF_EBPFBE_INSN_LDDWBE
, BPFBF_EBPFBE_INSN_LDABSW
52 , BPFBF_EBPFBE_INSN_LDABSH
, BPFBF_EBPFBE_INSN_LDABSB
, BPFBF_EBPFBE_INSN_LDABSDW
, BPFBF_EBPFBE_INSN_LDINDWBE
53 , BPFBF_EBPFBE_INSN_LDINDHBE
, BPFBF_EBPFBE_INSN_LDINDBBE
, BPFBF_EBPFBE_INSN_LDINDDWBE
, BPFBF_EBPFBE_INSN_LDXWBE
54 , BPFBF_EBPFBE_INSN_LDXHBE
, BPFBF_EBPFBE_INSN_LDXBBE
, BPFBF_EBPFBE_INSN_LDXDWBE
, BPFBF_EBPFBE_INSN_STXWBE
55 , BPFBF_EBPFBE_INSN_STXHBE
, BPFBF_EBPFBE_INSN_STXBBE
, BPFBF_EBPFBE_INSN_STXDWBE
, BPFBF_EBPFBE_INSN_STBBE
56 , BPFBF_EBPFBE_INSN_STHBE
, BPFBF_EBPFBE_INSN_STWBE
, BPFBF_EBPFBE_INSN_STDWBE
, BPFBF_EBPFBE_INSN_JEQIBE
57 , BPFBF_EBPFBE_INSN_JEQRBE
, BPFBF_EBPFBE_INSN_JEQ32IBE
, BPFBF_EBPFBE_INSN_JEQ32RBE
, BPFBF_EBPFBE_INSN_JGTIBE
58 , BPFBF_EBPFBE_INSN_JGTRBE
, BPFBF_EBPFBE_INSN_JGT32IBE
, BPFBF_EBPFBE_INSN_JGT32RBE
, BPFBF_EBPFBE_INSN_JGEIBE
59 , BPFBF_EBPFBE_INSN_JGERBE
, BPFBF_EBPFBE_INSN_JGE32IBE
, BPFBF_EBPFBE_INSN_JGE32RBE
, BPFBF_EBPFBE_INSN_JLTIBE
60 , BPFBF_EBPFBE_INSN_JLTRBE
, BPFBF_EBPFBE_INSN_JLT32IBE
, BPFBF_EBPFBE_INSN_JLT32RBE
, BPFBF_EBPFBE_INSN_JLEIBE
61 , BPFBF_EBPFBE_INSN_JLERBE
, BPFBF_EBPFBE_INSN_JLE32IBE
, BPFBF_EBPFBE_INSN_JLE32RBE
, BPFBF_EBPFBE_INSN_JSETIBE
62 , BPFBF_EBPFBE_INSN_JSETRBE
, BPFBF_EBPFBE_INSN_JSET32IBE
, BPFBF_EBPFBE_INSN_JSET32RBE
, BPFBF_EBPFBE_INSN_JNEIBE
63 , BPFBF_EBPFBE_INSN_JNERBE
, BPFBF_EBPFBE_INSN_JNE32IBE
, BPFBF_EBPFBE_INSN_JNE32RBE
, BPFBF_EBPFBE_INSN_JSGTIBE
64 , BPFBF_EBPFBE_INSN_JSGTRBE
, BPFBF_EBPFBE_INSN_JSGT32IBE
, BPFBF_EBPFBE_INSN_JSGT32RBE
, BPFBF_EBPFBE_INSN_JSGEIBE
65 , BPFBF_EBPFBE_INSN_JSGERBE
, BPFBF_EBPFBE_INSN_JSGE32IBE
, BPFBF_EBPFBE_INSN_JSGE32RBE
, BPFBF_EBPFBE_INSN_JSLTIBE
66 , BPFBF_EBPFBE_INSN_JSLTRBE
, BPFBF_EBPFBE_INSN_JSLT32IBE
, BPFBF_EBPFBE_INSN_JSLT32RBE
, BPFBF_EBPFBE_INSN_JSLEIBE
67 , BPFBF_EBPFBE_INSN_JSLERBE
, BPFBF_EBPFBE_INSN_JSLE32IBE
, BPFBF_EBPFBE_INSN_JSLE32RBE
, BPFBF_EBPFBE_INSN_CALLBE
68 , BPFBF_EBPFBE_INSN_JA
, BPFBF_EBPFBE_INSN_EXIT
, BPFBF_EBPFBE_INSN_XADDDWBE
, BPFBF_EBPFBE_INSN_XADDWBE
69 , BPFBF_EBPFBE_INSN_BRKPT
, BPFBF_EBPFBE_INSN__MAX
70 } BPFBF_EBPFBE_INSN_TYPE
;
72 /* Enum declaration for semantic formats in cpu family bpfbf. */
73 typedef enum bpfbf_ebpfbe_sfmt_type
{
74 BPFBF_EBPFBE_SFMT_EMPTY
, BPFBF_EBPFBE_SFMT_ADDIBE
, BPFBF_EBPFBE_SFMT_ADDRBE
, BPFBF_EBPFBE_SFMT_NEGBE
75 , BPFBF_EBPFBE_SFMT_MOVIBE
, BPFBF_EBPFBE_SFMT_MOVRBE
, BPFBF_EBPFBE_SFMT_ENDLEBE
, BPFBF_EBPFBE_SFMT_LDDWBE
76 , BPFBF_EBPFBE_SFMT_LDABSW
, BPFBF_EBPFBE_SFMT_LDABSH
, BPFBF_EBPFBE_SFMT_LDABSB
, BPFBF_EBPFBE_SFMT_LDABSDW
77 , BPFBF_EBPFBE_SFMT_LDINDWBE
, BPFBF_EBPFBE_SFMT_LDINDHBE
, BPFBF_EBPFBE_SFMT_LDINDBBE
, BPFBF_EBPFBE_SFMT_LDINDDWBE
78 , BPFBF_EBPFBE_SFMT_LDXWBE
, BPFBF_EBPFBE_SFMT_LDXHBE
, BPFBF_EBPFBE_SFMT_LDXBBE
, BPFBF_EBPFBE_SFMT_LDXDWBE
79 , BPFBF_EBPFBE_SFMT_STXWBE
, BPFBF_EBPFBE_SFMT_STXHBE
, BPFBF_EBPFBE_SFMT_STXBBE
, BPFBF_EBPFBE_SFMT_STXDWBE
80 , BPFBF_EBPFBE_SFMT_STBBE
, BPFBF_EBPFBE_SFMT_STHBE
, BPFBF_EBPFBE_SFMT_STWBE
, BPFBF_EBPFBE_SFMT_STDWBE
81 , BPFBF_EBPFBE_SFMT_JEQIBE
, BPFBF_EBPFBE_SFMT_JEQRBE
, BPFBF_EBPFBE_SFMT_CALLBE
, BPFBF_EBPFBE_SFMT_JA
82 , BPFBF_EBPFBE_SFMT_EXIT
, BPFBF_EBPFBE_SFMT_XADDDWBE
, BPFBF_EBPFBE_SFMT_XADDWBE
83 } BPFBF_EBPFBE_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_EBPFBE_DECODE_H */