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:
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 )