]> git.sur5r.net Git - cc65/blobdiff - libsrc/runtime/lrsub.s
few 6502 and some 65SC02 optimizations
[cc65] / libsrc / runtime / lrsub.s
index fd519ca4f742f7cdd61b8312ffec6d69ef9a5dc8..928164f4061c3da0babbf1f32578f1f315d924aa 100644 (file)
@@ -1,5 +1,6 @@
 ;
 ; Ullrich von Bassewitz, 05.08.1998
+; Christian Krueger, 11-Mar-2017, added 65SC02 optimization
 ;
 ; CC65 runtime: long sub reversed
 ;
         .import         addysp1
         .importzp       sp, sreg, tmp1
 
+        .macpack        cpu
+
 tosrsub0ax:
+.if (.cpu .bitand ::CPU_ISET_65SC02)
+        stz     sreg
+        stz     sreg+1
+.else
         ldy     #$00
         sty     sreg
         sty     sreg+1
+.endif
 
-tosrsubeax:                         
-        ldy     #0
+tosrsubeax:
         sec
+.if (.cpu .bitand ::CPU_ISET_65SC02)
+        sbc     (sp)
+        ldy     #1
+.else                         
+        ldy     #0
         sbc     (sp),y          ; byte 0
+        iny
+.endif
         sta     tmp1            ; use as temp storage
         txa
-        iny
         sbc     (sp),y          ; byte 1
         tax
         iny