There is a description in <https://github.com/riscv/riscv-isa-manual/blob/main/src/zawrs.adoc>:
"The instructions in the Zawrs extension are only useful in conjunction with the LR instruction, which is provided by the Zalrsc component of the A extension." It can be concluded that: zawrs -> zalrsc. gcc/ChangeLog: * common/config/riscv/riscv-common.cc: zawrs -> zalrsc. gcc/testsuite/ChangeLog: * gcc.target/riscv/predef-38.c: New test. * gcc.target/riscv/predef-39.c: New test. Signed-off-by: Xiao Zeng <zengx...@eswincomputing.com> --- gcc/common/config/riscv/riscv-common.cc | 1 + gcc/testsuite/gcc.target/riscv/predef-38.c | 31 ++++++++++++++++++++++ gcc/testsuite/gcc.target/riscv/predef-39.c | 31 ++++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 gcc/testsuite/gcc.target/riscv/predef-38.c create mode 100644 gcc/testsuite/gcc.target/riscv/predef-39.c diff --git a/gcc/common/config/riscv/riscv-common.cc b/gcc/common/config/riscv/riscv-common.cc index bd42fd01532..a6abd903b98 100644 --- a/gcc/common/config/riscv/riscv-common.cc +++ b/gcc/common/config/riscv/riscv-common.cc @@ -96,6 +96,7 @@ static const riscv_implied_info_t riscv_implied_info[] = {"zabha", "zaamo"}, {"zacas", "zaamo"}, + {"zawrs", "zalrsc"}, {"zcmop", "zca"}, diff --git a/gcc/testsuite/gcc.target/riscv/predef-38.c b/gcc/testsuite/gcc.target/riscv/predef-38.c new file mode 100644 index 00000000000..986c02b451a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/predef-38.c @@ -0,0 +1,31 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=rv32i_zawrs -mabi=ilp32 -mcmodel=medlow -misa-spec=20191213" } */ + +int main () { + +#ifndef __riscv_arch_test +#error "__riscv_arch_test" +#endif + +#if __riscv_xlen != 32 +#error "__riscv_xlen" +#endif + +#if !defined(__riscv_i) +#error "__riscv_i" +#endif + +#if !defined(__riscv_zawrs) +#error "__riscv_zawrs" +#endif + +#if !defined(__riscv_zalrsc) +#error "__riscv_zalrsc" +#endif + +#if defined(__riscv_a) +#error "__riscv_a" +#endif + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/predef-39.c b/gcc/testsuite/gcc.target/riscv/predef-39.c new file mode 100644 index 00000000000..558164de8c4 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/predef-39.c @@ -0,0 +1,31 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=rv64i_zawrs -mabi=lp64 -mcmodel=medlow -misa-spec=20191213" } */ + +int main () { + +#ifndef __riscv_arch_test +#error "__riscv_arch_test" +#endif + +#if __riscv_xlen != 64 +#error "__riscv_xlen" +#endif + +#if !defined(__riscv_i) +#error "__riscv_i" +#endif + +#if !defined(__riscv_zawrs) +#error "__riscv_zawrs" +#endif + +#if !defined(__riscv_zalrsc) +#error "__riscv_zalrsc" +#endif + +#if defined(__riscv_a) +#error "__riscv_a" +#endif + + return 0; +} -- 2.17.1