qemu/tests/tcg
Charalampos Mitrodimas a1f44e0c59 tests/tcg/riscv64: Add test for MEPC bit masking
Add a regression test to verify that MEPC properly masks the lower
bits when an address with mode bits is written to it, as required by
the RISC-V Privileged Architecture specification.

The test sets STVEC to an address with bit 0 set (vectored mode),
triggers an illegal instruction exception, copies STVEC to MEPC in the
trap handler, and verifies that MEPC masks bits [1:0] correctly for
IALIGN=32.

Without the fix, MEPC retains the mode bits (returns non-zero/FAIL).
With the fix, MEPC clears bits [1:0] (returns 0/PASS).

Signed-off-by: Charalampos Mitrodimas <charmitro@posteo.net>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <20250703182157.281320-3-charmitro@posteo.net>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2025-07-04 21:09:49 +10:00
..
aarch64 tests/tcg: make aarch64 boot.S handle different starting modes 2025-06-07 15:15:30 +01:00
aarch64_be tests/tcg: enable basic testing for aarch64_be-linux-user 2024-10-24 09:56:37 +01:00
alpha tests/tcg: add a system test to check memory instrumentation 2024-09-19 15:58:01 +01:00
arm tests/tcg: Suppress compiler false-positive warning on sha1.c 2025-03-10 10:30:01 +00:00
hexagon plugins/api: use qemu_target_page_mask() to get value 2025-03-10 10:30:01 +00:00
hppa tests/tcg: Remove run-test-mmap-* 2024-02-29 11:35:37 -10:00
i386 tests/tcg: enable -fwrapv for test-i386-bmi 2025-03-10 10:30:01 +00:00
loongarch64 hw/loongarch/virt: Get physical entry address with elf file 2025-05-06 09:17:32 +08:00
m68k tests/tcg: Remove run-test-mmap-* 2024-02-29 11:35:37 -10:00
minilib tests/tcg/minilib: Constify digits in print_num 2024-07-05 12:33:41 +01:00
mips tests/tcg: Add -fno-stack-protector 2023-10-31 13:28:19 +00:00
multiarch plugins/api: use qemu_target_page_mask() to get value 2025-03-10 10:30:01 +00:00
openrisc target/openrisc: Rename the cpu from or32 to or1k 2017-02-14 08:14:58 +11:00
plugins plugins: Add patcher plugin and test 2025-07-02 10:09:48 +01:00
ppc64 tests/tcg: Replace -mpower8-vector with -mcpu=power8 2024-11-05 10:36:08 +00:00
ppc64le tests/tcg: unify ppc64 and ppc64le Makefiles 2022-10-06 11:53:40 +01:00
riscv64 tests/tcg/riscv64: Add test for MEPC bit masking 2025-07-04 21:09:49 +10:00
s390x tests/tcg/s390x: Test modifying code using the MVC instruction 2025-01-30 10:39:37 +01:00
sh4 target/sh4: Fix SUBV opcode 2024-05-03 17:33:26 +02:00
tricore tests/tcg: Reset result register after each test 2023-09-29 08:28:09 +02:00
x86_64 plugins: Add patcher plugin and test 2025-07-02 10:09:48 +01:00
xtensa tests/tcg/xtensa: add icount/ibreak priority test 2024-01-19 12:28:59 +01:00
xtensaeb tcg: Correct invalid mentions of 'softmmu' by 'system-mode' 2023-10-07 19:02:33 +02:00
Makefile.target plugins: Add patcher plugin and test 2025-07-02 10:09:48 +01:00
README tests/tcg: update README 2024-07-30 11:44:18 +01:00

This directory contains various interesting guest binaries for
regression testing the Tiny Code Generator doing system and user-mode
emulation.

The multiarch directory contains shared code for tests that can be
built for all guest architectures. Architecture specific code can be
found in their respective directories.

System mode tests will be under the "system" subdirectories.

GDB scripts for exercising the gdbstub on specific tests will be found
under the "gdbstb" subdirectories.

See the developer guide for more instructions on "make check-tcg"