diff --git a/cp0.json b/cp0.json index a17d3ec..4610f2d 100644 --- a/cp0.json +++ b/cp0.json @@ -9,16 +9,12 @@ "description": "Does nothing.", "gas": "18", "fift": "NOP", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "00", - "tlb": "#00", - "prefix": "00", - "operands": [] + "fift_examples": [], + "opcode": "00", + "stack": "-" }, + "bytecode": { "tlb": "#00", "prefix": "00", "operands": [] }, "value_flow": { - "doc_stack": "-", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [], "registers": [] } }, @@ -32,10 +28,11 @@ "description": "Interchanges `s0` with `s[i]`, `1 <= i <= 15`.", "gas": "18", "fift": "s[i] XCHG0", - "fift_examples": [] + "fift_examples": [], + "opcode": "0i", + "stack": "" }, "bytecode": { - "doc_opcode": "0i", "tlb": "#0 i:(## 4) {1 <= i}", "prefix": "0", "operands_range_check": { "length": 4, "from": 1, "to": 15 }, @@ -51,7 +48,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -65,10 +61,11 @@ "description": "Interchanges `s[i]` with `s[j]`, `1 <= i < j <= 15`.", "gas": "26", "fift": "s[i] s[j] XCHG", - "fift_examples": [] + "fift_examples": [], + "opcode": "10ij", + "stack": "" }, "bytecode": { - "doc_opcode": "10ij", "tlb": "#10 i:(## 4) j:(## 4) {1 <= i} {i + 1 <= j}", "prefix": "10", "operands_range_check": { "length": 4, "from": 1, "to": 15 }, @@ -92,7 +89,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -106,10 +102,11 @@ "description": "Interchanges `s0` with `s[ii]`, `0 <= ii <= 255`.", "gas": "26", "fift": "s0 [ii] s() XCHG", - "fift_examples": [] + "fift_examples": [], + "opcode": "11ii", + "stack": "" }, "bytecode": { - "doc_opcode": "11ii", "tlb": "#11 ii:uint8", "prefix": "11", "operands": [ @@ -124,7 +121,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -138,10 +134,11 @@ "description": "Interchanges `s1` with `s[i]`, `2 <= i <= 15`.", "gas": "18", "fift": "s1 s[i] XCHG", - "fift_examples": [] + "fift_examples": [], + "opcode": "1i", + "stack": "" }, "bytecode": { - "doc_opcode": "1i", "tlb": "#1 i:(## 4) {2 <= i}", "prefix": "1", "operands_range_check": { "length": 4, "from": 2, "to": 15 }, @@ -157,7 +154,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -171,10 +167,11 @@ "description": "Pushes a copy of the old `s[i]` into the stack.", "gas": "18", "fift": "s[i] PUSH", - "fift_examples": [] + "fift_examples": [], + "opcode": "2i", + "stack": "" }, "bytecode": { - "doc_opcode": "2i", "tlb": "#2 i:uint4", "prefix": "2", "operands": [ @@ -189,7 +186,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -203,10 +199,11 @@ "description": "Pops the old `s0` value into the old `s[i]`.", "gas": "18", "fift": "s[i] POP", - "fift_examples": [] + "fift_examples": [], + "opcode": "3i", + "stack": "" }, "bytecode": { - "doc_opcode": "3i", "tlb": "#3 i:uint4", "prefix": "3", "operands": [ @@ -221,7 +218,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -235,10 +231,11 @@ "description": "Equivalent to `s2 s[i] XCHG` `s1 s[j] XCHG` `s[k] XCHG0`.", "gas": "26", "fift": "s[i] s[j] s[k] XCHG3", - "fift_examples": [] + "fift_examples": [], + "opcode": "4ijk", + "stack": "" }, "bytecode": { - "doc_opcode": "4ijk", "tlb": "#4 i:uint4 j:uint4 k:uint4", "prefix": "4", "operands": [ @@ -269,7 +266,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -283,10 +279,11 @@ "description": "Equivalent to `s1 s[i] XCHG` `s[j] XCHG0`.", "gas": "26", "fift": "s[i] s[j] XCHG2", - "fift_examples": [] + "fift_examples": [], + "opcode": "50ij", + "stack": "" }, "bytecode": { - "doc_opcode": "50ij", "tlb": "#50 i:uint4 j:uint4", "prefix": "50", "operands": [ @@ -309,7 +306,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -323,10 +319,11 @@ "description": "Equivalent to `s[i] XCHG0` `s[j] PUSH`.", "gas": "26", "fift": "s[i] s[j] XCPU", - "fift_examples": [] + "fift_examples": [], + "opcode": "51ij", + "stack": "" }, "bytecode": { - "doc_opcode": "51ij", "tlb": "#51 i:uint4 j:uint4", "prefix": "51", "operands": [ @@ -349,7 +346,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -363,10 +359,11 @@ "description": "Equivalent to `s[i] PUSH` `SWAP` `s[j] XCHG0`.", "gas": "26", "fift": "s[i] s[j-1] PUXC", - "fift_examples": [] + "fift_examples": [], + "opcode": "52ij", + "stack": "" }, "bytecode": { - "doc_opcode": "52ij", "tlb": "#52 i:uint4 j:uint4", "prefix": "52", "operands": [ @@ -384,12 +381,14 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [{ "type": "stack" }, { "type": "add", "value": -1 }] + "display_hints": [ + { "type": "stack" }, + { "type": "add", "value": -1 } + ] } ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -403,10 +402,11 @@ "description": "Equivalent to `s[i] PUSH` `s[j+1] PUSH`.", "gas": "26", "fift": "s[i] s[j] PUSH2", - "fift_examples": [] + "fift_examples": [], + "opcode": "53ij", + "stack": "" }, "bytecode": { - "doc_opcode": "53ij", "tlb": "#53 i:uint4 j:uint4", "prefix": "53", "operands": [ @@ -429,7 +429,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -443,10 +442,11 @@ "description": "Long form of `XCHG3`.", "gas": "34", "fift": "s[i] s[j] s[k] XCHG3_l", - "fift_examples": [] + "fift_examples": [], + "opcode": "540ijk", + "stack": "" }, "bytecode": { - "doc_opcode": "540ijk", "tlb": "#540 i:uint4 j:uint4 k:uint4", "prefix": "540", "operands": [ @@ -477,7 +477,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -491,10 +490,11 @@ "description": "Equivalent to `s[i] s[j] XCHG2` `s[k] PUSH`.", "gas": "34", "fift": "s[i] s[j] s[k] XC2PU", - "fift_examples": [] + "fift_examples": [], + "opcode": "541ijk", + "stack": "" }, "bytecode": { - "doc_opcode": "541ijk", "tlb": "#541 i:uint4 j:uint4 k:uint4", "prefix": "541", "operands": [ @@ -525,7 +525,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -539,10 +538,11 @@ "description": "Equivalent to `s1 s[i] XCHG` `s[j] s[k-1] PUXC`.", "gas": "34", "fift": "s[i] s[j] s[k-1] XCPUXC", - "fift_examples": [] + "fift_examples": [], + "opcode": "542ijk", + "stack": "" }, "bytecode": { - "doc_opcode": "542ijk", "tlb": "#542 i:uint4 j:uint4 k:uint4", "prefix": "542", "operands": [ @@ -568,12 +568,14 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [{ "type": "stack" }, { "type": "add", "value": -1 }] + "display_hints": [ + { "type": "stack" }, + { "type": "add", "value": -1 } + ] } ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -587,10 +589,11 @@ "description": "Equivalent to `s[i] XCHG0` `s[j] s[k] PUSH2`.", "gas": "34", "fift": "s[i] s[j] s[k] XCPU2", - "fift_examples": [] + "fift_examples": [], + "opcode": "543ijk", + "stack": "" }, "bytecode": { - "doc_opcode": "543ijk", "tlb": "#543 i:uint4 j:uint4 k:uint4", "prefix": "543", "operands": [ @@ -621,7 +624,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -635,10 +637,11 @@ "description": "Equivalent to `s[i] PUSH` `s2 XCHG0` `s[j] s[k] XCHG2`.", "gas": "34", "fift": "s[i] s[j-1] s[k-1] PUXC2", - "fift_examples": [] + "fift_examples": [], + "opcode": "544ijk", + "stack": "" }, "bytecode": { - "doc_opcode": "544ijk", "tlb": "#544 i:uint4 j:uint4 k:uint4", "prefix": "544", "operands": [ @@ -656,7 +659,10 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [{ "type": "stack" }, { "type": "add", "value": -1 }] + "display_hints": [ + { "type": "stack" }, + { "type": "add", "value": -1 } + ] }, { "name": "k", @@ -664,12 +670,14 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [{ "type": "stack" }, { "type": "add", "value": -1 }] + "display_hints": [ + { "type": "stack" }, + { "type": "add", "value": -1 } + ] } ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -683,10 +691,11 @@ "description": "Equivalent to `s[i] s[j-1] PUXC` `s[k] PUSH`.", "gas": "34", "fift": "s[i] s[j-1] s[k-1] PUXCPU", - "fift_examples": [] + "fift_examples": [], + "opcode": "545ijk", + "stack": "" }, "bytecode": { - "doc_opcode": "545ijk", "tlb": "#545 i:uint4 j:uint4 k:uint4", "prefix": "545", "operands": [ @@ -704,7 +713,10 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [{ "type": "stack" }, { "type": "add", "value": -1 }] + "display_hints": [ + { "type": "stack" }, + { "type": "add", "value": -1 } + ] }, { "name": "k", @@ -712,12 +724,14 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [{ "type": "stack" }, { "type": "add", "value": -1 }] + "display_hints": [ + { "type": "stack" }, + { "type": "add", "value": -1 } + ] } ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -731,10 +745,11 @@ "description": "Equivalent to `s[i] PUSH` `SWAP` `s[j] s[k-1] PUXC`.", "gas": "34", "fift": "s[i] s[j-1] s[k-2] PU2XC", - "fift_examples": [] + "fift_examples": [], + "opcode": "546ijk", + "stack": "" }, "bytecode": { - "doc_opcode": "546ijk", "tlb": "#546 i:uint4 j:uint4 k:uint4", "prefix": "546", "operands": [ @@ -752,7 +767,10 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [{ "type": "stack" }, { "type": "add", "value": -1 }] + "display_hints": [ + { "type": "stack" }, + { "type": "add", "value": -1 } + ] }, { "name": "k", @@ -760,12 +778,14 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [{ "type": "stack" }, { "type": "add", "value": -2 }] + "display_hints": [ + { "type": "stack" }, + { "type": "add", "value": -2 } + ] } ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -779,10 +799,11 @@ "description": "Equivalent to `s[i] PUSH` `s[j+1] s[k+1] PUSH2`.", "gas": "34", "fift": "s[i] s[j] s[k] PUSH3", - "fift_examples": [] + "fift_examples": [], + "opcode": "547ijk", + "stack": "" }, "bytecode": { - "doc_opcode": "547ijk", "tlb": "#547 i:uint4 j:uint4 k:uint4", "prefix": "547", "operands": [ @@ -813,7 +834,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -827,10 +847,11 @@ "description": "Permutes two blocks `s[j+i+1] ... s[j+1]` and `s[j] ... s0`.\n`0 <= i,j <= 15`\nEquivalent to `[i+1] [j+1] REVERSE` `[j+1] 0 REVERSE` `[i+j+2] 0 REVERSE`.", "gas": "26", "fift": "[i+1] [j+1] BLKSWAP", - "fift_examples": [] + "fift_examples": [], + "opcode": "55ij", + "stack": "" }, "bytecode": { - "doc_opcode": "55ij", "tlb": "#55 i:uint4 j:uint4", "prefix": "55", "operands": [ @@ -840,7 +861,10 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [{ "type": "stack" }, { "type": "add", "value": 1 }] + "display_hints": [ + { "type": "stack" }, + { "type": "add", "value": 1 } + ] }, { "name": "j", @@ -848,12 +872,14 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [{ "type": "stack" }, { "type": "add", "value": 1 }] + "display_hints": [ + { "type": "stack" }, + { "type": "add", "value": 1 } + ] } ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -867,10 +893,11 @@ "description": "Pushes a copy of the old `s[ii]` into the stack.\n`0 <= ii <= 255`", "gas": "26", "fift": "[ii] s() PUSH", - "fift_examples": [] + "fift_examples": [], + "opcode": "56ii", + "stack": "" }, "bytecode": { - "doc_opcode": "56ii", "tlb": "#56 ii:uint8", "prefix": "56", "operands": [ @@ -885,7 +912,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -899,10 +925,11 @@ "description": "Pops the old `s0` value into the old `s[ii]`.\n`0 <= ii <= 255`", "gas": "26", "fift": "[ii] s() POP", - "fift_examples": [] + "fift_examples": [], + "opcode": "57ii", + "stack": "" }, "bytecode": { - "doc_opcode": "57ii", "tlb": "#57 ii:uint8", "prefix": "57", "operands": [ @@ -917,7 +944,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -931,16 +957,12 @@ "description": "Equivalent to `1 2 BLKSWAP` or to `s2 s1 XCHG2`.", "gas": "18", "fift": "ROT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "58", - "tlb": "#58", - "prefix": "58", - "operands": [] + "fift_examples": [], + "opcode": "58", + "stack": "a b c - b c a" }, + "bytecode": { "tlb": "#58", "prefix": "58", "operands": [] }, "value_flow": { - "doc_stack": "a b c - b c a", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -954,16 +976,12 @@ "description": "Equivalent to `2 1 BLKSWAP` or to `s2 s2 XCHG2`.", "gas": "18", "fift": "ROTREV\n-ROT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "59", - "tlb": "#59", - "prefix": "59", - "operands": [] + "fift_examples": [], + "opcode": "59", + "stack": "a b c - c a b" }, + "bytecode": { "tlb": "#59", "prefix": "59", "operands": [] }, "value_flow": { - "doc_stack": "a b c - c a b", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -977,16 +995,12 @@ "description": "Equivalent to `2 2 BLKSWAP` or to `s3 s2 XCHG2`.", "gas": "18", "fift": "SWAP2\n2SWAP", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "5A", - "tlb": "#5A", - "prefix": "5A", - "operands": [] + "fift_examples": [], + "opcode": "5A", + "stack": "a b c d - c d a b" }, + "bytecode": { "tlb": "#5A", "prefix": "5A", "operands": [] }, "value_flow": { - "doc_stack": "a b c d - c d a b", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1000,16 +1014,12 @@ "description": "Equivalent to `DROP` `DROP`.", "gas": "18", "fift": "DROP2\n2DROP", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "5B", - "tlb": "#5B", - "prefix": "5B", - "operands": [] + "fift_examples": [], + "opcode": "5B", + "stack": "a b - " }, + "bytecode": { "tlb": "#5B", "prefix": "5B", "operands": [] }, "value_flow": { - "doc_stack": "a b - ", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1023,16 +1033,12 @@ "description": "Equivalent to `s1 s0 PUSH2`.", "gas": "18", "fift": "DUP2\n2DUP", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "5C", - "tlb": "#5C", - "prefix": "5C", - "operands": [] + "fift_examples": [], + "opcode": "5C", + "stack": "a b - a b a b" }, + "bytecode": { "tlb": "#5C", "prefix": "5C", "operands": [] }, "value_flow": { - "doc_stack": "a b - a b a b", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1046,16 +1052,12 @@ "description": "Equivalent to `s3 s2 PUSH2`.", "gas": "18", "fift": "OVER2\n2OVER", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "5D", - "tlb": "#5D", - "prefix": "5D", - "operands": [] + "fift_examples": [], + "opcode": "5D", + "stack": "a b c d - a b c d a b" }, + "bytecode": { "tlb": "#5D", "prefix": "5D", "operands": [] }, "value_flow": { - "doc_stack": "a b c d - a b c d a b", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1069,10 +1071,11 @@ "description": "Reverses the order of `s[j+i+1] ... s[j]`.", "gas": "26", "fift": "[i+2] [j] REVERSE", - "fift_examples": [] + "fift_examples": [], + "opcode": "5Eij", + "stack": "" }, "bytecode": { - "doc_opcode": "5Eij", "tlb": "#5E i:uint4 j:uint4", "prefix": "5E", "operands": [ @@ -1095,7 +1098,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1109,10 +1111,11 @@ "description": "Equivalent to `DROP` performed `i` times.", "gas": "26", "fift": "[i] BLKDROP", - "fift_examples": [] + "fift_examples": [], + "opcode": "5F0i", + "stack": "" }, "bytecode": { - "doc_opcode": "5F0i", "tlb": "#5F0 i:uint4", "prefix": "5F0", "operands": [ @@ -1127,7 +1130,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1141,10 +1143,11 @@ "description": "Equivalent to `PUSH s(j)` performed `i` times.\n`1 <= i <= 15`, `0 <= j <= 15`.", "gas": "26", "fift": "[i] [j] BLKPUSH", - "fift_examples": [] + "fift_examples": [], + "opcode": "5Fij", + "stack": "" }, "bytecode": { - "doc_opcode": "5Fij", "tlb": "#5F i:(## 4) j:uint4 {1 <= i}", "prefix": "5F", "operands_range_check": { "length": 4, "from": 1, "to": 15 }, @@ -1168,7 +1171,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1182,16 +1184,12 @@ "description": "Pops integer `i` from the stack, then performs `s[i] PUSH`.", "gas": "18", "fift": "PICK\nPUSHX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "60", - "tlb": "#60", - "prefix": "60", - "operands": [] + "fift_examples": [], + "opcode": "60", + "stack": "" }, + "bytecode": { "tlb": "#60", "prefix": "60", "operands": [] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1205,16 +1203,12 @@ "description": "Pops integer `i` from the stack, then performs `1 [i] BLKSWAP`.", "gas": "18", "fift": "ROLLX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "61", - "tlb": "#61", - "prefix": "61", - "operands": [] + "fift_examples": [], + "opcode": "61", + "stack": "" }, + "bytecode": { "tlb": "#61", "prefix": "61", "operands": [] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1228,16 +1222,12 @@ "description": "Pops integer `i` from the stack, then performs `[i] 1 BLKSWAP`.", "gas": "18", "fift": "-ROLLX\nROLLREVX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "62", - "tlb": "#62", - "prefix": "62", - "operands": [] + "fift_examples": [], + "opcode": "62", + "stack": "" }, + "bytecode": { "tlb": "#62", "prefix": "62", "operands": [] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1251,16 +1241,12 @@ "description": "Pops integers `i`,`j` from the stack, then performs `[i] [j] BLKSWAP`.", "gas": "18", "fift": "BLKSWX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "63", - "tlb": "#63", - "prefix": "63", - "operands": [] + "fift_examples": [], + "opcode": "63", + "stack": "" }, + "bytecode": { "tlb": "#63", "prefix": "63", "operands": [] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1274,16 +1260,12 @@ "description": "Pops integers `i`,`j` from the stack, then performs `[i] [j] REVERSE`.", "gas": "18", "fift": "REVX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "64", - "tlb": "#64", - "prefix": "64", - "operands": [] + "fift_examples": [], + "opcode": "64", + "stack": "" }, + "bytecode": { "tlb": "#64", "prefix": "64", "operands": [] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1297,16 +1279,12 @@ "description": "Pops integer `i` from the stack, then performs `[i] BLKDROP`.", "gas": "18", "fift": "DROPX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "65", - "tlb": "#65", - "prefix": "65", - "operands": [] + "fift_examples": [], + "opcode": "65", + "stack": "" }, + "bytecode": { "tlb": "#65", "prefix": "65", "operands": [] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1320,16 +1298,12 @@ "description": "Equivalent to `SWAP` `OVER` or to `s1 s1 XCPU`.", "gas": "18", "fift": "TUCK", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "66", - "tlb": "#66", - "prefix": "66", - "operands": [] + "fift_examples": [], + "opcode": "66", + "stack": "a b - b a b" }, + "bytecode": { "tlb": "#66", "prefix": "66", "operands": [] }, "value_flow": { - "doc_stack": "a b - b a b", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1343,16 +1317,12 @@ "description": "Pops integer `i` from the stack, then performs `s[i] XCHG`.", "gas": "18", "fift": "XCHGX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "67", - "tlb": "#67", - "prefix": "67", - "operands": [] + "fift_examples": [], + "opcode": "67", + "stack": "" }, + "bytecode": { "tlb": "#67", "prefix": "67", "operands": [] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1366,16 +1336,12 @@ "description": "Pushes the current depth of the stack.", "gas": "18", "fift": "DEPTH", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "68", - "tlb": "#68", - "prefix": "68", - "operands": [] + "fift_examples": [], + "opcode": "68", + "stack": "- depth" }, + "bytecode": { "tlb": "#68", "prefix": "68", "operands": [] }, "value_flow": { - "doc_stack": "- depth", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -1394,16 +1360,12 @@ "description": "Pops integer `i` from the stack, then checks whether there are at least `i` elements, generating a stack underflow exception otherwise.", "gas": "18/58", "fift": "CHKDEPTH", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "69", - "tlb": "#69", - "prefix": "69", - "operands": [] + "fift_examples": [], + "opcode": "69", + "stack": "i -" }, + "bytecode": { "tlb": "#69", "prefix": "69", "operands": [] }, "value_flow": { - "doc_stack": "i -", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] } @@ -1422,16 +1384,12 @@ "description": "Pops integer `i` from the stack, then removes all but the top `i` elements.", "gas": "18", "fift": "ONLYTOPX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6A", - "tlb": "#6A", - "prefix": "6A", - "operands": [] + "fift_examples": [], + "opcode": "6A", + "stack": "" }, + "bytecode": { "tlb": "#6A", "prefix": "6A", "operands": [] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1445,16 +1403,12 @@ "description": "Pops integer `i` from the stack, then leaves only the bottom `i` elements. Approximately equivalent to `DEPTH` `SWAP` `SUB` `DROPX`.", "gas": "18", "fift": "ONLYX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6B", - "tlb": "#6B", - "prefix": "6B", - "operands": [] + "fift_examples": [], + "opcode": "6B", + "stack": "" }, + "bytecode": { "tlb": "#6B", "prefix": "6B", "operands": [] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1468,10 +1422,11 @@ "description": "Drops `i` stack elements under the top `j` elements.\n`1 <= i <= 15`, `0 <= j <= 15`\nEquivalent to `[i+j] 0 REVERSE` `[i] BLKDROP` `[j] 0 REVERSE`.", "gas": "26", "fift": "[i] [j] BLKDROP2", - "fift_examples": [] + "fift_examples": [], + "opcode": "6Cij", + "stack": "" }, "bytecode": { - "doc_opcode": "6Cij", "tlb": "#6C i:(## 4) j:uint4 {1 <= i}", "prefix": "6C", "operands_range_check": { "length": 4, "from": 1, "to": 15 }, @@ -1495,7 +1450,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -1509,16 +1463,12 @@ "description": "Pushes the only value of type _Null_.", "gas": "18", "fift": "NULL\nPUSHNULL", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6D", - "tlb": "#6D", - "prefix": "6D", - "operands": [] + "fift_examples": [], + "opcode": "6D", + "stack": " - null" }, + "bytecode": { "tlb": "#6D", "prefix": "6D", "operands": [] }, "value_flow": { - "doc_stack": " - null", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [{ "type": "const", "value": null, "value_type": "Null" }], @@ -1535,16 +1485,12 @@ "description": "Checks whether `x` is a _Null_, and returns `-1` or `0` accordingly.", "gas": "18", "fift": "ISNULL", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6E", - "tlb": "#6E", - "prefix": "6E", - "operands": [] + "fift_examples": [], + "opcode": "6E", + "stack": "x - ?" }, + "bytecode": { "tlb": "#6E", "prefix": "6E", "operands": [] }, "value_flow": { - "doc_stack": "x - ?", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -1568,10 +1514,11 @@ "description": "Creates a new _Tuple_ `t=(x_1, ... ,x_n)` containing `n` values `x_1`,..., `x_n`.\n`0 <= n <= 15`", "gas": "26+n", "fift": "[n] TUPLE", - "fift_examples": [] + "fift_examples": [], + "opcode": "6F0n", + "stack": "x_1 ... x_n - t" }, "bytecode": { - "doc_opcode": "6F0n", "tlb": "#6F0 n:uint4", "prefix": "6F0", "operands": [ @@ -1586,7 +1533,6 @@ ] }, "value_flow": { - "doc_stack": "x_1 ... x_n - t", "inputs": { "stack": [ { @@ -1615,10 +1561,11 @@ "description": "Returns the `k`-th element of a _Tuple_ `t`.\n`0 <= k <= 15`.", "gas": "26", "fift": "[k] INDEX", - "fift_examples": [] + "fift_examples": [], + "opcode": "6F1k", + "stack": "t - x" }, "bytecode": { - "doc_opcode": "6F1k", "tlb": "#6F1 k:uint4", "prefix": "6F1", "operands": [ @@ -1633,7 +1580,6 @@ ] }, "value_flow": { - "doc_stack": "t - x", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] } @@ -1655,10 +1601,11 @@ "description": "Unpacks a _Tuple_ `t=(x_1,...,x_n)` of length equal to `0 <= n <= 15`.\nIf `t` is not a _Tuple_, or if `|t| != n`, a type check exception is thrown.", "gas": "26+n", "fift": "[n] UNTUPLE", - "fift_examples": [] + "fift_examples": [], + "opcode": "6F2n", + "stack": "t - x_1 ... x_n" }, "bytecode": { - "doc_opcode": "6F2n", "tlb": "#6F2 n:uint4", "prefix": "6F2", "operands": [ @@ -1673,7 +1620,6 @@ ] }, "value_flow": { - "doc_stack": "t - x_1 ... x_n", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] } @@ -1702,10 +1648,11 @@ "description": "Unpacks first `0 <= k <= 15` elements of a _Tuple_ `t`.\nIf `|t|= |t|`, throws a range check exception.", "gas": "26+|t|", "fift": "[k] SETINDEX", - "fift_examples": [] + "fift_examples": [], + "opcode": "6F5k", + "stack": "t x - t'" }, "bytecode": { - "doc_opcode": "6F5k", "tlb": "#6F5 k:uint4", "prefix": "6F5", "operands": [ @@ -1815,7 +1762,6 @@ ] }, "value_flow": { - "doc_stack": "t x - t'", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] }, @@ -1840,10 +1786,11 @@ "description": "Returns the `k`-th element of a _Tuple_ `t`, where `0 <= k <= 15`. In other words, returns `x_{k+1}` if `t=(x_1,...,x_n)`. If `k>=n`, or if `t` is _Null_, returns a _Null_ instead of `x`.", "gas": "26", "fift": "[k] INDEXQ", - "fift_examples": [] + "fift_examples": [], + "opcode": "6F6k", + "stack": "t - x" }, "bytecode": { - "doc_opcode": "6F6k", "tlb": "#6F6 k:uint4", "prefix": "6F6", "operands": [ @@ -1858,7 +1805,6 @@ ] }, "value_flow": { - "doc_stack": "t - x", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] } @@ -1880,10 +1826,11 @@ "description": "Sets the `k`-th component of _Tuple_ `t` to `x`, where `0 <= k < 16`, and returns the resulting _Tuple_ `t'`.\nIf `|t| <= k`, first extends the original _Tuple_ to length `n'=k+1` by setting all new components to _Null_. If the original value of `t` is _Null_, treats it as an empty _Tuple_. If `t` is not _Null_ or _Tuple_, throws an exception. If `x` is _Null_ and either `|t| <= k` or `t` is _Null_, then always returns `t'=t` (and does not consume tuple creation gas).", "gas": "26+|t'|", "fift": "[k] SETINDEXQ", - "fift_examples": [] + "fift_examples": [], + "opcode": "6F7k", + "stack": "t x - t'" }, "bytecode": { - "doc_opcode": "6F7k", "tlb": "#6F7 k:uint4", "prefix": "6F7", "operands": [ @@ -1898,7 +1845,6 @@ ] }, "value_flow": { - "doc_stack": "t x - t'", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] }, @@ -1923,16 +1869,12 @@ "description": "Creates a new _Tuple_ `t` of length `n` similarly to `TUPLE`, but with `0 <= n <= 255` taken from the stack.", "gas": "26+n", "fift": "TUPLEVAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6F80", - "tlb": "#6F80", - "prefix": "6F80", - "operands": [] + "fift_examples": [], + "opcode": "6F80", + "stack": "x_1 ... x_n n - t" }, + "bytecode": { "tlb": "#6F80", "prefix": "6F80", "operands": [] }, "value_flow": { - "doc_stack": "x_1 ... x_n n - t", "inputs": { "stack": [ { @@ -1962,16 +1904,12 @@ "description": "Similar to `k INDEX`, but with `0 <= k <= 254` taken from the stack.", "gas": "26", "fift": "INDEXVAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6F81", - "tlb": "#6F81", - "prefix": "6F81", - "operands": [] + "fift_examples": [], + "opcode": "6F81", + "stack": "t k - x" }, + "bytecode": { "tlb": "#6F81", "prefix": "6F81", "operands": [] }, "value_flow": { - "doc_stack": "t k - x", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] }, @@ -1994,16 +1932,12 @@ "description": "Similar to `n UNTUPLE`, but with `0 <= n <= 255` taken from the stack.", "gas": "26+n", "fift": "UNTUPLEVAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6F82", - "tlb": "#6F82", - "prefix": "6F82", - "operands": [] + "fift_examples": [], + "opcode": "6F82", + "stack": "t n - x_1 ... x_n" }, + "bytecode": { "tlb": "#6F82", "prefix": "6F82", "operands": [] }, "value_flow": { - "doc_stack": "t n - x_1 ... x_n", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] }, @@ -2033,16 +1967,12 @@ "description": "Similar to `n UNPACKFIRST`, but with `0 <= n <= 255` taken from the stack.", "gas": "26+n", "fift": "UNPACKFIRSTVAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6F83", - "tlb": "#6F83", - "prefix": "6F83", - "operands": [] + "fift_examples": [], + "opcode": "6F83", + "stack": "t n - x_1 ... x_n" }, + "bytecode": { "tlb": "#6F83", "prefix": "6F83", "operands": [] }, "value_flow": { - "doc_stack": "t n - x_1 ... x_n", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] }, @@ -2072,16 +2002,12 @@ "description": "Similar to `n EXPLODE`, but with `0 <= n <= 255` taken from the stack.", "gas": "26+m", "fift": "EXPLODEVAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6F84", - "tlb": "#6F84", - "prefix": "6F84", - "operands": [] + "fift_examples": [], + "opcode": "6F84", + "stack": "t n - x_1 ... x_m m" }, + "bytecode": { "tlb": "#6F84", "prefix": "6F84", "operands": [] }, "value_flow": { - "doc_stack": "t n - x_1 ... x_m m", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] }, @@ -2112,16 +2038,12 @@ "description": "Similar to `k SETINDEX`, but with `0 <= k <= 254` taken from the stack.", "gas": "26+|t'|", "fift": "SETINDEXVAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6F85", - "tlb": "#6F85", - "prefix": "6F85", - "operands": [] + "fift_examples": [], + "opcode": "6F85", + "stack": "t x k - t'" }, + "bytecode": { "tlb": "#6F85", "prefix": "6F85", "operands": [] }, "value_flow": { - "doc_stack": "t x k - t'", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] }, @@ -2147,16 +2069,12 @@ "description": "Similar to `n INDEXQ`, but with `0 <= k <= 254` taken from the stack.", "gas": "26", "fift": "INDEXVARQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6F86", - "tlb": "#6F86", - "prefix": "6F86", - "operands": [] + "fift_examples": [], + "opcode": "6F86", + "stack": "t k - x" }, + "bytecode": { "tlb": "#6F86", "prefix": "6F86", "operands": [] }, "value_flow": { - "doc_stack": "t k - x", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] }, @@ -2179,16 +2097,12 @@ "description": "Similar to `k SETINDEXQ`, but with `0 <= k <= 254` taken from the stack.", "gas": "26+|t'|", "fift": "SETINDEXVARQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6F87", - "tlb": "#6F87", - "prefix": "6F87", - "operands": [] + "fift_examples": [], + "opcode": "6F87", + "stack": "t x k - t'" }, + "bytecode": { "tlb": "#6F87", "prefix": "6F87", "operands": [] }, "value_flow": { - "doc_stack": "t x k - t'", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] }, @@ -2214,16 +2128,12 @@ "description": "Returns the length of a _Tuple_.", "gas": "26", "fift": "TLEN", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6F88", - "tlb": "#6F88", - "prefix": "6F88", - "operands": [] + "fift_examples": [], + "opcode": "6F88", + "stack": "t - n" }, + "bytecode": { "tlb": "#6F88", "prefix": "6F88", "operands": [] }, "value_flow": { - "doc_stack": "t - n", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] } @@ -2247,16 +2157,12 @@ "description": "Similar to `TLEN`, but returns `-1` if `t` is not a _Tuple_.", "gas": "26", "fift": "QTLEN", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6F89", - "tlb": "#6F89", - "prefix": "6F89", - "operands": [] + "fift_examples": [], + "opcode": "6F89", + "stack": "t - n or -1" }, + "bytecode": { "tlb": "#6F89", "prefix": "6F89", "operands": [] }, "value_flow": { - "doc_stack": "t - n or -1", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] } @@ -2280,16 +2186,12 @@ "description": "Returns `-1` or `0` depending on whether `t` is a _Tuple_.", "gas": "26", "fift": "ISTUPLE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6F8A", - "tlb": "#6F8A", - "prefix": "6F8A", - "operands": [] + "fift_examples": [], + "opcode": "6F8A", + "stack": "t - ?" }, + "bytecode": { "tlb": "#6F8A", "prefix": "6F8A", "operands": [] }, "value_flow": { - "doc_stack": "t - ?", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] } @@ -2313,16 +2215,12 @@ "description": "Returns the last element of a non-empty _Tuple_ `t`.", "gas": "26", "fift": "LAST", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6F8B", - "tlb": "#6F8B", - "prefix": "6F8B", - "operands": [] + "fift_examples": [], + "opcode": "6F8B", + "stack": "t - x" }, + "bytecode": { "tlb": "#6F8B", "prefix": "6F8B", "operands": [] }, "value_flow": { - "doc_stack": "t - x", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] } @@ -2344,16 +2242,12 @@ "description": "Appends a value `x` to a _Tuple_ `t=(x_1,...,x_n)`, but only if the resulting _Tuple_ `t'=(x_1,...,x_n,x)` is of length at most 255. Otherwise throws a type check exception.", "gas": "26+|t'|", "fift": "TPUSH\nCOMMA", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6F8C", - "tlb": "#6F8C", - "prefix": "6F8C", - "operands": [] + "fift_examples": [], + "opcode": "6F8C", + "stack": "t x - t'" }, + "bytecode": { "tlb": "#6F8C", "prefix": "6F8C", "operands": [] }, "value_flow": { - "doc_stack": "t x - t'", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] }, @@ -2378,16 +2272,12 @@ "description": "Detaches the last element `x=x_n` from a non-empty _Tuple_ `t=(x_1,...,x_n)`, and returns both the resulting _Tuple_ `t'=(x_1,...,x_{n-1})` and the original last element `x`.", "gas": "26+|t'|", "fift": "TPOP", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6F8D", - "tlb": "#6F8D", - "prefix": "6F8D", - "operands": [] + "fift_examples": [], + "opcode": "6F8D", + "stack": "t - t' x" }, + "bytecode": { "tlb": "#6F8D", "prefix": "6F8D", "operands": [] }, "value_flow": { - "doc_stack": "t - t' x", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] } @@ -2412,16 +2302,12 @@ "description": "Pushes a _Null_ under the topmost _Integer_ `x`, but only if `x!=0`.", "gas": "26", "fift": "NULLSWAPIF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6FA0", - "tlb": "#6FA0", - "prefix": "6FA0", - "operands": [] + "fift_examples": [], + "opcode": "6FA0", + "stack": "x - x or null x" }, + "bytecode": { "tlb": "#6FA0", "prefix": "6FA0", "operands": [] }, "value_flow": { - "doc_stack": "x - x or null x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -2451,16 +2337,12 @@ "description": "Pushes a _Null_ under the topmost _Integer_ `x`, but only if `x=0`. May be used for stack alignment after quiet primitives such as `PLDUXQ`.", "gas": "26", "fift": "NULLSWAPIFNOT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6FA1", - "tlb": "#6FA1", - "prefix": "6FA1", - "operands": [] + "fift_examples": [], + "opcode": "6FA1", + "stack": "x - x or null x" }, + "bytecode": { "tlb": "#6FA1", "prefix": "6FA1", "operands": [] }, "value_flow": { - "doc_stack": "x - x or null x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -2497,16 +2379,12 @@ "description": "Pushes a _Null_ under the second stack entry from the top, but only if the topmost _Integer_ `y` is non-zero.", "gas": "26", "fift": "NULLROTRIF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6FA2", - "tlb": "#6FA2", - "prefix": "6FA2", - "operands": [] + "fift_examples": [], + "opcode": "6FA2", + "stack": "x y - x y or null x y" }, + "bytecode": { "tlb": "#6FA2", "prefix": "6FA2", "operands": [] }, "value_flow": { - "doc_stack": "x y - x y or null x y", "inputs": { "stack": [ { "type": "simple", "name": "x" }, @@ -2538,16 +2416,12 @@ "description": "Pushes a _Null_ under the second stack entry from the top, but only if the topmost _Integer_ `y` is zero. May be used for stack alignment after quiet primitives such as `LDUXQ`.", "gas": "26", "fift": "NULLROTRIFNOT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6FA3", - "tlb": "#6FA3", - "prefix": "6FA3", - "operands": [] + "fift_examples": [], + "opcode": "6FA3", + "stack": "x y - x y or null x y" }, + "bytecode": { "tlb": "#6FA3", "prefix": "6FA3", "operands": [] }, "value_flow": { - "doc_stack": "x y - x y or null x y", "inputs": { "stack": [ { "type": "simple", "name": "x" }, @@ -2586,16 +2460,12 @@ "description": "Pushes two nulls under the topmost _Integer_ `x`, but only if `x!=0`.\nEquivalent to `NULLSWAPIF` `NULLSWAPIF`.", "gas": "26", "fift": "NULLSWAPIF2", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6FA4", - "tlb": "#6FA4", - "prefix": "6FA4", - "operands": [] + "fift_examples": [], + "opcode": "6FA4", + "stack": "x - x or null null x" }, + "bytecode": { "tlb": "#6FA4", "prefix": "6FA4", "operands": [] }, "value_flow": { - "doc_stack": "x - x or null null x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -2628,16 +2498,12 @@ "description": "Pushes two nulls under the topmost _Integer_ `x`, but only if `x=0`.\nEquivalent to `NULLSWAPIFNOT` `NULLSWAPIFNOT`.", "gas": "26", "fift": "NULLSWAPIFNOT2", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6FA5", - "tlb": "#6FA5", - "prefix": "6FA5", - "operands": [] + "fift_examples": [], + "opcode": "6FA5", + "stack": "x - x or null null x" }, + "bytecode": { "tlb": "#6FA5", "prefix": "6FA5", "operands": [] }, "value_flow": { - "doc_stack": "x - x or null null x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -2675,16 +2541,12 @@ "description": "Pushes two nulls under the second stack entry from the top, but only if the topmost _Integer_ `y` is non-zero.\nEquivalent to `NULLROTRIF` `NULLROTRIF`.", "gas": "26", "fift": "NULLROTRIF2", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6FA6", - "tlb": "#6FA6", - "prefix": "6FA6", - "operands": [] + "fift_examples": [], + "opcode": "6FA6", + "stack": "x y - x y or null null x y" }, + "bytecode": { "tlb": "#6FA6", "prefix": "6FA6", "operands": [] }, "value_flow": { - "doc_stack": "x y - x y or null null x y", "inputs": { "stack": [ { "type": "simple", "name": "x" }, @@ -2719,16 +2581,12 @@ "description": "Pushes two nulls under the second stack entry from the top, but only if the topmost _Integer_ `y` is zero.\nEquivalent to `NULLROTRIFNOT` `NULLROTRIFNOT`.", "gas": "26", "fift": "NULLROTRIFNOT2", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "6FA7", - "tlb": "#6FA7", - "prefix": "6FA7", - "operands": [] + "fift_examples": [], + "opcode": "6FA7", + "stack": "x y - x y or null null x y" }, + "bytecode": { "tlb": "#6FA7", "prefix": "6FA7", "operands": [] }, "value_flow": { - "doc_stack": "x y - x y or null null x y", "inputs": { "stack": [ { "type": "simple", "name": "x" }, @@ -2768,10 +2626,11 @@ "description": "Recovers `x=(t_{i+1})_{j+1}` for `0 <= i,j <= 3`.\nEquivalent to `[i] INDEX` `[j] INDEX`.", "gas": "26", "fift": "[i] [j] INDEX2", - "fift_examples": [] + "fift_examples": [], + "opcode": "6FBij", + "stack": "t - x" }, "bytecode": { - "doc_opcode": "6FBij", "tlb": "#6FB i:uint2 j:uint2", "prefix": "6FB", "operands": [ @@ -2794,7 +2653,6 @@ ] }, "value_flow": { - "doc_stack": "t - x", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] } @@ -2816,10 +2674,11 @@ "description": "Recovers `x=t_{i+1}_{j+1}_{k+1}`.\n`0 <= i,j,k <= 3`\nEquivalent to `[i] [j] INDEX2` `[k] INDEX`.", "gas": "26", "fift": "[i] [j] [k] INDEX3", - "fift_examples": [] + "fift_examples": [], + "opcode": "6FE_ijk", + "stack": "t - x" }, "bytecode": { - "doc_opcode": "6FE_ijk", "tlb": "#6FE_ i:uint2 j:uint2 k:uint2", "prefix": "6FE_", "operands": [ @@ -2850,7 +2709,6 @@ ] }, "value_flow": { - "doc_stack": "t - x", "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] } @@ -2872,10 +2730,11 @@ "description": "Pushes integer `x` into the stack. `-5 <= x <= 10`.\nHere `i` equals four lower-order bits of `x` (`i=x mod 16`).", "gas": "18", "fift": "[x] PUSHINT\n[x] INT", - "fift_examples": [] + "fift_examples": [], + "opcode": "7i", + "stack": "- x" }, "bytecode": { - "doc_opcode": "7i", "tlb": "#7 i:uint4", "prefix": "7", "operands": [ @@ -2890,7 +2749,6 @@ ] }, "value_flow": { - "doc_stack": "- x", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -2909,10 +2767,11 @@ "description": "Pushes integer `xx`. `-128 <= xx <= 127`.", "gas": "26", "fift": "[xx] PUSHINT\n[xx] INT", - "fift_examples": [] + "fift_examples": [], + "opcode": "80xx", + "stack": "- xx" }, "bytecode": { - "doc_opcode": "80xx", "tlb": "#80 xx:int8", "prefix": "80", "operands": [ @@ -2927,7 +2786,6 @@ ] }, "value_flow": { - "doc_stack": "- xx", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -2946,10 +2804,11 @@ "description": "Pushes integer `xxxx`. `-2^15 <= xx < 2^15`.", "gas": "34", "fift": "[xxxx] PUSHINT\n[xxxx] INT", - "fift_examples": [] + "fift_examples": [], + "opcode": "81xxxx", + "stack": "- xxxx" }, "bytecode": { - "doc_opcode": "81xxxx", "tlb": "#81 xxxx:int16", "prefix": "81", "operands": [ @@ -2964,7 +2823,6 @@ ] }, "value_flow": { - "doc_stack": "- xxxx", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -2983,19 +2841,17 @@ "description": "Pushes integer `xxx`.\n_Details:_ 5-bit `0 <= l <= 30` determines the length `n=8l+19` of signed big-endian integer `xxx`.\nThe total length of this instruction is `l+4` bytes or `n+13=8l+32` bits.", "gas": "23", "fift": "[xxx] PUSHINT\n[xxx] INT", - "fift_examples": [] + "fift_examples": [], + "opcode": "82lxxx", + "stack": "- xxx" }, "bytecode": { - "doc_opcode": "82lxxx", "tlb": "#82 l:(## 5) xxx:(int (8 * l + 19))", "prefix": "82", "operands_range_check": { "length": 5, "from": 0, "to": 30 }, - "operands": [ - { "name": "x", "type": "pushint_long" } - ] + "operands": [{ "name": "x", "type": "pushint_long" }] }, "value_flow": { - "doc_stack": "- xxx", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -3014,10 +2870,11 @@ "description": "(Quietly) pushes `2^(xx+1)` for `0 <= xx <= 255`.\n`2^256` is a `NaN`.", "gas": "26", "fift": "[xx+1] PUSHPOW2", - "fift_examples": [] + "fift_examples": [], + "opcode": "83xx", + "stack": "- 2^(xx+1)" }, "bytecode": { - "doc_opcode": "83xx", "tlb": "#83 xx:uint8", "prefix": "83", "operands_range_check": { "length": 8, "from": 0, "to": 254 }, @@ -3033,7 +2890,6 @@ ] }, "value_flow": { - "doc_stack": "- 2^(xx+1)", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -3052,16 +2908,12 @@ "description": "Pushes a `NaN`.", "gas": "26", "fift": "PUSHNAN", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "83FF", - "tlb": "#83FF", - "prefix": "83FF", - "operands": [] + "fift_examples": [], + "opcode": "83FF", + "stack": "- NaN" }, + "bytecode": { "tlb": "#83FF", "prefix": "83FF", "operands": [] }, "value_flow": { - "doc_stack": "- NaN", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -3080,10 +2932,11 @@ "description": "Pushes `2^(xx+1)-1` for `0 <= xx <= 255`.", "gas": "26", "fift": "[xx+1] PUSHPOW2DEC", - "fift_examples": [] + "fift_examples": [], + "opcode": "84xx", + "stack": "- 2^(xx+1)-1" }, "bytecode": { - "doc_opcode": "84xx", "tlb": "#84 xx:uint8", "prefix": "84", "operands": [ @@ -3098,7 +2951,6 @@ ] }, "value_flow": { - "doc_stack": "- 2^(xx+1)-1", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -3117,10 +2969,11 @@ "description": "Pushes `-2^(xx+1)` for `0 <= xx <= 255`.", "gas": "26", "fift": "[xx+1] PUSHNEGPOW2", - "fift_examples": [] + "fift_examples": [], + "opcode": "85xx", + "stack": "- -2^(xx+1)" }, "bytecode": { - "doc_opcode": "85xx", "tlb": "#85 xx:uint8", "prefix": "85", "operands": [ @@ -3135,7 +2988,6 @@ ] }, "value_flow": { - "doc_stack": "- -2^(xx+1)", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -3154,16 +3006,16 @@ "description": "Pushes the reference `ref` into the stack.\n_Details:_ Pushes the first reference of `cc.code` into the stack as a _Cell_ (and removes this reference from the current continuation).", "gas": "18", "fift": "[ref] PUSHREF", - "fift_examples": [] + "fift_examples": [], + "opcode": "88", + "stack": "- c" }, "bytecode": { - "doc_opcode": "88", "tlb": "#88 c:^Cell", "prefix": "88", "operands": [{ "name": "c", "type": "ref", "display_hints": [] }] }, "value_flow": { - "doc_stack": "- c", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -3182,16 +3034,16 @@ "description": "Similar to `PUSHREF`, but converts the cell into a _Slice_.", "gas": "118/43", "fift": "[ref] PUSHREFSLICE", - "fift_examples": [] + "fift_examples": [], + "opcode": "89", + "stack": "- s" }, "bytecode": { - "doc_opcode": "89", "tlb": "#89 c:^Cell", "prefix": "89", "operands": [{ "name": "c", "type": "ref", "display_hints": [] }] }, "value_flow": { - "doc_stack": "- s", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -3210,10 +3062,11 @@ "description": "Similar to `PUSHREFSLICE`, but makes a simple ordinary _Continuation_ out of the cell.", "gas": "118/43", "fift": "[ref] PUSHREFCONT", - "fift_examples": [] + "fift_examples": [], + "opcode": "8A", + "stack": "- cont" }, "bytecode": { - "doc_opcode": "8A", "tlb": "#8A c:^Cell", "prefix": "8A", "operands": [ @@ -3225,7 +3078,6 @@ ] }, "value_flow": { - "doc_stack": "- cont", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -3248,10 +3100,11 @@ "description": "Pushes the slice `slice` into the stack.\n_Details:_ Pushes the (prefix) subslice of `cc.code` consisting of its first `8x+4` bits and no references (i.e., essentially a bitstring), where `0 <= x <= 15`.\nA completion tag is assumed, meaning that all trailing zeroes and the last binary one (if present) are removed from this bitstring.\nIf the original bitstring consists only of zeroes, an empty slice will be pushed.", "gas": "22", "fift": "[slice] PUSHSLICE\n[slice] SLICE", - "fift_examples": [] + "fift_examples": [], + "opcode": "8Bxsss", + "stack": "- s" }, "bytecode": { - "doc_opcode": "8Bxsss", "tlb": "#8B x:(## 4) sss:((8 * x + 4) * Bit)", "prefix": "8B", "operands": [ @@ -3270,7 +3123,6 @@ ] }, "value_flow": { - "doc_stack": "- s", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -3289,10 +3141,11 @@ "description": "Pushes the slice `slice` into the stack.\n_Details:_ Pushes the (prefix) subslice of `cc.code` consisting of its first `1 <= r+1 <= 4` references and up to first `8xx+1` bits of data, with `0 <= xx <= 31`.\nA completion tag is also assumed.", "gas": "25", "fift": "[slice] PUSHSLICE\n[slice] SLICE", - "fift_examples": [] + "fift_examples": [], + "opcode": "8Crxxssss", + "stack": "- s" }, "bytecode": { - "doc_opcode": "8Crxxssss", "tlb": "#8C r:(## 2) xx:(## 5) c:((r + 1) * ^Cell) ssss:((8 * xx + 1) * Bit)", "prefix": "8C", "operands": [ @@ -3313,7 +3166,6 @@ ] }, "value_flow": { - "doc_stack": "- s", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -3341,10 +3193,11 @@ "fift": " PUSHREF PUSHREFSLICE", "description": "Examples of `PUSHREF` and `PUSHREFSLICE`. More on building cells in fift [here](https://github.com/Piterden/TON-docs/blob/master/Fift.%20A%20Brief%20Introduction.md#user-content-52-builder-primitives)." } - ] + ], + "opcode": "8Drxxsssss", + "stack": "- s" }, "bytecode": { - "doc_opcode": "8Drxxsssss", "tlb": "#8D r:(#<= 4) xx:(## 7) c:(r * ^Cell) ssss:((8 * xx + 6) * Bit)", "prefix": "8D", "operands_range_check": { "length": 3, "from": 0, "to": 4 }, @@ -3366,7 +3219,6 @@ ] }, "value_flow": { - "doc_stack": "- s", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -3385,10 +3237,11 @@ "description": "Pushes a continuation made from `builder`.\n_Details:_ Pushes the simple ordinary continuation `cccc` made from the first `0 <= r <= 3` references and the first `0 <= xx <= 127` bytes of `cc.code`.", "gas": "26", "fift": "[builder] PUSHCONT\n[builder] CONT", - "fift_examples": [] + "fift_examples": [], + "opcode": "8F_rxxcccc", + "stack": "- c" }, "bytecode": { - "doc_opcode": "8F_rxxcccc", "tlb": "#8F_ r:(## 2) xx:(## 7) c:(r * ^Cell) ssss:((8 * xx) * Bit)", "prefix": "8F_", "operands": [ @@ -3409,7 +3262,6 @@ ] }, "value_flow": { - "doc_stack": "- c", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -3437,10 +3289,11 @@ "fift": "<{ code }> PUSHCONT <{ code }> CONT CONT:<{ code }>", "description": "Pushes a continuation with code `code`. Note that the assembler can replace `PUSHCONT` with `PUSHREFCONT` in certain situations (e.g. if there's not enough space in the current continuation)." } - ] + ], + "opcode": "9xccc", + "stack": "- c" }, "bytecode": { - "doc_opcode": "9xccc", "tlb": "#9 x:(## 4) ssss:((8 * x) * Bit)", "prefix": "9", "operands": [ @@ -3459,7 +3312,6 @@ ] }, "value_flow": { - "doc_stack": "- c", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -3478,16 +3330,12 @@ "description": "", "gas": "18", "fift": "ADD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A0", - "tlb": "#A0", - "prefix": "A0", - "operands": [] + "fift_examples": [], + "opcode": "A0", + "stack": "x y - x+y" }, + "bytecode": { "tlb": "#A0", "prefix": "A0", "operands": [] }, "value_flow": { - "doc_stack": "x y - x+y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -3512,16 +3360,12 @@ "description": "", "gas": "18", "fift": "SUB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A1", - "tlb": "#A1", - "prefix": "A1", - "operands": [] + "fift_examples": [], + "opcode": "A1", + "stack": "x y - x-y" }, + "bytecode": { "tlb": "#A1", "prefix": "A1", "operands": [] }, "value_flow": { - "doc_stack": "x y - x-y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -3546,16 +3390,12 @@ "description": "Equivalent to `SWAP` `SUB`.", "gas": "18", "fift": "SUBR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A2", - "tlb": "#A2", - "prefix": "A2", - "operands": [] + "fift_examples": [], + "opcode": "A2", + "stack": "x y - y-x" }, + "bytecode": { "tlb": "#A2", "prefix": "A2", "operands": [] }, "value_flow": { - "doc_stack": "x y - y-x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -3580,16 +3420,12 @@ "description": "Equivalent to `-1 MULCONST` or to `ZERO SUBR`.\nNotice that it triggers an integer overflow exception if `x=-2^256`.", "gas": "18", "fift": "NEGATE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A3", - "tlb": "#A3", - "prefix": "A3", - "operands": [] + "fift_examples": [], + "opcode": "A3", + "stack": "x - -x" }, + "bytecode": { "tlb": "#A3", "prefix": "A3", "operands": [] }, "value_flow": { - "doc_stack": "x - -x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -3613,16 +3449,12 @@ "description": "Equivalent to `1 ADDCONST`.", "gas": "18", "fift": "INC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A4", - "tlb": "#A4", - "prefix": "A4", - "operands": [] + "fift_examples": [], + "opcode": "A4", + "stack": "x - x+1" }, + "bytecode": { "tlb": "#A4", "prefix": "A4", "operands": [] }, "value_flow": { - "doc_stack": "x - x+1", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -3646,16 +3478,12 @@ "description": "Equivalent to `-1 ADDCONST`.", "gas": "18", "fift": "DEC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A5", - "tlb": "#A5", - "prefix": "A5", - "operands": [] + "fift_examples": [], + "opcode": "A5", + "stack": "x - x-1" }, + "bytecode": { "tlb": "#A5", "prefix": "A5", "operands": [] }, "value_flow": { - "doc_stack": "x - x-1", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -3679,10 +3507,11 @@ "description": "`-128 <= cc <= 127`.", "gas": "26", "fift": "[cc] ADDCONST\n[cc] ADDINT\n[-cc] SUBCONST\n[-cc] SUBINT", - "fift_examples": [] + "fift_examples": [], + "opcode": "A6cc", + "stack": "x - x+cc" }, "bytecode": { - "doc_opcode": "A6cc", "tlb": "#A6 cc:int8", "prefix": "A6", "operands": [ @@ -3697,7 +3526,6 @@ ] }, "value_flow": { - "doc_stack": "x - x+cc", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -3721,10 +3549,11 @@ "description": "`-128 <= cc <= 127`.", "gas": "26", "fift": "[cc] MULCONST\n[cc] MULINT", - "fift_examples": [] + "fift_examples": [], + "opcode": "A7cc", + "stack": "x - x*cc" }, "bytecode": { - "doc_opcode": "A7cc", "tlb": "#A7 cc:int8", "prefix": "A7", "operands": [ @@ -3739,7 +3568,6 @@ ] }, "value_flow": { - "doc_stack": "x - x*cc", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -3763,16 +3591,12 @@ "description": "", "gas": "18", "fift": "MUL", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A8", - "tlb": "#A8", - "prefix": "A8", - "operands": [] + "fift_examples": [], + "opcode": "A8", + "stack": "x y - x*y" }, + "bytecode": { "tlb": "#A8", "prefix": "A8", "operands": [] }, "value_flow": { - "doc_stack": "x y - x*y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -3797,16 +3621,12 @@ "description": "", "gas": "26", "fift": "ADDDIVMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A900", - "tlb": "#A900", - "prefix": "A900", - "operands": [] + "fift_examples": [], + "opcode": "A900", + "stack": "x w z - q=floor((x+w)/z) r=(x+w)-zq" }, + "bytecode": { "tlb": "#A900", "prefix": "A900", "operands": [] }, "value_flow": { - "doc_stack": "x w z - q=floor((x+w)/z) r=(x+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -3833,16 +3653,12 @@ "description": "", "gas": "26", "fift": "ADDDIVMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A901", - "tlb": "#A901", - "prefix": "A901", - "operands": [] + "fift_examples": [], + "opcode": "A901", + "stack": "x w z - q=round((x+w)/z) r=(x+w)-zq" }, + "bytecode": { "tlb": "#A901", "prefix": "A901", "operands": [] }, "value_flow": { - "doc_stack": "x w z - q=round((x+w)/z) r=(x+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -3869,16 +3685,12 @@ "description": "", "gas": "26", "fift": "ADDDIVMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A902", - "tlb": "#A902", - "prefix": "A902", - "operands": [] + "fift_examples": [], + "opcode": "A902", + "stack": "x w y - q=ceil((x+w)/z) r=(x+w)-zq" }, + "bytecode": { "tlb": "#A902", "prefix": "A902", "operands": [] }, "value_flow": { - "doc_stack": "x w y - q=ceil((x+w)/z) r=(x+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -3905,16 +3717,12 @@ "description": "`q=floor(x/y)`, `r=x-y*q`", "gas": "26", "fift": "DIV", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A904", - "tlb": "#A904", - "prefix": "A904", - "operands": [] + "fift_examples": [], + "opcode": "A904", + "stack": "x y - q" }, + "bytecode": { "tlb": "#A904", "prefix": "A904", "operands": [] }, "value_flow": { - "doc_stack": "x y - q", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -3939,16 +3747,12 @@ "description": "`q'=round(x/y)`, `r'=x-y*q'`", "gas": "26", "fift": "DIVR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A905", - "tlb": "#A905", - "prefix": "A905", - "operands": [] + "fift_examples": [], + "opcode": "A905", + "stack": "x y - q'" }, + "bytecode": { "tlb": "#A905", "prefix": "A905", "operands": [] }, "value_flow": { - "doc_stack": "x y - q'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -3973,16 +3777,12 @@ "description": "`q''=ceil(x/y)`, `r''=x-y*q''`", "gas": "26", "fift": "DIVC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A906", - "tlb": "#A906", - "prefix": "A906", - "operands": [] + "fift_examples": [], + "opcode": "A906", + "stack": "x y - q''" }, + "bytecode": { "tlb": "#A906", "prefix": "A906", "operands": [] }, "value_flow": { - "doc_stack": "x y - q''", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4007,16 +3807,12 @@ "description": "", "gas": "26", "fift": "MOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A908", - "tlb": "#A908", - "prefix": "A908", - "operands": [] + "fift_examples": [], + "opcode": "A908", + "stack": "x y - r" }, + "bytecode": { "tlb": "#A908", "prefix": "A908", "operands": [] }, "value_flow": { - "doc_stack": "x y - r", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4041,16 +3837,12 @@ "description": "", "gas": "26", "fift": "MODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A909", - "tlb": "#A909", - "prefix": "A909", - "operands": [] + "fift_examples": [], + "opcode": "A909", + "stack": "x y - r" }, + "bytecode": { "tlb": "#A909", "prefix": "A909", "operands": [] }, "value_flow": { - "doc_stack": "x y - r", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4075,16 +3867,12 @@ "description": "", "gas": "26", "fift": "MODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A90A", - "tlb": "#A90A", - "prefix": "A90A", - "operands": [] + "fift_examples": [], + "opcode": "A90A", + "stack": "x y - r" }, + "bytecode": { "tlb": "#A90A", "prefix": "A90A", "operands": [] }, "value_flow": { - "doc_stack": "x y - r", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4109,16 +3897,12 @@ "description": "", "gas": "26", "fift": "DIVMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A90C", - "tlb": "#A90C", - "prefix": "A90C", - "operands": [] + "fift_examples": [], + "opcode": "A90C", + "stack": "x y - q r" }, + "bytecode": { "tlb": "#A90C", "prefix": "A90C", "operands": [] }, "value_flow": { - "doc_stack": "x y - q r", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4144,16 +3928,12 @@ "description": "", "gas": "26", "fift": "DIVMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A90D", - "tlb": "#A90D", - "prefix": "A90D", - "operands": [] + "fift_examples": [], + "opcode": "A90D", + "stack": "x y - q' r'" }, + "bytecode": { "tlb": "#A90D", "prefix": "A90D", "operands": [] }, "value_flow": { - "doc_stack": "x y - q' r'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4179,16 +3959,12 @@ "description": "", "gas": "26", "fift": "DIVMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A90E", - "tlb": "#A90E", - "prefix": "A90E", - "operands": [] + "fift_examples": [], + "opcode": "A90E", + "stack": "x y - q'' r''" }, + "bytecode": { "tlb": "#A90E", "prefix": "A90E", "operands": [] }, "value_flow": { - "doc_stack": "x y - q'' r''", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4214,16 +3990,12 @@ "description": "", "gas": "26", "fift": "ADDRSHIFTMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A920", - "tlb": "#A920", - "prefix": "A920", - "operands": [] + "fift_examples": [], + "opcode": "A920", + "stack": "x w z - q=floor((x+w)/2^z) r=(x+w)-q*2^z" }, + "bytecode": { "tlb": "#A920", "prefix": "A920", "operands": [] }, "value_flow": { - "doc_stack": "x w z - q=floor((x+w)/2^z) r=(x+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4250,16 +4022,12 @@ "description": "", "gas": "26", "fift": "ADDRSHIFTMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A921", - "tlb": "#A921", - "prefix": "A921", - "operands": [] + "fift_examples": [], + "opcode": "A921", + "stack": "x w z - q=round((x+w)/2^z) r=(x+w)-q*2^z" }, + "bytecode": { "tlb": "#A921", "prefix": "A921", "operands": [] }, "value_flow": { - "doc_stack": "x w z - q=round((x+w)/2^z) r=(x+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4286,16 +4054,12 @@ "description": "", "gas": "26", "fift": "ADDRSHIFTMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A922", - "tlb": "#A922", - "prefix": "A922", - "operands": [] + "fift_examples": [], + "opcode": "A922", + "stack": "x w z - q=ceil((x+w)/2^z) r=(x+w)-q*2^z" }, + "bytecode": { "tlb": "#A922", "prefix": "A922", "operands": [] }, "value_flow": { - "doc_stack": "x w z - q=ceil((x+w)/2^z) r=(x+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4322,16 +4086,12 @@ "description": "", "gas": "26", "fift": "RSHIFTR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A925", - "tlb": "#A925", - "prefix": "A925", - "operands": [] + "fift_examples": [], + "opcode": "A925", + "stack": "x y - round(x/2^y)" }, + "bytecode": { "tlb": "#A925", "prefix": "A925", "operands": [] }, "value_flow": { - "doc_stack": "x y - round(x/2^y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4356,16 +4116,12 @@ "description": "", "gas": "26", "fift": "RSHIFTC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A926", - "tlb": "#A926", - "prefix": "A926", - "operands": [] + "fift_examples": [], + "opcode": "A926", + "stack": "x y - ceil(x/2^y)" }, + "bytecode": { "tlb": "#A926", "prefix": "A926", "operands": [] }, "value_flow": { - "doc_stack": "x y - ceil(x/2^y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4390,16 +4146,12 @@ "description": "", "gas": "26", "fift": "MODPOW2", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A928", - "tlb": "#A928", - "prefix": "A928", - "operands": [] + "fift_examples": [], + "opcode": "A928", + "stack": "x y - x mod 2^y" }, + "bytecode": { "tlb": "#A928", "prefix": "A928", "operands": [] }, "value_flow": { - "doc_stack": "x y - x mod 2^y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4424,16 +4176,12 @@ "description": "", "gas": "26", "fift": "MODPOW2R", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A929", - "tlb": "#A929", - "prefix": "A929", - "operands": [] + "fift_examples": [], + "opcode": "A929", + "stack": "x y - x mod 2^y" }, + "bytecode": { "tlb": "#A929", "prefix": "A929", "operands": [] }, "value_flow": { - "doc_stack": "x y - x mod 2^y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4458,16 +4206,12 @@ "description": "", "gas": "26", "fift": "MODPOW2C", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A92A", - "tlb": "#A92A", - "prefix": "A92A", - "operands": [] + "fift_examples": [], + "opcode": "A92A", + "stack": "x y - x mod 2^y" }, + "bytecode": { "tlb": "#A92A", "prefix": "A92A", "operands": [] }, "value_flow": { - "doc_stack": "x y - x mod 2^y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4492,16 +4236,12 @@ "description": "", "gas": "26", "fift": "RSHIFTMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A92C", - "tlb": "#A92C", - "prefix": "A92C", - "operands": [] + "fift_examples": [], + "opcode": "A92C", + "stack": "x y - q=floor(x/2^y) r=x-q*2^y" }, + "bytecode": { "tlb": "#A92C", "prefix": "A92C", "operands": [] }, "value_flow": { - "doc_stack": "x y - q=floor(x/2^y) r=x-q*2^y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4527,16 +4267,12 @@ "description": "", "gas": "26", "fift": "RSHIFTMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A92D", - "tlb": "#A92D", - "prefix": "A92D", - "operands": [] + "fift_examples": [], + "opcode": "A92D", + "stack": "x y - q=round(x/2^y) r=x-q*2^y" }, + "bytecode": { "tlb": "#A92D", "prefix": "A92D", "operands": [] }, "value_flow": { - "doc_stack": "x y - q=round(x/2^y) r=x-q*2^y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4562,16 +4298,12 @@ "description": "", "gas": "26", "fift": "RSHIFTMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A92E", - "tlb": "#A92E", - "prefix": "A92E", - "operands": [] + "fift_examples": [], + "opcode": "A92E", + "stack": "x y - q=ceil(x/2^y) r=x-q*2^y" }, + "bytecode": { "tlb": "#A92E", "prefix": "A92E", "operands": [] }, "value_flow": { - "doc_stack": "x y - q=ceil(x/2^y) r=x-q*2^y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4597,10 +4329,11 @@ "description": "", "gas": "34", "fift": "[tt+1] ADDRSHIFT#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "A930tt", + "stack": "x w - q=floor((x+w)/2^(tt+1)) r=(x+w)-q*2^(tt+1)" }, "bytecode": { - "doc_opcode": "A930tt", "tlb": "#A930 tt:uint8", "prefix": "A930", "operands": [ @@ -4615,7 +4348,6 @@ ] }, "value_flow": { - "doc_stack": "x w - q=floor((x+w)/2^(tt+1)) r=(x+w)-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4641,10 +4373,11 @@ "description": "", "gas": "34", "fift": "[tt+1] ADDRSHIFTR#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "A931tt", + "stack": "x w - q=round((x+w)/2^(tt+1)) r=(x+w)-q*2^(tt+1)" }, "bytecode": { - "doc_opcode": "A931tt", "tlb": "#A931 tt:uint8", "prefix": "A931", "operands": [ @@ -4659,7 +4392,6 @@ ] }, "value_flow": { - "doc_stack": "x w - q=round((x+w)/2^(tt+1)) r=(x+w)-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4685,10 +4417,11 @@ "description": "", "gas": "34", "fift": "[tt+1] ADDRSHIFTC#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "A932tt", + "stack": "x w - q=round((x+w)/2^(tt+1)) r=(x+w)-q*2^(tt+1)" }, "bytecode": { - "doc_opcode": "A932tt", "tlb": "#A932 tt:uint8", "prefix": "A932", "operands": [ @@ -4703,7 +4436,6 @@ ] }, "value_flow": { - "doc_stack": "x w - q=round((x+w)/2^(tt+1)) r=(x+w)-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -4729,10 +4461,11 @@ "description": "", "gas": "34", "fift": "[tt+1] RSHIFTR#", - "fift_examples": [] + "fift_examples": [], + "opcode": "A935tt", + "stack": "x - round(x/2^(tt+1))" }, "bytecode": { - "doc_opcode": "A935tt", "tlb": "#A935 tt:uint8", "prefix": "A935", "operands": [ @@ -4747,7 +4480,6 @@ ] }, "value_flow": { - "doc_stack": "x - round(x/2^(tt+1))", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -4771,10 +4503,11 @@ "description": "", "gas": "34", "fift": "[tt+1] RSHIFTC#", - "fift_examples": [] + "fift_examples": [], + "opcode": "A936tt", + "stack": "x - ceil(x/2^(tt+1))" }, "bytecode": { - "doc_opcode": "A936tt", "tlb": "#A936 tt:uint8", "prefix": "A936", "operands": [ @@ -4789,7 +4522,6 @@ ] }, "value_flow": { - "doc_stack": "x - ceil(x/2^(tt+1))", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -4813,10 +4545,11 @@ "description": "", "gas": "34", "fift": "[tt+1] MODPOW2#", - "fift_examples": [] + "fift_examples": [], + "opcode": "A938tt", + "stack": "x - x mod 2^(tt+1)" }, "bytecode": { - "doc_opcode": "A938tt", "tlb": "#A938 tt:uint8", "prefix": "A938", "operands": [ @@ -4831,7 +4564,6 @@ ] }, "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -4855,10 +4587,11 @@ "description": "", "gas": "34", "fift": "[tt+1] MODPOW2R#", - "fift_examples": [] + "fift_examples": [], + "opcode": "A939tt", + "stack": "x - x mod 2^(tt+1)" }, "bytecode": { - "doc_opcode": "A939tt", "tlb": "#A939 tt:uint8", "prefix": "A939", "operands": [ @@ -4873,7 +4606,6 @@ ] }, "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -4897,10 +4629,11 @@ "description": "", "gas": "34", "fift": "[tt+1] MODPOW2C#", - "fift_examples": [] + "fift_examples": [], + "opcode": "A93Att", + "stack": "x - x mod 2^(tt+1)" }, "bytecode": { - "doc_opcode": "A93Att", "tlb": "#A93A tt:uint8", "prefix": "A93A", "operands": [ @@ -4915,7 +4648,6 @@ ] }, "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -4939,10 +4671,11 @@ "description": "", "gas": "34", "fift": "[tt+1] RSHIFT#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "A93Ctt", + "stack": "x - q=floor(x/2^(tt+1)) r=x-q*2^(tt+1)" }, "bytecode": { - "doc_opcode": "A93Ctt", "tlb": "#A93C tt:uint8", "prefix": "A93C", "operands": [ @@ -4957,7 +4690,6 @@ ] }, "value_flow": { - "doc_stack": "x - q=floor(x/2^(tt+1)) r=x-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -4982,10 +4714,11 @@ "description": "", "gas": "34", "fift": "[tt+1] RSHIFTR#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "A93Dtt", + "stack": "x - q=round(x/2^(tt+1)) r=x-q*2^(tt+1)" }, "bytecode": { - "doc_opcode": "A93Dtt", "tlb": "#A93D tt:uint8", "prefix": "A93D", "operands": [ @@ -5000,7 +4733,6 @@ ] }, "value_flow": { - "doc_stack": "x - q=round(x/2^(tt+1)) r=x-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -5025,10 +4757,11 @@ "description": "", "gas": "34", "fift": "[tt+1] RSHIFTC#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "A93Ett", + "stack": "x - q=ceil(x/2^(tt+1)) r=x-q*2^(tt+1)" }, "bytecode": { - "doc_opcode": "A93Ett", "tlb": "#A93E tt:uint8", "prefix": "A93E", "operands": [ @@ -5043,7 +4776,6 @@ ] }, "value_flow": { - "doc_stack": "x - q=ceil(x/2^(tt+1)) r=x-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -5068,16 +4800,12 @@ "description": "", "gas": "26", "fift": "MULADDDIVMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A980", - "tlb": "#A980", - "prefix": "A980", - "operands": [] + "fift_examples": [], + "opcode": "A980", + "stack": "x y w z - q=floor((xy+w)/z) r=(xy+w)-zq" }, + "bytecode": { "tlb": "#A980", "prefix": "A980", "operands": [] }, "value_flow": { - "doc_stack": "x y w z - q=floor((xy+w)/z) r=(xy+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5105,16 +4833,12 @@ "description": "", "gas": "26", "fift": "MULADDDIVMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A981", - "tlb": "#A981", - "prefix": "A981", - "operands": [] + "fift_examples": [], + "opcode": "A981", + "stack": "x y w z - q=round((xy+w)/z) r=(xy+w)-zq" }, + "bytecode": { "tlb": "#A981", "prefix": "A981", "operands": [] }, "value_flow": { - "doc_stack": "x y w z - q=round((xy+w)/z) r=(xy+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5142,16 +4866,12 @@ "description": "", "gas": "26", "fift": "MULADDDIVMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A982", - "tlb": "#A982", - "prefix": "A982", - "operands": [] + "fift_examples": [], + "opcode": "A982", + "stack": "x y w z - q=ceil((xy+w)/z) r=(xy+w)-zq" }, + "bytecode": { "tlb": "#A982", "prefix": "A982", "operands": [] }, "value_flow": { - "doc_stack": "x y w z - q=ceil((xy+w)/z) r=(xy+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5179,16 +4899,12 @@ "description": "`q=floor(x*y/z)`", "gas": "26", "fift": "MULDIV", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A984", - "tlb": "#A984", - "prefix": "A984", - "operands": [] + "fift_examples": [], + "opcode": "A984", + "stack": "x y z - q" }, + "bytecode": { "tlb": "#A984", "prefix": "A984", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5214,16 +4930,12 @@ "description": "`q'=round(x*y/z)`", "gas": "26", "fift": "MULDIVR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A985", - "tlb": "#A985", - "prefix": "A985", - "operands": [] + "fift_examples": [], + "opcode": "A985", + "stack": "x y z - q'" }, + "bytecode": { "tlb": "#A985", "prefix": "A985", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5249,16 +4961,12 @@ "description": "`q'=ceil(x*y/z)`", "gas": "26", "fift": "MULDIVC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A986", - "tlb": "#A986", - "prefix": "A986", - "operands": [] + "fift_examples": [], + "opcode": "A986", + "stack": "x y z - q'" }, + "bytecode": { "tlb": "#A986", "prefix": "A986", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5284,16 +4992,12 @@ "description": "", "gas": "26", "fift": "MULMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A988", - "tlb": "#A988", - "prefix": "A988", - "operands": [] + "fift_examples": [], + "opcode": "A988", + "stack": "x y z - x*y mod z" }, + "bytecode": { "tlb": "#A988", "prefix": "A988", "operands": [] }, "value_flow": { - "doc_stack": "x y z - x*y mod z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5319,16 +5023,12 @@ "description": "", "gas": "26", "fift": "MULMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A989", - "tlb": "#A989", - "prefix": "A989", - "operands": [] + "fift_examples": [], + "opcode": "A989", + "stack": "x y z - x*y mod z" }, + "bytecode": { "tlb": "#A989", "prefix": "A989", "operands": [] }, "value_flow": { - "doc_stack": "x y z - x*y mod z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5354,16 +5054,12 @@ "description": "", "gas": "26", "fift": "MULMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A98A", - "tlb": "#A98A", - "prefix": "A98A", - "operands": [] + "fift_examples": [], + "opcode": "A98A", + "stack": "x y z - x*y mod z" }, + "bytecode": { "tlb": "#A98A", "prefix": "A98A", "operands": [] }, "value_flow": { - "doc_stack": "x y z - x*y mod z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5389,16 +5085,12 @@ "description": "`q=floor(x*y/z)`, `r=x*y-z*q`", "gas": "26", "fift": "MULDIVMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A98C", - "tlb": "#A98C", - "prefix": "A98C", - "operands": [] + "fift_examples": [], + "opcode": "A98C", + "stack": "x y z - q r" }, + "bytecode": { "tlb": "#A98C", "prefix": "A98C", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q r", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5425,16 +5117,12 @@ "description": "`q=round(x*y/z)`, `r=x*y-z*q`", "gas": "26", "fift": "MULDIVMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A98D", - "tlb": "#A98D", - "prefix": "A98D", - "operands": [] + "fift_examples": [], + "opcode": "A98D", + "stack": "x y z - q r" }, + "bytecode": { "tlb": "#A98D", "prefix": "A98D", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q r", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5461,16 +5149,12 @@ "description": "`q=ceil(x*y/z)`, `r=x*y-z*q`", "gas": "26", "fift": "MULDIVMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A98E", - "tlb": "#A98E", - "prefix": "A98E", - "operands": [] + "fift_examples": [], + "opcode": "A98E", + "stack": "x y z - q r" }, + "bytecode": { "tlb": "#A98E", "prefix": "A98E", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q r", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5497,16 +5181,12 @@ "description": "", "gas": "26", "fift": "MULADDRSHIFTMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9A0", - "tlb": "#A9A0", - "prefix": "A9A0", - "operands": [] + "fift_examples": [], + "opcode": "A9A0", + "stack": "x y w z - q=floor((xy+w)/2^z) r=(xy+w)-q*2^z" }, + "bytecode": { "tlb": "#A9A0", "prefix": "A9A0", "operands": [] }, "value_flow": { - "doc_stack": "x y w z - q=floor((xy+w)/2^z) r=(xy+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5534,16 +5214,12 @@ "description": "", "gas": "26", "fift": "MULADDRSHIFTRMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9A1", - "tlb": "#A9A1", - "prefix": "A9A1", - "operands": [] + "fift_examples": [], + "opcode": "A9A1", + "stack": "x y w z - q=round((xy+w)/2^z) r=(xy+w)-q*2^z" }, + "bytecode": { "tlb": "#A9A1", "prefix": "A9A1", "operands": [] }, "value_flow": { - "doc_stack": "x y w z - q=round((xy+w)/2^z) r=(xy+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5571,16 +5247,12 @@ "description": "", "gas": "26", "fift": "MULADDRSHIFTCMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9A2", - "tlb": "#A9A2", - "prefix": "A9A2", - "operands": [] + "fift_examples": [], + "opcode": "A9A2", + "stack": "x y w z - q=ceil((xy+w)/2^z) r=(xy+w)-q*2^z" }, + "bytecode": { "tlb": "#A9A2", "prefix": "A9A2", "operands": [] }, "value_flow": { - "doc_stack": "x y w z - q=ceil((xy+w)/2^z) r=(xy+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5608,16 +5280,12 @@ "description": "`0 <= z <= 256`", "gas": "26", "fift": "MULRSHIFT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9A4", - "tlb": "#A9A4", - "prefix": "A9A4", - "operands": [] + "fift_examples": [], + "opcode": "A9A4", + "stack": "x y z - floor(x*y/2^z)" }, + "bytecode": { "tlb": "#A9A4", "prefix": "A9A4", "operands": [] }, "value_flow": { - "doc_stack": "x y z - floor(x*y/2^z)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5643,16 +5311,12 @@ "description": "`0 <= z <= 256`", "gas": "26", "fift": "MULRSHIFTR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9A5", - "tlb": "#A9A5", - "prefix": "A9A5", - "operands": [] + "fift_examples": [], + "opcode": "A9A5", + "stack": "x y z - round(x*y/2^z)" }, + "bytecode": { "tlb": "#A9A5", "prefix": "A9A5", "operands": [] }, "value_flow": { - "doc_stack": "x y z - round(x*y/2^z)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5678,16 +5342,12 @@ "description": "`0 <= z <= 256`", "gas": "26", "fift": "MULRSHIFTC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9A6", - "tlb": "#A9A6", - "prefix": "A9A6", - "operands": [] + "fift_examples": [], + "opcode": "A9A6", + "stack": "x y z - ceil(x*y/2^z)" }, + "bytecode": { "tlb": "#A9A6", "prefix": "A9A6", "operands": [] }, "value_flow": { - "doc_stack": "x y z - ceil(x*y/2^z)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5713,16 +5373,12 @@ "description": "", "gas": "26", "fift": "MULMODPOW2_VAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9A8", - "tlb": "#A9A8", - "prefix": "A9A8", - "operands": [] + "fift_examples": [], + "opcode": "A9A8", + "stack": "x y z - x*y mod 2^z" }, + "bytecode": { "tlb": "#A9A8", "prefix": "A9A8", "operands": [] }, "value_flow": { - "doc_stack": "x y z - x*y mod 2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5748,16 +5404,12 @@ "description": "", "gas": "26", "fift": "MULMODPOW2R_VAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9A9", - "tlb": "#A9A9", - "prefix": "A9A9", - "operands": [] + "fift_examples": [], + "opcode": "A9A9", + "stack": "x y z - x*y mod 2^z" }, + "bytecode": { "tlb": "#A9A9", "prefix": "A9A9", "operands": [] }, "value_flow": { - "doc_stack": "x y z - x*y mod 2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5783,16 +5435,12 @@ "description": "", "gas": "26", "fift": "MULMODPOW2C_VAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9AA", - "tlb": "#A9AA", - "prefix": "A9AA", - "operands": [] + "fift_examples": [], + "opcode": "A9AA", + "stack": "x y z - x*y mod 2^z" }, + "bytecode": { "tlb": "#A9AA", "prefix": "A9AA", "operands": [] }, "value_flow": { - "doc_stack": "x y z - x*y mod 2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5818,16 +5466,12 @@ "description": "", "gas": "26", "fift": "MULRSHIFTMOD_VAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9AC", - "tlb": "#A9AC", - "prefix": "A9AC", - "operands": [] + "fift_examples": [], + "opcode": "A9AC", + "stack": "x y z - q=floor(x*y/2^z) r=xy-q*2^z" }, + "bytecode": { "tlb": "#A9AC", "prefix": "A9AC", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q=floor(x*y/2^z) r=xy-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5853,16 +5497,12 @@ "description": "", "gas": "26", "fift": "MULRSHIFTRMOD_VAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9AD", - "tlb": "#A9AD", - "prefix": "A9AD", - "operands": [] + "fift_examples": [], + "opcode": "A9AD", + "stack": "x y z - q=round(x*y/2^z) r=xy-q*2^z" }, + "bytecode": { "tlb": "#A9AD", "prefix": "A9AD", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q=round(x*y/2^z) r=xy-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5888,16 +5528,12 @@ "description": "", "gas": "26", "fift": "MULRSHIFTCMOD_VAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9AE", - "tlb": "#A9AE", - "prefix": "A9AE", - "operands": [] + "fift_examples": [], + "opcode": "A9AE", + "stack": "x y z - q=ceil(x*y/2^z) r=xy-q*2^z" }, + "bytecode": { "tlb": "#A9AE", "prefix": "A9AE", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q=ceil(x*y/2^z) r=xy-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5923,10 +5559,11 @@ "description": "", "gas": "34", "fift": "[tt+1] MULADDRSHIFT#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9B0tt", + "stack": "x y w - q=floor((xy+w)/2^z) r=(xy+w)-q*2^z" }, "bytecode": { - "doc_opcode": "A9B0tt", "tlb": "#A9B0 tt:uint8", "prefix": "A9B0", "operands": [ @@ -5941,7 +5578,6 @@ ] }, "value_flow": { - "doc_stack": "x y w - q=floor((xy+w)/2^z) r=(xy+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -5967,10 +5603,11 @@ "description": "", "gas": "34", "fift": "[tt+1] MULADDRSHIFTR#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9B1tt", + "stack": "x y w - q=round((xy+w)/2^z) r=(xy+w)-q*2^z" }, "bytecode": { - "doc_opcode": "A9B1tt", "tlb": "#A9B1 tt:uint8", "prefix": "A9B1", "operands": [ @@ -5985,7 +5622,6 @@ ] }, "value_flow": { - "doc_stack": "x y w - q=round((xy+w)/2^z) r=(xy+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6011,10 +5647,11 @@ "description": "", "gas": "34", "fift": "[tt+1] MULADDRSHIFTC#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9B2tt", + "stack": "x y w - q=ceil((xy+w)/2^z) r=(xy+w)-q*2^z" }, "bytecode": { - "doc_opcode": "A9B2tt", "tlb": "#A9B2 tt:uint8", "prefix": "A9B2", "operands": [ @@ -6029,7 +5666,6 @@ ] }, "value_flow": { - "doc_stack": "x y w - q=ceil((xy+w)/2^z) r=(xy+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6055,10 +5691,11 @@ "description": "", "gas": "34", "fift": "[tt+1] MULRSHIFT#", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9B4tt", + "stack": "x y - floor(x*y/2^(tt+1))" }, "bytecode": { - "doc_opcode": "A9B4tt", "tlb": "#A9B4 tt:uint8", "prefix": "A9B4", "operands": [ @@ -6073,7 +5710,6 @@ ] }, "value_flow": { - "doc_stack": "x y - floor(x*y/2^(tt+1))", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6098,10 +5734,11 @@ "description": "", "gas": "34", "fift": "[tt+1] MULRSHIFTR#", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9B5tt", + "stack": "x y - round(x*y/2^(tt+1))" }, "bytecode": { - "doc_opcode": "A9B5tt", "tlb": "#A9B5 tt:uint8", "prefix": "A9B5", "operands": [ @@ -6116,7 +5753,6 @@ ] }, "value_flow": { - "doc_stack": "x y - round(x*y/2^(tt+1))", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6141,10 +5777,11 @@ "description": "", "gas": "34", "fift": "[tt+1] MULRSHIFTC#", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9B6tt", + "stack": "x y - ceil(x*y/2^(tt+1))" }, "bytecode": { - "doc_opcode": "A9B6tt", "tlb": "#A9B6 tt:uint8", "prefix": "A9B6", "operands": [ @@ -6159,7 +5796,6 @@ ] }, "value_flow": { - "doc_stack": "x y - ceil(x*y/2^(tt+1))", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6184,10 +5820,11 @@ "description": "", "gas": "34", "fift": "[tt+1] MULMODPOW2#", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9B8tt", + "stack": "x y - x*y mod 2^(tt+1)" }, "bytecode": { - "doc_opcode": "A9B8tt", "tlb": "#A9B8 tt:uint8", "prefix": "A9B8", "operands": [ @@ -6202,7 +5839,6 @@ ] }, "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6227,10 +5863,11 @@ "description": "", "gas": "34", "fift": "[tt+1] MULMODPOW2R#", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9B9tt", + "stack": "x y - x*y mod 2^(tt+1)" }, "bytecode": { - "doc_opcode": "A9B9tt", "tlb": "#A9B9 tt:uint8", "prefix": "A9B9", "operands": [ @@ -6245,7 +5882,6 @@ ] }, "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6270,10 +5906,11 @@ "description": "", "gas": "34", "fift": "[tt+1] MULMODPOW2C#", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9BAtt", + "stack": "x y - x*y mod 2^(tt+1)" }, "bytecode": { - "doc_opcode": "A9BAtt", "tlb": "#A9BA tt:uint8", "prefix": "A9BA", "operands": [ @@ -6288,7 +5925,6 @@ ] }, "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6313,10 +5949,11 @@ "description": "", "gas": "34", "fift": "MULRSHIFT#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9BC", + "stack": "x y - q=floor(x*y/2^(tt+1)) r=xy-q*2^(tt+1)" }, "bytecode": { - "doc_opcode": "A9BC", "tlb": "#A9BC", "prefix": "A9BC", "operands": [ @@ -6331,7 +5968,6 @@ ] }, "value_flow": { - "doc_stack": "x y - q=floor(x*y/2^(tt+1)) r=xy-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6356,10 +5992,11 @@ "description": "", "gas": "34", "fift": "MULRSHIFTR#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9BD", + "stack": "x y - q=round(x*y/2^(tt+1)) r=xy-q*2^(tt+1)" }, "bytecode": { - "doc_opcode": "A9BD", "tlb": "#A9BD", "prefix": "A9BD", "operands": [ @@ -6374,7 +6011,6 @@ ] }, "value_flow": { - "doc_stack": "x y - q=round(x*y/2^(tt+1)) r=xy-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6399,10 +6035,11 @@ "description": "", "gas": "34", "fift": "MULRSHIFTC#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9BE", + "stack": "x y - q=ceil(x*y/2^(tt+1)) r=xy-q*2^(tt+1)" }, "bytecode": { - "doc_opcode": "A9BE", "tlb": "#A9BE", "prefix": "A9BE", "operands": [ @@ -6417,7 +6054,6 @@ ] }, "value_flow": { - "doc_stack": "x y - q=ceil(x*y/2^(tt+1)) r=xy-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6442,16 +6078,12 @@ "description": "", "gas": "26", "fift": "LSHIFTADDDIVMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9C0", - "tlb": "#A9C0", - "prefix": "A9C0", - "operands": [] + "fift_examples": [], + "opcode": "A9C0", + "stack": "x w z y - q=floor((x*2^y+w)/z) r=(x*2^y+w)-zq" }, + "bytecode": { "tlb": "#A9C0", "prefix": "A9C0", "operands": [] }, "value_flow": { - "doc_stack": "x w z y - q=floor((x*2^y+w)/z) r=(x*2^y+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6478,16 +6110,12 @@ "description": "", "gas": "26", "fift": "LSHIFTADDDIVMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9C1", - "tlb": "#A9C1", - "prefix": "A9C1", - "operands": [] + "fift_examples": [], + "opcode": "A9C1", + "stack": "x w z y - q=round((x*2^y+w)/z) r=(x*2^y+w)-zq" }, + "bytecode": { "tlb": "#A9C1", "prefix": "A9C1", "operands": [] }, "value_flow": { - "doc_stack": "x w z y - q=round((x*2^y+w)/z) r=(x*2^y+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6514,16 +6142,12 @@ "description": "", "gas": "26", "fift": "LSHIFTADDDIVMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9C2", - "tlb": "#A9C2", - "prefix": "A9C2", - "operands": [] + "fift_examples": [], + "opcode": "A9C2", + "stack": "x w z y - q=round((x*2^y+w)/z) r=(x*2^y+w)-zq" }, + "bytecode": { "tlb": "#A9C2", "prefix": "A9C2", "operands": [] }, "value_flow": { - "doc_stack": "x w z y - q=round((x*2^y+w)/z) r=(x*2^y+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6550,16 +6174,12 @@ "description": "`0 <= z <= 256`", "gas": "26", "fift": "LSHIFTDIV", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9C4", - "tlb": "#A9C4", - "prefix": "A9C4", - "operands": [] + "fift_examples": [], + "opcode": "A9C4", + "stack": "x y z - floor(2^z*x/y)" }, + "bytecode": { "tlb": "#A9C4", "prefix": "A9C4", "operands": [] }, "value_flow": { - "doc_stack": "x y z - floor(2^z*x/y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6585,16 +6205,12 @@ "description": "`0 <= z <= 256`", "gas": "26", "fift": "LSHIFTDIVR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9C5", - "tlb": "#A9C5", - "prefix": "A9C5", - "operands": [] + "fift_examples": [], + "opcode": "A9C5", + "stack": "x y z - round(2^z*x/y)" }, + "bytecode": { "tlb": "#A9C5", "prefix": "A9C5", "operands": [] }, "value_flow": { - "doc_stack": "x y z - round(2^z*x/y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6620,16 +6236,12 @@ "description": "`0 <= z <= 256`", "gas": "26", "fift": "LSHIFTDIVC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9C6", - "tlb": "#A9C6", - "prefix": "A9C6", - "operands": [] + "fift_examples": [], + "opcode": "A9C6", + "stack": "x y z - ceil(2^z*x/y)" }, + "bytecode": { "tlb": "#A9C6", "prefix": "A9C6", "operands": [] }, "value_flow": { - "doc_stack": "x y z - ceil(2^z*x/y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6655,16 +6267,12 @@ "description": "", "gas": "26", "fift": "LSHIFTMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9C8", - "tlb": "#A9C8", - "prefix": "A9C8", - "operands": [] + "fift_examples": [], + "opcode": "A9C8", + "stack": "x y z - 2^z*x mod y" }, + "bytecode": { "tlb": "#A9C8", "prefix": "A9C8", "operands": [] }, "value_flow": { - "doc_stack": "x y z - 2^z*x mod y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6690,16 +6298,12 @@ "description": "", "gas": "26", "fift": "LSHIFTMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9C9", - "tlb": "#A9C9", - "prefix": "A9C9", - "operands": [] + "fift_examples": [], + "opcode": "A9C9", + "stack": "x y z - 2^z*x mod y" }, + "bytecode": { "tlb": "#A9C9", "prefix": "A9C9", "operands": [] }, "value_flow": { - "doc_stack": "x y z - 2^z*x mod y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6725,16 +6329,12 @@ "description": "", "gas": "26", "fift": "LSHIFTMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9CA", - "tlb": "#A9CA", - "prefix": "A9CA", - "operands": [] + "fift_examples": [], + "opcode": "A9CA", + "stack": "x y z - 2^z*x mod y" }, + "bytecode": { "tlb": "#A9CA", "prefix": "A9CA", "operands": [] }, "value_flow": { - "doc_stack": "x y z - 2^z*x mod y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6760,16 +6360,12 @@ "description": "", "gas": "26", "fift": "LSHIFTDIVMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9CC", - "tlb": "#A9CC", - "prefix": "A9CC", - "operands": [] + "fift_examples": [], + "opcode": "A9CC", + "stack": "x y z - q=floor(2^z*x/y) r=2^z*x-q*y" }, + "bytecode": { "tlb": "#A9CC", "prefix": "A9CC", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q=floor(2^z*x/y) r=2^z*x-q*y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6795,16 +6391,12 @@ "description": "", "gas": "26", "fift": "LSHIFTDIVMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9CD", - "tlb": "#A9CD", - "prefix": "A9CD", - "operands": [] + "fift_examples": [], + "opcode": "A9CD", + "stack": "x y z - q=round(2^z*x/y) r=2^z*x-q*y" }, + "bytecode": { "tlb": "#A9CD", "prefix": "A9CD", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q=round(2^z*x/y) r=2^z*x-q*y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6830,16 +6422,12 @@ "description": "", "gas": "26", "fift": "LSHIFTDIVMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "A9CE", - "tlb": "#A9CE", - "prefix": "A9CE", - "operands": [] + "fift_examples": [], + "opcode": "A9CE", + "stack": "x y z - q=ceil(2^z*x/y) r=2^z*x-q*y" }, + "bytecode": { "tlb": "#A9CE", "prefix": "A9CE", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q=ceil(2^z*x/y) r=2^z*x-q*y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6865,10 +6453,11 @@ "description": "", "gas": "34", "fift": "[tt+1] LSHIFT#ADDDIVMOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9D0tt", + "stack": "x w z - q=floor((x*2^y+w)/z) r=(x*2^y+w)-zq" }, "bytecode": { - "doc_opcode": "A9D0tt", "tlb": "#A9D0 tt:uint8", "prefix": "A9D0", "operands": [ @@ -6883,7 +6472,6 @@ ] }, "value_flow": { - "doc_stack": "x w z - q=floor((x*2^y+w)/z) r=(x*2^y+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6909,10 +6497,11 @@ "description": "", "gas": "34", "fift": "[tt+1] LSHIFT#ADDDIVMODR", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9D1tt", + "stack": "x w z - q=round((x*2^y+w)/z) r=(x*2^y+w)-zq" }, "bytecode": { - "doc_opcode": "A9D1tt", "tlb": "#A9D1 tt:uint8", "prefix": "A9D1", "operands": [ @@ -6927,7 +6516,6 @@ ] }, "value_flow": { - "doc_stack": "x w z - q=round((x*2^y+w)/z) r=(x*2^y+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6953,10 +6541,11 @@ "description": "", "gas": "34", "fift": "[tt+1] LSHIFT#ADDDIVMODC", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9D2tt", + "stack": "x w z - q=ceil((x*2^y+w)/z) r=(x*2^y+w)-zq" }, "bytecode": { - "doc_opcode": "A9D2tt", "tlb": "#A9D2 tt:uint8", "prefix": "A9D2", "operands": [ @@ -6971,7 +6560,6 @@ ] }, "value_flow": { - "doc_stack": "x w z - q=ceil((x*2^y+w)/z) r=(x*2^y+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -6997,10 +6585,11 @@ "description": "", "gas": "34", "fift": "[tt+1] LSHIFT#DIV", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9D4tt", + "stack": "x y - floor(2^(tt+1)*x/y)" }, "bytecode": { - "doc_opcode": "A9D4tt", "tlb": "#A9D4 tt:uint8", "prefix": "A9D4", "operands": [ @@ -7015,7 +6604,6 @@ ] }, "value_flow": { - "doc_stack": "x y - floor(2^(tt+1)*x/y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7040,10 +6628,11 @@ "description": "", "gas": "34", "fift": "[tt+1] LSHIFT#DIVR", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9D5tt", + "stack": "x y - round(2^(tt+1)*x/y)" }, "bytecode": { - "doc_opcode": "A9D5tt", "tlb": "#A9D5 tt:uint8", "prefix": "A9D5", "operands": [ @@ -7058,7 +6647,6 @@ ] }, "value_flow": { - "doc_stack": "x y - round(2^(tt+1)*x/y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7083,10 +6671,11 @@ "description": "", "gas": "26", "fift": "[tt+1] LSHIFT#DIVC", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9D6tt", + "stack": "x y - ceil(2^(tt+1)*x/y)" }, "bytecode": { - "doc_opcode": "A9D6tt", "tlb": "#A9D6 tt:uint8", "prefix": "A9D6", "operands": [ @@ -7101,7 +6690,6 @@ ] }, "value_flow": { - "doc_stack": "x y - ceil(2^(tt+1)*x/y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7126,10 +6714,11 @@ "description": "", "gas": "34", "fift": "[tt+1] LSHIFT#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9D8tt", + "stack": "x y - 2^(tt+1)*x mod y" }, "bytecode": { - "doc_opcode": "A9D8tt", "tlb": "#A9D8 tt:uint8", "prefix": "A9D8", "operands": [ @@ -7144,7 +6733,6 @@ ] }, "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7169,10 +6757,11 @@ "description": "", "gas": "34", "fift": "[tt+1] LSHIFT#MODR", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9D9tt", + "stack": "x y - 2^(tt+1)*x mod y" }, "bytecode": { - "doc_opcode": "A9D9tt", "tlb": "#A9D9 tt:uint8", "prefix": "A9D9", "operands": [ @@ -7187,7 +6776,6 @@ ] }, "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7212,10 +6800,11 @@ "description": "", "gas": "34", "fift": "[tt+1] LSHIFT#MODC", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9DAtt", + "stack": "x y - 2^(tt+1)*x mod y" }, "bytecode": { - "doc_opcode": "A9DAtt", "tlb": "#A9DA tt:uint8", "prefix": "A9DA", "operands": [ @@ -7230,7 +6819,6 @@ ] }, "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7255,10 +6843,11 @@ "description": "", "gas": "34", "fift": "[tt+1] LSHIFT#DIVMOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9DCtt", + "stack": "x y - q=floor(2^(tt+1)*x/y) r=2^(tt+1)*x-q*y" }, "bytecode": { - "doc_opcode": "A9DCtt", "tlb": "#A9DC tt:uint8", "prefix": "A9DC", "operands": [ @@ -7273,7 +6862,6 @@ ] }, "value_flow": { - "doc_stack": "x y - q=floor(2^(tt+1)*x/y) r=2^(tt+1)*x-q*y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7298,10 +6886,11 @@ "description": "", "gas": "34", "fift": "[tt+1] LSHIFT#DIVMODR", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9DDtt", + "stack": "x y - q=round(2^(tt+1)*x/y) r=2^(tt+1)*x-q*y" }, "bytecode": { - "doc_opcode": "A9DDtt", "tlb": "#A9DD tt:uint8", "prefix": "A9DD", "operands": [ @@ -7316,7 +6905,6 @@ ] }, "value_flow": { - "doc_stack": "x y - q=round(2^(tt+1)*x/y) r=2^(tt+1)*x-q*y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7341,10 +6929,11 @@ "description": "", "gas": "34", "fift": "[tt+1] LSHIFT#DIVMODC", - "fift_examples": [] + "fift_examples": [], + "opcode": "A9DEtt", + "stack": "x y - q=ceil(2^(tt+1)*x/y) r=2^(tt+1)*x-q*y" }, "bytecode": { - "doc_opcode": "A9DEtt", "tlb": "#A9DE tt:uint8", "prefix": "A9DE", "operands": [ @@ -7359,7 +6948,6 @@ ] }, "value_flow": { - "doc_stack": "x y - q=ceil(2^(tt+1)*x/y) r=2^(tt+1)*x-q*y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7384,10 +6972,11 @@ "description": "`0 <= cc <= 255`", "gas": "26", "fift": "[cc+1] LSHIFT#", - "fift_examples": [] + "fift_examples": [], + "opcode": "AAcc", + "stack": "x - x*2^(cc+1)" }, "bytecode": { - "doc_opcode": "AAcc", "tlb": "#AA cc:uint8", "prefix": "AA", "operands": [ @@ -7402,7 +6991,6 @@ ] }, "value_flow": { - "doc_stack": "x - x*2^(cc+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -7426,10 +7014,11 @@ "description": "`0 <= cc <= 255`", "gas": "18", "fift": "[cc+1] RSHIFT#", - "fift_examples": [] + "fift_examples": [], + "opcode": "ABcc", + "stack": "x - floor(x/2^(cc+1))" }, "bytecode": { - "doc_opcode": "ABcc", "tlb": "#AB cc:uint8", "prefix": "AB", "operands": [ @@ -7444,7 +7033,6 @@ ] }, "value_flow": { - "doc_stack": "x - floor(x/2^(cc+1))", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -7468,16 +7056,12 @@ "description": "`0 <= y <= 1023`", "gas": "18", "fift": "LSHIFT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "AC", - "tlb": "#AC", - "prefix": "AC", - "operands": [] + "fift_examples": [], + "opcode": "AC", + "stack": "x y - x*2^y" }, + "bytecode": { "tlb": "#AC", "prefix": "AC", "operands": [] }, "value_flow": { - "doc_stack": "x y - x*2^y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7502,16 +7086,12 @@ "description": "`0 <= y <= 1023`", "gas": "18", "fift": "RSHIFT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "AD", - "tlb": "#AD", - "prefix": "AD", - "operands": [] + "fift_examples": [], + "opcode": "AD", + "stack": "x y - floor(x/2^y)" }, + "bytecode": { "tlb": "#AD", "prefix": "AD", "operands": [] }, "value_flow": { - "doc_stack": "x y - floor(x/2^y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7536,16 +7116,12 @@ "description": "`0 <= y <= 1023`\nEquivalent to `ONE` `SWAP` `LSHIFT`.", "gas": "18", "fift": "POW2", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "AE", - "tlb": "#AE", - "prefix": "AE", - "operands": [] + "fift_examples": [], + "opcode": "AE", + "stack": "y - 2^y" }, + "bytecode": { "tlb": "#AE", "prefix": "AE", "operands": [] }, "value_flow": { - "doc_stack": "y - 2^y", "inputs": { "stack": [ { "type": "simple", "name": "y", "value_types": ["Integer"] } @@ -7569,16 +7145,12 @@ "description": "Bitwise and of two signed integers `x` and `y`, sign-extended to infinity.", "gas": "18", "fift": "AND", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B0", - "tlb": "#B0", - "prefix": "B0", - "operands": [] + "fift_examples": [], + "opcode": "B0", + "stack": "x y - x&y" }, + "bytecode": { "tlb": "#B0", "prefix": "B0", "operands": [] }, "value_flow": { - "doc_stack": "x y - x&y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7603,16 +7175,12 @@ "description": "Bitwise or of two integers.", "gas": "18", "fift": "OR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B1", - "tlb": "#B1", - "prefix": "B1", - "operands": [] + "fift_examples": [], + "opcode": "B1", + "stack": "x y - x|y" }, + "bytecode": { "tlb": "#B1", "prefix": "B1", "operands": [] }, "value_flow": { - "doc_stack": "x y - x|y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7637,16 +7205,12 @@ "description": "Bitwise xor of two integers.", "gas": "18", "fift": "XOR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B2", - "tlb": "#B2", - "prefix": "B2", - "operands": [] + "fift_examples": [], + "opcode": "B2", + "stack": "x y - x xor y" }, + "bytecode": { "tlb": "#B2", "prefix": "B2", "operands": [] }, "value_flow": { - "doc_stack": "x y - x xor y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7671,16 +7235,12 @@ "description": "Bitwise not of an integer.", "gas": "26", "fift": "NOT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B3", - "tlb": "#B3", - "prefix": "B3", - "operands": [] + "fift_examples": [], + "opcode": "B3", + "stack": "x - ~x" }, + "bytecode": { "tlb": "#B3", "prefix": "B3", "operands": [] }, "value_flow": { - "doc_stack": "x - ~x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -7704,10 +7264,11 @@ "description": "Checks whether `x` is a `cc+1`-bit signed integer for `0 <= cc <= 255` (i.e., whether `-2^cc <= x < 2^cc`).\nIf not, either triggers an integer overflow exception, or replaces `x` with a `NaN` (quiet version).", "gas": "26/76", "fift": "[cc+1] FITS", - "fift_examples": [] + "fift_examples": [], + "opcode": "B4cc", + "stack": "x - x" }, "bytecode": { - "doc_opcode": "B4cc", "tlb": "#B4 cc:uint8", "prefix": "B4", "operands": [ @@ -7722,7 +7283,6 @@ ] }, "value_flow": { - "doc_stack": "x - x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -7746,10 +7306,11 @@ "description": "Checks whether `x` is a `cc+1`-bit unsigned integer for `0 <= cc <= 255` (i.e., whether `0 <= x < 2^(cc+1)`).", "gas": "26/76", "fift": "[cc+1] UFITS", - "fift_examples": [] + "fift_examples": [], + "opcode": "B5cc", + "stack": "x - x" }, "bytecode": { - "doc_opcode": "B5cc", "tlb": "#B5 cc:uint8", "prefix": "B5", "operands": [ @@ -7764,7 +7325,6 @@ ] }, "value_flow": { - "doc_stack": "x - x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -7788,16 +7348,12 @@ "description": "Checks whether `x` is a `c`-bit signed integer for `0 <= c <= 1023`.", "gas": "26/76", "fift": "FITSX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B600", - "tlb": "#B600", - "prefix": "B600", - "operands": [] + "fift_examples": [], + "opcode": "B600", + "stack": "x c - x" }, + "bytecode": { "tlb": "#B600", "prefix": "B600", "operands": [] }, "value_flow": { - "doc_stack": "x c - x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7822,16 +7378,12 @@ "description": "Checks whether `x` is a `c`-bit unsigned integer for `0 <= c <= 1023`.", "gas": "26/76", "fift": "UFITSX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B601", - "tlb": "#B601", - "prefix": "B601", - "operands": [] + "fift_examples": [], + "opcode": "B601", + "stack": "x c - x" }, + "bytecode": { "tlb": "#B601", "prefix": "B601", "operands": [] }, "value_flow": { - "doc_stack": "x c - x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7856,16 +7408,12 @@ "description": "Computes smallest `c >= 0` such that `x` fits into a `c`-bit signed integer (`-2^(c-1) <= c < 2^(c-1)`).", "gas": "26", "fift": "BITSIZE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B602", - "tlb": "#B602", - "prefix": "B602", - "operands": [] + "fift_examples": [], + "opcode": "B602", + "stack": "x - c" }, + "bytecode": { "tlb": "#B602", "prefix": "B602", "operands": [] }, "value_flow": { - "doc_stack": "x - c", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -7889,16 +7437,12 @@ "description": "Computes smallest `c >= 0` such that `x` fits into a `c`-bit unsigned integer (`0 <= x < 2^c`), or throws a range check exception.", "gas": "26", "fift": "UBITSIZE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B603", - "tlb": "#B603", - "prefix": "B603", - "operands": [] + "fift_examples": [], + "opcode": "B603", + "stack": "x - c" }, + "bytecode": { "tlb": "#B603", "prefix": "B603", "operands": [] }, "value_flow": { - "doc_stack": "x - c", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -7922,16 +7466,12 @@ "description": "Computes the minimum of two integers `x` and `y`.", "gas": "26", "fift": "MIN", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B608", - "tlb": "#B608", - "prefix": "B608", - "operands": [] + "fift_examples": [], + "opcode": "B608", + "stack": "x y - x or y" }, + "bytecode": { "tlb": "#B608", "prefix": "B608", "operands": [] }, "value_flow": { - "doc_stack": "x y - x or y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7956,16 +7496,12 @@ "description": "Computes the maximum of two integers `x` and `y`.", "gas": "26", "fift": "MAX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B609", - "tlb": "#B609", - "prefix": "B609", - "operands": [] + "fift_examples": [], + "opcode": "B609", + "stack": "x y - x or y" }, + "bytecode": { "tlb": "#B609", "prefix": "B609", "operands": [] }, "value_flow": { - "doc_stack": "x y - x or y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -7990,16 +7526,12 @@ "description": "Sorts two integers. Quiet version of this operation returns two `NaN`s if any of the arguments are `NaN`s.", "gas": "26", "fift": "MINMAX\nINTSORT2", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B60A", - "tlb": "#B60A", - "prefix": "B60A", - "operands": [] + "fift_examples": [], + "opcode": "B60A", + "stack": "x y - x y or y x" }, + "bytecode": { "tlb": "#B60A", "prefix": "B60A", "operands": [] }, "value_flow": { - "doc_stack": "x y - x y or y x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8025,16 +7557,12 @@ "description": "Computes the absolute value of an integer `x`.", "gas": "26", "fift": "ABS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B60B", - "tlb": "#B60B", - "prefix": "B60B", - "operands": [] + "fift_examples": [], + "opcode": "B60B", + "stack": "x - |x|" }, + "bytecode": { "tlb": "#B60B", "prefix": "B60B", "operands": [] }, "value_flow": { - "doc_stack": "x - |x|", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -8058,16 +7586,12 @@ "description": "", "gas": "26", "fift": "QADD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A0", - "tlb": "#B7A0", - "prefix": "B7A0", - "operands": [] + "fift_examples": [], + "opcode": "B7A0", + "stack": "x y - x+y" }, + "bytecode": { "tlb": "#B7A0", "prefix": "B7A0", "operands": [] }, "value_flow": { - "doc_stack": "x y - x+y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8092,16 +7616,12 @@ "description": "", "gas": "26", "fift": "QSUB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A1", - "tlb": "#B7A1", - "prefix": "B7A1", - "operands": [] + "fift_examples": [], + "opcode": "B7A1", + "stack": "x y - x-y" }, + "bytecode": { "tlb": "#B7A1", "prefix": "B7A1", "operands": [] }, "value_flow": { - "doc_stack": "x y - x-y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8126,16 +7646,12 @@ "description": "", "gas": "26", "fift": "QSUBR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A2", - "tlb": "#B7A2", - "prefix": "B7A2", - "operands": [] + "fift_examples": [], + "opcode": "B7A2", + "stack": "x y - y-x" }, + "bytecode": { "tlb": "#B7A2", "prefix": "B7A2", "operands": [] }, "value_flow": { - "doc_stack": "x y - y-x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8160,16 +7676,12 @@ "description": "", "gas": "26", "fift": "QNEGATE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A3", - "tlb": "#B7A3", - "prefix": "B7A3", - "operands": [] + "fift_examples": [], + "opcode": "B7A3", + "stack": "x - -x" }, + "bytecode": { "tlb": "#B7A3", "prefix": "B7A3", "operands": [] }, "value_flow": { - "doc_stack": "x - -x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -8193,16 +7705,12 @@ "description": "", "gas": "26", "fift": "QINC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A4", - "tlb": "#B7A4", - "prefix": "B7A4", - "operands": [] + "fift_examples": [], + "opcode": "B7A4", + "stack": "x - x+1" }, + "bytecode": { "tlb": "#B7A4", "prefix": "B7A4", "operands": [] }, "value_flow": { - "doc_stack": "x - x+1", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -8226,16 +7734,12 @@ "description": "", "gas": "26", "fift": "QDEC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A5", - "tlb": "#B7A5", - "prefix": "B7A5", - "operands": [] + "fift_examples": [], + "opcode": "B7A5", + "stack": "x - x-1" }, + "bytecode": { "tlb": "#B7A5", "prefix": "B7A5", "operands": [] }, "value_flow": { - "doc_stack": "x - x-1", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -8259,16 +7763,12 @@ "description": "", "gas": "26", "fift": "QMUL", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A8", - "tlb": "#B7A8", - "prefix": "B7A8", - "operands": [] + "fift_examples": [], + "opcode": "B7A8", + "stack": "x y - x*y" }, + "bytecode": { "tlb": "#B7A8", "prefix": "B7A8", "operands": [] }, "value_flow": { - "doc_stack": "x y - x*y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8293,16 +7793,12 @@ "description": "", "gas": "34", "fift": "QADDDIVMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A900", - "tlb": "#B7A900", - "prefix": "B7A900", - "operands": [] + "fift_examples": [], + "opcode": "B7A900", + "stack": "x w z - q=floor((x+w)/z) r=(x+w)-zq" }, + "bytecode": { "tlb": "#B7A900", "prefix": "B7A900", "operands": [] }, "value_flow": { - "doc_stack": "x w z - q=floor((x+w)/z) r=(x+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8329,16 +7825,12 @@ "description": "", "gas": "34", "fift": "QADDDIVMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A901", - "tlb": "#B7A901", - "prefix": "B7A901", - "operands": [] + "fift_examples": [], + "opcode": "B7A901", + "stack": "x w z - q=round((x+w)/z) r=(x+w)-zq" }, + "bytecode": { "tlb": "#B7A901", "prefix": "B7A901", "operands": [] }, "value_flow": { - "doc_stack": "x w z - q=round((x+w)/z) r=(x+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8365,16 +7857,12 @@ "description": "", "gas": "34", "fift": "QADDDIVMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A902", - "tlb": "#B7A902", - "prefix": "B7A902", - "operands": [] + "fift_examples": [], + "opcode": "B7A902", + "stack": "x w y - q=ceil((x+w)/z) r=(x+w)-zq" }, + "bytecode": { "tlb": "#B7A902", "prefix": "B7A902", "operands": [] }, "value_flow": { - "doc_stack": "x w y - q=ceil((x+w)/z) r=(x+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8401,16 +7889,12 @@ "description": "Division returns `NaN` if `y=0`.", "gas": "34", "fift": "QDIV", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A904", - "tlb": "#B7A904", - "prefix": "B7A904", - "operands": [] + "fift_examples": [], + "opcode": "B7A904", + "stack": "x y - q" }, + "bytecode": { "tlb": "#B7A904", "prefix": "B7A904", "operands": [] }, "value_flow": { - "doc_stack": "x y - q", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8435,16 +7919,12 @@ "description": "", "gas": "34", "fift": "QDIVR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A905", - "tlb": "#B7A905", - "prefix": "B7A905", - "operands": [] + "fift_examples": [], + "opcode": "B7A905", + "stack": "x y - q'" }, + "bytecode": { "tlb": "#B7A905", "prefix": "B7A905", "operands": [] }, "value_flow": { - "doc_stack": "x y - q'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8469,16 +7949,12 @@ "description": "", "gas": "34", "fift": "QDIVC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A906", - "tlb": "#B7A906", - "prefix": "B7A906", - "operands": [] + "fift_examples": [], + "opcode": "B7A906", + "stack": "x y - q''" }, + "bytecode": { "tlb": "#B7A906", "prefix": "B7A906", "operands": [] }, "value_flow": { - "doc_stack": "x y - q''", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8503,16 +7979,12 @@ "description": "", "gas": "34", "fift": "QMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A908", - "tlb": "#B7A908", - "prefix": "B7A908", - "operands": [] + "fift_examples": [], + "opcode": "B7A908", + "stack": "x y - r" }, + "bytecode": { "tlb": "#B7A908", "prefix": "B7A908", "operands": [] }, "value_flow": { - "doc_stack": "x y - r", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8537,16 +8009,12 @@ "description": "", "gas": "34", "fift": "QMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A909", - "tlb": "#B7A909", - "prefix": "B7A909", - "operands": [] + "fift_examples": [], + "opcode": "B7A909", + "stack": "x y - r" }, + "bytecode": { "tlb": "#B7A909", "prefix": "B7A909", "operands": [] }, "value_flow": { - "doc_stack": "x y - r", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8571,16 +8039,12 @@ "description": "", "gas": "34", "fift": "QMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A90A", - "tlb": "#B7A90A", - "prefix": "B7A90A", - "operands": [] + "fift_examples": [], + "opcode": "B7A90A", + "stack": "x y - r" }, + "bytecode": { "tlb": "#B7A90A", "prefix": "B7A90A", "operands": [] }, "value_flow": { - "doc_stack": "x y - r", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8605,16 +8069,12 @@ "description": "", "gas": "34", "fift": "QDIVMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A90C", - "tlb": "#B7A90C", - "prefix": "B7A90C", - "operands": [] + "fift_examples": [], + "opcode": "B7A90C", + "stack": "x y - q r" }, + "bytecode": { "tlb": "#B7A90C", "prefix": "B7A90C", "operands": [] }, "value_flow": { - "doc_stack": "x y - q r", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8640,16 +8100,12 @@ "description": "", "gas": "34", "fift": "QDIVMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A90D", - "tlb": "#B7A90D", - "prefix": "B7A90D", - "operands": [] + "fift_examples": [], + "opcode": "B7A90D", + "stack": "x y - q' r'" }, + "bytecode": { "tlb": "#B7A90D", "prefix": "B7A90D", "operands": [] }, "value_flow": { - "doc_stack": "x y - q' r'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8675,16 +8131,12 @@ "description": "", "gas": "34", "fift": "QDIVMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A90E", - "tlb": "#B7A90E", - "prefix": "B7A90E", - "operands": [] + "fift_examples": [], + "opcode": "B7A90E", + "stack": "x y - q'' r''" }, + "bytecode": { "tlb": "#B7A90E", "prefix": "B7A90E", "operands": [] }, "value_flow": { - "doc_stack": "x y - q'' r''", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8710,16 +8162,12 @@ "description": "", "gas": "34", "fift": "QADDRSHIFTMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A920", - "tlb": "#B7A920", - "prefix": "B7A920", - "operands": [] + "fift_examples": [], + "opcode": "B7A920", + "stack": "x w z - q=floor((x+w)/2^z) r=(x+w)-q*2^z" }, + "bytecode": { "tlb": "#B7A920", "prefix": "B7A920", "operands": [] }, "value_flow": { - "doc_stack": "x w z - q=floor((x+w)/2^z) r=(x+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8746,16 +8194,12 @@ "description": "", "gas": "34", "fift": "QADDRSHIFTMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A921", - "tlb": "#B7A921", - "prefix": "B7A921", - "operands": [] + "fift_examples": [], + "opcode": "B7A921", + "stack": "x w z - q=round((x+w)/2^z) r=(x+w)-q*2^z" }, + "bytecode": { "tlb": "#B7A921", "prefix": "B7A921", "operands": [] }, "value_flow": { - "doc_stack": "x w z - q=round((x+w)/2^z) r=(x+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8782,16 +8226,12 @@ "description": "", "gas": "34", "fift": "QADDRSHIFTMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A922", - "tlb": "#B7A922", - "prefix": "B7A922", - "operands": [] + "fift_examples": [], + "opcode": "B7A922", + "stack": "x w z - q=ceil((x+w)/2^z) r=(x+w)-q*2^z" }, + "bytecode": { "tlb": "#B7A922", "prefix": "B7A922", "operands": [] }, "value_flow": { - "doc_stack": "x w z - q=ceil((x+w)/2^z) r=(x+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8818,16 +8258,12 @@ "description": "", "gas": "34", "fift": "QRSHIFTR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A925", - "tlb": "#B7A925", - "prefix": "B7A925", - "operands": [] + "fift_examples": [], + "opcode": "B7A925", + "stack": "x y - round(x/2^y)" }, + "bytecode": { "tlb": "#B7A925", "prefix": "B7A925", "operands": [] }, "value_flow": { - "doc_stack": "x y - round(x/2^y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8852,16 +8288,12 @@ "description": "", "gas": "34", "fift": "QRSHIFTC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A926", - "tlb": "#B7A926", - "prefix": "B7A926", - "operands": [] + "fift_examples": [], + "opcode": "B7A926", + "stack": "x y - ceil(x/2^y)" }, + "bytecode": { "tlb": "#B7A926", "prefix": "B7A926", "operands": [] }, "value_flow": { - "doc_stack": "x y - ceil(x/2^y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8886,16 +8318,12 @@ "description": "", "gas": "34", "fift": "QMODPOW2", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A928", - "tlb": "#B7A928", - "prefix": "B7A928", - "operands": [] + "fift_examples": [], + "opcode": "B7A928", + "stack": "x y - x mod 2^y" }, + "bytecode": { "tlb": "#B7A928", "prefix": "B7A928", "operands": [] }, "value_flow": { - "doc_stack": "x y - x mod 2^y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8920,16 +8348,12 @@ "description": "", "gas": "34", "fift": "QMODPOW2R", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A929", - "tlb": "#B7A929", - "prefix": "B7A929", - "operands": [] + "fift_examples": [], + "opcode": "B7A929", + "stack": "x y - x mod 2^y" }, + "bytecode": { "tlb": "#B7A929", "prefix": "B7A929", "operands": [] }, "value_flow": { - "doc_stack": "x y - x mod 2^y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8954,16 +8378,12 @@ "description": "", "gas": "34", "fift": "QMODPOW2C", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A92A", - "tlb": "#B7A92A", - "prefix": "B7A92A", - "operands": [] + "fift_examples": [], + "opcode": "B7A92A", + "stack": "x y - x mod 2^y" }, + "bytecode": { "tlb": "#B7A92A", "prefix": "B7A92A", "operands": [] }, "value_flow": { - "doc_stack": "x y - x mod 2^y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -8988,16 +8408,12 @@ "description": "", "gas": "34", "fift": "QRSHIFTMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A92C", - "tlb": "#B7A92C", - "prefix": "B7A92C", - "operands": [] + "fift_examples": [], + "opcode": "B7A92C", + "stack": "x y - q=floor(x/2^y) r=x-q*2^y" }, + "bytecode": { "tlb": "#B7A92C", "prefix": "B7A92C", "operands": [] }, "value_flow": { - "doc_stack": "x y - q=floor(x/2^y) r=x-q*2^y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9023,16 +8439,12 @@ "description": "", "gas": "34", "fift": "QRSHIFTMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A92D", - "tlb": "#B7A92D", - "prefix": "B7A92D", - "operands": [] + "fift_examples": [], + "opcode": "B7A92D", + "stack": "x y - q=round(x/2^y) r=x-q*2^y" }, + "bytecode": { "tlb": "#B7A92D", "prefix": "B7A92D", "operands": [] }, "value_flow": { - "doc_stack": "x y - q=round(x/2^y) r=x-q*2^y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9058,16 +8470,12 @@ "description": "", "gas": "34", "fift": "QRSHIFTMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A92E", - "tlb": "#B7A92E", - "prefix": "B7A92E", - "operands": [] + "fift_examples": [], + "opcode": "B7A92E", + "stack": "x y - q=ceil(x/2^y) r=x-q*2^y" }, + "bytecode": { "tlb": "#B7A92E", "prefix": "B7A92E", "operands": [] }, "value_flow": { - "doc_stack": "x y - q=ceil(x/2^y) r=x-q*2^y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9093,10 +8501,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QADDRSHIFT#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A930tt", + "stack": "x w - q=floor((x+w)/2^(tt+1)) r=(x+w)-q*2^(tt+1)" }, "bytecode": { - "doc_opcode": "B7A930tt", "tlb": "#B7A930 tt:uint8", "prefix": "B7A930", "operands": [ @@ -9111,7 +8520,6 @@ ] }, "value_flow": { - "doc_stack": "x w - q=floor((x+w)/2^(tt+1)) r=(x+w)-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9137,10 +8545,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QADDRSHIFTR#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A931tt", + "stack": "x w - q=round((x+w)/2^(tt+1)) r=(x+w)-q*2^(tt+1)" }, "bytecode": { - "doc_opcode": "B7A931tt", "tlb": "#B7A931 tt:uint8", "prefix": "B7A931", "operands": [ @@ -9155,7 +8564,6 @@ ] }, "value_flow": { - "doc_stack": "x w - q=round((x+w)/2^(tt+1)) r=(x+w)-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9181,10 +8589,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QADDRSHIFTC#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A932tt", + "stack": "x w - q=round((x+w)/2^(tt+1)) r=(x+w)-q*2^(tt+1)" }, "bytecode": { - "doc_opcode": "B7A932tt", "tlb": "#B7A932 tt:uint8", "prefix": "B7A932", "operands": [ @@ -9199,7 +8608,6 @@ ] }, "value_flow": { - "doc_stack": "x w - q=round((x+w)/2^(tt+1)) r=(x+w)-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9225,10 +8633,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QRSHIFTR#", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A935tt", + "stack": "x - round(x/2^(tt+1))" }, "bytecode": { - "doc_opcode": "B7A935tt", "tlb": "#B7A935 tt:uint8", "prefix": "B7A935", "operands": [ @@ -9243,7 +8652,6 @@ ] }, "value_flow": { - "doc_stack": "x - round(x/2^(tt+1))", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -9267,10 +8675,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QRSHIFTC#", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A936tt", + "stack": "x - ceil(x/2^(tt+1))" }, "bytecode": { - "doc_opcode": "B7A936tt", "tlb": "#B7A936 tt:uint8", "prefix": "B7A936", "operands": [ @@ -9285,7 +8694,6 @@ ] }, "value_flow": { - "doc_stack": "x - ceil(x/2^(tt+1))", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -9309,10 +8717,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QMODPOW2#", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A938tt", + "stack": "x - x mod 2^(tt+1)" }, "bytecode": { - "doc_opcode": "B7A938tt", "tlb": "#B7A938 tt:uint8", "prefix": "B7A938", "operands": [ @@ -9327,7 +8736,6 @@ ] }, "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -9351,10 +8759,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QMODPOW2R#", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A939tt", + "stack": "x - x mod 2^(tt+1)" }, "bytecode": { - "doc_opcode": "B7A939tt", "tlb": "#B7A939 tt:uint8", "prefix": "B7A939", "operands": [ @@ -9369,7 +8778,6 @@ ] }, "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -9393,10 +8801,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QMODPOW2C#", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A93Att", + "stack": "x - x mod 2^(tt+1)" }, "bytecode": { - "doc_opcode": "B7A93Att", "tlb": "#B7A93A tt:uint8", "prefix": "B7A93A", "operands": [ @@ -9411,7 +8820,6 @@ ] }, "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -9435,10 +8843,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QRSHIFT#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "A93Ctt", + "stack": "x - q=floor(x/2^(tt+1)) r=x-q*2^(tt+1)" }, "bytecode": { - "doc_opcode": "A93Ctt", "tlb": "#A93C tt:uint8", "prefix": "A93C", "operands": [ @@ -9453,7 +8862,6 @@ ] }, "value_flow": { - "doc_stack": "x - q=floor(x/2^(tt+1)) r=x-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -9478,10 +8886,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QRSHIFTR#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "A93Dtt", + "stack": "x - q=round(x/2^(tt+1)) r=x-q*2^(tt+1)" }, "bytecode": { - "doc_opcode": "A93Dtt", "tlb": "#A93D tt:uint8", "prefix": "A93D", "operands": [ @@ -9496,7 +8905,6 @@ ] }, "value_flow": { - "doc_stack": "x - q=round(x/2^(tt+1)) r=x-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -9521,10 +8929,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QRSHIFTC#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A93Ett", + "stack": "x - q=ceil(x/2^(tt+1)) r=x-q*2^(tt+1)" }, "bytecode": { - "doc_opcode": "B7A93Ett", "tlb": "#B7A93E tt:uint8", "prefix": "B7A93E", "operands": [ @@ -9539,7 +8948,6 @@ ] }, "value_flow": { - "doc_stack": "x - q=ceil(x/2^(tt+1)) r=x-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -9564,16 +8972,12 @@ "description": "", "gas": "34", "fift": "QMULADDDIVMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A980", - "tlb": "#B7A980", - "prefix": "B7A980", - "operands": [] + "fift_examples": [], + "opcode": "B7A980", + "stack": "x y w z - q=floor((xy+w)/z) r=(xy+w)-zq" }, + "bytecode": { "tlb": "#B7A980", "prefix": "B7A980", "operands": [] }, "value_flow": { - "doc_stack": "x y w z - q=floor((xy+w)/z) r=(xy+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9601,16 +9005,12 @@ "description": "", "gas": "34", "fift": "QMULADDDIVMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A981", - "tlb": "#B7A981", - "prefix": "B7A981", - "operands": [] + "fift_examples": [], + "opcode": "B7A981", + "stack": "x y w z - q=round((xy+w)/z) r=(xy+w)-zq" }, + "bytecode": { "tlb": "#B7A981", "prefix": "B7A981", "operands": [] }, "value_flow": { - "doc_stack": "x y w z - q=round((xy+w)/z) r=(xy+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9638,16 +9038,12 @@ "description": "", "gas": "34", "fift": "QMULADDDIVMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A982", - "tlb": "#B7A982", - "prefix": "B7A982", - "operands": [] + "fift_examples": [], + "opcode": "B7A982", + "stack": "x y w z - q=ceil((xy+w)/z) r=(xy+w)-zq" }, + "bytecode": { "tlb": "#B7A982", "prefix": "B7A982", "operands": [] }, "value_flow": { - "doc_stack": "x y w z - q=ceil((xy+w)/z) r=(xy+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9675,16 +9071,12 @@ "description": "`q=floor(x*y/z)`", "gas": "34", "fift": "QMULDIV", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A984", - "tlb": "#B7A984", - "prefix": "B7A984", - "operands": [] + "fift_examples": [], + "opcode": "B7A984", + "stack": "x y z - q" }, + "bytecode": { "tlb": "#B7A984", "prefix": "B7A984", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9710,16 +9102,12 @@ "description": "", "gas": "34", "fift": "QMULDIVR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A985", - "tlb": "#B7A985", - "prefix": "B7A985", - "operands": [] + "fift_examples": [], + "opcode": "B7A985", + "stack": "x y z - q'" }, + "bytecode": { "tlb": "#B7A985", "prefix": "B7A985", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9745,16 +9133,12 @@ "description": "`q'=ceil(x*y/z)`", "gas": "34", "fift": "QMULDIVC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A986", - "tlb": "#B7A986", - "prefix": "B7A986", - "operands": [] + "fift_examples": [], + "opcode": "B7A986", + "stack": "x y z - q'" }, + "bytecode": { "tlb": "#B7A986", "prefix": "B7A986", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9780,16 +9164,12 @@ "description": "", "gas": "34", "fift": "QMULMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A988", - "tlb": "#B7A988", - "prefix": "B7A988", - "operands": [] + "fift_examples": [], + "opcode": "B7A988", + "stack": "x y z - x*y mod z" }, + "bytecode": { "tlb": "#B7A988", "prefix": "B7A988", "operands": [] }, "value_flow": { - "doc_stack": "x y z - x*y mod z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9815,16 +9195,12 @@ "description": "", "gas": "34", "fift": "QMULMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A989", - "tlb": "#B7A989", - "prefix": "B7A989", - "operands": [] + "fift_examples": [], + "opcode": "B7A989", + "stack": "x y z - x*y mod z" }, + "bytecode": { "tlb": "#B7A989", "prefix": "B7A989", "operands": [] }, "value_flow": { - "doc_stack": "x y z - x*y mod z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9850,16 +9226,12 @@ "description": "", "gas": "34", "fift": "QMULMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A98A", - "tlb": "#B7A98A", - "prefix": "B7A98A", - "operands": [] + "fift_examples": [], + "opcode": "B7A98A", + "stack": "x y z - x*y mod z" }, + "bytecode": { "tlb": "#B7A98A", "prefix": "B7A98A", "operands": [] }, "value_flow": { - "doc_stack": "x y z - x*y mod z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9885,16 +9257,12 @@ "description": "", "gas": "34", "fift": "QMULDIVMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A98C", - "tlb": "#B7A98C", - "prefix": "B7A98C", - "operands": [] + "fift_examples": [], + "opcode": "B7A98C", + "stack": "x y z - q r" }, + "bytecode": { "tlb": "#B7A98C", "prefix": "B7A98C", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q r", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9920,16 +9288,12 @@ "description": "`q=round(x*y/z)`, `r=x*y-z*q`", "gas": "34", "fift": "QMULDIVMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A98D", - "tlb": "#B7A98D", - "prefix": "B7A98D", - "operands": [] + "fift_examples": [], + "opcode": "B7A98D", + "stack": "x y z - q r" }, + "bytecode": { "tlb": "#B7A98D", "prefix": "B7A98D", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q r", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9956,16 +9320,12 @@ "description": "`q=ceil(x*y/z)`, `r=x*y-z*q`", "gas": "34", "fift": "QMULDIVMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A98E", - "tlb": "#B7A98E", - "prefix": "B7A98E", - "operands": [] + "fift_examples": [], + "opcode": "B7A98E", + "stack": "x y z - q r" }, + "bytecode": { "tlb": "#B7A98E", "prefix": "B7A98E", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q r", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -9992,16 +9352,12 @@ "description": "", "gas": "34", "fift": "QMULADDRSHIFTMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9A0", - "tlb": "#B7A9A0", - "prefix": "B7A9A0", - "operands": [] + "fift_examples": [], + "opcode": "B7A9A0", + "stack": "x y w z - q=floor((xy+w)/2^z) r=(xy+w)-q*2^z" }, + "bytecode": { "tlb": "#B7A9A0", "prefix": "B7A9A0", "operands": [] }, "value_flow": { - "doc_stack": "x y w z - q=floor((xy+w)/2^z) r=(xy+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10029,16 +9385,12 @@ "description": "", "gas": "34", "fift": "QMULADDRSHIFTRMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9A1", - "tlb": "#B7A9A1", - "prefix": "B7A9A1", - "operands": [] + "fift_examples": [], + "opcode": "B7A9A1", + "stack": "x y w z - q=round((xy+w)/2^z) r=(xy+w)-q*2^z" }, + "bytecode": { "tlb": "#B7A9A1", "prefix": "B7A9A1", "operands": [] }, "value_flow": { - "doc_stack": "x y w z - q=round((xy+w)/2^z) r=(xy+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10066,16 +9418,12 @@ "description": "", "gas": "34", "fift": "QMULADDRSHIFTCMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9A2", - "tlb": "#B7A9A2", - "prefix": "B7A9A2", - "operands": [] + "fift_examples": [], + "opcode": "B7A9A2", + "stack": "x y w z - q=ceil((xy+w)/2^z) r=(xy+w)-q*2^z" }, + "bytecode": { "tlb": "#B7A9A2", "prefix": "B7A9A2", "operands": [] }, "value_flow": { - "doc_stack": "x y w z - q=ceil((xy+w)/2^z) r=(xy+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10103,16 +9451,12 @@ "description": "`0 <= z <= 256`", "gas": "34", "fift": "QMULRSHIFT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9A4", - "tlb": "#B7A9A4", - "prefix": "B7A9A4", - "operands": [] + "fift_examples": [], + "opcode": "B7A9A4", + "stack": "x y z - floor(x*y/2^z)" }, + "bytecode": { "tlb": "#B7A9A4", "prefix": "B7A9A4", "operands": [] }, "value_flow": { - "doc_stack": "x y z - floor(x*y/2^z)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10138,16 +9482,12 @@ "description": "`0 <= z <= 256`", "gas": "34", "fift": "QMULRSHIFTR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9A5", - "tlb": "#B7A9A5", - "prefix": "B7A9A5", - "operands": [] + "fift_examples": [], + "opcode": "B7A9A5", + "stack": "x y z - round(x*y/2^z)" }, + "bytecode": { "tlb": "#B7A9A5", "prefix": "B7A9A5", "operands": [] }, "value_flow": { - "doc_stack": "x y z - round(x*y/2^z)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10173,16 +9513,12 @@ "description": "`0 <= z <= 256`", "gas": "34", "fift": "QMULRSHIFTC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9A6", - "tlb": "#B7A9A6", - "prefix": "B7A9A6", - "operands": [] + "fift_examples": [], + "opcode": "B7A9A6", + "stack": "x y z - ceil(x*y/2^z)" }, + "bytecode": { "tlb": "#B7A9A6", "prefix": "B7A9A6", "operands": [] }, "value_flow": { - "doc_stack": "x y z - ceil(x*y/2^z)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10208,16 +9544,12 @@ "description": "", "gas": "34", "fift": "QMULMODPOW2_VAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9A8", - "tlb": "#B7A9A8", - "prefix": "B7A9A8", - "operands": [] + "fift_examples": [], + "opcode": "B7A9A8", + "stack": "x y z - x*y mod 2^z" }, + "bytecode": { "tlb": "#B7A9A8", "prefix": "B7A9A8", "operands": [] }, "value_flow": { - "doc_stack": "x y z - x*y mod 2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10243,16 +9575,12 @@ "description": "", "gas": "34", "fift": "QMULMODPOW2R_VAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9A9", - "tlb": "#B7A9A9", - "prefix": "B7A9A9", - "operands": [] + "fift_examples": [], + "opcode": "B7A9A9", + "stack": "x y z - x*y mod 2^z" }, + "bytecode": { "tlb": "#B7A9A9", "prefix": "B7A9A9", "operands": [] }, "value_flow": { - "doc_stack": "x y z - x*y mod 2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10278,16 +9606,12 @@ "description": "", "gas": "34", "fift": "QMULMODPOW2C_VAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9AA", - "tlb": "#B7A9AA", - "prefix": "B7A9AA", - "operands": [] + "fift_examples": [], + "opcode": "B7A9AA", + "stack": "x y z - x*y mod 2^z" }, + "bytecode": { "tlb": "#B7A9AA", "prefix": "B7A9AA", "operands": [] }, "value_flow": { - "doc_stack": "x y z - x*y mod 2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10313,16 +9637,12 @@ "description": "", "gas": "34", "fift": "QMULRSHIFTMOD_VAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9AC", - "tlb": "#B7A9AC", - "prefix": "B7A9AC", - "operands": [] + "fift_examples": [], + "opcode": "B7A9AC", + "stack": "x y z - q=floor(x*y/2^z) r=xy-q*2^z" }, + "bytecode": { "tlb": "#B7A9AC", "prefix": "B7A9AC", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q=floor(x*y/2^z) r=xy-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10348,16 +9668,12 @@ "description": "", "gas": "34", "fift": "QMULRSHIFTRMOD_VAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9AD", - "tlb": "#B7A9AD", - "prefix": "B7A9AD", - "operands": [] + "fift_examples": [], + "opcode": "B7A9AD", + "stack": "x y z - q=round(x*y/2^z) r=xy-q*2^z" }, + "bytecode": { "tlb": "#B7A9AD", "prefix": "B7A9AD", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q=round(x*y/2^z) r=xy-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10383,16 +9699,12 @@ "description": "", "gas": "34", "fift": "QMULRSHIFTCMOD_VAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9AE", - "tlb": "#B7A9AE", - "prefix": "B7A9AE", - "operands": [] + "fift_examples": [], + "opcode": "B7A9AE", + "stack": "x y z - q=ceil(x*y/2^z) r=xy-q*2^z" }, + "bytecode": { "tlb": "#B7A9AE", "prefix": "B7A9AE", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q=ceil(x*y/2^z) r=xy-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10418,10 +9730,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QMULADDRSHIFT#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9B0tt", + "stack": "x y w - q=floor((xy+w)/2^z) r=(xy+w)-q*2^z" }, "bytecode": { - "doc_opcode": "B7A9B0tt", "tlb": "#B7A9B0 tt:uint8", "prefix": "B7A9B0", "operands": [ @@ -10436,7 +9749,6 @@ ] }, "value_flow": { - "doc_stack": "x y w - q=floor((xy+w)/2^z) r=(xy+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10462,10 +9774,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QMULADDRSHIFTR#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9B1tt", + "stack": "x y w - q=round((xy+w)/2^z) r=(xy+w)-q*2^z" }, "bytecode": { - "doc_opcode": "B7A9B1tt", "tlb": "#B7A9B1 tt:uint8", "prefix": "B7A9B1", "operands": [ @@ -10480,7 +9793,6 @@ ] }, "value_flow": { - "doc_stack": "x y w - q=round((xy+w)/2^z) r=(xy+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10506,10 +9818,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QMULADDRSHIFTC#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9B2tt", + "stack": "x y w - q=ceil((xy+w)/2^z) r=(xy+w)-q*2^z" }, "bytecode": { - "doc_opcode": "B7A9B2tt", "tlb": "#B7A9B2 tt:uint8", "prefix": "B7A9B2", "operands": [ @@ -10524,7 +9837,6 @@ ] }, "value_flow": { - "doc_stack": "x y w - q=ceil((xy+w)/2^z) r=(xy+w)-q*2^z", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10550,10 +9862,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QMULRSHIFT#", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9B4tt", + "stack": "x y - floor(x*y/2^(tt+1))" }, "bytecode": { - "doc_opcode": "B7A9B4tt", "tlb": "#B7A9B4 tt:uint8", "prefix": "B7A9B4", "operands": [ @@ -10568,7 +9881,6 @@ ] }, "value_flow": { - "doc_stack": "x y - floor(x*y/2^(tt+1))", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10593,10 +9905,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QMULRSHIFTR#", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9B5tt", + "stack": "x y - round(x*y/2^(tt+1))" }, "bytecode": { - "doc_opcode": "B7A9B5tt", "tlb": "#B7A9B5 tt:uint8", "prefix": "B7A9B5", "operands": [ @@ -10611,7 +9924,6 @@ ] }, "value_flow": { - "doc_stack": "x y - round(x*y/2^(tt+1))", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10636,10 +9948,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QMULRSHIFTC#", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9B6tt", + "stack": "x y - ceil(x*y/2^(tt+1))" }, "bytecode": { - "doc_opcode": "B7A9B6tt", "tlb": "#B7A9B6 tt:uint8", "prefix": "B7A9B6", "operands": [ @@ -10654,7 +9967,6 @@ ] }, "value_flow": { - "doc_stack": "x y - ceil(x*y/2^(tt+1))", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10679,10 +9991,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QMULMODPOW2#", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9B8tt", + "stack": "x y - x*y mod 2^(tt+1)" }, "bytecode": { - "doc_opcode": "B7A9B8tt", "tlb": "#B7A9B8 tt:uint8", "prefix": "B7A9B8", "operands": [ @@ -10697,7 +10010,6 @@ ] }, "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10722,10 +10034,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QMULMODPOW2R#", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9B9tt", + "stack": "x y - x*y mod 2^(tt+1)" }, "bytecode": { - "doc_opcode": "B7A9B9tt", "tlb": "#B7A9B9 tt:uint8", "prefix": "B7A9B9", "operands": [ @@ -10740,7 +10053,6 @@ ] }, "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10765,10 +10077,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QMULMODPOW2C#", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9BAtt", + "stack": "x y - x*y mod 2^(tt+1)" }, "bytecode": { - "doc_opcode": "B7A9BAtt", "tlb": "#B7A9BA tt:uint8", "prefix": "B7A9BA", "operands": [ @@ -10783,7 +10096,6 @@ ] }, "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10808,16 +10120,12 @@ "description": "", "gas": "42", "fift": "QMULRSHIFT#MOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9BC", - "tlb": "#B7A9BC", - "prefix": "B7A9BC", - "operands": [] + "fift_examples": [], + "opcode": "B7A9BC", + "stack": "x y - q=floor(x*y/2^(tt+1)) r=xy-q*2^(tt+1)" }, + "bytecode": { "tlb": "#B7A9BC", "prefix": "B7A9BC", "operands": [] }, "value_flow": { - "doc_stack": "x y - q=floor(x*y/2^(tt+1)) r=xy-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10842,16 +10150,12 @@ "description": "", "gas": "42", "fift": "QMULRSHIFTR#MOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9BD", - "tlb": "#B7A9BD", - "prefix": "B7A9BD", - "operands": [] + "fift_examples": [], + "opcode": "B7A9BD", + "stack": "x y - q=round(x*y/2^(tt+1)) r=xy-q*2^(tt+1)" }, + "bytecode": { "tlb": "#B7A9BD", "prefix": "B7A9BD", "operands": [] }, "value_flow": { - "doc_stack": "x y - q=round(x*y/2^(tt+1)) r=xy-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10876,16 +10180,12 @@ "description": "", "gas": "42", "fift": "QMULRSHIFTC#MOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9BE", - "tlb": "#B7A9BE", - "prefix": "B7A9BE", - "operands": [] + "fift_examples": [], + "opcode": "B7A9BE", + "stack": "x y - q=ceil(x*y/2^(tt+1)) r=xy-q*2^(tt+1)" }, + "bytecode": { "tlb": "#B7A9BE", "prefix": "B7A9BE", "operands": [] }, "value_flow": { - "doc_stack": "x y - q=ceil(x*y/2^(tt+1)) r=xy-q*2^(tt+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10910,16 +10210,12 @@ "description": "", "gas": "34", "fift": "QLSHIFTADDDIVMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9C0", - "tlb": "#B7A9C0", - "prefix": "B7A9C0", - "operands": [] + "fift_examples": [], + "opcode": "B7A9C0", + "stack": "x w z y - q=floor((x*2^y+w)/z) r=(x*2^y+w)-zq" }, + "bytecode": { "tlb": "#B7A9C0", "prefix": "B7A9C0", "operands": [] }, "value_flow": { - "doc_stack": "x w z y - q=floor((x*2^y+w)/z) r=(x*2^y+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10946,16 +10242,12 @@ "description": "", "gas": "34", "fift": "QLSHIFTADDDIVMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9C1", - "tlb": "#B7A9C1", - "prefix": "B7A9C1", - "operands": [] + "fift_examples": [], + "opcode": "B7A9C1", + "stack": "x w z y - q=round((x*2^y+w)/z) r=(x*2^y+w)-zq" }, + "bytecode": { "tlb": "#B7A9C1", "prefix": "B7A9C1", "operands": [] }, "value_flow": { - "doc_stack": "x w z y - q=round((x*2^y+w)/z) r=(x*2^y+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -10982,16 +10274,12 @@ "description": "", "gas": "34", "fift": "QLSHIFTADDDIVMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9C2", - "tlb": "#B7A9C2", - "prefix": "B7A9C2", - "operands": [] + "fift_examples": [], + "opcode": "B7A9C2", + "stack": "x w z y - q=round((x*2^y+w)/z) r=(x*2^y+w)-zq" }, + "bytecode": { "tlb": "#B7A9C2", "prefix": "B7A9C2", "operands": [] }, "value_flow": { - "doc_stack": "x w z y - q=round((x*2^y+w)/z) r=(x*2^y+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11018,16 +10306,12 @@ "description": "`0 <= z <= 256`", "gas": "34", "fift": "QLSHIFTDIV", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9C4", - "tlb": "#B7A9C4", - "prefix": "B7A9C4", - "operands": [] + "fift_examples": [], + "opcode": "B7A9C4", + "stack": "x y z - floor(2^z*x/y)" }, + "bytecode": { "tlb": "#B7A9C4", "prefix": "B7A9C4", "operands": [] }, "value_flow": { - "doc_stack": "x y z - floor(2^z*x/y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11053,16 +10337,12 @@ "description": "`0 <= z <= 256`", "gas": "34", "fift": "QLSHIFTDIVR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9C5", - "tlb": "#B7A9C5", - "prefix": "B7A9C5", - "operands": [] + "fift_examples": [], + "opcode": "B7A9C5", + "stack": "x y z - round(2^z*x/y)" }, + "bytecode": { "tlb": "#B7A9C5", "prefix": "B7A9C5", "operands": [] }, "value_flow": { - "doc_stack": "x y z - round(2^z*x/y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11088,16 +10368,12 @@ "description": "`0 <= z <= 256`", "gas": "34", "fift": "QLSHIFTDIVC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9C6", - "tlb": "#B7A9C6", - "prefix": "B7A9C6", - "operands": [] + "fift_examples": [], + "opcode": "B7A9C6", + "stack": "x y z - ceil(2^z*x/y)" }, + "bytecode": { "tlb": "#B7A9C6", "prefix": "B7A9C6", "operands": [] }, "value_flow": { - "doc_stack": "x y z - ceil(2^z*x/y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11123,16 +10399,12 @@ "description": "", "gas": "34", "fift": "QLSHIFTMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9C8", - "tlb": "#B7A9C8", - "prefix": "B7A9C8", - "operands": [] + "fift_examples": [], + "opcode": "B7A9C8", + "stack": "x y z - 2^z*x mod y" }, + "bytecode": { "tlb": "#B7A9C8", "prefix": "B7A9C8", "operands": [] }, "value_flow": { - "doc_stack": "x y z - 2^z*x mod y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11158,16 +10430,12 @@ "description": "", "gas": "34", "fift": "QLSHIFTMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9C9", - "tlb": "#B7A9C9", - "prefix": "B7A9C9", - "operands": [] + "fift_examples": [], + "opcode": "B7A9C9", + "stack": "x y z - 2^z*x mod y" }, + "bytecode": { "tlb": "#B7A9C9", "prefix": "B7A9C9", "operands": [] }, "value_flow": { - "doc_stack": "x y z - 2^z*x mod y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11193,16 +10461,12 @@ "description": "", "gas": "34", "fift": "QLSHIFTMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9CA", - "tlb": "#B7A9CA", - "prefix": "B7A9CA", - "operands": [] + "fift_examples": [], + "opcode": "B7A9CA", + "stack": "x y z - 2^z*x mod y" }, + "bytecode": { "tlb": "#B7A9CA", "prefix": "B7A9CA", "operands": [] }, "value_flow": { - "doc_stack": "x y z - 2^z*x mod y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11228,16 +10492,12 @@ "description": "", "gas": "34", "fift": "QLSHIFTDIVMOD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9CC", - "tlb": "#B7A9CC", - "prefix": "B7A9CC", - "operands": [] + "fift_examples": [], + "opcode": "B7A9CC", + "stack": "x y z - q=floor(2^z*x/y) r=2^z*x-q*y" }, + "bytecode": { "tlb": "#B7A9CC", "prefix": "B7A9CC", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q=floor(2^z*x/y) r=2^z*x-q*y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11263,16 +10523,12 @@ "description": "", "gas": "34", "fift": "QLSHIFTDIVMODR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9CD", - "tlb": "#B7A9CD", - "prefix": "B7A9CD", - "operands": [] + "fift_examples": [], + "opcode": "B7A9CD", + "stack": "x y z - q=round(2^z*x/y) r=2^z*x-q*y" }, + "bytecode": { "tlb": "#B7A9CD", "prefix": "B7A9CD", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q=round(2^z*x/y) r=2^z*x-q*y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11298,16 +10554,12 @@ "description": "", "gas": "34", "fift": "QLSHIFTDIVMODC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7A9CE", - "tlb": "#B7A9CE", - "prefix": "B7A9CE", - "operands": [] + "fift_examples": [], + "opcode": "B7A9CE", + "stack": "x y z - q=ceil(2^z*x/y) r=2^z*x-q*y" }, + "bytecode": { "tlb": "#B7A9CE", "prefix": "B7A9CE", "operands": [] }, "value_flow": { - "doc_stack": "x y z - q=ceil(2^z*x/y) r=2^z*x-q*y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11333,10 +10585,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QLSHIFT#ADDDIVMOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9D0tt", + "stack": "x w z - q=floor((x*2^(tt+1)+w)/z) r=(x*2^(tt+1)+w)-zq" }, "bytecode": { - "doc_opcode": "B7A9D0tt", "tlb": "#B7A9D0 tt:uint8", "prefix": "B7A9D0", "operands": [ @@ -11351,7 +10604,6 @@ ] }, "value_flow": { - "doc_stack": "x w z - q=floor((x*2^(tt+1)+w)/z) r=(x*2^(tt+1)+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11377,10 +10629,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QLSHIFT#ADDDIVMODR", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9D1tt", + "stack": "x w z - q=round((x*2^(tt+1)+w)/z) r=(x*2^(tt+1)+w)-zq" }, "bytecode": { - "doc_opcode": "B7A9D1tt", "tlb": "#B7A9D1 tt:uint8", "prefix": "B7A9D1", "operands": [ @@ -11395,7 +10648,6 @@ ] }, "value_flow": { - "doc_stack": "x w z - q=round((x*2^(tt+1)+w)/z) r=(x*2^(tt+1)+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11421,10 +10673,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QLSHIFT#ADDDIVMODC", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9D2tt", + "stack": "x w z - q=ceil((x*2^(tt+1)+w)/z) r=(x*2^(tt+1)+w)-zq" }, "bytecode": { - "doc_opcode": "B7A9D2tt", "tlb": "#B7A9D2 tt:uint8", "prefix": "B7A9D2", "operands": [ @@ -11439,7 +10692,6 @@ ] }, "value_flow": { - "doc_stack": "x w z - q=ceil((x*2^(tt+1)+w)/z) r=(x*2^(tt+1)+w)-zq", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11465,10 +10717,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QLSHIFT#DIV", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9D4tt", + "stack": "x y - floor(2^(tt+1)*x/y)" }, "bytecode": { - "doc_opcode": "B7A9D4tt", "tlb": "#B7A9D4 tt:uint8", "prefix": "B7A9D4", "operands": [ @@ -11483,7 +10736,6 @@ ] }, "value_flow": { - "doc_stack": "x y - floor(2^(tt+1)*x/y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11508,10 +10760,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QLSHIFT#DIVR", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9D5tt", + "stack": "x y - round(2^(tt+1)*x/y)" }, "bytecode": { - "doc_opcode": "B7A9D5tt", "tlb": "#B7A9D5 tt:uint8", "prefix": "B7A9D5", "operands": [ @@ -11526,7 +10779,6 @@ ] }, "value_flow": { - "doc_stack": "x y - round(2^(tt+1)*x/y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11551,10 +10803,11 @@ "description": "", "gas": "34", "fift": "[tt+1] QLSHIFT#DIVC", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9D6tt", + "stack": "x y - ceil(2^(tt+1)*x/y)" }, "bytecode": { - "doc_opcode": "B7A9D6tt", "tlb": "#B7A9D6 tt:uint8", "prefix": "B7A9D6", "operands": [ @@ -11569,7 +10822,6 @@ ] }, "value_flow": { - "doc_stack": "x y - ceil(2^(tt+1)*x/y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11594,10 +10846,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QLSHIFT#MOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9D8tt", + "stack": "x y - 2^(tt+1)*x mod y" }, "bytecode": { - "doc_opcode": "B7A9D8tt", "tlb": "#B7A9D8 tt:uint8", "prefix": "B7A9D8", "operands": [ @@ -11612,7 +10865,6 @@ ] }, "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11637,10 +10889,11 @@ "description": "", "gas": "42", "fift": "[tt+1] LSHIFT#MODR", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9D9tt", + "stack": "x y - 2^(tt+1)*x mod y" }, "bytecode": { - "doc_opcode": "B7A9D9tt", "tlb": "#B7A9D9 tt:uint8", "prefix": "B7A9D9", "operands": [ @@ -11655,7 +10908,6 @@ ] }, "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11680,10 +10932,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QLSHIFT#MODC", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9DAtt", + "stack": "x y - 2^(tt+1)*x mod y" }, "bytecode": { - "doc_opcode": "B7A9DAtt", "tlb": "#B7A9DA tt:uint8", "prefix": "B7A9DA", "operands": [ @@ -11698,7 +10951,6 @@ ] }, "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11723,10 +10975,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QLSHIFT#DIVMOD", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9DCtt", + "stack": "x y - q=floor(2^(tt+1)*x/y) r=2^(tt+1)*x-q*y" }, "bytecode": { - "doc_opcode": "B7A9DCtt", "tlb": "#B7A9DC tt:uint8", "prefix": "B7A9DC", "operands": [ @@ -11741,7 +10994,6 @@ ] }, "value_flow": { - "doc_stack": "x y - q=floor(2^(tt+1)*x/y) r=2^(tt+1)*x-q*y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11766,10 +11018,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QLSHIFT#DIVMODR", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9DDtt", + "stack": "x y - q=round(2^(tt+1)*x/y) r=2^(tt+1)*x-q*y" }, "bytecode": { - "doc_opcode": "B7A9DDtt", "tlb": "#B7A9DD tt:uint8", "prefix": "B7A9DD", "operands": [ @@ -11784,7 +11037,6 @@ ] }, "value_flow": { - "doc_stack": "x y - q=round(2^(tt+1)*x/y) r=2^(tt+1)*x-q*y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11809,10 +11061,11 @@ "description": "", "gas": "42", "fift": "[tt+1] QLSHIFT#DIVMODC", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7A9DEtt", + "stack": "x y - q=ceil(2^(tt+1)*x/y) r=2^(tt+1)*x-q*y" }, "bytecode": { - "doc_opcode": "B7A9DEtt", "tlb": "#B7A9DE tt:uint8", "prefix": "B7A9DE", "operands": [ @@ -11827,7 +11080,6 @@ ] }, "value_flow": { - "doc_stack": "x y - q=ceil(2^(tt+1)*x/y) r=2^(tt+1)*x-q*y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11852,10 +11104,11 @@ "description": "`0 <= cc <= 255`", "gas": "34", "fift": "[cc+1] QLSHIFT#", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7AAcc", + "stack": "x - x*2^(cc+1)" }, "bytecode": { - "doc_opcode": "B7AAcc", "tlb": "#B7AA cc:uint8", "prefix": "B7AA", "operands": [ @@ -11870,7 +11123,6 @@ ] }, "value_flow": { - "doc_stack": "x - x*2^(cc+1)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -11894,10 +11146,11 @@ "description": "`0 <= cc <= 255`", "gas": "26", "fift": "[cc+1] RSHIFT#", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7ABcc", + "stack": "x - floor(x/2^(cc+1))" }, "bytecode": { - "doc_opcode": "B7ABcc", "tlb": "#B7AB cc:uint8", "prefix": "B7AB", "operands": [ @@ -11912,7 +11165,6 @@ ] }, "value_flow": { - "doc_stack": "x - floor(x/2^(cc+1))", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -11936,16 +11188,12 @@ "description": "", "gas": "26", "fift": "QLSHIFT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7AC", - "tlb": "#B7AC", - "prefix": "B7AC", - "operands": [] + "fift_examples": [], + "opcode": "B7AC", + "stack": "x y - x*2^y" }, + "bytecode": { "tlb": "#B7AC", "prefix": "B7AC", "operands": [] }, "value_flow": { - "doc_stack": "x y - x*2^y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -11970,16 +11218,12 @@ "description": "", "gas": "26", "fift": "QRSHIFT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7AD", - "tlb": "#B7AD", - "prefix": "B7AD", - "operands": [] + "fift_examples": [], + "opcode": "B7AD", + "stack": "x y - floor(x/2^y)" }, + "bytecode": { "tlb": "#B7AD", "prefix": "B7AD", "operands": [] }, "value_flow": { - "doc_stack": "x y - floor(x/2^y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -12004,16 +11248,12 @@ "description": "", "gas": "26", "fift": "QPOW2", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7AE", - "tlb": "#B7AE", - "prefix": "B7AE", - "operands": [] + "fift_examples": [], + "opcode": "B7AE", + "stack": "y - 2^y" }, + "bytecode": { "tlb": "#B7AE", "prefix": "B7AE", "operands": [] }, "value_flow": { - "doc_stack": "y - 2^y", "inputs": { "stack": [ { "type": "simple", "name": "y", "value_types": ["Integer"] } @@ -12037,16 +11277,12 @@ "description": "", "gas": "26", "fift": "QAND", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7B0", - "tlb": "#B7B0", - "prefix": "B7B0", - "operands": [] + "fift_examples": [], + "opcode": "B7B0", + "stack": "x y - x&y" }, + "bytecode": { "tlb": "#B7B0", "prefix": "B7B0", "operands": [] }, "value_flow": { - "doc_stack": "x y - x&y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -12071,16 +11307,12 @@ "description": "", "gas": "26", "fift": "QOR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7B1", - "tlb": "#B7B1", - "prefix": "B7B1", - "operands": [] + "fift_examples": [], + "opcode": "B7B1", + "stack": "x y - x|y" }, + "bytecode": { "tlb": "#B7B1", "prefix": "B7B1", "operands": [] }, "value_flow": { - "doc_stack": "x y - x|y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -12105,16 +11337,12 @@ "description": "", "gas": "26", "fift": "QXOR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7B2", - "tlb": "#B7B2", - "prefix": "B7B2", - "operands": [] + "fift_examples": [], + "opcode": "B7B2", + "stack": "x y - x xor y" }, + "bytecode": { "tlb": "#B7B2", "prefix": "B7B2", "operands": [] }, "value_flow": { - "doc_stack": "x y - x xor y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -12139,16 +11367,12 @@ "description": "", "gas": "26", "fift": "QNOT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7B3", - "tlb": "#B7B3", - "prefix": "B7B3", - "operands": [] + "fift_examples": [], + "opcode": "B7B3", + "stack": "x - ~x" }, + "bytecode": { "tlb": "#B7B3", "prefix": "B7B3", "operands": [] }, "value_flow": { - "doc_stack": "x - ~x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -12172,10 +11396,11 @@ "description": "Replaces `x` with a `NaN` if x is not a `cc+1`-bit signed integer, leaves it intact otherwise.", "gas": "34", "fift": "[cc+1] QFITS", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7B4cc", + "stack": "x - x" }, "bytecode": { - "doc_opcode": "B7B4cc", "tlb": "#B7B4 cc:uint8", "prefix": "B7B4", "operands": [ @@ -12190,7 +11415,6 @@ ] }, "value_flow": { - "doc_stack": "x - x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -12214,10 +11438,11 @@ "description": "Replaces `x` with a `NaN` if x is not a `cc+1`-bit unsigned integer, leaves it intact otherwise.", "gas": "34", "fift": "[cc+1] QUFITS", - "fift_examples": [] + "fift_examples": [], + "opcode": "B7B5cc", + "stack": "x - x" }, "bytecode": { - "doc_opcode": "B7B5cc", "tlb": "#B7B5 cc:uint8", "prefix": "B7B5", "operands": [ @@ -12232,7 +11457,6 @@ ] }, "value_flow": { - "doc_stack": "x - x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -12256,16 +11480,12 @@ "description": "Replaces `x` with a `NaN` if x is not a c-bit signed integer, leaves it intact otherwise.", "gas": "34", "fift": "QFITSX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7B600", - "tlb": "#B7B600", - "prefix": "B7B600", - "operands": [] + "fift_examples": [], + "opcode": "B7B600", + "stack": "x c - x" }, + "bytecode": { "tlb": "#B7B600", "prefix": "B7B600", "operands": [] }, "value_flow": { - "doc_stack": "x c - x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -12290,16 +11510,12 @@ "description": "Replaces `x` with a `NaN` if x is not a c-bit unsigned integer, leaves it intact otherwise.", "gas": "34", "fift": "QUFITSX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7B601", - "tlb": "#B7B601", - "prefix": "B7B601", - "operands": [] + "fift_examples": [], + "opcode": "B7B601", + "stack": "x c - x" }, + "bytecode": { "tlb": "#B7B601", "prefix": "B7B601", "operands": [] }, "value_flow": { - "doc_stack": "x c - x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -12324,16 +11540,12 @@ "description": "Computes the sign of an integer `x`:\n`-1` if `x<0`, `0` if `x=0`, `1` if `x>0`.", "gas": "18", "fift": "SGN", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B8", - "tlb": "#B8", - "prefix": "B8", - "operands": [] + "fift_examples": [], + "opcode": "B8", + "stack": "x - sgn(x)" }, + "bytecode": { "tlb": "#B8", "prefix": "B8", "operands": [] }, "value_flow": { - "doc_stack": "x - sgn(x)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -12357,16 +11569,12 @@ "description": "Returns `-1` if `xy" }, + "bytecode": { "tlb": "#BC", "prefix": "BC", "operands": [] }, "value_flow": { - "doc_stack": "x y - x>y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -12493,16 +11689,12 @@ "description": "Equivalent to `EQUAL` `NOT`.", "gas": "18", "fift": "NEQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "BD", - "tlb": "#BD", - "prefix": "BD", - "operands": [] + "fift_examples": [], + "opcode": "BD", + "stack": "x y - x!=y" }, + "bytecode": { "tlb": "#BD", "prefix": "BD", "operands": [] }, "value_flow": { - "doc_stack": "x y - x!=y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -12527,16 +11719,12 @@ "description": "Equivalent to `LESS` `NOT`.", "gas": "18", "fift": "GEQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "BE", - "tlb": "#BE", - "prefix": "BE", - "operands": [] + "fift_examples": [], + "opcode": "BE", + "stack": "x y - x>=y" }, + "bytecode": { "tlb": "#BE", "prefix": "BE", "operands": [] }, "value_flow": { - "doc_stack": "x y - x>=y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -12561,16 +11749,12 @@ "description": "Computes the sign of `x-y`:\n`-1` if `xy`.\nNo integer overflow can occur here unless `x` or `y` is a `NaN`.", "gas": "18", "fift": "CMP", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "BF", - "tlb": "#BF", - "prefix": "BF", - "operands": [] + "fift_examples": [], + "opcode": "BF", + "stack": "x y - sgn(x-y)" }, + "bytecode": { "tlb": "#BF", "prefix": "BF", "operands": [] }, "value_flow": { - "doc_stack": "x y - sgn(x-y)", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -12595,10 +11779,11 @@ "description": "Returns `-1` if `x=yy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", "gas": "26", "fift": "[yy] EQINT", - "fift_examples": [] + "fift_examples": [], + "opcode": "C0yy", + "stack": "x - x=yy" }, "bytecode": { - "doc_opcode": "C0yy", "tlb": "#C0 yy:int8", "prefix": "C0", "operands": [ @@ -12613,7 +11798,6 @@ ] }, "value_flow": { - "doc_stack": "x - x=yy", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -12637,10 +11821,11 @@ "description": "Returns `-1` if `xyy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", "gas": "26", "fift": "[yy] GTINT\n[yy+1] GEQINT", - "fift_examples": [] + "fift_examples": [], + "opcode": "C2yy", + "stack": "x - x>yy" }, "bytecode": { - "doc_opcode": "C2yy", "tlb": "#C2 yy:int8", "prefix": "C2", "operands": [ @@ -12697,7 +11882,6 @@ ] }, "value_flow": { - "doc_stack": "x - x>yy", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -12721,10 +11905,11 @@ "description": "Returns `-1` if `x!=yy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", "gas": "26", "fift": "[yy] NEQINT", - "fift_examples": [] + "fift_examples": [], + "opcode": "C3yy", + "stack": "x - x!=yy" }, "bytecode": { - "doc_opcode": "C3yy", "tlb": "#C3 yy:int8", "prefix": "C3", "operands": [ @@ -12739,7 +11924,6 @@ ] }, "value_flow": { - "doc_stack": "x - x!=yy", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -12763,16 +11947,12 @@ "description": "Checks whether `x` is a `NaN`.", "gas": "18", "fift": "ISNAN", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C4", - "tlb": "#C4", - "prefix": "C4", - "operands": [] + "fift_examples": [], + "opcode": "C4", + "stack": "x - x=NaN" }, + "bytecode": { "tlb": "#C4", "prefix": "C4", "operands": [] }, "value_flow": { - "doc_stack": "x - x=NaN", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -12796,16 +11976,12 @@ "description": "Throws an arithmetic overflow exception if `x` is a `NaN`.", "gas": "18/68", "fift": "CHKNAN", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C5", - "tlb": "#C5", - "prefix": "C5", - "operands": [] + "fift_examples": [], + "opcode": "C5", + "stack": "x - x" }, + "bytecode": { "tlb": "#C5", "prefix": "C5", "operands": [] }, "value_flow": { - "doc_stack": "x - x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -12829,16 +12005,12 @@ "description": "Checks whether a _Slice_ `s` is empty (i.e., contains no bits of data and no cell references).", "gas": "26", "fift": "SEMPTY", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C700", - "tlb": "#C700", - "prefix": "C700", - "operands": [] + "fift_examples": [], + "opcode": "C700", + "stack": "s - ?" }, + "bytecode": { "tlb": "#C700", "prefix": "C700", "operands": [] }, "value_flow": { - "doc_stack": "s - ?", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -12862,16 +12034,12 @@ "description": "Checks whether _Slice_ `s` has no bits of data.", "gas": "26", "fift": "SDEMPTY", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C701", - "tlb": "#C701", - "prefix": "C701", - "operands": [] + "fift_examples": [], + "opcode": "C701", + "stack": "s - ?" }, + "bytecode": { "tlb": "#C701", "prefix": "C701", "operands": [] }, "value_flow": { - "doc_stack": "s - ?", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -12895,16 +12063,12 @@ "description": "Checks whether _Slice_ `s` has no references.", "gas": "26", "fift": "SREMPTY", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C702", - "tlb": "#C702", - "prefix": "C702", - "operands": [] + "fift_examples": [], + "opcode": "C702", + "stack": "s - ?" }, + "bytecode": { "tlb": "#C702", "prefix": "C702", "operands": [] }, "value_flow": { - "doc_stack": "s - ?", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -12928,16 +12092,12 @@ "description": "Checks whether the first bit of _Slice_ `s` is a one.", "gas": "26", "fift": "SDFIRST", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C703", - "tlb": "#C703", - "prefix": "C703", - "operands": [] + "fift_examples": [], + "opcode": "C703", + "stack": "s - ?" }, + "bytecode": { "tlb": "#C703", "prefix": "C703", "operands": [] }, "value_flow": { - "doc_stack": "s - ?", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -12961,16 +12121,12 @@ "description": "Compares the data of `s` lexicographically with the data of `s'`, returning `-1`, 0, or 1 depending on the result.", "gas": "26", "fift": "SDLEXCMP", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C704", - "tlb": "#C704", - "prefix": "C704", - "operands": [] + "fift_examples": [], + "opcode": "C704", + "stack": "s s' - x" }, + "bytecode": { "tlb": "#C704", "prefix": "C704", "operands": [] }, "value_flow": { - "doc_stack": "s s' - x", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -12995,16 +12151,12 @@ "description": "Checks whether the data parts of `s` and `s'` coincide, equivalent to `SDLEXCMP` `ISZERO`.", "gas": "26", "fift": "SDEQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C705", - "tlb": "#C705", - "prefix": "C705", - "operands": [] + "fift_examples": [], + "opcode": "C705", + "stack": "s s' - ?" }, + "bytecode": { "tlb": "#C705", "prefix": "C705", "operands": [] }, "value_flow": { - "doc_stack": "s s' - ?", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -13029,16 +12181,12 @@ "description": "Checks whether `s` is a prefix of `s'`.", "gas": "26", "fift": "SDPFX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C708", - "tlb": "#C708", - "prefix": "C708", - "operands": [] + "fift_examples": [], + "opcode": "C708", + "stack": "s s' - ?" }, + "bytecode": { "tlb": "#C708", "prefix": "C708", "operands": [] }, "value_flow": { - "doc_stack": "s s' - ?", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -13063,16 +12211,12 @@ "description": "Checks whether `s'` is a prefix of `s`, equivalent to `SWAP` `SDPFX`.", "gas": "26", "fift": "SDPFXREV", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C709", - "tlb": "#C709", - "prefix": "C709", - "operands": [] + "fift_examples": [], + "opcode": "C709", + "stack": "s s' - ?" }, + "bytecode": { "tlb": "#C709", "prefix": "C709", "operands": [] }, "value_flow": { - "doc_stack": "s s' - ?", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -13097,16 +12241,12 @@ "description": "Checks whether `s` is a proper prefix of `s'` (i.e., a prefix distinct from `s'`).", "gas": "26", "fift": "SDPPFX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C70A", - "tlb": "#C70A", - "prefix": "C70A", - "operands": [] + "fift_examples": [], + "opcode": "C70A", + "stack": "s s' - ?" }, + "bytecode": { "tlb": "#C70A", "prefix": "C70A", "operands": [] }, "value_flow": { - "doc_stack": "s s' - ?", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -13131,16 +12271,12 @@ "description": "Checks whether `s'` is a proper prefix of `s`.", "gas": "26", "fift": "SDPPFXREV", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C70B", - "tlb": "#C70B", - "prefix": "C70B", - "operands": [] + "fift_examples": [], + "opcode": "C70B", + "stack": "s s' - ?" }, + "bytecode": { "tlb": "#C70B", "prefix": "C70B", "operands": [] }, "value_flow": { - "doc_stack": "s s' - ?", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -13160,16 +12296,12 @@ "description": "Checks whether `s` is a suffix of `s'`.", "gas": "26", "fift": "SDSFX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C70C", - "tlb": "#C70C", - "prefix": "C70C", - "operands": [] + "fift_examples": [], + "opcode": "C70C", + "stack": "s s' - ?" }, + "bytecode": { "tlb": "#C70C", "prefix": "C70C", "operands": [] }, "value_flow": { - "doc_stack": "s s' - ?", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -13194,16 +12326,12 @@ "description": "Checks whether `s'` is a suffix of `s`.", "gas": "26", "fift": "SDSFXREV", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C70D", - "tlb": "#C70D", - "prefix": "C70D", - "operands": [] + "fift_examples": [], + "opcode": "C70D", + "stack": "s s' - ?" }, + "bytecode": { "tlb": "#C70D", "prefix": "C70D", "operands": [] }, "value_flow": { - "doc_stack": "s s' - ?", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -13228,16 +12356,12 @@ "description": "Checks whether `s` is a proper suffix of `s'`.", "gas": "26", "fift": "SDPSFX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C70E", - "tlb": "#C70E", - "prefix": "C70E", - "operands": [] + "fift_examples": [], + "opcode": "C70E", + "stack": "s s' - ?" }, + "bytecode": { "tlb": "#C70E", "prefix": "C70E", "operands": [] }, "value_flow": { - "doc_stack": "s s' - ?", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -13262,16 +12386,12 @@ "description": "Checks whether `s'` is a proper suffix of `s`.", "gas": "26", "fift": "SDPSFXREV", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C70F", - "tlb": "#C70F", - "prefix": "C70F", - "operands": [] + "fift_examples": [], + "opcode": "C70F", + "stack": "s s' - ?" }, + "bytecode": { "tlb": "#C70F", "prefix": "C70F", "operands": [] }, "value_flow": { - "doc_stack": "s s' - ?", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -13296,16 +12416,12 @@ "description": "Returns the number of leading zeroes in `s`.", "gas": "26", "fift": "SDCNTLEAD0", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C710", - "tlb": "#C710", - "prefix": "C710", - "operands": [] + "fift_examples": [], + "opcode": "C710", + "stack": "s - n" }, + "bytecode": { "tlb": "#C710", "prefix": "C710", "operands": [] }, "value_flow": { - "doc_stack": "s - n", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -13329,16 +12445,12 @@ "description": "Returns the number of leading ones in `s`.", "gas": "26", "fift": "SDCNTLEAD1", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C711", - "tlb": "#C711", - "prefix": "C711", - "operands": [] + "fift_examples": [], + "opcode": "C711", + "stack": "s - n" }, + "bytecode": { "tlb": "#C711", "prefix": "C711", "operands": [] }, "value_flow": { - "doc_stack": "s - n", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -13362,16 +12474,12 @@ "description": "Returns the number of trailing zeroes in `s`.", "gas": "26", "fift": "SDCNTTRAIL0", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C712", - "tlb": "#C712", - "prefix": "C712", - "operands": [] + "fift_examples": [], + "opcode": "C712", + "stack": "s - n" }, + "bytecode": { "tlb": "#C712", "prefix": "C712", "operands": [] }, "value_flow": { - "doc_stack": "s - n", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -13395,16 +12503,12 @@ "description": "Returns the number of trailing ones in `s`.", "gas": "26", "fift": "SDCNTTRAIL1", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C713", - "tlb": "#C713", - "prefix": "C713", - "operands": [] + "fift_examples": [], + "opcode": "C713", + "stack": "s - n" }, + "bytecode": { "tlb": "#C713", "prefix": "C713", "operands": [] }, "value_flow": { - "doc_stack": "s - n", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -13428,16 +12532,12 @@ "description": "Creates a new empty _Builder_.", "gas": "18", "fift": "NEWC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C8", - "tlb": "#C8", - "prefix": "C8", - "operands": [] + "fift_examples": [], + "opcode": "C8", + "stack": "- b" }, + "bytecode": { "tlb": "#C8", "prefix": "C8", "operands": [] }, "value_flow": { - "doc_stack": "- b", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -13456,16 +12556,12 @@ "description": "Converts a _Builder_ into an ordinary _Cell_.", "gas": "518", "fift": "ENDC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "C9", - "tlb": "#C9", - "prefix": "C9", - "operands": [] + "fift_examples": [], + "opcode": "C9", + "stack": "b - c" }, + "bytecode": { "tlb": "#C9", "prefix": "C9", "operands": [] }, "value_flow": { - "doc_stack": "b - c", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } @@ -13487,10 +12583,11 @@ "description": "Stores a signed `cc+1`-bit integer `x` into _Builder_ `b` for `0 <= cc <= 255`, throws a range check exception if `x` does not fit into `cc+1` bits.", "gas": "26", "fift": "[cc+1] STI", - "fift_examples": [] + "fift_examples": [], + "opcode": "CAcc", + "stack": "x b - b'" }, "bytecode": { - "doc_opcode": "CAcc", "tlb": "#CA cc:uint8", "prefix": "CA", "operands": [ @@ -13505,7 +12602,6 @@ ] }, "value_flow": { - "doc_stack": "x b - b'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -13530,10 +12626,11 @@ "description": "Stores an unsigned `cc+1`-bit integer `x` into _Builder_ `b`. In all other respects it is similar to `STI`.", "gas": "26", "fift": "[cc+1] STU", - "fift_examples": [] + "fift_examples": [], + "opcode": "CBcc", + "stack": "x b - b'" }, "bytecode": { - "doc_opcode": "CBcc", "tlb": "#CB cc:uint8", "prefix": "CB", "operands": [ @@ -13548,7 +12645,6 @@ ] }, "value_flow": { - "doc_stack": "x b - b'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -13573,16 +12669,12 @@ "description": "Stores a reference to _Cell_ `c` into _Builder_ `b`.", "gas": "18", "fift": "STREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CC", - "tlb": "#CC", - "prefix": "CC", - "operands": [] + "fift_examples": [], + "opcode": "CC", + "stack": "c b - b'" }, + "bytecode": { "tlb": "#CC", "prefix": "CC", "operands": [] }, "value_flow": { - "doc_stack": "c b - b'", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -13607,16 +12699,12 @@ "description": "Equivalent to `ENDC` `SWAP` `STREF`.", "gas": "518", "fift": "STBREFR\nENDCST", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CD", - "tlb": "#CD", - "prefix": "CD", - "operands": [] + "fift_examples": [], + "opcode": "CD", + "stack": "b b'' - b" }, + "bytecode": { "tlb": "#CD", "prefix": "CD", "operands": [] }, "value_flow": { - "doc_stack": "b b'' - b", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -13641,16 +12729,12 @@ "description": "Stores _Slice_ `s` into _Builder_ `b`.", "gas": "18", "fift": "STSLICE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CE", - "tlb": "#CE", - "prefix": "CE", - "operands": [] + "fift_examples": [], + "opcode": "CE", + "stack": "s b - b'" }, + "bytecode": { "tlb": "#CE", "prefix": "CE", "operands": [] }, "value_flow": { - "doc_stack": "s b - b'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -13675,16 +12759,12 @@ "description": "Stores a signed `l`-bit integer `x` into `b` for `0 <= l <= 257`.", "gas": "26", "fift": "STIX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF00", - "tlb": "#CF00", - "prefix": "CF00", - "operands": [] + "fift_examples": [], + "opcode": "CF00", + "stack": "x b l - b'" }, + "bytecode": { "tlb": "#CF00", "prefix": "CF00", "operands": [] }, "value_flow": { - "doc_stack": "x b l - b'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -13710,16 +12790,12 @@ "description": "Stores an unsigned `l`-bit integer `x` into `b` for `0 <= l <= 256`.", "gas": "26", "fift": "STUX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF01", - "tlb": "#CF01", - "prefix": "CF01", - "operands": [] + "fift_examples": [], + "opcode": "CF01", + "stack": "x b l - b'" }, + "bytecode": { "tlb": "#CF01", "prefix": "CF01", "operands": [] }, "value_flow": { - "doc_stack": "x b l - b'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -13745,16 +12821,12 @@ "description": "Similar to `STIX`, but with arguments in a different order.", "gas": "26", "fift": "STIXR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF02", - "tlb": "#CF02", - "prefix": "CF02", - "operands": [] + "fift_examples": [], + "opcode": "CF02", + "stack": "b x l - b'" }, + "bytecode": { "tlb": "#CF02", "prefix": "CF02", "operands": [] }, "value_flow": { - "doc_stack": "b x l - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -13780,16 +12852,12 @@ "description": "Similar to `STUX`, but with arguments in a different order.", "gas": "26", "fift": "STUXR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF03", - "tlb": "#CF03", - "prefix": "CF03", - "operands": [] + "fift_examples": [], + "opcode": "CF03", + "stack": "b x l - b'" }, + "bytecode": { "tlb": "#CF03", "prefix": "CF03", "operands": [] }, "value_flow": { - "doc_stack": "b x l - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -13815,16 +12883,12 @@ "description": "A quiet version of `STIX`. If there is no space in `b`, sets `b'=b` and `f=-1`.\nIf `x` does not fit into `l` bits, sets `b'=b` and `f=1`.\nIf the operation succeeds, `b'` is the new _Builder_ and `f=0`.\nHowever, `0 <= l <= 257`, with a range check exception if this is not so.", "gas": "26", "fift": "STIXQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF04", - "tlb": "#CF04", - "prefix": "CF04", - "operands": [] + "fift_examples": [], + "opcode": "CF04", + "stack": "x b l - x b f or b' 0" }, + "bytecode": { "tlb": "#CF04", "prefix": "CF04", "operands": [] }, "value_flow": { - "doc_stack": "x b l - x b f or b' 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -13896,16 +12960,12 @@ "description": "A quiet version of `STUX`.", "gas": "26", "fift": "STUXQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF05", - "tlb": "#CF05", - "prefix": "CF05", - "operands": [] + "fift_examples": [], + "opcode": "CF05", + "stack": "x b l - x b f or b' 0" }, + "bytecode": { "tlb": "#CF05", "prefix": "CF05", "operands": [] }, "value_flow": { - "doc_stack": "x b l - x b f or b' 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -13977,16 +13037,12 @@ "description": "A quiet version of `STIXR`.", "gas": "26", "fift": "STIXRQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF06", - "tlb": "#CF06", - "prefix": "CF06", - "operands": [] + "fift_examples": [], + "opcode": "CF06", + "stack": "b x l - b x f or b' 0" }, + "bytecode": { "tlb": "#CF06", "prefix": "CF06", "operands": [] }, "value_flow": { - "doc_stack": "b x l - b x f or b' 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -14058,16 +13114,12 @@ "description": "A quiet version of `STUXR`.", "gas": "26", "fift": "STUXRQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF07", - "tlb": "#CF07", - "prefix": "CF07", - "operands": [] + "fift_examples": [], + "opcode": "CF07", + "stack": "b x l - b x f or b' 0" }, + "bytecode": { "tlb": "#CF07", "prefix": "CF07", "operands": [] }, "value_flow": { - "doc_stack": "b x l - b x f or b' 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -14139,10 +13191,11 @@ "description": "A longer version of `[cc+1] STI`.", "gas": "34", "fift": "[cc+1] STI_l", - "fift_examples": [] + "fift_examples": [], + "opcode": "CF08cc", + "stack": "x b - b'" }, "bytecode": { - "doc_opcode": "CF08cc", "tlb": "#CF08 cc:uint8", "prefix": "CF08", "operands": [ @@ -14157,7 +13210,6 @@ ] }, "value_flow": { - "doc_stack": "x b - b'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -14182,10 +13234,11 @@ "description": "A longer version of `[cc+1] STU`.", "gas": "34", "fift": "[cc+1] STU_l", - "fift_examples": [] + "fift_examples": [], + "opcode": "CF09cc", + "stack": "x b - b'" }, "bytecode": { - "doc_opcode": "CF09cc", "tlb": "#CF09 cc:uint8", "prefix": "CF09", "operands": [ @@ -14200,7 +13253,6 @@ ] }, "value_flow": { - "doc_stack": "x b - b'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -14225,10 +13277,11 @@ "description": "Equivalent to `SWAP` `[cc+1] STI`.", "gas": "34", "fift": "[cc+1] STIR", - "fift_examples": [] + "fift_examples": [], + "opcode": "CF0Acc", + "stack": "b x - b'" }, "bytecode": { - "doc_opcode": "CF0Acc", "tlb": "#CF0A cc:uint8", "prefix": "CF0A", "operands": [ @@ -14243,7 +13296,6 @@ ] }, "value_flow": { - "doc_stack": "b x - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -14268,10 +13320,11 @@ "description": "Equivalent to `SWAP` `[cc+1] STU`.", "gas": "34", "fift": "[cc+1] STUR", - "fift_examples": [] + "fift_examples": [], + "opcode": "CF0Bcc", + "stack": "b x - b'" }, "bytecode": { - "doc_opcode": "CF0Bcc", "tlb": "#CF0B cc:uint8", "prefix": "CF0B", "operands": [ @@ -14286,7 +13339,6 @@ ] }, "value_flow": { - "doc_stack": "b x - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -14311,10 +13363,11 @@ "description": "A quiet version of `STI`.", "gas": "34", "fift": "[cc+1] STIQ", - "fift_examples": [] + "fift_examples": [], + "opcode": "CF0Ccc", + "stack": "x b - x b f or b' 0" }, "bytecode": { - "doc_opcode": "CF0Ccc", "tlb": "#CF0C cc:uint8", "prefix": "CF0C", "operands": [ @@ -14329,7 +13382,6 @@ ] }, "value_flow": { - "doc_stack": "x b - x b f or b' 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -14400,10 +13452,11 @@ "description": "A quiet version of `STU`.", "gas": "34", "fift": "[cc+1] STUQ", - "fift_examples": [] + "fift_examples": [], + "opcode": "CF0Dcc", + "stack": "x b - x b f or b' 0" }, "bytecode": { - "doc_opcode": "CF0Dcc", "tlb": "#CF0D cc:uint8", "prefix": "CF0D", "operands": [ @@ -14418,7 +13471,6 @@ ] }, "value_flow": { - "doc_stack": "x b - x b f or b' 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -14489,10 +13541,11 @@ "description": "A quiet version of `STIR`.", "gas": "34", "fift": "[cc+1] STIRQ", - "fift_examples": [] + "fift_examples": [], + "opcode": "CF0Ecc", + "stack": "b x - b x f or b' 0" }, "bytecode": { - "doc_opcode": "CF0Ecc", "tlb": "#CF0E cc:uint8", "prefix": "CF0E", "operands": [ @@ -14507,7 +13560,6 @@ ] }, "value_flow": { - "doc_stack": "b x - b x f or b' 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -14578,10 +13630,11 @@ "description": "A quiet version of `STUR`.", "gas": "34", "fift": "[cc+1] STURQ", - "fift_examples": [] + "fift_examples": [], + "opcode": "CF0Fcc", + "stack": "b x - b x f or b' 0" }, "bytecode": { - "doc_opcode": "CF0Fcc", "tlb": "#CF0F cc:uint8", "prefix": "CF0F", "operands": [ @@ -14596,7 +13649,6 @@ ] }, "value_flow": { - "doc_stack": "b x - b x f or b' 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -14667,16 +13719,12 @@ "description": "A longer version of `STREF`.", "gas": "26", "fift": "STREF_l", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF10", - "tlb": "#CF10", - "prefix": "CF10", - "operands": [] + "fift_examples": [], + "opcode": "CF10", + "stack": "c b - b'" }, + "bytecode": { "tlb": "#CF10", "prefix": "CF10", "operands": [] }, "value_flow": { - "doc_stack": "c b - b'", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -14701,16 +13749,12 @@ "description": "Equivalent to `SWAP` `STBREFR`.", "gas": "526", "fift": "STBREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF11", - "tlb": "#CF11", - "prefix": "CF11", - "operands": [] + "fift_examples": [], + "opcode": "CF11", + "stack": "b' b - b''" }, + "bytecode": { "tlb": "#CF11", "prefix": "CF11", "operands": [] }, "value_flow": { - "doc_stack": "b' b - b''", "inputs": { "stack": [ { "type": "simple", "name": "child", "value_types": ["Builder"] }, @@ -14735,16 +13779,12 @@ "description": "A longer version of `STSLICE`.", "gas": "26", "fift": "STSLICE_l", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF12", - "tlb": "#CF12", - "prefix": "CF12", - "operands": [] + "fift_examples": [], + "opcode": "CF12", + "stack": "s b - b'" }, + "bytecode": { "tlb": "#CF12", "prefix": "CF12", "operands": [] }, "value_flow": { - "doc_stack": "s b - b'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -14769,16 +13809,12 @@ "description": "Appends all data from _Builder_ `b'` to _Builder_ `b`.", "gas": "26", "fift": "STB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF13", - "tlb": "#CF13", - "prefix": "CF13", - "operands": [] + "fift_examples": [], + "opcode": "CF13", + "stack": "b' b - b''" }, + "bytecode": { "tlb": "#CF13", "prefix": "CF13", "operands": [] }, "value_flow": { - "doc_stack": "b' b - b''", "inputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] }, @@ -14803,16 +13839,12 @@ "description": "Equivalent to `SWAP` `STREF`.", "gas": "26", "fift": "STREFR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF14", - "tlb": "#CF14", - "prefix": "CF14", - "operands": [] + "fift_examples": [], + "opcode": "CF14", + "stack": "b c - b'" }, + "bytecode": { "tlb": "#CF14", "prefix": "CF14", "operands": [] }, "value_flow": { - "doc_stack": "b c - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -14837,16 +13869,12 @@ "description": "A longer encoding of `STBREFR`.", "gas": "526", "fift": "STBREFR_l", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF15", - "tlb": "#CF15", - "prefix": "CF15", - "operands": [] + "fift_examples": [], + "opcode": "CF15", + "stack": "b b' - b''" }, + "bytecode": { "tlb": "#CF15", "prefix": "CF15", "operands": [] }, "value_flow": { - "doc_stack": "b b' - b''", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -14871,16 +13899,12 @@ "description": "Equivalent to `SWAP` `STSLICE`.", "gas": "26", "fift": "STSLICER", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF16", - "tlb": "#CF16", - "prefix": "CF16", - "operands": [] + "fift_examples": [], + "opcode": "CF16", + "stack": "b s - b'" }, + "bytecode": { "tlb": "#CF16", "prefix": "CF16", "operands": [] }, "value_flow": { - "doc_stack": "b s - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -14905,16 +13929,12 @@ "description": "Concatenates two builders.\nEquivalent to `SWAP` `STB`.", "gas": "26", "fift": "STBR\nBCONCAT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF17", - "tlb": "#CF17", - "prefix": "CF17", - "operands": [] + "fift_examples": [], + "opcode": "CF17", + "stack": "b b' - b''" }, + "bytecode": { "tlb": "#CF17", "prefix": "CF17", "operands": [] }, "value_flow": { - "doc_stack": "b b' - b''", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -14939,16 +13959,12 @@ "description": "Quiet version of `STREF`.", "gas": "26", "fift": "STREFQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF18", - "tlb": "#CF18", - "prefix": "CF18", - "operands": [] + "fift_examples": [], + "opcode": "CF18", + "stack": "c b - c b -1 or b' 0" }, + "bytecode": { "tlb": "#CF18", "prefix": "CF18", "operands": [] }, "value_flow": { - "doc_stack": "c b - c b -1 or b' 0", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -15000,16 +14016,12 @@ "description": "Quiet version of `STBREF`.", "gas": "526", "fift": "STBREFQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF19", - "tlb": "#CF19", - "prefix": "CF19", - "operands": [] + "fift_examples": [], + "opcode": "CF19", + "stack": "b' b - b' b -1 or b'' 0" }, + "bytecode": { "tlb": "#CF19", "prefix": "CF19", "operands": [] }, "value_flow": { - "doc_stack": "b' b - b' b -1 or b'' 0", "inputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] }, @@ -15065,16 +14077,12 @@ "description": "Quiet version of `STSLICE`.", "gas": "26", "fift": "STSLICEQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF1A", - "tlb": "#CF1A", - "prefix": "CF1A", - "operands": [] + "fift_examples": [], + "opcode": "CF1A", + "stack": "s b - s b -1 or b' 0" }, + "bytecode": { "tlb": "#CF1A", "prefix": "CF1A", "operands": [] }, "value_flow": { - "doc_stack": "s b - s b -1 or b' 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -15126,16 +14134,12 @@ "description": "Quiet version of `STB`.", "gas": "26", "fift": "STBQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF1B", - "tlb": "#CF1B", - "prefix": "CF1B", - "operands": [] + "fift_examples": [], + "opcode": "CF1B", + "stack": "b' b - b' b -1 or b'' 0" }, + "bytecode": { "tlb": "#CF1B", "prefix": "CF1B", "operands": [] }, "value_flow": { - "doc_stack": "b' b - b' b -1 or b'' 0", "inputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] }, @@ -15191,16 +14195,12 @@ "description": "Quiet version of `STREFR`.", "gas": "26", "fift": "STREFRQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF1C", - "tlb": "#CF1C", - "prefix": "CF1C", - "operands": [] + "fift_examples": [], + "opcode": "CF1C", + "stack": "b c - b c -1 or b' 0" }, + "bytecode": { "tlb": "#CF1C", "prefix": "CF1C", "operands": [] }, "value_flow": { - "doc_stack": "b c - b c -1 or b' 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -15252,16 +14252,12 @@ "description": "Quiet version of `STBREFR`.", "gas": "526", "fift": "STBREFRQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF1D", - "tlb": "#CF1D", - "prefix": "CF1D", - "operands": [] + "fift_examples": [], + "opcode": "CF1D", + "stack": "b b' - b b' -1 or b'' 0" }, + "bytecode": { "tlb": "#CF1D", "prefix": "CF1D", "operands": [] }, "value_flow": { - "doc_stack": "b b' - b b' -1 or b'' 0", "inputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] }, @@ -15317,16 +14313,12 @@ "description": "Quiet version of `STSLICER`.", "gas": "26", "fift": "STSLICERQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF1E", - "tlb": "#CF1E", - "prefix": "CF1E", - "operands": [] + "fift_examples": [], + "opcode": "CF1E", + "stack": "b s - b s -1 or b'' 0" }, + "bytecode": { "tlb": "#CF1E", "prefix": "CF1E", "operands": [] }, "value_flow": { - "doc_stack": "b s - b s -1 or b'' 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -15378,16 +14370,12 @@ "description": "Quiet version of `STBR`.", "gas": "26", "fift": "STBRQ\nBCONCATQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF1F", - "tlb": "#CF1F", - "prefix": "CF1F", - "operands": [] + "fift_examples": [], + "opcode": "CF1F", + "stack": "b b' - b b' -1 or b'' 0" }, + "bytecode": { "tlb": "#CF1F", "prefix": "CF1F", "operands": [] }, "value_flow": { - "doc_stack": "b b' - b b' -1 or b'' 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -15443,16 +14431,16 @@ "description": "Equivalent to `PUSHREF` `STREFR`.", "gas": "26", "fift": "[ref] STREFCONST", - "fift_examples": [] + "fift_examples": [], + "opcode": "CF20", + "stack": "b - b'" }, "bytecode": { - "doc_opcode": "CF20", "tlb": "#CF20 c:^Cell", "prefix": "CF20", "operands": [{ "name": "c", "type": "ref", "display_hints": [] }] }, "value_flow": { - "doc_stack": "b - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } @@ -15476,10 +14464,11 @@ "description": "Equivalent to `STREFCONST` `STREFCONST`.", "gas": "26", "fift": "[ref] [ref] STREF2CONST", - "fift_examples": [] + "fift_examples": [], + "opcode": "CF21", + "stack": "b - b'" }, "bytecode": { - "doc_opcode": "CF21", "tlb": "#CF21 c1:^Cell c2:^Cell", "prefix": "CF21", "operands": [ @@ -15488,7 +14477,6 @@ ] }, "value_flow": { - "doc_stack": "b - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } @@ -15512,16 +14500,12 @@ "description": "If `x!=0`, creates a _special_ or _exotic_ cell from _Builder_ `b`.\nThe type of the exotic cell must be stored in the first 8 bits of `b`.\nIf `x=0`, it is equivalent to `ENDC`. Otherwise some validity checks on the data and references of `b` are performed before creating the exotic cell.", "gas": "526", "fift": "", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF23", - "tlb": "#CF23", - "prefix": "CF23", - "operands": [] + "fift_examples": [], + "opcode": "CF23", + "stack": "b x - c" }, + "bytecode": { "tlb": "#CF23", "prefix": "CF23", "operands": [] }, "value_flow": { - "doc_stack": "b x - c", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -15544,16 +14528,12 @@ "description": "Stores a little-endian signed 32-bit integer.", "gas": "26", "fift": "STILE4", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF28", - "tlb": "#CF28", - "prefix": "CF28", - "operands": [] + "fift_examples": [], + "opcode": "CF28", + "stack": "x b - b'" }, + "bytecode": { "tlb": "#CF28", "prefix": "CF28", "operands": [] }, "value_flow": { - "doc_stack": "x b - b'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -15578,16 +14558,12 @@ "description": "Stores a little-endian unsigned 32-bit integer.", "gas": "26", "fift": "STULE4", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF29", - "tlb": "#CF29", - "prefix": "CF29", - "operands": [] + "fift_examples": [], + "opcode": "CF29", + "stack": "x b - b'" }, + "bytecode": { "tlb": "#CF29", "prefix": "CF29", "operands": [] }, "value_flow": { - "doc_stack": "x b - b'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -15612,16 +14588,12 @@ "description": "Stores a little-endian signed 64-bit integer.", "gas": "26", "fift": "STILE8", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF2A", - "tlb": "#CF2A", - "prefix": "CF2A", - "operands": [] + "fift_examples": [], + "opcode": "CF2A", + "stack": "x b - b'" }, + "bytecode": { "tlb": "#CF2A", "prefix": "CF2A", "operands": [] }, "value_flow": { - "doc_stack": "x b - b'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -15646,16 +14618,12 @@ "description": "Stores a little-endian unsigned 64-bit integer.", "gas": "26", "fift": "STULE8", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF2B", - "tlb": "#CF2B", - "prefix": "CF2B", - "operands": [] + "fift_examples": [], + "opcode": "CF2B", + "stack": "x b - b'" }, + "bytecode": { "tlb": "#CF2B", "prefix": "CF2B", "operands": [] }, "value_flow": { - "doc_stack": "x b - b'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -15680,16 +14648,12 @@ "description": "Returns the depth of _Builder_ `b`. If no cell references are stored in `b`, then `x=0`; otherwise `x` is one plus the maximum of depths of cells referred to from `b`.", "gas": "26", "fift": "BDEPTH", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF30", - "tlb": "#CF30", - "prefix": "CF30", - "operands": [] + "fift_examples": [], + "opcode": "CF30", + "stack": "b - x" }, + "bytecode": { "tlb": "#CF30", "prefix": "CF30", "operands": [] }, "value_flow": { - "doc_stack": "b - x", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } @@ -15713,16 +14677,12 @@ "description": "Returns the number of data bits already stored in _Builder_ `b`.", "gas": "26", "fift": "BBITS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF31", - "tlb": "#CF31", - "prefix": "CF31", - "operands": [] + "fift_examples": [], + "opcode": "CF31", + "stack": "b - x" }, + "bytecode": { "tlb": "#CF31", "prefix": "CF31", "operands": [] }, "value_flow": { - "doc_stack": "b - x", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } @@ -15746,16 +14706,12 @@ "description": "Returns the number of cell references already stored in `b`.", "gas": "26", "fift": "BREFS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF32", - "tlb": "#CF32", - "prefix": "CF32", - "operands": [] + "fift_examples": [], + "opcode": "CF32", + "stack": "b - y" }, + "bytecode": { "tlb": "#CF32", "prefix": "CF32", "operands": [] }, "value_flow": { - "doc_stack": "b - y", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } @@ -15779,16 +14735,12 @@ "description": "Returns the numbers of both data bits and cell references in `b`.", "gas": "26", "fift": "BBITREFS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF33", - "tlb": "#CF33", - "prefix": "CF33", - "operands": [] + "fift_examples": [], + "opcode": "CF33", + "stack": "b - x y" }, + "bytecode": { "tlb": "#CF33", "prefix": "CF33", "operands": [] }, "value_flow": { - "doc_stack": "b - x y", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } @@ -15813,16 +14765,12 @@ "description": "Returns the number of data bits that can still be stored in `b`.", "gas": "26", "fift": "BREMBITS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF35", - "tlb": "#CF35", - "prefix": "CF35", - "operands": [] + "fift_examples": [], + "opcode": "CF35", + "stack": "b - x'" }, + "bytecode": { "tlb": "#CF35", "prefix": "CF35", "operands": [] }, "value_flow": { - "doc_stack": "b - x'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } @@ -15846,16 +14794,12 @@ "description": "Returns the number of references that can still be stored in `b`.", "gas": "26", "fift": "BREMREFS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF36", - "tlb": "#CF36", - "prefix": "CF36", - "operands": [] + "fift_examples": [], + "opcode": "CF36", + "stack": "b - y'" }, + "bytecode": { "tlb": "#CF36", "prefix": "CF36", "operands": [] }, "value_flow": { - "doc_stack": "b - y'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } @@ -15879,16 +14823,12 @@ "description": "Returns the numbers of both data bits and references that can still be stored in `b`.", "gas": "26", "fift": "BREMBITREFS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF37", - "tlb": "#CF37", - "prefix": "CF37", - "operands": [] + "fift_examples": [], + "opcode": "CF37", + "stack": "b - x' y'" }, + "bytecode": { "tlb": "#CF37", "prefix": "CF37", "operands": [] }, "value_flow": { - "doc_stack": "b - x' y'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } @@ -15913,10 +14853,11 @@ "description": "Checks whether `cc+1` bits can be stored into `b`, where `0 <= cc <= 255`.", "gas": "34/84", "fift": "[cc+1] BCHKBITS#", - "fift_examples": [] + "fift_examples": [], + "opcode": "CF38cc", + "stack": "b -" }, "bytecode": { - "doc_opcode": "CF38cc", "tlb": "#CF38 cc:uint8", "prefix": "CF38", "operands": [ @@ -15931,7 +14872,6 @@ ] }, "value_flow": { - "doc_stack": "b -", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } @@ -15950,16 +14890,12 @@ "description": "Checks whether `x` bits can be stored into `b`, `0 <= x <= 1023`. If there is no space for `x` more bits in `b`, or if `x` is not within the range `0...1023`, throws an exception.", "gas": "26/76", "fift": "BCHKBITS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF39", - "tlb": "#CF39", - "prefix": "CF39", - "operands": [] + "fift_examples": [], + "opcode": "CF39", + "stack": "b x - " }, + "bytecode": { "tlb": "#CF39", "prefix": "CF39", "operands": [] }, "value_flow": { - "doc_stack": "b x - ", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -15979,16 +14915,12 @@ "description": "Checks whether `y` references can be stored into `b`, `0 <= y <= 7`.", "gas": "26/76", "fift": "BCHKREFS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF3A", - "tlb": "#CF3A", - "prefix": "CF3A", - "operands": [] + "fift_examples": [], + "opcode": "CF3A", + "stack": "b y - " }, + "bytecode": { "tlb": "#CF3A", "prefix": "CF3A", "operands": [] }, "value_flow": { - "doc_stack": "b y - ", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -16008,16 +14940,12 @@ "description": "Checks whether `x` bits and `y` references can be stored into `b`, `0 <= x <= 1023`, `0 <= y <= 7`.", "gas": "26/76", "fift": "BCHKBITREFS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF3B", - "tlb": "#CF3B", - "prefix": "CF3B", - "operands": [] + "fift_examples": [], + "opcode": "CF3B", + "stack": "b x y - " }, + "bytecode": { "tlb": "#CF3B", "prefix": "CF3B", "operands": [] }, "value_flow": { - "doc_stack": "b x y - ", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -16038,10 +14966,11 @@ "description": "Checks whether `cc+1` bits can be stored into `b`, where `0 <= cc <= 255`.", "gas": "34", "fift": "[cc+1] BCHKBITSQ#", - "fift_examples": [] + "fift_examples": [], + "opcode": "CF3Ccc", + "stack": "b - ?" }, "bytecode": { - "doc_opcode": "CF3Ccc", "tlb": "#CF3C cc:uint8", "prefix": "CF3C", "operands": [ @@ -16056,7 +14985,6 @@ ] }, "value_flow": { - "doc_stack": "b - ?", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } @@ -16080,16 +15008,12 @@ "description": "Checks whether `x` bits can be stored into `b`, `0 <= x <= 1023`.", "gas": "26", "fift": "BCHKBITSQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF3D", - "tlb": "#CF3D", - "prefix": "CF3D", - "operands": [] + "fift_examples": [], + "opcode": "CF3D", + "stack": "b x - ?" }, + "bytecode": { "tlb": "#CF3D", "prefix": "CF3D", "operands": [] }, "value_flow": { - "doc_stack": "b x - ?", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -16114,16 +15038,12 @@ "description": "Checks whether `y` references can be stored into `b`, `0 <= y <= 7`.", "gas": "26", "fift": "BCHKREFSQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF3E", - "tlb": "#CF3E", - "prefix": "CF3E", - "operands": [] + "fift_examples": [], + "opcode": "CF3E", + "stack": "b y - ?" }, + "bytecode": { "tlb": "#CF3E", "prefix": "CF3E", "operands": [] }, "value_flow": { - "doc_stack": "b y - ?", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -16148,16 +15068,12 @@ "description": "Checks whether `x` bits and `y` references can be stored into `b`, `0 <= x <= 1023`, `0 <= y <= 7`.", "gas": "26", "fift": "BCHKBITREFSQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF3F", - "tlb": "#CF3F", - "prefix": "CF3F", - "operands": [] + "fift_examples": [], + "opcode": "CF3F", + "stack": "b x y - ?" }, + "bytecode": { "tlb": "#CF3F", "prefix": "CF3F", "operands": [] }, "value_flow": { - "doc_stack": "b x y - ?", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -16183,16 +15099,12 @@ "description": "Stores `n` binary zeroes into _Builder_ `b`.", "gas": "26", "fift": "STZEROES", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF40", - "tlb": "#CF40", - "prefix": "CF40", - "operands": [] + "fift_examples": [], + "opcode": "CF40", + "stack": "b n - b'" }, + "bytecode": { "tlb": "#CF40", "prefix": "CF40", "operands": [] }, "value_flow": { - "doc_stack": "b n - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -16217,16 +15129,12 @@ "description": "Stores `n` binary ones into _Builder_ `b`.", "gas": "26", "fift": "STONES", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF41", - "tlb": "#CF41", - "prefix": "CF41", - "operands": [] + "fift_examples": [], + "opcode": "CF41", + "stack": "b n - b'" }, + "bytecode": { "tlb": "#CF41", "prefix": "CF41", "operands": [] }, "value_flow": { - "doc_stack": "b n - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -16251,16 +15159,12 @@ "description": "Stores `n` binary `x`es (`0 <= x <= 1`) into _Builder_ `b`.", "gas": "26", "fift": "STSAME", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "CF42", - "tlb": "#CF42", - "prefix": "CF42", - "operands": [] + "fift_examples": [], + "opcode": "CF42", + "stack": "b n x - b'" }, + "bytecode": { "tlb": "#CF42", "prefix": "CF42", "operands": [] }, "value_flow": { - "doc_stack": "b n x - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -16286,10 +15190,11 @@ "description": "Stores a constant subslice `sss`.\n_Details:_ `sss` consists of `0 <= x <= 3` references and up to `8y+2` data bits, with `0 <= y <= 7`. Completion bit is assumed.\nNote that the assembler can replace `STSLICECONST` with `PUSHSLICE` `STSLICER` if the slice is too big.", "gas": "24", "fift": "[slice] STSLICECONST", - "fift_examples": [] + "fift_examples": [], + "opcode": "CFC0_xysss", + "stack": "b - b'" }, "bytecode": { - "doc_opcode": "CFC0_xysss", "tlb": "#CFC0_ x:(## 2) y:(## 3) c:(x * ^Cell) sss:((8 * y + 2) * Bit)", "prefix": "CFC0_", "operands": [ @@ -16310,7 +15215,6 @@ ] }, "value_flow": { - "doc_stack": "b - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } @@ -16334,16 +15238,12 @@ "description": "Converts a _Cell_ into a _Slice_. Notice that `c` must be either an ordinary cell, or an exotic cell which is automatically _loaded_ to yield an ordinary cell `c'`, converted into a _Slice_ afterwards.", "gas": "118/43", "fift": "CTOS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D0", - "tlb": "#D0", - "prefix": "D0", - "operands": [] + "fift_examples": [], + "opcode": "D0", + "stack": "c - s" }, + "bytecode": { "tlb": "#D0", "prefix": "D0", "operands": [] }, "value_flow": { - "doc_stack": "c - s", "inputs": { "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], "registers": [] @@ -16365,16 +15265,12 @@ "description": "Removes a _Slice_ `s` from the stack, and throws an exception if it is not empty.", "gas": "18/68", "fift": "ENDS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D1", - "tlb": "#D1", - "prefix": "D1", - "operands": [] + "fift_examples": [], + "opcode": "D1", + "stack": "s - " }, + "bytecode": { "tlb": "#D1", "prefix": "D1", "operands": [] }, "value_flow": { - "doc_stack": "s - ", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -16393,10 +15289,11 @@ "description": "Loads (i.e., parses) a signed `cc+1`-bit integer `x` from _Slice_ `s`, and returns the remainder of `s` as `s'`.", "gas": "26", "fift": "[cc+1] LDI", - "fift_examples": [] + "fift_examples": [], + "opcode": "D2cc", + "stack": "s - x s'" }, "bytecode": { - "doc_opcode": "D2cc", "tlb": "#D2 cc:uint8", "prefix": "D2", "operands": [ @@ -16411,7 +15308,6 @@ ] }, "value_flow": { - "doc_stack": "s - x s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -16436,10 +15332,11 @@ "description": "Loads an unsigned `cc+1`-bit integer `x` from _Slice_ `s`.", "gas": "26", "fift": "[cc+1] LDU", - "fift_examples": [] + "fift_examples": [], + "opcode": "D3cc", + "stack": "s - x s'" }, "bytecode": { - "doc_opcode": "D3cc", "tlb": "#D3 cc:uint8", "prefix": "D3", "operands": [ @@ -16454,7 +15351,6 @@ ] }, "value_flow": { - "doc_stack": "s - x s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -16479,16 +15375,12 @@ "description": "Loads a cell reference `c` from `s`.", "gas": "18", "fift": "LDREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D4", - "tlb": "#D4", - "prefix": "D4", - "operands": [] + "fift_examples": [], + "opcode": "D4", + "stack": "s - c s'" }, + "bytecode": { "tlb": "#D4", "prefix": "D4", "operands": [] }, "value_flow": { - "doc_stack": "s - c s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -16513,16 +15405,12 @@ "description": "Equivalent to `LDREF` `SWAP` `CTOS`.", "gas": "118/43", "fift": "LDREFRTOS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D5", - "tlb": "#D5", - "prefix": "D5", - "operands": [] + "fift_examples": [], + "opcode": "D5", + "stack": "s - s' s''" }, + "bytecode": { "tlb": "#D5", "prefix": "D5", "operands": [] }, "value_flow": { - "doc_stack": "s - s' s''", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -16547,10 +15435,11 @@ "description": "Cuts the next `cc+1` bits of `s` into a separate _Slice_ `s''`.", "gas": "26", "fift": "[cc+1] LDSLICE", - "fift_examples": [] + "fift_examples": [], + "opcode": "D6cc", + "stack": "s - s'' s'" }, "bytecode": { - "doc_opcode": "D6cc", "tlb": "#D6 cc:uint8", "prefix": "D6", "operands": [ @@ -16565,7 +15454,6 @@ ] }, "value_flow": { - "doc_stack": "s - s'' s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -16590,16 +15478,12 @@ "description": "Loads a signed `l`-bit (`0 <= l <= 257`) integer `x` from _Slice_ `s`, and returns the remainder of `s` as `s'`.", "gas": "26", "fift": "LDIX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D700", - "tlb": "#D700", - "prefix": "D700", - "operands": [] + "fift_examples": [], + "opcode": "D700", + "stack": "s l - x s'" }, + "bytecode": { "tlb": "#D700", "prefix": "D700", "operands": [] }, "value_flow": { - "doc_stack": "s l - x s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -16625,16 +15509,12 @@ "description": "Loads an unsigned `l`-bit integer `x` from (the first `l` bits of) `s`, with `0 <= l <= 256`.", "gas": "26", "fift": "LDUX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D701", - "tlb": "#D701", - "prefix": "D701", - "operands": [] + "fift_examples": [], + "opcode": "D701", + "stack": "s l - x s'" }, + "bytecode": { "tlb": "#D701", "prefix": "D701", "operands": [] }, "value_flow": { - "doc_stack": "s l - x s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -16660,16 +15540,12 @@ "description": "Preloads a signed `l`-bit integer from _Slice_ `s`, for `0 <= l <= 257`.", "gas": "26", "fift": "PLDIX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D702", - "tlb": "#D702", - "prefix": "D702", - "operands": [] + "fift_examples": [], + "opcode": "D702", + "stack": "s l - x" }, + "bytecode": { "tlb": "#D702", "prefix": "D702", "operands": [] }, "value_flow": { - "doc_stack": "s l - x", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -16694,16 +15570,12 @@ "description": "Preloads an unsigned `l`-bit integer from `s`, for `0 <= l <= 256`.", "gas": "26", "fift": "PLDUX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D703", - "tlb": "#D703", - "prefix": "D703", - "operands": [] + "fift_examples": [], + "opcode": "D703", + "stack": "s l - x" }, + "bytecode": { "tlb": "#D703", "prefix": "D703", "operands": [] }, "value_flow": { - "doc_stack": "s l - x", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -16728,16 +15600,12 @@ "description": "Quiet version of `LDIX`: loads a signed `l`-bit integer from `s` similarly to `LDIX`, but returns a success flag, equal to `-1` on success or to `0` on failure (if `s` does not have `l` bits), instead of throwing a cell underflow exception.", "gas": "26", "fift": "LDIXQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D704", - "tlb": "#D704", - "prefix": "D704", - "operands": [] + "fift_examples": [], + "opcode": "D704", + "stack": "s l - x s' -1 or s 0" }, + "bytecode": { "tlb": "#D704", "prefix": "D704", "operands": [] }, "value_flow": { - "doc_stack": "s l - x s' -1 or s 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -16785,16 +15653,12 @@ "description": "Quiet version of `LDUX`.", "gas": "26", "fift": "LDUXQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D705", - "tlb": "#D705", - "prefix": "D705", - "operands": [] + "fift_examples": [], + "opcode": "D705", + "stack": "s l - x s' -1 or s 0" }, + "bytecode": { "tlb": "#D705", "prefix": "D705", "operands": [] }, "value_flow": { - "doc_stack": "s l - x s' -1 or s 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -16842,16 +15706,12 @@ "description": "Quiet version of `PLDIX`.", "gas": "26", "fift": "PLDIXQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D706", - "tlb": "#D706", - "prefix": "D706", - "operands": [] + "fift_examples": [], + "opcode": "D706", + "stack": "s l - x -1 or 0" }, + "bytecode": { "tlb": "#D706", "prefix": "D706", "operands": [] }, "value_flow": { - "doc_stack": "s l - x -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -16893,16 +15753,12 @@ "description": "Quiet version of `PLDUX`.", "gas": "26", "fift": "PLDUXQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D707", - "tlb": "#D707", - "prefix": "D707", - "operands": [] + "fift_examples": [], + "opcode": "D707", + "stack": "s l - x -1 or 0" }, + "bytecode": { "tlb": "#D707", "prefix": "D707", "operands": [] }, "value_flow": { - "doc_stack": "s l - x -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -16944,10 +15800,11 @@ "description": "A longer encoding for `LDI`.", "gas": "34", "fift": "[cc+1] LDI_l", - "fift_examples": [] + "fift_examples": [], + "opcode": "D708cc", + "stack": "s - x s'" }, "bytecode": { - "doc_opcode": "D708cc", "tlb": "#D708 cc:uint8", "prefix": "D708", "operands": [ @@ -16962,7 +15819,6 @@ ] }, "value_flow": { - "doc_stack": "s - x s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -16987,10 +15843,11 @@ "description": "A longer encoding for `LDU`.", "gas": "34", "fift": "[cc+1] LDU_l", - "fift_examples": [] + "fift_examples": [], + "opcode": "D709cc", + "stack": "s - x s'" }, "bytecode": { - "doc_opcode": "D709cc", "tlb": "#D709 cc:uint8", "prefix": "D709", "operands": [ @@ -17005,7 +15862,6 @@ ] }, "value_flow": { - "doc_stack": "s - x s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -17030,10 +15886,11 @@ "description": "Preloads a signed `cc+1`-bit integer from _Slice_ `s`.", "gas": "34", "fift": "[cc+1] PLDI", - "fift_examples": [] + "fift_examples": [], + "opcode": "D70Acc", + "stack": "s - x" }, "bytecode": { - "doc_opcode": "D70Acc", "tlb": "#D70A cc:uint8", "prefix": "D70A", "operands": [ @@ -17048,7 +15905,6 @@ ] }, "value_flow": { - "doc_stack": "s - x", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -17072,10 +15928,11 @@ "description": "Preloads an unsigned `cc+1`-bit integer from `s`.", "gas": "34", "fift": "[cc+1] PLDU", - "fift_examples": [] + "fift_examples": [], + "opcode": "D70Bcc", + "stack": "s - x" }, "bytecode": { - "doc_opcode": "D70Bcc", "tlb": "#D70B cc:uint8", "prefix": "D70B", "operands": [ @@ -17090,7 +15947,6 @@ ] }, "value_flow": { - "doc_stack": "s - x", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -17114,10 +15970,11 @@ "description": "A quiet version of `LDI`.", "gas": "34", "fift": "[cc+1] LDIQ", - "fift_examples": [] + "fift_examples": [], + "opcode": "D70Ccc", + "stack": "s - x s' -1 or s 0" }, "bytecode": { - "doc_opcode": "D70Ccc", "tlb": "#D70C cc:uint8", "prefix": "D70C", "operands": [ @@ -17132,7 +15989,6 @@ ] }, "value_flow": { - "doc_stack": "s - x s' -1 or s 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -17179,10 +16035,11 @@ "description": "A quiet version of `LDU`.", "gas": "34", "fift": "[cc+1] LDUQ", - "fift_examples": [] + "fift_examples": [], + "opcode": "D70Dcc", + "stack": "s - x s' -1 or s 0" }, "bytecode": { - "doc_opcode": "D70Dcc", "tlb": "#D70D cc:uint8", "prefix": "D70D", "operands": [ @@ -17197,7 +16054,6 @@ ] }, "value_flow": { - "doc_stack": "s - x s' -1 or s 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -17244,10 +16100,11 @@ "description": "A quiet version of `PLDI`.", "gas": "34", "fift": "[cc+1] PLDIQ", - "fift_examples": [] + "fift_examples": [], + "opcode": "D70Ecc", + "stack": "s - x -1 or 0" }, "bytecode": { - "doc_opcode": "D70Ecc", "tlb": "#D70E cc:uint8", "prefix": "D70E", "operands": [ @@ -17262,7 +16119,6 @@ ] }, "value_flow": { - "doc_stack": "s - x -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -17303,10 +16159,11 @@ "description": "A quiet version of `PLDU`.", "gas": "34", "fift": "[cc+1] PLDUQ", - "fift_examples": [] + "fift_examples": [], + "opcode": "D70Fcc", + "stack": "s - x -1 or 0" }, "bytecode": { - "doc_opcode": "D70Fcc", "tlb": "#D70F cc:uint8", "prefix": "D70F", "operands": [ @@ -17321,7 +16178,6 @@ ] }, "value_flow": { - "doc_stack": "s - x -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -17362,10 +16218,11 @@ "description": "Preloads the first `32(c+1)` bits of _Slice_ `s` into an unsigned integer `x`, for `0 <= c <= 7`. If `s` is shorter than necessary, missing bits are assumed to be zero. This operation is intended to be used along with `IFBITJMP` and similar instructions.", "gas": "26", "fift": "[32(c+1)] PLDUZ", - "fift_examples": [] + "fift_examples": [], + "opcode": "D714_c", + "stack": "s - s x" }, "bytecode": { - "doc_opcode": "D714_c", "tlb": "#D714_ c:uint3", "prefix": "D714_", "operands": [ @@ -17380,7 +16237,6 @@ ] }, "value_flow": { - "doc_stack": "s - s x", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -17405,16 +16261,12 @@ "description": "Loads the first `0 <= l <= 1023` bits from _Slice_ `s` into a separate _Slice_ `s''`, returning the remainder of `s` as `s'`.", "gas": "26", "fift": "LDSLICEX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D718", - "tlb": "#D718", - "prefix": "D718", - "operands": [] + "fift_examples": [], + "opcode": "D718", + "stack": "s l - s'' s'" }, + "bytecode": { "tlb": "#D718", "prefix": "D718", "operands": [] }, "value_flow": { - "doc_stack": "s l - s'' s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -17440,16 +16292,12 @@ "description": "Returns the first `0 <= l <= 1023` bits of `s` as `s''`.", "gas": "26", "fift": "PLDSLICEX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D719", - "tlb": "#D719", - "prefix": "D719", - "operands": [] + "fift_examples": [], + "opcode": "D719", + "stack": "s l - s''" }, + "bytecode": { "tlb": "#D719", "prefix": "D719", "operands": [] }, "value_flow": { - "doc_stack": "s l - s''", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -17474,16 +16322,12 @@ "description": "A quiet version of `LDSLICEX`.", "gas": "26", "fift": "LDSLICEXQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D71A", - "tlb": "#D71A", - "prefix": "D71A", - "operands": [] + "fift_examples": [], + "opcode": "D71A", + "stack": "s l - s'' s' -1 or s 0" }, + "bytecode": { "tlb": "#D71A", "prefix": "D71A", "operands": [] }, "value_flow": { - "doc_stack": "s l - s'' s' -1 or s 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -17531,16 +16375,12 @@ "description": "A quiet version of `LDSLICEXQ`.", "gas": "26", "fift": "PLDSLICEXQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D71B", - "tlb": "#D71B", - "prefix": "D71B", - "operands": [] + "fift_examples": [], + "opcode": "D71B", + "stack": "s l - s' -1 or 0" }, + "bytecode": { "tlb": "#D71B", "prefix": "D71B", "operands": [] }, "value_flow": { - "doc_stack": "s l - s' -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -17578,10 +16418,11 @@ "description": "A longer encoding for `LDSLICE`.", "gas": "34", "fift": "[cc+1] LDSLICE_l", - "fift_examples": [] + "fift_examples": [], + "opcode": "D71Ccc", + "stack": "s - s'' s'" }, "bytecode": { - "doc_opcode": "D71Ccc", "tlb": "#D71C cc:uint8", "prefix": "D71C", "operands": [ @@ -17596,7 +16437,6 @@ ] }, "value_flow": { - "doc_stack": "s - s'' s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -17621,10 +16461,11 @@ "description": "Returns the first `0 < cc+1 <= 256` bits of `s` as `s''`.", "gas": "34", "fift": "[cc+1] PLDSLICE", - "fift_examples": [] + "fift_examples": [], + "opcode": "D71Dcc", + "stack": "s - s''" }, "bytecode": { - "doc_opcode": "D71Dcc", "tlb": "#D71D cc:uint8", "prefix": "D71D", "operands": [ @@ -17639,7 +16480,6 @@ ] }, "value_flow": { - "doc_stack": "s - s''", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -17663,10 +16503,11 @@ "description": "A quiet version of `LDSLICE`.", "gas": "34", "fift": "[cc+1] LDSLICEQ", - "fift_examples": [] + "fift_examples": [], + "opcode": "D71Ecc", + "stack": "s - s'' s' -1 or s 0" }, "bytecode": { - "doc_opcode": "D71Ecc", "tlb": "#D71E cc:uint8", "prefix": "D71E", "operands": [ @@ -17681,7 +16522,6 @@ ] }, "value_flow": { - "doc_stack": "s - s'' s' -1 or s 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -17728,10 +16568,11 @@ "description": "A quiet version of `PLDSLICE`.", "gas": "34", "fift": "[cc+1] PLDSLICEQ", - "fift_examples": [] + "fift_examples": [], + "opcode": "D71Fcc", + "stack": "s - s'' -1 or 0" }, "bytecode": { - "doc_opcode": "D71Fcc", "tlb": "#D71F cc:uint8", "prefix": "D71F", "operands": [ @@ -17746,7 +16587,6 @@ ] }, "value_flow": { - "doc_stack": "s - s'' -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -17783,16 +16623,12 @@ "description": "Returns the first `0 <= l <= 1023` bits of `s`. It is equivalent to `PLDSLICEX`.", "gas": "26", "fift": "SDCUTFIRST", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D720", - "tlb": "#D720", - "prefix": "D720", - "operands": [] + "fift_examples": [], + "opcode": "D720", + "stack": "s l - s'" }, + "bytecode": { "tlb": "#D720", "prefix": "D720", "operands": [] }, "value_flow": { - "doc_stack": "s l - s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -17817,16 +16653,12 @@ "description": "Returns all but the first `0 <= l <= 1023` bits of `s`. It is equivalent to `LDSLICEX` `NIP`.", "gas": "26", "fift": "SDSKIPFIRST", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D721", - "tlb": "#D721", - "prefix": "D721", - "operands": [] + "fift_examples": [], + "opcode": "D721", + "stack": "s l - s'" }, + "bytecode": { "tlb": "#D721", "prefix": "D721", "operands": [] }, "value_flow": { - "doc_stack": "s l - s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -17851,16 +16683,12 @@ "description": "Returns the last `0 <= l <= 1023` bits of `s`.", "gas": "26", "fift": "SDCUTLAST", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D722", - "tlb": "#D722", - "prefix": "D722", - "operands": [] + "fift_examples": [], + "opcode": "D722", + "stack": "s l - s'" }, + "bytecode": { "tlb": "#D722", "prefix": "D722", "operands": [] }, "value_flow": { - "doc_stack": "s l - s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -17885,16 +16713,12 @@ "description": "Returns all but the last `0 <= l <= 1023` bits of `s`.", "gas": "26", "fift": "SDSKIPLAST", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D723", - "tlb": "#D723", - "prefix": "D723", - "operands": [] + "fift_examples": [], + "opcode": "D723", + "stack": "s l - s'" }, + "bytecode": { "tlb": "#D723", "prefix": "D723", "operands": [] }, "value_flow": { - "doc_stack": "s l - s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -17919,16 +16743,12 @@ "description": "Returns `0 <= l' <= 1023` bits of `s` starting from offset `0 <= l <= 1023`, thus extracting a bit substring out of the data of `s`.", "gas": "26", "fift": "SDSUBSTR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D724", - "tlb": "#D724", - "prefix": "D724", - "operands": [] + "fift_examples": [], + "opcode": "D724", + "stack": "s l l' - s'" }, + "bytecode": { "tlb": "#D724", "prefix": "D724", "operands": [] }, "value_flow": { - "doc_stack": "s l l' - s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -17954,16 +16774,12 @@ "description": "Checks whether `s` begins with (the data bits of) `s'`, and removes `s'` from `s` on success. On failure throws a cell deserialization exception. Primitive `SDPFXREV` can be considered a quiet version of `SDBEGINSX`.", "gas": "26", "fift": "SDBEGINSX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D726", - "tlb": "#D726", - "prefix": "D726", - "operands": [] + "fift_examples": [], + "opcode": "D726", + "stack": "s s' - s''" }, + "bytecode": { "tlb": "#D726", "prefix": "D726", "operands": [] }, "value_flow": { - "doc_stack": "s s' - s''", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -17988,16 +16804,12 @@ "description": "A quiet version of `SDBEGINSX`.", "gas": "26", "fift": "SDBEGINSXQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D727", - "tlb": "#D727", - "prefix": "D727", - "operands": [] + "fift_examples": [], + "opcode": "D727", + "stack": "s s' - s'' -1 or s 0" }, + "bytecode": { "tlb": "#D727", "prefix": "D727", "operands": [] }, "value_flow": { - "doc_stack": "s s' - s'' -1 or s 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -18040,10 +16852,11 @@ "description": "Checks whether `s` begins with constant bitstring `sss` of length `8x+3` (with continuation bit assumed), where `0 <= x <= 127`, and removes `sss` from `s` on success.", "gas": "31", "fift": "[slice] SDBEGINS", - "fift_examples": [] + "fift_examples": [], + "opcode": "D72A_xsss", + "stack": "s - s''" }, "bytecode": { - "doc_opcode": "D72A_xsss", "tlb": "#D72A_ x:(## 7) sss:((8 * x + 3) * Bit)", "prefix": "D72A_", "operands": [ @@ -18062,7 +16875,6 @@ ] }, "value_flow": { - "doc_stack": "s - s''", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -18086,10 +16898,11 @@ "description": "A quiet version of `SDBEGINS`.", "gas": "31", "fift": "[slice] SDBEGINSQ", - "fift_examples": [] + "fift_examples": [], + "opcode": "D72E_xsss", + "stack": "s - s'' -1 or s 0" }, "bytecode": { - "doc_opcode": "D72E_xsss", "tlb": "#D72E_ x:(## 7) sss:((8 * x + 3) * Bit)", "prefix": "D72E_", "operands": [ @@ -18108,7 +16921,6 @@ ] }, "value_flow": { - "doc_stack": "s - s'' -1 or s 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -18150,16 +16962,12 @@ "description": "Returns the first `0 <= l <= 1023` bits and first `0 <= r <= 4` references of `s`.", "gas": "26", "fift": "SCUTFIRST", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D730", - "tlb": "#D730", - "prefix": "D730", - "operands": [] + "fift_examples": [], + "opcode": "D730", + "stack": "s l r - s'" }, + "bytecode": { "tlb": "#D730", "prefix": "D730", "operands": [] }, "value_flow": { - "doc_stack": "s l r - s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -18185,16 +16993,12 @@ "description": "Returns all but the first `l` bits of `s` and `r` references of `s`.", "gas": "26", "fift": "SSKIPFIRST", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D731", - "tlb": "#D731", - "prefix": "D731", - "operands": [] + "fift_examples": [], + "opcode": "D731", + "stack": "s l r - s'" }, + "bytecode": { "tlb": "#D731", "prefix": "D731", "operands": [] }, "value_flow": { - "doc_stack": "s l r - s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -18220,16 +17024,12 @@ "description": "Returns the last `0 <= l <= 1023` data bits and last `0 <= r <= 4` references of `s`.", "gas": "26", "fift": "SCUTLAST", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D732", - "tlb": "#D732", - "prefix": "D732", - "operands": [] + "fift_examples": [], + "opcode": "D732", + "stack": "s l r - s'" }, + "bytecode": { "tlb": "#D732", "prefix": "D732", "operands": [] }, "value_flow": { - "doc_stack": "s l r - s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -18255,16 +17055,12 @@ "description": "Returns all but the last `l` bits of `s` and `r` references of `s`.", "gas": "26", "fift": "SSKIPLAST", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D733", - "tlb": "#D733", - "prefix": "D733", - "operands": [] + "fift_examples": [], + "opcode": "D733", + "stack": "s l r - s'" }, + "bytecode": { "tlb": "#D733", "prefix": "D733", "operands": [] }, "value_flow": { - "doc_stack": "s l r - s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -18290,16 +17086,12 @@ "description": "Returns `0 <= l' <= 1023` bits and `0 <= r' <= 4` references from _Slice_ `s`, after skipping the first `0 <= l <= 1023` bits and first `0 <= r <= 4` references.", "gas": "26", "fift": "SUBSLICE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D734", - "tlb": "#D734", - "prefix": "D734", - "operands": [] + "fift_examples": [], + "opcode": "D734", + "stack": "s l r l' r' - s'" }, + "bytecode": { "tlb": "#D734", "prefix": "D734", "operands": [] }, "value_flow": { - "doc_stack": "s l r l' r' - s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -18327,16 +17119,12 @@ "description": "Splits the first `0 <= l <= 1023` data bits and first `0 <= r <= 4` references from `s` into `s'`, returning the remainder of `s` as `s''`.", "gas": "26", "fift": "SPLIT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D736", - "tlb": "#D736", - "prefix": "D736", - "operands": [] + "fift_examples": [], + "opcode": "D736", + "stack": "s l r - s' s''" }, + "bytecode": { "tlb": "#D736", "prefix": "D736", "operands": [] }, "value_flow": { - "doc_stack": "s l r - s' s''", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -18363,16 +17151,12 @@ "description": "A quiet version of `SPLIT`.", "gas": "26", "fift": "SPLITQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D737", - "tlb": "#D737", - "prefix": "D737", - "operands": [] + "fift_examples": [], + "opcode": "D737", + "stack": "s l r - s' s'' -1 or s 0" }, + "bytecode": { "tlb": "#D737", "prefix": "D737", "operands": [] }, "value_flow": { - "doc_stack": "s l r - s' s'' -1 or s 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -18421,16 +17205,12 @@ "description": "Transforms an ordinary or exotic cell into a _Slice_, as if it were an ordinary cell. A flag is returned indicating whether `c` is exotic. If that be the case, its type can later be deserialized from the first eight bits of `s`.", "gas": "", "fift": "", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D739", - "tlb": "#D739", - "prefix": "D739", - "operands": [] + "fift_examples": [], + "opcode": "D739", + "stack": "c - s ?" }, + "bytecode": { "tlb": "#D739", "prefix": "D739", "operands": [] }, "value_flow": { - "doc_stack": "c - s ?", "inputs": { "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], "registers": [] @@ -18453,16 +17233,12 @@ "description": "Loads an exotic cell `c` and returns an ordinary cell `c'`. If `c` is already ordinary, does nothing. If `c` cannot be loaded, throws an exception.", "gas": "", "fift": "", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D73A", - "tlb": "#D73A", - "prefix": "D73A", - "operands": [] + "fift_examples": [], + "opcode": "D73A", + "stack": "c - c'" }, + "bytecode": { "tlb": "#D73A", "prefix": "D73A", "operands": [] }, "value_flow": { - "doc_stack": "c - c'", "inputs": { "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], "registers": [] @@ -18484,16 +17260,12 @@ "description": "Loads an exotic cell `c` and returns an ordinary cell `c'`. If `c` is already ordinary, does nothing. If `c` cannot be loaded, returns 0.", "gas": "", "fift": "", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D73B", - "tlb": "#D73B", - "prefix": "D73B", - "operands": [] + "fift_examples": [], + "opcode": "D73B", + "stack": "c - c' -1 or c 0" }, + "bytecode": { "tlb": "#D73B", "prefix": "D73B", "operands": [] }, "value_flow": { - "doc_stack": "c - c' -1 or c 0", "inputs": { "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], "registers": [] @@ -18533,16 +17305,12 @@ "description": "Checks whether there are at least `l` data bits in _Slice_ `s`. If this is not the case, throws a cell deserialisation (i.e., cell underflow) exception.", "gas": "26/76", "fift": "SCHKBITS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D741", - "tlb": "#D741", - "prefix": "D741", - "operands": [] + "fift_examples": [], + "opcode": "D741", + "stack": "s l - " }, + "bytecode": { "tlb": "#D741", "prefix": "D741", "operands": [] }, "value_flow": { - "doc_stack": "s l - ", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -18562,16 +17330,12 @@ "description": "Checks whether there are at least `r` references in _Slice_ `s`.", "gas": "26/76", "fift": "SCHKREFS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D742", - "tlb": "#D742", - "prefix": "D742", - "operands": [] + "fift_examples": [], + "opcode": "D742", + "stack": "s r - " }, + "bytecode": { "tlb": "#D742", "prefix": "D742", "operands": [] }, "value_flow": { - "doc_stack": "s r - ", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -18591,16 +17355,12 @@ "description": "Checks whether there are at least `l` data bits and `r` references in _Slice_ `s`.", "gas": "26/76", "fift": "SCHKBITREFS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D743", - "tlb": "#D743", - "prefix": "D743", - "operands": [] + "fift_examples": [], + "opcode": "D743", + "stack": "s l r - " }, + "bytecode": { "tlb": "#D743", "prefix": "D743", "operands": [] }, "value_flow": { - "doc_stack": "s l r - ", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -18621,16 +17381,12 @@ "description": "Checks whether there are at least `l` data bits in _Slice_ `s`.", "gas": "26", "fift": "SCHKBITSQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D745", - "tlb": "#D745", - "prefix": "D745", - "operands": [] + "fift_examples": [], + "opcode": "D745", + "stack": "s l - ?" }, + "bytecode": { "tlb": "#D745", "prefix": "D745", "operands": [] }, "value_flow": { - "doc_stack": "s l - ?", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -18655,16 +17411,12 @@ "description": "Checks whether there are at least `r` references in _Slice_ `s`.", "gas": "26", "fift": "SCHKREFSQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D746", - "tlb": "#D746", - "prefix": "D746", - "operands": [] + "fift_examples": [], + "opcode": "D746", + "stack": "s r - ?" }, + "bytecode": { "tlb": "#D746", "prefix": "D746", "operands": [] }, "value_flow": { - "doc_stack": "s r - ?", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -18689,16 +17441,12 @@ "description": "Checks whether there are at least `l` data bits and `r` references in _Slice_ `s`.", "gas": "26", "fift": "SCHKBITREFSQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D747", - "tlb": "#D747", - "prefix": "D747", - "operands": [] + "fift_examples": [], + "opcode": "D747", + "stack": "s l r - ?" }, + "bytecode": { "tlb": "#D747", "prefix": "D747", "operands": [] }, "value_flow": { - "doc_stack": "s l r - ?", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -18724,16 +17472,12 @@ "description": "Returns the `n`-th cell reference of _Slice_ `s` for `0 <= n <= 3`.", "gas": "26", "fift": "PLDREFVAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D748", - "tlb": "#D748", - "prefix": "D748", - "operands": [] + "fift_examples": [], + "opcode": "D748", + "stack": "s n - c" }, + "bytecode": { "tlb": "#D748", "prefix": "D748", "operands": [] }, "value_flow": { - "doc_stack": "s n - c", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -18756,16 +17500,12 @@ "description": "Returns the number of data bits in _Slice_ `s`.", "gas": "26", "fift": "SBITS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D749", - "tlb": "#D749", - "prefix": "D749", - "operands": [] + "fift_examples": [], + "opcode": "D749", + "stack": "s - l" }, + "bytecode": { "tlb": "#D749", "prefix": "D749", "operands": [] }, "value_flow": { - "doc_stack": "s - l", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -18789,16 +17529,12 @@ "description": "Returns the number of references in _Slice_ `s`.", "gas": "26", "fift": "SREFS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D74A", - "tlb": "#D74A", - "prefix": "D74A", - "operands": [] + "fift_examples": [], + "opcode": "D74A", + "stack": "s - r" }, + "bytecode": { "tlb": "#D74A", "prefix": "D74A", "operands": [] }, "value_flow": { - "doc_stack": "s - r", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -18822,16 +17558,12 @@ "description": "Returns both the number of data bits and the number of references in `s`.", "gas": "26", "fift": "SBITREFS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D74B", - "tlb": "#D74B", - "prefix": "D74B", - "operands": [] + "fift_examples": [], + "opcode": "D74B", + "stack": "s - l r" }, + "bytecode": { "tlb": "#D74B", "prefix": "D74B", "operands": [] }, "value_flow": { - "doc_stack": "s - l r", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -18856,10 +17588,11 @@ "description": "Returns the `n`-th cell reference of _Slice_ `s`, where `0 <= n <= 3`.", "gas": "26", "fift": "[n] PLDREFIDX", - "fift_examples": [] + "fift_examples": [], + "opcode": "D74E_n", + "stack": "s - c" }, "bytecode": { - "doc_opcode": "D74E_n", "tlb": "#D74E_ n:uint2", "prefix": "D74E_", "operands": [ @@ -18874,7 +17607,6 @@ ] }, "value_flow": { - "doc_stack": "s - c", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -18896,16 +17628,12 @@ "description": "Loads a little-endian signed 32-bit integer.", "gas": "26", "fift": "LDILE4", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D750", - "tlb": "#D750", - "prefix": "D750", - "operands": [] + "fift_examples": [], + "opcode": "D750", + "stack": "s - x s'" }, + "bytecode": { "tlb": "#D750", "prefix": "D750", "operands": [] }, "value_flow": { - "doc_stack": "s - x s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -18930,16 +17658,12 @@ "description": "Loads a little-endian unsigned 32-bit integer.", "gas": "26", "fift": "LDULE4", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D751", - "tlb": "#D751", - "prefix": "D751", - "operands": [] + "fift_examples": [], + "opcode": "D751", + "stack": "s - x s'" }, + "bytecode": { "tlb": "#D751", "prefix": "D751", "operands": [] }, "value_flow": { - "doc_stack": "s - x s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -18964,16 +17688,12 @@ "description": "Loads a little-endian signed 64-bit integer.", "gas": "26", "fift": "LDILE8", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D752", - "tlb": "#D752", - "prefix": "D752", - "operands": [] + "fift_examples": [], + "opcode": "D752", + "stack": "s - x s'" }, + "bytecode": { "tlb": "#D752", "prefix": "D752", "operands": [] }, "value_flow": { - "doc_stack": "s - x s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -18998,16 +17718,12 @@ "description": "Loads a little-endian unsigned 64-bit integer.", "gas": "26", "fift": "LDULE8", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D753", - "tlb": "#D753", - "prefix": "D753", - "operands": [] + "fift_examples": [], + "opcode": "D753", + "stack": "s - x s'" }, + "bytecode": { "tlb": "#D753", "prefix": "D753", "operands": [] }, "value_flow": { - "doc_stack": "s - x s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -19032,16 +17748,12 @@ "description": "Preloads a little-endian signed 32-bit integer.", "gas": "26", "fift": "PLDILE4", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D754", - "tlb": "#D754", - "prefix": "D754", - "operands": [] + "fift_examples": [], + "opcode": "D754", + "stack": "s - x" }, + "bytecode": { "tlb": "#D754", "prefix": "D754", "operands": [] }, "value_flow": { - "doc_stack": "s - x", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -19065,16 +17777,12 @@ "description": "Preloads a little-endian unsigned 32-bit integer.", "gas": "26", "fift": "PLDULE4", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D755", - "tlb": "#D755", - "prefix": "D755", - "operands": [] + "fift_examples": [], + "opcode": "D755", + "stack": "s - x" }, + "bytecode": { "tlb": "#D755", "prefix": "D755", "operands": [] }, "value_flow": { - "doc_stack": "s - x", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -19098,16 +17806,12 @@ "description": "Preloads a little-endian signed 64-bit integer.", "gas": "26", "fift": "PLDILE8", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D756", - "tlb": "#D756", - "prefix": "D756", - "operands": [] + "fift_examples": [], + "opcode": "D756", + "stack": "s - x" }, + "bytecode": { "tlb": "#D756", "prefix": "D756", "operands": [] }, "value_flow": { - "doc_stack": "s - x", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -19131,16 +17835,12 @@ "description": "Preloads a little-endian unsigned 64-bit integer.", "gas": "26", "fift": "PLDULE8", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D757", - "tlb": "#D757", - "prefix": "D757", - "operands": [] + "fift_examples": [], + "opcode": "D757", + "stack": "s - x" }, + "bytecode": { "tlb": "#D757", "prefix": "D757", "operands": [] }, "value_flow": { - "doc_stack": "s - x", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -19164,16 +17864,12 @@ "description": "Quietly loads a little-endian signed 32-bit integer.", "gas": "26", "fift": "LDILE4Q", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D758", - "tlb": "#D758", - "prefix": "D758", - "operands": [] + "fift_examples": [], + "opcode": "D758", + "stack": "s - x s' -1 or s 0" }, + "bytecode": { "tlb": "#D758", "prefix": "D758", "operands": [] }, "value_flow": { - "doc_stack": "s - x s' -1 or s 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -19220,16 +17916,12 @@ "description": "Quietly loads a little-endian unsigned 32-bit integer.", "gas": "26", "fift": "LDULE4Q", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D759", - "tlb": "#D759", - "prefix": "D759", - "operands": [] + "fift_examples": [], + "opcode": "D759", + "stack": "s - x s' -1 or s 0" }, + "bytecode": { "tlb": "#D759", "prefix": "D759", "operands": [] }, "value_flow": { - "doc_stack": "s - x s' -1 or s 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -19276,16 +17968,12 @@ "description": "Quietly loads a little-endian signed 64-bit integer.", "gas": "26", "fift": "LDILE8Q", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D75A", - "tlb": "#D75A", - "prefix": "D75A", - "operands": [] + "fift_examples": [], + "opcode": "D75A", + "stack": "s - x s' -1 or s 0" }, + "bytecode": { "tlb": "#D75A", "prefix": "D75A", "operands": [] }, "value_flow": { - "doc_stack": "s - x s' -1 or s 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -19332,16 +18020,12 @@ "description": "Quietly loads a little-endian unsigned 64-bit integer.", "gas": "26", "fift": "LDULE8Q", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D75B", - "tlb": "#D75B", - "prefix": "D75B", - "operands": [] + "fift_examples": [], + "opcode": "D75B", + "stack": "s - x s' -1 or s 0" }, + "bytecode": { "tlb": "#D75B", "prefix": "D75B", "operands": [] }, "value_flow": { - "doc_stack": "s - x s' -1 or s 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -19388,16 +18072,12 @@ "description": "Quietly preloads a little-endian signed 32-bit integer.", "gas": "26", "fift": "PLDILE4Q", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D75C", - "tlb": "#D75C", - "prefix": "D75C", - "operands": [] + "fift_examples": [], + "opcode": "D75C", + "stack": "s - x -1 or 0" }, + "bytecode": { "tlb": "#D75C", "prefix": "D75C", "operands": [] }, "value_flow": { - "doc_stack": "s - x -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -19438,16 +18118,12 @@ "description": "Quietly preloads a little-endian unsigned 32-bit integer.", "gas": "26", "fift": "PLDULE4Q", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D75D", - "tlb": "#D75D", - "prefix": "D75D", - "operands": [] + "fift_examples": [], + "opcode": "D75D", + "stack": "s - x -1 or 0" }, + "bytecode": { "tlb": "#D75D", "prefix": "D75D", "operands": [] }, "value_flow": { - "doc_stack": "s - x -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -19488,16 +18164,12 @@ "description": "Quietly preloads a little-endian signed 64-bit integer.", "gas": "26", "fift": "PLDILE8Q", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D75E", - "tlb": "#D75E", - "prefix": "D75E", - "operands": [] + "fift_examples": [], + "opcode": "D75E", + "stack": "s - x -1 or 0" }, + "bytecode": { "tlb": "#D75E", "prefix": "D75E", "operands": [] }, "value_flow": { - "doc_stack": "s - x -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -19538,16 +18210,12 @@ "description": "Quietly preloads a little-endian unsigned 64-bit integer.", "gas": "26", "fift": "PLDULE8Q", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D75F", - "tlb": "#D75F", - "prefix": "D75F", - "operands": [] + "fift_examples": [], + "opcode": "D75F", + "stack": "s - x -1 or 0" }, + "bytecode": { "tlb": "#D75F", "prefix": "D75F", "operands": [] }, "value_flow": { - "doc_stack": "s - x -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -19588,16 +18256,12 @@ "description": "Returns the count `n` of leading zero bits in `s`, and removes these bits from `s`.", "gas": "26", "fift": "LDZEROES", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D760", - "tlb": "#D760", - "prefix": "D760", - "operands": [] + "fift_examples": [], + "opcode": "D760", + "stack": "s - n s'" }, + "bytecode": { "tlb": "#D760", "prefix": "D760", "operands": [] }, "value_flow": { - "doc_stack": "s - n s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -19622,16 +18286,12 @@ "description": "Returns the count `n` of leading one bits in `s`, and removes these bits from `s`.", "gas": "26", "fift": "LDONES", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D761", - "tlb": "#D761", - "prefix": "D761", - "operands": [] + "fift_examples": [], + "opcode": "D761", + "stack": "s - n s'" }, + "bytecode": { "tlb": "#D761", "prefix": "D761", "operands": [] }, "value_flow": { - "doc_stack": "s - n s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -19656,16 +18316,12 @@ "description": "Returns the count `n` of leading bits equal to `0 <= x <= 1` in `s`, and removes these bits from `s`.", "gas": "26", "fift": "LDSAME", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D762", - "tlb": "#D762", - "prefix": "D762", - "operands": [] + "fift_examples": [], + "opcode": "D762", + "stack": "s x - n s'" }, + "bytecode": { "tlb": "#D762", "prefix": "D762", "operands": [] }, "value_flow": { - "doc_stack": "s x - n s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -19691,16 +18347,12 @@ "description": "Returns the depth of _Slice_ `s`. If `s` has no references, then `x=0`; otherwise `x` is one plus the maximum of depths of cells referred to from `s`.", "gas": "26", "fift": "SDEPTH", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D764", - "tlb": "#D764", - "prefix": "D764", - "operands": [] + "fift_examples": [], + "opcode": "D764", + "stack": "s - x" }, + "bytecode": { "tlb": "#D764", "prefix": "D764", "operands": [] }, "value_flow": { - "doc_stack": "s - x", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -19724,16 +18376,12 @@ "description": "Returns the depth of _Cell_ `c`. If `c` has no references, then `x=0`; otherwise `x` is one plus the maximum of depths of cells referred to from `c`. If `c` is a _Null_ instead of a _Cell_, returns zero.", "gas": "26", "fift": "CDEPTH", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D765", - "tlb": "#D765", - "prefix": "D765", - "operands": [] + "fift_examples": [], + "opcode": "D765", + "stack": "c - x" }, + "bytecode": { "tlb": "#D765", "prefix": "D765", "operands": [] }, "value_flow": { - "doc_stack": "c - x", "inputs": { "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], "registers": [] @@ -19755,16 +18403,12 @@ "description": "_Calls_, or _executes_, continuation `c`.", "gas": "18", "fift": "EXECUTE\nCALLX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D8", - "tlb": "#D8", - "prefix": "D8", - "operands": [] + "fift_examples": [], + "opcode": "D8", + "stack": "c - " }, + "bytecode": { "tlb": "#D8", "prefix": "D8", "operands": [] }, "value_flow": { - "doc_stack": "c - ", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } @@ -19797,16 +18441,12 @@ "description": "_Jumps_, or transfers control, to continuation `c`.\nThe remainder of the previous current continuation `cc` is discarded.", "gas": "18", "fift": "JMPX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "D9", - "tlb": "#D9", - "prefix": "D9", - "operands": [] + "fift_examples": [], + "opcode": "D9", + "stack": "c - " }, + "bytecode": { "tlb": "#D9", "prefix": "D9", "operands": [] }, "value_flow": { - "doc_stack": "c - ", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } @@ -19828,10 +18468,11 @@ "description": "_Calls_ continuation `c` with `p` parameters and expecting `r` return values\n`0 <= p <= 15`, `0 <= r <= 15`", "gas": "26", "fift": "[p] [r] CALLXARGS", - "fift_examples": [] + "fift_examples": [], + "opcode": "DApr", + "stack": "c - " }, "bytecode": { - "doc_opcode": "DApr", "tlb": "#DA p:uint4 r:uint4", "prefix": "DA", "operands": [ @@ -19854,7 +18495,6 @@ ] }, "value_flow": { - "doc_stack": "c - ", "inputs": { "stack": [ { @@ -19893,10 +18533,11 @@ "description": "_Calls_ continuation `c` with `0 <= p <= 15` parameters, expecting an arbitrary number of return values.", "gas": "26", "fift": "[p] -1 CALLXARGS", - "fift_examples": [] + "fift_examples": [], + "opcode": "DB0p", + "stack": "c - " }, "bytecode": { - "doc_opcode": "DB0p", "tlb": "#DB0 p:uint4", "prefix": "DB0", "operands": [ @@ -19911,7 +18552,6 @@ ] }, "value_flow": { - "doc_stack": "c - ", "inputs": { "stack": [ { @@ -19950,10 +18590,11 @@ "description": "_Jumps_ to continuation `c`, passing only the top `0 <= p <= 15` values from the current stack to it (the remainder of the current stack is discarded).", "gas": "26", "fift": "[p] JMPXARGS", - "fift_examples": [] + "fift_examples": [], + "opcode": "DB1p", + "stack": "c - " }, "bytecode": { - "doc_opcode": "DB1p", "tlb": "#DB1 p:uint4", "prefix": "DB1", "operands": [ @@ -19968,7 +18609,6 @@ ] }, "value_flow": { - "doc_stack": "c - ", "inputs": { "stack": [ { @@ -19996,10 +18636,11 @@ "description": "_Returns_ to `c0`, with `0 <= r <= 15` return values taken from the current stack.", "gas": "26", "fift": "[r] RETARGS", - "fift_examples": [] + "fift_examples": [], + "opcode": "DB2r", + "stack": "" }, "bytecode": { - "doc_opcode": "DB2r", "tlb": "#DB2 r:uint4", "prefix": "DB2", "operands": [ @@ -20014,7 +18655,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "stack": [ { @@ -20041,16 +18681,12 @@ "description": "_Returns_ to the continuation at `c0`. The remainder of the current continuation `cc` is discarded.\nApproximately equivalent to `c0 PUSHCTR` `JMPX`.", "gas": "26", "fift": "RET\nRETTRUE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "DB30", - "tlb": "#DB30", - "prefix": "DB30", - "operands": [] + "fift_examples": [], + "opcode": "DB30", + "stack": "" }, + "bytecode": { "tlb": "#DB30", "prefix": "DB30", "operands": [] }, "value_flow": { - "doc_stack": "", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [], "registers": [] } }, @@ -20067,16 +18703,12 @@ "description": "_Returns_ to the continuation at `c1`.\nApproximately equivalent to `c1 PUSHCTR` `JMPX`.", "gas": "26", "fift": "RETALT\nRETFALSE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "DB31", - "tlb": "#DB31", - "prefix": "DB31", - "operands": [] + "fift_examples": [], + "opcode": "DB31", + "stack": "" }, + "bytecode": { "tlb": "#DB31", "prefix": "DB31", "operands": [] }, "value_flow": { - "doc_stack": "", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [], "registers": [] } }, @@ -20093,16 +18725,12 @@ "description": "Performs `RETTRUE` if integer `f!=0`, or `RETFALSE` if `f=0`.", "gas": "26", "fift": "BRANCH\nRETBOOL", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "DB32", - "tlb": "#DB32", - "prefix": "DB32", - "operands": [] + "fift_examples": [], + "opcode": "DB32", + "stack": "f - " }, + "bytecode": { "tlb": "#DB32", "prefix": "DB32", "operands": [] }, "value_flow": { - "doc_stack": "f - ", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } @@ -20127,16 +18755,12 @@ "description": "_Call with current continuation_, transfers control to `c`, pushing the old value of `cc` into `c`'s stack (instead of discarding it or writing it into new `c0`).", "gas": "26", "fift": "CALLCC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "DB34", - "tlb": "#DB34", - "prefix": "DB34", - "operands": [] + "fift_examples": [], + "opcode": "DB34", + "stack": "c - " }, + "bytecode": { "tlb": "#DB34", "prefix": "DB34", "operands": [] }, "value_flow": { - "doc_stack": "c - ", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } @@ -20158,16 +18782,12 @@ "description": "Similar to `CALLCC`, but the remainder of the current continuation (the old value of `cc`) is converted into a _Slice_ before pushing it into the stack of `c`.", "gas": "26", "fift": "JMPXDATA", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "DB35", - "tlb": "#DB35", - "prefix": "DB35", - "operands": [] + "fift_examples": [], + "opcode": "DB35", + "stack": "c - " }, + "bytecode": { "tlb": "#DB35", "prefix": "DB35", "operands": [] }, "value_flow": { - "doc_stack": "c - ", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } @@ -20189,10 +18809,11 @@ "description": "Similar to `CALLXARGS`, but pushes the old value of `cc` (along with the top `0 <= p <= 15` values from the original stack) into the stack of newly-invoked continuation `c`, setting `cc.nargs` to `-1 <= r <= 14`.", "gas": "34", "fift": "[p] [r] CALLCCARGS", - "fift_examples": [] + "fift_examples": [], + "opcode": "DB36pr", + "stack": "c - " }, "bytecode": { - "doc_opcode": "DB36pr", "tlb": "#DB36 p:uint4 r:uint4", "prefix": "DB36", "operands": [ @@ -20215,7 +18836,6 @@ ] }, "value_flow": { - "doc_stack": "c - ", "inputs": { "stack": [ { @@ -20243,16 +18863,12 @@ "description": "Similar to `CALLXARGS`, but takes `-1 <= p,r <= 254` from the stack. The next three operations also take `p` and `r` from the stack, both in the range `-1...254`.", "gas": "26", "fift": "CALLXVARARGS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "DB38", - "tlb": "#DB38", - "prefix": "DB38", - "operands": [] + "fift_examples": [], + "opcode": "DB38", + "stack": "c p r - " }, + "bytecode": { "tlb": "#DB38", "prefix": "DB38", "operands": [] }, "value_flow": { - "doc_stack": "c p r - ", "inputs": { "stack": [ { @@ -20293,16 +18909,12 @@ "description": "Similar to `RETARGS`.", "gas": "26", "fift": "RETVARARGS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "DB39", - "tlb": "#DB39", - "prefix": "DB39", - "operands": [] + "fift_examples": [], + "opcode": "DB39", + "stack": "p r - " }, + "bytecode": { "tlb": "#DB39", "prefix": "DB39", "operands": [] }, "value_flow": { - "doc_stack": "p r - ", "inputs": { "stack": [ { @@ -20342,16 +18954,12 @@ "description": "Similar to `JMPXARGS`.", "gas": "26", "fift": "JMPXVARARGS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "DB3A", - "tlb": "#DB3A", - "prefix": "DB3A", - "operands": [] + "fift_examples": [], + "opcode": "DB3A", + "stack": "c p r - " }, + "bytecode": { "tlb": "#DB3A", "prefix": "DB3A", "operands": [] }, "value_flow": { - "doc_stack": "c p r - ", "inputs": { "stack": [ { @@ -20381,16 +18989,12 @@ "description": "Similar to `CALLCCARGS`.", "gas": "26", "fift": "CALLCCVARARGS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "DB3B", - "tlb": "#DB3B", - "prefix": "DB3B", - "operands": [] + "fift_examples": [], + "opcode": "DB3B", + "stack": "c p r - " }, + "bytecode": { "tlb": "#DB3B", "prefix": "DB3B", "operands": [] }, "value_flow": { - "doc_stack": "c p r - ", "inputs": { "stack": [ { @@ -20420,10 +19024,11 @@ "description": "Equivalent to `PUSHREFCONT` `CALLX`.", "gas": "126/51", "fift": "[ref] CALLREF", - "fift_examples": [] + "fift_examples": [], + "opcode": "DB3C", + "stack": "" }, "bytecode": { - "doc_opcode": "DB3C", "tlb": "#DB3C c:^Cell", "prefix": "DB3C", "operands": [ @@ -20435,7 +19040,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [], "registers": [] } }, @@ -20463,10 +19067,11 @@ "description": "Equivalent to `PUSHREFCONT` `JMPX`.", "gas": "126/51", "fift": "[ref] JMPREF", - "fift_examples": [] + "fift_examples": [], + "opcode": "DB3D", + "stack": "" }, "bytecode": { - "doc_opcode": "DB3D", "tlb": "#DB3D c:^Cell", "prefix": "DB3D", "operands": [ @@ -20478,7 +19083,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [], "registers": [] } }, @@ -20495,10 +19099,11 @@ "description": "Equivalent to `PUSHREFCONT` `JMPXDATA`.", "gas": "126/51", "fift": "[ref] JMPREFDATA", - "fift_examples": [] + "fift_examples": [], + "opcode": "DB3E", + "stack": "" }, "bytecode": { - "doc_opcode": "DB3E", "tlb": "#DB3E c:^Cell", "prefix": "DB3E", "operands": [ @@ -20510,7 +19115,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [], "registers": [] } }, @@ -20527,16 +19131,12 @@ "description": "Equivalent to `c0 PUSHCTR` `JMPXDATA`. In this way, the remainder of the current continuation is converted into a _Slice_ and returned to the caller.", "gas": "26", "fift": "RETDATA", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "DB3F", - "tlb": "#DB3F", - "prefix": "DB3F", - "operands": [] + "fift_examples": [], + "opcode": "DB3F", + "stack": "" }, + "bytecode": { "tlb": "#DB3F", "prefix": "DB3F", "operands": [] }, "value_flow": { - "doc_stack": "", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [], "registers": [] } }, @@ -20553,10 +19153,11 @@ "description": "Runs child VM with code `code` and stack `x_1...x_n`. Returns the resulting stack `x'_1...x'_m` and exitcode. Other arguments and return values are enabled by flags.", "gas": "", "fift": "flags RUNVM", - "fift_examples": [] + "fift_examples": [], + "opcode": "DB4fff", + "stack": "x_1 ... x_n n code [r] [c4] [c7] [g_l] [g_m] - x'_1 ... x'_m exitcode [data'] [c4'] [c5] [g_c]" }, "bytecode": { - "doc_opcode": "DB4fff", "tlb": "#DB4 flags:(## 12)", "prefix": "DB4", "operands": [ @@ -20571,7 +19172,6 @@ ] }, "value_flow": { - "doc_stack": "x_1 ... x_n n code [r] [c4] [c7] [g_l] [g_m] - x'_1 ... x'_m exitcode [data'] [c4'] [c5] [g_c]", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -20585,16 +19185,12 @@ "description": "Runs child VM with code `code` and stack `x_1...x_n`. Returns the resulting stack `x'_1...x'_m` and exitcode. Other arguments and return values are enabled by flags.", "gas": "", "fift": "RUNVMX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "DB50", - "tlb": "#DB50", - "prefix": "DB50", - "operands": [] + "fift_examples": [], + "opcode": "DB50", + "stack": "x_1 ... x_n n code [r] [c4] [c7] [g_l] [g_m] flags - x'_1 ... x'_m exitcode [data'] [c4'] [c5] [g_c]" }, + "bytecode": { "tlb": "#DB50", "prefix": "DB50", "operands": [] }, "value_flow": { - "doc_stack": "x_1 ... x_n n code [r] [c4] [c7] [g_l] [g_m] flags - x'_1 ... x'_m exitcode [data'] [c4'] [c5] [g_c]", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -20608,16 +19204,12 @@ "description": "Performs a `RET`, but only if integer `f` is non-zero. If `f` is a `NaN`, throws an integer overflow exception.", "gas": "18", "fift": "IFRET\nIFNOT:", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "DC", - "tlb": "#DC", - "prefix": "DC", - "operands": [] + "fift_examples": [], + "opcode": "DC", + "stack": "f - " }, + "bytecode": { "tlb": "#DC", "prefix": "DC", "operands": [] }, "value_flow": { - "doc_stack": "f - ", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } @@ -20639,16 +19231,12 @@ "description": "Performs a `RET`, but only if integer `f` is zero.", "gas": "18", "fift": "IFNOTRET\nIF:", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "DD", - "tlb": "#DD", - "prefix": "DD", - "operands": [] + "fift_examples": [], + "opcode": "DD", + "stack": "f - " }, + "bytecode": { "tlb": "#DD", "prefix": "DD", "operands": [] }, "value_flow": { - "doc_stack": "f - ", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } @@ -20675,16 +19263,12 @@ "fift": "IF:<{ code }> <{ code }>IF", "description": "Equivalent to `<{ code }> CONT` `IF`." } - ] - }, - "bytecode": { - "doc_opcode": "DE", - "tlb": "#DE", - "prefix": "DE", - "operands": [] + ], + "opcode": "DE", + "stack": "f c - " }, + "bytecode": { "tlb": "#DE", "prefix": "DE", "operands": [] }, "value_flow": { - "doc_stack": "f c - ", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] }, @@ -20723,16 +19307,12 @@ "fift": "IFNOT:<{ code }> <{ code }>IFNOT", "description": "Equivalent to `<{ code }> CONT` `IFNOT`." } - ] - }, - "bytecode": { - "doc_opcode": "DF", - "tlb": "#DF", - "prefix": "DF", - "operands": [] + ], + "opcode": "DF", + "stack": "f c - " }, + "bytecode": { "tlb": "#DF", "prefix": "DF", "operands": [] }, "value_flow": { - "doc_stack": "f c - ", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] }, @@ -20771,16 +19351,12 @@ "fift": "IFJMP:<{ code }>", "description": "Equivalent to `<{ code }> CONT` `IFJMP`." } - ] - }, - "bytecode": { - "doc_opcode": "E0", - "tlb": "#E0", - "prefix": "E0", - "operands": [] + ], + "opcode": "E0", + "stack": "f c - " }, + "bytecode": { "tlb": "#E0", "prefix": "E0", "operands": [] }, "value_flow": { - "doc_stack": "f c - ", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] }, @@ -20808,16 +19384,12 @@ "fift": "IFNOTJMP:<{ code }>", "description": "Equivalent to `<{ code }> CONT` `IFNOTJMP`." } - ] - }, - "bytecode": { - "doc_opcode": "E1", - "tlb": "#E1", - "prefix": "E1", - "operands": [] + ], + "opcode": "E1", + "stack": "f c - " }, + "bytecode": { "tlb": "#E1", "prefix": "E1", "operands": [] }, "value_flow": { - "doc_stack": "f c - ", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] }, @@ -20845,16 +19417,12 @@ "fift": "IF:<{ code1 }>ELSE<{ code2 }>", "description": "Equivalent to `<{ code1 }> CONT` `<{ code2 }> CONT` `IFELSE`." } - ] - }, - "bytecode": { - "doc_opcode": "E2", - "tlb": "#E2", - "prefix": "E2", - "operands": [] + ], + "opcode": "E2", + "stack": "f c c' - " }, + "bytecode": { "tlb": "#E2", "prefix": "E2", "operands": [] }, "value_flow": { - "doc_stack": "f c c' - ", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] }, @@ -20899,10 +19467,11 @@ "description": "Equivalent to `PUSHREFCONT` `IF`, with the optimization that the cell reference is not actually loaded into a _Slice_ and then converted into an ordinary _Continuation_ if `f=0`.\nGas consumption of this primitive depends on whether `f=0` and whether the reference was loaded before.\nSimilar remarks apply other primitives that accept a continuation as a reference.", "gas": "26/126/51", "fift": "[ref] IFREF", - "fift_examples": [] + "fift_examples": [], + "opcode": "E300", + "stack": "f - " }, "bytecode": { - "doc_opcode": "E300", "tlb": "#E300 c:^Cell", "prefix": "E300", "operands": [ @@ -20914,7 +19483,6 @@ ] }, "value_flow": { - "doc_stack": "f - ", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } @@ -20947,10 +19515,11 @@ "description": "Equivalent to `PUSHREFCONT` `IFNOT`.", "gas": "26/126/51", "fift": "[ref] IFNOTREF", - "fift_examples": [] + "fift_examples": [], + "opcode": "E301", + "stack": "f - " }, "bytecode": { - "doc_opcode": "E301", "tlb": "#E301 c:^Cell", "prefix": "E301", "operands": [ @@ -20962,7 +19531,6 @@ ] }, "value_flow": { - "doc_stack": "f - ", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } @@ -20995,10 +19563,11 @@ "description": "Equivalent to `PUSHREFCONT` `IFJMP`.", "gas": "26/126/51", "fift": "[ref] IFJMPREF", - "fift_examples": [] + "fift_examples": [], + "opcode": "E302", + "stack": "f - " }, "bytecode": { - "doc_opcode": "E302", "tlb": "#E302 c:^Cell", "prefix": "E302", "operands": [ @@ -21010,7 +19579,6 @@ ] }, "value_flow": { - "doc_stack": "f - ", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } @@ -21032,10 +19600,11 @@ "description": "Equivalent to `PUSHREFCONT` `IFNOTJMP`.", "gas": "26/126/51", "fift": "[ref] IFNOTJMPREF", - "fift_examples": [] + "fift_examples": [], + "opcode": "E303", + "stack": "f - " }, "bytecode": { - "doc_opcode": "E303", "tlb": "#E303 c:^Cell", "prefix": "E303", "operands": [ @@ -21047,7 +19616,6 @@ ] }, "value_flow": { - "doc_stack": "f - ", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } @@ -21069,16 +19637,12 @@ "description": "If integer `f` is non-zero, returns `x`, otherwise returns `y`. Notice that no type checks are performed on `x` and `y`; as such, it is more like a conditional stack operation. Roughly equivalent to `ROT` `ISZERO` `INC` `ROLLX` `NIP`.", "gas": "26", "fift": "CONDSEL", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "E304", - "tlb": "#E304", - "prefix": "E304", - "operands": [] + "fift_examples": [], + "opcode": "E304", + "stack": "f x y - x or y" }, + "bytecode": { "tlb": "#E304", "prefix": "E304", "operands": [] }, "value_flow": { - "doc_stack": "f x y - x or y", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] }, @@ -21102,16 +19666,12 @@ "description": "Same as `CONDSEL`, but first checks whether `x` and `y` have the same type.", "gas": "26", "fift": "CONDSELCHK", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "E305", - "tlb": "#E305", - "prefix": "E305", - "operands": [] + "fift_examples": [], + "opcode": "E305", + "stack": "f x y - x or y" }, + "bytecode": { "tlb": "#E305", "prefix": "E305", "operands": [] }, "value_flow": { - "doc_stack": "f x y - x or y", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] }, @@ -21135,16 +19695,12 @@ "description": "Performs `RETALT` if integer `f!=0`.", "gas": "26", "fift": "IFRETALT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "E308", - "tlb": "#E308", - "prefix": "E308", - "operands": [] + "fift_examples": [], + "opcode": "E308", + "stack": "f -" }, + "bytecode": { "tlb": "#E308", "prefix": "E308", "operands": [] }, "value_flow": { - "doc_stack": "f -", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } @@ -21166,16 +19722,12 @@ "description": "Performs `RETALT` if integer `f=0`.", "gas": "26", "fift": "IFNOTRETALT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "E309", - "tlb": "#E309", - "prefix": "E309", - "operands": [] + "fift_examples": [], + "opcode": "E309", + "stack": "f -" }, + "bytecode": { "tlb": "#E309", "prefix": "E309", "operands": [] }, "value_flow": { - "doc_stack": "f -", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } @@ -21197,10 +19749,11 @@ "description": "Equivalent to `PUSHREFCONT` `SWAP` `IFELSE`, with the optimization that the cell reference is not actually loaded into a _Slice_ and then converted into an ordinary _Continuation_ if `f=0`. Similar remarks apply to the next two primitives: cells are converted into continuations only when necessary.", "gas": "26/126/51", "fift": "[ref] IFREFELSE", - "fift_examples": [] + "fift_examples": [], + "opcode": "E30D", + "stack": "f c -" }, "bytecode": { - "doc_opcode": "E30D", "tlb": "#E30D c:^Cell", "prefix": "E30D", "operands": [ @@ -21212,7 +19765,6 @@ ] }, "value_flow": { - "doc_stack": "f c -", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] }, @@ -21256,10 +19808,11 @@ "description": "Equivalent to `PUSHREFCONT` `IFELSE`.", "gas": "26/126/51", "fift": "[ref] IFELSEREF", - "fift_examples": [] + "fift_examples": [], + "opcode": "E30E", + "stack": "f c -" }, "bytecode": { - "doc_opcode": "E30E", "tlb": "#E30E c:^Cell", "prefix": "E30E", "operands": [ @@ -21271,7 +19824,6 @@ ] }, "value_flow": { - "doc_stack": "f c -", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] }, @@ -21315,10 +19867,11 @@ "description": "Equivalent to `PUSHREFCONT` `PUSHREFCONT` `IFELSE`.", "gas": "126/51", "fift": "[ref] [ref] IFREFELSEREF", - "fift_examples": [] + "fift_examples": [], + "opcode": "E30F", + "stack": "f -" }, "bytecode": { - "doc_opcode": "E30F", "tlb": "#E30F c1:^Cell c2:^Cell", "prefix": "E30F", "operands": [ @@ -21335,7 +19888,6 @@ ] }, "value_flow": { - "doc_stack": "f -", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } @@ -21378,10 +19930,11 @@ "description": "Checks whether bit `0 <= n <= 31` is set in integer `x`, and if so, performs `JMPX` to continuation `c`. Value `x` is left in the stack.", "gas": "26", "fift": "[n] IFBITJMP", - "fift_examples": [] + "fift_examples": [], + "opcode": "E39_n", + "stack": "x c - x" }, "bytecode": { - "doc_opcode": "E39_n", "tlb": "#E39_ n:uint5", "prefix": "E39_", "operands": [ @@ -21396,7 +19949,6 @@ ] }, "value_flow": { - "doc_stack": "x c - x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -21424,10 +19976,11 @@ "description": "Jumps to `c` if bit `0 <= n <= 31` is not set in integer `x`.", "gas": "26", "fift": "[n] IFNBITJMP", - "fift_examples": [] + "fift_examples": [], + "opcode": "E3B_n", + "stack": "x c - x" }, "bytecode": { - "doc_opcode": "E3B_n", "tlb": "#E3B_ n:uint5", "prefix": "E3B_", "operands": [ @@ -21442,7 +19995,6 @@ ] }, "value_flow": { - "doc_stack": "x c - x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -21470,10 +20022,11 @@ "description": "Performs a `JMPREF` if bit `0 <= n <= 31` is set in integer `x`.", "gas": "126/51", "fift": "[ref] [n] IFBITJMPREF", - "fift_examples": [] + "fift_examples": [], + "opcode": "E3D_n", + "stack": "x - x" }, "bytecode": { - "doc_opcode": "E3D_n", "tlb": "#E3D_ n:uint5 c:^Cell", "prefix": "E3D_", "operands": [ @@ -21493,7 +20046,6 @@ ] }, "value_flow": { - "doc_stack": "x - x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -21520,10 +20072,11 @@ "description": "Performs a `JMPREF` if bit `0 <= n <= 31` is not set in integer `x`.", "gas": "126/51", "fift": "[ref] [n] IFNBITJMPREF", - "fift_examples": [] + "fift_examples": [], + "opcode": "E3F_n", + "stack": "x - x" }, "bytecode": { - "doc_opcode": "E3F_n", "tlb": "#E3F_ n:uint5 c:^Cell", "prefix": "E3F_", "operands": [ @@ -21543,7 +20096,6 @@ ] }, "value_flow": { - "doc_stack": "x - x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -21575,16 +20127,12 @@ "fift": "REPEAT:<{ code }> <{ code }>REPEAT", "description": "Equivalent to `<{ code }> CONT` `REPEAT`." } - ] - }, - "bytecode": { - "doc_opcode": "E4", - "tlb": "#E4", - "prefix": "E4", - "operands": [] + ], + "opcode": "E4", + "stack": "n c - " }, + "bytecode": { "tlb": "#E4", "prefix": "E4", "operands": [] }, "value_flow": { - "doc_stack": "n c - ", "inputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] }, @@ -21620,16 +20168,12 @@ "description": "Similar to `REPEAT`, but it is applied to the current continuation `cc`.", "gas": "18", "fift": "REPEATEND\nREPEAT:", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "E5", - "tlb": "#E5", - "prefix": "E5", - "operands": [] + "fift_examples": [], + "opcode": "E5", + "stack": "n - " }, + "bytecode": { "tlb": "#E5", "prefix": "E5", "operands": [] }, "value_flow": { - "doc_stack": "n - ", "inputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] } @@ -21666,16 +20210,12 @@ "fift": "UNTIL:<{ code }> <{ code }>UNTIL", "description": "Equivalent to `<{ code }> CONT` `UNTIL`." } - ] - }, - "bytecode": { - "doc_opcode": "E6", - "tlb": "#E6", - "prefix": "E6", - "operands": [] + ], + "opcode": "E6", + "stack": "c - " }, + "bytecode": { "tlb": "#E6", "prefix": "E6", "operands": [] }, "value_flow": { - "doc_stack": "c - ", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } @@ -21715,16 +20255,12 @@ "description": "Similar to `UNTIL`, but executes the current continuation `cc` in a loop. When the loop exit condition is satisfied, performs a `RET`.", "gas": "18", "fift": "UNTILEND\nUNTIL:", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "E7", - "tlb": "#E7", - "prefix": "E7", - "operands": [] + "fift_examples": [], + "opcode": "E7", + "stack": "-" }, + "bytecode": { "tlb": "#E7", "prefix": "E7", "operands": [] }, "value_flow": { - "doc_stack": "-", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [], "registers": [] } }, @@ -21760,16 +20296,12 @@ "fift": "WHILE:<{ cond }>DO<{ code }>", "description": "Equivalent to `<{ cond }> CONT` `<{ code }> CONT` `WHILE`." } - ] - }, - "bytecode": { - "doc_opcode": "E8", - "tlb": "#E8", - "prefix": "E8", - "operands": [] + ], + "opcode": "E8", + "stack": "c' c - " }, + "bytecode": { "tlb": "#E8", "prefix": "E8", "operands": [] }, "value_flow": { - "doc_stack": "c' c - ", "inputs": { "stack": [ { "type": "simple", "name": "c2", "value_types": ["Continuation"] }, @@ -21811,16 +20343,12 @@ "description": "Similar to `WHILE`, but uses the current continuation `cc` as the loop body.", "gas": "18", "fift": "WHILEEND", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "E9", - "tlb": "#E9", - "prefix": "E9", - "operands": [] + "fift_examples": [], + "opcode": "E9", + "stack": "c' - " }, + "bytecode": { "tlb": "#E9", "prefix": "E9", "operands": [] }, "value_flow": { - "doc_stack": "c' - ", "inputs": { "stack": [ { "type": "simple", "name": "c2", "value_types": ["Continuation"] } @@ -21863,16 +20391,12 @@ "fift": "AGAIN:<{ code }> <{ code }>AGAIN", "description": "Equivalent to `<{ code }> CONT` `AGAIN`." } - ] - }, - "bytecode": { - "doc_opcode": "EA", - "tlb": "#EA", - "prefix": "EA", - "operands": [] + ], + "opcode": "EA", + "stack": "c - " }, + "bytecode": { "tlb": "#EA", "prefix": "EA", "operands": [] }, "value_flow": { - "doc_stack": "c - ", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } @@ -21900,16 +20424,12 @@ "description": "Similar to `AGAIN`, but performed with respect to the current continuation `cc`.", "gas": "18", "fift": "AGAINEND\nAGAIN:", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "EB", - "tlb": "#EB", - "prefix": "EB", - "operands": [] + "fift_examples": [], + "opcode": "EB", + "stack": "-" }, + "bytecode": { "tlb": "#EB", "prefix": "EB", "operands": [] }, "value_flow": { - "doc_stack": "-", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [], "registers": [] } }, @@ -21937,16 +20457,12 @@ "fift": "REPEATBRK:<{ code }> <{ code }>REPEATBRK", "description": "Equivalent to `<{ code }> CONT` `REPEATBRK`." } - ] - }, - "bytecode": { - "doc_opcode": "E314", - "tlb": "#E314", - "prefix": "E314", - "operands": [] + ], + "opcode": "E314", + "stack": "n c -" }, + "bytecode": { "tlb": "#E314", "prefix": "E314", "operands": [] }, "value_flow": { - "doc_stack": "n c -", "inputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] }, @@ -21997,16 +20513,12 @@ "description": "Similar to `REPEATEND`, but also sets `c1` to the original `c0` after saving the old value of `c1` into the savelist of the original `c0`. Equivalent to `SAMEALTSAVE` `REPEATEND`.", "gas": "26", "fift": "REPEATENDBRK", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "E315", - "tlb": "#E315", - "prefix": "E315", - "operands": [] + "fift_examples": [], + "opcode": "E315", + "stack": "n -" }, + "bytecode": { "tlb": "#E315", "prefix": "E315", "operands": [] }, "value_flow": { - "doc_stack": "n -", "inputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] } @@ -22046,16 +20558,12 @@ "fift": "UNTILBRK:<{ code }>", "description": "Equivalent to `<{ code }> CONT` `UNTILBRK`." } - ] - }, - "bytecode": { - "doc_opcode": "E316", - "tlb": "#E316", - "prefix": "E316", - "operands": [] + ], + "opcode": "E316", + "stack": "c -" }, + "bytecode": { "tlb": "#E316", "prefix": "E316", "operands": [] }, "value_flow": { - "doc_stack": "c -", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } @@ -22117,16 +20625,12 @@ "description": "Equivalent to `SAMEALTSAVE` `UNTILEND`.", "gas": "26", "fift": "UNTILENDBRK\nUNTILBRK:", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "E317", - "tlb": "#E317", - "prefix": "E317", - "operands": [] + "fift_examples": [], + "opcode": "E317", + "stack": "-" }, + "bytecode": { "tlb": "#E317", "prefix": "E317", "operands": [] }, "value_flow": { - "doc_stack": "-", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [], "registers": [] } }, @@ -22166,16 +20670,12 @@ "fift": "WHILEBRK:<{ cond }>DO<{ code }>", "description": "Equivalent to `<{ cond }> CONT` `<{ code }> CONT` `WHILEBRK`." } - ] - }, - "bytecode": { - "doc_opcode": "E318", - "tlb": "#E318", - "prefix": "E318", - "operands": [] + ], + "opcode": "E318", + "stack": "c' c -" }, + "bytecode": { "tlb": "#E318", "prefix": "E318", "operands": [] }, "value_flow": { - "doc_stack": "c' c -", "inputs": { "stack": [ { "type": "simple", "name": "c2", "value_types": ["Continuation"] }, @@ -22220,16 +20720,12 @@ "description": "Equivalent to `SAMEALTSAVE` `WHILEEND`.", "gas": "26", "fift": "WHILEENDBRK", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "E319", - "tlb": "#E319", - "prefix": "E319", - "operands": [] + "fift_examples": [], + "opcode": "E319", + "stack": "c -" }, + "bytecode": { "tlb": "#E319", "prefix": "E319", "operands": [] }, "value_flow": { - "doc_stack": "c -", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } @@ -22253,16 +20749,12 @@ "fift": "AGAINBRK:<{ code }>", "description": "Equivalent to `<{ code }> CONT` `AGAINBRK`." } - ] - }, - "bytecode": { - "doc_opcode": "E31A", - "tlb": "#E31A", - "prefix": "E31A", - "operands": [] + ], + "opcode": "E31A", + "stack": "c -" }, + "bytecode": { "tlb": "#E31A", "prefix": "E31A", "operands": [] }, "value_flow": { - "doc_stack": "c -", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } @@ -22281,16 +20773,12 @@ "description": "Equivalent to `SAMEALTSAVE` `AGAINEND`.", "gas": "26", "fift": "AGAINENDBRK\nAGAINBRK:", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "E31B", - "tlb": "#E31B", - "prefix": "E31B", - "operands": [] + "fift_examples": [], + "opcode": "E31B", + "stack": "-" }, + "bytecode": { "tlb": "#E31B", "prefix": "E31B", "operands": [] }, "value_flow": { - "doc_stack": "-", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [], "registers": [] } }, @@ -22304,10 +20792,11 @@ "description": "Pushes `0 <= r <= 15` values `x_1...x_r` into the stack of (a copy of) the continuation `c`, starting with `x_1`. When `n` is 15 (-1 in Fift notation), does nothing with `c.nargs`. For `0 <= n <= 14`, sets `c.nargs` to the final size of the stack of `c'` plus `n`. In other words, transforms `c` into a _closure_ or a _partially applied function_, with `0 <= n <= 14` arguments missing.", "gas": "26+s''", "fift": "[r] [n] SETCONTARGS", - "fift_examples": [] + "fift_examples": [], + "opcode": "ECrn", + "stack": "x_1 x_2...x_r c - c'" }, "bytecode": { - "doc_opcode": "ECrn", "tlb": "#EC r:uint4 n:uint4", "prefix": "EC", "operands": [ @@ -22330,7 +20819,6 @@ ] }, "value_flow": { - "doc_stack": "x_1 x_2...x_r c - c'", "inputs": { "stack": [ { @@ -22360,10 +20848,11 @@ "description": "Leaves only the top `0 <= p <= 15` values in the current stack (somewhat similarly to `ONLYTOPX`), with all the unused bottom values not discarded, but saved into continuation `c0` in the same way as `SETCONTARGS` does.", "gas": "26+s''", "fift": "[p] RETURNARGS", - "fift_examples": [] + "fift_examples": [], + "opcode": "ED0p", + "stack": "-" }, "bytecode": { - "doc_opcode": "ED0p", "tlb": "#ED0 p:uint4", "prefix": "ED0", "operands": [ @@ -22378,7 +20867,6 @@ ] }, "value_flow": { - "doc_stack": "-", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -22392,16 +20880,12 @@ "description": "Similar to `RETURNARGS`, but with Integer `0 <= p <= 255` taken from the stack.", "gas": "26+s''", "fift": "RETURNVARARGS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "ED10", - "tlb": "#ED10", - "prefix": "ED10", - "operands": [] + "fift_examples": [], + "opcode": "ED10", + "stack": "p -" }, + "bytecode": { "tlb": "#ED10", "prefix": "ED10", "operands": [] }, "value_flow": { - "doc_stack": "p -", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -22415,16 +20899,12 @@ "description": "Similar to `SETCONTARGS`, but with `0 <= r <= 255` and `-1 <= n <= 255` taken from the stack.", "gas": "26+s''", "fift": "SETCONTVARARGS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "ED11", - "tlb": "#ED11", - "prefix": "ED11", - "operands": [] + "fift_examples": [], + "opcode": "ED11", + "stack": "x_1 x_2...x_r c r n - c'" }, + "bytecode": { "tlb": "#ED11", "prefix": "ED11", "operands": [] }, "value_flow": { - "doc_stack": "x_1 x_2...x_r c r n - c'", "inputs": { "stack": [ { @@ -22456,16 +20936,12 @@ "description": "`-1 <= n <= 255`\nIf `n=-1`, this operation does nothing (`c'=c`).\nOtherwise its action is similar to `[n] SETNUMARGS`, but with `n` taken from the stack.", "gas": "26", "fift": "SETNUMVARARGS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "ED12", - "tlb": "#ED12", - "prefix": "ED12", - "operands": [] + "fift_examples": [], + "opcode": "ED12", + "stack": "c n - c'" }, + "bytecode": { "tlb": "#ED12", "prefix": "ED12", "operands": [] }, "value_flow": { - "doc_stack": "c n - c'", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] }, @@ -22490,16 +20966,12 @@ "description": "Transforms a _Slice_ `s` into a simple ordinary continuation `c`, with `c.code=s` and an empty stack and savelist.", "gas": "26", "fift": "BLESS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "ED1E", - "tlb": "#ED1E", - "prefix": "ED1E", - "operands": [] + "fift_examples": [], + "opcode": "ED1E", + "stack": "s - c" }, + "bytecode": { "tlb": "#ED1E", "prefix": "ED1E", "operands": [] }, "value_flow": { - "doc_stack": "s - c", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -22523,16 +20995,12 @@ "description": "Equivalent to `ROT` `BLESS` `ROTREV` `SETCONTVARARGS`.", "gas": "26+s''", "fift": "BLESSVARARGS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "ED1F", - "tlb": "#ED1F", - "prefix": "ED1F", - "operands": [] + "fift_examples": [], + "opcode": "ED1F", + "stack": "x_1...x_r s r n - c" }, + "bytecode": { "tlb": "#ED1F", "prefix": "ED1F", "operands": [] }, "value_flow": { - "doc_stack": "x_1...x_r s r n - c", "inputs": { "stack": [ { @@ -22564,10 +21032,11 @@ "description": "`0 <= r <= 15`, `-1 <= n <= 14`\nEquivalent to `BLESS` `[r] [n] SETCONTARGS`.\nThe value of `n` is represented inside the instruction by the 4-bit integer `n mod 16`.", "gas": "26", "fift": "[r] [n] BLESSARGS", - "fift_examples": [] + "fift_examples": [], + "opcode": "EErn", + "stack": "x_1...x_r s - c" }, "bytecode": { - "doc_opcode": "EErn", "tlb": "#EE r:uint4 n:uint4", "prefix": "EE", "operands": [ @@ -22590,7 +21059,6 @@ ] }, "value_flow": { - "doc_stack": "x_1...x_r s - c", "inputs": { "stack": [ { @@ -22620,10 +21088,11 @@ "description": "Pushes the current value of control register `c(i)`. If the control register is not supported in the current codepage, or if it does not have a value, an exception is triggered.", "gas": "26", "fift": "c[i] PUSHCTR\nc[i] PUSH", - "fift_examples": [] + "fift_examples": [], + "opcode": "ED4i", + "stack": "- x" }, "bytecode": { - "doc_opcode": "ED4i", "tlb": "#ED4 i:uint4", "prefix": "ED4", "operands": [ @@ -22638,7 +21107,6 @@ ] }, "value_flow": { - "doc_stack": "- x", "inputs": { "stack": [], "registers": [{ "type": "variable", "var_name": "i" }] @@ -22658,10 +21126,11 @@ "description": "Pops a value `x` from the stack and stores it into control register `c(i)`, if supported in the current codepage. Notice that if a control register accepts only values of a specific type, a type-checking exception may occur.", "gas": "26", "fift": "c[i] POPCTR\nc[i] POP", - "fift_examples": [] + "fift_examples": [], + "opcode": "ED5i", + "stack": "x - " }, "bytecode": { - "doc_opcode": "ED5i", "tlb": "#ED5 i:uint4", "prefix": "ED5", "operands": [ @@ -22676,7 +21145,6 @@ ] }, "value_flow": { - "doc_stack": "x - ", "inputs": { "stack": [{ "type": "simple", "name": "x" }], "registers": [] @@ -22696,10 +21164,11 @@ "description": "Stores `x` into the savelist of continuation `c` as `c(i)`, and returns the resulting continuation `c'`. Almost all operations with continuations may be expressed in terms of `SETCONTCTR`, `POPCTR`, and `PUSHCTR`.", "gas": "26", "fift": "c[i] SETCONT\nc[i] SETCONTCTR", - "fift_examples": [] + "fift_examples": [], + "opcode": "ED6i", + "stack": "x c - c'" }, "bytecode": { - "doc_opcode": "ED6i", "tlb": "#ED6 i:uint4", "prefix": "ED6", "operands": [ @@ -22714,7 +21183,6 @@ ] }, "value_flow": { - "doc_stack": "x c - c'", "inputs": { "stack": [ { "type": "simple", "name": "x" }, @@ -22739,10 +21207,11 @@ "description": "Equivalent to `c0 PUSHCTR` `c[i] SETCONTCTR` `c0 POPCTR`.", "gas": "26", "fift": "c[i] SETRETCTR", - "fift_examples": [] + "fift_examples": [], + "opcode": "ED7i", + "stack": "x - " }, "bytecode": { - "doc_opcode": "ED7i", "tlb": "#ED7 i:uint4", "prefix": "ED7", "operands": [ @@ -22757,7 +21226,6 @@ ] }, "value_flow": { - "doc_stack": "x - ", "inputs": { "stack": [{ "type": "simple", "name": "x" }], "registers": [{ "type": "constant", "index": 0 }] @@ -22777,10 +21245,11 @@ "description": "Equivalent to `c1 PUSHCTR` `c[i] SETCONTCTR` `c1 POPCTR`.", "gas": "26", "fift": "c[i] SETALTCTR", - "fift_examples": [] + "fift_examples": [], + "opcode": "ED8i", + "stack": "x - " }, "bytecode": { - "doc_opcode": "ED8i", "tlb": "#ED8 i:uint4", "prefix": "ED8", "operands": [ @@ -22795,7 +21264,6 @@ ] }, "value_flow": { - "doc_stack": "x - ", "inputs": { "stack": [{ "type": "simple", "name": "x" }], "registers": [{ "type": "constant", "index": 1 }] @@ -22815,10 +21283,11 @@ "description": "Similar to `c[i] POPCTR`, but also saves the old value of `c[i]` into continuation `c0`.\nEquivalent (up to exceptions) to `c[i] SAVECTR` `c[i] POPCTR`.", "gas": "26", "fift": "c[i] POPSAVE\nc[i] POPCTRSAVE", - "fift_examples": [] + "fift_examples": [], + "opcode": "ED9i", + "stack": "x -" }, "bytecode": { - "doc_opcode": "ED9i", "tlb": "#ED9 i:uint4", "prefix": "ED9", "operands": [ @@ -22833,7 +21302,6 @@ ] }, "value_flow": { - "doc_stack": "x -", "inputs": { "stack": [{ "type": "simple", "name": "x" }], "registers": [ @@ -22856,10 +21324,11 @@ "description": "Saves the current value of `c(i)` into the savelist of continuation `c0`. If an entry for `c[i]` is already present in the savelist of `c0`, nothing is done. Equivalent to `c[i] PUSHCTR` `c[i] SETRETCTR`.", "gas": "26", "fift": "c[i] SAVE\nc[i] SAVECTR", - "fift_examples": [] + "fift_examples": [], + "opcode": "EDAi", + "stack": "" }, "bytecode": { - "doc_opcode": "EDAi", "tlb": "#EDA i:uint4", "prefix": "EDA", "operands": [ @@ -22874,7 +21343,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "stack": [], "registers": [ @@ -22897,10 +21365,11 @@ "description": "Similar to `c[i] SAVE`, but saves the current value of `c[i]` into the savelist of `c1`, not `c0`.", "gas": "26", "fift": "c[i] SAVEALT\nc[i] SAVEALTCTR", - "fift_examples": [] + "fift_examples": [], + "opcode": "EDBi", + "stack": "" }, "bytecode": { - "doc_opcode": "EDBi", "tlb": "#EDB i:uint4", "prefix": "EDB", "operands": [ @@ -22915,7 +21384,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "stack": [], "registers": [ @@ -22938,10 +21406,11 @@ "description": "Equivalent to `c[i] SAVE` `c[i] SAVEALT`.", "gas": "26", "fift": "c[i] SAVEBOTH\nc[i] SAVEBOTHCTR", - "fift_examples": [] + "fift_examples": [], + "opcode": "EDCi", + "stack": "" }, "bytecode": { - "doc_opcode": "EDCi", "tlb": "#EDC i:uint4", "prefix": "EDC", "operands": [ @@ -22956,7 +21425,6 @@ ] }, "value_flow": { - "doc_stack": "", "inputs": { "stack": [], "registers": [ @@ -22983,16 +21451,12 @@ "description": "Similar to `c[i] PUSHCTR`, but with `i`, `0 <= i <= 255`, taken from the stack.\nNotice that this primitive is one of the few ''exotic'' primitives, which are not polymorphic like stack manipulation primitives, and at the same time do not have well-defined types of parameters and return values, because the type of `x` depends on `i`.", "gas": "26", "fift": "PUSHCTRX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "EDE0", - "tlb": "#EDE0", - "prefix": "EDE0", - "operands": [] + "fift_examples": [], + "opcode": "EDE0", + "stack": "i - x" }, + "bytecode": { "tlb": "#EDE0", "prefix": "EDE0", "operands": [] }, "value_flow": { - "doc_stack": "i - x", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] } @@ -23014,16 +21478,12 @@ "description": "Similar to `c[i] POPCTR`, but with `0 <= i <= 255` from the stack.", "gas": "26", "fift": "POPCTRX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "EDE1", - "tlb": "#EDE1", - "prefix": "EDE1", - "operands": [] + "fift_examples": [], + "opcode": "EDE1", + "stack": "x i - " }, + "bytecode": { "tlb": "#EDE1", "prefix": "EDE1", "operands": [] }, "value_flow": { - "doc_stack": "x i - ", "inputs": { "stack": [ { "type": "simple", "name": "x" }, @@ -23046,16 +21506,12 @@ "description": "Similar to `c[i] SETCONTCTR`, but with `0 <= i <= 255` from the stack.", "gas": "26", "fift": "SETCONTCTRX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "EDE2", - "tlb": "#EDE2", - "prefix": "EDE2", - "operands": [] + "fift_examples": [], + "opcode": "EDE2", + "stack": "x c i - c'" }, + "bytecode": { "tlb": "#EDE2", "prefix": "EDE2", "operands": [] }, "value_flow": { - "doc_stack": "x c i - c'", "inputs": { "stack": [ { "type": "simple", "name": "x" }, @@ -23081,16 +21537,12 @@ "description": "Computes the composition `compose0(c, c')`, which has the meaning of ''perform `c`, and, if successful, perform `c'`'' (if `c` is a boolean circuit) or simply ''perform `c`, then `c'`''. Equivalent to `SWAP` `c0 SETCONT`.", "gas": "26", "fift": "COMPOS\nBOOLAND", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "EDF0", - "tlb": "#EDF0", - "prefix": "EDF0", - "operands": [] + "fift_examples": [], + "opcode": "EDF0", + "stack": "c c' - c''" }, + "bytecode": { "tlb": "#EDF0", "prefix": "EDF0", "operands": [] }, "value_flow": { - "doc_stack": "c c' - c''", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] }, @@ -23115,16 +21567,12 @@ "description": "Computes the alternative composition `compose1(c, c')`, which has the meaning of ''perform `c`, and, if not successful, perform `c'`'' (if `c` is a boolean circuit). Equivalent to `SWAP` `c1 SETCONT`.", "gas": "26", "fift": "COMPOSALT\nBOOLOR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "EDF1", - "tlb": "#EDF1", - "prefix": "EDF1", - "operands": [] + "fift_examples": [], + "opcode": "EDF1", + "stack": "c c' - c''" }, + "bytecode": { "tlb": "#EDF1", "prefix": "EDF1", "operands": [] }, "value_flow": { - "doc_stack": "c c' - c''", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] }, @@ -23149,16 +21597,12 @@ "description": "Computes composition `compose1(compose0(c, c'), c')`, which has the meaning of ''compute boolean circuit `c`, then compute `c'`, regardless of the result of `c`''.", "gas": "26", "fift": "COMPOSBOTH", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "EDF2", - "tlb": "#EDF2", - "prefix": "EDF2", - "operands": [] + "fift_examples": [], + "opcode": "EDF2", + "stack": "c c' - c''" }, + "bytecode": { "tlb": "#EDF2", "prefix": "EDF2", "operands": [] }, "value_flow": { - "doc_stack": "c c' - c''", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] }, @@ -23188,16 +21632,12 @@ "fift": "ATEXIT:<{ code }> <{ code }>ATEXIT", "description": "Equivalent to `<{ code }> CONT` `ATEXIT`." } - ] - }, - "bytecode": { - "doc_opcode": "EDF3", - "tlb": "#EDF3", - "prefix": "EDF3", - "operands": [] + ], + "opcode": "EDF3", + "stack": "c - " }, + "bytecode": { "tlb": "#EDF3", "prefix": "EDF3", "operands": [] }, "value_flow": { - "doc_stack": "c - ", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } @@ -23224,16 +21664,12 @@ "fift": "ATEXITALT:<{ code }> <{ code }>ATEXITALT", "description": "Equivalent to `<{ code }> CONT` `ATEXITALT`." } - ] - }, - "bytecode": { - "doc_opcode": "EDF4", - "tlb": "#EDF4", - "prefix": "EDF4", - "operands": [] + ], + "opcode": "EDF4", + "stack": "c - " }, + "bytecode": { "tlb": "#EDF4", "prefix": "EDF4", "operands": [] }, "value_flow": { - "doc_stack": "c - ", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } @@ -23255,16 +21691,12 @@ "description": "Sets `c1` to `compose1(compose0(c, c0), c1)`,\nIn this way, a subsequent `RETALT` will first execute `c`, then transfer control to the original `c0`. This can be used, for instance, to exit from nested loops.", "gas": "26", "fift": "SETEXITALT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "EDF5", - "tlb": "#EDF5", - "prefix": "EDF5", - "operands": [] + "fift_examples": [], + "opcode": "EDF5", + "stack": "c - " }, + "bytecode": { "tlb": "#EDF5", "prefix": "EDF5", "operands": [] }, "value_flow": { - "doc_stack": "c - ", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } @@ -23289,16 +21721,12 @@ "description": "Computes `compose0(c, c0)`.", "gas": "26", "fift": "THENRET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "EDF6", - "tlb": "#EDF6", - "prefix": "EDF6", - "operands": [] + "fift_examples": [], + "opcode": "EDF6", + "stack": "c - c'" }, + "bytecode": { "tlb": "#EDF6", "prefix": "EDF6", "operands": [] }, "value_flow": { - "doc_stack": "c - c'", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } @@ -23322,16 +21750,12 @@ "description": "Computes `compose0(c, c1)`", "gas": "26", "fift": "THENRETALT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "EDF7", - "tlb": "#EDF7", - "prefix": "EDF7", - "operands": [] + "fift_examples": [], + "opcode": "EDF7", + "stack": "c - c'" }, + "bytecode": { "tlb": "#EDF7", "prefix": "EDF7", "operands": [] }, "value_flow": { - "doc_stack": "c - c'", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } @@ -23355,16 +21779,12 @@ "description": "Interchanges `c0` and `c1`.", "gas": "26", "fift": "INVERT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "EDF8", - "tlb": "#EDF8", - "prefix": "EDF8", - "operands": [] + "fift_examples": [], + "opcode": "EDF8", + "stack": "-" }, + "bytecode": { "tlb": "#EDF8", "prefix": "EDF8", "operands": [] }, "value_flow": { - "doc_stack": "-", "inputs": { "stack": [], "registers": [ @@ -23390,16 +21810,12 @@ "description": "Performs `cc:=compose1(compose0(c, compose0(-1 PUSHINT, cc)), compose0(0 PUSHINT, cc))`. If `c` represents a boolean circuit, the net effect is to evaluate it and push either `-1` or `0` into the stack before continuing.", "gas": "26", "fift": "BOOLEVAL", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "EDF9", - "tlb": "#EDF9", - "prefix": "EDF9", - "operands": [] + "fift_examples": [], + "opcode": "EDF9", + "stack": "c - ?" }, + "bytecode": { "tlb": "#EDF9", "prefix": "EDF9", "operands": [] }, "value_flow": { - "doc_stack": "c - ?", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } @@ -23461,16 +21877,12 @@ "description": "Sets `c1` to `c0`. Equivalent to `c0 PUSHCTR` `c1 POPCTR`.", "gas": "26", "fift": "SAMEALT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "EDFA", - "tlb": "#EDFA", - "prefix": "EDFA", - "operands": [] + "fift_examples": [], + "opcode": "EDFA", + "stack": "-" }, + "bytecode": { "tlb": "#EDFA", "prefix": "EDFA", "operands": [] }, "value_flow": { - "doc_stack": "-", "inputs": { "stack": [], "registers": [{ "type": "constant", "index": 0 }] @@ -23490,16 +21902,12 @@ "description": "Sets `c1` to `c0`, but first saves the old value of `c1` into the savelist of `c0`.\nEquivalent to `c1 SAVE` `SAMEALT`.", "gas": "26", "fift": "SAMEALTSAVE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "EDFB", - "tlb": "#EDFB", - "prefix": "EDFB", - "operands": [] + "fift_examples": [], + "opcode": "EDFB", + "stack": "-" }, + "bytecode": { "tlb": "#EDFB", "prefix": "EDFB", "operands": [] }, "value_flow": { - "doc_stack": "-", "inputs": { "stack": [], "registers": [ @@ -23525,10 +21933,11 @@ "description": "Calls the continuation in `c3`, pushing integer `0 <= nn <= 255` into its stack as an argument.\nApproximately equivalent to `[nn] PUSHINT` `c3 PUSHCTR` `EXECUTE`.", "gas": "", "fift": "[nn] CALL\n[nn] CALLDICT", - "fift_examples": [] + "fift_examples": [], + "opcode": "F0nn", + "stack": "- nn" }, "bytecode": { - "doc_opcode": "F0nn", "tlb": "#F0 n:uint8", "prefix": "F0", "operands": [ @@ -23543,7 +21952,6 @@ ] }, "value_flow": { - "doc_stack": "- nn", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -23576,10 +21984,11 @@ "description": "For `0 <= n < 2^14`, an encoding of `[n] CALL` for larger values of `n`.", "gas": "", "fift": "[n] CALL\n[n] CALLDICT", - "fift_examples": [] + "fift_examples": [], + "opcode": "F12_n", + "stack": "- n" }, "bytecode": { - "doc_opcode": "F12_n", "tlb": "#F12_ n:uint14", "prefix": "F12_", "operands": [ @@ -23594,7 +22003,6 @@ ] }, "value_flow": { - "doc_stack": "- n", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -23627,10 +22035,11 @@ "description": "Jumps to the continuation in `c3`, pushing integer `0 <= n < 2^14` as its argument.\nApproximately equivalent to `n PUSHINT` `c3 PUSHCTR` `JMPX`.", "gas": "", "fift": "[n] JMP", - "fift_examples": [] + "fift_examples": [], + "opcode": "F16_n", + "stack": " - n" }, "bytecode": { - "doc_opcode": "F16_n", "tlb": "#F16_ n:uint14", "prefix": "F16_", "operands": [ @@ -23645,7 +22054,6 @@ ] }, "value_flow": { - "doc_stack": " - n", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -23667,10 +22075,11 @@ "description": "Equivalent to `n PUSHINT` `c3 PUSHCTR`, for `0 <= n < 2^14`.\nIn this way, `[n] CALL` is approximately equivalent to `[n] PREPARE` `EXECUTE`, and `[n] JMP` is approximately equivalent to `[n] PREPARE` `JMPX`.\nOne might use, for instance, `CALLXARGS` or `CALLCC` instead of `EXECUTE` here.", "gas": "", "fift": "[n] PREPARE\n[n] PREPAREDICT", - "fift_examples": [] + "fift_examples": [], + "opcode": "F1A_n", + "stack": " - n c" }, "bytecode": { - "doc_opcode": "F1A_n", "tlb": "#F1A_ n:uint14", "prefix": "F1A_", "operands": [ @@ -23685,7 +22094,6 @@ ] }, "value_flow": { - "doc_stack": " - n c", "inputs": { "stack": [], "registers": [{ "type": "constant", "index": 3 }] @@ -23708,10 +22116,11 @@ "description": "Throws exception `0 <= n <= 63` with parameter zero.\nIn other words, it transfers control to the continuation in `c2`, pushing `0` and `n` into its stack, and discarding the old stack altogether.", "gas": "76", "fift": "[n] THROW", - "fift_examples": [] + "fift_examples": [], + "opcode": "F22_n", + "stack": " - 0 n" }, "bytecode": { - "doc_opcode": "F22_n", "tlb": "#F22_ n:uint6", "prefix": "F22_", "operands": [ @@ -23726,7 +22135,6 @@ ] }, "value_flow": { - "doc_stack": " - 0 n", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [], "registers": [] } }, @@ -23740,10 +22148,11 @@ "description": "Throws exception `0 <= n <= 63` with parameter zero only if integer `f!=0`.", "gas": "26/76", "fift": "[n] THROWIF", - "fift_examples": [] + "fift_examples": [], + "opcode": "F26_n", + "stack": "f - " }, "bytecode": { - "doc_opcode": "F26_n", "tlb": "#F26_ n:uint6", "prefix": "F26_", "operands": [ @@ -23758,7 +22167,6 @@ ] }, "value_flow": { - "doc_stack": "f - ", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } @@ -23777,10 +22185,11 @@ "description": "Throws exception `0 <= n <= 63` with parameter zero only if integer `f=0`.", "gas": "26/76", "fift": "[n] THROWIFNOT", - "fift_examples": [] + "fift_examples": [], + "opcode": "F2A_n", + "stack": "f - " }, "bytecode": { - "doc_opcode": "F2A_n", "tlb": "#F2A_ n:uint6", "prefix": "F2A_", "operands": [ @@ -23795,7 +22204,6 @@ ] }, "value_flow": { - "doc_stack": "f - ", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } @@ -23814,10 +22222,11 @@ "description": "For `0 <= n < 2^11`, an encoding of `[n] THROW` for larger values of `n`.", "gas": "84", "fift": "[n] THROW", - "fift_examples": [] + "fift_examples": [], + "opcode": "F2C4_n", + "stack": "- 0 nn" }, "bytecode": { - "doc_opcode": "F2C4_n", "tlb": "#F2C4_ n:uint11", "prefix": "F2C4_", "operands": [ @@ -23832,7 +22241,6 @@ ] }, "value_flow": { - "doc_stack": "- 0 nn", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [], "registers": [] } }, @@ -23846,10 +22254,11 @@ "description": "Throws exception `0 <= n < 2^11` with parameter `x`, by copying `x` and `n` into the stack of `c2` and transferring control to `c2`.", "gas": "84", "fift": "[n] THROWARG", - "fift_examples": [] + "fift_examples": [], + "opcode": "F2CC_n", + "stack": "x - x nn" }, "bytecode": { - "doc_opcode": "F2CC_n", "tlb": "#F2CC_ n:uint11", "prefix": "F2CC_", "operands": [ @@ -23864,7 +22273,6 @@ ] }, "value_flow": { - "doc_stack": "x - x nn", "inputs": { "stack": [{ "type": "simple", "name": "x" }], "registers": [] @@ -23881,10 +22289,11 @@ "description": "For `0 <= n < 2^11`, an encoding of `[n] THROWIF` for larger values of `n`.", "gas": "34/84", "fift": "[n] THROWIF", - "fift_examples": [] + "fift_examples": [], + "opcode": "F2D4_n", + "stack": "f - " }, "bytecode": { - "doc_opcode": "F2D4_n", "tlb": "#F2D4_ n:uint11", "prefix": "F2D4_", "operands": [ @@ -23899,7 +22308,6 @@ ] }, "value_flow": { - "doc_stack": "f - ", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } @@ -23918,10 +22326,11 @@ "description": "Throws exception `0 <= nn < 2^11` with parameter `x` only if integer `f!=0`.", "gas": "34/84", "fift": "[n] THROWARGIF", - "fift_examples": [] + "fift_examples": [], + "opcode": "F2DC_n", + "stack": "x f - " }, "bytecode": { - "doc_opcode": "F2DC_n", "tlb": "#F2DC_ n:uint11", "prefix": "F2DC_", "operands": [ @@ -23936,7 +22345,6 @@ ] }, "value_flow": { - "doc_stack": "x f - ", "inputs": { "stack": [ { "type": "simple", "name": "x" }, @@ -23956,10 +22364,11 @@ "description": "For `0 <= n < 2^11`, an encoding of `[n] THROWIFNOT` for larger values of `n`.", "gas": "34/84", "fift": "[n] THROWIFNOT", - "fift_examples": [] + "fift_examples": [], + "opcode": "F2E4_n", + "stack": "f - " }, "bytecode": { - "doc_opcode": "F2E4_n", "tlb": "#F2E4_ n:uint11", "prefix": "F2E4_", "operands": [ @@ -23974,7 +22383,6 @@ ] }, "value_flow": { - "doc_stack": "f - ", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } @@ -23993,10 +22401,11 @@ "description": "Throws exception `0 <= n < 2^11` with parameter `x` only if integer `f=0`.", "gas": "34/84", "fift": "[n] THROWARGIFNOT", - "fift_examples": [] + "fift_examples": [], + "opcode": "F2EC_n", + "stack": "x f - " }, "bytecode": { - "doc_opcode": "F2EC_n", "tlb": "#F2EC_ n:uint11", "prefix": "F2EC_", "operands": [ @@ -24011,7 +22420,6 @@ ] }, "value_flow": { - "doc_stack": "x f - ", "inputs": { "stack": [ { "type": "simple", "name": "x" }, @@ -24031,16 +22439,12 @@ "description": "Throws exception `0 <= n < 2^16` with parameter zero.\nApproximately equivalent to `ZERO` `SWAP` `THROWARGANY`.", "gas": "76", "fift": "THROWANY", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F2F0", - "tlb": "#F2F0", - "prefix": "F2F0", - "operands": [] + "fift_examples": [], + "opcode": "F2F0", + "stack": "n - 0 n" }, + "bytecode": { "tlb": "#F2F0", "prefix": "F2F0", "operands": [] }, "value_flow": { - "doc_stack": "n - 0 n", "inputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] } @@ -24059,16 +22463,12 @@ "description": "Throws exception `0 <= n < 2^16` with parameter `x`, transferring control to the continuation in `c2`.\nApproximately equivalent to `c2 PUSHCTR` `2 JMPXARGS`.", "gas": "76", "fift": "THROWARGANY", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F2F1", - "tlb": "#F2F1", - "prefix": "F2F1", - "operands": [] + "fift_examples": [], + "opcode": "F2F1", + "stack": "x n - x n" }, + "bytecode": { "tlb": "#F2F1", "prefix": "F2F1", "operands": [] }, "value_flow": { - "doc_stack": "x n - x n", "inputs": { "stack": [ { "type": "simple", "name": "x" }, @@ -24088,16 +22488,12 @@ "description": "Throws exception `0 <= n < 2^16` with parameter zero only if `f!=0`.", "gas": "26/76", "fift": "THROWANYIF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F2F2", - "tlb": "#F2F2", - "prefix": "F2F2", - "operands": [] + "fift_examples": [], + "opcode": "F2F2", + "stack": "n f - " }, + "bytecode": { "tlb": "#F2F2", "prefix": "F2F2", "operands": [] }, "value_flow": { - "doc_stack": "n f - ", "inputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] }, @@ -24117,16 +22513,12 @@ "description": "Throws exception `0 <= n<2^16` with parameter `x` only if `f!=0`.", "gas": "26/76", "fift": "THROWARGANYIF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F2F3", - "tlb": "#F2F3", - "prefix": "F2F3", - "operands": [] + "fift_examples": [], + "opcode": "F2F3", + "stack": "x n f - " }, + "bytecode": { "tlb": "#F2F3", "prefix": "F2F3", "operands": [] }, "value_flow": { - "doc_stack": "x n f - ", "inputs": { "stack": [ { "type": "simple", "name": "x" }, @@ -24147,16 +22539,12 @@ "description": "Throws exception `0 <= n<2^16` with parameter zero only if `f=0`.", "gas": "26/76", "fift": "THROWANYIFNOT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F2F4", - "tlb": "#F2F4", - "prefix": "F2F4", - "operands": [] + "fift_examples": [], + "opcode": "F2F4", + "stack": "n f - " }, + "bytecode": { "tlb": "#F2F4", "prefix": "F2F4", "operands": [] }, "value_flow": { - "doc_stack": "n f - ", "inputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] }, @@ -24176,16 +22564,12 @@ "description": "Throws exception `0 <= n<2^16` with parameter `x` only if `f=0`.", "gas": "26/76", "fift": "THROWARGANYIFNOT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F2F5", - "tlb": "#F2F5", - "prefix": "F2F5", - "operands": [] + "fift_examples": [], + "opcode": "F2F5", + "stack": "x n f - " }, + "bytecode": { "tlb": "#F2F5", "prefix": "F2F5", "operands": [] }, "value_flow": { - "doc_stack": "x n f - ", "inputs": { "stack": [ { "type": "simple", "name": "x" }, @@ -24211,16 +22595,12 @@ "fift": "TRY:<{ code1 }>CATCH<{ code2 }>", "description": "Equivalent to `<{ code1 }> CONT` `<{ code2 }> CONT` `TRY`." } - ] - }, - "bytecode": { - "doc_opcode": "F2FF", - "tlb": "#F2FF", - "prefix": "F2FF", - "operands": [] + ], + "opcode": "F2FF", + "stack": "c c' - " }, + "bytecode": { "tlb": "#F2FF", "prefix": "F2FF", "operands": [] }, "value_flow": { - "doc_stack": "c c' - ", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] }, @@ -24273,10 +22653,11 @@ "description": "Similar to `TRY`, but with `[p] [r] CALLXARGS` internally used instead of `EXECUTE`.\nIn this way, all but the top `0 <= p <= 15` stack elements will be saved into current continuation's stack, and then restored upon return from either `c` or `c'`, with the top `0 <= r <= 15` values of the resulting stack of `c` or `c'` copied as return values.", "gas": "26", "fift": "[p] [r] TRYARGS", - "fift_examples": [] + "fift_examples": [], + "opcode": "F3pr", + "stack": "c c' - " }, "bytecode": { - "doc_opcode": "F3pr", "tlb": "#F3 p:uint4 r:uint4", "prefix": "F3", "operands": [ @@ -24299,7 +22680,6 @@ ] }, "value_flow": { - "doc_stack": "c c' - ", "inputs": { "stack": [ { @@ -24358,16 +22738,12 @@ "description": "Stores dictionary `D` into _Builder_ `b`, returing the resulting _Builder_ `b'`.\nIn other words, if `D` is a cell, performs `STONE` and `STREF`; if `D` is _Null_, performs `NIP` and `STZERO`; otherwise throws a type checking exception.", "gas": "26", "fift": "STDICT\nSTOPTREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F400", - "tlb": "#F400", - "prefix": "F400", - "operands": [] + "fift_examples": [], + "opcode": "F400", + "stack": "D b - b'" }, + "bytecode": { "tlb": "#F400", "prefix": "F400", "operands": [] }, "value_flow": { - "doc_stack": "D b - b'", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -24392,16 +22768,12 @@ "description": "Equivalent to `LDDICT` `NIP`.", "gas": "26", "fift": "SKIPDICT\nSKIPOPTREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F401", - "tlb": "#F401", - "prefix": "F401", - "operands": [] + "fift_examples": [], + "opcode": "F401", + "stack": "s - s'" }, + "bytecode": { "tlb": "#F401", "prefix": "F401", "operands": [] }, "value_flow": { - "doc_stack": "s - s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -24425,16 +22797,12 @@ "description": "Loads (parses) a (_Slice_-represented) dictionary `s'` from _Slice_ `s`, and returns the remainder of `s` as `s''`.\nThis is a ''split function'' for all `HashmapE(n,X)` dictionary types.", "gas": "26", "fift": "LDDICTS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F402", - "tlb": "#F402", - "prefix": "F402", - "operands": [] + "fift_examples": [], + "opcode": "F402", + "stack": "s - s' s''" }, + "bytecode": { "tlb": "#F402", "prefix": "F402", "operands": [] }, "value_flow": { - "doc_stack": "s - s' s''", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -24459,16 +22827,12 @@ "description": "Preloads a (_Slice_-represented) dictionary `s'` from _Slice_ `s`.\nApproximately equivalent to `LDDICTS` `DROP`.", "gas": "26", "fift": "PLDDICTS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F403", - "tlb": "#F403", - "prefix": "F403", - "operands": [] + "fift_examples": [], + "opcode": "F403", + "stack": "s - s'" }, + "bytecode": { "tlb": "#F403", "prefix": "F403", "operands": [] }, "value_flow": { - "doc_stack": "s - s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -24492,16 +22856,12 @@ "description": "Loads (parses) a dictionary `D` from _Slice_ `s`, and returns the remainder of `s` as `s'`. May be applied to dictionaries or to values of arbitrary `(^Y)?` types.", "gas": "26", "fift": "LDDICT\nLDOPTREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F404", - "tlb": "#F404", - "prefix": "F404", - "operands": [] + "fift_examples": [], + "opcode": "F404", + "stack": "s - D s'" }, + "bytecode": { "tlb": "#F404", "prefix": "F404", "operands": [] }, "value_flow": { - "doc_stack": "s - D s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -24526,16 +22886,12 @@ "description": "Preloads a dictionary `D` from _Slice_ `s`.\nApproximately equivalent to `LDDICT` `DROP`.", "gas": "26", "fift": "PLDDICT\nPLDOPTREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F405", - "tlb": "#F405", - "prefix": "F405", - "operands": [] + "fift_examples": [], + "opcode": "F405", + "stack": "s - D" }, + "bytecode": { "tlb": "#F405", "prefix": "F405", "operands": [] }, "value_flow": { - "doc_stack": "s - D", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -24559,16 +22915,12 @@ "description": "A quiet version of `LDDICT`.", "gas": "26", "fift": "LDDICTQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F406", - "tlb": "#F406", - "prefix": "F406", - "operands": [] + "fift_examples": [], + "opcode": "F406", + "stack": "s - D s' -1 or s 0" }, + "bytecode": { "tlb": "#F406", "prefix": "F406", "operands": [] }, "value_flow": { - "doc_stack": "s - D s' -1 or s 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Integer"] } @@ -24619,16 +22971,12 @@ "description": "A quiet version of `PLDDICT`.", "gas": "26", "fift": "PLDDICTQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F407", - "tlb": "#F407", - "prefix": "F407", - "operands": [] + "fift_examples": [], + "opcode": "F407", + "stack": "s - D -1 or 0" }, + "bytecode": { "tlb": "#F407", "prefix": "F407", "operands": [] }, "value_flow": { - "doc_stack": "s - D -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Integer"] } @@ -24669,16 +23017,12 @@ "description": "Looks up key `k` (represented by a _Slice_, the first `0 <= n <= 1023` data bits of which are used as a key) in dictionary `D` of type `HashmapE(n,X)` with `n`-bit keys.\nOn success, returns the value found as a _Slice_ `x`.", "gas": "", "fift": "DICTGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F40A", - "tlb": "#F40A", - "prefix": "F40A", - "operands": [] + "fift_examples": [], + "opcode": "F40A", + "stack": "k D n - x -1 or 0" }, + "bytecode": { "tlb": "#F40A", "prefix": "F40A", "operands": [] }, "value_flow": { - "doc_stack": "k D n - x -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "k", "value_types": ["Slice"] }, @@ -24717,16 +23061,12 @@ "description": "Similar to `DICTGET`, but with a `LDREF` `ENDS` applied to `x` on success.\nThis operation is useful for dictionaries of type `HashmapE(n,^Y)`.", "gas": "", "fift": "DICTGETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F40B", - "tlb": "#F40B", - "prefix": "F40B", - "operands": [] + "fift_examples": [], + "opcode": "F40B", + "stack": "k D n - c -1 or 0" }, + "bytecode": { "tlb": "#F40B", "prefix": "F40B", "operands": [] }, "value_flow": { - "doc_stack": "k D n - c -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "k", "value_types": ["Integer"] }, @@ -24765,16 +23105,12 @@ "description": "Similar to `DICTGET`, but with a signed (big-endian) `n`-bit _Integer_ `i` as a key. If `i` does not fit into `n` bits, returns `0`. If `i` is a `NaN`, throws an integer overflow exception.", "gas": "", "fift": "DICTIGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F40C", - "tlb": "#F40C", - "prefix": "F40C", - "operands": [] + "fift_examples": [], + "opcode": "F40C", + "stack": "i D n - x -1 or 0" }, + "bytecode": { "tlb": "#F40C", "prefix": "F40C", "operands": [] }, "value_flow": { - "doc_stack": "i D n - x -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -24813,16 +23149,12 @@ "description": "Combines `DICTIGET` with `DICTGETREF`: it uses signed `n`-bit _Integer_ `i` as a key and returns a _Cell_ instead of a _Slice_ on success.", "gas": "", "fift": "DICTIGETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F40D", - "tlb": "#F40D", - "prefix": "F40D", - "operands": [] + "fift_examples": [], + "opcode": "F40D", + "stack": "i D n - c -1 or 0" }, + "bytecode": { "tlb": "#F40D", "prefix": "F40D", "operands": [] }, "value_flow": { - "doc_stack": "i D n - c -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -24861,16 +23193,12 @@ "description": "Similar to `DICTIGET`, but with _unsigned_ (big-endian) `n`-bit _Integer_ `i` used as a key.", "gas": "", "fift": "DICTUGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F40E", - "tlb": "#F40E", - "prefix": "F40E", - "operands": [] + "fift_examples": [], + "opcode": "F40E", + "stack": "i D n - x -1 or 0" }, + "bytecode": { "tlb": "#F40E", "prefix": "F40E", "operands": [] }, "value_flow": { - "doc_stack": "i D n - x -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -24909,16 +23237,12 @@ "description": "Similar to `DICTIGETREF`, but with an unsigned `n`-bit _Integer_ key `i`.", "gas": "", "fift": "DICTUGETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F40F", - "tlb": "#F40F", - "prefix": "F40F", - "operands": [] + "fift_examples": [], + "opcode": "F40F", + "stack": "i D n - c -1 or 0" }, + "bytecode": { "tlb": "#F40F", "prefix": "F40F", "operands": [] }, "value_flow": { - "doc_stack": "i D n - c -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -24957,16 +23281,12 @@ "description": "Sets the value associated with `n`-bit key `k` (represented by a _Slice_ as in `DICTGET`) in dictionary `D` (also represented by a _Slice_) to value `x` (again a _Slice_), and returns the resulting dictionary as `D'`.", "gas": "", "fift": "DICTSET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F412", - "tlb": "#F412", - "prefix": "F412", - "operands": [] + "fift_examples": [], + "opcode": "F412", + "stack": "x k D n - D'" }, + "bytecode": { "tlb": "#F412", "prefix": "F412", "operands": [] }, "value_flow": { - "doc_stack": "x k D n - D'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -24993,16 +23313,12 @@ "description": "Similar to `DICTSET`, but with the value set to a reference to _Cell_ `c`.", "gas": "", "fift": "DICTSETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F413", - "tlb": "#F413", - "prefix": "F413", - "operands": [] + "fift_examples": [], + "opcode": "F413", + "stack": "c k D n - D'" }, + "bytecode": { "tlb": "#F413", "prefix": "F413", "operands": [] }, "value_flow": { - "doc_stack": "c k D n - D'", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -25029,16 +23345,12 @@ "description": "Similar to `DICTSET`, but with the key represented by a (big-endian) signed `n`-bit integer `i`. If `i` does not fit into `n` bits, a range check exception is generated.", "gas": "", "fift": "DICTISET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F414", - "tlb": "#F414", - "prefix": "F414", - "operands": [] + "fift_examples": [], + "opcode": "F414", + "stack": "x i D n - D'" }, + "bytecode": { "tlb": "#F414", "prefix": "F414", "operands": [] }, "value_flow": { - "doc_stack": "x i D n - D'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -25065,16 +23377,12 @@ "description": "Similar to `DICTSETREF`, but with the key a signed `n`-bit integer as in `DICTISET`.", "gas": "", "fift": "DICTISETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F415", - "tlb": "#F415", - "prefix": "F415", - "operands": [] + "fift_examples": [], + "opcode": "F415", + "stack": "c i D n - D'" }, + "bytecode": { "tlb": "#F415", "prefix": "F415", "operands": [] }, "value_flow": { - "doc_stack": "c i D n - D'", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -25101,16 +23409,12 @@ "description": "Similar to `DICTISET`, but with `i` an _unsigned_ `n`-bit integer.", "gas": "", "fift": "DICTUSET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F416", - "tlb": "#F416", - "prefix": "F416", - "operands": [] + "fift_examples": [], + "opcode": "F416", + "stack": "x i D n - D'" }, + "bytecode": { "tlb": "#F416", "prefix": "F416", "operands": [] }, "value_flow": { - "doc_stack": "x i D n - D'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -25137,16 +23441,12 @@ "description": "Similar to `DICTISETREF`, but with `i` unsigned.", "gas": "", "fift": "DICTUSETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F417", - "tlb": "#F417", - "prefix": "F417", - "operands": [] + "fift_examples": [], + "opcode": "F417", + "stack": "c i D n - D'" }, + "bytecode": { "tlb": "#F417", "prefix": "F417", "operands": [] }, "value_flow": { - "doc_stack": "c i D n - D'", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -25173,16 +23473,12 @@ "description": "Combines `DICTSET` with `DICTGET`: it sets the value corresponding to key `k` to `x`, but also returns the old value `y` associated with the key in question, if present.", "gas": "", "fift": "DICTSETGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F41A", - "tlb": "#F41A", - "prefix": "F41A", - "operands": [] + "fift_examples": [], + "opcode": "F41A", + "stack": "x k D n - D' y -1 or D' 0" }, + "bytecode": { "tlb": "#F41A", "prefix": "F41A", "operands": [] }, "value_flow": { - "doc_stack": "x k D n - D' y -1 or D' 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -25232,16 +23528,12 @@ "description": "Combines `DICTSETREF` with `DICTGETREF` similarly to `DICTSETGET`.", "gas": "", "fift": "DICTSETGETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F41B", - "tlb": "#F41B", - "prefix": "F41B", - "operands": [] + "fift_examples": [], + "opcode": "F41B", + "stack": "c k D n - D' c' -1 or D' 0" }, + "bytecode": { "tlb": "#F41B", "prefix": "F41B", "operands": [] }, "value_flow": { - "doc_stack": "c k D n - D' c' -1 or D' 0", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -25291,16 +23583,12 @@ "description": "`DICTISETGET`, but with `i` a signed `n`-bit integer.", "gas": "", "fift": "DICTISETGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F41C", - "tlb": "#F41C", - "prefix": "F41C", - "operands": [] + "fift_examples": [], + "opcode": "F41C", + "stack": "x i D n - D' y -1 or D' 0" }, + "bytecode": { "tlb": "#F41C", "prefix": "F41C", "operands": [] }, "value_flow": { - "doc_stack": "x i D n - D' y -1 or D' 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -25350,16 +23638,12 @@ "description": "`DICTISETGETREF`, but with `i` a signed `n`-bit integer.", "gas": "", "fift": "DICTISETGETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F41D", - "tlb": "#F41D", - "prefix": "F41D", - "operands": [] + "fift_examples": [], + "opcode": "F41D", + "stack": "c i D n - D' c' -1 or D' 0" }, + "bytecode": { "tlb": "#F41D", "prefix": "F41D", "operands": [] }, "value_flow": { - "doc_stack": "c i D n - D' c' -1 or D' 0", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -25409,16 +23693,12 @@ "description": "`DICTISETGET`, but with `i` an unsigned `n`-bit integer.", "gas": "", "fift": "DICTUSETGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F41E", - "tlb": "#F41E", - "prefix": "F41E", - "operands": [] + "fift_examples": [], + "opcode": "F41E", + "stack": "x i D n - D' y -1 or D' 0" }, + "bytecode": { "tlb": "#F41E", "prefix": "F41E", "operands": [] }, "value_flow": { - "doc_stack": "x i D n - D' y -1 or D' 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -25468,16 +23748,12 @@ "description": "`DICTISETGETREF`, but with `i` an unsigned `n`-bit integer.", "gas": "", "fift": "DICTUSETGETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F41F", - "tlb": "#F41F", - "prefix": "F41F", - "operands": [] + "fift_examples": [], + "opcode": "F41F", + "stack": "c i D n - D' c' -1 or D' 0" }, + "bytecode": { "tlb": "#F41F", "prefix": "F41F", "operands": [] }, "value_flow": { - "doc_stack": "c i D n - D' c' -1 or D' 0", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -25527,16 +23803,12 @@ "description": "A _Replace_ operation, which is similar to `DICTSET`, but sets the value of key `k` in dictionary `D` to `x` only if the key `k` was already present in `D`.", "gas": "", "fift": "DICTREPLACE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F422", - "tlb": "#F422", - "prefix": "F422", - "operands": [] + "fift_examples": [], + "opcode": "F422", + "stack": "x k D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F422", "prefix": "F422", "operands": [] }, "value_flow": { - "doc_stack": "x k D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -25585,16 +23857,12 @@ "description": "A _Replace_ counterpart of `DICTSETREF`.", "gas": "", "fift": "DICTREPLACEREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F423", - "tlb": "#F423", - "prefix": "F423", - "operands": [] + "fift_examples": [], + "opcode": "F423", + "stack": "c k D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F423", "prefix": "F423", "operands": [] }, "value_flow": { - "doc_stack": "c k D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -25643,16 +23911,12 @@ "description": "`DICTREPLACE`, but with `i` a signed `n`-bit integer.", "gas": "", "fift": "DICTIREPLACE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F424", - "tlb": "#F424", - "prefix": "F424", - "operands": [] + "fift_examples": [], + "opcode": "F424", + "stack": "x i D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F424", "prefix": "F424", "operands": [] }, "value_flow": { - "doc_stack": "x i D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -25701,16 +23965,12 @@ "description": "`DICTREPLACEREF`, but with `i` a signed `n`-bit integer.", "gas": "", "fift": "DICTIREPLACEREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F425", - "tlb": "#F425", - "prefix": "F425", - "operands": [] + "fift_examples": [], + "opcode": "F425", + "stack": "c i D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F425", "prefix": "F425", "operands": [] }, "value_flow": { - "doc_stack": "c i D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -25759,16 +24019,12 @@ "description": "`DICTREPLACE`, but with `i` an unsigned `n`-bit integer.", "gas": "", "fift": "DICTUREPLACE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F426", - "tlb": "#F426", - "prefix": "F426", - "operands": [] + "fift_examples": [], + "opcode": "F426", + "stack": "x i D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F426", "prefix": "F426", "operands": [] }, "value_flow": { - "doc_stack": "x i D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -25817,16 +24073,12 @@ "description": "`DICTREPLACEREF`, but with `i` an unsigned `n`-bit integer.", "gas": "", "fift": "DICTUREPLACEREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F427", - "tlb": "#F427", - "prefix": "F427", - "operands": [] + "fift_examples": [], + "opcode": "F427", + "stack": "c i D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F427", "prefix": "F427", "operands": [] }, "value_flow": { - "doc_stack": "c i D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -25875,16 +24127,12 @@ "description": "A _Replace_ counterpart of `DICTSETGET`: on success, also returns the old value associated with the key in question.", "gas": "", "fift": "DICTREPLACEGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F42A", - "tlb": "#F42A", - "prefix": "F42A", - "operands": [] + "fift_examples": [], + "opcode": "F42A", + "stack": "x k D n - D' y -1 or D 0" }, + "bytecode": { "tlb": "#F42A", "prefix": "F42A", "operands": [] }, "value_flow": { - "doc_stack": "x k D n - D' y -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -25938,16 +24186,12 @@ "description": "A _Replace_ counterpart of `DICTSETGETREF`.", "gas": "", "fift": "DICTREPLACEGETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F42B", - "tlb": "#F42B", - "prefix": "F42B", - "operands": [] + "fift_examples": [], + "opcode": "F42B", + "stack": "c k D n - D' c' -1 or D 0" }, + "bytecode": { "tlb": "#F42B", "prefix": "F42B", "operands": [] }, "value_flow": { - "doc_stack": "c k D n - D' c' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -26001,16 +24245,12 @@ "description": "`DICTREPLACEGET`, but with `i` a signed `n`-bit integer.", "gas": "", "fift": "DICTIREPLACEGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F42C", - "tlb": "#F42C", - "prefix": "F42C", - "operands": [] + "fift_examples": [], + "opcode": "F42C", + "stack": "x i D n - D' y -1 or D 0" }, + "bytecode": { "tlb": "#F42C", "prefix": "F42C", "operands": [] }, "value_flow": { - "doc_stack": "x i D n - D' y -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -26064,16 +24304,12 @@ "description": "`DICTREPLACEGETREF`, but with `i` a signed `n`-bit integer.", "gas": "", "fift": "DICTIREPLACEGETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F42D", - "tlb": "#F42D", - "prefix": "F42D", - "operands": [] + "fift_examples": [], + "opcode": "F42D", + "stack": "c i D n - D' c' -1 or D 0" }, + "bytecode": { "tlb": "#F42D", "prefix": "F42D", "operands": [] }, "value_flow": { - "doc_stack": "c i D n - D' c' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -26127,16 +24363,12 @@ "description": "`DICTREPLACEGET`, but with `i` an unsigned `n`-bit integer.", "gas": "", "fift": "DICTUREPLACEGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F42E", - "tlb": "#F42E", - "prefix": "F42E", - "operands": [] + "fift_examples": [], + "opcode": "F42E", + "stack": "x i D n - D' y -1 or D 0" }, + "bytecode": { "tlb": "#F42E", "prefix": "F42E", "operands": [] }, "value_flow": { - "doc_stack": "x i D n - D' y -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -26190,16 +24422,12 @@ "description": "`DICTREPLACEGETREF`, but with `i` an unsigned `n`-bit integer.", "gas": "", "fift": "DICTUREPLACEGETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F42F", - "tlb": "#F42F", - "prefix": "F42F", - "operands": [] + "fift_examples": [], + "opcode": "F42F", + "stack": "c i D n - D' c' -1 or D 0" }, + "bytecode": { "tlb": "#F42F", "prefix": "F42F", "operands": [] }, "value_flow": { - "doc_stack": "c i D n - D' c' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -26253,16 +24481,12 @@ "description": "An _Add_ counterpart of `DICTSET`: sets the value associated with key `k` in dictionary `D` to `x`, but only if it is not already present in `D`.", "gas": "", "fift": "DICTADD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F432", - "tlb": "#F432", - "prefix": "F432", - "operands": [] + "fift_examples": [], + "opcode": "F432", + "stack": "x k D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F432", "prefix": "F432", "operands": [] }, "value_flow": { - "doc_stack": "x k D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -26307,16 +24531,12 @@ "description": "An _Add_ counterpart of `DICTSETREF`.", "gas": "", "fift": "DICTADDREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F433", - "tlb": "#F433", - "prefix": "F433", - "operands": [] + "fift_examples": [], + "opcode": "F433", + "stack": "c k D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F433", "prefix": "F433", "operands": [] }, "value_flow": { - "doc_stack": "c k D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -26361,16 +24581,12 @@ "description": "`DICTADD`, but with `i` a signed `n`-bit integer.", "gas": "", "fift": "DICTIADD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F434", - "tlb": "#F434", - "prefix": "F434", - "operands": [] + "fift_examples": [], + "opcode": "F434", + "stack": "x i D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F434", "prefix": "F434", "operands": [] }, "value_flow": { - "doc_stack": "x i D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -26415,16 +24631,12 @@ "description": "`DICTADDREF`, but with `i` a signed `n`-bit integer.", "gas": "", "fift": "DICTIADDREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F435", - "tlb": "#F435", - "prefix": "F435", - "operands": [] + "fift_examples": [], + "opcode": "F435", + "stack": "c i D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F435", "prefix": "F435", "operands": [] }, "value_flow": { - "doc_stack": "c i D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -26469,16 +24681,12 @@ "description": "`DICTADD`, but with `i` an unsigned `n`-bit integer.", "gas": "", "fift": "DICTUADD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F436", - "tlb": "#F436", - "prefix": "F436", - "operands": [] + "fift_examples": [], + "opcode": "F436", + "stack": "x i D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F436", "prefix": "F436", "operands": [] }, "value_flow": { - "doc_stack": "x i D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -26523,16 +24731,12 @@ "description": "`DICTADDREF`, but with `i` an unsigned `n`-bit integer.", "gas": "", "fift": "DICTUADDREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F437", - "tlb": "#F437", - "prefix": "F437", - "operands": [] + "fift_examples": [], + "opcode": "F437", + "stack": "c i D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F437", "prefix": "F437", "operands": [] }, "value_flow": { - "doc_stack": "c i D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -26577,16 +24781,12 @@ "description": "An _Add_ counterpart of `DICTSETGET`: sets the value associated with key `k` in dictionary `D` to `x`, but only if key `k` is not already present in `D`. Otherwise, just returns the old value `y` without changing the dictionary.", "gas": "", "fift": "DICTADDGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F43A", - "tlb": "#F43A", - "prefix": "F43A", - "operands": [] + "fift_examples": [], + "opcode": "F43A", + "stack": "x k D n - D' -1 or D y 0" }, + "bytecode": { "tlb": "#F43A", "prefix": "F43A", "operands": [] }, "value_flow": { - "doc_stack": "x k D n - D' -1 or D y 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -26632,16 +24832,12 @@ "description": "An _Add_ counterpart of `DICTSETGETREF`.", "gas": "", "fift": "DICTADDGETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F43B", - "tlb": "#F43B", - "prefix": "F43B", - "operands": [] + "fift_examples": [], + "opcode": "F43B", + "stack": "c k D n - D' -1 or D c' 0" }, + "bytecode": { "tlb": "#F43B", "prefix": "F43B", "operands": [] }, "value_flow": { - "doc_stack": "c k D n - D' -1 or D c' 0", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -26687,16 +24883,12 @@ "description": "`DICTADDGET`, but with `i` a signed `n`-bit integer.", "gas": "", "fift": "DICTIADDGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F43C", - "tlb": "#F43C", - "prefix": "F43C", - "operands": [] + "fift_examples": [], + "opcode": "F43C", + "stack": "x i D n - D' -1 or D y 0" }, + "bytecode": { "tlb": "#F43C", "prefix": "F43C", "operands": [] }, "value_flow": { - "doc_stack": "x i D n - D' -1 or D y 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -26742,16 +24934,12 @@ "description": "`DICTADDGETREF`, but with `i` a signed `n`-bit integer.", "gas": "", "fift": "DICTIADDGETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F43D", - "tlb": "#F43D", - "prefix": "F43D", - "operands": [] + "fift_examples": [], + "opcode": "F43D", + "stack": "c i D n - D' -1 or D c' 0" }, + "bytecode": { "tlb": "#F43D", "prefix": "F43D", "operands": [] }, "value_flow": { - "doc_stack": "c i D n - D' -1 or D c' 0", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -26797,16 +24985,12 @@ "description": "`DICTADDGET`, but with `i` an unsigned `n`-bit integer.", "gas": "", "fift": "DICTUADDGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F43E", - "tlb": "#F43E", - "prefix": "F43E", - "operands": [] + "fift_examples": [], + "opcode": "F43E", + "stack": "x i D n - D' -1 or D y 0" }, + "bytecode": { "tlb": "#F43E", "prefix": "F43E", "operands": [] }, "value_flow": { - "doc_stack": "x i D n - D' -1 or D y 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -26852,16 +25036,12 @@ "description": "`DICTADDGETREF`, but with `i` an unsigned `n`-bit integer.", "gas": "", "fift": "DICTUADDGETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F43F", - "tlb": "#F43F", - "prefix": "F43F", - "operands": [] + "fift_examples": [], + "opcode": "F43F", + "stack": "c i D n - D' -1 or D c' 0" }, + "bytecode": { "tlb": "#F43F", "prefix": "F43F", "operands": [] }, "value_flow": { - "doc_stack": "c i D n - D' -1 or D c' 0", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -26907,16 +25087,12 @@ "description": "", "gas": "", "fift": "DICTSETB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F441", - "tlb": "#F441", - "prefix": "F441", - "operands": [] + "fift_examples": [], + "opcode": "F441", + "stack": "b k D n - D'" }, + "bytecode": { "tlb": "#F441", "prefix": "F441", "operands": [] }, "value_flow": { - "doc_stack": "b k D n - D'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -26943,16 +25119,12 @@ "description": "", "gas": "", "fift": "DICTISETB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F442", - "tlb": "#F442", - "prefix": "F442", - "operands": [] + "fift_examples": [], + "opcode": "F442", + "stack": "b i D n - D'" }, + "bytecode": { "tlb": "#F442", "prefix": "F442", "operands": [] }, "value_flow": { - "doc_stack": "b i D n - D'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -26979,16 +25151,12 @@ "description": "", "gas": "", "fift": "DICTUSETB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F443", - "tlb": "#F443", - "prefix": "F443", - "operands": [] + "fift_examples": [], + "opcode": "F443", + "stack": "b i D n - D'" }, + "bytecode": { "tlb": "#F443", "prefix": "F443", "operands": [] }, "value_flow": { - "doc_stack": "b i D n - D'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -27015,16 +25183,12 @@ "description": "", "gas": "", "fift": "DICTSETGETB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F445", - "tlb": "#F445", - "prefix": "F445", - "operands": [] + "fift_examples": [], + "opcode": "F445", + "stack": "b k D n - D' y -1 or D' 0" }, + "bytecode": { "tlb": "#F445", "prefix": "F445", "operands": [] }, "value_flow": { - "doc_stack": "b k D n - D' y -1 or D' 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -27074,16 +25238,12 @@ "description": "", "gas": "", "fift": "DICTISETGETB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F446", - "tlb": "#F446", - "prefix": "F446", - "operands": [] + "fift_examples": [], + "opcode": "F446", + "stack": "b i D n - D' y -1 or D' 0" }, + "bytecode": { "tlb": "#F446", "prefix": "F446", "operands": [] }, "value_flow": { - "doc_stack": "b i D n - D' y -1 or D' 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -27133,16 +25293,12 @@ "description": "", "gas": "", "fift": "DICTUSETGETB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F447", - "tlb": "#F447", - "prefix": "F447", - "operands": [] + "fift_examples": [], + "opcode": "F447", + "stack": "b i D n - D' y -1 or D' 0" }, + "bytecode": { "tlb": "#F447", "prefix": "F447", "operands": [] }, "value_flow": { - "doc_stack": "b i D n - D' y -1 or D' 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -27192,16 +25348,12 @@ "description": "", "gas": "", "fift": "DICTREPLACEB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F449", - "tlb": "#F449", - "prefix": "F449", - "operands": [] + "fift_examples": [], + "opcode": "F449", + "stack": "b k D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F449", "prefix": "F449", "operands": [] }, "value_flow": { - "doc_stack": "b k D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -27246,16 +25398,12 @@ "description": "", "gas": "", "fift": "DICTIREPLACEB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F44A", - "tlb": "#F44A", - "prefix": "F44A", - "operands": [] + "fift_examples": [], + "opcode": "F44A", + "stack": "b i D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F44A", "prefix": "F44A", "operands": [] }, "value_flow": { - "doc_stack": "b i D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -27300,16 +25448,12 @@ "description": "", "gas": "", "fift": "DICTUREPLACEB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F44B", - "tlb": "#F44B", - "prefix": "F44B", - "operands": [] + "fift_examples": [], + "opcode": "F44B", + "stack": "b i D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F44B", "prefix": "F44B", "operands": [] }, "value_flow": { - "doc_stack": "b i D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -27354,16 +25498,12 @@ "description": "", "gas": "", "fift": "DICTREPLACEGETB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F44D", - "tlb": "#F44D", - "prefix": "F44D", - "operands": [] + "fift_examples": [], + "opcode": "F44D", + "stack": "b k D n - D' y -1 or D 0" }, + "bytecode": { "tlb": "#F44D", "prefix": "F44D", "operands": [] }, "value_flow": { - "doc_stack": "b k D n - D' y -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -27413,16 +25553,12 @@ "description": "", "gas": "", "fift": "DICTIREPLACEGETB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F44E", - "tlb": "#F44E", - "prefix": "F44E", - "operands": [] + "fift_examples": [], + "opcode": "F44E", + "stack": "b i D n - D' y -1 or D 0" }, + "bytecode": { "tlb": "#F44E", "prefix": "F44E", "operands": [] }, "value_flow": { - "doc_stack": "b i D n - D' y -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -27472,16 +25608,12 @@ "description": "", "gas": "", "fift": "DICTUREPLACEGETB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F44F", - "tlb": "#F44F", - "prefix": "F44F", - "operands": [] + "fift_examples": [], + "opcode": "F44F", + "stack": "b i D n - D' y -1 or D 0" }, + "bytecode": { "tlb": "#F44F", "prefix": "F44F", "operands": [] }, "value_flow": { - "doc_stack": "b i D n - D' y -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -27531,16 +25663,12 @@ "description": "", "gas": "", "fift": "DICTADDB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F451", - "tlb": "#F451", - "prefix": "F451", - "operands": [] + "fift_examples": [], + "opcode": "F451", + "stack": "b k D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F451", "prefix": "F451", "operands": [] }, "value_flow": { - "doc_stack": "b k D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -27585,16 +25713,12 @@ "description": "", "gas": "", "fift": "DICTIADDB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F452", - "tlb": "#F452", - "prefix": "F452", - "operands": [] + "fift_examples": [], + "opcode": "F452", + "stack": "b i D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F452", "prefix": "F452", "operands": [] }, "value_flow": { - "doc_stack": "b i D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -27639,16 +25763,12 @@ "description": "", "gas": "", "fift": "DICTUADDB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F453", - "tlb": "#F453", - "prefix": "F453", - "operands": [] + "fift_examples": [], + "opcode": "F453", + "stack": "b i D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F453", "prefix": "F453", "operands": [] }, "value_flow": { - "doc_stack": "b i D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -27693,16 +25813,12 @@ "description": "", "gas": "", "fift": "DICTADDGETB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F455", - "tlb": "#F455", - "prefix": "F455", - "operands": [] + "fift_examples": [], + "opcode": "F455", + "stack": "b k D n - D' -1 or D y 0" }, + "bytecode": { "tlb": "#F455", "prefix": "F455", "operands": [] }, "value_flow": { - "doc_stack": "b k D n - D' -1 or D y 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -27748,16 +25864,12 @@ "description": "", "gas": "", "fift": "DICTIADDGETB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F456", - "tlb": "#F456", - "prefix": "F456", - "operands": [] + "fift_examples": [], + "opcode": "F456", + "stack": "b i D n - D' -1 or D y 0" }, + "bytecode": { "tlb": "#F456", "prefix": "F456", "operands": [] }, "value_flow": { - "doc_stack": "b i D n - D' -1 or D y 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -27803,16 +25915,12 @@ "description": "", "gas": "", "fift": "DICTUADDGETB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F457", - "tlb": "#F457", - "prefix": "F457", - "operands": [] + "fift_examples": [], + "opcode": "F457", + "stack": "b i D n - D' -1 or D y 0" }, + "bytecode": { "tlb": "#F457", "prefix": "F457", "operands": [] }, "value_flow": { - "doc_stack": "b i D n - D' -1 or D y 0", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -27858,16 +25966,12 @@ "description": "Deletes `n`-bit key, represented by a _Slice_ `k`, from dictionary `D`. If the key is present, returns the modified dictionary `D'` and the success flag `-1`. Otherwise, returns the original dictionary `D` and `0`.", "gas": "", "fift": "DICTDEL", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F459", - "tlb": "#F459", - "prefix": "F459", - "operands": [] + "fift_examples": [], + "opcode": "F459", + "stack": "k D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F459", "prefix": "F459", "operands": [] }, "value_flow": { - "doc_stack": "k D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "k", "value_types": ["Slice"] }, @@ -27919,16 +26023,12 @@ "description": "A version of `DICTDEL` with the key represented by a signed `n`-bit _Integer_ `i`. If `i` does not fit into `n` bits, simply returns `D` `0` (''key not found, dictionary unmodified'').", "gas": "", "fift": "DICTIDEL", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F45A", - "tlb": "#F45A", - "prefix": "F45A", - "operands": [] + "fift_examples": [], + "opcode": "F45A", + "stack": "i D n - D' ?" }, + "bytecode": { "tlb": "#F45A", "prefix": "F45A", "operands": [] }, "value_flow": { - "doc_stack": "i D n - D' ?", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -27980,16 +26080,12 @@ "description": "Similar to `DICTIDEL`, but with `i` an unsigned `n`-bit integer.", "gas": "", "fift": "DICTUDEL", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F45B", - "tlb": "#F45B", - "prefix": "F45B", - "operands": [] + "fift_examples": [], + "opcode": "F45B", + "stack": "i D n - D' ?" }, + "bytecode": { "tlb": "#F45B", "prefix": "F45B", "operands": [] }, "value_flow": { - "doc_stack": "i D n - D' ?", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -28041,16 +26137,12 @@ "description": "Deletes `n`-bit key, represented by a _Slice_ `k`, from dictionary `D`. If the key is present, returns the modified dictionary `D'`, the original value `x` associated with the key `k` (represented by a _Slice_), and the success flag `-1`. Otherwise, returns the original dictionary `D` and `0`.", "gas": "", "fift": "DICTDELGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F462", - "tlb": "#F462", - "prefix": "F462", - "operands": [] + "fift_examples": [], + "opcode": "F462", + "stack": "k D n - D' x -1 or D 0" }, + "bytecode": { "tlb": "#F462", "prefix": "F462", "operands": [] }, "value_flow": { - "doc_stack": "k D n - D' x -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "k", "value_types": ["Slice"] }, @@ -28103,16 +26195,12 @@ "description": "Similar to `DICTDELGET`, but with `LDREF` `ENDS` applied to `x` on success, so that the value returned `c` is a _Cell_.", "gas": "", "fift": "DICTDELGETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F463", - "tlb": "#F463", - "prefix": "F463", - "operands": [] + "fift_examples": [], + "opcode": "F463", + "stack": "k D n - D' c -1 or D 0" }, + "bytecode": { "tlb": "#F463", "prefix": "F463", "operands": [] }, "value_flow": { - "doc_stack": "k D n - D' c -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "k", "value_types": ["Slice"] }, @@ -28165,16 +26253,12 @@ "description": "`DICTDELGET`, but with `i` a signed `n`-bit integer.", "gas": "", "fift": "DICTIDELGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F464", - "tlb": "#F464", - "prefix": "F464", - "operands": [] + "fift_examples": [], + "opcode": "F464", + "stack": "i D n - D' x -1 or D 0" }, + "bytecode": { "tlb": "#F464", "prefix": "F464", "operands": [] }, "value_flow": { - "doc_stack": "i D n - D' x -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -28227,16 +26311,12 @@ "description": "`DICTDELGETREF`, but with `i` a signed `n`-bit integer.", "gas": "", "fift": "DICTIDELGETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F465", - "tlb": "#F465", - "prefix": "F465", - "operands": [] + "fift_examples": [], + "opcode": "F465", + "stack": "i D n - D' c -1 or D 0" }, + "bytecode": { "tlb": "#F465", "prefix": "F465", "operands": [] }, "value_flow": { - "doc_stack": "i D n - D' c -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -28289,16 +26369,12 @@ "description": "`DICTDELGET`, but with `i` an unsigned `n`-bit integer.", "gas": "", "fift": "DICTUDELGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F466", - "tlb": "#F466", - "prefix": "F466", - "operands": [] + "fift_examples": [], + "opcode": "F466", + "stack": "i D n - D' x -1 or D 0" }, + "bytecode": { "tlb": "#F466", "prefix": "F466", "operands": [] }, "value_flow": { - "doc_stack": "i D n - D' x -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -28351,16 +26427,12 @@ "description": "`DICTDELGETREF`, but with `i` an unsigned `n`-bit integer.", "gas": "", "fift": "DICTUDELGETREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F467", - "tlb": "#F467", - "prefix": "F467", - "operands": [] + "fift_examples": [], + "opcode": "F467", + "stack": "i D n - D' c -1 or D 0" }, + "bytecode": { "tlb": "#F467", "prefix": "F467", "operands": [] }, "value_flow": { - "doc_stack": "i D n - D' c -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -28413,16 +26485,12 @@ "description": "A variant of `DICTGETREF` that returns _Null_ instead of the value `c^?` if the key `k` is absent from dictionary `D`.", "gas": "", "fift": "DICTGETOPTREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F469", - "tlb": "#F469", - "prefix": "F469", - "operands": [] + "fift_examples": [], + "opcode": "F469", + "stack": "k D n - c^?" }, + "bytecode": { "tlb": "#F469", "prefix": "F469", "operands": [] }, "value_flow": { - "doc_stack": "k D n - c^?", "inputs": { "stack": [ { "type": "simple", "name": "k", "value_types": ["Slice"] }, @@ -28448,16 +26516,12 @@ "description": "`DICTGETOPTREF`, but with `i` a signed `n`-bit integer. If the key `i` is out of range, also returns _Null_.", "gas": "", "fift": "DICTIGETOPTREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F46A", - "tlb": "#F46A", - "prefix": "F46A", - "operands": [] + "fift_examples": [], + "opcode": "F46A", + "stack": "i D n - c^?" }, + "bytecode": { "tlb": "#F46A", "prefix": "F46A", "operands": [] }, "value_flow": { - "doc_stack": "i D n - c^?", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -28483,16 +26547,12 @@ "description": "`DICTGETOPTREF`, but with `i` an unsigned `n`-bit integer. If the key `i` is out of range, also returns _Null_.", "gas": "", "fift": "DICTUGETOPTREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F46B", - "tlb": "#F46B", - "prefix": "F46B", - "operands": [] + "fift_examples": [], + "opcode": "F46B", + "stack": "i D n - c^?" }, + "bytecode": { "tlb": "#F46B", "prefix": "F46B", "operands": [] }, "value_flow": { - "doc_stack": "i D n - c^?", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -28518,16 +26578,12 @@ "description": "A variant of both `DICTGETOPTREF` and `DICTSETGETREF` that sets the value corresponding to key `k` in dictionary `D` to `c^?` (if `c^?` is _Null_, then the key is deleted instead), and returns the old value `~c^?` (if the key `k` was absent before, returns _Null_ instead).", "gas": "", "fift": "DICTSETGETOPTREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F46D", - "tlb": "#F46D", - "prefix": "F46D", - "operands": [] + "fift_examples": [], + "opcode": "F46D", + "stack": "c^? k D n - D' ~c^?" }, + "bytecode": { "tlb": "#F46D", "prefix": "F46D", "operands": [] }, "value_flow": { - "doc_stack": "c^? k D n - D' ~c^?", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] }, @@ -28559,16 +26615,12 @@ "description": "Similar to primitive `DICTSETGETOPTREF`, but using signed `n`-bit _Integer_ `i` as a key. If `i` does not fit into `n` bits, throws a range checking exception.", "gas": "", "fift": "DICTISETGETOPTREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F46E", - "tlb": "#F46E", - "prefix": "F46E", - "operands": [] + "fift_examples": [], + "opcode": "F46E", + "stack": "c^? i D n - D' ~c^?" }, + "bytecode": { "tlb": "#F46E", "prefix": "F46E", "operands": [] }, "value_flow": { - "doc_stack": "c^? i D n - D' ~c^?", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] }, @@ -28600,16 +26652,12 @@ "description": "Similar to primitive `DICTSETGETOPTREF`, but using unsigned `n`-bit _Integer_ `i` as a key.", "gas": "", "fift": "DICTUSETGETOPTREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F46F", - "tlb": "#F46F", - "prefix": "F46F", - "operands": [] + "fift_examples": [], + "opcode": "F46F", + "stack": "c^? i D n - D' ~c^?" }, + "bytecode": { "tlb": "#F46F", "prefix": "F46F", "operands": [] }, "value_flow": { - "doc_stack": "c^? i D n - D' ~c^?", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] }, @@ -28641,16 +26689,12 @@ "description": "", "gas": "", "fift": "PFXDICTSET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F470", - "tlb": "#F470", - "prefix": "F470", - "operands": [] + "fift_examples": [], + "opcode": "F470", + "stack": "x k D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F470", "prefix": "F470", "operands": [] }, "value_flow": { - "doc_stack": "x k D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -28703,16 +26747,12 @@ "description": "", "gas": "", "fift": "PFXDICTREPLACE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F471", - "tlb": "#F471", - "prefix": "F471", - "operands": [] + "fift_examples": [], + "opcode": "F471", + "stack": "x k D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F471", "prefix": "F471", "operands": [] }, "value_flow": { - "doc_stack": "x k D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -28765,16 +26805,12 @@ "description": "", "gas": "", "fift": "PFXDICTADD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F472", - "tlb": "#F472", - "prefix": "F472", - "operands": [] + "fift_examples": [], + "opcode": "F472", + "stack": "x k D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F472", "prefix": "F472", "operands": [] }, "value_flow": { - "doc_stack": "x k D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -28827,16 +26863,12 @@ "description": "", "gas": "", "fift": "PFXDICTDEL", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F473", - "tlb": "#F473", - "prefix": "F473", - "operands": [] + "fift_examples": [], + "opcode": "F473", + "stack": "k D n - D' -1 or D 0" }, + "bytecode": { "tlb": "#F473", "prefix": "F473", "operands": [] }, "value_flow": { - "doc_stack": "k D n - D' -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "k", "value_types": ["Slice"] }, @@ -28888,16 +26920,12 @@ "description": "Computes the minimal key `k'` in dictionary `D` that is lexicographically greater than `k`, and returns `k'` (represented by a _Slice_) along with associated value `x'` (also represented by a _Slice_).", "gas": "", "fift": "DICTGETNEXT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F474", - "tlb": "#F474", - "prefix": "F474", - "operands": [] + "fift_examples": [], + "opcode": "F474", + "stack": "k D n - x' k' -1 or 0" }, + "bytecode": { "tlb": "#F474", "prefix": "F474", "operands": [] }, "value_flow": { - "doc_stack": "k D n - x' k' -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "k", "value_types": ["Slice"] }, @@ -28941,16 +26969,12 @@ "description": "Similar to `DICTGETNEXT`, but computes the minimal key `k'` that is lexicographically greater than or equal to `k`.", "gas": "", "fift": "DICTGETNEXTEQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F475", - "tlb": "#F475", - "prefix": "F475", - "operands": [] + "fift_examples": [], + "opcode": "F475", + "stack": "k D n - x' k' -1 or 0" }, + "bytecode": { "tlb": "#F475", "prefix": "F475", "operands": [] }, "value_flow": { - "doc_stack": "k D n - x' k' -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "k", "value_types": ["Slice"] }, @@ -28994,16 +27018,12 @@ "description": "Similar to `DICTGETNEXT`, but computes the maximal key `k'` lexicographically smaller than `k`.", "gas": "", "fift": "DICTGETPREV", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F476", - "tlb": "#F476", - "prefix": "F476", - "operands": [] + "fift_examples": [], + "opcode": "F476", + "stack": "k D n - x' k' -1 or 0" }, + "bytecode": { "tlb": "#F476", "prefix": "F476", "operands": [] }, "value_flow": { - "doc_stack": "k D n - x' k' -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "k", "value_types": ["Slice"] }, @@ -29047,16 +27067,12 @@ "description": "Similar to `DICTGETPREV`, but computes the maximal key `k'` lexicographically smaller than or equal to `k`.", "gas": "", "fift": "DICTGETPREVEQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F477", - "tlb": "#F477", - "prefix": "F477", - "operands": [] + "fift_examples": [], + "opcode": "F477", + "stack": "k D n - x' k' -1 or 0" }, + "bytecode": { "tlb": "#F477", "prefix": "F477", "operands": [] }, "value_flow": { - "doc_stack": "k D n - x' k' -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "k", "value_types": ["Slice"] }, @@ -29100,16 +27116,12 @@ "description": "Similar to `DICTGETNEXT`, but interprets all keys in dictionary `D` as big-endian signed `n`-bit integers, and computes the minimal key `i'` that is larger than _Integer_ `i` (which does not necessarily fit into `n` bits).", "gas": "", "fift": "DICTIGETNEXT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F478", - "tlb": "#F478", - "prefix": "F478", - "operands": [] + "fift_examples": [], + "opcode": "F478", + "stack": "i D n - x' i' -1 or 0" }, + "bytecode": { "tlb": "#F478", "prefix": "F478", "operands": [] }, "value_flow": { - "doc_stack": "i D n - x' i' -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -29157,16 +27169,12 @@ "description": "Similar to `DICTGETNEXTEQ`, but interprets keys as signed `n`-bit integers.", "gas": "", "fift": "DICTIGETNEXTEQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F479", - "tlb": "#F479", - "prefix": "F479", - "operands": [] + "fift_examples": [], + "opcode": "F479", + "stack": "i D n - x' i' -1 or 0" }, + "bytecode": { "tlb": "#F479", "prefix": "F479", "operands": [] }, "value_flow": { - "doc_stack": "i D n - x' i' -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -29214,16 +27222,12 @@ "description": "Similar to `DICTGETPREV`, but interprets keys as signed `n`-bit integers.", "gas": "", "fift": "DICTIGETPREV", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F47A", - "tlb": "#F47A", - "prefix": "F47A", - "operands": [] + "fift_examples": [], + "opcode": "F47A", + "stack": "i D n - x' i' -1 or 0" }, + "bytecode": { "tlb": "#F47A", "prefix": "F47A", "operands": [] }, "value_flow": { - "doc_stack": "i D n - x' i' -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -29271,16 +27275,12 @@ "description": "Similar to `DICTGETPREVEQ`, but interprets keys as signed `n`-bit integers.", "gas": "", "fift": "DICTIGETPREVEQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F47B", - "tlb": "#F47B", - "prefix": "F47B", - "operands": [] + "fift_examples": [], + "opcode": "F47B", + "stack": "i D n - x' i' -1 or 0" }, + "bytecode": { "tlb": "#F47B", "prefix": "F47B", "operands": [] }, "value_flow": { - "doc_stack": "i D n - x' i' -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -29328,16 +27328,12 @@ "description": "Similar to `DICTGETNEXT`, but interprets all keys in dictionary `D` as big-endian unsigned `n`-bit integers, and computes the minimal key `i'` that is larger than _Integer_ `i` (which does not necessarily fit into `n` bits, and is not necessarily non-negative).", "gas": "", "fift": "DICTUGETNEXT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F47C", - "tlb": "#F47C", - "prefix": "F47C", - "operands": [] + "fift_examples": [], + "opcode": "F47C", + "stack": "i D n - x' i' -1 or 0" }, + "bytecode": { "tlb": "#F47C", "prefix": "F47C", "operands": [] }, "value_flow": { - "doc_stack": "i D n - x' i' -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -29385,16 +27381,12 @@ "description": "Similar to `DICTGETNEXTEQ`, but interprets keys as unsigned `n`-bit integers.", "gas": "", "fift": "DICTUGETNEXTEQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F47D", - "tlb": "#F47D", - "prefix": "F47D", - "operands": [] + "fift_examples": [], + "opcode": "F47D", + "stack": "i D n - x' i' -1 or 0" }, + "bytecode": { "tlb": "#F47D", "prefix": "F47D", "operands": [] }, "value_flow": { - "doc_stack": "i D n - x' i' -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -29442,16 +27434,12 @@ "description": "Similar to `DICTGETPREV`, but interprets keys as unsigned `n`-bit integers.", "gas": "", "fift": "DICTUGETPREV", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F47E", - "tlb": "#F47E", - "prefix": "F47E", - "operands": [] + "fift_examples": [], + "opcode": "F47E", + "stack": "i D n - x' i' -1 or 0" }, + "bytecode": { "tlb": "#F47E", "prefix": "F47E", "operands": [] }, "value_flow": { - "doc_stack": "i D n - x' i' -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -29499,16 +27487,12 @@ "description": "Similar to `DICTGETPREVEQ`, but interprets keys a unsigned `n`-bit integers.", "gas": "", "fift": "DICTUGETPREVEQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F47F", - "tlb": "#F47F", - "prefix": "F47F", - "operands": [] + "fift_examples": [], + "opcode": "F47F", + "stack": "i D n - x' i' -1 or 0" }, + "bytecode": { "tlb": "#F47F", "prefix": "F47F", "operands": [] }, "value_flow": { - "doc_stack": "i D n - x' i' -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -29556,16 +27540,12 @@ "description": "Computes the minimal key `k` (represented by a _Slice_ with `n` data bits) in dictionary `D`, and returns `k` along with the associated value `x`.", "gas": "", "fift": "DICTMIN", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F482", - "tlb": "#F482", - "prefix": "F482", - "operands": [] + "fift_examples": [], + "opcode": "F482", + "stack": "D n - x k -1 or 0" }, + "bytecode": { "tlb": "#F482", "prefix": "F482", "operands": [] }, "value_flow": { - "doc_stack": "D n - x k -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -29604,16 +27584,12 @@ "description": "Similar to `DICTMIN`, but returns the only reference in the value as a _Cell_ `c`.", "gas": "", "fift": "DICTMINREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F483", - "tlb": "#F483", - "prefix": "F483", - "operands": [] + "fift_examples": [], + "opcode": "F483", + "stack": "D n - c k -1 or 0" }, + "bytecode": { "tlb": "#F483", "prefix": "F483", "operands": [] }, "value_flow": { - "doc_stack": "D n - c k -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -29652,16 +27628,12 @@ "description": "Similar to `DICTMIN`, but computes the minimal key `i` under the assumption that all keys are big-endian signed `n`-bit integers. Notice that the key and value returned may differ from those computed by `DICTMIN` and `DICTUMIN`.", "gas": "", "fift": "DICTIMIN", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F484", - "tlb": "#F484", - "prefix": "F484", - "operands": [] + "fift_examples": [], + "opcode": "F484", + "stack": "D n - x i -1 or 0" }, + "bytecode": { "tlb": "#F484", "prefix": "F484", "operands": [] }, "value_flow": { - "doc_stack": "D n - x i -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -29704,16 +27676,12 @@ "description": "Similar to `DICTIMIN`, but returns the only reference in the value.", "gas": "", "fift": "DICTIMINREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F485", - "tlb": "#F485", - "prefix": "F485", - "operands": [] + "fift_examples": [], + "opcode": "F485", + "stack": "D n - c i -1 or 0" }, + "bytecode": { "tlb": "#F485", "prefix": "F485", "operands": [] }, "value_flow": { - "doc_stack": "D n - c i -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -29756,16 +27724,12 @@ "description": "Similar to `DICTMIN`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", "gas": "", "fift": "DICTUMIN", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F486", - "tlb": "#F486", - "prefix": "F486", - "operands": [] + "fift_examples": [], + "opcode": "F486", + "stack": "D n - x i -1 or 0" }, + "bytecode": { "tlb": "#F486", "prefix": "F486", "operands": [] }, "value_flow": { - "doc_stack": "D n - x i -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -29808,16 +27772,12 @@ "description": "Similar to `DICTUMIN`, but returns the only reference in the value.", "gas": "", "fift": "DICTUMINREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F487", - "tlb": "#F487", - "prefix": "F487", - "operands": [] + "fift_examples": [], + "opcode": "F487", + "stack": "D n - c i -1 or 0" }, + "bytecode": { "tlb": "#F487", "prefix": "F487", "operands": [] }, "value_flow": { - "doc_stack": "D n - c i -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -29860,16 +27820,12 @@ "description": "Computes the maximal key `k` (represented by a _Slice_ with `n` data bits) in dictionary `D`, and returns `k` along with the associated value `x`.", "gas": "", "fift": "DICTMAX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F48A", - "tlb": "#F48A", - "prefix": "F48A", - "operands": [] + "fift_examples": [], + "opcode": "F48A", + "stack": "D n - x k -1 or 0" }, + "bytecode": { "tlb": "#F48A", "prefix": "F48A", "operands": [] }, "value_flow": { - "doc_stack": "D n - x k -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -29908,16 +27864,12 @@ "description": "Similar to `DICTMAX`, but returns the only reference in the value.", "gas": "", "fift": "DICTMAXREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F48B", - "tlb": "#F48B", - "prefix": "F48B", - "operands": [] + "fift_examples": [], + "opcode": "F48B", + "stack": "D n - c k -1 or 0" }, + "bytecode": { "tlb": "#F48B", "prefix": "F48B", "operands": [] }, "value_flow": { - "doc_stack": "D n - c k -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -29956,16 +27908,12 @@ "description": "Similar to `DICTMAX`, but computes the maximal key `i` under the assumption that all keys are big-endian signed `n`-bit integers. Notice that the key and value returned may differ from those computed by `DICTMAX` and `DICTUMAX`.", "gas": "", "fift": "DICTIMAX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F48C", - "tlb": "#F48C", - "prefix": "F48C", - "operands": [] + "fift_examples": [], + "opcode": "F48C", + "stack": "D n - x i -1 or 0" }, + "bytecode": { "tlb": "#F48C", "prefix": "F48C", "operands": [] }, "value_flow": { - "doc_stack": "D n - x i -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -30008,16 +27956,12 @@ "description": "Similar to `DICTIMAX`, but returns the only reference in the value.", "gas": "", "fift": "DICTIMAXREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F48D", - "tlb": "#F48D", - "prefix": "F48D", - "operands": [] + "fift_examples": [], + "opcode": "F48D", + "stack": "D n - c i -1 or 0" }, + "bytecode": { "tlb": "#F48D", "prefix": "F48D", "operands": [] }, "value_flow": { - "doc_stack": "D n - c i -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -30060,16 +28004,12 @@ "description": "Similar to `DICTMAX`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", "gas": "", "fift": "DICTUMAX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F48E", - "tlb": "#F48E", - "prefix": "F48E", - "operands": [] + "fift_examples": [], + "opcode": "F48E", + "stack": "D n - x i -1 or 0" }, + "bytecode": { "tlb": "#F48E", "prefix": "F48E", "operands": [] }, "value_flow": { - "doc_stack": "D n - x i -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -30112,16 +28052,12 @@ "description": "Similar to `DICTUMAX`, but returns the only reference in the value.", "gas": "", "fift": "DICTUMAXREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F48F", - "tlb": "#F48F", - "prefix": "F48F", - "operands": [] + "fift_examples": [], + "opcode": "F48F", + "stack": "D n - c i -1 or 0" }, + "bytecode": { "tlb": "#F48F", "prefix": "F48F", "operands": [] }, "value_flow": { - "doc_stack": "D n - c i -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -30164,16 +28100,12 @@ "description": "Computes the minimal key `k` (represented by a _Slice_ with `n` data bits) in dictionary `D`, removes `k` from the dictionary, and returns `k` along with the associated value `x` and the modified dictionary `D'`.", "gas": "", "fift": "DICTREMMIN", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F492", - "tlb": "#F492", - "prefix": "F492", - "operands": [] + "fift_examples": [], + "opcode": "F492", + "stack": "D n - D' x k -1 or D 0" }, + "bytecode": { "tlb": "#F492", "prefix": "F492", "operands": [] }, "value_flow": { - "doc_stack": "D n - D' x k -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -30226,16 +28158,12 @@ "description": "Similar to `DICTREMMIN`, but returns the only reference in the value as a _Cell_ `c`.", "gas": "", "fift": "DICTREMMINREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F493", - "tlb": "#F493", - "prefix": "F493", - "operands": [] + "fift_examples": [], + "opcode": "F493", + "stack": "D n - D' c k -1 or D 0" }, + "bytecode": { "tlb": "#F493", "prefix": "F493", "operands": [] }, "value_flow": { - "doc_stack": "D n - D' c k -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -30288,16 +28216,12 @@ "description": "Similar to `DICTREMMIN`, but computes the minimal key `i` under the assumption that all keys are big-endian signed `n`-bit integers. Notice that the key and value returned may differ from those computed by `DICTREMMIN` and `DICTUREMMIN`.", "gas": "", "fift": "DICTIREMMIN", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F494", - "tlb": "#F494", - "prefix": "F494", - "operands": [] + "fift_examples": [], + "opcode": "F494", + "stack": "D n - D' x i -1 or D 0" }, + "bytecode": { "tlb": "#F494", "prefix": "F494", "operands": [] }, "value_flow": { - "doc_stack": "D n - D' x i -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -30354,16 +28278,12 @@ "description": "Similar to `DICTIREMMIN`, but returns the only reference in the value.", "gas": "", "fift": "DICTIREMMINREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F495", - "tlb": "#F495", - "prefix": "F495", - "operands": [] + "fift_examples": [], + "opcode": "F495", + "stack": "D n - D' c i -1 or D 0" }, + "bytecode": { "tlb": "#F495", "prefix": "F495", "operands": [] }, "value_flow": { - "doc_stack": "D n - D' c i -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -30420,16 +28340,12 @@ "description": "Similar to `DICTREMMIN`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", "gas": "", "fift": "DICTUREMMIN", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F496", - "tlb": "#F496", - "prefix": "F496", - "operands": [] + "fift_examples": [], + "opcode": "F496", + "stack": "D n - D' x i -1 or D 0" }, + "bytecode": { "tlb": "#F496", "prefix": "F496", "operands": [] }, "value_flow": { - "doc_stack": "D n - D' x i -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -30486,16 +28402,12 @@ "description": "Similar to `DICTUREMMIN`, but returns the only reference in the value.", "gas": "", "fift": "DICTUREMMINREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F497", - "tlb": "#F497", - "prefix": "F497", - "operands": [] + "fift_examples": [], + "opcode": "F497", + "stack": "D n - D' c i -1 or D 0" }, + "bytecode": { "tlb": "#F497", "prefix": "F497", "operands": [] }, "value_flow": { - "doc_stack": "D n - D' c i -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -30552,16 +28464,12 @@ "description": "Computes the maximal key `k` (represented by a _Slice_ with `n` data bits) in dictionary `D`, removes `k` from the dictionary, and returns `k` along with the associated value `x` and the modified dictionary `D'`.", "gas": "", "fift": "DICTREMMAX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F49A", - "tlb": "#F49A", - "prefix": "F49A", - "operands": [] + "fift_examples": [], + "opcode": "F49A", + "stack": "D n - D' x k -1 or D 0" }, + "bytecode": { "tlb": "#F49A", "prefix": "F49A", "operands": [] }, "value_flow": { - "doc_stack": "D n - D' x k -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -30614,16 +28522,12 @@ "description": "Similar to `DICTREMMAX`, but returns the only reference in the value as a _Cell_ `c`.", "gas": "", "fift": "DICTREMMAXREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F49B", - "tlb": "#F49B", - "prefix": "F49B", - "operands": [] + "fift_examples": [], + "opcode": "F49B", + "stack": "D n - D' c k -1 or D 0" }, + "bytecode": { "tlb": "#F49B", "prefix": "F49B", "operands": [] }, "value_flow": { - "doc_stack": "D n - D' c k -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -30676,16 +28580,12 @@ "description": "Similar to `DICTREMMAX`, but computes the minimal key `i` under the assumption that all keys are big-endian signed `n`-bit integers. Notice that the key and value returned may differ from those computed by `DICTREMMAX` and `DICTUREMMAX`.", "gas": "", "fift": "DICTIREMMAX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F49C", - "tlb": "#F49C", - "prefix": "F49C", - "operands": [] + "fift_examples": [], + "opcode": "F49C", + "stack": "D n - D' x i -1 or D 0" }, + "bytecode": { "tlb": "#F49C", "prefix": "F49C", "operands": [] }, "value_flow": { - "doc_stack": "D n - D' x i -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -30742,16 +28642,12 @@ "description": "Similar to `DICTIREMMAX`, but returns the only reference in the value.", "gas": "", "fift": "DICTIREMMAXREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F49D", - "tlb": "#F49D", - "prefix": "F49D", - "operands": [] + "fift_examples": [], + "opcode": "F49D", + "stack": "D n - D' c i -1 or D 0" }, + "bytecode": { "tlb": "#F49D", "prefix": "F49D", "operands": [] }, "value_flow": { - "doc_stack": "D n - D' c i -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -30808,16 +28704,12 @@ "description": "Similar to `DICTREMMAX`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", "gas": "", "fift": "DICTUREMMAX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F49E", - "tlb": "#F49E", - "prefix": "F49E", - "operands": [] + "fift_examples": [], + "opcode": "F49E", + "stack": "D n - D' x i -1 or D 0" }, + "bytecode": { "tlb": "#F49E", "prefix": "F49E", "operands": [] }, "value_flow": { - "doc_stack": "D n - D' x i -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -30874,16 +28766,12 @@ "description": "Similar to `DICTUREMMAX`, but returns the only reference in the value.", "gas": "", "fift": "DICTUREMMAXREF", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F49F", - "tlb": "#F49F", - "prefix": "F49F", - "operands": [] + "fift_examples": [], + "opcode": "F49F", + "stack": "D n - D' c i -1 or D 0" }, + "bytecode": { "tlb": "#F49F", "prefix": "F49F", "operands": [] }, "value_flow": { - "doc_stack": "D n - D' c i -1 or D 0", "inputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, @@ -30940,16 +28828,12 @@ "description": "Similar to `DICTIGET`, but with `x` `BLESS`ed into a continuation with a subsequent `JMPX` to it on success. On failure, does nothing. This is useful for implementing `switch`/`case` constructions.", "gas": "", "fift": "DICTIGETJMP", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4A0", - "tlb": "#F4A0", - "prefix": "F4A0", - "operands": [] + "fift_examples": [], + "opcode": "F4A0", + "stack": "i D n - " }, + "bytecode": { "tlb": "#F4A0", "prefix": "F4A0", "operands": [] }, "value_flow": { - "doc_stack": "i D n - ", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -30973,16 +28857,12 @@ "description": "Similar to `DICTIGETJMP`, but performs `DICTUGET` instead of `DICTIGET`.", "gas": "", "fift": "DICTUGETJMP", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4A1", - "tlb": "#F4A1", - "prefix": "F4A1", - "operands": [] + "fift_examples": [], + "opcode": "F4A1", + "stack": "i D n - " }, + "bytecode": { "tlb": "#F4A1", "prefix": "F4A1", "operands": [] }, "value_flow": { - "doc_stack": "i D n - ", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -31006,16 +28886,12 @@ "description": "Similar to `DICTIGETJMP`, but with `EXECUTE` instead of `JMPX`.", "gas": "", "fift": "DICTIGETEXEC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4A2", - "tlb": "#F4A2", - "prefix": "F4A2", - "operands": [] + "fift_examples": [], + "opcode": "F4A2", + "stack": "i D n - " }, + "bytecode": { "tlb": "#F4A2", "prefix": "F4A2", "operands": [] }, "value_flow": { - "doc_stack": "i D n - ", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -31050,16 +28926,12 @@ "description": "Similar to `DICTUGETJMP`, but with `EXECUTE` instead of `JMPX`.", "gas": "", "fift": "DICTUGETEXEC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4A3", - "tlb": "#F4A3", - "prefix": "F4A3", - "operands": [] + "fift_examples": [], + "opcode": "F4A3", + "stack": "i D n - " }, + "bytecode": { "tlb": "#F4A3", "prefix": "F4A3", "operands": [] }, "value_flow": { - "doc_stack": "i D n - ", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] }, @@ -31094,10 +28966,11 @@ "description": "Pushes a non-empty constant dictionary `D` (as a `Cell^?`) along with its key length `0 <= n <= 1023`, stored as a part of the instruction. The dictionary itself is created from the first of remaining references of the current continuation. In this way, the complete `DICTPUSHCONST` instruction can be obtained by first serializing `xF4A4_`, then the non-empty dictionary itself (one `1` bit and a cell reference), and then the unsigned 10-bit integer `n` (as if by a `STU 10` instruction). An empty dictionary can be pushed by a `NEWDICT` primitive instead.", "gas": "34", "fift": "[ref] [n] DICTPUSHCONST", - "fift_examples": [] + "fift_examples": [], + "opcode": "F4A6_n", + "stack": " - D n" }, "bytecode": { - "doc_opcode": "F4A6_n", "tlb": "#F4A6_ d:^Cell n:uint10", "prefix": "F4A6_", "operands": [ @@ -31117,7 +28990,6 @@ ] }, "value_flow": { - "doc_stack": " - D n", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -31137,16 +29009,12 @@ "description": "Looks up the unique prefix of _Slice_ `s` present in the prefix code dictionary represented by `Cell^?` `D` and `0 <= n <= 1023`. If found, the prefix of `s` is returned as `s'`, and the corresponding value (also a _Slice_) as `x`. The remainder of `s` is returned as a _Slice_ `s''`. If no prefix of `s` is a key in prefix code dictionary `D`, returns the unchanged `s` and a zero flag to indicate failure.", "gas": "", "fift": "PFXDICTGETQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4A8", - "tlb": "#F4A8", - "prefix": "F4A8", - "operands": [] + "fift_examples": [], + "opcode": "F4A8", + "stack": "s D n - s' x s'' -1 or s 0" }, + "bytecode": { "tlb": "#F4A8", "prefix": "F4A8", "operands": [] }, "value_flow": { - "doc_stack": "s D n - s' x s'' -1 or s 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -31196,16 +29064,12 @@ "description": "Similar to `PFXDICTGET`, but throws a cell deserialization failure exception on failure.", "gas": "", "fift": "PFXDICTGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4A9", - "tlb": "#F4A9", - "prefix": "F4A9", - "operands": [] + "fift_examples": [], + "opcode": "F4A9", + "stack": "s D n - s' x s''" }, + "bytecode": { "tlb": "#F4A9", "prefix": "F4A9", "operands": [] }, "value_flow": { - "doc_stack": "s D n - s' x s''", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -31233,16 +29097,12 @@ "description": "Similar to `PFXDICTGETQ`, but on success `BLESS`es the value `x` into a _Continuation_ and transfers control to it as if by a `JMPX`. On failure, returns `s` unchanged and continues execution.", "gas": "", "fift": "PFXDICTGETJMP", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4AA", - "tlb": "#F4AA", - "prefix": "F4AA", - "operands": [] + "fift_examples": [], + "opcode": "F4AA", + "stack": "s D n - s' s'' or s" }, + "bytecode": { "tlb": "#F4AA", "prefix": "F4AA", "operands": [] }, "value_flow": { - "doc_stack": "s D n - s' s'' or s", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -31259,16 +29119,12 @@ "description": "Similar to `PFXDICTGETJMP`, but `EXEC`utes the continuation found instead of jumping to it. On failure, throws a cell deserialization exception.", "gas": "", "fift": "PFXDICTGETEXEC", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4AB", - "tlb": "#F4AB", - "prefix": "F4AB", - "operands": [] + "fift_examples": [], + "opcode": "F4AB", + "stack": "s D n - s' s''" }, + "bytecode": { "tlb": "#F4AB", "prefix": "F4AB", "operands": [] }, "value_flow": { - "doc_stack": "s D n - s' s''", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -31309,10 +29165,11 @@ "description": "Combines `[n] DICTPUSHCONST` for `0 <= n <= 1023` with `PFXDICTGETJMP`.", "gas": "", "fift": "[ref] [n] PFXDICTCONSTGETJMP\n[ref] [n] PFXDICTSWITCH", - "fift_examples": [] + "fift_examples": [], + "opcode": "F4AE_n", + "stack": "s - s' s'' or s" }, "bytecode": { - "doc_opcode": "F4AE_n", "tlb": "#F4AE_ d:^Cell n:uint10", "prefix": "F4AE_", "operands": [ @@ -31332,7 +29189,6 @@ ] }, "value_flow": { - "doc_stack": "s - s' s'' or s", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -31349,16 +29205,12 @@ "description": "A variant of `DICTIGETJMP` that returns index `i` on failure.", "gas": "", "fift": "DICTIGETJMPZ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4BC", - "tlb": "#F4BC", - "prefix": "F4BC", - "operands": [] + "fift_examples": [], + "opcode": "F4BC", + "stack": "i D n - i or nothing" }, + "bytecode": { "tlb": "#F4BC", "prefix": "F4BC", "operands": [] }, "value_flow": { - "doc_stack": "i D n - i or nothing", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -31375,16 +29227,12 @@ "description": "A variant of `DICTUGETJMP` that returns index `i` on failure.", "gas": "", "fift": "DICTUGETJMPZ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4BD", - "tlb": "#F4BD", - "prefix": "F4BD", - "operands": [] + "fift_examples": [], + "opcode": "F4BD", + "stack": "i D n - i or nothing" }, + "bytecode": { "tlb": "#F4BD", "prefix": "F4BD", "operands": [] }, "value_flow": { - "doc_stack": "i D n - i or nothing", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -31401,16 +29249,12 @@ "description": "A variant of `DICTIGETEXEC` that returns index `i` on failure.", "gas": "", "fift": "DICTIGETEXECZ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4BE", - "tlb": "#F4BE", - "prefix": "F4BE", - "operands": [] + "fift_examples": [], + "opcode": "F4BE", + "stack": "i D n - i or nothing" }, + "bytecode": { "tlb": "#F4BE", "prefix": "F4BE", "operands": [] }, "value_flow": { - "doc_stack": "i D n - i or nothing", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -31438,16 +29282,12 @@ "description": "A variant of `DICTUGETEXEC` that returns index `i` on failure.", "gas": "", "fift": "DICTUGETEXECZ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4BF", - "tlb": "#F4BF", - "prefix": "F4BF", - "operands": [] + "fift_examples": [], + "opcode": "F4BF", + "stack": "i D n - i or nothing" }, + "bytecode": { "tlb": "#F4BF", "prefix": "F4BF", "operands": [] }, "value_flow": { - "doc_stack": "i D n - i or nothing", "inputs": { "registers": [] }, "outputs": { "registers": [] } }, @@ -31475,16 +29315,12 @@ "description": "Constructs a subdictionary consisting of all keys beginning with prefix `k` (represented by a _Slice_, the first `0 <= l <= n <= 1023` data bits of which are used as a key) of length `l` in dictionary `D` of type `HashmapE(n,X)` with `n`-bit keys. On success, returns the new subdictionary of the same type `HashmapE(n,X)` as a _Slice_ `D'`.", "gas": "", "fift": "SUBDICTGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4B1", - "tlb": "#F4B1", - "prefix": "F4B1", - "operands": [] + "fift_examples": [], + "opcode": "F4B1", + "stack": "k l D n - D'" }, + "bytecode": { "tlb": "#F4B1", "prefix": "F4B1", "operands": [] }, "value_flow": { - "doc_stack": "k l D n - D'", "inputs": { "stack": [ { "type": "simple", "name": "k", "value_types": ["Slice"] }, @@ -31511,16 +29347,12 @@ "description": "Variant of `SUBDICTGET` with the prefix represented by a signed big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 257`.", "gas": "", "fift": "SUBDICTIGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4B2", - "tlb": "#F4B2", - "prefix": "F4B2", - "operands": [] + "fift_examples": [], + "opcode": "F4B2", + "stack": "x l D n - D'" }, + "bytecode": { "tlb": "#F4B2", "prefix": "F4B2", "operands": [] }, "value_flow": { - "doc_stack": "x l D n - D'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -31547,16 +29379,12 @@ "description": "Variant of `SUBDICTGET` with the prefix represented by an unsigned big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 256`.", "gas": "", "fift": "SUBDICTUGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4B3", - "tlb": "#F4B3", - "prefix": "F4B3", - "operands": [] + "fift_examples": [], + "opcode": "F4B3", + "stack": "x l D n - D'" }, + "bytecode": { "tlb": "#F4B3", "prefix": "F4B3", "operands": [] }, "value_flow": { - "doc_stack": "x l D n - D'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -31583,16 +29411,12 @@ "description": "Similar to `SUBDICTGET`, but removes the common prefix `k` from all keys of the new dictionary `D'`, which becomes of type `HashmapE(n-l,X)`.", "gas": "", "fift": "SUBDICTRPGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4B5", - "tlb": "#F4B5", - "prefix": "F4B5", - "operands": [] + "fift_examples": [], + "opcode": "F4B5", + "stack": "k l D n - D'" }, + "bytecode": { "tlb": "#F4B5", "prefix": "F4B5", "operands": [] }, "value_flow": { - "doc_stack": "k l D n - D'", "inputs": { "stack": [ { "type": "simple", "name": "k", "value_types": ["Slice"] }, @@ -31619,16 +29443,12 @@ "description": "Variant of `SUBDICTRPGET` with the prefix represented by a signed big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 257`.", "gas": "", "fift": "SUBDICTIRPGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4B6", - "tlb": "#F4B6", - "prefix": "F4B6", - "operands": [] + "fift_examples": [], + "opcode": "F4B6", + "stack": "x l D n - D'" }, + "bytecode": { "tlb": "#F4B6", "prefix": "F4B6", "operands": [] }, "value_flow": { - "doc_stack": "x l D n - D'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -31655,16 +29475,12 @@ "description": "Variant of `SUBDICTRPGET` with the prefix represented by an unsigned big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 256`.", "gas": "", "fift": "SUBDICTURPGET", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F4B7", - "tlb": "#F4B7", - "prefix": "F4B7", - "operands": [] + "fift_examples": [], + "opcode": "F4B7", + "stack": "x l D n - D'" }, + "bytecode": { "tlb": "#F4B7", "prefix": "F4B7", "operands": [] }, "value_flow": { - "doc_stack": "x l D n - D'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -31691,16 +29507,12 @@ "description": "Sets current gas limit `g_l` to its maximal allowed value `g_m`, and resets the gas credit `g_c` to zero, decreasing the value of `g_r` by `g_c` in the process.\nIn other words, the current smart contract agrees to buy some gas to finish the current transaction. This action is required to process external messages, which bring no value (hence no gas) with themselves.", "gas": "26", "fift": "ACCEPT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F800", - "tlb": "#F800", - "prefix": "F800", - "operands": [] + "fift_examples": [], + "opcode": "F800", + "stack": "-" }, + "bytecode": { "tlb": "#F800", "prefix": "F800", "operands": [] }, "value_flow": { - "doc_stack": "-", "inputs": { "stack": [], "registers": [{ "type": "special", "name": "gas" }] @@ -31720,16 +29532,12 @@ "description": "Sets current gas limit `g_l` to the minimum of `g` and `g_m`, and resets the gas credit `g_c` to zero. If the gas consumed so far (including the present instruction) exceeds the resulting value of `g_l`, an (unhandled) out of gas exception is thrown before setting new gas limits. Notice that `SETGASLIMIT` with an argument `g >= 2^63-1` is equivalent to `ACCEPT`.", "gas": "26", "fift": "SETGASLIMIT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F801", - "tlb": "#F801", - "prefix": "F801", - "operands": [] + "fift_examples": [], + "opcode": "F801", + "stack": "g - " }, + "bytecode": { "tlb": "#F801", "prefix": "F801", "operands": [] }, "value_flow": { - "doc_stack": "g - ", "inputs": { "stack": [ { "type": "simple", "name": "g", "value_types": ["Integer"] } @@ -31751,16 +29559,12 @@ "description": "Returns gas consumed by VM so far (including this instruction).", "gas": "26", "fift": "GASCONSUMED", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F807", - "tlb": "#F807", - "prefix": "F807", - "operands": [] + "fift_examples": [], + "opcode": "F807", + "stack": "- g_c" }, + "bytecode": { "tlb": "#F807", "prefix": "F807", "operands": [] }, "value_flow": { - "doc_stack": "- g_c", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -31779,16 +29583,12 @@ "description": "Commits the current state of registers `c4` (''persistent data'') and `c5` (''actions'') so that the current execution is considered ''successful'' with the saved values even if an exception is thrown later.", "gas": "26", "fift": "COMMIT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F80F", - "tlb": "#F80F", - "prefix": "F80F", - "operands": [] + "fift_examples": [], + "opcode": "F80F", + "stack": "-" }, + "bytecode": { "tlb": "#F80F", "prefix": "F80F", "operands": [] }, "value_flow": { - "doc_stack": "-", "inputs": { "stack": [], "registers": [ @@ -31811,16 +29611,12 @@ "description": "Generates a new pseudo-random unsigned 256-bit _Integer_ `x`. The algorithm is as follows: if `r` is the old value of the random seed, considered as a 32-byte array (by constructing the big-endian representation of an unsigned 256-bit integer), then its `sha512(r)` is computed; the first 32 bytes of this hash are stored as the new value `r'` of the random seed, and the remaining 32 bytes are returned as the next random value `x`.", "gas": "26+|c7|+|c1_1|", "fift": "RANDU256", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F810", - "tlb": "#F810", - "prefix": "F810", - "operands": [] + "fift_examples": [], + "opcode": "F810", + "stack": "- x" }, + "bytecode": { "tlb": "#F810", "prefix": "F810", "operands": [] }, "value_flow": { - "doc_stack": "- x", "inputs": { "stack": [], "registers": [{ "type": "constant", "index": 7 }] @@ -31842,16 +29638,12 @@ "description": "Generates a new pseudo-random integer `z` in the range `0...y-1` (or `y...-1`, if `y<0`). More precisely, an unsigned random value `x` is generated as in `RAND256U`; then `z:=floor(x*y/2^256)` is computed.\nEquivalent to `RANDU256` `256 MULRSHIFT`.", "gas": "26+|c7|+|c1_1|", "fift": "RAND", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F811", - "tlb": "#F811", - "prefix": "F811", - "operands": [] + "fift_examples": [], + "opcode": "F811", + "stack": "y - z" }, + "bytecode": { "tlb": "#F811", "prefix": "F811", "operands": [] }, "value_flow": { - "doc_stack": "y - z", "inputs": { "stack": [ { "type": "simple", "name": "y", "value_types": ["Integer"] } @@ -31875,16 +29667,12 @@ "description": "Sets the random seed to unsigned 256-bit _Integer_ `x`.", "gas": "26+|c7|+|c1_1|", "fift": "SETRAND", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F814", - "tlb": "#F814", - "prefix": "F814", - "operands": [] + "fift_examples": [], + "opcode": "F814", + "stack": "x - " }, + "bytecode": { "tlb": "#F814", "prefix": "F814", "operands": [] }, "value_flow": { - "doc_stack": "x - ", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -31906,16 +29694,12 @@ "description": "Mixes unsigned 256-bit _Integer_ `x` into the random seed `r` by setting the random seed to `Sha` of the concatenation of two 32-byte strings: the first with the big-endian representation of the old seed `r`, and the second with the big-endian representation of `x`.", "gas": "26", "fift": "ADDRAND\nRANDOMIZE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F815", - "tlb": "#F815", - "prefix": "F815", - "operands": [] + "fift_examples": [], + "opcode": "F815", + "stack": "x - " }, + "bytecode": { "tlb": "#F815", "prefix": "F815", "operands": [] }, "value_flow": { - "doc_stack": "x - ", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -31937,10 +29721,11 @@ "description": "Returns the `i`-th parameter from the _Tuple_ provided at `c7` for `0 <= i <= 15`. Equivalent to `c7 PUSHCTR` `FIRST` `[i] INDEX`.\nIf one of these internal operations fails, throws an appropriate type checking or range checking exception.", "gas": "26", "fift": "[i] GETPARAM", - "fift_examples": [] + "fift_examples": [], + "opcode": "F82i", + "stack": " - x" }, "bytecode": { - "doc_opcode": "F82i", "tlb": "#F82 i:uint4", "prefix": "F82", "operands": [ @@ -31955,7 +29740,6 @@ ] }, "value_flow": { - "doc_stack": " - x", "inputs": { "stack": [], "registers": [{ "type": "constant", "index": 7 }] @@ -31977,16 +29761,12 @@ "description": "Returns the global configuration dictionary along with its key length (32).\nEquivalent to `CONFIGROOT` `32 PUSHINT`.", "gas": "26", "fift": "CONFIGDICT", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F830", - "tlb": "#F830", - "prefix": "F830", - "operands": [] + "fift_examples": [], + "opcode": "F830", + "stack": " - D 32" }, + "bytecode": { "tlb": "#F830", "prefix": "F830", "operands": [] }, "value_flow": { - "doc_stack": " - D 32", "inputs": { "stack": [], "registers": [{ "type": "constant", "index": 7 }] @@ -32009,16 +29789,12 @@ "description": "Returns the value of the global configuration parameter with integer index `i` as a _Cell_ `c`, and a flag to indicate success.\nEquivalent to `CONFIGDICT` `DICTIGETREF`.", "gas": "", "fift": "CONFIGPARAM", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F832", - "tlb": "#F832", - "prefix": "F832", - "operands": [] + "fift_examples": [], + "opcode": "F832", + "stack": "i - c -1 or 0" }, + "bytecode": { "tlb": "#F832", "prefix": "F832", "operands": [] }, "value_flow": { - "doc_stack": "i - c -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] } @@ -32055,16 +29831,12 @@ "description": "Returns the value of the global configuration parameter with integer index `i` as a _Maybe Cell_ `c^?`.\nEquivalent to `CONFIGDICT` `DICTIGETOPTREF`.", "gas": "", "fift": "CONFIGOPTPARAM", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F833", - "tlb": "#F833", - "prefix": "F833", - "operands": [] + "fift_examples": [], + "opcode": "F833", + "stack": "i - c^?" }, + "bytecode": { "tlb": "#F833", "prefix": "F833", "operands": [] }, "value_flow": { - "doc_stack": "i - c^?", "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] } @@ -32088,16 +29860,12 @@ "description": "Retrives `last_mc_blocks` part of PrevBlocksInfo from c7 (parameter 13).", "gas": "", "fift": "PREVMCBLOCKS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F83400", - "tlb": "#F83400", - "prefix": "F83400", - "operands": [] + "fift_examples": [], + "opcode": "F83400", + "stack": "- t" }, + "bytecode": { "tlb": "#F83400", "prefix": "F83400", "operands": [] }, "value_flow": { - "doc_stack": "- t", "inputs": { "stack": [], "registers": [{ "type": "constant", "index": 7 }] @@ -32119,16 +29887,12 @@ "description": "Retrives `prev_key_block` part of PrevBlocksInfo from c7 (parameter 13).", "gas": "", "fift": "PREVKEYBLOCK", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F83401", - "tlb": "#F83401", - "prefix": "F83401", - "operands": [] + "fift_examples": [], + "opcode": "F83401", + "stack": "- t" }, + "bytecode": { "tlb": "#F83401", "prefix": "F83401", "operands": [] }, "value_flow": { - "doc_stack": "- t", "inputs": { "stack": [], "registers": [{ "type": "constant", "index": 7 }] @@ -32150,16 +29914,12 @@ "description": "Retrieves `global_id` from 19 network config.", "gas": "", "fift": "GLOBALID", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F835", - "tlb": "#F835", - "prefix": "F835", - "operands": [] + "fift_examples": [], + "opcode": "F835", + "stack": "- i" }, + "bytecode": { "tlb": "#F835", "prefix": "F835", "operands": [] }, "value_flow": { - "doc_stack": "- i", "inputs": { "stack": [], "registers": [{ "type": "constant", "index": 7 }] @@ -32181,16 +29941,12 @@ "description": "Returns the `k`-th global variable for `0 <= k < 255`.\nEquivalent to `c7 PUSHCTR` `SWAP` `INDEXVARQ`.", "gas": "26", "fift": "GETGLOBVAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F840", - "tlb": "#F840", - "prefix": "F840", - "operands": [] + "fift_examples": [], + "opcode": "F840", + "stack": "k - x" }, + "bytecode": { "tlb": "#F840", "prefix": "F840", "operands": [] }, "value_flow": { - "doc_stack": "k - x", "inputs": { "stack": [ { "type": "simple", "name": "k", "value_types": ["Integer"] } @@ -32212,10 +29968,11 @@ "description": "Returns the `k`-th global variable for `1 <= k <= 31`.\nEquivalent to `c7 PUSHCTR` `[k] INDEXQ`.", "gas": "26", "fift": "[k] GETGLOB", - "fift_examples": [] + "fift_examples": [], + "opcode": "F85_k", + "stack": " - x" }, "bytecode": { - "doc_opcode": "F85_k", "tlb": "#F85_ k:(## 5) {1 <= k}", "prefix": "F85_", "operands_range_check": { "length": 5, "from": 1, "to": 31 }, @@ -32231,7 +29988,6 @@ ] }, "value_flow": { - "doc_stack": " - x", "inputs": { "stack": [], "registers": [{ "type": "constant", "index": 7 }] @@ -32251,16 +30007,12 @@ "description": "Assigns `x` to the `k`-th global variable for `0 <= k < 255`.\nEquivalent to `c7 PUSHCTR` `ROTREV` `SETINDEXVARQ` `c7 POPCTR`.", "gas": "26+|c7'|", "fift": "SETGLOBVAR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F860", - "tlb": "#F860", - "prefix": "F860", - "operands": [] + "fift_examples": [], + "opcode": "F860", + "stack": "x k - " }, + "bytecode": { "tlb": "#F860", "prefix": "F860", "operands": [] }, "value_flow": { - "doc_stack": "x k - ", "inputs": { "stack": [ { "type": "simple", "name": "x" }, @@ -32283,10 +30035,11 @@ "description": "Assigns `x` to the `k`-th global variable for `1 <= k <= 31`.\nEquivalent to `c7 PUSHCTR` `SWAP` `k SETINDEXQ` `c7 POPCTR`.", "gas": "26+|c7'|", "fift": "[k] SETGLOB", - "fift_examples": [] + "fift_examples": [], + "opcode": "F87_k", + "stack": "x - " }, "bytecode": { - "doc_opcode": "F87_k", "tlb": "#F87_ k:(## 5) {1 <= k}", "prefix": "F87_", "operands_range_check": { "length": 5, "from": 1, "to": 31 }, @@ -32302,7 +30055,6 @@ ] }, "value_flow": { - "doc_stack": "x - ", "inputs": { "stack": [{ "type": "simple", "name": "x" }], "registers": [{ "type": "constant", "index": 7 }] @@ -32322,16 +30074,12 @@ "description": "Computes the representation hash of a _Cell_ `c` and returns it as a 256-bit unsigned integer `x`. Useful for signing and checking signatures of arbitrary entities represented by a tree of cells.", "gas": "26", "fift": "HASHCU", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F900", - "tlb": "#F900", - "prefix": "F900", - "operands": [] + "fift_examples": [], + "opcode": "F900", + "stack": "c - x" }, + "bytecode": { "tlb": "#F900", "prefix": "F900", "operands": [] }, "value_flow": { - "doc_stack": "c - x", "inputs": { "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], "registers": [] @@ -32353,16 +30101,12 @@ "description": "Computes the hash of a _Slice_ `s` and returns it as a 256-bit unsigned integer `x`. The result is the same as if an ordinary cell containing only data and references from `s` had been created and its hash computed by `HASHCU`.", "gas": "526", "fift": "HASHSU", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F901", - "tlb": "#F901", - "prefix": "F901", - "operands": [] + "fift_examples": [], + "opcode": "F901", + "stack": "s - x" }, + "bytecode": { "tlb": "#F901", "prefix": "F901", "operands": [] }, "value_flow": { - "doc_stack": "s - x", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -32386,16 +30130,12 @@ "description": "Computes `Sha` of the data bits of _Slice_ `s`. If the bit length of `s` is not divisible by eight, throws a cell underflow exception. The hash value is returned as a 256-bit unsigned integer `x`.", "gas": "26", "fift": "SHA256U", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F902", - "tlb": "#F902", - "prefix": "F902", - "operands": [] + "fift_examples": [], + "opcode": "F902", + "stack": "s - x" }, + "bytecode": { "tlb": "#F902", "prefix": "F902", "operands": [] }, "value_flow": { - "doc_stack": "s - x", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -32419,16 +30159,12 @@ "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", "gas": "1/33 gas per byte", "fift": "HASHEXT_SHA256", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90400", - "tlb": "#F90400", - "prefix": "F90400", - "operands": [] + "fift_examples": [], + "opcode": "F90400", + "stack": "s_1 ... s_n n - h" }, + "bytecode": { "tlb": "#F90400", "prefix": "F90400", "operands": [] }, "value_flow": { - "doc_stack": "s_1 ... s_n n - h", "inputs": { "stack": [ { @@ -32464,16 +30200,12 @@ "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", "gas": "1/16 gas per byte", "fift": "HASHEXT_SHA512", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90401", - "tlb": "#F90401", - "prefix": "F90401", - "operands": [] + "fift_examples": [], + "opcode": "F90401", + "stack": "s_1 ... s_n n - h1 h2" }, + "bytecode": { "tlb": "#F90401", "prefix": "F90401", "operands": [] }, "value_flow": { - "doc_stack": "s_1 ... s_n n - h1 h2", "inputs": { "stack": [ { @@ -32510,16 +30242,12 @@ "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", "gas": "1/19 gas per byte", "fift": "HASHEXT_BLAKE2B", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90402", - "tlb": "#F90402", - "prefix": "F90402", - "operands": [] + "fift_examples": [], + "opcode": "F90402", + "stack": "s_1 ... s_n n - h1 h2" }, + "bytecode": { "tlb": "#F90402", "prefix": "F90402", "operands": [] }, "value_flow": { - "doc_stack": "s_1 ... s_n n - h1 h2", "inputs": { "stack": [ { @@ -32556,16 +30284,12 @@ "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", "gas": "1/11 gas per byte", "fift": "HASHEXT_KECCAK256", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90403", - "tlb": "#F90403", - "prefix": "F90403", - "operands": [] + "fift_examples": [], + "opcode": "F90403", + "stack": "s_1 ... s_n n - h" }, + "bytecode": { "tlb": "#F90403", "prefix": "F90403", "operands": [] }, "value_flow": { - "doc_stack": "s_1 ... s_n n - h", "inputs": { "stack": [ { @@ -32601,16 +30325,12 @@ "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", "gas": "1/19 gas per byte", "fift": "HASHEXT_KECCAK512", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90404", - "tlb": "#F90404", - "prefix": "F90404", - "operands": [] + "fift_examples": [], + "opcode": "F90404", + "stack": "s_1 ... s_n n - h1 h2" }, + "bytecode": { "tlb": "#F90404", "prefix": "F90404", "operands": [] }, "value_flow": { - "doc_stack": "s_1 ... s_n n - h1 h2", "inputs": { "stack": [ { @@ -32647,16 +30367,12 @@ "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", "gas": "1/33 gas per byte", "fift": "HASHEXTR_SHA256", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90500", - "tlb": "#F90500", - "prefix": "F90500", - "operands": [] + "fift_examples": [], + "opcode": "F90500", + "stack": "s_n ... s_1 n - h" }, + "bytecode": { "tlb": "#F90500", "prefix": "F90500", "operands": [] }, "value_flow": { - "doc_stack": "s_n ... s_1 n - h", "inputs": { "stack": [ { @@ -32692,16 +30408,12 @@ "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", "gas": "1/16 gas per byte", "fift": "HASHEXTR_SHA512", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90501", - "tlb": "#F90501", - "prefix": "F90501", - "operands": [] + "fift_examples": [], + "opcode": "F90501", + "stack": "s_n ... s_1 n - h1 h2" }, + "bytecode": { "tlb": "#F90501", "prefix": "F90501", "operands": [] }, "value_flow": { - "doc_stack": "s_n ... s_1 n - h1 h2", "inputs": { "stack": [ { @@ -32738,16 +30450,12 @@ "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", "gas": "1/19 gas per byte", "fift": "HASHEXTR_BLAKE2B", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90502", - "tlb": "#F90502", - "prefix": "F90502", - "operands": [] + "fift_examples": [], + "opcode": "F90502", + "stack": "s_n ... s_1 n - h1 h2" }, + "bytecode": { "tlb": "#F90502", "prefix": "F90502", "operands": [] }, "value_flow": { - "doc_stack": "s_n ... s_1 n - h1 h2", "inputs": { "stack": [ { @@ -32784,16 +30492,12 @@ "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", "gas": "1/11 gas per byte", "fift": "HASHEXTR_KECCAK256", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90503", - "tlb": "#F90503", - "prefix": "F90503", - "operands": [] + "fift_examples": [], + "opcode": "F90503", + "stack": "s_n ... s_1 n - h" }, + "bytecode": { "tlb": "#F90503", "prefix": "F90503", "operands": [] }, "value_flow": { - "doc_stack": "s_n ... s_1 n - h", "inputs": { "stack": [ { @@ -32829,16 +30533,12 @@ "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", "gas": "1/19 gas per byte", "fift": "HASHEXTR_KECCAK512", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90504", - "tlb": "#F90504", - "prefix": "F90504", - "operands": [] + "fift_examples": [], + "opcode": "F90504", + "stack": "s_n ... s_1 n - h1 h2" }, + "bytecode": { "tlb": "#F90504", "prefix": "F90504", "operands": [] }, "value_flow": { - "doc_stack": "s_n ... s_1 n - h1 h2", "inputs": { "stack": [ { @@ -32875,16 +30575,12 @@ "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", "gas": "1/33 gas per byte", "fift": "HASHEXTA_SHA256", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90600", - "tlb": "#F90600", - "prefix": "F90600", - "operands": [] + "fift_examples": [], + "opcode": "F90600", + "stack": "b s_1 ... s_n n - b'" }, + "bytecode": { "tlb": "#F90600", "prefix": "F90600", "operands": [] }, "value_flow": { - "doc_stack": "b s_1 ... s_n n - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -32921,16 +30617,12 @@ "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", "gas": "1/16 gas per byte", "fift": "HASHEXTA_SHA512", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90601", - "tlb": "#F90601", - "prefix": "F90601", - "operands": [] + "fift_examples": [], + "opcode": "F90601", + "stack": "b s_1 ... s_n n - b'" }, + "bytecode": { "tlb": "#F90601", "prefix": "F90601", "operands": [] }, "value_flow": { - "doc_stack": "b s_1 ... s_n n - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -32967,16 +30659,12 @@ "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", "gas": "1/19 gas per byte", "fift": "HASHEXTA_BLAKE2B", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90602", - "tlb": "#F90602", - "prefix": "F90602", - "operands": [] + "fift_examples": [], + "opcode": "F90602", + "stack": "b s_1 ... s_n n - b'" }, + "bytecode": { "tlb": "#F90602", "prefix": "F90602", "operands": [] }, "value_flow": { - "doc_stack": "b s_1 ... s_n n - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -33013,16 +30701,12 @@ "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", "gas": "1/11 gas per byte", "fift": "HASHEXTA_KECCAK256", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90603", - "tlb": "#F90603", - "prefix": "F90603", - "operands": [] + "fift_examples": [], + "opcode": "F90603", + "stack": "b s_1 ... s_n n - b'" }, + "bytecode": { "tlb": "#F90603", "prefix": "F90603", "operands": [] }, "value_flow": { - "doc_stack": "b s_1 ... s_n n - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -33059,16 +30743,12 @@ "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", "gas": "1/6 gas per byte", "fift": "HASHEXTA_KECCAK512", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90604", - "tlb": "#F90604", - "prefix": "F90604", - "operands": [] + "fift_examples": [], + "opcode": "F90604", + "stack": "b s_1 ... s_n n - b'" }, + "bytecode": { "tlb": "#F90604", "prefix": "F90604", "operands": [] }, "value_flow": { - "doc_stack": "b s_1 ... s_n n - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -33105,16 +30785,12 @@ "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", "gas": "1/33 gas per byte", "fift": "HASHEXTAR_SHA256", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90700", - "tlb": "#F90700", - "prefix": "F90700", - "operands": [] + "fift_examples": [], + "opcode": "F90700", + "stack": "b s_1 ... s_n n - b'" }, + "bytecode": { "tlb": "#F90700", "prefix": "F90700", "operands": [] }, "value_flow": { - "doc_stack": "b s_1 ... s_n n - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -33151,16 +30827,12 @@ "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", "gas": "1/16 gas per byte", "fift": "HASHEXTAR_SHA512", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90701", - "tlb": "#F90701", - "prefix": "F90701", - "operands": [] + "fift_examples": [], + "opcode": "F90701", + "stack": "b s_n ... s_1 n - b'" }, + "bytecode": { "tlb": "#F90701", "prefix": "F90701", "operands": [] }, "value_flow": { - "doc_stack": "b s_n ... s_1 n - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -33197,16 +30869,12 @@ "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", "gas": "1/19 gas per byte", "fift": "HASHEXTAR_BLAKE2B", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90702", - "tlb": "#F90702", - "prefix": "F90702", - "operands": [] + "fift_examples": [], + "opcode": "F90702", + "stack": "b s_n ... s_1 n - b'" }, + "bytecode": { "tlb": "#F90702", "prefix": "F90702", "operands": [] }, "value_flow": { - "doc_stack": "b s_n ... s_1 n - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -33243,16 +30911,12 @@ "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", "gas": "1/11 gas per byte", "fift": "HASHEXTAR_KECCAK256", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90703", - "tlb": "#F90703", - "prefix": "F90703", - "operands": [] + "fift_examples": [], + "opcode": "F90703", + "stack": "b s_n ... s_1 n - b'" }, + "bytecode": { "tlb": "#F90703", "prefix": "F90703", "operands": [] }, "value_flow": { - "doc_stack": "b s_n ... s_1 n - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -33289,16 +30953,12 @@ "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", "gas": "1/6 gas per byte", "fift": "HASHEXTAR_KECCAK512", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F90704", - "tlb": "#F90704", - "prefix": "F90704", - "operands": [] + "fift_examples": [], + "opcode": "F90704", + "stack": "b s_n ... s_1 n - b'" }, + "bytecode": { "tlb": "#F90704", "prefix": "F90704", "operands": [] }, "value_flow": { - "doc_stack": "b s_n ... s_1 n - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -33335,16 +30995,12 @@ "description": "Checks the Ed25519-signature `s` of a hash `h` (a 256-bit unsigned integer, usually computed as the hash of some data) using public key `k` (also represented by a 256-bit unsigned integer).\nThe signature `s` must be a _Slice_ containing at least 512 data bits; only the first 512 bits are used. The result is `-1` if the signature is valid, `0` otherwise.\nNotice that `CHKSIGNU` is equivalent to `ROT` `NEWC` `256 STU` `ENDC` `ROTREV` `CHKSIGNS`, i.e., to `CHKSIGNS` with the first argument `d` set to 256-bit _Slice_ containing `h`. Therefore, if `h` is computed as the hash of some data, these data are hashed _twice_, the second hashing occurring inside `CHKSIGNS`.", "gas": "26", "fift": "CHKSIGNU", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F910", - "tlb": "#F910", - "prefix": "F910", - "operands": [] + "fift_examples": [], + "opcode": "F910", + "stack": "h s k - ?" }, + "bytecode": { "tlb": "#F910", "prefix": "F910", "operands": [] }, "value_flow": { - "doc_stack": "h s k - ?", "inputs": { "stack": [ { "type": "simple", "name": "h", "value_types": ["Integer"] }, @@ -33370,16 +31026,12 @@ "description": "Checks whether `s` is a valid Ed25519-signature of the data portion of _Slice_ `d` using public key `k`, similarly to `CHKSIGNU`. If the bit length of _Slice_ `d` is not divisible by eight, throws a cell underflow exception. The verification of Ed25519 signatures is the standard one, with `Sha` used to reduce `d` to the 256-bit number that is actually signed.", "gas": "26", "fift": "CHKSIGNS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F911", - "tlb": "#F911", - "prefix": "F911", - "operands": [] + "fift_examples": [], + "opcode": "F911", + "stack": "d s k - ?" }, + "bytecode": { "tlb": "#F911", "prefix": "F911", "operands": [] }, "value_flow": { - "doc_stack": "d s k - ?", "inputs": { "stack": [ { "type": "simple", "name": "d", "value_types": ["Slice"] }, @@ -33405,16 +31057,12 @@ "description": "Recovers public key from signature, identical to Bitcoin/Ethereum operations. Takes 32-byte hash as uint256 `hash`; 65-byte signature as uint8 `v` and uint256 `r`, `s`. Returns `0` on failure, public key and `-1` on success. 65-byte public key is returned as uint8 `h`, uint256 `x1`, `x2`.", "gas": "1526", "fift": "ECRECOVER", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F912", - "tlb": "#F912", - "prefix": "F912", - "operands": [] + "fift_examples": [], + "opcode": "F912", + "stack": "hash v r s - 0 or h x1 x2 -1" }, + "bytecode": { "tlb": "#F912", "prefix": "F912", "operands": [] }, "value_flow": { - "doc_stack": "hash v r s - 0 or h x1 x2 -1", "inputs": { "stack": [ { "type": "simple", "name": "hash", "value_types": ["Integer"] }, @@ -33468,16 +31116,12 @@ "description": "Checks seck256r1-signature `sig` of a number `h` (a 256-bit unsigned integer, usually computed as the hash of some data) and public key `k`. Returns -1 on success, 0 on failure. Public key is a 33-byte slice (encoded according to Sec. 2.3.4 point 2 of [SECG SEC 1](https://www.secg.org/sec1-v2.pdf)). Signature `sig` is a 64-byte slice (two 256-bit unsigned integers `r` and `s`).", "gas": "3526", "fift": "P256_CHKSIGNU", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F914", - "tlb": "#F914", - "prefix": "F914", - "operands": [] + "fift_examples": [], + "opcode": "F914", + "stack": "h sig k - ?" }, + "bytecode": { "tlb": "#F914", "prefix": "F914", "operands": [] }, "value_flow": { - "doc_stack": "h sig k - ?", "inputs": { "stack": [ { "type": "simple", "name": "d", "value_types": ["Slice"] }, @@ -33503,16 +31147,12 @@ "description": "Checks seck256r1-signature `sig` of data portion of slice `d` and public key `k`. Returns -1 on success, 0 on failure. Public key is a 33-byte slice (encoded according to Sec. 2.3.4 point 2 of [SECG SEC 1](https://www.secg.org/sec1-v2.pdf)). Signature `sig` is a 64-byte slice (two 256-bit unsigned integers `r` and `s`).", "gas": "3526", "fift": "P256_CHKSIGNS", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F915", - "tlb": "#F915", - "prefix": "F915", - "operands": [] + "fift_examples": [], + "opcode": "F915", + "stack": "d sig k - ?" }, + "bytecode": { "tlb": "#F915", "prefix": "F915", "operands": [] }, "value_flow": { - "doc_stack": "d sig k - ?", "inputs": { "stack": [ { "type": "simple", "name": "d", "value_types": ["Slice"] }, @@ -33538,16 +31178,12 @@ "description": "Deterministically generates a valid point `x` from a 512-bit hash (given as two 256-bit integers).", "gas": "626", "fift": "RIST255_FROMHASH", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F920", - "tlb": "#F920", - "prefix": "F920", - "operands": [] + "fift_examples": [], + "opcode": "F920", + "stack": "h1 h2 - x" }, + "bytecode": { "tlb": "#F920", "prefix": "F920", "operands": [] }, "value_flow": { - "doc_stack": "h1 h2 - x", "inputs": { "stack": [ { "type": "simple", "name": "h1", "value_types": ["Integer"] }, @@ -33572,16 +31208,12 @@ "description": "Checks that integer `x` is a valid representation of some curve point. Throws range_chk on error.", "gas": "226", "fift": "RIST255_VALIDATE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F921", - "tlb": "#F921", - "prefix": "F921", - "operands": [] + "fift_examples": [], + "opcode": "F921", + "stack": "x -" }, + "bytecode": { "tlb": "#F921", "prefix": "F921", "operands": [] }, "value_flow": { - "doc_stack": "x -", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -33600,16 +31232,12 @@ "description": "Addition of two points on a curve.", "gas": "626", "fift": "RIST255_ADD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F922", - "tlb": "#F922", - "prefix": "F922", - "operands": [] + "fift_examples": [], + "opcode": "F922", + "stack": "x y - x+y" }, + "bytecode": { "tlb": "#F922", "prefix": "F922", "operands": [] }, "value_flow": { - "doc_stack": "x y - x+y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -33634,16 +31262,12 @@ "description": "Subtraction of two points on curve.", "gas": "626", "fift": "RIST255_SUB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F923", - "tlb": "#F923", - "prefix": "F923", - "operands": [] + "fift_examples": [], + "opcode": "F923", + "stack": "x y - x-y" }, + "bytecode": { "tlb": "#F923", "prefix": "F923", "operands": [] }, "value_flow": { - "doc_stack": "x y - x-y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -33668,16 +31292,12 @@ "description": "Multiplies point `x` by a scalar `n`. Any `n` is valid, including negative.", "gas": "2026", "fift": "RIST255_MUL", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F924", - "tlb": "#F924", - "prefix": "F924", - "operands": [] + "fift_examples": [], + "opcode": "F924", + "stack": "x n - x*n" }, + "bytecode": { "tlb": "#F924", "prefix": "F924", "operands": [] }, "value_flow": { - "doc_stack": "x n - x*n", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -33702,16 +31322,12 @@ "description": "Multiplies the generator point `g` by a scalar `n`. Any `n` is valid, including negative.", "gas": "776", "fift": "RIST255_MULBASE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F925", - "tlb": "#F925", - "prefix": "F925", - "operands": [] + "fift_examples": [], + "opcode": "F925", + "stack": "n - g*n" }, + "bytecode": { "tlb": "#F925", "prefix": "F925", "operands": [] }, "value_flow": { - "doc_stack": "n - g*n", "inputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] } @@ -33735,16 +31351,12 @@ "description": "Pushes integer l=2^252+27742317777372353535851937790883648493, which is the order of the group.", "gas": "26", "fift": "RIST255_PUSHL", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F926", - "tlb": "#F926", - "prefix": "F926", - "operands": [] + "fift_examples": [], + "opcode": "F926", + "stack": "- l" }, + "bytecode": { "tlb": "#F926", "prefix": "F926", "operands": [] }, "value_flow": { - "doc_stack": "- l", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -33763,16 +31375,12 @@ "description": "Checks that integer `x` is a valid representation of some curve point. Returns -1 on success and 0 on failure.", "gas": "234", "fift": "RIST255_QVALIDATE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7F921", - "tlb": "#B7F921", - "prefix": "B7F921", - "operands": [] + "fift_examples": [], + "opcode": "B7F921", + "stack": "x - 0 or -1" }, + "bytecode": { "tlb": "#B7F921", "prefix": "B7F921", "operands": [] }, "value_flow": { - "doc_stack": "x - 0 or -1", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -33796,16 +31404,12 @@ "description": "Addition of two points on a curve. Returns -1 on success and 0 on failure.", "gas": "634", "fift": "RIST255_QADD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7F922", - "tlb": "#B7F922", - "prefix": "B7F922", - "operands": [] + "fift_examples": [], + "opcode": "B7F922", + "stack": "x y - 0 or x+y -1" }, + "bytecode": { "tlb": "#B7F922", "prefix": "B7F922", "operands": [] }, "value_flow": { - "doc_stack": "x y - 0 or x+y -1", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -33847,16 +31451,12 @@ "description": "Subtraction of two points on curve. Returns -1 on success and 0 on failure.", "gas": "634", "fift": "RIST255_QSUB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7F923", - "tlb": "#B7F923", - "prefix": "B7F923", - "operands": [] + "fift_examples": [], + "opcode": "B7F923", + "stack": "x y - 0 or x-y -1" }, + "bytecode": { "tlb": "#B7F923", "prefix": "B7F923", "operands": [] }, "value_flow": { - "doc_stack": "x y - 0 or x-y -1", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -33898,16 +31498,12 @@ "description": "Multiplies point `x` by a scalar `n`. Any `n` is valid, including negative. Returns -1 on success and 0 on failure.", "gas": "2034", "fift": "RIST255_QMUL", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7F924", - "tlb": "#B7F924", - "prefix": "B7F924", - "operands": [] + "fift_examples": [], + "opcode": "B7F924", + "stack": "x n - 0 or x*n -1" }, + "bytecode": { "tlb": "#B7F924", "prefix": "B7F924", "operands": [] }, "value_flow": { - "doc_stack": "x n - 0 or x*n -1", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -33949,16 +31545,12 @@ "description": "Multiplies the generator point `g` by a scalar `n`. Any `n` is valid, including negative.", "gas": "784", "fift": "RIST255_QMULBASE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "B7F925", - "tlb": "#B7F925", - "prefix": "B7F925", - "operands": [] + "fift_examples": [], + "opcode": "B7F925", + "stack": "n - 0 or g*n -1" }, + "bytecode": { "tlb": "#B7F925", "prefix": "B7F925", "operands": [] }, "value_flow": { - "doc_stack": "n - 0 or g*n -1", "inputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] } @@ -33999,16 +31591,12 @@ "description": "Checks BLS signature, return true on success, false otherwise.", "gas": "61034", "fift": "BLS_VERIFY", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93000", - "tlb": "#F93000", - "prefix": "F93000", - "operands": [] + "fift_examples": [], + "opcode": "F93000", + "stack": "pk msg sgn - bool" }, + "bytecode": { "tlb": "#F93000", "prefix": "F93000", "operands": [] }, "value_flow": { - "doc_stack": "pk msg sgn - bool", "inputs": { "stack": [ { "type": "simple", "name": "pk", "value_types": ["Slice"] }, @@ -34034,16 +31622,12 @@ "description": "Aggregates signatures. `n>0`. Throw exception if `n=0` or if some `sig_i` is not a valid signature.", "gas": "n*4350-2616", "fift": "BLS_AGGREGATE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93001", - "tlb": "#F93001", - "prefix": "F93001", - "operands": [] + "fift_examples": [], + "opcode": "F93001", + "stack": "sig_1 ... sig_n n - sig" }, + "bytecode": { "tlb": "#F93001", "prefix": "F93001", "operands": [] }, "value_flow": { - "doc_stack": "sig_1 ... sig_n n - sig", "inputs": { "stack": [ { @@ -34075,16 +31659,12 @@ "description": "Checks aggregated BLS signature for keys `pk_1...pk_n` and message `msg`. Return true on success, false otherwise. Return false if `n=0`.", "gas": "58034+n*3000", "fift": "BLS_FASTAGGREGATEVERIFY", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93002", - "tlb": "#F93002", - "prefix": "F93002", - "operands": [] + "fift_examples": [], + "opcode": "F93002", + "stack": "pk_1 ... pk_n n msg sig - bool" }, + "bytecode": { "tlb": "#F93002", "prefix": "F93002", "operands": [] }, "value_flow": { - "doc_stack": "pk_1 ... pk_n n msg sig - bool", "inputs": { "stack": [ { @@ -34118,16 +31698,12 @@ "description": "Checks aggregated BLS signature for key-message pairs `pk_1 msg_1...pk_n msg_n`. Return true on success, false otherwise. Return false if `n=0`.", "gas": "38534+n*22500", "fift": "BLS_AGGREGATEVERIFY", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93003", - "tlb": "#F93003", - "prefix": "F93003", - "operands": [] + "fift_examples": [], + "opcode": "F93003", + "stack": "pk_1 msg_1 ... pk_n msg_n n sgn - bool" }, + "bytecode": { "tlb": "#F93003", "prefix": "F93003", "operands": [] }, "value_flow": { - "doc_stack": "pk_1 msg_1 ... pk_n msg_n n sgn - bool", "inputs": { "stack": [ { @@ -34161,16 +31737,12 @@ "description": "Addition on G1.", "gas": "3934", "fift": "BLS_G1_ADD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93010", - "tlb": "#F93010", - "prefix": "F93010", - "operands": [] + "fift_examples": [], + "opcode": "F93010", + "stack": "x y - x+y" }, + "bytecode": { "tlb": "#F93010", "prefix": "F93010", "operands": [] }, "value_flow": { - "doc_stack": "x y - x+y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -34195,16 +31767,12 @@ "description": "Subtraction on G1.", "gas": "3934", "fift": "BLS_G1_SUB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93011", - "tlb": "#F93011", - "prefix": "F93011", - "operands": [] + "fift_examples": [], + "opcode": "F93011", + "stack": "x y - x-y" }, + "bytecode": { "tlb": "#F93011", "prefix": "F93011", "operands": [] }, "value_flow": { - "doc_stack": "x y - x-y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -34229,16 +31797,12 @@ "description": "Negation on G1.", "gas": "784", "fift": "BLS_G1_NEG", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93012", - "tlb": "#F93012", - "prefix": "F93012", - "operands": [] + "fift_examples": [], + "opcode": "F93012", + "stack": "x - -x" }, + "bytecode": { "tlb": "#F93012", "prefix": "F93012", "operands": [] }, "value_flow": { - "doc_stack": "x - -x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] } @@ -34262,16 +31826,12 @@ "description": "Multiplies G1 point `x` by scalar `s`. Any `s` is valid, including negative.", "gas": "5234", "fift": "BLS_G1_MUL", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93013", - "tlb": "#F93013", - "prefix": "F93013", - "operands": [] + "fift_examples": [], + "opcode": "F93013", + "stack": "x s - x*s" }, + "bytecode": { "tlb": "#F93013", "prefix": "F93013", "operands": [] }, "value_flow": { - "doc_stack": "x s - x*s", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -34296,16 +31856,12 @@ "description": "Calculates `x_1*s_1+...+x_n*s_n` for G1 points `x_i` and scalars `s_i`. Returns zero point if `n=0`. Any `s_i` is valid, including negative.", "gas": "11409+n*630+n/floor(max(log2(n),4))*8820", "fift": "BLS_G1_MULTIEXP", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93014", - "tlb": "#F93014", - "prefix": "F93014", - "operands": [] + "fift_examples": [], + "opcode": "F93014", + "stack": "x_1 s_1 ... x_n s_n n - x_1*s_1+...+x_n*s_n" }, + "bytecode": { "tlb": "#F93014", "prefix": "F93014", "operands": [] }, "value_flow": { - "doc_stack": "x_1 s_1 ... x_n s_n n - x_1*s_1+...+x_n*s_n", "inputs": { "stack": [ { @@ -34338,16 +31894,12 @@ "description": "Pushes zero point in G1.", "gas": "34", "fift": "BLS_G1_ZERO", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93015", - "tlb": "#F93015", - "prefix": "F93015", - "operands": [] + "fift_examples": [], + "opcode": "F93015", + "stack": "- zero" }, + "bytecode": { "tlb": "#F93015", "prefix": "F93015", "operands": [] }, "value_flow": { - "doc_stack": "- zero", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -34366,16 +31918,12 @@ "description": "Converts FP element `f` to a G1 point.", "gas": "2384", "fift": "BLS_MAP_TO_G1", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93016", - "tlb": "#F93016", - "prefix": "F93016", - "operands": [] + "fift_examples": [], + "opcode": "F93016", + "stack": "f - x" }, + "bytecode": { "tlb": "#F93016", "prefix": "F93016", "operands": [] }, "value_flow": { - "doc_stack": "f - x", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Slice"] } @@ -34399,16 +31947,12 @@ "description": "Checks that slice `x` represents a valid element of G1.", "gas": "2984", "fift": "BLS_G1_INGROUP", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93017", - "tlb": "#F93017", - "prefix": "F93017", - "operands": [] + "fift_examples": [], + "opcode": "F93017", + "stack": "x - bool" }, + "bytecode": { "tlb": "#F93017", "prefix": "F93017", "operands": [] }, "value_flow": { - "doc_stack": "x - bool", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] } @@ -34432,16 +31976,12 @@ "description": "Checks that G1 point `x` is equal to zero.", "gas": "34", "fift": "BLS_G1_ISZERO", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93018", - "tlb": "#F93018", - "prefix": "F93018", - "operands": [] + "fift_examples": [], + "opcode": "F93018", + "stack": "x - bool" }, + "bytecode": { "tlb": "#F93018", "prefix": "F93018", "operands": [] }, "value_flow": { - "doc_stack": "x - bool", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] } @@ -34465,16 +32005,12 @@ "description": "Addition on G2.", "gas": "6134", "fift": "BLS_G2_ADD", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93020", - "tlb": "#F93020", - "prefix": "F93020", - "operands": [] + "fift_examples": [], + "opcode": "F93020", + "stack": "x y - x+y" }, + "bytecode": { "tlb": "#F93020", "prefix": "F93020", "operands": [] }, "value_flow": { - "doc_stack": "x y - x+y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -34499,16 +32035,12 @@ "description": "Subtraction on G2.", "gas": "6134", "fift": "BLS_G2_SUB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93021", - "tlb": "#F93021", - "prefix": "F93021", - "operands": [] + "fift_examples": [], + "opcode": "F93021", + "stack": "x y - x-y" }, + "bytecode": { "tlb": "#F93021", "prefix": "F93021", "operands": [] }, "value_flow": { - "doc_stack": "x y - x-y", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -34533,16 +32065,12 @@ "description": "Negation on G2.", "gas": "1584", "fift": "BLS_G2_NEG", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93022", - "tlb": "#F93022", - "prefix": "F93022", - "operands": [] + "fift_examples": [], + "opcode": "F93022", + "stack": "x - -x" }, + "bytecode": { "tlb": "#F93022", "prefix": "F93022", "operands": [] }, "value_flow": { - "doc_stack": "x - -x", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] } @@ -34566,16 +32094,12 @@ "description": "Multiplies G2 point `x` by scalar `s`. Any `s` is valid, including negative.", "gas": "10584", "fift": "BLS_G2_MUL", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93023", - "tlb": "#F93023", - "prefix": "F93023", - "operands": [] + "fift_examples": [], + "opcode": "F93023", + "stack": "x s - x*s" }, + "bytecode": { "tlb": "#F93023", "prefix": "F93023", "operands": [] }, "value_flow": { - "doc_stack": "x s - x*s", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, @@ -34600,16 +32124,12 @@ "description": "Calculates `x_1*s_1+...+x_n*s_n` for G2 points `x_i` and scalars `s_i`. Returns zero point if `n=0`. Any `s_i` is valid, including negative.", "gas": "30422+n*1280+n/floor(max(log2(n),4))*22840", "fift": "BLS_G2_MULTIEXP", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93024", - "tlb": "#F93024", - "prefix": "F93024", - "operands": [] + "fift_examples": [], + "opcode": "F93024", + "stack": "x_1 s_1 ... x_n s_n n - x_1*s_1+...+x_n*s_n" }, + "bytecode": { "tlb": "#F93024", "prefix": "F93024", "operands": [] }, "value_flow": { - "doc_stack": "x_1 s_1 ... x_n s_n n - x_1*s_1+...+x_n*s_n", "inputs": { "stack": [ { @@ -34642,16 +32162,12 @@ "description": "Pushes zero point in G2.", "gas": "34", "fift": "BLS_G2_ZERO", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93025", - "tlb": "#F93025", - "prefix": "F93025", - "operands": [] + "fift_examples": [], + "opcode": "F93025", + "stack": "- zero" }, + "bytecode": { "tlb": "#F93025", "prefix": "F93025", "operands": [] }, "value_flow": { - "doc_stack": "- zero", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -34670,16 +32186,12 @@ "description": "Converts FP2 element `f` to a G2 point.", "gas": "7984", "fift": "BLS_MAP_TO_G2", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93026", - "tlb": "#F93026", - "prefix": "F93026", - "operands": [] + "fift_examples": [], + "opcode": "F93026", + "stack": "f - x" }, + "bytecode": { "tlb": "#F93026", "prefix": "F93026", "operands": [] }, "value_flow": { - "doc_stack": "f - x", "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Slice"] } @@ -34703,16 +32215,12 @@ "description": "Checks that slice `x` represents a valid element of G2.", "gas": "4284", "fift": "BLS_G2_INGROUP", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93027", - "tlb": "#F93027", - "prefix": "F93027", - "operands": [] + "fift_examples": [], + "opcode": "F93027", + "stack": "x - bool" }, + "bytecode": { "tlb": "#F93027", "prefix": "F93027", "operands": [] }, "value_flow": { - "doc_stack": "x - bool", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] } @@ -34736,16 +32244,12 @@ "description": "Checks that G2 point `x` is equal to zero.", "gas": "34", "fift": "BLS_G2_ISZERO", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93028", - "tlb": "#F93028", - "prefix": "F93028", - "operands": [] + "fift_examples": [], + "opcode": "F93028", + "stack": "x - bool" }, + "bytecode": { "tlb": "#F93028", "prefix": "F93028", "operands": [] }, "value_flow": { - "doc_stack": "x - bool", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] } @@ -34769,16 +32273,12 @@ "description": "Given G1 points `x_i` and G2 points `y_i`, calculates and multiply pairings of `x_i,y_i`. Returns true if the result is the multiplicative identity in FP12, false otherwise. Returns false if `n=0`.", "gas": "20034+n*11800", "fift": "BLS_PAIRING", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93030", - "tlb": "#F93030", - "prefix": "F93030", - "operands": [] + "fift_examples": [], + "opcode": "F93030", + "stack": "x_1 y_1 ... x_n y_n n - bool" }, + "bytecode": { "tlb": "#F93030", "prefix": "F93030", "operands": [] }, "value_flow": { - "doc_stack": "x_1 y_1 ... x_n y_n n - bool", "inputs": { "stack": [ { @@ -34811,16 +32311,12 @@ "description": "Pushes the order of G1 and G2 (approx. `2^255`).", "gas": "34", "fift": "BLS_PUSHR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F93031", - "tlb": "#F93031", - "prefix": "F93031", - "operands": [] + "fift_examples": [], + "opcode": "F93031", + "stack": "- r" }, + "bytecode": { "tlb": "#F93031", "prefix": "F93031", "operands": [] }, "value_flow": { - "doc_stack": "- r", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ @@ -34839,16 +32335,12 @@ "description": "Recursively computes the count of distinct cells `x`, data bits `y`, and cell references `z` in the dag rooted at _Cell_ `c`, effectively returning the total storage used by this dag taking into account the identification of equal cells. The values of `x`, `y`, and `z` are computed by a depth-first traversal of this dag, with a hash table of visited cell hashes used to prevent visits of already-visited cells. The total count of visited cells `x` cannot exceed non-negative _Integer_ `n`; otherwise the computation is aborted before visiting the `(n+1)`-st cell and a zero is returned to indicate failure. If `c` is _Null_, returns `x=y=z=0`.", "gas": "", "fift": "CDATASIZEQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F940", - "tlb": "#F940", - "prefix": "F940", - "operands": [] + "fift_examples": [], + "opcode": "F940", + "stack": "c n - x y z -1 or 0" }, + "bytecode": { "tlb": "#F940", "prefix": "F940", "operands": [] }, "value_flow": { - "doc_stack": "c n - x y z -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -34900,16 +32392,12 @@ "description": "A non-quiet version of `CDATASIZEQ` that throws a cell overflow exception (8) on failure.", "gas": "", "fift": "CDATASIZE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F941", - "tlb": "#F941", - "prefix": "F941", - "operands": [] + "fift_examples": [], + "opcode": "F941", + "stack": "c n - x y z" }, + "bytecode": { "tlb": "#F941", "prefix": "F941", "operands": [] }, "value_flow": { - "doc_stack": "c n - x y z", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -34936,16 +32424,12 @@ "description": "Similar to `CDATASIZEQ`, but accepting a _Slice_ `s` instead of a _Cell_. The returned value of `x` does not take into account the cell that contains the slice `s` itself; however, the data bits and the cell references of `s` are accounted for in `y` and `z`.", "gas": "", "fift": "SDATASIZEQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F942", - "tlb": "#F942", - "prefix": "F942", - "operands": [] + "fift_examples": [], + "opcode": "F942", + "stack": "s n - x y z -1 or 0" }, + "bytecode": { "tlb": "#F942", "prefix": "F942", "operands": [] }, "value_flow": { - "doc_stack": "s n - x y z -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -34997,16 +32481,12 @@ "description": "A non-quiet version of `SDATASIZEQ` that throws a cell overflow exception (8) on failure.", "gas": "", "fift": "SDATASIZE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "F943", - "tlb": "#F943", - "prefix": "F943", - "operands": [] + "fift_examples": [], + "opcode": "F943", + "stack": "s n - x y z" }, + "bytecode": { "tlb": "#F943", "prefix": "F943", "operands": [] }, "value_flow": { - "doc_stack": "s n - x y z", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, @@ -35033,16 +32513,12 @@ "description": "Loads (deserializes) a `Gram` or `VarUInteger 16` amount from _Slice_ `s`, and returns the amount as _Integer_ `x` along with the remainder `s'` of `s`. The expected serialization of `x` consists of a 4-bit unsigned big-endian integer `l`, followed by an `8l`-bit unsigned big-endian representation of `x`.\nThe net effect is approximately equivalent to `4 LDU` `SWAP` `3 LSHIFT#` `LDUX`.", "gas": "26", "fift": "LDGRAMS\nLDVARUINT16", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FA00", - "tlb": "#FA00", - "prefix": "FA00", - "operands": [] + "fift_examples": [], + "opcode": "FA00", + "stack": "s - x s'" }, + "bytecode": { "tlb": "#FA00", "prefix": "FA00", "operands": [] }, "value_flow": { - "doc_stack": "s - x s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -35067,16 +32543,12 @@ "description": "Similar to `LDVARUINT16`, but loads a _signed_ _Integer_ `x`.\nApproximately equivalent to `4 LDU` `SWAP` `3 LSHIFT#` `LDIX`.", "gas": "26", "fift": "LDVARINT16", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FA01", - "tlb": "#FA01", - "prefix": "FA01", - "operands": [] + "fift_examples": [], + "opcode": "FA01", + "stack": "s - x s'" }, + "bytecode": { "tlb": "#FA01", "prefix": "FA01", "operands": [] }, "value_flow": { - "doc_stack": "s - x s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -35101,16 +32573,12 @@ "description": "Stores (serializes) an _Integer_ `x` in the range `0...2^120-1` into _Builder_ `b`, and returns the resulting _Builder_ `b'`. The serialization of `x` consists of a 4-bit unsigned big-endian integer `l`, which is the smallest integer `l>=0`, such that `x<2^(8l)`, followed by an `8l`-bit unsigned big-endian representation of `x`. If `x` does not belong to the supported range, a range check exception is thrown.", "gas": "26", "fift": "STGRAMS\nSTVARUINT16", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FA02", - "tlb": "#FA02", - "prefix": "FA02", - "operands": [] + "fift_examples": [], + "opcode": "FA02", + "stack": "b x - b'" }, + "bytecode": { "tlb": "#FA02", "prefix": "FA02", "operands": [] }, "value_flow": { - "doc_stack": "b x - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -35135,16 +32603,12 @@ "description": "Similar to `STVARUINT16`, but serializes a _signed_ _Integer_ `x` in the range `-2^119...2^119-1`.", "gas": "26", "fift": "STVARINT16", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FA03", - "tlb": "#FA03", - "prefix": "FA03", - "operands": [] + "fift_examples": [], + "opcode": "FA03", + "stack": "b x - b'" }, + "bytecode": { "tlb": "#FA03", "prefix": "FA03", "operands": [] }, "value_flow": { - "doc_stack": "b x - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -35169,16 +32633,12 @@ "description": "Loads (deserializes) a `VarUInteger 32` amount from _Slice_ `s`, and returns the amount as _Integer_ `x` along with the remainder `s'` of `s`. The expected serialization of `x` consists of a 5-bit unsigned big-endian integer `l`, followed by an `8l`-bit unsigned big-endian representation of `x`.\nThe net effect is approximately equivalent to `4 LDU` `SWAP` `3 LSHIFT#` `LDUX`.", "gas": "26", "fift": "LDVARUINT32", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FA04", - "tlb": "#FA04", - "prefix": "FA04", - "operands": [] + "fift_examples": [], + "opcode": "FA04", + "stack": "s - x s'" }, + "bytecode": { "tlb": "#FA04", "prefix": "FA04", "operands": [] }, "value_flow": { - "doc_stack": "s - x s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -35203,16 +32663,12 @@ "description": "Similar to `LDVARUINT32`, but loads a _signed_ _Integer_ `x`.\nApproximately equivalent to `5 LDU` `SWAP` `3 LSHIFT#` `LDIX`.", "gas": "26", "fift": "LDVARINT32", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FA05", - "tlb": "#FA05", - "prefix": "FA05", - "operands": [] + "fift_examples": [], + "opcode": "FA05", + "stack": "s - x s'" }, + "bytecode": { "tlb": "#FA05", "prefix": "FA05", "operands": [] }, "value_flow": { - "doc_stack": "s - x s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -35237,16 +32693,12 @@ "description": "Stores (serializes) an _Integer_ `x` in the range `0...2^248-1` into _Builder_ `b`, and returns the resulting _Builder_ `b'`. The serialization of `x` consists of a 5-bit unsigned big-endian integer `l`, which is the smallest integer `l>=0`, such that `x<2^(8l)`, followed by an `8l`-bit unsigned big-endian representation of `x`. If `x` does not belong to the supported range, a range check exception is thrown.", "gas": "26", "fift": "STVARUINT32", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FA06", - "tlb": "#FA06", - "prefix": "FA06", - "operands": [] + "fift_examples": [], + "opcode": "FA06", + "stack": "b x - b'" }, + "bytecode": { "tlb": "#FA06", "prefix": "FA06", "operands": [] }, "value_flow": { - "doc_stack": "b x - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -35271,16 +32723,12 @@ "description": "Similar to `STVARUINT32`, but serializes a _signed_ _Integer_ `x` in the range `-2^247...2^247-1`.", "gas": "26", "fift": "STVARINT32", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FA07", - "tlb": "#FA07", - "prefix": "FA07", - "operands": [] + "fift_examples": [], + "opcode": "FA07", + "stack": "b x - b'" }, + "bytecode": { "tlb": "#FA07", "prefix": "FA07", "operands": [] }, "value_flow": { - "doc_stack": "b x - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, @@ -35305,16 +32753,12 @@ "description": "Loads from _Slice_ `s` the only prefix that is a valid `MsgAddress`, and returns both this prefix `s'` and the remainder `s''` of `s` as slices.", "gas": "26", "fift": "LDMSGADDR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FA40", - "tlb": "#FA40", - "prefix": "FA40", - "operands": [] + "fift_examples": [], + "opcode": "FA40", + "stack": "s - s' s''" }, + "bytecode": { "tlb": "#FA40", "prefix": "FA40", "operands": [] }, "value_flow": { - "doc_stack": "s - s' s''", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -35339,16 +32783,12 @@ "description": "A quiet version of `LDMSGADDR`: on success, pushes an extra `-1`; on failure, pushes the original `s` and a zero.", "gas": "26", "fift": "LDMSGADDRQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FA41", - "tlb": "#FA41", - "prefix": "FA41", - "operands": [] + "fift_examples": [], + "opcode": "FA41", + "stack": "s - s' s'' -1 or s 0" }, + "bytecode": { "tlb": "#FA41", "prefix": "FA41", "operands": [] }, "value_flow": { - "doc_stack": "s - s' s'' -1 or s 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -35395,16 +32835,12 @@ "description": "Decomposes _Slice_ `s` containing a valid `MsgAddress` into a _Tuple_ `t` with separate fields of this `MsgAddress`. If `s` is not a valid `MsgAddress`, a cell deserialization exception is thrown.", "gas": "26", "fift": "PARSEMSGADDR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FA42", - "tlb": "#FA42", - "prefix": "FA42", - "operands": [] + "fift_examples": [], + "opcode": "FA42", + "stack": "s - t" }, + "bytecode": { "tlb": "#FA42", "prefix": "FA42", "operands": [] }, "value_flow": { - "doc_stack": "s - t", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -35428,16 +32864,12 @@ "description": "A quiet version of `PARSEMSGADDR`: returns a zero on error instead of throwing an exception.", "gas": "26", "fift": "PARSEMSGADDRQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FA43", - "tlb": "#FA43", - "prefix": "FA43", - "operands": [] + "fift_examples": [], + "opcode": "FA43", + "stack": "s - t -1 or 0" }, + "bytecode": { "tlb": "#FA43", "prefix": "FA43", "operands": [] }, "value_flow": { - "doc_stack": "s - t -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -35474,16 +32906,12 @@ "description": "Parses _Slice_ `s` containing a valid `MsgAddressInt` (usually a `msg_addr_std`), applies rewriting from the `anycast` (if present) to the same-length prefix of the address, and returns both the workchain `x` and the 256-bit address `y` as integers. If the address is not 256-bit, or if `s` is not a valid serialization of `MsgAddressInt`, throws a cell deserialization exception.", "gas": "26", "fift": "REWRITESTDADDR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FA44", - "tlb": "#FA44", - "prefix": "FA44", - "operands": [] + "fift_examples": [], + "opcode": "FA44", + "stack": "s - x y" }, + "bytecode": { "tlb": "#FA44", "prefix": "FA44", "operands": [] }, "value_flow": { - "doc_stack": "s - x y", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -35508,16 +32936,12 @@ "description": "A quiet version of primitive `REWRITESTDADDR`.", "gas": "26", "fift": "REWRITESTDADDRQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FA45", - "tlb": "#FA45", - "prefix": "FA45", - "operands": [] + "fift_examples": [], + "opcode": "FA45", + "stack": "s - x y -1 or 0" }, + "bytecode": { "tlb": "#FA45", "prefix": "FA45", "operands": [] }, "value_flow": { - "doc_stack": "s - x y -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -35563,16 +32987,12 @@ "description": "A variant of `REWRITESTDADDR` that returns the (rewritten) address as a _Slice_ `s`, even if it is not exactly 256 bit long (represented by a `msg_addr_var`).", "gas": "26", "fift": "REWRITEVARADDR", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FA46", - "tlb": "#FA46", - "prefix": "FA46", - "operands": [] + "fift_examples": [], + "opcode": "FA46", + "stack": "s - x s'" }, + "bytecode": { "tlb": "#FA46", "prefix": "FA46", "operands": [] }, "value_flow": { - "doc_stack": "s - x s'", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -35597,16 +33017,12 @@ "description": "A quiet version of primitive `REWRITEVARADDR`.", "gas": "26", "fift": "REWRITEVARADDRQ", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FA47", - "tlb": "#FA47", - "prefix": "FA47", - "operands": [] + "fift_examples": [], + "opcode": "FA47", + "stack": "s - x s' -1 or 0" }, + "bytecode": { "tlb": "#FA47", "prefix": "FA47", "operands": [] }, "value_flow": { - "doc_stack": "s - x s' -1 or 0", "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] } @@ -35648,16 +33064,12 @@ "description": "Sends a raw message contained in _Cell `c`_, which should contain a correctly serialized object `Message X`, with the only exception that the source address is allowed to have dummy value `addr_none` (to be automatically replaced with the current smart-contract address), and `ihr_fee`, `fwd_fee`, `created_lt` and `created_at` fields can have arbitrary values (to be rewritten with correct values during the action phase of the current transaction). Integer parameter `x` contains the flags. Currently `x=0` is used for ordinary messages; `x=128` is used for messages that are to carry all the remaining balance of the current smart contract (instead of the value originally indicated in the message); `x=64` is used for messages that carry all the remaining value of the inbound message in addition to the value initially indicated in the new message (if bit 0 is not set, the gas fees are deducted from this amount); `x'=x+1` means that the sender wants to pay transfer fees separately; `x'=x+2` means that any errors arising while processing this message during the action phase should be ignored. Finally, `x'=x+32` means that the current account must be destroyed if its resulting balance is zero. This flag is usually employed together with `+128`.", "gas": "526", "fift": "SENDRAWMSG", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FB00", - "tlb": "#FB00", - "prefix": "FB00", - "operands": [] + "fift_examples": [], + "opcode": "FB00", + "stack": "c x - " }, + "bytecode": { "tlb": "#FB00", "prefix": "FB00", "operands": [] }, "value_flow": { - "doc_stack": "c x - ", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -35680,16 +33092,12 @@ "description": "Creates an output action which would reserve exactly `x` nanograms (if `y=0`), at most `x` nanograms (if `y=2`), or all but `x` nanograms (if `y=1` or `y=3`), from the remaining balance of the account. It is roughly equivalent to creating an outbound message carrying `x` nanograms (or `b-x` nanograms, where `b` is the remaining balance) to oneself, so that the subsequent output actions would not be able to spend more money than the remainder. Bit `+2` in `y` means that the external action does not fail if the specified amount cannot be reserved; instead, all remaining balance is reserved. Bit `+8` in `y` means `x:=-x` before performing any further actions. Bit `+4` in `y` means that `x` is increased by the original balance of the current account (before the compute phase), including all extra currencies, before performing any other checks and actions. Currently `x` must be a non-negative integer, and `y` must be in the range `0...15`.", "gas": "526", "fift": "RAWRESERVE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FB02", - "tlb": "#FB02", - "prefix": "FB02", - "operands": [] + "fift_examples": [], + "opcode": "FB02", + "stack": "x y - " }, + "bytecode": { "tlb": "#FB02", "prefix": "FB02", "operands": [] }, "value_flow": { - "doc_stack": "x y - ", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -35712,16 +33120,12 @@ "description": "Similar to `RAWRESERVE`, but also accepts a dictionary `D` (represented by a _Cell_ or _Null_) with extra currencies. In this way currencies other than Grams can be reserved.", "gas": "526", "fift": "RAWRESERVEX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FB03", - "tlb": "#FB03", - "prefix": "FB03", - "operands": [] + "fift_examples": [], + "opcode": "FB03", + "stack": "x D y - " }, + "bytecode": { "tlb": "#FB03", "prefix": "FB03", "operands": [] }, "value_flow": { - "doc_stack": "x D y - ", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -35745,16 +33149,12 @@ "description": "Creates an output action that would change this smart contract code to that given by _Cell_ `c`. Notice that this change will take effect only after the successful termination of the current run of the smart contract.", "gas": "526", "fift": "SETCODE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FB04", - "tlb": "#FB04", - "prefix": "FB04", - "operands": [] + "fift_examples": [], + "opcode": "FB04", + "stack": "c - " }, + "bytecode": { "tlb": "#FB04", "prefix": "FB04", "operands": [] }, "value_flow": { - "doc_stack": "c - ", "inputs": { "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], "registers": [{ "type": "constant", "index": 5 }] @@ -35774,16 +33174,12 @@ "description": "Creates an output action that would modify the collection of this smart contract libraries by adding or removing library with code given in _Cell_ `c`. If `x=0`, the library is actually removed if it was previously present in the collection (if not, this action does nothing). If `x=1`, the library is added as a private library, and if `x=2`, the library is added as a public library (and becomes available to all smart contracts if the current smart contract resides in the masterchain); if the library was present in the collection before, its public/private status is changed according to `x`. Values of `x` other than `0...2` are invalid.", "gas": "526", "fift": "SETLIBCODE", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FB06", - "tlb": "#FB06", - "prefix": "FB06", - "operands": [] + "fift_examples": [], + "opcode": "FB06", + "stack": "c x - " }, + "bytecode": { "tlb": "#FB06", "prefix": "FB06", "operands": [] }, "value_flow": { - "doc_stack": "c x - ", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -35806,16 +33202,12 @@ "description": "Creates an output action similarly to `SETLIBCODE`, but instead of the library code accepts its hash as an unsigned 256-bit integer `h`. If `x!=0` and the library with hash `h` is absent from the library collection of this smart contract, this output action will fail.", "gas": "526", "fift": "CHANGELIB", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FB07", - "tlb": "#FB07", - "prefix": "FB07", - "operands": [] + "fift_examples": [], + "opcode": "FB07", + "stack": "h x - " }, + "bytecode": { "tlb": "#FB07", "prefix": "FB07", "operands": [] }, "value_flow": { - "doc_stack": "h x - ", "inputs": { "stack": [ { "type": "simple", "name": "h", "value_types": ["Integer"] }, @@ -35838,16 +33230,12 @@ "description": "Creates an output action and returns a fee for creating a message. Mode has the same effect as in the case of `SENDRAWMSG`. Additionally `+1024` means - do not create an action, only estimate fee. Other modes affect the fee calculation as follows: `+64` substitutes the entire balance of the incoming message as an outcoming value (slightly inaccurate, gas expenses that cannot be estimated before the computation is completed are not taken into account), `+128` substitutes the value of the entire balance of the contract before the start of the computation phase (slightly inaccurate, since gas expenses that cannot be estimated before the completion of the computation phase are not taken into account).", "gas": "526", "fift": "SENDMSG", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FB08", - "tlb": "#FB08", - "prefix": "FB08", - "operands": [] + "fift_examples": [], + "opcode": "FB08", + "stack": "c x - fee" }, + "bytecode": { "tlb": "#FB08", "prefix": "FB08", "operands": [] }, "value_flow": { - "doc_stack": "c x - fee", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, @@ -35872,10 +33260,11 @@ "description": "", "gas": "26", "fift": "{i*16+j} DEBUG", - "fift_examples": [] + "fift_examples": [], + "opcode": "FEij", + "stack": "-" }, "bytecode": { - "doc_opcode": "FEij", "tlb": "#FE i:(#<= 14) j:(## 4)", "prefix": "FE", "operands_range_check": { "length": 4, "from": 0, "to": 14 }, @@ -35899,7 +33288,6 @@ ] }, "value_flow": { - "doc_stack": "-", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [], "registers": [] } }, @@ -35913,10 +33301,11 @@ "description": "`0 <= n < 16`. Length of `ssss` is `n+1` bytes.\n`{string}` is a [string literal](https://github.com/Piterden/TON-docs/blob/master/Fift.%20A%20Brief%20Introduction.md#user-content-29-string-literals).\n`DEBUGSTR`: `ssss` is the given string.\n`DEBUGSTRI`: `ssss` is one-byte integer `0 <= x <= 255` followed by the given string.", "gas": "26", "fift": "{string} DEBUGSTR\n{string} {x} DEBUGSTRI", - "fift_examples": [] + "fift_examples": [], + "opcode": "FEFnssss", + "stack": "-" }, "bytecode": { - "doc_opcode": "FEFnssss", "tlb": "#FEF n:(## 4) ssss:((n * 8 + 8) * Bit)", "prefix": "FEF", "operands": [ @@ -35935,7 +33324,6 @@ ] }, "value_flow": { - "doc_stack": "-", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [], "registers": [] } }, @@ -35949,10 +33337,11 @@ "description": "Selects TVM codepage `0 <= nn < 240`. If the codepage is not supported, throws an invalid opcode exception.", "gas": "26", "fift": "[nn] SETCP", - "fift_examples": [] + "fift_examples": [], + "opcode": "FFnn", + "stack": "-" }, "bytecode": { - "doc_opcode": "FFnn", "tlb": "#FF nn:(#<= 239)", "prefix": "FF", "operands_range_check": { "length": 8, "from": 0, "to": 239 }, @@ -35968,7 +33357,6 @@ ] }, "value_flow": { - "doc_stack": "-", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [], "registers": [] } }, @@ -35982,10 +33370,11 @@ "description": "Selects TVM codepage `z-16` for `1 <= z <= 15`. Negative codepages `-13...-1` are reserved for restricted versions of TVM needed to validate runs of TVM in other codepages. Negative codepage `-14` is reserved for experimental codepages, not necessarily compatible between different TVM implementations, and should be disabled in the production versions of TVM.", "gas": "26", "fift": "[z-16] SETCP", - "fift_examples": [] + "fift_examples": [], + "opcode": "FFFz", + "stack": "-" }, "bytecode": { - "doc_opcode": "FFFz", "tlb": "#FFF z:(## 4) {1 <= z}", "prefix": "FFF", "operands_range_check": { "length": 4, "from": 1, "to": 15 }, @@ -36001,7 +33390,6 @@ ] }, "value_flow": { - "doc_stack": "-", "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [], "registers": [] } }, @@ -36015,16 +33403,12 @@ "description": "Selects codepage `c` with `-2^15 <= c < 2^15` passed in the top of the stack.", "gas": "26", "fift": "SETCPX", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FFF0", - "tlb": "#FFF0", - "prefix": "FFF0", - "operands": [] + "fift_examples": [], + "opcode": "FFF0", + "stack": "c - " }, + "bytecode": { "tlb": "#FFF0", "prefix": "FFF0", "operands": [] }, "value_flow": { - "doc_stack": "c - ", "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Integer"] } diff --git a/schema.json b/schema.json index 46b0480..0c896d4 100644 --- a/schema.json +++ b/schema.json @@ -702,6 +702,22 @@ "description": "Free-form human-friendly information which should be used for documentation purposes only.", "additionalProperties": false, "properties": { + "opcode": { + "type": "string", + "title": "Opcode format documentation", + "description": "Free-form bytecode format description.", + "examples": [ + "F2FF", + "F3pr", + "FEFnssss" + ] + }, + "stack": { + "type": "string", + "title": "Stack usage description", + "description": "Free-form description of stack inputs and outputs. Usually the form is `[inputs] - [outputs]` where `[inputs]` are consumed stack values and `outputs` are produced stack values (top of stack is the last value).", + "markdownDescription": "Free-form description of stack inputs and outputs. Usually the form is `[inputs] - [outputs]` where `[inputs]` are consumed stack values and `outputs` are produced stack values (top of stack is the last value)." + }, "category": { "type": "string", "title": "Category of instruction", @@ -778,16 +794,6 @@ "markdownDescription": "Information related to bytecode format of an instruction. Assuming that each instruction has format `prefix || operand_1 || operand_2 || ...` (also some operands may be refs, not bitstring part).", "additionalProperties": false, "properties": { - "doc_opcode": { - "type": "string", - "title": "Opcode format documentation", - "description": "Free-form bytecode format description.", - "examples": [ - "F2FF", - "F3pr", - "FEFnssss" - ] - }, "tlb": { "type": "string", "title": "TL-b schema", @@ -854,8 +860,7 @@ "required": [ "prefix", "tlb", - "operands", - "doc_opcode" + "operands" ] }, "value_flow": { @@ -863,14 +868,8 @@ "title": "Value flow of instruction", "description": "Information related to usage of stack and registers by instruction.", "additionalProperties": false, - "required": ["doc_stack", "inputs", "outputs"], + "required": ["inputs", "outputs"], "properties": { - "doc_stack": { - "type": "string", - "title": "Stack usage description", - "description": "Free-form description of stack inputs and outputs. Usually the form is `[inputs] - [outputs]` where `[inputs]` are consumed stack values and `outputs` are produced stack values (top of stack is the last value).", - "markdownDescription": "Free-form description of stack inputs and outputs. Usually the form is `[inputs] - [outputs]` where `[inputs]` are consumed stack values and `outputs` are produced stack values (top of stack is the last value)." - }, "inputs": { "$ref": "#/definitions/values", "title": "Instruction inputs",