aboutsummaryrefslogtreecommitdiff
path: root/libsframe/testsuite/libsframe.stacktrace/libsframest/sframe-stacktrace-regs.h
diff options
context:
space:
mode:
Diffstat (limited to 'libsframe/testsuite/libsframe.stacktrace/libsframest/sframe-stacktrace-regs.h')
-rw-r--r--libsframe/testsuite/libsframe.stacktrace/libsframest/sframe-stacktrace-regs.h27
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. */