]> git.sur5r.net Git - cc65/blobdiff - libsrc/common/sprintf.s
The spans do now contain the size of a span, no longer the end offset.
[cc65] / libsrc / common / sprintf.s
index 6a1a29c4b6c79bb022674c2171b25d549d42191e..1b196450a842d7d8d08881a5e31f138952ace739 100644 (file)
@@ -5,7 +5,7 @@
 ;
 
        .export         _sprintf
-       .import         pushax, addysp, subysp, _vsprintf
+       .import         pushax, addysp, decsp4, _vsprintf
        .importzp       sp, ptr1
 
        .macpack        generic
@@ -28,13 +28,12 @@ _sprintf:
 
 ; We have to push buf and format, both in the order they already have on stack.
 ; To make this somewhat more efficient, we will create space on the stack and
-; the do a copy of the complete block instead of pushing each parameter
+; then do a copy of the complete block instead of pushing each parameter
 ; separately. Since the size of the arguments passed is the same as the size
 ; of the fixed arguments, this will allow us to calculate the pointer to the
 ; fixed size arguments easier (they're just ParamSize bytes away).
 
-       ldy     #4
-       jsr     subysp
+       jsr     decsp4
 
 ; Calculate a pointer to the Format argument
 
@@ -54,13 +53,12 @@ _sprintf:
        dey
        bpl     @L2
 
-; Push va_list (last parameter to vsprintf)
+; Load va_list (last and __fastcall__ parameter to vsprintf)
 
-       lda     ptr1
-       ldx     ptr1+1
-       jsr     pushax
+       lda     ptr1
+       ldx     ptr1+1
 
-; Call vfprintf
+; Call vsprintf
 
        jsr     _vsprintf