duskos

dusk os fork
git clone git://git.alexwennerberg.com/duskos
Log | Files | Refs | README | LICENSE

commit a34fd780e9c40b9c1444893ef069de1e567de42c
parent 60b55f40768128f35c55d5c0b18caa3f5de02386
Author: Virgil Dupras <hsoft@hardcoded.net>
Date:   Wed, 15 Jun 2022 06:38:32 -0400

cc: begin using cc/vm in cc/gen

Diffstat:
Mfs/cc/cc.fs | 1+
Mfs/cc/gen.fs | 11+++--------
2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/fs/cc/cc.fs b/fs/cc/cc.fs @@ -4,6 +4,7 @@ f<< lib/str.fs f<< lib/wordtbl.fs f<< lib/xdict.fs f<< asm.fs +f<< cc/vm.fs f<< cc/tok.fs f<< cc/tree.fs f<< cc/ast.fs diff --git a/fs/cc/gen.fs b/fs/cc/gen.fs @@ -91,16 +91,11 @@ ASTIDCNT wordtbl gentbl ( node -- ) dup data1 entry dup data2 ( astfunc mapfunc ) here over fmap.address! \ set address - dup fmap.sfsize swap fmap.argsize - ?dup if \ has SF-args - ebp i32 sub, then + dup fmap.argsize swap fmap.sfsize over - ( argsz locsz ) vmprelude, genchildren _debug if current here current - spit nl> then ; -:w ( Return ) dup genchildren ( node ) - getfuncmap fmap.sfsize ?dup if - ebp i32 add, then - ebp 4 i32 sub, - [ebp] eax mov, - ret, ; +:w ( Return ) genchildren ( node ) + 1 to resultset? vmret, ; :w ( Constant ) eax data1 i32 mov, ; :w ( Statements ) genchildren ; 'w genchildren ( ArgSpecs )