]> git.sur5r.net Git - cc65/commitdiff
Improved longjmp() and setjmp(). 208/head
authorGreg King <gregdk@users.sf.net>
Fri, 11 Sep 2015 18:18:22 +0000 (14:18 -0400)
committerGreg King <gregdk@users.sf.net>
Fri, 11 Sep 2015 18:18:22 +0000 (14:18 -0400)
libsrc/common/longjmp.s
libsrc/common/setjmp.s

index a89f97fa07862b8063442eb4ea6f6c8024a4cc0a..e9bac42e626fea7538ab8f174a4b04aa91af5a09 100644 (file)
@@ -1,7 +1,8 @@
 ;
-; Ullrich von Bassewitz, 06.06.1998
+; 1998-06-06, Ullrich von Bassewitz
+; 2015-09-11, Greg King
 ;
-; void longjmp (jmp_buf buf, int retval);
+; void __fastcall__ longjmp (jmp_buf buf, int retval);
 ;
 
         .export         _longjmp
@@ -13,8 +14,8 @@ _longjmp:
         stx     ptr2+1
         ora     ptr2+1          ; Check for 0
         bne     @L1
-        lda     #1              ; 0 is illegal according to the standard...
-        sta     ptr2            ; ... and must be replaced by 1
+        inc     ptr2            ; 0 is illegal, according to the standard ...
+                                ; ... and, must be replaced by 1
 @L1:    jsr     popax           ; get buf
         sta     ptr1
         stx     ptr1+1
@@ -49,4 +50,3 @@ _longjmp:
         lda     ptr2
         ldx     ptr2+1
         rts
-
index a6448b29f89e47d4e0cecbbefa6920b3cedd1c33..a763ac3ecbdeba6a9e43f250c3ac171d499a866d 100644 (file)
@@ -1,10 +1,13 @@
 ;
-; Ullrich von Bassewitz, 06.06.1998
+; 1998-06-06, Ullrich von Bassewitz
+; 2015-09-11, Greg King
 ;
-; int setjmp (jmp_buf buf);
+; int __fastcall__ setjmp (jmp_buf buf);
 ;
 
         .export         __setjmp
+
+        .import         return0
         .importzp       sp, ptr1
 
 __setjmp:
@@ -44,9 +47,4 @@ __setjmp:
 
 ; Return zero
 
-        lda     #0
-        tax
-        rts
-
-
-  
+        jmp     return0