| *** 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 |