diff options
author | Christopher Faylor <cgf@redhat.com> | 2000-02-17 19:39:46 +0000 |
---|---|---|
committer | Christopher Faylor <cgf@redhat.com> | 2000-02-17 19:39:46 +0000 |
commit | 6d491d8ad9122891d1a48447e8c49702eb678921 (patch) | |
tree | 45619a131b9f211ceca9fce7a866328344bf00ec /newlib/libc/machine/z8k/setjmp.S | |
parent | bd592806f45307757c24ec3f75bdefe13abfd51f (diff) | |
download | gdb-cvs/SNAPSHOT.tar.gz |
import newlib-2000-02-17 snapshotcvs/SNAPSHOT
Diffstat (limited to 'newlib/libc/machine/z8k/setjmp.S')
-rw-r--r-- | newlib/libc/machine/z8k/setjmp.S | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/newlib/libc/machine/z8k/setjmp.S b/newlib/libc/machine/z8k/setjmp.S new file mode 100644 index 00000000000..6a7664112a8 --- /dev/null +++ b/newlib/libc/machine/z8k/setjmp.S @@ -0,0 +1,49 @@ + +#ifdef __Z8001__ + segm + + .global _setjmp +_setjmp: + ldl rr2,@rr14 ! fetch pc + ldl @rr6,rr2 ! save it + ldl rr6(4),rr10 + ldl rr6(8),rr12 ! and the other special regs + ldl rr6(12),rr14 + ldk r2,#0 + ret t + + .globl _longjmp + +_longjmp: + ld r2,r5 ! get return value + ldl rr4,rr6(0) + ldl rr10,rr6(4) + ldl rr12,rr6(8) + ldl rr14,rr6(12) + jp @rr4 +#else + unseg + + .global _setjmp +_setjmp: + ld r2,@r15 ! fetch pc + ld @r7,r2 ! save it + ldl r7(4),rr10 + ldl r7(8),rr12 ! and the other special regs + ldl r7(12),rr14 + ldk r2,#0 + ret t + + .globl _longjmp + +_longjmp: + ld r2,r6 ! get return value + ld r4,@r7 + ldl rr10,rr7(4) + ldl rr12,rr7(8) + ldl rr14,rr7(12) + jp @rr4 + +#endif + + |