1 ; Options for the eBPF compiler port.
3 ; Copyright (C) 2019-2023 Free Software Foundation, Inc.
5 ; This file is part of GCC.
7 ; GCC is free software; you can redistribute it and/or modify it under
8 ; the terms of the GNU General Public License as published by the Free
9 ; Software Foundation; either version 3, or (at your option) any later
12 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17 ; You should have received a copy of the GNU General Public License
18 ; along with GCC; see the file COPYING3. If not see
19 ; <http://www.gnu.org/licenses/>.
24 ; Use xBPF extensions.
30 ; Selecting big endian or little endian targets.
33 Target RejectNegative Mask(BIG_ENDIAN)
34 Generate big-endian eBPF.
37 Target RejectNegative InverseMask(BIG_ENDIAN)
38 Generate little-endian eBPF.
41 Target Joined RejectNegative UInteger IntegerRange(0, 32767) Var(bpf_frame_limit) Init(32767)
42 Set a hard limit for the size of each stack frame, in bytes.
46 Generate all necessary information for BPF Compile Once - Run Everywhere.
48 ; Selecting BPF ISA features and versions
51 Target Var(bpf_has_jmpext) Init(-1)
52 Enable extra conditional-branch instructions j(s)lt and j(s)le.
55 Target Var(bpf_has_alu32) Init(-1)
56 Enable 32-bit ALU instructions.
59 Target Var(bpf_has_jmp32) Init(-1)
60 Enable 32-bit jump instructions.
63 Target Var(bpf_has_v3_atomics) Init(-1)
64 Enable general atomic operations introduced in v3 ISA.
67 Target Var(bpf_has_bswap) Init(-1)
68 Enable byte swap instructions.
71 Target Var(bpf_has_sdiv) Init(-1)
72 Enable signed division and modulus instructions.
75 Target Var(bpf_has_smov) Init(-1)
76 Enable signed move and memory load instructions.
79 Target RejectNegative Joined Var(bpf_isa) Enum(bpf_isa) Init(ISA_V4)
82 Name(bpf_isa) Type(enum bpf_isa_version)
85 Enum(bpf_isa) String(v1) Value(ISA_V1)
88 Enum(bpf_isa) String(v2) Value(ISA_V2)
91 Enum(bpf_isa) String(v3) Value(ISA_V3)
94 Enum(bpf_isa) String(v4) Value(ISA_V4)
97 Target RejectNegative Joined Var(asm_dialect) Enum(asm_dialect) Init(ASM_NORMAL)
98 Use given assembler dialect.
101 Name(asm_dialect) Type(enum bpf_asm_dialect)
102 Known assembler dialects (for use with the -masm= option)
105 Enum(asm_dialect) String(normal) Value(ASM_NORMAL)
108 Enum(asm_dialect) String(pseudoc) Value(ASM_PSEUDOC)