summaryrefslogtreecommitdiffstats
path: root/signal.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-08-06 07:51:54 -0700
committerKaz Kylheku <kaz@kylheku.com>2016-08-06 07:51:54 -0700
commit7d5fc582b3d811662ca0ff45157f596db2f8dc1a (patch)
tree4f9e33215f2e3b95267fa1beda6286dcb66e6f71 /signal.h
parent51c8f5575d6d95537a9eb112c8be6838a7f89e49 (diff)
downloadtxr-7d5fc582b3d811662ca0ff45157f596db2f8dc1a.tar.gz
txr-7d5fc582b3d811662ca0ff45157f596db2f8dc1a.tar.bz2
txr-7d5fc582b3d811662ca0ff45157f596db2f8dc1a.zip
Port exception handling to 64 bit Cygwin.
* jmp.S (DEFUN): Separate definition for 64 bit Cygwin, which doesn't use leading underscores and has an unusual prologue. (jmp_save, jmp_restore): Separately defined for 64 bit Cygwin, due to use of Microsoft 64 bit calling conventions. * signal.h (struct jmp): In x86-64 version, only on Cygwin, new members: rsi and rdi. These registers are considered nonvolatile and so are saved and restored by jmp_save and jmp_restore.
Diffstat (limited to 'signal.h')
-rw-r--r--signal.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/signal.h b/signal.h
index e54a6c43..73ca1e24 100644
--- a/signal.h
+++ b/signal.h
@@ -62,6 +62,10 @@ struct jmp {
unsigned long r13;
unsigned long r14;
unsigned long r15;
+#if __CYGWIN__
+ unsigned long rsi;
+ unsigned long rdi;
+#endif
};
#elif __arm__ && !__thumb__