Added additional entry points that clear the high word of the right operand.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4023 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
; CC65 runtime: long add
|
; CC65 runtime: long add
|
||||||
;
|
;
|
||||||
|
|
||||||
.export tosaddeax
|
.export tosadd0ax, tosaddeax
|
||||||
.import addysp1
|
.import addysp1
|
||||||
.importzp sp, sreg, tmp1
|
.importzp sp, sreg, tmp1
|
||||||
|
|
||||||
@@ -12,6 +12,11 @@
|
|||||||
|
|
||||||
; EAX = TOS + EAX
|
; EAX = TOS + EAX
|
||||||
|
|
||||||
|
tosadd0ax:
|
||||||
|
ldy #$00
|
||||||
|
sty sreg
|
||||||
|
sty sreg+1
|
||||||
|
|
||||||
tosaddeax:
|
tosaddeax:
|
||||||
clc
|
clc
|
||||||
.if (.cpu .bitand CPU_ISET_65SC02)
|
.if (.cpu .bitand CPU_ISET_65SC02)
|
||||||
|
|||||||
@@ -7,9 +7,14 @@
|
|||||||
; When negating values, we will ignore the possibility here, that one of the
|
; When negating values, we will ignore the possibility here, that one of the
|
||||||
; values if $80000000, in which case the negate will fail.
|
; values if $80000000, in which case the negate will fail.
|
||||||
|
|
||||||
.export tosdiveax
|
.export tosdiv0ax, tosdiveax
|
||||||
.import poplsargs, udiv32, negeax
|
.import poplsargs, udiv32, negeax
|
||||||
.importzp ptr1, tmp1, tmp2
|
.importzp sreg, ptr1, tmp1, tmp2
|
||||||
|
|
||||||
|
tosdiv0ax:
|
||||||
|
ldy #$00
|
||||||
|
sty sreg
|
||||||
|
sty sreg+1
|
||||||
|
|
||||||
tosdiveax:
|
tosdiveax:
|
||||||
jsr poplsargs ; Get arguments from stack, adjust sign
|
jsr poplsargs ; Get arguments from stack, adjust sign
|
||||||
|
|||||||
@@ -7,11 +7,16 @@
|
|||||||
; When negating values, we will ignore the possibility here, that one of the
|
; When negating values, we will ignore the possibility here, that one of the
|
||||||
; values if $8000, in which case the negate will fail.
|
; values if $8000, in which case the negate will fail.
|
||||||
|
|
||||||
.export tosmodeax
|
.export tosmod0ax, tosmodeax
|
||||||
.import poplsargs, udiv32, negeax
|
.import poplsargs, udiv32, negeax
|
||||||
.importzp sreg, ptr1, ptr2, tmp1, tmp3, tmp4
|
.importzp sreg, ptr1, ptr2, tmp1, tmp3, tmp4
|
||||||
|
|
||||||
tosmodeax:
|
tosmod0ax:
|
||||||
|
ldy #$00
|
||||||
|
sty sreg
|
||||||
|
sty sreg+1
|
||||||
|
|
||||||
|
tosmodeax:
|
||||||
jsr poplsargs ; Get arguments from stack, adjust sign
|
jsr poplsargs ; Get arguments from stack, adjust sign
|
||||||
jsr udiv32 ; Do the division, remainder is in (ptr2:tmp3:tmp4)
|
jsr udiv32 ; Do the division, remainder is in (ptr2:tmp3:tmp4)
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,16 @@
|
|||||||
; CC65 runtime: multiplication for long (unsigned) ints
|
; CC65 runtime: multiplication for long (unsigned) ints
|
||||||
;
|
;
|
||||||
|
|
||||||
.export tosumuleax, tosmuleax
|
.export tosumul0ax, tosumuleax, tosmul0ax, tosmuleax
|
||||||
.import addysp1
|
.import addysp1
|
||||||
.importzp sp, sreg, tmp1, tmp2, tmp3, tmp4, ptr1, ptr3, ptr4
|
.importzp sp, sreg, tmp1, tmp2, tmp3, tmp4, ptr1, ptr3, ptr4
|
||||||
|
|
||||||
|
tosmul0ax:
|
||||||
|
tosumul0ax:
|
||||||
|
ldy #$00
|
||||||
|
sty sreg
|
||||||
|
sty sreg+1
|
||||||
|
|
||||||
tosmuleax:
|
tosmuleax:
|
||||||
tosumuleax:
|
tosumuleax:
|
||||||
mul32: sta ptr1
|
mul32: sta ptr1
|
||||||
|
|||||||
@@ -7,12 +7,17 @@
|
|||||||
;
|
;
|
||||||
; EAX = TOS - EAX
|
; EAX = TOS - EAX
|
||||||
;
|
;
|
||||||
.export tossubeax
|
.export tossub0ax, tossubeax
|
||||||
.import addysp1
|
.import addysp1
|
||||||
.importzp sp, sreg
|
.importzp sp, sreg
|
||||||
|
|
||||||
.macpack cpu
|
.macpack cpu
|
||||||
|
|
||||||
|
tossub0ax:
|
||||||
|
ldy #$00
|
||||||
|
sty sreg
|
||||||
|
sty sreg+1
|
||||||
|
|
||||||
tossubeax:
|
tossubeax:
|
||||||
sec
|
sec
|
||||||
eor #$FF
|
eor #$FF
|
||||||
|
|||||||
@@ -4,10 +4,15 @@
|
|||||||
; CC65 runtime: modulo operation for long unsigned ints
|
; CC65 runtime: modulo operation for long unsigned ints
|
||||||
;
|
;
|
||||||
|
|
||||||
.export tosumodeax
|
.export tosumod0ax, tosumodeax
|
||||||
.import getlop, udiv32
|
.import getlop, udiv32
|
||||||
.importzp sreg, tmp3, tmp4, ptr2
|
.importzp sreg, tmp3, tmp4, ptr2
|
||||||
|
|
||||||
|
tosumod0ax:
|
||||||
|
ldy #$00
|
||||||
|
sty sreg
|
||||||
|
sty sreg+1
|
||||||
|
|
||||||
tosumodeax:
|
tosumodeax:
|
||||||
jsr getlop ; Get the paramameters
|
jsr getlop ; Get the paramameters
|
||||||
jsr udiv32 ; Do the division
|
jsr udiv32 ; Do the division
|
||||||
|
|||||||
Reference in New Issue
Block a user