]> git.sur5r.net Git - cc65/commitdiff
decspX will no longer save a
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 24 Mar 2001 15:57:32 +0000 (15:57 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 24 Mar 2001 15:57:32 +0000 (15:57 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@662 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/common/strdup.s
libsrc/runtime/lpush.s

index fa2d289c4e9e4c91b0395eb34a3e3ea1f81bd2c8..ed49ba485c2ec4532b36c4f8320a642e5e3abaa1 100644 (file)
@@ -18,18 +18,22 @@ _strdup:
 ; Since we need some place to store the intermediate results, allocate a
 ; stack frame. To make this somewhat more efficient, create the stackframe
 ; as needed for the final call to the memcpy function.
-
+               
+       pha                     ; decsp will destroy A (but not X)
        jsr     decsp4          ; Target/source
 
 ; Store the pointer into the source slot
 
-       ldy     #0
-       sta     (sp),y
-       iny
-       pha
+       ldy     #1
        txa
        sta     (sp),y
-       pla
+       pla           
+.ifpc02
+       sta     (sp)
+.else
+               dey
+               sta     (sp),y
+.endif
 
 ; Get length of S (which is still in a/x)
 
index 7724f499b756f05f94f35b47bbc5c9e0a653190b..6b7312a4aac33ff3e36291cfb16725ce5b6f92bb 100644 (file)
@@ -16,19 +16,19 @@ push0ax:
        sty     sreg
        sty     sreg+1
 pusheax:
+       pha                     ; decsp will destroy A (but not X)
        jsr     decsp4
-       pha
-       ldy     #0
-       sta     (sp),y
-       iny
-       txa
+       ldy     #3
+       lda     sreg+1
        sta     (sp),y
-       iny
+       dey
        lda     sreg
        sta     (sp),y
-       iny
-       lda     sreg+1
+       dey
+       txa
        sta     (sp),y
+       dey
        pla
+       sta     (sp),y
        rts