summaryrefslogtreecommitdiffstats
path: root/runtime/regs.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/regs.h')
-rw-r--r--runtime/regs.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/runtime/regs.h b/runtime/regs.h
index 0e759d1d..48487c4d 100644
--- a/runtime/regs.h
+++ b/runtime/regs.h
@@ -32,6 +32,15 @@
#define REG_SP(regs) regs->gpr[1]
#define REG_LINK(regs) regs->link
+#elif defined (__s390__) || defined (__s390x__)
+#ifndef __s390x__
+#define PSW_ADDR_AMODE 0x80000000UL
+#else /* __s390x__ */
+#define PSW_ADDR_AMODE 0x0000000000000000UL
+#endif /* __s390x__ */
+#define REG_IP(regs) ((regs)->psw.addr) | PSW_ADDR_AMODE
+#define REG_SP(regs) (regs)->gprs[15]
+
#else
#error "Unimplemented architecture"
#endif