mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
Add TVM instructions for working with nonzero-level cells (#880)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
This commit is contained in:
parent
64b04e46d7
commit
51d30e2f2b
6 changed files with 156 additions and 1 deletions
75
crypto/test/fift/levels.fif
Normal file
75
crypto/test/fift/levels.fif
Normal file
|
@ -0,0 +1,75 @@
|
|||
"Asm.fif" include
|
||||
"FiftExt.fif" include
|
||||
|
||||
{
|
||||
dup
|
||||
."Cell " .dump cr
|
||||
dup [[ <{ CLEVEL }>s ]] 0 runvmx abort"exitcode != 0" ."Level = " . cr
|
||||
dup [[ <{ CLEVELMASK }>s ]] 0 runvmx abort"exitcode != 0" ."Level mask = 0b" b. cr
|
||||
dup dup [[ <{ 0 CHASHI DUP ROT 0 INT CHASHIX EQUAL 55 THROWIFNOT }>s ]] 0 runvmx abort"exitcode != 0" ."Hash_0 = " X. cr
|
||||
dup dup [[ <{ 1 CHASHI DUP ROT 1 INT CHASHIX EQUAL 55 THROWIFNOT }>s ]] 0 runvmx abort"exitcode != 0" ."Hash_1 = " X. cr
|
||||
dup dup [[ <{ 2 CHASHI DUP ROT 2 INT CHASHIX EQUAL 55 THROWIFNOT }>s ]] 0 runvmx abort"exitcode != 0" ."Hash_2 = " X. cr
|
||||
dup dup [[ <{ 3 CHASHI DUP ROT 3 INT CHASHIX EQUAL 55 THROWIFNOT }>s ]] 0 runvmx abort"exitcode != 0" ."Hash_3 = " X. cr
|
||||
dup dup [[ <{ 0 CDEPTHI DUP ROT 0 INT CDEPTHIX EQUAL 55 THROWIFNOT }>s ]] 0 runvmx abort"exitcode != 0" ."Depth_0 = " . cr
|
||||
dup dup [[ <{ 1 CDEPTHI DUP ROT 1 INT CDEPTHIX EQUAL 55 THROWIFNOT }>s ]] 0 runvmx abort"exitcode != 0" ."Depth_1 = " . cr
|
||||
dup dup [[ <{ 2 CDEPTHI DUP ROT 2 INT CDEPTHIX EQUAL 55 THROWIFNOT }>s ]] 0 runvmx abort"exitcode != 0" ."Depth_2 = " . cr
|
||||
dup dup [[ <{ 3 CDEPTHI DUP ROT 3 INT CDEPTHIX EQUAL 55 THROWIFNOT }>s ]] 0 runvmx abort"exitcode != 0" ."Depth_3 = " . cr
|
||||
drop
|
||||
cr
|
||||
} : print-all
|
||||
|
||||
// Ordinary cell of level 0
|
||||
<b
|
||||
123 32 u,
|
||||
<b <b 22 32 u, b> ref, b> ref,
|
||||
<b b> ref,
|
||||
b>
|
||||
print-all
|
||||
|
||||
// Prunned branch of level 1
|
||||
<b
|
||||
1 8 u,
|
||||
1 8 u,
|
||||
0xabcd1111abcd1111abcd1111abcd1111abcd1111abcd1111abcd1111abcd1111 256 u,
|
||||
14 16 u,
|
||||
b>spec
|
||||
print-all
|
||||
|
||||
// Prunned branch of level 3
|
||||
<b
|
||||
1 8 u,
|
||||
7 8 u,
|
||||
0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 256 u,
|
||||
0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 256 u,
|
||||
0xcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 256 u,
|
||||
55 16 u,
|
||||
44 16 u,
|
||||
33 16 u,
|
||||
b>spec
|
||||
print-all
|
||||
|
||||
// Prunned branch of level 3, mask 0b101
|
||||
<b
|
||||
1 8 u,
|
||||
5 8 u,
|
||||
0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 256 u,
|
||||
0xcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 256 u,
|
||||
55 16 u,
|
||||
33 16 u,
|
||||
b>spec
|
||||
print-all
|
||||
|
||||
// Tree with the previous cell inside
|
||||
<b
|
||||
<b
|
||||
<b
|
||||
1 8 u,
|
||||
5 8 u,
|
||||
0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 256 u,
|
||||
0xcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 256 u,
|
||||
55 16 u,
|
||||
33 16 u,
|
||||
b>spec ref,
|
||||
b> ref,
|
||||
b>
|
||||
print-all
|
Loading…
Add table
Add a link
Reference in a new issue