mirror of
https://github.com/cc65/cc65.git
synced 2024-12-28 06:30:16 +00:00
35 lines
676 B
ArmAsm
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
|
|
|
|
|