rewrite part of the byte addressing code in assembly (saves 11 cells, faster)

FossilOrigin-Name: 72218f52afcd1a0afdd0db6dfa11be82d3853ffd8e85be31299ab7eadf8785a2
This commit is contained in:
crc 2023-12-15 12:35:17 +00:00
parent 484c034d94
commit c78b58ca43
3 changed files with 994 additions and 992 deletions

View file

@ -78,7 +78,7 @@ observations:
The basic sigils are:
| sigil | used for |
| sigil | used for |
| ------ | ---------------------- |
| : | starting a definition |
| & | obtaining pointers |
@ -658,16 +658,18 @@ hidden), so use `v:preserve` if you need reentrancy.
---reveal---
:b:to-byte-address (a-a) #4 * ;
:b:to-byte-address (a-a) \limu.... `4 ;
:b:fetch (a-b)
#4 /mod swap
#4 /mod
rot + fetch swap byte-mask ;
\lidisw.. `4
\lidilica `4 ^rot
\adfesw..
byte-mask ;
:b:store (ba-)
swap !Byte
#4 /mod swap [ dup fetch unpack ] dip
\swlist.. ^Byte
\lidisw.. `4
[ \dufelica ^unpack ] dip
replace pack swap store ;
}}
~~~

BIN
ngaImage

Binary file not shown.

File diff suppressed because it is too large Load diff