blob: 939fdfecae4c5e165ed3357f2c8a98196a434956 [file] [log] [blame]
*** Keywords ***
Create RISC-V With ISA String
[Arguments] ${ISAString}
Execute Command mach create
Execute Command logLevel 0
Execute Command machine LoadPlatformDescriptionFromString "cpu: CPU.RiscV32 @ sysbus { cpuType: \\"${ISAString}\\"}"
Create RISC-V64 With ISA String
[Arguments] ${ISAString}
Execute Command mach create
Execute Command logLevel 0
Execute Command machine LoadPlatformDescriptionFromString "cpu: CPU.RiscV64 @ sysbus { cpuType: \\"${ISAString}\\"}"
Should Throw Construction Exception
[Arguments] ${ISAString} ${exceptionMsg}
Execute Command mach create
Execute Command logLevel 0
${out}= Run Keyword And Expect Error KeywordException:*
... Execute Command machine LoadPlatformDescriptionFromString "cpu: CPU.RiscV32 @ sysbus { cpuType: \\"${ISAString}\\"}"
Should Contain ${out} ${exceptionMsg}
*** Test Cases ***
Should Parse All Valid ISA Strings
[Template] Create RISC-V With ISA String
RV32G
rv32gc
rv32gc
RV32GC
rv32gc_xandes
RV32GC_Xandes
RV32GC_Zicsr_Zifencei
RV32G_V
rv32ia_zicsr_zifencei
RV32IM
RV32IMAC
RV32IMACB_Zicsr_Zifencei
RV32IMACFD_Zicsr
RV32IMACFD_Zicsr_Zifencei
rv32imac_zicsr
RV32_IMACZicsr_Zifencei
RV32IMAC_Zicsr_Zifencei
RV32IMACZicsr_Zifencei
rv32imafc_zifencei
rv32imafdcg
RV32IMAFDC_Zicsr
RV32IMAFDC_Zicsr_Zifencei
RV32IMAF_Zicsr_Zifencei
rv32ima_zicsr_zifencei
RV32IMC
rv32imcb_zicsr_zifencei
rv32imc_zicsr
rv32imc_zicsr_zifencei
RV32IMC_Zicsr_Zifencei_Zbs
RV32IM_Zicsr
rv32im_zicsr_zifencei
RV32IZifencei_Xandes
rv32ea_zicsr_zifencei
RV32EM
RV32EMAC
rv32emac_zicsr
RV32_EMACZicsr_Zifencei
RV32EMAC_Zicsr_Zifencei
RV32EMACZicsr_Zifencei
rv32ema_zicsr_zifencei
RV32EMC
rv32emc_zicsr
rv32emc_zicsr_zifencei
RV32EMC_Zicsr_Zifencei_Zbs
RV32EM_Zicsr
rv32em_zicsr_zifencei
RV32EZifencei_Xandes
Should Handle Both 32 And 64 Bit Versions
Create RISC-V With ISA String RV32IMAFDC_Zicsr_Zifencei
Create RISC-V64 With ISA String RV64IMAFDC_Zicsr_Zifencei
Should Throw Construction Exception
[Template] Should Throw Construction Exception
RV32IE ISA string cannot contain both I and E base instruction sets at the same time
RV32EI ISA string cannot contain both I and E base instruction sets at the same time
RV32EF RV32E can only have M, A and C standard extensions
RV32FE RV32E can only have M, A and C standard extensions