summaryrefslogtreecommitdiff
path: root/SCM/setjump.mar
diff options
context:
space:
mode:
Diffstat (limited to 'SCM/setjump.mar')
-rw-r--r--SCM/setjump.mar39
1 files changed, 0 insertions, 39 deletions
diff --git a/SCM/setjump.mar b/SCM/setjump.mar
deleted file mode 100644
index 3fc223c..0000000
--- a/SCM/setjump.mar
+++ /dev/null
@@ -1,39 +0,0 @@
- .title setjump and longjump
-
-; The VAX C runtime library uses the $unwind utility for
-; implementing longjmp. That fails if your program does not
-; follow normal stack decipline. This is a dirty implementation
-; of setjmp and longjmp that does not have that problem. The
-; names longjmp and setjmp are avoided so that the code can be
-; linked with the vax c runtime library without name clashes.
-
-; This code was contributed by an anonymous reviewer from
-; comp.sources.reviewed.
-
- .entry setjump,^M<IV>
- movl 4(ap),r0
- movq r2,(r0)+
- movq r4,(r0)+
- movq r6,(r0)+
- movq r8,(r0)+
- movq r10,(r0)+
- movl fp,(r0)+
- movo 4(fp),(r0)+
- movq 20(fp),(r0)
- clrl r0
- ret
-
- .entry longjump,^M<IV>
- movl 4(ap),r0
- movq (r0)+,r2
- movq (r0)+,r4
- movq (r0)+,r6
- movq (r0)+,r8
- movq (r0)+,r10
- movl (r0)+,r1
- movo (r0)+,4(r1)
- movq (r0),20(r1)
- movl 8(ap),r0
- movl r1,fp
- ret
- .end