diff options
author | Edwin Lu <ewlu@rivosinc.com> | 2023-08-29 08:34:13 -0700 |
---|---|---|
committer | Edwin Lu <ewlu@rivosinc.com> | 2023-08-29 08:45:45 -0700 |
commit | 6e23440b5df4011bbe1dbee74d47641125dd7d16 (patch) | |
tree | 2036c0f9962a46f952efbb8faab1d8f46ae680b0 /contrib/unused_functions.py | |
parent | 29763b002459cba64fa76a6965046792944de41d (diff) | |
download | gcc-6e23440b5df4011bbe1dbee74d47641125dd7d16.zip gcc-6e23440b5df4011bbe1dbee74d47641125dd7d16.tar.gz gcc-6e23440b5df4011bbe1dbee74d47641125dd7d16.tar.bz2 |
RISC-V: generate builtin macro for compilation with strict alignment
Distinguish between explicit -mstrict-align and cpu tune param
for slow_unaligned_access=true/false.
Tested for regressions using rv32/64 multilib with newlib/linux
gcc/ChangeLog:
* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Generate
__riscv_unaligned_avoid with value 1 or
__riscv_unaligned_slow with value 1 or
__riscv_unaligned_fast with value 1
* config/riscv/riscv.cc (riscv_option_override): Define
riscv_user_wants_strict_align. Set
riscv_user_wants_strict_align to TARGET_STRICT_ALIGN
* config/riscv/riscv.h: Declare riscv_user_wants_strict_align
gcc/testsuite/ChangeLog:
* gcc.target/riscv/attribute-1.c: Check for
__riscv_unaligned_slow or __riscv_unaligned_fast
* gcc.target/riscv/attribute-4.c: Check for
__riscv_unaligned_avoid
* gcc.target/riscv/attribute-5.c: Check for
__riscv_unaligned_slow or __riscv_unaligned_fast
* gcc.target/riscv/predef-align-1.c: New test.
* gcc.target/riscv/predef-align-2.c: New test.
* gcc.target/riscv/predef-align-3.c: New test.
* gcc.target/riscv/predef-align-4.c: New test.
* gcc.target/riscv/predef-align-5.c: New test.
* gcc.target/riscv/predef-align-6.c: New test.
Reviewed-by: Jeff Law <jlaw@ventanamicro.com>
Signed-off-by: Edwin Lu <ewlu@rivosinc.com>
Co-authored-by: Vineet Gupta <vineetg@rivosinc.com>
Diffstat (limited to 'contrib/unused_functions.py')
0 files changed, 0 insertions, 0 deletions