[PATCH v4 00/12] target/s390x: Handle unaligned accesses

Ilya Leoshkevich posted 12 patches 1 year, 1 month ago
target/s390x/cpu.h                          |  9 ++++
target/s390x/tcg/excp_helper.c              |  4 +-
target/s390x/tcg/insn-data.h.inc            | 46 ++++++++++-----------
target/s390x/tcg/mem_helper.c               | 12 +++++-
target/s390x/tcg/translate.c                | 24 +++++++----
tests/tcg/s390x/Makefile.softmmu-target     | 15 +++++--
tests/tcg/s390x/Makefile.target             |  8 ++++
tests/tcg/s390x/br-odd.S                    | 16 +++++++
tests/tcg/s390x/cgrl-unaligned.S            | 16 +++++++
tests/tcg/s390x/clrl-unaligned.S            | 16 +++++++
tests/tcg/s390x/crl-unaligned.S             | 16 +++++++
tests/tcg/s390x/ex-odd.S                    | 17 ++++++++
tests/tcg/s390x/lgrl-unaligned.S            | 16 +++++++
tests/tcg/s390x/llgfrl-unaligned.S          | 16 +++++++
tests/tcg/s390x/lpswe-unaligned.S           | 18 ++++++++
tests/tcg/s390x/lrl-unaligned.S             | 16 +++++++
tests/tcg/s390x/pgm-specification-softmmu.S | 40 ++++++++++++++++++
tests/tcg/s390x/pgm-specification-user.c    | 37 +++++++++++++++++
tests/tcg/s390x/pgm-specification.mak       | 15 +++++++
tests/tcg/s390x/softmmu.ld                  | 20 +++++++++
tests/tcg/s390x/stgrl-unaligned.S           | 16 +++++++
tests/tcg/s390x/strl-unaligned.S            | 16 +++++++
22 files changed, 371 insertions(+), 38 deletions(-)
create mode 100644 tests/tcg/s390x/br-odd.S
create mode 100644 tests/tcg/s390x/cgrl-unaligned.S
create mode 100644 tests/tcg/s390x/clrl-unaligned.S
create mode 100644 tests/tcg/s390x/crl-unaligned.S
create mode 100644 tests/tcg/s390x/ex-odd.S
create mode 100644 tests/tcg/s390x/lgrl-unaligned.S
create mode 100644 tests/tcg/s390x/llgfrl-unaligned.S
create mode 100644 tests/tcg/s390x/lpswe-unaligned.S
create mode 100644 tests/tcg/s390x/lrl-unaligned.S
create mode 100644 tests/tcg/s390x/pgm-specification-softmmu.S
create mode 100644 tests/tcg/s390x/pgm-specification-user.c
create mode 100644 tests/tcg/s390x/pgm-specification.mak
create mode 100644 tests/tcg/s390x/softmmu.ld
create mode 100644 tests/tcg/s390x/stgrl-unaligned.S
create mode 100644 tests/tcg/s390x/strl-unaligned.S
[PATCH v4 00/12] target/s390x: Handle unaligned accesses
Posted by Ilya Leoshkevich 1 year, 1 month ago
v3: https://lists.gnu.org/archive/html/qemu-devel/2023-03/msg04687.html
v3 -> v4: Get rid of the preprocessor magic in the new tests (Thomas).

v2: https://lists.gnu.org/archive/html/qemu-devel/2023-03/msg04231.html
v2 -> v3: Fix clang build (Thomas).

v1: https://lists.gnu.org/archive/html/qemu-devel/2023-03/msg03821.html
v1 -> v2: Use MO_ALIGN (Richard).

Patches that need review:
- [PATCH 12/12] tests/tcg/s390x: Test unaligned accesses

Hi,

This series makes accessing unaligned addresses with branching, LPSWE,
EXECUTE and relative long instructions fail with a specification
exception instead of succeeding.

