Hi Peter!

Here are some patches that add basic support for s390x to RISU.
It's still quite limited, e.g. no support for load/store memory
operations yet, but the basics with simple 16-bit or 32-bit
instructions work *now* already fine.

(I'm also already experimenting in extending RISU to support
instructions with opcodes lengths > 32-bit, but the patches
are not quite ready yet)

v3:
- Use si_addr to get the address of the faulting instruction
  (since the PSW address in the ucontext already points to the
  next instruction)
- Use the kernel header asm/ucontext.h instead the one from the
  glibc since the latter does not provide information about
  vector registers (VRs are not used yet, but will be added later)
- Disable exceptions in the floating point control register so
  we can also test floating point instructions
- Added some more instructions to s390x.risu
- Added RFC patch to compile test aarch64, ppc64le and s390x on
  Travis-CI

v2:
- Removed the code to avoid r14 (return address) and r15 (stack pointer)
  since it is not necessary anymore since commit ad82a069e8d6a
- Initialize the floating point registers in test_s390x.S, too
- Added Acked-bys and Reviewed-bys from v1

Thomas Huth (7):
  Pass siginfo_t->si_addr to the reginfo_init() function
  s390x: Add basic s390x support to the C code
  s390x: Add simple s390x.risu file
  s390x: Add basic risugen perl module for s390x
  s390x: Update the configure script for s390x support
  build-all-archs: Add s390x to the script that builds all architectures
  Add a travis.yml file for testing RISU in the Travis-CI

 .travis.yml                |  37 ++++++++
 build-all-archs            |   3 +-
 configure                  |   4 +-
 risu.c                     |  12 +--
 risu.h                     |   2 +-
 risu_reginfo_aarch64.c     |   2 +-
 risu_reginfo_arm.c         |   2 +-
 risu_reginfo_i386.c        |   2 +-
 risu_reginfo_loongarch64.c |   2 +-
 risu_reginfo_m68k.c        |   2 +-
 risu_reginfo_ppc64.c       |   2 +-
 risu_reginfo_s390x.c       | 140 ++++++++++++++++++++++++++++
 risu_reginfo_s390x.h       |  25 +++++
 risu_s390x.c               |  51 ++++++++++
 risugen_s390x.pm           | 186 +++++++++++++++++++++++++++++++++++++
 s390x.risu                 |  81 ++++++++++++++++
 test_s390x.S               |  53 +++++++++++
 17 files changed, 591 insertions(+), 15 deletions(-)
 create mode 100644 .travis.yml
 create mode 100644 risu_reginfo_s390x.c
 create mode 100644 risu_reginfo_s390x.h
 create mode 100644 risu_s390x.c
 create mode 100644 risugen_s390x.pm
 create mode 100644 s390x.risu
 create mode 100644 test_s390x.S

-- 
2.41.0


Reply via email to