1 /* Definition of eBPF target for GNU compiler.
2 Copyright (C) 2019-2023 Free Software Foundation, Inc.
4 This file is part of GCC.
6 GCC is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3, or (at your option)
11 GCC is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GCC; see the file COPYING3. If not see
18 <http://www.gnu.org/licenses/>. */
20 #ifndef GCC_BPF_PROTOS_H
21 #define GCC_BPF_PROTOS_H
23 /* Routines implemented in bpf.cc. */
25 extern HOST_WIDE_INT
bpf_initial_elimination_offset (int, int);
26 extern const char *bpf_output_call (rtx
);
27 extern void bpf_target_macros (cpp_reader
*);
28 extern void bpf_print_operand (FILE *, rtx
, int);
29 extern void bpf_print_operand_address (FILE *, rtx
);
30 extern void bpf_expand_prologue (void);
31 extern void bpf_expand_epilogue (void);
32 extern void bpf_expand_cbranch (machine_mode
, rtx
*);
33 const char *bpf_add_core_reloc (rtx
*operands
, const char *templ
);
35 class gimple_opt_pass
;
36 gimple_opt_pass
*make_pass_lower_bpf_core (gcc::context
*ctxt
);
38 #endif /* ! GCC_BPF_PROTOS_H */