Patches 1-10 are fixes, patch 11 adjusts a comment to reflect a change
done by fixes, patch 12 adds a number of softmmu and user tests.

Best regards,
Ilya

Ilya Leoshkevich (12):
  target/s390x: Handle branching to odd addresses
  target/s390x: Handle EXECUTE of odd addresses
  target/s390x: Handle LGRL from non-aligned addresses
  target/s390x: Handle LRL and LGFRL from non-aligned addresses
  target/s390x: Handle LLGFRL from non-aligned addresses
  target/s390x: Handle CRL and CGFRL with non-aligned addresses
  target/s390x: Handle CGRL and CLGRL with non-aligned addresses
  target/s390x: Handle CLRL and CLGFRL with non-aligned addresses
  target/s390x: Handle STRL to non-aligned addresses
  target/s390x: Handle STGRL to non-aligned addresses
  target/s390x: Update do_unaligned_access() comment
  tests/tcg/s390x: Test unaligned accesses

 target/s390x/cpu.h                          |  9 ++++
 target/s390x/tcg/excp_helper.c              |  4 +-
 target/s390x/tcg/insn-data.h.inc            | 46 ++++++++++-----------
 target/s390x/tcg/mem_helper.c               | 12 +++++-
 target/s390x/tcg/translate.c                | 24 +++++++----
 tests/tcg/s390x/Makefile.softmmu-target     | 15 +++++--
 tests/tcg/s390x/Makefile.target             |  8 ++++
 tests/tcg/s390x/br-odd.S                    | 16 +++++++
 tests/tcg/s390x/cgrl-unaligned.S            | 16 +++++++
 tests/tcg/s390x/clrl-unaligned.S            | 16 +++++++
 tests/tcg/s390x/crl-unaligned.S             | 16 +++++++
 tests/tcg/s390x/ex-odd.S                    | 17 ++++++++
 tests/tcg/s390x/lgrl-unaligned.S            | 16 +++++++
 tests/tcg/s390x/llgfrl-unaligned.S          | 16 +++++++
 tests/tcg/s390x/lpswe-unaligned.S           | 18 ++++++++
 tests/tcg/s390x/lrl-unaligned.S             | 16 +++++++
 tests/tcg/s390x/pgm-specification-softmmu.S | 40 ++++++++++++++++++
 tests/tcg/s390x/pgm-specification-user.c    | 37 +++++++++++++++++
 tests/tcg/s390x/pgm-specification.mak       | 15 +++++++
 tests/tcg/s390x/softmmu.ld                  | 20 +++++++++
 tests/tcg/s390x/stgrl-unaligned.S           | 16 +++++++
 tests/tcg/s390x/strl-unaligned.S            | 16 +++++++
 22 files changed, 371 insertions(+), 38 deletions(-)
 create mode 100644 tests/tcg/s390x/br-odd.S
 create mode 100644 tests/tcg/s390x/cgrl-unaligned.S
 create mode 100644 tests/tcg/s390x/clrl-unaligned.S
 create mode 100644 tests/tcg/s390x/crl-unaligned.S
 create mode 100644 tests/tcg/s390x/ex-odd.S
 create mode 100644 tests/tcg/s390x/lgrl-unaligned.S
 create mode 100644 tests/tcg/s390x/llgfrl-unaligned.S
 create mode 100644 tests/tcg/s390x/lpswe-unaligned.S
 create mode 100644 tests/tcg/s390x/lrl-unaligned.S
 create mode 100644 tests/tcg/s390x/pgm-specification-softmmu.S
 create mode 100644 tests/tcg/s390x/pgm-specification-user.c
 create mode 100644 tests/tcg/s390x/pgm-specification.mak
 create mode 100644 tests/tcg/s390x/softmmu.ld
 create mode 100644 tests/tcg/s390x/stgrl-unaligned.S
 create mode 100644 tests/tcg/s390x/strl-unaligned.S

-- 
2.39.2