From 784ddf7a6378e2bde5729c37993af65cb58deef2 Mon Sep 17 00:00:00 2001 From: Matthias Benkard Date: Sat, 20 Sep 2008 12:11:00 +0200 Subject: Add continuation support files from SCM 5e5. --- SCM/setjump.s | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 SCM/setjump.s (limited to 'SCM/setjump.s') diff --git a/SCM/setjump.s b/SCM/setjump.s new file mode 100644 index 0000000..b96fb05 --- /dev/null +++ b/SCM/setjump.s @@ -0,0 +1,40 @@ +* setjmp on the Cray YMP does not save all registers. Although this +* conforms to the ANSI standard, it is not sufficient for SCM garbage +* collection and continuations. +* +* This is a version of setjump for the Cray YMP that does save all non- +* temporary registers. It might work for the XMP. It definitely will +* not work on the Cray 2. I do not know if the setjmp on the Cray 2 will +* work with SCM or not. +* +* This has been tested under Unicos 6.1. +* +* --Radey Shouman +* + IDENT SETJUMP + ENTRY setjump +setjump = * + A1 1,A6 + A2 56 + A0 A1 + ,A0 T00,A2 + A0 A1+A2 + ,A0 B00,A2 + S1 0 + J B00 +* + ENTRY longjump +longjump = * + A1 1,A6 + A0 A1 + A2 56 + T00,A2 ,A0 + A0 A1+A2 + B00,A2 ,A0 + S1 2,A6 + J B00 + END +** Local Variables: +** tab-stop-list: (12 28 45) +** indent-tabs-mode: nil +** End: -- cgit v1.2.3