diff --git a/riscv_config/constants.py b/riscv_config/constants.py index 8e2b5f8..4b9c583 100644 --- a/riscv_config/constants.py +++ b/riscv_config/constants.py @@ -24,7 +24,7 @@ "Zicbom", "Zicbop", "Zicboz", "Zicntr", "Zicsr", "Zicond", "Zicfilp", "Zicfiss", "Zifencei", "Zihintpause", "Zihpm", "Zilsd", "Zimop", "Zmmul", "Zam", "Zabha", "Zacas", - "Zca", "Zcb", "Zcf", "Zcd" , "Zcmp", "Zcmt", "Zcmop", + "Zca", "Zcb", "Zcf", "Zcd" , "Zcmp", "Zcmt", "Zcmop", "Zcmlsd", "Zfh", "Zfa", "Zfinx", "Zdinx", "Zhinx", "Zhinxmin", "Ztso", diff --git a/riscv_config/isa_validator.py b/riscv_config/isa_validator.py index 27fd135..c71ad89 100644 --- a/riscv_config/isa_validator.py +++ b/riscv_config/isa_validator.py @@ -82,9 +82,12 @@ def get_extension_list(isa): if 'S' in extension_list and not 'U' in extension_list: err_list.append( "S cannot exist without U.") err = True - if 'Zilsd' in extension_list and 'Zcf' in extension_list: - err_list.append( "Zilsd includes compressed encodings that are mutually exclusive with Zcf.") - err = True + if 'Zcmlsd' in extension_list and 'Zcf' in extension_list: + err_list.append( "Zcmlsd encodings are mutually exclusive with Zcf.") + err = True + if 'Zcmlsd' in extension_list and 'Zilsd' not in extension_list: + err_list.append( "Zcmlsd cannot exist without Zilsd.") + err = True if 'Zkn' in extension_list and ( set(['Zbkb', 'Zbkc', 'Zbkx', 'Zkne', 'Zknd', 'Zknh']) & set(extension_list)): err_list.append( "Zkn is a superset of Zbkb, Zbkc, Zbkx, Zkne, Zknd, Zknh. In presence of Zkn the subsets must be ignored in the ISA string.") err = True