Small optimizations related to 8/16-bit register switching.

This commit is contained in:
Stephen Heumann 2024-03-22 21:10:33 -05:00
parent 0e519e1e58
commit d9e26d4467
2 changed files with 26 additions and 28 deletions

View File

@ -107,9 +107,8 @@ lb2 asl A get the signal handler address
tay tay
lda >subABRT-2,X lda >subABRT-2,X
bmi lb3 skip if it is SIG_DFL or SIG_IGN bmi lb3 skip if it is SIG_DFL or SIG_IGN
short M set up the call address xba set up the call address
sta >jsl+3 sta >jsl+2
long M
tya tya
sta >jsl+1 sta >jsl+1
ph2 <sig call the user signal handler ph2 <sig call the user signal handler

View File

@ -253,9 +253,9 @@ lb4 blt less memory differs - set the result
less ldx #-1 less ldx #-1
lb5 long M lb5 lda rtl remove the parameters from the stack
lda rtl remove the parameters from the stack
sta len+1 sta len+1
long M
lda rtl+1 lda rtl+1
sta len+2 sta len+2
pld pld
@ -436,11 +436,11 @@ lb10 lda [p2],Y
dex dex
bne lb9 bne lb9
lb11 long M lb11 ply get the original source pointer
ply get the original source pointer
plx plx
lda rtl remove the parameters from the stack lda rtl remove the parameters from the stack
sta len+1 sta len+1
long M
lda rtl+1 lda rtl+1
sta len+2 sta len+2
pld pld
@ -629,9 +629,9 @@ lb3 lda [s2],Y
inc s2+2 inc s2+2
bra lb3 bra lb3
lb4 long M return to the caller lb4 lda rtl return to the caller
lda rtl
sta s2+1 sta s2+1
long M
lda rtl+1 lda rtl+1
sta s2+2 sta s2+2
ldx rval+2 ldx rval+2
@ -751,9 +751,9 @@ less ldx #-1 It wasn't, so *s1 < *s2
lb3 blt less the strings differ - set the result lb3 blt less the strings differ - set the result
ldx #1 ldx #1
lb4 long M lb4 lda rtl remove the parameters from the stack
lda rtl remove the parameters from the stack
sta s2+1 sta s2+1
long M
lda rtl+1 lda rtl+1
sta s2+2 sta s2+2
pld pld
@ -830,9 +830,9 @@ lb1 lda [s2],Y
inc s2+2 inc s2+2
bra lb1 bra lb1
lb2 long M return to the caller lb2 lda rtl return to the caller
lda rtl
sta s2+1 sta s2+1
long M
lda rtl+1 lda rtl+1
sta s2+2 sta s2+2
ldx rval+2 ldx rval+2
@ -971,10 +971,10 @@ lb1 lda [str],Y
inc str+2 inc str+2
bra lb1 bra lb1
lb2 long M lb2 pld remove str from the stack
pld remove str from the stack lda 3,S
lda 2,S sta 7,S
sta 6,S long M
pla pla
sta 3,S sta 3,S
pla pla
@ -1203,14 +1203,13 @@ lb1 lda [s],Y
short M short M
bra lb1 bra lb1
lb2 long I,M no match found -> return NULL lb2 ldx #0 no match found -> return NULL
ldx #0
txy txy
long I,M
bra lb4 bra lb4
lb3 long I,M increment s by Y and load the value lb3 long I,M increment s by Y and load the value
tya tya
and #$00FF
clc clc
adc s adc s
tay tay
@ -1266,10 +1265,10 @@ lb1 lda [str],Y
lb2 ldy #-1 no match found -> return -1 lb2 ldy #-1 no match found -> return -1
lb3 long M lb3 pld remove parameters from the stack
pld remove parameters from the stack lda 3,S
lda 2,S sta 9,S
sta 8,S long M
pla pla
sta 5,S sta 5,S
pla pla
@ -1377,10 +1376,10 @@ lb2 cmp #0
iny iny
bpl lb1 bpl lb1
lb3 long M lb3 pld remove parameters from the stack
pld remove parameters from the stack lda 3,S
lda 2,S sta 9,S
sta 8,S long M
pla pla
sta 5,S sta 5,S
pla pla