* [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 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
* 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
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).