[PATCH v3 0/2] Fix EXECUTE of relative long instructions

Ilya Leoshkevich posted 2 patches 1 year ago
target/s390x/cpu.h                 |   1 +
target/s390x/tcg/mem_helper.c      |   1 +
target/s390x/tcg/translate.c       |  13 ++-
tests/tcg/s390x/Makefile.target    |   1 +
tests/tcg/s390x/ex-relative-long.c | 156 +++++++++++++++++++++++++++++
5 files changed, 171 insertions(+), 1 deletion(-)
create mode 100644 tests/tcg/s390x/ex-relative-long.c
[PATCH v3 0/2] Fix EXECUTE of relative long instructions
Posted by Ilya Leoshkevich 1 year ago
v2: https://lists.gnu.org/archive/html/qemu-devel/2023-03/msg04499.html
v2 -> v3: Make mem static (Nina).
          Initialize cc with cr (Nina).
          Drop long casts (Nina).
          Move mask assignment outside of asm.
          Use "a" constraints instead of "r" where necessary.
          Drop unnecessary earlyclobbers.

v1: https://lists.gnu.org/archive/html/qemu-devel/2023-03/msg04316.html
v1 -> v2: Address the middle of an array in the test (Richard).
          Rebase - not 100% trivial, so not carrying Reviewed-bys.

Hi,

This series fixes EXECUTE of instructions like LARL, LGLR, etc.
Currently the address calculation uses EXECUTE's address as a base,
while it should be using that of the target instruction.
Patch 1 fixes the issue, patch 2 adds a test.

Best regards,
Ilya

Ilya Leoshkevich (2):
  target/s390x: Fix EXECUTE of relative long instructions
  tests/tcg/s390x: Add ex-relative-long.c

 target/s390x/cpu.h                 |   1 +
 target/s390x/tcg/mem_helper.c      |   1 +
 target/s390x/tcg/translate.c       |  13 ++-
 tests/tcg/s390x/Makefile.target    |   1 +
 tests/tcg/s390x/ex-relative-long.c | 156 +++++++++++++++++++++++++++++
 5 files changed, 171 insertions(+), 1 deletion(-)
 create mode 100644 tests/tcg/s390x/ex-relative-long.c

-- 
2.39.2