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