From ee0dfa2be12e4250051ae7b404afa33a8c215cba Mon Sep 17 00:00:00 2001 From: Christian Herber Date: Fri, 7 Jun 2024 06:22:52 +0200 Subject: [PATCH] Add Load/Store Pair for RV32 extensions (Zilsd & Zcmlsd) (#177) * Adding support for Zilsd extension * Split Zilsd into Zilsd and Zcmlsd --- riscv_config/constants.py | 4 ++-- riscv_config/isa_validator.py | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/riscv_config/constants.py b/riscv_config/constants.py index 2913757..4b9c583 100644 --- a/riscv_config/constants.py +++ b/riscv_config/constants.py @@ -21,10 +21,10 @@ ] + Zvef_extensions + Zved_extensions Z_extensions = [ - "Zicbom", "Zicbop", "Zicboz", "Zicntr", "Zicsr", "Zicond", "Zicfilp", "Zicfiss", "Zifencei", "Zihintpause", "Zihpm", "Zimop", + "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 98df6f3..a741a9b 100644 --- a/riscv_config/isa_validator.py +++ b/riscv_config/isa_validator.py @@ -82,6 +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 '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