1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-03-09 15:40:10 +00:00

vm: bugfixes

This commit is contained in:
ton 2020-03-02 17:52:55 +04:00
parent 27aaa11524
commit ba76f1404e
30 changed files with 396 additions and 178 deletions

View file

@ -0,0 +1,20 @@
#!/usr/bin/fift -s
"Asm.fif" include
2500 =: N
{ 5 * } : *K
N 100 / =: N/100
N 10 / =: N/10
{ { EXECUTE } 100 times } : 100EXECUTE
{ DUP { 2DUP } 7 times } : 15DUP
{ { 2DUP } 50 times } : 100DUP
{ { 15 -1 SETCONTARGS 15DUP } 10 times } : 10SET&DUP
<{
CONT:<{ }>
15DUP
N/10 INT REPEAT:<{ 10SET&DUP }>
N/100 *K INT REPEAT:<{ 100DUP }>
N/100 *K INT REPEAT:<{ 100EXECUTE }>
}>s =: Code
Code csr.
Code 1000000 gasrunvmcode

View file

@ -0,0 +1,32 @@
#!/usr/bin/create-state -s
{ dup tlb-type-lookup { nip } { "unknown TLB type " swap $+ abort } cond } : $>tlb
{ bl word $>tlb 1 'nop } ::_ tlb:
{ dup null? { drop true } {
<b true 1 i, swap ref, b> <s ExtraCurrencyCollection
tlb-validate-skip { empty? } { false } cond
} cond
} : cc-valid?
{ cc-valid? { ."(valid)" } { ."(invalid)" } cond } : .cc-valid
{ { dup .cc space .cc-valid } { ."<error>" } cond cr } : cshow
{ ."X = " over dup .cc space .cc-valid cr
."Y = " dup dup .cc space .cc-valid cr
."X + Y = " 2dup CC+? cshow
."X - Y = " 2dup CC-? cshow
."Y - X = " 2dup swap CC-? cshow
."X + X = " over dup CC+? cshow
."Y + Y = " dup dup CC+? cshow
."X - X = " over dup CC-? cshow
."Y - Y = " dup dup CC-? cshow
2drop ."********************" cr
} : one-test
CX{666666666666*$239+1000000000000*$-17} =: X
X CX{666666666666*$239+4444*$-17} one-test
X CX{666666666665*$239+4444*$-17} one-test
X CX{666666666667*$239+4444*$-17} one-test
X CX{666666666666*$239} one-test
X CX{666666666665*$239} one-test
X CX{666666666667*$239} one-test
X CX{1111*$1} one-test
X CX{0*$-17} one-test
X cc0 1 0 +newccpair one-test
X cc0 239 0 +newccpair one-test