On 8/15/23 12:29, Edwin Lu wrote:
This patch is a modification of
https://gcc.gnu.org/pipermail/gcc-patches/2023-January/610115.html
following the discussion on
https://github.com/riscv-non-isa/riscv-c-api-doc/issues/32

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.
OK. Though I'm pretty sure the commit hooks are going to complain about your ChangeLog :-)

jeff

Reply via email to