mbox series

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

Message ID 20230316210751.302423-1-iii@linux.ibm.com (mailing list archive)
Headers show
Series Fix EXECUTE of relative long instructions | expand

Message

Ilya Leoshkevich March 16, 2023, 9:07 p.m. UTC
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