mirror of
https://github.com/KarolS/millfork.git
synced 2024-10-03 20:55:36 +00:00
Optimize the zp_reg module
This commit is contained in:
parent
95249da671
commit
7f28a6b10f
@ -8,11 +8,11 @@ noinline asm byte __mul_u8u8u8() {
|
|||||||
? JMP __mul_u8u8u8_start
|
? JMP __mul_u8u8u8_start
|
||||||
__mul_u8u8u8_add:
|
__mul_u8u8u8_add:
|
||||||
? CLC
|
? CLC
|
||||||
? ADC __reg.lo
|
? ADC lo(__reg)
|
||||||
__mul_u8u8u8_loop:
|
__mul_u8u8u8_loop:
|
||||||
? ASL __reg.lo
|
? ASL lo(__reg)
|
||||||
__mul_u8u8u8_start:
|
__mul_u8u8u8_start:
|
||||||
? LSR __reg.hi
|
? LSR lo(__reg+1)
|
||||||
? BCS __mul_u8u8u8_add
|
? BCS __mul_u8u8u8_add
|
||||||
? BNE __mul_u8u8u8_loop
|
? BNE __mul_u8u8u8_loop
|
||||||
? RTS
|
? RTS
|
||||||
@ -25,21 +25,21 @@ noinline asm byte __mod_u8u8u8u8() {
|
|||||||
? LDX #7
|
? LDX #7
|
||||||
? CLC
|
? CLC
|
||||||
__divmod_u8u8u8u8_start:
|
__divmod_u8u8u8u8_start:
|
||||||
? ROL __reg
|
? ROL lo(__reg)
|
||||||
? ROL
|
? ROL
|
||||||
? CMP __reg+1
|
? CMP lo(__reg+1)
|
||||||
? BCC __divmod_u8u8u8u8_skip
|
? BCC __divmod_u8u8u8u8_skip
|
||||||
? SBC __reg+1
|
? SBC lo(__reg+1)
|
||||||
__divmod_u8u8u8u8_skip:
|
__divmod_u8u8u8u8_skip:
|
||||||
? DEX
|
? DEX
|
||||||
? BPL __divmod_u8u8u8u8_start
|
? BPL __divmod_u8u8u8u8_start
|
||||||
? ROL __reg
|
? ROL lo(__reg)
|
||||||
? RTS
|
? RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
asm byte __div_u8u8u8u8() {
|
asm byte __div_u8u8u8u8() {
|
||||||
? JSR __mod_u8u8u8u8
|
? JSR __mod_u8u8u8u8
|
||||||
? LDA __reg
|
? LDA lo(__reg)
|
||||||
? RTS
|
? RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,17 +51,17 @@ noinline asm word __mul_u16u8u16() {
|
|||||||
? JMP __mul_u16u8u16_start
|
? JMP __mul_u16u8u16_start
|
||||||
__mul_u16u8u16_add:
|
__mul_u16u8u16_add:
|
||||||
? CLC
|
? CLC
|
||||||
? ADC __reg
|
? ADC lo(__reg)
|
||||||
? TAY
|
? TAY
|
||||||
? TXA
|
? TXA
|
||||||
? ADC __reg + 1
|
? ADC lo(__reg+1)
|
||||||
? TAX
|
? TAX
|
||||||
? TYA
|
? TYA
|
||||||
__mul_u16u8u16_loop:
|
__mul_u16u8u16_loop:
|
||||||
? ASL __reg
|
? ASL lo(__reg)
|
||||||
? ROL __reg + 1
|
? ROL lo(__reg+1)
|
||||||
__mul_u16u8u16_start:
|
__mul_u16u8u16_start:
|
||||||
? LSR __reg + 2
|
? LSR lo(__reg+2)
|
||||||
? BCS __mul_u16u8u16_add
|
? BCS __mul_u16u8u16_add
|
||||||
? BNE __mul_u16u8u16_loop
|
? BNE __mul_u16u8u16_loop
|
||||||
? RTS
|
? RTS
|
||||||
@ -74,24 +74,24 @@ noinline asm byte __mod_u16u8u16u8() {
|
|||||||
? LDX #15
|
? LDX #15
|
||||||
? CLC
|
? CLC
|
||||||
__divmod_u16u8u16u8_start:
|
__divmod_u16u8u16u8_start:
|
||||||
? ROL __reg
|
? ROL lo(__reg)
|
||||||
? ROL __reg+1
|
? ROL lo(__reg+1)
|
||||||
? ROL
|
? ROL
|
||||||
? CMP __reg+2
|
? CMP lo(__reg+2)
|
||||||
? BCC __divmod_u16u8u16u8_skip
|
? BCC __divmod_u16u8u16u8_skip
|
||||||
? SBC __reg+2
|
? SBC lo(__reg+2)
|
||||||
__divmod_u16u8u16u8_skip:
|
__divmod_u16u8u16u8_skip:
|
||||||
? DEX
|
? DEX
|
||||||
? BPL __divmod_u16u8u16u8_start
|
? BPL __divmod_u16u8u16u8_start
|
||||||
? ROL __reg
|
? ROL lo(__reg)
|
||||||
? ROL __reg+1
|
? ROL lo(__reg+1)
|
||||||
? RTS
|
? RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
asm word __div_u16u8u16u8() {
|
asm word __div_u16u8u16u8() {
|
||||||
? JSR __mod_u16u8u16u8
|
? JSR __mod_u16u8u16u8
|
||||||
? LDA __reg
|
? LDA lo(__reg)
|
||||||
? LDX __reg+1
|
? LDX lo(__reg+1)
|
||||||
? RTS
|
? RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user