Skip to content

Commit 3ca5f6b

Browse files
Merge pull request #231 from riscv/copilot/sub-pr-230
Accept multibase string literals in CSR enum value parsing
2 parents daf52c1 + c624d65 commit 3ca5f6b

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

tools/create_params.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -651,12 +651,12 @@ def parse_multibase_int(value: Any, label: str, csr_name: str) -> int:
651651
fatal(f"CSR {representative_name} in {def_filename} has invalid or empty enum.legal")
652652
csr_legal_enum = []
653653
for value in raw_legal:
654-
if not isinstance(value, int) or isinstance(value, bool):
654+
if not isinstance(value, (int, str)) or isinstance(value, bool):
655655
fatal(
656-
f"CSR {representative_name} in {def_filename} has non-integer "
657-
f"value in enum.legal: {value!r}"
656+
f"CSR {representative_name} in {def_filename} has invalid value in enum.legal: "
657+
f"{value!r}; expected integer, hex string, or binary string"
658658
)
659-
csr_legal_enum.append(value)
659+
csr_legal_enum.append(parse_multibase_int(value, "enum.legal", representative_name))
660660

661661
# Parse illegal-write behavior (must be one of the two)
662662
raw_illegal_ignore = raw_enum.get("illegal-write-ignore")

0 commit comments

Comments
 (0)