mirror of
https://github.com/remko/waforth
synced 2024-12-27 09:59:29 +01:00
Compile push & pop using global TOS.
This commit is contained in:
parent
7c2bd40293
commit
98dbf19a45
1 changed files with 19 additions and 4 deletions
|
@ -1667,12 +1667,22 @@ EOF
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(func $compilePushConst (param $n i32)
|
(func $compilePushConst (param $n i32)
|
||||||
|
(call $emitGetGlobal (i32.const !tosIndex))
|
||||||
(call $emitConst (get_local $n))
|
(call $emitConst (get_local $n))
|
||||||
(call $emitICall (i32.const 1) (i32.const !pushIndex)))
|
(call $emitStore)
|
||||||
|
(call $emitGetGlobal (i32.const !tosIndex))
|
||||||
|
(call $emitConst (i32.const 4))
|
||||||
|
(call $emitAdd)
|
||||||
|
(call $emitSetGlobal (i32.const !tosIndex)))
|
||||||
|
|
||||||
(func $compilePushLocal (param $n i32)
|
(func $compilePushLocal (param $n i32)
|
||||||
|
(call $emitGetGlobal (i32.const !tosIndex))
|
||||||
(call $emitGetLocal (get_local $n))
|
(call $emitGetLocal (get_local $n))
|
||||||
(call $emitICall (i32.const 1) (i32.const !pushIndex)))
|
(call $emitStore)
|
||||||
|
(call $emitGetGlobal (i32.const !tosIndex))
|
||||||
|
(call $emitConst (i32.const 4))
|
||||||
|
(call $emitAdd)
|
||||||
|
(call $emitSetGlobal (i32.const !tosIndex)))
|
||||||
|
|
||||||
(func $compileIf
|
(func $compileIf
|
||||||
(call $compilePop)
|
(call $compilePop)
|
||||||
|
@ -1798,7 +1808,12 @@ EOF
|
||||||
(set_global $cp (i32.add (get_global $cp) (i32.const 1))))
|
(set_global $cp (i32.add (get_global $cp) (i32.const 1))))
|
||||||
|
|
||||||
(func $compilePop
|
(func $compilePop
|
||||||
(call $emitICall (i32.const 2) (i32.const !popIndex)))
|
(call $emitGetGlobal (i32.const !tosIndex))
|
||||||
|
(call $emitConst (i32.const 4))
|
||||||
|
(call $emitSub)
|
||||||
|
(call $emitSetGlobal (i32.const !tosIndex))
|
||||||
|
(call $emitGetGlobal (i32.const !tosIndex))
|
||||||
|
(call $emitLoad))
|
||||||
|
|
||||||
|
|
||||||
(func $compileCall (param $findToken i32)
|
(func $compileCall (param $findToken i32)
|
||||||
|
|
Loading…
Reference in a new issue