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