diff options
author | Xing GUO <higuoxing@gmail.com> | 2021-01-28 11:22:40 +0800 |
---|---|---|
committer | Kito Cheng <kito.cheng@sifive.com> | 2021-01-28 11:25:50 +0800 |
commit | f76d0d86454baf99ada0748c73a29816854e1b91 (patch) | |
tree | 775eb7c49464a5046fbcf3c71f73c1646835dcfc /gcc | |
parent | aa69f0a8203095b5a689fae48d5ca8006ecfca61 (diff) | |
download | gcc-f76d0d86454baf99ada0748c73a29816854e1b91.zip gcc-f76d0d86454baf99ada0748c73a29816854e1b91.tar.gz gcc-f76d0d86454baf99ada0748c73a29816854e1b91.tar.bz2 |
RISC-V: Fix -march option parsing when extension exists.
This patch fixes -march option parsing when `p` extension exists,
e.g., -march=rv64imafdcp should produce
.attribute arch, "rv64i2p0_m2p0_a2p0_f2p0_d2p0_c2p0_p"
rather than
.attribute arch, "rv64i2p0_m2p0_a2p0_f2p0_d2p0_c_p"
gcc/ChangeLog:
* common/config/riscv/riscv-common.c
(riscv_subset_list::parsing_subset_version): Fix -march option parsing
when `p` extension exists.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/attribute-18.c: New test.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/common/config/riscv/riscv-common.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/riscv/attribute-18.c | 4 |
2 files changed, 5 insertions, 3 deletions
diff --git a/gcc/common/config/riscv/riscv-common.c b/gcc/common/config/riscv/riscv-common.c index b3f5c07..6bbe25d 100644 --- a/gcc/common/config/riscv/riscv-common.c +++ b/gcc/common/config/riscv/riscv-common.c @@ -527,9 +527,7 @@ riscv_subset_list::parsing_subset_version (const char *ext, /* Might be beginning of `p` extension. */ if (std_ext_p) { - *major_version = version; - *minor_version = 0; - *explicit_version_p = true; + get_default_version (ext, major_version, minor_version); return p; } else diff --git a/gcc/testsuite/gcc.target/riscv/attribute-18.c b/gcc/testsuite/gcc.target/riscv/attribute-18.c new file mode 100644 index 0000000..1fd80fe --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/attribute-18.c @@ -0,0 +1,4 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64imafdcp -mabi=lp64d -misa-spec=2.2" } */ +int foo() {} +/* { dg-final { scan-assembler ".attribute arch, \"rv64i2p0_m2p0_a2p0_f2p0_d2p0_c2p0_p\"" } } */ |