Optimized rel resolver

This commit is contained in:
Devine Lu Linvega 2024-08-08 11:15:54 -07:00
parent 26bb0fd535
commit 1b91f4493c
1 changed files with 5 additions and 11 deletions

View File

@ -222,8 +222,9 @@
( ) DUP .Ref/abs-byte NEQ ?{ STH2kr resolve-abs STA ( ) DUP .Ref/abs-byte NEQ ?{ STH2kr resolve-abs STA
POP } POP }
( ) DUP .Ref/abs-short NEQ ?{ STH2kr resolve-abs STA2 } ( ) DUP .Ref/abs-short NEQ ?{ STH2kr resolve-abs STA2 }
( ) DUP .Ref/rel-byte NEQ ?{ STH2kr resolve-rel-byte } ( ) DUP .Ref/rel-byte NEQ ?{ STH2kr resolve-rel STA
( ) DUP .Ref/rel-short NEQ ?{ STH2kr resolve-rel-short } POP }
( ) DUP .Ref/rel-short NEQ ?{ STH2kr resolve-rel STA2 }
POP POP2r POP POP2r
( ) #0005 ADD2 GTH2k ?&>l ( ) #0005 ADD2 GTH2k ?&>l
POP2 POP2 JMP2r POP2 POP2 JMP2r
@ -232,16 +233,9 @@
( value* ) INC2k INC2 LDA2 LDA2 ( value* ) INC2k INC2 LDA2 LDA2
( addr* ) SWP2 LDA2 ;Rom/mem ADD2 JMP2r ( addr* ) SWP2 LDA2 ;Rom/mem ADD2 JMP2r
@resolve-rel-byte ( ref* -- ) @resolve-rel ( ref* -- value* addr* )
( | catch distance overflow )
( value ) INC2k INC2 LDA2 LDA2 OVR2 LDA2 INC2 INC2 SUB2
( addr* ) SWP2 LDA2 ;Rom/mem ADD2 STA
POP JMP2r
@resolve-rel-short ( ref* -- )
( value* ) INC2k INC2 LDA2 LDA2 OVR2 LDA2 INC2 INC2 SUB2 ( value* ) INC2k INC2 LDA2 LDA2 OVR2 LDA2 INC2 INC2 SUB2
( addr* ) SWP2 LDA2 ;Rom/mem ADD2 STA2 ( addr* ) SWP2 LDA2 ;Rom/mem ADD2 JMP2r
JMP2r
@get-abs-byte ( label* -- addr ) @get-abs-byte ( label* -- addr )
.Ref/abs-byte ;get-ref/type STA .Ref/abs-byte ;get-ref/type STA