public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [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).