mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-24 04:00:07 +08:00
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:
@ -1049,9 +1049,10 @@ riscv_csr_address (const char *csr_name,
|
|||||||
case CSR_CLASS_SMAIA:
|
case CSR_CLASS_SMAIA:
|
||||||
extension = "smaia";
|
extension = "smaia";
|
||||||
break;
|
break;
|
||||||
case CSR_CLASS_SMSTATEEN:
|
|
||||||
case CSR_CLASS_SMSTATEEN_32:
|
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";
|
extension = "smstateen";
|
||||||
break;
|
break;
|
||||||
case CSR_CLASS_SSAIA:
|
case CSR_CLASS_SSAIA:
|
||||||
@ -1064,12 +1065,13 @@ riscv_csr_address (const char *csr_name,
|
|||||||
|| csr_class == CSR_CLASS_SSAIA_AND_H_32);
|
|| csr_class == CSR_CLASS_SSAIA_AND_H_32);
|
||||||
extension = "ssaia";
|
extension = "ssaia";
|
||||||
break;
|
break;
|
||||||
case CSR_CLASS_SSSTATEEN:
|
|
||||||
case CSR_CLASS_SSSTATEEN_AND_H:
|
|
||||||
case CSR_CLASS_SSSTATEEN_AND_H_32:
|
case CSR_CLASS_SSSTATEEN_AND_H_32:
|
||||||
is_rv32_only = (csr_class == CSR_CLASS_SSSTATEEN_AND_H_32);
|
is_rv32_only = true;
|
||||||
is_h_required = (csr_class == CSR_CLASS_SSSTATEEN_AND_H
|
/* Fall through. */
|
||||||
|| csr_class == CSR_CLASS_SSSTATEEN_AND_H_32);
|
case CSR_CLASS_SSSTATEEN_AND_H:
|
||||||
|
is_h_required = true;
|
||||||
|
/* Fall through. */
|
||||||
|
case CSR_CLASS_SSSTATEEN:
|
||||||
extension = "ssstateen";
|
extension = "ssstateen";
|
||||||
break;
|
break;
|
||||||
case CSR_CLASS_SSCOFPMF_32:
|
case CSR_CLASS_SSCOFPMF_32:
|
||||||
|
Reference in New Issue
Block a user