-
- Downloads
bpf: define BPF feature pre-processor macros
This commit makes the BPF backend to define the following macros for c-family languages: __BPF_CPU_VERSION__ This is a numeric value identifying the version of the BPF "cpu" for which GCC is generating code. __BPF_FEATURE_ALU32 __BPF_FEATURE_JMP32 __BPF_FEATURE_JMP_EXT __BPF_FEATURE_BSWAP __BPF_FEATURE_SDIV_SMOD __BPF_FEATURE_MOVSX __BPF_FEATURE_LDSX __BPF_FEATURE_GOTOL __BPF_FEATURE_ST These are defines if the corresponding "feature" is enabled. The features are implicitly enabled by the BPF CPU version enabled, and most of them can also be enabled/disabled using target-specific -m[no-]FEATURE command line switches. Note that this patch moves the definition of bpf_target_macros, that implements TARGET_CPU_CPP_BUILTINS in the BPF backend, to a bpf-c.cc file. This is because we are now using facilities from c-family/* and these features are not available in compilers like lto1. A couple of tests are also added. Tested in target bpf-unknown-none-gcc and host x86_64-linux-gnu. No regressions. gcc/ChangeLog * config.gcc: Add bpf-c.o as a target object for C and C++. * config/bpf/bpf.cc (bpf_target_macros): Move to bpf-c.cc. * config/bpf/bpf-c.cc: New file. (bpf_target_macros): Move from bpf.cc and define BPF CPU feature macros. * config/bpf/t-bpf: Add rules to build bpf-c.o. gcc/testsuite/ChangeLog * gcc.target/bpf/feature-macro-1.c: New test. * gcc.target/bpf/feature-macro-2.c: Likewise.
Showing
- gcc/config.gcc 2 additions, 0 deletionsgcc/config.gcc
- gcc/config/bpf/bpf-c.cc 88 additions, 0 deletionsgcc/config/bpf/bpf-c.cc
- gcc/config/bpf/bpf.cc 0 additions, 17 deletionsgcc/config/bpf/bpf.cc
- gcc/config/bpf/t-bpf 4 additions, 0 deletionsgcc/config/bpf/t-bpf
- gcc/testsuite/gcc.target/bpf/feature-macro-1.c 34 additions, 0 deletionsgcc/testsuite/gcc.target/bpf/feature-macro-1.c
- gcc/testsuite/gcc.target/bpf/feature-macro-2.c 14 additions, 0 deletionsgcc/testsuite/gcc.target/bpf/feature-macro-2.c
Loading
Please register or sign in to comment