; Options for the eBPF compiler port. ; Copyright (C) 2019-2024 Free Software Foundation, Inc. ; ; This file is part of GCC. ; ; GCC is free software; you can redistribute it and/or modify it under ; the terms of the GNU General Public License as published by the Free ; Software Foundation; either version 3, or (at your option) any later ; version. ; ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY ; WARRANTY; without even the implied warranty of MERCHANTABILITY or ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ; for more details. ; ; You should have received a copy of the GNU General Public License ; along with GCC; see the file COPYING3. If not see ; . HeaderInclude config/bpf/bpf-opts.h ; Use xBPF extensions. mxbpf Target Mask(XBPF) Generate xBPF. ; Selecting big endian or little endian targets. mbig-endian Target RejectNegative Mask(BIG_ENDIAN) Generate big-endian eBPF. mlittle-endian Target RejectNegative InverseMask(BIG_ENDIAN) Generate little-endian eBPF. mframe-limit= Target Joined RejectNegative UInteger IntegerRange(0, 32767) Var(bpf_frame_limit) Init(32767) Set a hard limit for the size of each stack frame, in bytes. mco-re Target Mask(BPF_CORE) Generate all necessary information for BPF Compile Once - Run Everywhere. ; Selecting BPF ISA features and versions mjmpext Target Var(bpf_has_jmpext) Init(-1) Enable extra conditional-branch instructions j(s)lt and j(s)le. malu32 Target Var(bpf_has_alu32) Init(-1) Enable 32-bit ALU instructions. mjmp32 Target Var(bpf_has_jmp32) Init(-1) Enable 32-bit jump instructions. mv3-atomics Target Var(bpf_has_v3_atomics) Init(-1) Enable general atomic operations introduced in v3 ISA. mbswap Target Var(bpf_has_bswap) Init(-1) Enable byte swap instructions. msdiv Target Var(bpf_has_sdiv) Init(-1) Enable signed division and modulus instructions. msmov Target Var(bpf_has_smov) Init(-1) Enable signed move and memory load instructions. mcpu= Target RejectNegative Joined Var(bpf_isa) Enum(bpf_isa) Init(ISA_V4) Select the eBPF ISA version to target in code generation. Enum Name(bpf_isa) Type(enum bpf_isa_version) Valid ISA versions (for use with the -mcpu= option) EnumValue Enum(bpf_isa) String(v1) Value(ISA_V1) EnumValue Enum(bpf_isa) String(v2) Value(ISA_V2) EnumValue Enum(bpf_isa) String(v3) Value(ISA_V3) EnumValue Enum(bpf_isa) String(v4) Value(ISA_V4) masm= Target RejectNegative Joined Var(asm_dialect) Enum(asm_dialect) Init(ASM_PSEUDOC) Use given assembler dialect. Enum Name(asm_dialect) Type(enum bpf_asm_dialect) Known assembler dialects (for use with the -masm= option) EnumValue Enum(asm_dialect) String(normal) Value(ASM_NORMAL) EnumValue Enum(asm_dialect) String(pseudoc) Value(ASM_PSEUDOC) minline-memops-threshold= Target RejectNegative Joined UInteger Var(bpf_inline_memops_threshold) Init(1024) -minline-memops-threshold= Maximum size of memset/memmove/memcpy to inline, larger sizes will use a library call.