Hi, I noticed that sometimes jumping backwards leads to crashes or hangs. The problem is a missing cast. Patches 1 and 2 fix the problem, patch 3 adds a test.
v1: https://lists.nongnu.org/archive/html/qemu-devel/2022-03/msg03356.html v1 -> v2: - Skip the test if mmap() fails (Richard). - Replace test opcodes with inline asm (David). Since we now want to skip the test if the code cannot be mapped (e.g. on a 31-bit host), we shouldn't be asking the loader to map the code right away. So the mmap() approach stays. v2: https://lists.nongnu.org/archive/html/qemu-devel/2022-03/msg03387.html v2 -> v3: - Use MAP_NORESERVE (Christian / David). - Unhardcode 0x100000006 (Richard). Best regards, Ilya Ilya Leoshkevich (3): s390x/tcg: Fix BRASL with a large negative offset s390x/tcg: Fix BRCL with a large negative offset tests/tcg/s390x: Test BRASL and BRCL with large negative offsets target/s390x/tcg/translate.c | 4 +- tests/tcg/s390x/Makefile.target | 1 + tests/tcg/s390x/branch-relative-long.c | 68 ++++++++++++++++++++++++++ 3 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 tests/tcg/s390x/branch-relative-long.c -- 2.35.1