* [PATCH 1/2] RISC-V: Simplify riscv_csr_address logic on state enable extensions
@ 2022-12-29 3:55 Tsukasa OI
2022-12-29 3:55 ` [PATCH 2/2] RISC-V: Reorder CSR classes related to 'Ssstateen' Tsukasa OI
2022-12-29 5:14 ` [PATCH 1/2] RISC-V: Simplify riscv_csr_address logic on state enable extensions Nelson Chu
0 siblings, 2 replies; 5+ messages in thread
From: Tsukasa OI @ 2022-12-29 3:55 UTC (permalink / raw)
To: Tsukasa OI, Nelson Chu, Kito Cheng, Palmer Dabbelt; +Cc: binutils
From: Tsukasa OI <research_trasio@irq.a4lg.com>
This commit makes CSR class handling for 'Smstateen' and 'Ssstateen'
extensions simpler using fall-throughs (as used in CSR_CLASS_I{,_32}).
gas/ChangeLog:
* config/tc-riscv.c (riscv_csr_address): Simplify the logic for
'Smstateen' and 'Ssstateen' extensions.
---
gas/config/tc-riscv.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index 77c0d2e32abf..cc0d74921027 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -1049,9 +1049,10 @@ riscv_csr_address (const char *csr_name,
case CSR_CLASS_SMAIA:
extension = "smaia";
break;
- case CSR_CLASS_SMSTATEEN:
case CSR_CLASS_SMSTATEEN_32:
- is_rv32_only = (csr_class == CSR_CLASS_SMSTATEEN_32);
+ is_rv32_only = true;
+ /* Fall through. */
+ case CSR_CLASS_SMSTATEEN:
extension = "smstateen";
break;
case CSR_CLASS_SSAIA:
@@ -1064,12 +1065,13 @@ riscv_csr_address (const char *csr_name,
|| csr_class == CSR_CLASS_SSAIA_AND_H_32);
extension = "ssaia";
break;
- case CSR_CLASS_SSSTATEEN:
- case CSR_CLASS_SSSTATEEN_AND_H:
case CSR_CLASS_SSSTATEEN_AND_H_32:
- is_rv32_only = (csr_class == CSR_CLASS_SSSTATEEN_AND_H_32);
- is_h_required = (csr_class == CSR_CLASS_SSSTATEEN_AND_H
- || csr_class == CSR_CLASS_SSSTATEEN_AND_H_32);
+ is_rv32_only = true;
+ /* Fall through. */
+ case CSR_CLASS_SSSTATEEN_AND_H:
+ is_h_required = true;
+ /* Fall through. */
+ case CSR_CLASS_SSSTATEEN:
extension = "ssstateen";
break;
case CSR_CLASS_SSCOFPMF_32:
base-commit: dc20b8f00abb74e2c26846c615ec5ba3a62f8677
--
2.39.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] RISC-V: Reorder CSR classes related to 'Ssstateen'
2022-12-29 3:55 [PATCH 1/2] RISC-V: Simplify riscv_csr_address logic on state enable extensions Tsukasa OI
@ 2022-12-29 3:55 ` Tsukasa OI
2022-12-29 5:19 ` Nelson Chu
2022-12-29 5:14 ` [PATCH 1/2] RISC-V: Simplify riscv_csr_address logic on state enable extensions Nelson Chu
1 sibling, 1 reply; 5+ messages in thread
From: Tsukasa OI @ 2022-12-29 3:55 UTC (permalink / raw)
To: Tsukasa OI, Nelson Chu, Kito Cheng, Palmer Dabbelt; +Cc: binutils
From: Tsukasa OI <research_trasio@irq.a4lg.com>
This is a generic tidying commit to fix a minor ordering issue on commit
15253318be09 ("RISC-V: Add 'Ssstateen' extension and its CSRs").
gas/ChangeLog:
* config/tc-riscv.c (enum riscv_csr_class): Reorder 'Ssstateen'-
related CSR classes.
(riscv_csr_address): Likewise.
---
gas/config/tc-riscv.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index cc0d74921027..28df21351eef 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -80,11 +80,11 @@ enum riscv_csr_class
CSR_CLASS_SSAIA_AND_H, /* Ssaia with H */
CSR_CLASS_SSAIA_32, /* Ssaia, rv32 only */
CSR_CLASS_SSAIA_AND_H_32, /* Ssaia with H, rv32 only */
+ CSR_CLASS_SSCOFPMF, /* Sscofpmf only */
+ CSR_CLASS_SSCOFPMF_32, /* Sscofpmf RV32 only */
CSR_CLASS_SSSTATEEN, /* S[ms]stateen only */
CSR_CLASS_SSSTATEEN_AND_H, /* S[ms]stateen only (with H) */
CSR_CLASS_SSSTATEEN_AND_H_32, /* S[ms]stateen RV32 only (with H) */
- CSR_CLASS_SSCOFPMF, /* Sscofpmf only */
- CSR_CLASS_SSCOFPMF_32, /* Sscofpmf RV32 only */
CSR_CLASS_SSTC, /* Sstc only */
CSR_CLASS_SSTC_AND_H, /* Sstc only (with H) */
CSR_CLASS_SSTC_32, /* Sstc RV32 only */
@@ -1065,6 +1065,12 @@ riscv_csr_address (const char *csr_name,
|| csr_class == CSR_CLASS_SSAIA_AND_H_32);
extension = "ssaia";
break;
+ case CSR_CLASS_SSCOFPMF_32:
+ is_rv32_only = true;
+ /* Fall through. */
+ case CSR_CLASS_SSCOFPMF:
+ extension = "sscofpmf";
+ break;
case CSR_CLASS_SSSTATEEN_AND_H_32:
is_rv32_only = true;
/* Fall through. */
@@ -1074,12 +1080,6 @@ riscv_csr_address (const char *csr_name,
case CSR_CLASS_SSSTATEEN:
extension = "ssstateen";
break;
- case CSR_CLASS_SSCOFPMF_32:
- is_rv32_only = true;
- /* Fall through. */
- case CSR_CLASS_SSCOFPMF:
- extension = "sscofpmf";
- break;
case CSR_CLASS_SSTC:
case CSR_CLASS_SSTC_AND_H:
case CSR_CLASS_SSTC_32:
--
2.39.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] RISC-V: Simplify riscv_csr_address logic on state enable extensions
2022-12-29 3:55 [PATCH 1/2] RISC-V: Simplify riscv_csr_address logic on state enable extensions Tsukasa OI
2022-12-29 3:55 ` [PATCH 2/2] RISC-V: Reorder CSR classes related to 'Ssstateen' Tsukasa OI
@ 2022-12-29 5:14 ` Nelson Chu
1 sibling, 0 replies; 5+ messages in thread
From: Nelson Chu @ 2022-12-29 5:14 UTC (permalink / raw)
To: Tsukasa OI; +Cc: Kito Cheng, Palmer Dabbelt, binutils
LGTM, thanks, please commit.
Nelson
On Thu, Dec 29, 2022 at 11:55 AM Tsukasa OI
<research_trasio@irq.a4lg.com> wrote:
>
> From: Tsukasa OI <research_trasio@irq.a4lg.com>
>
> This commit makes CSR class handling for 'Smstateen' and 'Ssstateen'
> extensions simpler using fall-throughs (as used in CSR_CLASS_I{,_32}).
>
> gas/ChangeLog:
>
> * config/tc-riscv.c (riscv_csr_address): Simplify the logic for
> 'Smstateen' and 'Ssstateen' extensions.
> ---
> gas/config/tc-riscv.c | 16 +++++++++-------
> 1 file changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
> index 77c0d2e32abf..cc0d74921027 100644
> --- a/gas/config/tc-riscv.c
> +++ b/gas/config/tc-riscv.c
> @@ -1049,9 +1049,10 @@ riscv_csr_address (const char *csr_name,
> case CSR_CLASS_SMAIA:
> extension = "smaia";
> break;
> - case CSR_CLASS_SMSTATEEN:
> case CSR_CLASS_SMSTATEEN_32:
> - is_rv32_only = (csr_class == CSR_CLASS_SMSTATEEN_32);
> + is_rv32_only = true;
> + /* Fall through. */
> + case CSR_CLASS_SMSTATEEN:
> extension = "smstateen";
> break;
> case CSR_CLASS_SSAIA:
> @@ -1064,12 +1065,13 @@ riscv_csr_address (const char *csr_name,
> || csr_class == CSR_CLASS_SSAIA_AND_H_32);
> extension = "ssaia";
> break;
> - case CSR_CLASS_SSSTATEEN:
> - case CSR_CLASS_SSSTATEEN_AND_H:
> case CSR_CLASS_SSSTATEEN_AND_H_32:
> - is_rv32_only = (csr_class == CSR_CLASS_SSSTATEEN_AND_H_32);
> - is_h_required = (csr_class == CSR_CLASS_SSSTATEEN_AND_H
> - || csr_class == CSR_CLASS_SSSTATEEN_AND_H_32);
> + is_rv32_only = true;
> + /* Fall through. */
> + case CSR_CLASS_SSSTATEEN_AND_H:
> + is_h_required = true;
> + /* Fall through. */
> + case CSR_CLASS_SSSTATEEN:
> extension = "ssstateen";
> break;
> case CSR_CLASS_SSCOFPMF_32:
>
> base-commit: dc20b8f00abb74e2c26846c615ec5ba3a62f8677
> --
> 2.39.0
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] RISC-V: Reorder CSR classes related to 'Ssstateen'
2022-12-29 3:55 ` [PATCH 2/2] RISC-V: Reorder CSR classes related to 'Ssstateen' Tsukasa OI
@ 2022-12-29 5:19 ` Nelson Chu
2022-12-29 6:24 ` Tsukasa OI
0 siblings, 1 reply; 5+ messages in thread
From: Nelson Chu @ 2022-12-29 5:19 UTC (permalink / raw)
To: Tsukasa OI; +Cc: Kito Cheng, Palmer Dabbelt, binutils
On Thu, Dec 29, 2022 at 11:55 AM Tsukasa OI
<research_trasio@irq.a4lg.com> wrote:
>
> From: Tsukasa OI <research_trasio@irq.a4lg.com>
>
> This is a generic tidying commit to fix a minor ordering issue on commit
> 15253318be09 ("RISC-V: Add 'Ssstateen' extension and its CSRs").
May I ask what the order problem here is which needs to be fixed?
Thanks
Nelson
> gas/ChangeLog:
>
> * config/tc-riscv.c (enum riscv_csr_class): Reorder 'Ssstateen'-
> related CSR classes.
> (riscv_csr_address): Likewise.
> ---
> gas/config/tc-riscv.c | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
> index cc0d74921027..28df21351eef 100644
> --- a/gas/config/tc-riscv.c
> +++ b/gas/config/tc-riscv.c
> @@ -80,11 +80,11 @@ enum riscv_csr_class
> CSR_CLASS_SSAIA_AND_H, /* Ssaia with H */
> CSR_CLASS_SSAIA_32, /* Ssaia, rv32 only */
> CSR_CLASS_SSAIA_AND_H_32, /* Ssaia with H, rv32 only */
> + CSR_CLASS_SSCOFPMF, /* Sscofpmf only */
> + CSR_CLASS_SSCOFPMF_32, /* Sscofpmf RV32 only */
> CSR_CLASS_SSSTATEEN, /* S[ms]stateen only */
> CSR_CLASS_SSSTATEEN_AND_H, /* S[ms]stateen only (with H) */
> CSR_CLASS_SSSTATEEN_AND_H_32, /* S[ms]stateen RV32 only (with H) */
> - CSR_CLASS_SSCOFPMF, /* Sscofpmf only */
> - CSR_CLASS_SSCOFPMF_32, /* Sscofpmf RV32 only */
> CSR_CLASS_SSTC, /* Sstc only */
> CSR_CLASS_SSTC_AND_H, /* Sstc only (with H) */
> CSR_CLASS_SSTC_32, /* Sstc RV32 only */
> @@ -1065,6 +1065,12 @@ riscv_csr_address (const char *csr_name,
> || csr_class == CSR_CLASS_SSAIA_AND_H_32);
> extension = "ssaia";
> break;
> + case CSR_CLASS_SSCOFPMF_32:
> + is_rv32_only = true;
> + /* Fall through. */
> + case CSR_CLASS_SSCOFPMF:
> + extension = "sscofpmf";
> + break;
> case CSR_CLASS_SSSTATEEN_AND_H_32:
> is_rv32_only = true;
> /* Fall through. */
> @@ -1074,12 +1080,6 @@ riscv_csr_address (const char *csr_name,
> case CSR_CLASS_SSSTATEEN:
> extension = "ssstateen";
> break;
> - case CSR_CLASS_SSCOFPMF_32:
> - is_rv32_only = true;
> - /* Fall through. */
> - case CSR_CLASS_SSCOFPMF:
> - extension = "sscofpmf";
> - break;
> case CSR_CLASS_SSTC:
> case CSR_CLASS_SSTC_AND_H:
> case CSR_CLASS_SSTC_32:
> --
> 2.39.0
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] RISC-V: Reorder CSR classes related to 'Ssstateen'
2022-12-29 5:19 ` Nelson Chu
@ 2022-12-29 6:24 ` Tsukasa OI
0 siblings, 0 replies; 5+ messages in thread
From: Tsukasa OI @ 2022-12-29 6:24 UTC (permalink / raw)
To: Nelson Chu; +Cc: binutils
On 2022/12/29 14:19, Nelson Chu wrote:
> On Thu, Dec 29, 2022 at 11:55 AM Tsukasa OI
> <research_trasio@irq.a4lg.com> wrote:
>>
>> From: Tsukasa OI <research_trasio@irq.a4lg.com>
>>
>> This is a generic tidying commit to fix a minor ordering issue on commit
>> 15253318be09 ("RISC-V: Add 'Ssstateen' extension and its CSRs").
>
> May I ask what the order problem here is which needs to be fixed?
A consensus to make CSR classes roughly ordered by its extension name.
Before:
Ssaia -> Ssstateen -> Sscofpmf -> Sstc
After:
Ssaia -> Sscofpmf -> Ssstateen -> Sstc
Yes, this is not a functional problem but I wanted to fix that before it
gets dirtier.
Thanks,
Tsukasa
>
> Thanks
> Nelson
>
>> gas/ChangeLog:
>>
>> * config/tc-riscv.c (enum riscv_csr_class): Reorder 'Ssstateen'-
>> related CSR classes.
>> (riscv_csr_address): Likewise.
>> ---
>> gas/config/tc-riscv.c | 16 ++++++++--------
>> 1 file changed, 8 insertions(+), 8 deletions(-)
>>
>> diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
>> index cc0d74921027..28df21351eef 100644
>> --- a/gas/config/tc-riscv.c
>> +++ b/gas/config/tc-riscv.c
>> @@ -80,11 +80,11 @@ enum riscv_csr_class
>> CSR_CLASS_SSAIA_AND_H, /* Ssaia with H */
>> CSR_CLASS_SSAIA_32, /* Ssaia, rv32 only */
>> CSR_CLASS_SSAIA_AND_H_32, /* Ssaia with H, rv32 only */
>> + CSR_CLASS_SSCOFPMF, /* Sscofpmf only */
>> + CSR_CLASS_SSCOFPMF_32, /* Sscofpmf RV32 only */
>> CSR_CLASS_SSSTATEEN, /* S[ms]stateen only */
>> CSR_CLASS_SSSTATEEN_AND_H, /* S[ms]stateen only (with H) */
>> CSR_CLASS_SSSTATEEN_AND_H_32, /* S[ms]stateen RV32 only (with H) */
>> - CSR_CLASS_SSCOFPMF, /* Sscofpmf only */
>> - CSR_CLASS_SSCOFPMF_32, /* Sscofpmf RV32 only */
>> CSR_CLASS_SSTC, /* Sstc only */
>> CSR_CLASS_SSTC_AND_H, /* Sstc only (with H) */
>> CSR_CLASS_SSTC_32, /* Sstc RV32 only */
>> @@ -1065,6 +1065,12 @@ riscv_csr_address (const char *csr_name,
>> || csr_class == CSR_CLASS_SSAIA_AND_H_32);
>> extension = "ssaia";
>> break;
>> + case CSR_CLASS_SSCOFPMF_32:
>> + is_rv32_only = true;
>> + /* Fall through. */
>> + case CSR_CLASS_SSCOFPMF:
>> + extension = "sscofpmf";
>> + break;
>> case CSR_CLASS_SSSTATEEN_AND_H_32:
>> is_rv32_only = true;
>> /* Fall through. */
>> @@ -1074,12 +1080,6 @@ riscv_csr_address (const char *csr_name,
>> case CSR_CLASS_SSSTATEEN:
>> extension = "ssstateen";
>> break;
>> - case CSR_CLASS_SSCOFPMF_32:
>> - is_rv32_only = true;
>> - /* Fall through. */
>> - case CSR_CLASS_SSCOFPMF:
>> - extension = "sscofpmf";
>> - break;
>> case CSR_CLASS_SSTC:
>> case CSR_CLASS_SSTC_AND_H:
>> case CSR_CLASS_SSTC_32:
>> --
>> 2.39.0
>>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-12-29 6:24 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-29 3:55 [PATCH 1/2] RISC-V: Simplify riscv_csr_address logic on state enable extensions Tsukasa OI
2022-12-29 3:55 ` [PATCH 2/2] RISC-V: Reorder CSR classes related to 'Ssstateen' Tsukasa OI
2022-12-29 5:19 ` Nelson Chu
2022-12-29 6:24 ` Tsukasa OI
2022-12-29 5:14 ` [PATCH 1/2] RISC-V: Simplify riscv_csr_address logic on state enable extensions Nelson Chu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).