cc65/libsrc/runtime/mulax7.s

35 lines
676 B
ArmAsm

;
; Piotr Fusik, 24.10.2003
; originally by Ullrich von Bassewitz
;
; CC65 runtime: Multiply the primary register by 7
;
; Don't touch the Y-register here, the optimizer relies on it!
.export mulax7
.importzp ptr1
.proc mulax7
sta ptr1
stx ptr1+1
asl a
rol ptr1+1 ; * 2
asl a
rol ptr1+1 ; * 4
asl a
rol ptr1+1 ; * 8
sec
sbc ptr1
pha
txa
eor #$ff
adc ptr1+1 ; * (8 - 1)
tax
pla
rts
.endproc