Skip to content

Commit c509db0

Browse files
committed
RISC-V: Simplify riscv_csr_address logic on state enable extensions
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.
1 parent dc20b8f commit c509db0

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

gas/config/tc-riscv.c

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1049,9 +1049,10 @@ riscv_csr_address (const char *csr_name,
10491049
case CSR_CLASS_SMAIA:
10501050
extension = "smaia";
10511051
break;
1052-
case CSR_CLASS_SMSTATEEN:
10531052
case CSR_CLASS_SMSTATEEN_32:
1054-
is_rv32_only = (csr_class == CSR_CLASS_SMSTATEEN_32);
1053+
is_rv32_only = true;
1054+
/* Fall through. */
1055+
case CSR_CLASS_SMSTATEEN:
10551056
extension = "smstateen";
10561057
break;
10571058
case CSR_CLASS_SSAIA:
@@ -1064,12 +1065,13 @@ riscv_csr_address (const char *csr_name,
10641065
|| csr_class == CSR_CLASS_SSAIA_AND_H_32);
10651066
extension = "ssaia";
10661067
break;
1067-
case CSR_CLASS_SSSTATEEN:
1068-
case CSR_CLASS_SSSTATEEN_AND_H:
10691068
case CSR_CLASS_SSSTATEEN_AND_H_32:
1070-
is_rv32_only = (csr_class == CSR_CLASS_SSSTATEEN_AND_H_32);
1071-
is_h_required = (csr_class == CSR_CLASS_SSSTATEEN_AND_H
1072-
|| csr_class == CSR_CLASS_SSSTATEEN_AND_H_32);
1069+
is_rv32_only = true;
1070+
/* Fall through. */
1071+
case CSR_CLASS_SSSTATEEN_AND_H:
1072+
is_h_required = true;
1073+
/* Fall through. */
1074+
case CSR_CLASS_SSSTATEEN:
10731075
extension = "ssstateen";
10741076
break;
10751077
case CSR_CLASS_SSCOFPMF_32:

0 commit comments

Comments
 (0)