diff options
Diffstat (limited to 'libsframe/testsuite/libsframe.stacktrace/libsframest/sframe-stacktrace-regs.h')
-rw-r--r-- | libsframe/testsuite/libsframe.stacktrace/libsframest/sframe-stacktrace-regs.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/libsframe/testsuite/libsframe.stacktrace/libsframest/sframe-stacktrace-regs.h b/libsframe/testsuite/libsframe.stacktrace/libsframest/sframe-stacktrace-regs.h index 88da50b..ca68918 100644 --- a/libsframe/testsuite/libsframe.stacktrace/libsframest/sframe-stacktrace-regs.h +++ b/libsframe/testsuite/libsframe.stacktrace/libsframest/sframe-stacktrace-regs.h @@ -77,6 +77,33 @@ get_context_ra (ucontext_t *cp) return cp->uc_mcontext.regs[UNWIND_AARCH64_X30]; } +#elif defined (__s390x__) + +static inline uint64_t +get_context_pc (ucontext_t *cp) +{ +// return cp->uc_mcontext.psw.addr; + return cp->uc_mcontext.gregs[14]; +} + +static inline uint64_t +get_context_rsp (ucontext_t *cp) +{ + return cp->uc_mcontext.gregs[15]; +} + +static inline uint64_t +get_context_rfp (ucontext_t *cp) +{ + return cp->uc_mcontext.gregs[11]; +} + +static inline uint64_t +get_context_ra (ucontext_t *cp) +{ + return cp->uc_mcontext.gregs[14]; +} + #endif #endif /* SFRAME_STACKTRACE_REGS_H. */ |