From 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 Mon Sep 17 00:00:00 2001 From: Joe Hunkeler Date: Tue, 11 Aug 2015 16:51:37 -0400 Subject: Repatch (from linux) of OSX IRAF --- unix/as.macintel/zz_zsvjmp.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 unix/as.macintel/zz_zsvjmp.c (limited to 'unix/as.macintel/zz_zsvjmp.c') diff --git a/unix/as.macintel/zz_zsvjmp.c b/unix/as.macintel/zz_zsvjmp.c new file mode 100644 index 00000000..a417f039 --- /dev/null +++ b/unix/as.macintel/zz_zsvjmp.c @@ -0,0 +1,17 @@ +#include + +/* Compile with gcc -S to get demo assembler code. In the actual ZSVJMP we + * need to execute basically these three lines of code but in the context of + * the routine calling the zsvjmp, so the stack needs to be adjusted + * accordingly (i.e. the assembler from this code WILL NOT work since the + * ZDOJMP will return here, and not the parent routine). + */ + +zsvjmp_(buf,status) +int *buf; +int *status; +{ + *status = 0; + buf[0] = *status; + setjmp (&buf[1]); +} -- cgit