diff options
Diffstat (limited to 'SCM/setjump.mar')
-rw-r--r-- | SCM/setjump.mar | 39 |
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 |