@@ 2,7 2,7 @@ hex
\ registers for stack
vhere vlabel regs
-rax v,1 rbx v,1 rcx v,1 rdi v,1 r8 v,1 r9 v,1 r10 v,1
+rax v,1 rcx v,1 rdi v,1 r8 v,1 r9 v,1 r10 v,1
r11 v,1 r12 v,1 r13 v,1 r14 v,1 r15 v,1
vhere vlabel regs-end
@@ 34,7 34,7 @@ fregs-end
( no free reg found todo: error msg ) ;
-\ the stack
+\ the stack, 8 bytes, so can be treated as int64
8 buffer xstack
: x.s xstack @ . \n xstack dup 8 + dump ;
@@ 46,8 46,11 @@ s0
0 var
s1
-: grow xstack @8 100 * xstack !8 ;
-: shrink xstack @8 100 / xstack !8 ;
+: x@ xstack @8 ;
+: x! xstack !8 ;
+
+: grow x@ 100 * x! ;
+: shrink x@ 100 / x! ;
: tos xstack @1 ;
: nos xstack @2 100 / ;
@@ 63,10 66,10 @@ s1
-: xswap xstack @8 dup rpush
+: xswap x@ dup rpush
ffffffffffff0000 and
r ff and 100 * or rpop
- ff00 and 100 / or xstack !8 ;
+ ff00 and 100 / or x! ;
: xnip xswap xdrop ;