rewrite part of the byte addressing code in assembly (saves 11 cells, faster)
FossilOrigin-Name: 72218f52afcd1a0afdd0db6dfa11be82d3853ffd8e85be31299ab7eadf8785a2
This commit is contained in:
parent
484c034d94
commit
c78b58ca43
3 changed files with 994 additions and 992 deletions
|
@ -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
BIN
ngaImage
Binary file not shown.
1970
vm/nga-c/image.c
1970
vm/nga-c/image.c
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue