This is the mail archive of the newlib@sources.redhat.com mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] fix for z8k setjmp.S


Patch checked in.

-- Jeff J.

Christian Groessler wrote:
Hi,

the following patch fixes setjmp/longjmp for z8001 segmented mode.

regards,
chris


Index: setjmp.S
===================================================================
RCS file: /net/soft/src/CVSdepot/m20newlib/newlib/libc/machine/z8k/setjmp.S,v
retrieving revision 1.1.1.1
retrieving revision 1.3
diff -u -r1.1.1.1 -r1.3
--- setjmp.S 2001/08/16 15:30:34 1.1.1.1
+++ setjmp.S 2002/07/10 23:07:03 1.3
@@ -3,27 +3,62 @@
segm
.global _setjmp
+ .globl _longjmp
+
+#ifdef __STD_CALL__
+
+_setjmp:
+ ldl rr6,rr14(#4) ! get argument
+ ldl rr2,@rr14 ! fetch pc
+ ldl @rr6,rr2 ! save it
+ ldl rr6(#16),rr8
+ ldl rr6(#4),rr10
+ ldl rr6(#8),rr12 ! remember frame pointer
+ ldl rr6(#12),rr14 ! remember stack pointer
+ ldk r7,#0
+ ret t
+
+_longjmp:
+ ldl rr4,rr14(#4) ! get first argument
+ ld r7,rr14(#8) ! get return value
+ ldl rr8,rr4(#16)
+ ldl rr10,rr4(#4)
+ ldl rr12,rr4(#8) ! restore old frame pointer
+ ldl rr14,rr4(#12) ! restore old stack pointer
+ ldl rr4,@rr4 ! return address
+ inc r15,#4
+ jp @rr4
+
+#else /* above __STD_CALL_, below not */
+
_setjmp:
ldl rr2,@rr14 ! fetch pc
ldl @rr6,rr2 ! save it
+ ldl rr6(16),rr8
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 rr8,rr6(16)
ldl rr10,rr6(4)
ldl rr12,rr6(8)
ldl rr14,rr6(12)
+ inc r15,#4
jp @rr4
-#else
+
+#endif /* not __STD_CALL__ */
+#else /* above Z8001, below Z8002 */
unseg
+#ifdef __STD_CALL__
+#warning Z8002 std call not implemented!
+#endif
+
.global _setjmp
_setjmp:
ld r2,@r15 ! fetch pc
@@ -44,6 +79,4 @@
ldl rr14,rr7(12)
jp @rr4

-#endif
-
-
+#endif /* Z8002 version */



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]