implement leave

llvm
Clyne 2 years ago
parent 34e5d76f98
commit fc0d3ed9cf

@ -88,7 +88,7 @@ yes 6.1.1710 IMMEDIATE (as "imm")
yes 6.1.1720 INVERT yes 6.1.1720 INVERT
yes 6.1.1730 J yes 6.1.1730 J
yes 6.1.1750 KEY yes 6.1.1750 KEY
6.1.1760 LEAVE yes 6.1.1760 LEAVE
yes 6.1.1780 LITERAL yes 6.1.1780 LITERAL
yes 6.1.1800 LOOP yes 6.1.1800 LOOP
yes 6.1.1805 LSHIFT yes 6.1.1805 LSHIFT

@ -73,11 +73,14 @@
: until ['] _jmp0 , , drop ; imm : until ['] _jmp0 , , drop ; imm
: again postpone repeat ; imm : again postpone repeat ; imm
: do postpone 2>r here ; imm : do ['] _lit , here 0 , ['] >r , postpone 2>r here ; imm
: unloop postpone 2r> ['] 2drop , ; imm : unloop postpone 2r> ['] 2drop , ; imm
: leave postpone unloop postpone 2r>
['] drop , ['] >r , ['] exit , ; imm
: +loop postpone 2r> ['] rot , ['] + , ['] 2dup , : +loop postpone 2r> ['] rot , ['] + , ['] 2dup ,
postpone 2>r ['] - , ['] 0= , ['] _jmp0 , , postpone 2>r ['] - , ['] 0= , ['] _jmp0 , ,
postpone unloop ; imm postpone unloop
here swap ! ['] r> , ['] drop , ; imm
: loop 1 postpone literal postpone +loop ; imm : loop 1 postpone literal postpone +loop ; imm
: i postpone r@ ; imm : i postpone r@ ; imm
: j postpone 2r> postpone r@ ['] -rot , postpone 2>r ; imm : j postpone 2r> postpone r@ ['] -rot , postpone 2>r ; imm

Loading…
Cancel
Save