diff options
author | Matthias Benkard <mulk@minimulk.mst-plus> | 2008-09-20 12:11:00 +0200 |
---|---|---|
committer | Matthias Benkard <mulk@minimulk.mst-plus> | 2008-09-20 12:11:00 +0200 |
commit | 784ddf7a6378e2bde5729c37993af65cb58deef2 (patch) | |
tree | f4e06a00422cde7abffbc6be44b50ccf28a89e0f /SCM/setjump.s | |
parent | 0e6969f0a7b7343f02f2be0c35e36f6477505514 (diff) |
Add continuation support files from SCM 5e5.
Diffstat (limited to 'SCM/setjump.s')
-rw-r--r-- | SCM/setjump.s | 40 |
1 files changed, 40 insertions, 0 deletions
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 <rshouman@chpc.utexas.edu> +* + 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: |