History log of /gem5/tests/test-progs/asmtest/src/riscv/isa/macros/scalar/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
12771:75508af5d8dc 22-May-2018 Tuan Ta <qtt2@cornell.edu>

tests,style: add RISC-V assembly tests

This patch adds a subset (rv64*) of RISC-V assembly tests. The original
riscv-test project can be found here:
https://github.com/riscv/riscv-tests. The riscv-test project is under the
BSD license (https://github.com/riscv/riscv-tests/blob/master/LICENSE)
and is maintained separately from gem5 project.

The tests have been slightly modified to work in gem5 SE mode:

(1) Removed a trap handler used in riscv-tests for bare-metal systems

(2) Instead of throwing an exception, the tests call the exit syscall
with
the exit code of
- '0' if SUCCESS
- Failed test case's number (non-zero) if FAILURE
The exit code can be captured after a simuation completes.

In addition to original RISC-V assembly tests, this patch adds several
assembly tests specifically for AMO, LR, SC and system calls. Those
tests target a multi-core system.

(1) rv64uamt: multi-threaded tests for A-extension instructions

(2) rv64samt: multi-threaded tests for clone and futex system calls

This patch also makes the style checker ignore RISC-V assembly test
directory. The assembly tests are maintained in an external project
that does not follow the gem5 coding conventions.

Please find more details in the README file included in this patch.

Change-Id: Id1015d9a2c6c7d0341fa8b81483289e5f0bfcec0
Reviewed-on: https://gem5-review.googlesource.com/6703
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>


/gem5/tests/test-progs/asmtest/src/riscv/LICENSE
/gem5/tests/test-progs/asmtest/src/riscv/Makefile
/gem5/tests/test-progs/asmtest/src/riscv/README.md
/gem5/tests/test-progs/asmtest/src/riscv/env/LICENSE
/gem5/tests/test-progs/asmtest/src/riscv/env/encoding.h
/gem5/tests/test-progs/asmtest/src/riscv/env/p/link.ld
/gem5/tests/test-progs/asmtest/src/riscv/env/p/riscv_test.h
/gem5/tests/test-progs/asmtest/src/riscv/env/pm/riscv_test.h
/gem5/tests/test-progs/asmtest/src/riscv/env/ps/link.ld
/gem5/tests/test-progs/asmtest/src/riscv/env/ps/riscv_test.h
/gem5/tests/test-progs/asmtest/src/riscv/env/pt/riscv_test.h
/gem5/tests/test-progs/asmtest/src/riscv/env/v/entry.S
/gem5/tests/test-progs/asmtest/src/riscv/env/v/riscv_test.h
/gem5/tests/test-progs/asmtest/src/riscv/env/v/string.c
/gem5/tests/test-progs/asmtest/src/riscv/env/v/vm.c
/gem5/tests/test-progs/asmtest/src/riscv/isa/.gitignore
/gem5/tests/test-progs/asmtest/src/riscv/isa/macros/mt/test_macros_mt.h
/gem5/tests/test-progs/asmtest/src/riscv/isa/macros/mt/test_macros_mt_ecall.h
test_macros.h
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/access.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/breakpoint.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/csr.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/illegal.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/ma_addr.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/ma_fetch.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/mcsr.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/sbreak.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/scall.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64samt/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64samt/sysclone_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64samt/sysfutex1_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64samt/sysfutex2_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64samt/sysfutex3_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64samt/sysfutex_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64si/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64si/csr.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64si/dirty.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64si/ma_fetch.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64si/sbreak.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64si/scall.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64si/wfi.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoadd_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoadd_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoand_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoand_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amomax_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amomax_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amomaxu_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amomaxu_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amomin_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amomin_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amominu_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amominu_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoor_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoor_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoswap_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoswap_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoxor_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoxor_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/lrsc.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/test.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amoadd_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amoand_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amomax_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amomaxu_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amomin_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amominu_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amoor_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amoswap_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amoxor_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/lrsc_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uc/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uc/rvc.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/fadd.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/fclass.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/fcmp.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/fcvt.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/fcvt_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/fdiv.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/fmadd.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/fmin.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/ldst.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/move.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/recoding.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/structural.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/fadd.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/fclass.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/fcmp.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/fcvt.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/fcvt_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/fdiv.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/fmadd.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/fmin.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/ldst.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/move.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/recoding.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/add.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/addi.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/addiw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/addw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/and.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/andi.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/auipc.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/beq.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/bge.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/bgeu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/blt.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/bltu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/bne.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/fence_i.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/jal.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/jalr.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/lb.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/lbu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/ld.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/lh.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/lhu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/lui.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/lw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/lwu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/or.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/ori.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sb.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sd.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sh.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/simple.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sll.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/slli.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/slliw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sllw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/slt.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/slti.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sltiu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sltu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sra.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/srai.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sraiw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sraw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/srl.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/srli.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/srliw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/srlw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sub.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/subw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/test.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/xor.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/xori.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/div.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/divu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/divuw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/divw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/mul.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/mulh.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/mulhsu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/mulhu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/mulw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/rem.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/remu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/remuw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/remw.S
/gem5/tests/test-progs/asmtest/src/riscv/run-tests.py
/gem5/util/style/style.py