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.
This commit is contained in:
Tsukasa OI
2022-12-27 03:31:19 +00:00
parent dc20b8f00a
commit c509db05e4

View File

@ -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: