-
Notifications
You must be signed in to change notification settings - Fork 72
Tests
Here I summarize the test performed to the simulator.
I'm using riscv-gnu-toolchain compiled with the following config options:
./configure --prefix=/opt/riscv --with-arch=rv32i --with-abi=ilp32
Basic ASM code to test some of the basic instructions. Very basic code with few instructions.
To compile the code, the following instructions do the job:
$ riscv32-unknown-linux-gnu-as EternalLoop.asm -o EternalLoop.o
$ riscv32-unknown-linux-gnu-ld -T ../my_linker_script.ld EternalLoop.o -o EternalLoop.elf
$ objcopy -O ihex EternalLoop.elf EternalLoop.hex
Few tiny projects to test more complex code running in the simulator.
Each project is compiled without std libraries and with some tricks:
CFLAGS = -Wall -I. -O0 -nostdlib -march=rv32i -mabi=ilp32 --entry main
Almost all riscv-tests tests passed (see below)
Here the list of tests RISCV-TLM are currently passing:
rv32mi-p-breakpoint
, rv32mi-p-ma_addr
, rv32mi-p-ma_fetch
,
rv32si-p-scall
, rv32ui-p-add
, rv32ui-p-addi
, rv32ui-p-and
,
rv32ui-p-andi
, rv32ui-p-auipc
, rv32ui-p-beq
, rv32ui-p-bge
,
rv32ui-p-bgeu
, rv32ui-p-blt
, rv32ui-p-bltu
, rv32ui-p-bne
,
rv32ui-p-fence_i
, rv32ui-p-jal
, rv32ui-p-jalr
, rv32ui-p-lb
,
rv32ui-p-lbu
, rv32ui-p-lh
, rv32ui-p-lhu
, rv32ui-p-lui
, rv32ui-p-lw
,
rv32ui-p-or
, rv32ui-p-ori
, rv32ui-p-sb
, rv32ui-p-sh
, rv32ui-p-simple
,
rv32ui-p-sll
, rv32ui-p-slli
, rv32ui-p-slt
, rv32ui-p-slti
,
rv32ui-p-sltiu
, rv32ui-p-sltu
, rv32ui-p-sra
, rv32ui-p-srai
,
rv32ui-p-srl
, rv32ui-p-srli
, rv32ui-p-sub
, rv32ui-p-sw
, rv32ui-p-xor
,
rv32ui-p-xori
, rv32um-p-div
, rv32um-p-divu
, rv32um-p-mul
,
rv32um-p-mulh
, rv32um-p-mulhsu
, rv32um-p-mulhu
, rv32um-p-rem
,
rv32um-p-remu
, rv32uc-p-rvc
, rv32si-p-wfi
, rv32mi-p-csr
, rv32mi-p-mcsr
,
rv32mi-p-shamt
, rv32mi-p-sbreak
, rv32mi-p-illegal
, rv32ua-p-lrsc
rv32ua-p-amoadd_w
, rv32ua-p-amoand_w
, rv32ua-p-amomaxu_w
,rv32ua-p-amomax_w
,
rv32ua-p-amomax_w
, rv32ua-p-amomin_w
, rv32ua-p-amoor_w
, rv32ua-p-amoswap_w
,
rv32ua-p-amoxor_w
Tests failing :
rv32si-p-dirty
, rv32si-p-sbreak
The following riscv-compliance tests passed:
- rv32i
- rv32im
- rv32imc
- rv32Zicsr
- rv32Zifencei