]> git.sur5r.net Git - cc65/blobdiff - libsrc/runtime/lumod.s
Forgot a cast, sorry
[cc65] / libsrc / runtime / lumod.s
index 526db7f101afda4dd6c1056bbec45adc465ba759..241801a90bf15d51a53f0f13340ced5ccd947ee5 100644 (file)
@@ -1,21 +1,34 @@
 ;
 ; Ullrich von Bassewitz, 27.09.1998
+; Christian Krueger, 11-Mar-2017, added 65SC02 optimization
 ;
 ; CC65 runtime: modulo operation for long unsigned ints
 ;
 
-               .export         tosumodeax
-               .import         getlop, udiv32
-               .importzp       sreg, tmp3, tmp4, ptr2
+        .export         tosumod0ax, tosumodeax
+        .import         getlop, udiv32
+        .importzp       sreg, tmp3, tmp4, ptr2
+
+        .macpack        cpu
+
+tosumod0ax:                          
+.if (.cpu .bitand ::CPU_ISET_65SC02)
+        stz     sreg
+        stz     sreg+1
+.else
+        ldy     #$00
+        sty     sreg
+        sty     sreg+1
+.endif
 
 tosumodeax:
-       jsr     getlop          ; Get the paramameters
-       jsr     udiv32          ; Do the division
-       lda     tmp3            ; Remainder is in ptr2:tmp3:tmp4
-       sta     sreg
-       lda     tmp4
-       sta     sreg
-       lda     ptr2
-       ldx     ptr2+1
-       rts
+        jsr     getlop          ; Get the paramameters
+        jsr     udiv32          ; Do the division
+        lda     tmp3            ; Remainder is in ptr2:tmp3:tmp4
+        sta     sreg
+        lda     tmp4
+        sta     sreg+1
+        lda     ptr2
+        ldx     ptr2+1
+        rts