]> git.sur5r.net Git - cc65/blobdiff - libsrc/runtime/lpush.s
few 6502 and some 65SC02 optimizations
[cc65] / libsrc / runtime / lpush.s
index 074b4320aee1a5bbeee5924e9eef25043c207584..4fed77f05bf590047b15ee27c71231c1e67d6b7a 100644 (file)
@@ -1,5 +1,6 @@
 ;
 ; Ullrich von Bassewitz, 06.08.1998
+; Christian Krueger, 11-Mar-2017, added 65SC02 optimization
 ;
 ; CC65 runtime: long push
 ;
         .import         decsp4
         .importzp       sp, sreg
 
+        .macpack        cpu
+
 pushl0:
         lda     #0
         tax
 push0ax:
-        ldy     #0
+.if (.cpu .bitand ::CPU_ISET_65SC02)
+        stz     sreg
+        stz     sreg+1
+.else
+        ldy     #$00
         sty     sreg
         sty     sreg+1
+.endif
 pusheax:
         pha                     ; decsp will destroy A (but not X)
         jsr     decsp4
@@ -30,8 +38,12 @@ pusheax:
         dey
         txa
         sta     (sp),y
-        dey
         pla
+.if (.cpu .bitand ::CPU_ISET_65SC02)
+        sta     (sp)
+.else        
+        dey
         sta     (sp),y
+.endif        
         rts