From 726a5b4c83445452ceed450098c09fbccde86e95 Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Mon, 26 Feb 2024 21:00:49 +0700 Subject: [PATCH 01/27] Remove internal flag, integrate internal vars into subslice operand --- README.md | 46 ++++++------------ cp0.json | 132 ++++++---------------------------------------------- schema.json | 6 --- 3 files changed, 28 insertions(+), 156 deletions(-) diff --git a/README.md b/README.md index e72c706..f5c1459 100644 --- a/README.md +++ b/README.md @@ -153,7 +153,6 @@ However, nothing can stop you from just copying `cp0.json` (and `schema.json` if | bytecode.operands[i].name | Operand variable name. Allowed chars are `a-zA-Z0-9_`, must not begin with digit or underscore and must not end with underscore. Required. | bytecode.operands[i].loader | Loader function for operand. Must be one of `int`, `uint`, `ref`, `pushint_long`, `subslice`. Loaders are described below. Required. | bytecode.operands[i].loader_args | Arguments for loader function, specified below. Optional, no arguments in case of absence. -| bytecode.operands[i].internal | Internal flag. If true, this operand is used as a subslice length variable, should be used only for serialization/deserialization, humans and implementations do not need them. Optional, default is false. | value_flow | Information related to usage of stack and registers by instruction. Optional. | value_flow.doc_stack | 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). Optional. | value_flow.inputs | Incoming values constraints. Input is unconstrained if absent. @@ -207,44 +206,27 @@ Loads a single reference from bytecode. Unlike `subslice` with `refs_add = 1`, s Special loader which currently is used only in `PUSHINT_LONG` instruction. Loads 5-bit uint `size` and then loads and returns integer of bit size `8 * size + 19`. No arguments are required. #### subslice ```json -[ - { - "name": "r", - "loader": "uint", - "loader_args": { - "size": 2 - }, - "internal": true - }, - { - "name": "x", - "loader": "uint", - "loader_args": { - "size": 5 - }, - "internal": true - }, - { - "name": "slice", - "loader": "subslice", - "loader_args": { - "bits_length_var": "x", - "bits_padding": 1, - "refs_length_var": "r", - "refs_add": 1, - "completion_tag": true - } +{ + "name": "slice", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 5, + "bits_padding": 1, + "refs_length_var_size": 2, + "refs_add": 1, + "completion_tag": true } -] +} ``` +_TLB notation: `r:(## 2) xx:(## 5) c:((r + 1) * ^Cell) ssss:((8 * xx + 1) * Bit)`_ -Loads subslice of bit length `{bits_length_var} * 8 + bits_padding` and ref count `{refs_length_var} + refs_add`. If `completion_tag` argument with value `true` is passed, remove completion tag from bitstring (trailing `'1' + '0' * x`). Length variables are usually `"internal": true` because they should not be showed to user or provided to an implementation. +Loads `r` uint of size `refs_length_var_size` (if present), `x` uint of size `bits_length_var_size` (if present). Then loads subslice of bit length `x * 8 + bits_padding` and ref count `r + refs_add`. If `completion_tag` argument with value `true` is passed, remove completion tag from bitstring (trailing `'1' + '0' * x`). | Argument | Description | -------- | ----------- -| bits_length_var | Name of (previously parsed) operand which contains bit length to load. Optional, assuming this part of bit length is 0 if absent. +| bits_length_var_size | Size of bit length operand. Optional, assuming this part of bit length is 0 if absent. | bits_padding | Constant integer value to add to length of bitstring to load. Optional, assuming 0 if absent. -| refs_length_var | Name of (previously parsed) operand which contains ref count to load. Optional, assuming this part of ref count is 0 if absent. +| refs_length_var_size | Size of ref count operand. Optional, assuming this part of ref count is 0 if absent. | refs_add | Constant integer value to add to ref count. Optional, assuming 1 if absent. | completion_tag | Boolean flag, tells to remove trailing `'1' + '0' * x` from bitstring if true. Optional, assuming false if absent. diff --git a/cp0.json b/cp0.json index 46b4b04..6eeaca4 100644 --- a/cp0.json +++ b/cp0.json @@ -3300,19 +3300,11 @@ "tlb": "#8B x:(## 4) sss:((8 * x + 4) * Bit)", "prefix": "8B", "operands": [ - { - "name": "x", - "loader": "uint", - "loader_args": { - "size": 4 - }, - "internal": true - }, { "name": "s", "loader": "subslice", "loader_args": { - "bits_length_var": "x", + "bits_length_var_size": 4, "bits_padding": 4, "completion_tag": true } @@ -3348,29 +3340,13 @@ "tlb": "#8C r:(## 2) xx:(## 5) c:((r + 1) * ^Cell) ssss:((8 * xx + 1) * Bit)", "prefix": "8C", "operands": [ - { - "name": "r", - "loader": "uint", - "loader_args": { - "size": 2 - }, - "internal": true - }, - { - "name": "x", - "loader": "uint", - "loader_args": { - "size": 5 - }, - "internal": true - }, { "name": "slice", "loader": "subslice", "loader_args": { - "bits_length_var": "x", + "bits_length_var_size": 5, "bits_padding": 1, - "refs_length_var": "r", + "refs_length_var_size": 2, "refs_add": 1, "completion_tag": true } @@ -3421,29 +3397,13 @@ "to": 4 }, "operands": [ - { - "name": "r", - "loader": "uint", - "loader_args": { - "size": 3 - }, - "internal": true - }, - { - "name": "x", - "loader": "uint", - "loader_args": { - "size": 7 - }, - "internal": true - }, { "name": "slice", "loader": "subslice", "loader_args": { - "bits_length_var": "x", + "bits_length_var_size": 7, "bits_padding": 6, - "refs_length_var": "r", + "refs_length_var_size": 3, "completion_tag": true } } @@ -3478,29 +3438,13 @@ "tlb": "#8F_ r:(## 2) xx:(## 7) c:(r * ^Cell) ssss:((8 * xx) * Bit)", "prefix": "8F_", "operands": [ - { - "name": "r", - "loader": "uint", - "loader_args": { - "size": 2 - }, - "internal": true - }, - { - "name": "x", - "loader": "uint", - "loader_args": { - "size": 7 - }, - "internal": true - }, { "name": "s", "loader": "subslice", "loader_args": { - "bits_length_var": "x", + "bits_length_var_size": 7, "bits_padding": 0, - "refs_length_var": "r" + "refs_length_var_size": 2 } } ] @@ -3540,19 +3484,11 @@ "tlb": "#9 x:(## 4) ssss:((8 * x) * Bit)", "prefix": "9", "operands": [ - { - "name": "x", - "loader": "uint", - "loader_args": { - "size": 4 - }, - "internal": true - }, { "name": "s", "loader": "subslice", "loader_args": { - "bits_length_var": "x", + "bits_length_var_size": 4, "bits_padding": 0 } } @@ -19077,28 +19013,12 @@ "prefix": "CFC0_", "operands": [ { - "name": "x", - "loader": "uint", - "loader_args": { - "size": 2 - }, - "internal": true - }, - { - "name": "y", - "loader": "uint", - "loader_args": { - "size": 3 - }, - "internal": true - }, - { - "name": "sss", + "name": "s", "loader": "subslice", "loader_args": { - "bits_length_var": "y", + "bits_length_var_size": 3, "bits_padding": 2, - "refs_length_var": "x", + "refs_length_var_size": 2, "completion_tag": true } } @@ -21157,19 +21077,11 @@ "tlb": "#D72A_ x:(## 7) sss:((8 * x + 3) * Bit)", "prefix": "D72A_", "operands": [ - { - "name": "x", - "loader": "uint", - "loader_args": { - "size": 7 - }, - "internal": true - }, { "name": "s", "loader": "subslice", "loader_args": { - "bits_length_var": "x", + "bits_length_var_size": 7, "bits_padding": 3, "completion_tag": true } @@ -21211,19 +21123,11 @@ "tlb": "#D72E_ x:(## 7) sss:((8 * x + 3) * Bit)", "prefix": "D72E_", "operands": [ - { - "name": "x", - "loader": "uint", - "loader_args": { - "size": 7 - }, - "internal": true - }, { "name": "s", "loader": "subslice", "loader_args": { - "bits_length_var": "x", + "bits_length_var_size": 7, "bits_padding": 3, "completion_tag": true } @@ -43109,19 +43013,11 @@ "tlb": "#FEF n:(## 4) ssss:((n * 8 + 8) * Bit)", "prefix": "FEF", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 4 - }, - "internal": true - }, { "name": "s", "loader": "subslice", "loader_args": { - "bits_length_var": "n", + "bits_length_var_size": 4, "bits_padding": 8 } } diff --git a/schema.json b/schema.json index b3f73a8..0fa4091 100644 --- a/schema.json +++ b/schema.json @@ -623,12 +623,6 @@ "type": "object", "title": "Arguments for loader function. Optional, no arguments in case of absence.", "default": {} - }, - "internal": { - "type": "boolean", - "title": "Internal flag", - "description": "If true, this operand is used as a subslice length variable, should be used only for serialization/deserialization, humans and implementations do not need them.", - "default": false } }, "required": [ From 8becb039296661ca859e1d686b177d3a09e35f1f Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Mon, 26 Feb 2024 22:09:50 +0700 Subject: [PATCH 02/27] Fix refs_add doc --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f5c1459..3f7ed1c 100644 --- a/README.md +++ b/README.md @@ -227,7 +227,7 @@ Loads `r` uint of size `refs_length_var_size` (if present), `x` uint of size `bi | bits_length_var_size | Size of bit length operand. Optional, assuming this part of bit length is 0 if absent. | bits_padding | Constant integer value to add to length of bitstring to load. Optional, assuming 0 if absent. | refs_length_var_size | Size of ref count operand. Optional, assuming this part of ref count is 0 if absent. -| refs_add | Constant integer value to add to ref count. Optional, assuming 1 if absent. +| refs_add | Constant integer value to add to ref count. Optional, assuming 0 if absent. | completion_tag | Boolean flag, tells to remove trailing `'1' + '0' * x` from bitstring if true. Optional, assuming false if absent. ### Stack Entry Specification and Examples From 0de61b8788392daf5afaa7c9b66777221e9264a1 Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Mon, 26 Feb 2024 22:13:05 +0700 Subject: [PATCH 03/27] Format document --- cp0.json | 87478 +++++++++++++++++++++++++++-------------------------- 1 file changed, 43798 insertions(+), 43680 deletions(-) diff --git a/cp0.json b/cp0.json index 6eeaca4..284ed42 100644 --- a/cp0.json +++ b/cp0.json @@ -1,43816 +1,43934 @@ { - "$schema": "./schema.json", - "instructions": [ - { - "mnemonic": "NOP", - "doc": { - "category": "stack_basic", - "description": "Does nothing.", - "gas": "18", - "fift": "NOP" - }, - "bytecode": { - "doc_opcode": "00", - "tlb": "#00", - "prefix": "00", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "XCHG_0I", - "doc": { - "category": "stack_basic", - "description": "Interchanges `s0` with `s[i]`, `1 <= i <= 15`.", - "gas": "18", - "fift": "s[i] XCHG0" - }, - "bytecode": { - "doc_opcode": "0i", - "tlb": "#0 i:(## 4) {1 <= i}", - "prefix": "0", - "operands_range_check": { - "length": 4, - "from": 1, - "to": 15 - }, - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "XCHG_IJ", - "doc": { - "category": "stack_basic", - "description": "Interchanges `s[i]` with `s[j]`, `1 <= i < j <= 15`.", - "gas": "26", - "fift": "s[i] s[j] XCHG" - }, - "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 - }, - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "XCHG_0I_LONG", - "doc": { - "category": "stack_basic", - "description": "Interchanges `s0` with `s[ii]`, `0 <= ii <= 255`.", - "gas": "26", - "fift": "s0 [ii] s() XCHG" - }, - "bytecode": { - "doc_opcode": "11ii", - "tlb": "#11 ii:uint8", - "prefix": "11", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "XCHG_1I", - "doc": { - "category": "stack_basic", - "description": "Interchanges `s1` with `s[i]`, `2 <= i <= 15`.", - "gas": "18", - "fift": "s1 s[i] XCHG" - }, - "bytecode": { - "doc_opcode": "1i", - "tlb": "#1 i:(## 4) {2 <= i}", - "prefix": "1", - "operands_range_check": { - "length": 4, - "from": 2, - "to": 15 - }, - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "PUSH", - "doc": { - "category": "stack_basic", - "description": "Pushes a copy of the old `s[i]` into the stack.", - "gas": "18", - "fift": "s[i] PUSH" - }, - "bytecode": { - "doc_opcode": "2i", - "tlb": "#2 i:uint4", - "prefix": "2", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "POP", - "doc": { - "category": "stack_basic", - "description": "Pops the old `s0` value into the old `s[i]`.", - "gas": "18", - "fift": "s[i] POP" - }, - "bytecode": { - "doc_opcode": "3i", - "tlb": "#3 i:uint4", - "prefix": "3", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "XCHG3", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s2 s[i] XCHG` `s1 s[j] XCHG` `s[k] XCHG0`.", - "gas": "26", - "fift": "s[i] s[j] s[k] XCHG3" - }, - "bytecode": { - "doc_opcode": "4ijk", - "tlb": "#4 i:uint4 j:uint4 k:uint4", - "prefix": "4", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "XCHG2", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s1 s[i] XCHG` `s[j] XCHG0`.", - "gas": "26", - "fift": "s[i] s[j] XCHG2" - }, - "bytecode": { - "doc_opcode": "50ij", - "tlb": "#50 i:uint4 j:uint4", - "prefix": "50", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "XCPU", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s[i] XCHG0` `s[j] PUSH`.", - "gas": "26", - "fift": "s[i] s[j] XCPU" - }, - "bytecode": { - "doc_opcode": "51ij", - "tlb": "#51 i:uint4 j:uint4", - "prefix": "51", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "PUXC", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s[i] PUSH` `SWAP` `s[j] XCHG0`.", - "gas": "26", - "fift": "s[i] s[j-1] PUXC" - }, - "bytecode": { - "doc_opcode": "52ij", - "tlb": "#52 i:uint4 j:uint4", - "prefix": "52", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "PUSH2", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s[i] PUSH` `s[j+1] PUSH`.", - "gas": "26", - "fift": "s[i] s[j] PUSH2" - }, - "bytecode": { - "doc_opcode": "53ij", - "tlb": "#53 i:uint4 j:uint4", - "prefix": "53", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "XCHG3_ALT", - "doc": { - "category": "stack_complex", - "description": "Long form of `XCHG3`.", - "gas": "34", - "fift": "s[i] s[j] s[k] XCHG3_l" - }, - "bytecode": { - "doc_opcode": "540ijk", - "tlb": "#540 i:uint4 j:uint4 k:uint4", - "prefix": "540", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "XC2PU", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s[i] s[j] XCHG2` `s[k] PUSH`.", - "gas": "34", - "fift": "s[i] s[j] s[k] XC2PU" - }, - "bytecode": { - "doc_opcode": "541ijk", - "tlb": "#541 i:uint4 j:uint4 k:uint4", - "prefix": "541", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "XCPUXC", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s1 s[i] XCHG` `s[j] s[k-1] PUXC`.", - "gas": "34", - "fift": "s[i] s[j] s[k-1] XCPUXC" - }, - "bytecode": { - "doc_opcode": "542ijk", - "tlb": "#542 i:uint4 j:uint4 k:uint4", - "prefix": "542", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "XCPU2", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s[i] XCHG0` `s[j] s[k] PUSH2`.", - "gas": "34", - "fift": "s[i] s[j] s[k] XCPU2" - }, - "bytecode": { - "doc_opcode": "543ijk", - "tlb": "#543 i:uint4 j:uint4 k:uint4", - "prefix": "543", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "PUXC2", - "doc": { - "category": "stack_complex", - "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" - }, - "bytecode": { - "doc_opcode": "544ijk", - "tlb": "#544 i:uint4 j:uint4 k:uint4", - "prefix": "544", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "PUXCPU", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s[i] s[j-1] PUXC` `s[k] PUSH`.", - "gas": "34", - "fift": "s[i] s[j-1] s[k-1] PUXCPU" - }, - "bytecode": { - "doc_opcode": "545ijk", - "tlb": "#545 i:uint4 j:uint4 k:uint4", - "prefix": "545", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "PU2XC", - "doc": { - "category": "stack_complex", - "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" - }, - "bytecode": { - "doc_opcode": "546ijk", - "tlb": "#546 i:uint4 j:uint4 k:uint4", - "prefix": "546", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "PUSH3", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s[i] PUSH` `s[j+1] s[k+1] PUSH2`.", - "gas": "34", - "fift": "s[i] s[j] s[k] PUSH3" - }, - "bytecode": { - "doc_opcode": "547ijk", - "tlb": "#547 i:uint4 j:uint4 k:uint4", - "prefix": "547", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } + "$schema": "./schema.json", + "instructions": [ + { + "mnemonic": "NOP", + "doc": { + "category": "stack_basic", + "description": "Does nothing.", + "gas": "18", + "fift": "NOP" + }, + "bytecode": { + "doc_opcode": "00", + "tlb": "#00", + "prefix": "00", + "operands": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "XCHG_0I", + "doc": { + "category": "stack_basic", + "description": "Interchanges `s0` with `s[i]`, `1 <= i <= 15`.", + "gas": "18", + "fift": "s[i] XCHG0" + }, + "bytecode": { + "doc_opcode": "0i", + "tlb": "#0 i:(## 4) {1 <= i}", + "prefix": "0", + "operands_range_check": { + "length": 4, + "from": 1, + "to": 15 + }, + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "XCHG_IJ", + "doc": { + "category": "stack_basic", + "description": "Interchanges `s[i]` with `s[j]`, `1 <= i < j <= 15`.", + "gas": "26", + "fift": "s[i] s[j] XCHG" + }, + "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 + }, + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "XCHG_0I_LONG", + "doc": { + "category": "stack_basic", + "description": "Interchanges `s0` with `s[ii]`, `0 <= ii <= 255`.", + "gas": "26", + "fift": "s0 [ii] s() XCHG" + }, + "bytecode": { + "doc_opcode": "11ii", + "tlb": "#11 ii:uint8", + "prefix": "11", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "XCHG_1I", + "doc": { + "category": "stack_basic", + "description": "Interchanges `s1` with `s[i]`, `2 <= i <= 15`.", + "gas": "18", + "fift": "s1 s[i] XCHG" + }, + "bytecode": { + "doc_opcode": "1i", + "tlb": "#1 i:(## 4) {2 <= i}", + "prefix": "1", + "operands_range_check": { + "length": 4, + "from": 2, + "to": 15 + }, + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "PUSH", + "doc": { + "category": "stack_basic", + "description": "Pushes a copy of the old `s[i]` into the stack.", + "gas": "18", + "fift": "s[i] PUSH" + }, + "bytecode": { + "doc_opcode": "2i", + "tlb": "#2 i:uint4", + "prefix": "2", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "POP", + "doc": { + "category": "stack_basic", + "description": "Pops the old `s0` value into the old `s[i]`.", + "gas": "18", + "fift": "s[i] POP" + }, + "bytecode": { + "doc_opcode": "3i", + "tlb": "#3 i:uint4", + "prefix": "3", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "XCHG3", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s2 s[i] XCHG` `s1 s[j] XCHG` `s[k] XCHG0`.", + "gas": "26", + "fift": "s[i] s[j] s[k] XCHG3" + }, + "bytecode": { + "doc_opcode": "4ijk", + "tlb": "#4 i:uint4 j:uint4 k:uint4", + "prefix": "4", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "k", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "XCHG2", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s1 s[i] XCHG` `s[j] XCHG0`.", + "gas": "26", + "fift": "s[i] s[j] XCHG2" + }, + "bytecode": { + "doc_opcode": "50ij", + "tlb": "#50 i:uint4 j:uint4", + "prefix": "50", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "XCPU", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s[i] XCHG0` `s[j] PUSH`.", + "gas": "26", + "fift": "s[i] s[j] XCPU" + }, + "bytecode": { + "doc_opcode": "51ij", + "tlb": "#51 i:uint4 j:uint4", + "prefix": "51", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "PUXC", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s[i] PUSH` `SWAP` `s[j] XCHG0`.", + "gas": "26", + "fift": "s[i] s[j-1] PUXC" + }, + "bytecode": { + "doc_opcode": "52ij", + "tlb": "#52 i:uint4 j:uint4", + "prefix": "52", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "PUSH2", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s[i] PUSH` `s[j+1] PUSH`.", + "gas": "26", + "fift": "s[i] s[j] PUSH2" + }, + "bytecode": { + "doc_opcode": "53ij", + "tlb": "#53 i:uint4 j:uint4", + "prefix": "53", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "XCHG3_ALT", + "doc": { + "category": "stack_complex", + "description": "Long form of `XCHG3`.", + "gas": "34", + "fift": "s[i] s[j] s[k] XCHG3_l" + }, + "bytecode": { + "doc_opcode": "540ijk", + "tlb": "#540 i:uint4 j:uint4 k:uint4", + "prefix": "540", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "k", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "XC2PU", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s[i] s[j] XCHG2` `s[k] PUSH`.", + "gas": "34", + "fift": "s[i] s[j] s[k] XC2PU" + }, + "bytecode": { + "doc_opcode": "541ijk", + "tlb": "#541 i:uint4 j:uint4 k:uint4", + "prefix": "541", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "k", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "XCPUXC", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s1 s[i] XCHG` `s[j] s[k-1] PUXC`.", + "gas": "34", + "fift": "s[i] s[j] s[k-1] XCPUXC" + }, + "bytecode": { + "doc_opcode": "542ijk", + "tlb": "#542 i:uint4 j:uint4 k:uint4", + "prefix": "542", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "k", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "XCPU2", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s[i] XCHG0` `s[j] s[k] PUSH2`.", + "gas": "34", + "fift": "s[i] s[j] s[k] XCPU2" + }, + "bytecode": { + "doc_opcode": "543ijk", + "tlb": "#543 i:uint4 j:uint4 k:uint4", + "prefix": "543", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "k", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "PUXC2", + "doc": { + "category": "stack_complex", + "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" + }, + "bytecode": { + "doc_opcode": "544ijk", + "tlb": "#544 i:uint4 j:uint4 k:uint4", + "prefix": "544", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "k", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "PUXCPU", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s[i] s[j-1] PUXC` `s[k] PUSH`.", + "gas": "34", + "fift": "s[i] s[j-1] s[k-1] PUXCPU" + }, + "bytecode": { + "doc_opcode": "545ijk", + "tlb": "#545 i:uint4 j:uint4 k:uint4", + "prefix": "545", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "k", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "PU2XC", + "doc": { + "category": "stack_complex", + "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" + }, + "bytecode": { + "doc_opcode": "546ijk", + "tlb": "#546 i:uint4 j:uint4 k:uint4", + "prefix": "546", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "k", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "PUSH3", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s[i] PUSH` `s[j+1] s[k+1] PUSH2`.", + "gas": "34", + "fift": "s[i] s[j] s[k] PUSH3" + }, + "bytecode": { + "doc_opcode": "547ijk", + "tlb": "#547 i:uint4 j:uint4 k:uint4", + "prefix": "547", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "k", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "BLKSWAP", + "doc": { + "category": "stack_complex", + "description": "Permutes two blocks `s[j+i+1] \u0432\u0402\u00a6 s[j+1]` and `s[j] \u0432\u0402\u00a6 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" + }, + "bytecode": { + "doc_opcode": "55ij", + "tlb": "#55 i:uint4 j:uint4", + "prefix": "55", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "PUSH_LONG", + "doc": { + "category": "stack_complex", + "description": "Pushes a copy of the old `s[ii]` into the stack.\n`0 <= ii <= 255`", + "gas": "26", + "fift": "[ii] s() PUSH" + }, + "bytecode": { + "doc_opcode": "56ii", + "tlb": "#56 ii:uint8", + "prefix": "56", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "POP_LONG", + "doc": { + "category": "stack_complex", + "description": "Pops the old `s0` value into the old `s[ii]`.\n`0 <= ii <= 255`", + "gas": "26", + "fift": "[ii] s() POP" + }, + "bytecode": { + "doc_opcode": "57ii", + "tlb": "#57 ii:uint8", + "prefix": "57", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "ROT", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `1 2 BLKSWAP` or to `s2 s1 XCHG2`.", + "gas": "18", + "fift": "ROT" + }, + "bytecode": { + "doc_opcode": "58", + "tlb": "#58", + "prefix": "58", + "operands": [] + }, + "value_flow": { + "doc_stack": "a b c - b c a" + } + }, + { + "mnemonic": "ROTREV", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `2 1 BLKSWAP` or to `s2 s2 XCHG2`.", + "gas": "18", + "fift": "ROTREV\n-ROT" + }, + "bytecode": { + "doc_opcode": "59", + "tlb": "#59", + "prefix": "59", + "operands": [] + }, + "value_flow": { + "doc_stack": "a b c - c a b" + } + }, + { + "mnemonic": "SWAP2", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `2 2 BLKSWAP` or to `s3 s2 XCHG2`.", + "gas": "18", + "fift": "SWAP2\n2SWAP" + }, + "bytecode": { + "doc_opcode": "5A", + "tlb": "#5A", + "prefix": "5A", + "operands": [] + }, + "value_flow": { + "doc_stack": "a b c d - c d a b" + } + }, + { + "mnemonic": "DROP2", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `DROP` `DROP`.", + "gas": "18", + "fift": "DROP2\n2DROP" + }, + "bytecode": { + "doc_opcode": "5B", + "tlb": "#5B", + "prefix": "5B", + "operands": [] + }, + "value_flow": { + "doc_stack": "a b - " + } + }, + { + "mnemonic": "DUP2", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s1 s0 PUSH2`.", + "gas": "18", + "fift": "DUP2\n2DUP" + }, + "bytecode": { + "doc_opcode": "5C", + "tlb": "#5C", + "prefix": "5C", + "operands": [] + }, + "value_flow": { + "doc_stack": "a b - a b a b" + } + }, + { + "mnemonic": "OVER2", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s3 s2 PUSH2`.", + "gas": "18", + "fift": "OVER2\n2OVER" + }, + "bytecode": { + "doc_opcode": "5D", + "tlb": "#5D", + "prefix": "5D", + "operands": [] + }, + "value_flow": { + "doc_stack": "a b c d - a b c d a b" + } + }, + { + "mnemonic": "REVERSE", + "doc": { + "category": "stack_complex", + "description": "Reverses the order of `s[j+i+1] \u0432\u0402\u00a6 s[j]`.", + "gas": "26", + "fift": "[i+2] [j] REVERSE" + }, + "bytecode": { + "doc_opcode": "5Eij", + "tlb": "#5E i:uint4 j:uint4", + "prefix": "5E", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "BLKDROP", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `DROP` performed `i` times.", + "gas": "26", + "fift": "[i] BLKDROP" + }, + "bytecode": { + "doc_opcode": "5F0i", + "tlb": "#5F0 i:uint4", + "prefix": "5F0", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "BLKPUSH", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `PUSH s(j)` performed `i` times.\n`1 <= i <= 15`, `0 <= j <= 15`.", + "gas": "26", + "fift": "[i] [j] BLKPUSH" + }, + "bytecode": { + "doc_opcode": "5Fij", + "tlb": "#5F i:(## 4) j:uint4 {1 <= i}", + "prefix": "5F", + "operands_range_check": { + "length": 4, + "from": 1, + "to": 15 + }, + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "PICK", + "doc": { + "category": "stack_complex", + "description": "Pops integer `i` from the stack, then performs `s[i] PUSH`.", + "gas": "18", + "fift": "PICK\nPUSHX" + }, + "bytecode": { + "doc_opcode": "60", + "tlb": "#60", + "prefix": "60", + "operands": [] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "ROLLX", + "doc": { + "category": "stack_complex", + "description": "Pops integer `i` from the stack, then performs `1 [i] BLKSWAP`.", + "gas": "18", + "fift": "ROLLX" + }, + "bytecode": { + "doc_opcode": "61", + "tlb": "#61", + "prefix": "61", + "operands": [] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "-ROLLX", + "doc": { + "category": "stack_complex", + "description": "Pops integer `i` from the stack, then performs `[i] 1 BLKSWAP`.", + "gas": "18", + "fift": "-ROLLX\nROLLREVX" + }, + "bytecode": { + "doc_opcode": "62", + "tlb": "#62", + "prefix": "62", + "operands": [] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "BLKSWX", + "doc": { + "category": "stack_complex", + "description": "Pops integers `i`,`j` from the stack, then performs `[i] [j] BLKSWAP`.", + "gas": "18", + "fift": "BLKSWX" + }, + "bytecode": { + "doc_opcode": "63", + "tlb": "#63", + "prefix": "63", + "operands": [] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "REVX", + "doc": { + "category": "stack_complex", + "description": "Pops integers `i`,`j` from the stack, then performs `[i] [j] REVERSE`.", + "gas": "18", + "fift": "REVX" + }, + "bytecode": { + "doc_opcode": "64", + "tlb": "#64", + "prefix": "64", + "operands": [] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "DROPX", + "doc": { + "category": "stack_complex", + "description": "Pops integer `i` from the stack, then performs `[i] BLKDROP`.", + "gas": "18", + "fift": "DROPX" + }, + "bytecode": { + "doc_opcode": "65", + "tlb": "#65", + "prefix": "65", + "operands": [] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "TUCK", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `SWAP` `OVER` or to `s1 s1 XCPU`.", + "gas": "18", + "fift": "TUCK" + }, + "bytecode": { + "doc_opcode": "66", + "tlb": "#66", + "prefix": "66", + "operands": [] + }, + "value_flow": { + "doc_stack": "a b - b a b" + } + }, + { + "mnemonic": "XCHGX", + "doc": { + "category": "stack_complex", + "description": "Pops integer `i` from the stack, then performs `s[i] XCHG`.", + "gas": "18", + "fift": "XCHGX" + }, + "bytecode": { + "doc_opcode": "67", + "tlb": "#67", + "prefix": "67", + "operands": [] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "DEPTH", + "doc": { + "category": "stack_complex", + "description": "Pushes the current depth of the stack.", + "gas": "18", + "fift": "DEPTH" + }, + "bytecode": { + "doc_opcode": "68", + "tlb": "#68", + "prefix": "68", + "operands": [] + }, + "value_flow": { + "doc_stack": "- depth", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "depth", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "CHKDEPTH", + "doc": { + "category": "stack_complex", + "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" + }, + "bytecode": { + "doc_opcode": "69", + "tlb": "#69", + "prefix": "69", + "operands": [] + }, + "value_flow": { + "doc_stack": "i -", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "ONLYTOPX", + "doc": { + "category": "stack_complex", + "description": "Pops integer `i` from the stack, then removes all but the top `i` elements.", + "gas": "18", + "fift": "ONLYTOPX" + }, + "bytecode": { + "doc_opcode": "6A", + "tlb": "#6A", + "prefix": "6A", + "operands": [] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "ONLYX", + "doc": { + "category": "stack_complex", + "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" + }, + "bytecode": { + "doc_opcode": "6B", + "tlb": "#6B", + "prefix": "6B", + "operands": [] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "BLKDROP2", + "doc": { + "category": "stack_complex", + "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" + }, + "bytecode": { + "doc_opcode": "6Cij", + "tlb": "#6C i:(## 4) j:uint4 {1 <= i}", + "prefix": "6C", + "operands_range_check": { + "length": 4, + "from": 1, + "to": 15 + }, + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "" + } + }, + { + "mnemonic": "NULL", + "doc": { + "category": "tuple", + "description": "Pushes the only value of type _Null_.", + "gas": "18", + "fift": "NULL\nPUSHNULL" + }, + "bytecode": { + "doc_opcode": "6D", + "tlb": "#6D", + "prefix": "6D", + "operands": [] + }, + "value_flow": { + "doc_stack": " - null", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "const", + "value": null, + "value_type": "Null" + } + ] + } + } + }, + { + "mnemonic": "ISNULL", + "doc": { + "category": "tuple", + "description": "Checks whether `x` is a _Null_, and returns `-1` or `0` accordingly.", + "gas": "18", + "fift": "ISNULL" + }, + "bytecode": { + "doc_opcode": "6E", + "tlb": "#6E", + "prefix": "6E", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "TUPLE", + "doc": { + "category": "tuple", + "description": "Creates a new _Tuple_ `t=(x_1, \u0432\u0402\u00a6 ,x_n)` containing `n` values `x_1`,..., `x_n`.\n`0 <= n <= 15`", + "gas": "26+n", + "fift": "[n] TUPLE" + }, + "bytecode": { + "doc_opcode": "6F0n", + "tlb": "#6F0 n:uint4", + "prefix": "6F0", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "x_1 ... x_n - t", + "inputs": { + "stack": [ + { + "type": "array", + "name": "tuple_elements", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "x" + } + ] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + } + ] + } + } + }, + { + "mnemonic": "INDEX", + "doc": { + "category": "tuple", + "description": "Returns the `k`-th element of a _Tuple_ `t`.\n`0 <= k <= 15`.", + "gas": "26", + "fift": "[k] INDEX" + }, + "bytecode": { + "doc_opcode": "6F1k", + "tlb": "#6F1 k:uint4", + "prefix": "6F1", + "operands": [ + { + "name": "k", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "t - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x" + } + ] + } + } + }, + { + "mnemonic": "UNTUPLE", + "doc": { + "category": "tuple", + "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" + }, + "bytecode": { + "doc_opcode": "6F2n", + "tlb": "#6F2 n:uint4", + "prefix": "6F2", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "t - x_1 ... x_n", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "array", + "name": "tuple_elements", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "x" + } + ] + } + ] + } + } + }, + { + "mnemonic": "UNPACKFIRST", + "doc": { + "category": "tuple", + "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" + }, + "bytecode": { + "doc_opcode": "6F5k", + "tlb": "#6F5 k:uint4", + "prefix": "6F5", + "operands": [ + { + "name": "k", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "t x - t'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + }, + { + "type": "simple", + "name": "x" + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "t2", + "value_types": ["Tuple"] + } + ] + } + } + }, + { + "mnemonic": "INDEXQ", + "doc": { + "category": "tuple", + "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" + }, + "bytecode": { + "doc_opcode": "6F6k", + "tlb": "#6F6 k:uint4", + "prefix": "6F6", + "operands": [ + { + "name": "k", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "t - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple", "Null"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x" + } + ] + } + } + }, + { + "mnemonic": "SETINDEXQ", + "doc": { + "category": "tuple", + "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\u0432\u0402\u2122=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\u0432\u0402\u2122|", + "fift": "[k] SETINDEXQ" + }, + "bytecode": { + "doc_opcode": "6F7k", + "tlb": "#6F7 k:uint4", + "prefix": "6F7", + "operands": [ + { + "name": "k", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "t x - t'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple", "Null"] + }, + { + "type": "simple", + "name": "x" + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "t2", + "value_types": ["Tuple", "Null"] + } + ] + } + } + }, + { + "mnemonic": "TUPLEVAR", + "doc": { + "category": "tuple", + "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" + }, + "bytecode": { + "doc_opcode": "6F80", + "tlb": "#6F80", + "prefix": "6F80", + "operands": [] + }, + "value_flow": { + "doc_stack": "x_1 ... x_n n - t", + "inputs": { + "stack": [ + { + "type": "array", + "name": "tuple_elements", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "x" + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + } + ] + } + } + }, + { + "mnemonic": "INDEXVAR", + "doc": { + "category": "tuple", + "description": "Similar to `k INDEX`, but with `0 <= k <= 254` taken from the stack.", + "gas": "26", + "fift": "INDEXVAR" + }, + "bytecode": { + "doc_opcode": "6F81", + "tlb": "#6F81", + "prefix": "6F81", + "operands": [] + }, + "value_flow": { + "doc_stack": "t k - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x" + } + ] + } + } + }, + { + "mnemonic": "UNTUPLEVAR", + "doc": { + "category": "tuple", + "description": "Similar to `n UNTUPLE`, but with `0 <= n <= 255` taken from the stack.", + "gas": "26+n", + "fift": "UNTUPLEVAR" + }, + "bytecode": { + "doc_opcode": "6F82", + "tlb": "#6F82", + "prefix": "6F82", + "operands": [] + }, + "value_flow": { + "doc_stack": "t n - x_1 ... x_n", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "array", + "name": "tuple_elements", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "x" + } + ] + } + ] + } + } + }, + { + "mnemonic": "UNPACKFIRSTVAR", + "doc": { + "category": "tuple", + "description": "Similar to `n UNPACKFIRST`, but with `0 <= n <= 255` taken from the stack.", + "gas": "26+n", + "fift": "UNPACKFIRSTVAR" + }, + "bytecode": { + "doc_opcode": "6F83", + "tlb": "#6F83", + "prefix": "6F83", + "operands": [] + }, + "value_flow": { + "doc_stack": "t n - x_1 ... x_n", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "array", + "name": "tuple_elements", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "x" + } + ] + } + ] + } + } + }, + { + "mnemonic": "EXPLODEVAR", + "doc": { + "category": "tuple", + "description": "Similar to `n EXPLODE`, but with `0 <= n <= 255` taken from the stack.", + "gas": "26+m", + "fift": "EXPLODEVAR" + }, + "bytecode": { + "doc_opcode": "6F84", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "array", + "name": "tuple_elements", + "length_var": "m", + "array_entry": [ + { + "type": "simple", + "name": "x" + } + ] + }, + { + "type": "simple", + "name": "m", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SETINDEXVAR", + "doc": { + "category": "tuple", + "description": "Similar to `k SETINDEX`, but with `0 <= k <= 254` taken from the stack.", + "gas": "26+|t\u0432\u0402\u2122|", + "fift": "SETINDEXVAR" + }, + "bytecode": { + "doc_opcode": "6F85", + "tlb": "#6F85", + "prefix": "6F85", + "operands": [] + }, + "value_flow": { + "doc_stack": "t x k - t'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + }, + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "k", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "t2", + "value_types": ["Tuple"] + } + ] + } + } + }, + { + "mnemonic": "INDEXVARQ", + "doc": { + "category": "tuple", + "description": "Similar to `n INDEXQ`, but with `0 <= k <= 254` taken from the stack.", + "gas": "26", + "fift": "INDEXVARQ" + }, + "bytecode": { + "doc_opcode": "6F86", + "tlb": "#6F86", + "prefix": "6F86", + "operands": [] + }, + "value_flow": { + "doc_stack": "t k - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple", "Null"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x" + } + ] + } + } + }, + { + "mnemonic": "SETINDEXVARQ", + "doc": { + "category": "tuple", + "description": "Similar to `k SETINDEXQ`, but with `0 <= k <= 254` taken from the stack.", + "gas": "26+|t\u0432\u0402\u2122|", + "fift": "SETINDEXVARQ" + }, + "bytecode": { + "doc_opcode": "6F87", + "tlb": "#6F87", + "prefix": "6F87", + "operands": [] + }, + "value_flow": { + "doc_stack": "t x k - t'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple", "Null"] + }, + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "k", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "t2", + "value_types": ["Tuple", "Null"] + } + ] + } + } + }, + { + "mnemonic": "TLEN", + "doc": { + "category": "tuple", + "description": "Returns the length of a _Tuple_.", + "gas": "26", + "fift": "TLEN" + }, + "bytecode": { + "doc_opcode": "6F88", + "tlb": "#6F88", + "prefix": "6F88", + "operands": [] + }, + "value_flow": { + "doc_stack": "t - n", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QTLEN", + "doc": { + "category": "tuple", + "description": "Similar to `TLEN`, but returns `-1` if `t` is not a _Tuple_.", + "gas": "26", + "fift": "QTLEN" + }, + "bytecode": { + "doc_opcode": "6F89", + "tlb": "#6F89", + "prefix": "6F89", + "operands": [] + }, + "value_flow": { + "doc_stack": "t - n or -1", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "ISTUPLE", + "doc": { + "category": "tuple", + "description": "Returns `-1` or `0` depending on whether `t` is a _Tuple_.", + "gas": "26", + "fift": "ISTUPLE" + }, + "bytecode": { + "doc_opcode": "6F8A", + "tlb": "#6F8A", + "prefix": "6F8A", + "operands": [] + }, + "value_flow": { + "doc_stack": "t - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LAST", + "doc": { + "category": "tuple", + "description": "Returns the last element of a non-empty _Tuple_ `t`.", + "gas": "26", + "fift": "LAST" + }, + "bytecode": { + "doc_opcode": "6F8B", + "tlb": "#6F8B", + "prefix": "6F8B", + "operands": [] + }, + "value_flow": { + "doc_stack": "t - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x" + } + ] + } + } + }, + { + "mnemonic": "TPUSH", + "doc": { + "category": "tuple", + "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\u0432\u0402\u2122|", + "fift": "TPUSH\nCOMMA" + }, + "bytecode": { + "doc_opcode": "6F8C", + "tlb": "#6F8C", + "prefix": "6F8C", + "operands": [] + }, + "value_flow": { + "doc_stack": "t x - t'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + }, + { + "type": "simple", + "name": "x" + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "t2", + "value_types": ["Tuple"] + } + ] + } + } + }, + { + "mnemonic": "TPOP", + "doc": { + "category": "tuple", + "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\u0432\u0402\u2122|", + "fift": "TPOP" + }, + "bytecode": { + "doc_opcode": "6F8D", + "tlb": "#6F8D", + "prefix": "6F8D", + "operands": [] + }, + "value_flow": { + "doc_stack": "t - t' x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "t2", + "value_types": ["Tuple"] + }, + { + "type": "simple", + "name": "x" + } + ] + } + } + }, + { + "mnemonic": "NULLSWAPIF", + "doc": { + "category": "tuple", + "description": "Pushes a _Null_ under the topmost _Integer_ `x`, but only if `x!=0`.", + "gas": "26", + "fift": "NULLSWAPIF" + }, + "bytecode": { + "doc_opcode": "6FA0", + "tlb": "#6FA0", + "prefix": "6FA0", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - x or null x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "x", + "match": [ + { + "value": 0, + "stack": [] + } + ], + "else": [ + { + "type": "const", + "value": null, + "value_type": "Null" + } + ] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "NULLSWAPIFNOT", + "doc": { + "category": "tuple", + "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" + }, + "bytecode": { + "doc_opcode": "6FA1", + "tlb": "#6FA1", + "prefix": "6FA1", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - x or null x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "x", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "const", + "value": null, + "value_type": "Null" + } + ] + } + ], + "else": [] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "NULLROTRIF", + "doc": { + "category": "tuple", + "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" + }, + "bytecode": { + "doc_opcode": "6FA2", + "tlb": "#6FA2", + "prefix": "6FA2", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x y or null x y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "y", + "match": [ + { + "value": 0, + "stack": [] + } + ], + "else": [ + { + "type": "const", + "value": null, + "value_type": "Null" + } + ] + }, + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "NULLROTRIFNOT", + "doc": { + "category": "tuple", + "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" + }, + "bytecode": { + "doc_opcode": "6FA3", + "tlb": "#6FA3", + "prefix": "6FA3", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x y or null x y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "y", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "const", + "value": null, + "value_type": "Null" + } + ] + } + ], + "else": [] + }, + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "NULLSWAPIF2", + "doc": { + "category": "tuple", + "description": "Pushes two nulls under the topmost _Integer_ `x`, but only if `x!=0`.\nEquivalent to `NULLSWAPIF` `NULLSWAPIF`.", + "gas": "26", + "fift": "NULLSWAPIF2" + }, + "bytecode": { + "doc_opcode": "6FA4", + "tlb": "#6FA4", + "prefix": "6FA4", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - x or null null x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "x", + "match": [ + { + "value": 0, + "stack": [] + } + ], + "else": [ + { + "type": "const", + "value": null, + "value_type": "Null" + }, + { + "type": "const", + "value": null, + "value_type": "Null" + } + ] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "NULLSWAPIFNOT2", + "doc": { + "category": "tuple", + "description": "Pushes two nulls under the topmost _Integer_ `x`, but only if `x=0`.\nEquivalent to `NULLSWAPIFNOT` `NULLSWAPIFNOT`.", + "gas": "26", + "fift": "NULLSWAPIFNOT2" + }, + "bytecode": { + "doc_opcode": "6FA5", + "tlb": "#6FA5", + "prefix": "6FA5", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - x or null null x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "x", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "const", + "value": null, + "value_type": "Null" }, { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } + "type": "const", + "value": null, + "value_type": "Null" } - ] + ] + } + ], + "else": [] }, - "value_flow": { - "doc_stack": "" + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] } - }, - { - "mnemonic": "BLKSWAP", - "doc": { - "category": "stack_complex", - "description": "Permutes two blocks `s[j+i+1] \u0432\u0402\u00a6 s[j+1]` and `s[j] \u0432\u0402\u00a6 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" - }, - "bytecode": { - "doc_opcode": "55ij", - "tlb": "#55 i:uint4 j:uint4", - "prefix": "55", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } + ] + } + } + }, + { + "mnemonic": "NULLROTRIF2", + "doc": { + "category": "tuple", + "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" + }, + "bytecode": { + "doc_opcode": "6FA6", + "tlb": "#6FA6", + "prefix": "6FA6", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x y or null null x y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "y", + "match": [ + { + "value": 0, + "stack": [] + } + ], + "else": [ + { + "type": "const", + "value": null, + "value_type": "Null" + }, + { + "type": "const", + "value": null, + "value_type": "Null" + } + ] + }, + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "NULLROTRIFNOT2", + "doc": { + "category": "tuple", + "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" + }, + "bytecode": { + "doc_opcode": "6FA7", + "tlb": "#6FA7", + "prefix": "6FA7", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x y or null null x y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "y", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "const", + "value": null, + "value_type": "Null" }, { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } + "type": "const", + "value": null, + "value_type": "Null" } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "PUSH_LONG", - "doc": { - "category": "stack_complex", - "description": "Pushes a copy of the old `s[ii]` into the stack.\n`0 <= ii <= 255`", - "gas": "26", - "fift": "[ii] s() PUSH" + ] + } + ], + "else": [] }, - "bytecode": { - "doc_opcode": "56ii", - "tlb": "#56 ii:uint8", - "prefix": "56", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] + { + "type": "simple", + "name": "x" }, - "value_flow": { - "doc_stack": "" + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] } - }, - { - "mnemonic": "POP_LONG", - "doc": { - "category": "stack_complex", - "description": "Pops the old `s0` value into the old `s[ii]`.\n`0 <= ii <= 255`", - "gas": "26", - "fift": "[ii] s() POP" - }, - "bytecode": { - "doc_opcode": "57ii", - "tlb": "#57 ii:uint8", - "prefix": "57", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "ROT", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `1 2 BLKSWAP` or to `s2 s1 XCHG2`.", - "gas": "18", - "fift": "ROT" - }, - "bytecode": { - "doc_opcode": "58", - "tlb": "#58", - "prefix": "58", - "operands": [] - }, - "value_flow": { - "doc_stack": "a b c - b c a" - } - }, - { - "mnemonic": "ROTREV", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `2 1 BLKSWAP` or to `s2 s2 XCHG2`.", - "gas": "18", - "fift": "ROTREV\n-ROT" - }, - "bytecode": { - "doc_opcode": "59", - "tlb": "#59", - "prefix": "59", - "operands": [] - }, - "value_flow": { - "doc_stack": "a b c - c a b" - } - }, - { - "mnemonic": "SWAP2", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `2 2 BLKSWAP` or to `s3 s2 XCHG2`.", - "gas": "18", - "fift": "SWAP2\n2SWAP" - }, - "bytecode": { - "doc_opcode": "5A", - "tlb": "#5A", - "prefix": "5A", - "operands": [] - }, - "value_flow": { - "doc_stack": "a b c d - c d a b" - } - }, - { - "mnemonic": "DROP2", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `DROP` `DROP`.", - "gas": "18", - "fift": "DROP2\n2DROP" - }, - "bytecode": { - "doc_opcode": "5B", - "tlb": "#5B", - "prefix": "5B", - "operands": [] - }, - "value_flow": { - "doc_stack": "a b - " - } - }, - { - "mnemonic": "DUP2", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s1 s0 PUSH2`.", - "gas": "18", - "fift": "DUP2\n2DUP" - }, - "bytecode": { - "doc_opcode": "5C", - "tlb": "#5C", - "prefix": "5C", - "operands": [] - }, - "value_flow": { - "doc_stack": "a b - a b a b" - } - }, - { - "mnemonic": "OVER2", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s3 s2 PUSH2`.", - "gas": "18", - "fift": "OVER2\n2OVER" - }, - "bytecode": { - "doc_opcode": "5D", - "tlb": "#5D", - "prefix": "5D", - "operands": [] - }, - "value_flow": { - "doc_stack": "a b c d - a b c d a b" - } - }, - { - "mnemonic": "REVERSE", - "doc": { - "category": "stack_complex", - "description": "Reverses the order of `s[j+i+1] \u0432\u0402\u00a6 s[j]`.", - "gas": "26", - "fift": "[i+2] [j] REVERSE" - }, - "bytecode": { - "doc_opcode": "5Eij", - "tlb": "#5E i:uint4 j:uint4", - "prefix": "5E", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "BLKDROP", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `DROP` performed `i` times.", - "gas": "26", - "fift": "[i] BLKDROP" - }, - "bytecode": { - "doc_opcode": "5F0i", - "tlb": "#5F0 i:uint4", - "prefix": "5F0", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "BLKPUSH", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `PUSH s(j)` performed `i` times.\n`1 <= i <= 15`, `0 <= j <= 15`.", - "gas": "26", - "fift": "[i] [j] BLKPUSH" - }, - "bytecode": { - "doc_opcode": "5Fij", - "tlb": "#5F i:(## 4) j:uint4 {1 <= i}", - "prefix": "5F", - "operands_range_check": { - "length": 4, - "from": 1, - "to": 15 - }, - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "PICK", - "doc": { - "category": "stack_complex", - "description": "Pops integer `i` from the stack, then performs `s[i] PUSH`.", - "gas": "18", - "fift": "PICK\nPUSHX" - }, - "bytecode": { - "doc_opcode": "60", - "tlb": "#60", - "prefix": "60", - "operands": [] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "ROLLX", - "doc": { - "category": "stack_complex", - "description": "Pops integer `i` from the stack, then performs `1 [i] BLKSWAP`.", - "gas": "18", - "fift": "ROLLX" - }, - "bytecode": { - "doc_opcode": "61", - "tlb": "#61", - "prefix": "61", - "operands": [] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "-ROLLX", - "doc": { - "category": "stack_complex", - "description": "Pops integer `i` from the stack, then performs `[i] 1 BLKSWAP`.", - "gas": "18", - "fift": "-ROLLX\nROLLREVX" - }, - "bytecode": { - "doc_opcode": "62", - "tlb": "#62", - "prefix": "62", - "operands": [] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "BLKSWX", - "doc": { - "category": "stack_complex", - "description": "Pops integers `i`,`j` from the stack, then performs `[i] [j] BLKSWAP`.", - "gas": "18", - "fift": "BLKSWX" - }, - "bytecode": { - "doc_opcode": "63", - "tlb": "#63", - "prefix": "63", - "operands": [] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "REVX", - "doc": { - "category": "stack_complex", - "description": "Pops integers `i`,`j` from the stack, then performs `[i] [j] REVERSE`.", - "gas": "18", - "fift": "REVX" - }, - "bytecode": { - "doc_opcode": "64", - "tlb": "#64", - "prefix": "64", - "operands": [] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "DROPX", - "doc": { - "category": "stack_complex", - "description": "Pops integer `i` from the stack, then performs `[i] BLKDROP`.", - "gas": "18", - "fift": "DROPX" - }, - "bytecode": { - "doc_opcode": "65", - "tlb": "#65", - "prefix": "65", - "operands": [] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "TUCK", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `SWAP` `OVER` or to `s1 s1 XCPU`.", - "gas": "18", - "fift": "TUCK" - }, - "bytecode": { - "doc_opcode": "66", - "tlb": "#66", - "prefix": "66", - "operands": [] - }, - "value_flow": { - "doc_stack": "a b - b a b" - } - }, - { - "mnemonic": "XCHGX", - "doc": { - "category": "stack_complex", - "description": "Pops integer `i` from the stack, then performs `s[i] XCHG`.", - "gas": "18", - "fift": "XCHGX" - }, - "bytecode": { - "doc_opcode": "67", - "tlb": "#67", - "prefix": "67", - "operands": [] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "DEPTH", - "doc": { - "category": "stack_complex", - "description": "Pushes the current depth of the stack.", - "gas": "18", - "fift": "DEPTH" - }, - "bytecode": { - "doc_opcode": "68", - "tlb": "#68", - "prefix": "68", - "operands": [] - }, - "value_flow": { - "doc_stack": "- depth", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "depth", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "CHKDEPTH", - "doc": { - "category": "stack_complex", - "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" - }, - "bytecode": { - "doc_opcode": "69", - "tlb": "#69", - "prefix": "69", - "operands": [] - }, - "value_flow": { - "doc_stack": "i -", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "ONLYTOPX", - "doc": { - "category": "stack_complex", - "description": "Pops integer `i` from the stack, then removes all but the top `i` elements.", - "gas": "18", - "fift": "ONLYTOPX" - }, - "bytecode": { - "doc_opcode": "6A", - "tlb": "#6A", - "prefix": "6A", - "operands": [] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "ONLYX", - "doc": { - "category": "stack_complex", - "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" - }, - "bytecode": { - "doc_opcode": "6B", - "tlb": "#6B", - "prefix": "6B", - "operands": [] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "BLKDROP2", - "doc": { - "category": "stack_complex", - "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" - }, - "bytecode": { - "doc_opcode": "6Cij", - "tlb": "#6C i:(## 4) j:uint4 {1 <= i}", - "prefix": "6C", - "operands_range_check": { - "length": 4, - "from": 1, - "to": 15 - }, - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "" - } - }, - { - "mnemonic": "NULL", - "doc": { - "category": "tuple", - "description": "Pushes the only value of type _Null_.", - "gas": "18", - "fift": "NULL\nPUSHNULL" - }, - "bytecode": { - "doc_opcode": "6D", - "tlb": "#6D", - "prefix": "6D", - "operands": [] - }, - "value_flow": { - "doc_stack": " - null", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - { - "type": "const", - "value": null, - "value_type": "Null" - } - ] - } - } - }, - { - "mnemonic": "ISNULL", - "doc": { - "category": "tuple", - "description": "Checks whether `x` is a _Null_, and returns `-1` or `0` accordingly.", - "gas": "18", - "fift": "ISNULL" - }, - "bytecode": { - "doc_opcode": "6E", - "tlb": "#6E", - "prefix": "6E", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "TUPLE", - "doc": { - "category": "tuple", - "description": "Creates a new _Tuple_ `t=(x_1, \u0432\u0402\u00a6 ,x_n)` containing `n` values `x_1`,..., `x_n`.\n`0 <= n <= 15`", - "gas": "26+n", - "fift": "[n] TUPLE" - }, - "bytecode": { - "doc_opcode": "6F0n", - "tlb": "#6F0 n:uint4", - "prefix": "6F0", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "x_1 ... x_n - t", - "inputs": { - "stack": [ - { - "type": "array", - "name": "tuple_elements", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] - } - } - }, - { - "mnemonic": "INDEX", - "doc": { - "category": "tuple", - "description": "Returns the `k`-th element of a _Tuple_ `t`.\n`0 <= k <= 15`.", - "gas": "26", - "fift": "[k] INDEX" - }, - "bytecode": { - "doc_opcode": "6F1k", - "tlb": "#6F1 k:uint4", - "prefix": "6F1", - "operands": [ - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "t - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } - } - }, - { - "mnemonic": "UNTUPLE", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6F2n", - "tlb": "#6F2 n:uint4", - "prefix": "6F2", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "t - x_1 ... x_n", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "array", - "name": "tuple_elements", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] - } - ] - } - } - }, - { - "mnemonic": "UNPACKFIRST", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6F5k", - "tlb": "#6F5 k:uint4", - "prefix": "6F5", - "operands": [ - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "t x - t'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - }, - { - "type": "simple", - "name": "x" - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "t2", - "value_types": ["Tuple"] - } - ] - } - } - }, - { - "mnemonic": "INDEXQ", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6F6k", - "tlb": "#6F6 k:uint4", - "prefix": "6F6", - "operands": [ - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "t - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple", "Null"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } - } - }, - { - "mnemonic": "SETINDEXQ", - "doc": { - "category": "tuple", - "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\u0432\u0402\u2122=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\u0432\u0402\u2122|", - "fift": "[k] SETINDEXQ" - }, - "bytecode": { - "doc_opcode": "6F7k", - "tlb": "#6F7 k:uint4", - "prefix": "6F7", - "operands": [ - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "t x - t'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple", "Null"] - }, - { - "type": "simple", - "name": "x" - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "t2", - "value_types": ["Tuple", "Null"] - } - ] - } - } - }, - { - "mnemonic": "TUPLEVAR", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6F80", - "tlb": "#6F80", - "prefix": "6F80", - "operands": [] - }, - "value_flow": { - "doc_stack": "x_1 ... x_n n - t", - "inputs": { - "stack": [ - { - "type": "array", - "name": "tuple_elements", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] - } - } - }, - { - "mnemonic": "INDEXVAR", - "doc": { - "category": "tuple", - "description": "Similar to `k INDEX`, but with `0 <= k <= 254` taken from the stack.", - "gas": "26", - "fift": "INDEXVAR" - }, - "bytecode": { - "doc_opcode": "6F81", - "tlb": "#6F81", - "prefix": "6F81", - "operands": [] - }, - "value_flow": { - "doc_stack": "t k - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } - } - }, - { - "mnemonic": "UNTUPLEVAR", - "doc": { - "category": "tuple", - "description": "Similar to `n UNTUPLE`, but with `0 <= n <= 255` taken from the stack.", - "gas": "26+n", - "fift": "UNTUPLEVAR" - }, - "bytecode": { - "doc_opcode": "6F82", - "tlb": "#6F82", - "prefix": "6F82", - "operands": [] - }, - "value_flow": { - "doc_stack": "t n - x_1 ... x_n", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "array", - "name": "tuple_elements", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] - } - ] - } - } - }, - { - "mnemonic": "UNPACKFIRSTVAR", - "doc": { - "category": "tuple", - "description": "Similar to `n UNPACKFIRST`, but with `0 <= n <= 255` taken from the stack.", - "gas": "26+n", - "fift": "UNPACKFIRSTVAR" - }, - "bytecode": { - "doc_opcode": "6F83", - "tlb": "#6F83", - "prefix": "6F83", - "operands": [] - }, - "value_flow": { - "doc_stack": "t n - x_1 ... x_n", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "array", - "name": "tuple_elements", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] - } - ] - } - } - }, - { - "mnemonic": "EXPLODEVAR", - "doc": { - "category": "tuple", - "description": "Similar to `n EXPLODE`, but with `0 <= n <= 255` taken from the stack.", - "gas": "26+m", - "fift": "EXPLODEVAR" - }, - "bytecode": { - "doc_opcode": "6F84", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "array", - "name": "tuple_elements", - "length_var": "m", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] - }, - { - "type": "simple", - "name": "m", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SETINDEXVAR", - "doc": { - "category": "tuple", - "description": "Similar to `k SETINDEX`, but with `0 <= k <= 254` taken from the stack.", - "gas": "26+|t\u0432\u0402\u2122|", - "fift": "SETINDEXVAR" - }, - "bytecode": { - "doc_opcode": "6F85", - "tlb": "#6F85", - "prefix": "6F85", - "operands": [] - }, - "value_flow": { - "doc_stack": "t x k - t'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - }, - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "k", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "t2", - "value_types": ["Tuple"] - } - ] - } - } - }, - { - "mnemonic": "INDEXVARQ", - "doc": { - "category": "tuple", - "description": "Similar to `n INDEXQ`, but with `0 <= k <= 254` taken from the stack.", - "gas": "26", - "fift": "INDEXVARQ" - }, - "bytecode": { - "doc_opcode": "6F86", - "tlb": "#6F86", - "prefix": "6F86", - "operands": [] - }, - "value_flow": { - "doc_stack": "t k - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple", "Null"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } - } - }, - { - "mnemonic": "SETINDEXVARQ", - "doc": { - "category": "tuple", - "description": "Similar to `k SETINDEXQ`, but with `0 <= k <= 254` taken from the stack.", - "gas": "26+|t\u0432\u0402\u2122|", - "fift": "SETINDEXVARQ" - }, - "bytecode": { - "doc_opcode": "6F87", - "tlb": "#6F87", - "prefix": "6F87", - "operands": [] - }, - "value_flow": { - "doc_stack": "t x k - t'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple", "Null"] - }, - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "k", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "t2", - "value_types": ["Tuple", "Null"] - } - ] - } - } - }, - { - "mnemonic": "TLEN", - "doc": { - "category": "tuple", - "description": "Returns the length of a _Tuple_.", - "gas": "26", - "fift": "TLEN" - }, - "bytecode": { - "doc_opcode": "6F88", - "tlb": "#6F88", - "prefix": "6F88", - "operands": [] - }, - "value_flow": { - "doc_stack": "t - n", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QTLEN", - "doc": { - "category": "tuple", - "description": "Similar to `TLEN`, but returns `-1` if `t` is not a _Tuple_.", - "gas": "26", - "fift": "QTLEN" - }, - "bytecode": { - "doc_opcode": "6F89", - "tlb": "#6F89", - "prefix": "6F89", - "operands": [] - }, - "value_flow": { - "doc_stack": "t - n or -1", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "ISTUPLE", - "doc": { - "category": "tuple", - "description": "Returns `-1` or `0` depending on whether `t` is a _Tuple_.", - "gas": "26", - "fift": "ISTUPLE" - }, - "bytecode": { - "doc_opcode": "6F8A", - "tlb": "#6F8A", - "prefix": "6F8A", - "operands": [] - }, - "value_flow": { - "doc_stack": "t - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LAST", - "doc": { - "category": "tuple", - "description": "Returns the last element of a non-empty _Tuple_ `t`.", - "gas": "26", - "fift": "LAST" - }, - "bytecode": { - "doc_opcode": "6F8B", - "tlb": "#6F8B", - "prefix": "6F8B", - "operands": [] - }, - "value_flow": { - "doc_stack": "t - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } - } - }, - { - "mnemonic": "TPUSH", - "doc": { - "category": "tuple", - "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\u0432\u0402\u2122|", - "fift": "TPUSH\nCOMMA" - }, - "bytecode": { - "doc_opcode": "6F8C", - "tlb": "#6F8C", - "prefix": "6F8C", - "operands": [] - }, - "value_flow": { - "doc_stack": "t x - t'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - }, - { - "type": "simple", - "name": "x" - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "t2", - "value_types": ["Tuple"] - } - ] - } - } - }, - { - "mnemonic": "TPOP", - "doc": { - "category": "tuple", - "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\u0432\u0402\u2122|", - "fift": "TPOP" - }, - "bytecode": { - "doc_opcode": "6F8D", - "tlb": "#6F8D", - "prefix": "6F8D", - "operands": [] - }, - "value_flow": { - "doc_stack": "t - t' x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "t2", - "value_types": ["Tuple"] - }, - { - "type": "simple", - "name": "x" - } - ] - } - } - }, - { - "mnemonic": "NULLSWAPIF", - "doc": { - "category": "tuple", - "description": "Pushes a _Null_ under the topmost _Integer_ `x`, but only if `x!=0`.", - "gas": "26", - "fift": "NULLSWAPIF" - }, - "bytecode": { - "doc_opcode": "6FA0", - "tlb": "#6FA0", - "prefix": "6FA0", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x or null x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "x", - "match": [ - {"value": 0, "stack": []} - ], - "else": [ - { - "type": "const", - "value": null, - "value_type": "Null" - } - ] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "NULLSWAPIFNOT", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6FA1", - "tlb": "#6FA1", - "prefix": "6FA1", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x or null x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "x", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "const", - "value": null, - "value_type": "Null" - } - ] - } - ], - "else": [] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "NULLROTRIF", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6FA2", - "tlb": "#6FA2", - "prefix": "6FA2", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x y or null x y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "y", - "match": [ - {"value": 0, "stack": []} - ], - "else": [ - { - "type": "const", - "value": null, - "value_type": "Null" - } - ] - }, - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "NULLROTRIFNOT", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6FA3", - "tlb": "#6FA3", - "prefix": "6FA3", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x y or null x y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "y", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "const", - "value": null, - "value_type": "Null" - } - ] - } - ], - "else": [] - }, - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "NULLSWAPIF2", - "doc": { - "category": "tuple", - "description": "Pushes two nulls under the topmost _Integer_ `x`, but only if `x!=0`.\nEquivalent to `NULLSWAPIF` `NULLSWAPIF`.", - "gas": "26", - "fift": "NULLSWAPIF2" - }, - "bytecode": { - "doc_opcode": "6FA4", - "tlb": "#6FA4", - "prefix": "6FA4", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x or null null x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "x", - "match": [ - {"value": 0, "stack": []} - ], - "else": [ - { - "type": "const", - "value": null, - "value_type": "Null" - }, - { - "type": "const", - "value": null, - "value_type": "Null" - } - ] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "NULLSWAPIFNOT2", - "doc": { - "category": "tuple", - "description": "Pushes two nulls under the topmost _Integer_ `x`, but only if `x=0`.\nEquivalent to `NULLSWAPIFNOT` `NULLSWAPIFNOT`.", - "gas": "26", - "fift": "NULLSWAPIFNOT2" - }, - "bytecode": { - "doc_opcode": "6FA5", - "tlb": "#6FA5", - "prefix": "6FA5", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x or null null x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "x", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "const", - "value": null, - "value_type": "Null" - }, - { - "type": "const", - "value": null, - "value_type": "Null" - } - ] - } - ], - "else": [] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "NULLROTRIF2", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6FA6", - "tlb": "#6FA6", - "prefix": "6FA6", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x y or null null x y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "y", - "match": [ - {"value": 0, "stack": []} - ], - "else": [ - { - "type": "const", - "value": null, - "value_type": "Null" - }, - { - "type": "const", - "value": null, - "value_type": "Null" - } - ] - }, - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "NULLROTRIFNOT2", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6FA7", - "tlb": "#6FA7", - "prefix": "6FA7", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x y or null null x y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "y", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "const", - "value": null, - "value_type": "Null" - }, - { - "type": "const", - "value": null, - "value_type": "Null" - } - ] - } - ], - "else": [] - }, - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "INDEX2", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6FBij", - "tlb": "#6FB i:uint2 j:uint2", - "prefix": "6FB", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 2 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 2 - } - } - ] - }, - "value_flow": { - "doc_stack": "t - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } - } - }, - { - "mnemonic": "INDEX3", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6FE_ijk", - "tlb": "#6FE_ i:uint2 j:uint2 k:uint2", - "prefix": "6FE_", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 2 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 2 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 2 - } - } - ] - }, - "value_flow": { - "doc_stack": "t - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } - } - }, - { - "mnemonic": "PUSHINT_4", - "doc": { - "category": "const_int", - "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" - }, - "bytecode": { - "doc_opcode": "7i", - "tlb": "#7 i:uint4", - "prefix": "7", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "- x", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PUSHINT_8", - "doc": { - "category": "const_int", - "description": "Pushes integer `xx`. `-128 <= xx <= 127`.", - "gas": "26", - "fift": "[xx] PUSHINT\n[xx] INT" - }, - "bytecode": { - "doc_opcode": "80xx", - "tlb": "#80 xx:int8", - "prefix": "80", - "operands": [ - { - "name": "x", - "loader": "int", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "- xx", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PUSHINT_16", - "doc": { - "category": "const_int", - "description": "Pushes integer `xxxx`. `-2^15 <= xx < 2^15`.", - "gas": "34", - "fift": "[xxxx] PUSHINT\n[xxxx] INT" - }, - "bytecode": { - "doc_opcode": "81xxxx", - "tlb": "#81 xxxx:int16", - "prefix": "81", - "operands": [ - { - "name": "x", - "loader": "int", - "loader_args": { - "size": 16 - } - } - ] - }, - "value_flow": { - "doc_stack": "- xxxx", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PUSHINT_LONG", - "doc": { - "category": "const_int", - "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" - }, - "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", - "loader": "pushint_long", - "loader_args": {} - } - ] - }, - "value_flow": { - "doc_stack": "- xxx", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PUSHPOW2", - "doc": { - "category": "const_int", - "description": "(Quietly) pushes `2^(xx+1)` for `0 <= xx <= 255`.\n`2^256` is a `NaN`.", - "gas": "26", - "fift": "[xx+1] PUSHPOW2" - }, - "bytecode": { - "doc_opcode": "83xx", - "tlb": "#83 xx:uint8", - "prefix": "83", - "operands_range_check": { - "length": 8, - "from": 0, - "to": 254 - }, - "operands": [ - { - "name": "x", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "- 2^(xx+1)", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PUSHNAN", - "doc": { - "category": "const_int", - "description": "Pushes a `NaN`.", - "gas": "26", - "fift": "PUSHNAN" - }, - "bytecode": { - "doc_opcode": "83FF", - "tlb": "#83FF", - "prefix": "83FF", - "operands": [] - }, - "value_flow": { - "doc_stack": "- NaN", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "const", - "value_type": "Integer", - "value": null - } - ] - } - } - }, - { - "mnemonic": "PUSHPOW2DEC", - "doc": { - "category": "const_int", - "description": "Pushes `2^(xx+1)-1` for `0 <= xx <= 255`.", - "gas": "26", - "fift": "[xx+1] PUSHPOW2DEC" - }, - "bytecode": { - "doc_opcode": "84xx", - "tlb": "#84 xx:uint8", - "prefix": "84", - "operands": [ - { - "name": "x", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "- 2^(xx+1)-1", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PUSHNEGPOW2", - "doc": { - "category": "const_int", - "description": "Pushes `-2^(xx+1)` for `0 <= xx <= 255`.", - "gas": "26", - "fift": "[xx+1] PUSHNEGPOW2" - }, - "bytecode": { - "doc_opcode": "85xx", - "tlb": "#85 xx:uint8", - "prefix": "85", - "operands": [ - { - "name": "x", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "- -2^(xx+1)", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PUSHREF", - "doc": { - "category": "const_data", - "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" - }, - "bytecode": { - "doc_opcode": "88", - "tlb": "#88 c:^Cell", - "prefix": "88", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] - }, - "value_flow": { - "doc_stack": "- c", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Cell"] - } - ] - } - } - }, - { - "mnemonic": "PUSHREFSLICE", - "doc": { - "category": "const_data", - "description": "Similar to `PUSHREF`, but converts the cell into a _Slice_.", - "gas": "118/43", - "fift": "[ref] PUSHREFSLICE" - }, - "bytecode": { - "doc_opcode": "89", - "tlb": "#89 c:^Cell", - "prefix": "89", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] - }, - "value_flow": { - "doc_stack": "- s", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "PUSHREFCONT", - "doc": { - "category": "const_data", - "description": "Similar to `PUSHREFSLICE`, but makes a simple ordinary _Continuation_ out of the cell.", - "gas": "118/43", - "fift": "[ref] PUSHREFCONT" - }, - "bytecode": { - "doc_opcode": "8A", - "tlb": "#8A c:^Cell", - "prefix": "8A", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] - }, - "value_flow": { - "doc_stack": "- cont", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "PUSHSLICE", - "doc": { - "category": "const_data", - "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" - }, - "bytecode": { - "doc_opcode": "8Bxsss", - "tlb": "#8B x:(## 4) sss:((8 * x + 4) * Bit)", - "prefix": "8B", - "operands": [ - { - "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 4, - "bits_padding": 4, - "completion_tag": true - } - } - ] - }, - "value_flow": { - "doc_stack": "- s", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "PUSHSLICE_REFS", - "doc": { - "category": "const_data", - "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" - }, - "bytecode": { - "doc_opcode": "8Crxxssss", - "tlb": "#8C r:(## 2) xx:(## 5) c:((r + 1) * ^Cell) ssss:((8 * xx + 1) * Bit)", - "prefix": "8C", - "operands": [ - { - "name": "slice", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 5, - "bits_padding": 1, - "refs_length_var_size": 2, - "refs_add": 1, - "completion_tag": true - } - } - ] - }, - "value_flow": { - "doc_stack": "- s", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "PUSHSLICE_LONG", - "doc": { - "category": "const_data", - "description": "Pushes the slice `slice` into the stack.\n_Details:_ Pushes the subslice of `cc.code` consisting of `0 <= r <= 4` references and up to `8xx+6` bits of data, with `0 <= xx <= 127`.\nA completion tag is assumed.", - "gas": "28", - "fift": "[slice] PUSHSLICE\n[slice] SLICE", - "fift_examples": [ - { - "fift": "x{} PUSHSLICE x{ABCD1234} PUSHSLICE b{01101} PUSHSLICE", - "description": "Examples of `PUSHSLICE`. `x{}` is an empty slice. `x{...}` is a hexadecimal literal. `b{...}` is a binary literal. More on slice literals [here](https://github.com/Piterden/TON-docs/blob/master/Fift.%20A%20Brief%20Introduction.md#user-content-51-slice-literals). Note that the assembler can replace `PUSHSLICE` with `PUSHREFSLICE` in certain situations (e.g. if there’s not enough space in the current continuation)." - }, - { - "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)." - } - ] - }, - "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 - }, - "operands": [ - { - "name": "slice", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 7, - "bits_padding": 6, - "refs_length_var_size": 3, - "completion_tag": true - } - } - ] - }, - "value_flow": { - "doc_stack": "- s", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "PUSHCONT", - "doc": { - "category": "const_data", - "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" - }, - "bytecode": { - "doc_opcode": "8F_rxxcccc", - "tlb": "#8F_ r:(## 2) xx:(## 7) c:(r * ^Cell) ssss:((8 * xx) * Bit)", - "prefix": "8F_", - "operands": [ - { - "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 7, - "bits_padding": 0, - "refs_length_var_size": 2 - } - } - ] - }, - "value_flow": { - "doc_stack": "- c", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "PUSHCONT_SHORT", - "doc": { - "category": "const_data", - "description": "Pushes a continuation made from `builder`.\n_Details:_ Pushes an `x`-byte continuation for `0 <= x <= 15`.", - "gas": "18", - "fift": "[builder] PUSHCONT\n[builder] CONT", - "fift_examples": [ - { - "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)." - } - ] - }, - "bytecode": { - "doc_opcode": "9xccc", - "tlb": "#9 x:(## 4) ssss:((8 * x) * Bit)", - "prefix": "9", - "operands": [ - { - "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 4, - "bits_padding": 0 - } - } - ] - }, - "value_flow": { - "doc_stack": "- c", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "ADD", - "doc": { - "category": "arithm_basic", - "description": "", - "gas": "18", - "fift": "ADD" - }, - "bytecode": { - "doc_opcode": "A0", - "tlb": "#A0", - "prefix": "A0", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x+y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SUB", - "doc": { - "category": "arithm_basic", - "description": "", - "gas": "18", - "fift": "SUB" - }, - "bytecode": { - "doc_opcode": "A1", - "tlb": "#A1", - "prefix": "A1", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x-y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SUBR", - "doc": { - "category": "arithm_basic", - "description": "Equivalent to `SWAP` `SUB`.", - "gas": "18", - "fift": "SUBR" - }, - "bytecode": { - "doc_opcode": "A2", - "tlb": "#A2", - "prefix": "A2", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - y-x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "NEGATE", - "doc": { - "category": "arithm_basic", - "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" - }, - "bytecode": { - "doc_opcode": "A3", - "tlb": "#A3", - "prefix": "A3", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - -x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "INC", - "doc": { - "category": "arithm_basic", - "description": "Equivalent to `1 ADDCONST`.", - "gas": "18", - "fift": "INC" - }, - "bytecode": { - "doc_opcode": "A4", - "tlb": "#A4", - "prefix": "A4", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x+1", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DEC", - "doc": { - "category": "arithm_basic", - "description": "Equivalent to `-1 ADDCONST`.", - "gas": "18", - "fift": "DEC" - }, - "bytecode": { - "doc_opcode": "A5", - "tlb": "#A5", - "prefix": "A5", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x-1", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "ADDCONST", - "doc": { - "category": "arithm_basic", - "description": "`-128 <= cc <= 127`.", - "gas": "26", - "fift": "[cc] ADDCONST\n[cc] ADDINT\n[-cc] SUBCONST\n[-cc] SUBINT" - }, - "bytecode": { - "doc_opcode": "A6cc", - "tlb": "#A6 cc:int8", - "prefix": "A6", - "operands": [ - { - "name": "c", - "loader": "int", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x+cc", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULCONST", - "doc": { - "category": "arithm_basic", - "description": "`-128 <= cc <= 127`.", - "gas": "26", - "fift": "[cc] MULCONST\n[cc] MULINT" - }, - "bytecode": { - "doc_opcode": "A7cc", - "tlb": "#A7 cc:int8", - "prefix": "A7", - "operands": [ - { - "name": "c", - "loader": "int", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x*cc", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MUL", - "doc": { - "category": "arithm_basic", - "description": "", - "gas": "18", - "fift": "MUL" - }, - "bytecode": { - "doc_opcode": "A8", - "tlb": "#A8", - "prefix": "A8", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x*y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "ADDDIVMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "ADDDIVMOD" - }, - "bytecode": { - "doc_opcode": "A900", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "ADDDIVMODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "ADDDIVMODR" - }, - "bytecode": { - "doc_opcode": "A901", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "ADDDIVMODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "ADDDIVMODC" - }, - "bytecode": { - "doc_opcode": "A902", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DIV", - "doc": { - "category": "arithm_div", - "description": "`q=floor(x/y)`, `r=x-y*q`", - "gas": "26", - "fift": "DIV" - }, - "bytecode": { - "doc_opcode": "A904", - "tlb": "#A904", - "prefix": "A904", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DIVR", - "doc": { - "category": "arithm_div", - "description": "`q\u0432\u0402\u2122=round(x/y)`, `r\u0432\u0402\u2122=x-y*q\u0432\u0402\u2122`", - "gas": "26", - "fift": "DIVR" - }, - "bytecode": { - "doc_opcode": "A905", - "tlb": "#A905", - "prefix": "A905", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q\u0432\u0402\u2122", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DIVC", - "doc": { - "category": "arithm_div", - "description": "`q\u0432\u0402\u2122\u0432\u0402\u2122=ceil(x/y)`, `r\u0432\u0402\u2122\u0432\u0402\u2122=x-y*q\u0432\u0402\u2122\u0432\u0402\u2122`", - "gas": "26", - "fift": "DIVC" - }, - "bytecode": { - "doc_opcode": "A906", - "tlb": "#A906", - "prefix": "A906", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MOD" - }, - "bytecode": { - "doc_opcode": "A908", - "tlb": "#A908", - "prefix": "A908", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - r", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MODR" - }, - "bytecode": { - "doc_opcode": "A909", - "tlb": "#A909", - "prefix": "A909", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - r", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MODC" - }, - "bytecode": { - "doc_opcode": "A90A", - "tlb": "#A90A", - "prefix": "A90A", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - r", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DIVMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "DIVMOD" - }, - "bytecode": { - "doc_opcode": "A90C", - "tlb": "#A90C", - "prefix": "A90C", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q r", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DIVMODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "DIVMODR" - }, - "bytecode": { - "doc_opcode": "A90D", - "tlb": "#A90D", - "prefix": "A90D", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q' r'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DIVMODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "DIVMODC" - }, - "bytecode": { - "doc_opcode": "A90E", - "tlb": "#A90E", - "prefix": "A90E", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q'' r''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "ADDRSHIFTMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "ADDRSHIFTMOD" - }, - "bytecode": { - "doc_opcode": "A920", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "ADDRSHIFTMODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "ADDRSHIFTMODR" - }, - "bytecode": { - "doc_opcode": "A921", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "ADDRSHIFTMODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "ADDRSHIFTMODC" - }, - "bytecode": { - "doc_opcode": "A922", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RSHIFTR_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "RSHIFTR" - }, - "bytecode": { - "doc_opcode": "A925", - "tlb": "#A925", - "prefix": "A925", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - round(x/2^y)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RSHIFTC_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "RSHIFTC" - }, - "bytecode": { - "doc_opcode": "A926", - "tlb": "#A926", - "prefix": "A926", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - ceil(x/2^y)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MODPOW2_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MODPOW2" - }, - "bytecode": { - "doc_opcode": "A928", - "tlb": "#A928", - "prefix": "A928", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x mod 2^y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MODPOW2R_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MODPOW2R" - }, - "bytecode": { - "doc_opcode": "A929", - "tlb": "#A929", - "prefix": "A929", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x mod 2^y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MODPOW2C_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MODPOW2C" - }, - "bytecode": { - "doc_opcode": "A92A", - "tlb": "#A92A", - "prefix": "A92A", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x mod 2^y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RSHIFTMOD_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "RSHIFTMOD" - }, - "bytecode": { - "doc_opcode": "A92C", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RSHIFTMODR_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "RSHIFTMODR" - }, - "bytecode": { - "doc_opcode": "A92D", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RSHIFTMODC_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "RSHIFTMODC" - }, - "bytecode": { - "doc_opcode": "A92E", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "ADDRSHIFTMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] ADDRSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "A930tt", - "tlb": "#A930 tt:uint8", - "prefix": "A930", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "ADDRSHIFTRMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] ADDRSHIFTR#MOD" - }, - "bytecode": { - "doc_opcode": "A931tt", - "tlb": "#A931 tt:uint8", - "prefix": "A931", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "ADDRSHIFTCMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] ADDRSHIFTC#MOD" - }, - "bytecode": { - "doc_opcode": "A932tt", - "tlb": "#A932 tt:uint8", - "prefix": "A932", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RSHIFTR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] RSHIFTR#" - }, - "bytecode": { - "doc_opcode": "A935tt", - "tlb": "#A935 tt:uint8", - "prefix": "A935", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - round(x/2^(tt+1))", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RSHIFTC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] RSHIFTC#" - }, - "bytecode": { - "doc_opcode": "A936tt", - "tlb": "#A936 tt:uint8", - "prefix": "A936", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - ceil(x/2^(tt+1))", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MODPOW2", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MODPOW2#" - }, - "bytecode": { - "doc_opcode": "A938tt", - "tlb": "#A938 tt:uint8", - "prefix": "A938", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MODPOW2R", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MODPOW2R#" - }, - "bytecode": { - "doc_opcode": "A939tt", - "tlb": "#A939 tt:uint8", - "prefix": "A939", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MODPOW2C", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MODPOW2C#" - }, - "bytecode": { - "doc_opcode": "A93Att", - "tlb": "#A93A tt:uint8", - "prefix": "A93A", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RSHIFTMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] RSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "A93Ctt", - "tlb": "#A93C tt:uint8", - "prefix": "A93C", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RSHIFTRMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] RSHIFTR#MOD" - }, - "bytecode": { - "doc_opcode": "A93Dtt", - "tlb": "#A93D tt:uint8", - "prefix": "A93D", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RSHIFTCMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] RSHIFTC#MOD" - }, - "bytecode": { - "doc_opcode": "A93Ett", - "tlb": "#A93E tt:uint8", - "prefix": "A93E", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULADDDIVMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULADDDIVMOD" - }, - "bytecode": { - "doc_opcode": "A980", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULADDDIVMODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULADDDIVMODR" - }, - "bytecode": { - "doc_opcode": "A981", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULADDDIVMODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULADDDIVMODC" - }, - "bytecode": { - "doc_opcode": "A982", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULDIV", - "doc": { - "category": "arithm_div", - "description": "`q=floor(x*y/z)`", - "gas": "26", - "fift": "MULDIV" - }, - "bytecode": { - "doc_opcode": "A984", - "tlb": "#A984", - "prefix": "A984", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULDIVR", - "doc": { - "category": "arithm_div", - "description": "`q'=round(x*y/z)`", - "gas": "26", - "fift": "MULDIVR" - }, - "bytecode": { - "doc_opcode": "A985", - "tlb": "#A985", - "prefix": "A985", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULDIVC", - "doc": { - "category": "arithm_div", - "description": "`q'=ceil(x*y/z)`", - "gas": "26", - "fift": "MULDIVC" - }, - "bytecode": { - "doc_opcode": "A986", - "tlb": "#A986", - "prefix": "A986", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULMOD" - }, - "bytecode": { - "doc_opcode": "A988", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULMODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULMODR" - }, - "bytecode": { - "doc_opcode": "A989", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULMODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULMODC" - }, - "bytecode": { - "doc_opcode": "A98A", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULDIVMOD", - "doc": { - "category": "arithm_div", - "description": "`q=floor(x*y/z)`, `r=x*y-z*q`", - "gas": "26", - "fift": "MULDIVMOD" - }, - "bytecode": { - "doc_opcode": "A98C", - "tlb": "#A98C", - "prefix": "A98C", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q r", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULDIVMODR", - "doc": { - "category": "arithm_div", - "description": "`q=round(x*y/z)`, `r=x*y-z*q`", - "gas": "26", - "fift": "MULDIVMODR" - }, - "bytecode": { - "doc_opcode": "A98D", - "tlb": "#A98D", - "prefix": "A98D", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q r", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULDIVMODC", - "doc": { - "category": "arithm_div", - "description": "`q=ceil(x*y/z)`, `r=x*y-z*q`", - "gas": "26", - "fift": "MULDIVMODC" - }, - "bytecode": { - "doc_opcode": "A98E", - "tlb": "#A98E", - "prefix": "A98E", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q r", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULADDRSHIFTMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULADDRSHIFTMOD" - }, - "bytecode": { - "doc_opcode": "A9A0", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULADDRSHIFTRMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULADDRSHIFTRMOD" - }, - "bytecode": { - "doc_opcode": "A9A1", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULADDRSHIFTCMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULADDRSHIFTCMOD" - }, - "bytecode": { - "doc_opcode": "A9A2", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULRSHIFT_VAR", - "doc": { - "category": "arithm_div", - "description": "`0 <= z <= 256`", - "gas": "26", - "fift": "MULRSHIFT" - }, - "bytecode": { - "doc_opcode": "A9A4", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTR_VAR", - "doc": { - "category": "arithm_div", - "description": "`0 <= z <= 256`", - "gas": "26", - "fift": "MULRSHIFTR" - }, - "bytecode": { - "doc_opcode": "A9A5", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTC_VAR", - "doc": { - "category": "arithm_div", - "description": "`0 <= z <= 256`", - "gas": "26", - "fift": "MULRSHIFTC" - }, - "bytecode": { - "doc_opcode": "A9A6", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULMODPOW2_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULMODPOW2_VAR" - }, - "bytecode": { - "doc_opcode": "A9A8", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULMODPOW2R_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULMODPOW2R_VAR" - }, - "bytecode": { - "doc_opcode": "A9A9", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULMODPOW2C_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULMODPOW2C_VAR" - }, - "bytecode": { - "doc_opcode": "A9AA", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTMOD_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULRSHIFTMOD_VAR" - }, - "bytecode": { - "doc_opcode": "A9AC", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTRMOD_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULRSHIFTRMOD_VAR" - }, - "bytecode": { - "doc_opcode": "A9AD", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTCMOD_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULRSHIFTCMOD_VAR" - }, - "bytecode": { - "doc_opcode": "A9AE", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULADDRSHIFTMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULADDRSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "A9B0tt", - "tlb": "#A9B0 tt:uint8", - "prefix": "A9B0", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULADDRSHIFTRMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULADDRSHIFTR#MOD" - }, - "bytecode": { - "doc_opcode": "A9B1tt", - "tlb": "#A9B1 tt:uint8", - "prefix": "A9B1", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULADDRSHIFTCMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULADDRSHIFTC#MOD" - }, - "bytecode": { - "doc_opcode": "A9B2tt", - "tlb": "#A9B2 tt:uint8", - "prefix": "A9B2", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULRSHIFT", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULRSHIFT#" - }, - "bytecode": { - "doc_opcode": "A9B4tt", - "tlb": "#A9B4 tt:uint8", - "prefix": "A9B4", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - floor(x*y/2^(tt+1))", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULRSHIFTR#" - }, - "bytecode": { - "doc_opcode": "A9B5tt", - "tlb": "#A9B5 tt:uint8", - "prefix": "A9B5", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - round(x*y/2^(tt+1))", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULRSHIFTC#" - }, - "bytecode": { - "doc_opcode": "A9B6tt", - "tlb": "#A9B6 tt:uint8", - "prefix": "A9B6", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - ceil(x*y/2^(tt+1))", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULMODPOW2", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULMODPOW2#" - }, - "bytecode": { - "doc_opcode": "A9B8tt", - "tlb": "#A9B8 tt:uint8", - "prefix": "A9B8", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULMODPOW2R", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULMODPOW2R#" - }, - "bytecode": { - "doc_opcode": "A9B9tt", - "tlb": "#A9B9 tt:uint8", - "prefix": "A9B9", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULMODPOW2C", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULMODPOW2C#" - }, - "bytecode": { - "doc_opcode": "A9BAtt", - "tlb": "#A9BA tt:uint8", - "prefix": "A9BA", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "MULRSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "A9BC", - "tlb": "#A9BC", - "prefix": "A9BC", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTRMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "MULRSHIFTR#MOD" - }, - "bytecode": { - "doc_opcode": "A9BD", - "tlb": "#A9BD", - "prefix": "A9BD", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTCMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "MULRSHIFTC#MOD" - }, - "bytecode": { - "doc_opcode": "A9BE", - "tlb": "#A9BE", - "prefix": "A9BE", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTADDDIVMOD_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTADDDIVMOD" - }, - "bytecode": { - "doc_opcode": "A9C0", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTADDDIVMODR_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTADDDIVMODR" - }, - "bytecode": { - "doc_opcode": "A9C1", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTADDDIVMODC_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTADDDIVMODC" - }, - "bytecode": { - "doc_opcode": "A9C2", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIV_VAR", - "doc": { - "category": "arithm_div", - "description": "`0 <= z <= 256`", - "gas": "26", - "fift": "LSHIFTDIV" - }, - "bytecode": { - "doc_opcode": "A9C4", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVR_VAR", - "doc": { - "category": "arithm_div", - "description": "`0 <= z <= 256`", - "gas": "26", - "fift": "LSHIFTDIVR" - }, - "bytecode": { - "doc_opcode": "A9C5", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVC_VAR", - "doc": { - "category": "arithm_div", - "description": "`0 <= z <= 256`", - "gas": "26", - "fift": "LSHIFTDIVC" - }, - "bytecode": { - "doc_opcode": "A9C6", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTMOD_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTMOD" - }, - "bytecode": { - "doc_opcode": "A9C8", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTMODR_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTMODR" - }, - "bytecode": { - "doc_opcode": "A9C9", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTMODC_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTMODC" - }, - "bytecode": { - "doc_opcode": "A9CA", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVMOD_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTDIVMOD" - }, - "bytecode": { - "doc_opcode": "A9CC", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVMODR_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTDIVMODR" - }, - "bytecode": { - "doc_opcode": "A9CD", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVMODC_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTDIVMODC" - }, - "bytecode": { - "doc_opcode": "A9CE", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTADDDIVMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#ADDDIVMOD" - }, - "bytecode": { - "doc_opcode": "A9D0tt", - "tlb": "#A9D0 tt:uint8", - "prefix": "A9D0", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTADDDIVMODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#ADDDIVMODR" - }, - "bytecode": { - "doc_opcode": "A9D1tt", - "tlb": "#A9D1 tt:uint8", - "prefix": "A9D1", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTADDDIVMODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#ADDDIVMODC" - }, - "bytecode": { - "doc_opcode": "A9D2tt", - "tlb": "#A9D2 tt:uint8", - "prefix": "A9D2", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIV", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#DIV" - }, - "bytecode": { - "doc_opcode": "A9D4tt", - "tlb": "#A9D4 tt:uint8", - "prefix": "A9D4", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - floor(2^(tt+1)*x/y)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#DIVR" - }, - "bytecode": { - "doc_opcode": "A9D5tt", - "tlb": "#A9D5 tt:uint8", - "prefix": "A9D5", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - round(2^(tt+1)*x/y)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "[tt+1] LSHIFT#DIVC" - }, - "bytecode": { - "doc_opcode": "A9D6tt", - "tlb": "#A9D6 tt:uint8", - "prefix": "A9D6", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - ceil(2^(tt+1)*x/y)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "A9D8tt", - "tlb": "#A9D8 tt:uint8", - "prefix": "A9D8", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTMODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#MODR" - }, - "bytecode": { - "doc_opcode": "A9D9tt", - "tlb": "#A9D9 tt:uint8", - "prefix": "A9D9", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTMODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#MODC" - }, - "bytecode": { - "doc_opcode": "A9DAtt", - "tlb": "#A9DA tt:uint8", - "prefix": "A9DA", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#DIVMOD" - }, - "bytecode": { - "doc_opcode": "A9DCtt", - "tlb": "#A9DC tt:uint8", - "prefix": "A9DC", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVMODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#DIVMODR" - }, - "bytecode": { - "doc_opcode": "A9DDtt", - "tlb": "#A9DD tt:uint8", - "prefix": "A9DD", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVMODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#DIVMODC" - }, - "bytecode": { - "doc_opcode": "A9DEtt", - "tlb": "#A9DE tt:uint8", - "prefix": "A9DE", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFT", - "doc": { - "category": "arithm_logical", - "description": "`0 <= cc <= 255`", - "gas": "26", - "fift": "[cc+1] LSHIFT#" - }, - "bytecode": { - "doc_opcode": "AAcc", - "tlb": "#AA cc:uint8", - "prefix": "AA", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x*2^(cc+1)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RSHIFT", - "doc": { - "category": "arithm_logical", - "description": "`0 <= cc <= 255`", - "gas": "18", - "fift": "[cc+1] RSHIFT#" - }, - "bytecode": { - "doc_opcode": "ABcc", - "tlb": "#AB cc:uint8", - "prefix": "AB", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - floor(x/2^(cc+1))", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LSHIFT_VAR", - "doc": { - "category": "arithm_logical", - "description": "`0 <= y <= 1023`", - "gas": "18", - "fift": "LSHIFT" - }, - "bytecode": { - "doc_opcode": "AC", - "tlb": "#AC", - "prefix": "AC", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x*2^y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RSHIFT_VAR", - "doc": { - "category": "arithm_logical", - "description": "`0 <= y <= 1023`", - "gas": "18", - "fift": "RSHIFT" - }, - "bytecode": { - "doc_opcode": "AD", - "tlb": "#AD", - "prefix": "AD", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - floor(x/2^y)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "POW2", - "doc": { - "category": "arithm_logical", - "description": "`0 <= y <= 1023`\nEquivalent to `ONE` `SWAP` `LSHIFT`.", - "gas": "18", - "fift": "POW2" - }, - "bytecode": { - "doc_opcode": "AE", - "tlb": "#AE", - "prefix": "AE", - "operands": [] - }, - "value_flow": { - "doc_stack": "y - 2^y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "AND", - "doc": { - "category": "arithm_logical", - "description": "Bitwise and of two signed integers `x` and `y`, sign-extended to infinity.", - "gas": "18", - "fift": "AND" - }, - "bytecode": { - "doc_opcode": "B0", - "tlb": "#B0", - "prefix": "B0", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x&y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "OR", - "doc": { - "category": "arithm_logical", - "description": "Bitwise or of two integers.", - "gas": "18", - "fift": "OR" - }, - "bytecode": { - "doc_opcode": "B1", - "tlb": "#B1", - "prefix": "B1", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x|y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "XOR", - "doc": { - "category": "arithm_logical", - "description": "Bitwise xor of two integers.", - "gas": "18", - "fift": "XOR" - }, - "bytecode": { - "doc_opcode": "B2", - "tlb": "#B2", - "prefix": "B2", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x xor y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "NOT", - "doc": { - "category": "arithm_logical", - "description": "Bitwise not of an integer.", - "gas": "26", - "fift": "NOT" - }, - "bytecode": { - "doc_opcode": "B3", - "tlb": "#B3", - "prefix": "B3", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - ~x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "FITS", - "doc": { - "category": "arithm_logical", - "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" - }, - "bytecode": { - "doc_opcode": "B4cc", - "tlb": "#B4 cc:uint8", - "prefix": "B4", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "UFITS", - "doc": { - "category": "arithm_logical", - "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" - }, - "bytecode": { - "doc_opcode": "B5cc", - "tlb": "#B5 cc:uint8", - "prefix": "B5", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "FITSX", - "doc": { - "category": "arithm_logical", - "description": "Checks whether `x` is a `c`-bit signed integer for `0 <= c <= 1023`.", - "gas": "26/76", - "fift": "FITSX" - }, - "bytecode": { - "doc_opcode": "B600", - "tlb": "#B600", - "prefix": "B600", - "operands": [] - }, - "value_flow": { - "doc_stack": "x c - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "UFITSX", - "doc": { - "category": "arithm_logical", - "description": "Checks whether `x` is a `c`-bit unsigned integer for `0 <= c <= 1023`.", - "gas": "26/76", - "fift": "UFITSX" - }, - "bytecode": { - "doc_opcode": "B601", - "tlb": "#B601", - "prefix": "B601", - "operands": [] - }, - "value_flow": { - "doc_stack": "x c - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BITSIZE", - "doc": { - "category": "arithm_logical", - "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" - }, - "bytecode": { - "doc_opcode": "B602", - "tlb": "#B602", - "prefix": "B602", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - c", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "UBITSIZE", - "doc": { - "category": "arithm_logical", - "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" - }, - "bytecode": { - "doc_opcode": "B603", - "tlb": "#B603", - "prefix": "B603", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - c", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MIN", - "doc": { - "category": "arithm_logical", - "description": "Computes the minimum of two integers `x` and `y`.", - "gas": "26", - "fift": "MIN" - }, - "bytecode": { - "doc_opcode": "B608", - "tlb": "#B608", - "prefix": "B608", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x or y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MAX", - "doc": { - "category": "arithm_logical", - "description": "Computes the maximum of two integers `x` and `y`.", - "gas": "26", - "fift": "MAX" - }, - "bytecode": { - "doc_opcode": "B609", - "tlb": "#B609", - "prefix": "B609", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x or y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "MINMAX", - "doc": { - "category": "arithm_logical", - "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" - }, - "bytecode": { - "doc_opcode": "B60A", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "r1", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r2", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "ABS", - "doc": { - "category": "arithm_logical", - "description": "Computes the absolute value of an integer `x`.", - "gas": "26", - "fift": "ABS" - }, - "bytecode": { - "doc_opcode": "B60B", - "tlb": "#B60B", - "prefix": "B60B", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - |x|", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QADD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QADD" - }, - "bytecode": { - "doc_opcode": "B7A0", - "tlb": "#B7A0", - "prefix": "B7A0", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x+y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QSUB", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QSUB" - }, - "bytecode": { - "doc_opcode": "B7A1", - "tlb": "#B7A1", - "prefix": "B7A1", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x-y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QSUBR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QSUBR" - }, - "bytecode": { - "doc_opcode": "B7A2", - "tlb": "#B7A2", - "prefix": "B7A2", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - y-x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QNEGATE", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QNEGATE" - }, - "bytecode": { - "doc_opcode": "B7A3", - "tlb": "#B7A3", - "prefix": "B7A3", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - -x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QINC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QINC" - }, - "bytecode": { - "doc_opcode": "B7A4", - "tlb": "#B7A4", - "prefix": "B7A4", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x+1", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QDEC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QDEC" - }, - "bytecode": { - "doc_opcode": "B7A5", - "tlb": "#B7A5", - "prefix": "B7A5", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x-1", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMUL", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QMUL" - }, - "bytecode": { - "doc_opcode": "B7A8", - "tlb": "#B7A8", - "prefix": "B7A8", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x*y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QADDDIVMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QADDDIVMOD" - }, - "bytecode": { - "doc_opcode": "B7A900", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QADDDIVMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QADDDIVMODR" - }, - "bytecode": { - "doc_opcode": "B7A901", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QADDDIVMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QADDDIVMODC" - }, - "bytecode": { - "doc_opcode": "B7A902", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QDIV", - "doc": { - "category": "arithm_quiet", - "description": "Division returns `NaN` if `y=0`.", - "gas": "34", - "fift": "QDIV" - }, - "bytecode": { - "doc_opcode": "B7A904", - "tlb": "#B7A904", - "prefix": "B7A904", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QDIVR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QDIVR" - }, - "bytecode": { - "doc_opcode": "B7A905", - "tlb": "#B7A905", - "prefix": "B7A905", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q\u0432\u0402\u2122", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QDIVC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QDIVC" - }, - "bytecode": { - "doc_opcode": "B7A906", - "tlb": "#B7A906", - "prefix": "B7A906", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMOD" - }, - "bytecode": { - "doc_opcode": "B7A908", - "tlb": "#B7A908", - "prefix": "B7A908", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - r", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMODR" - }, - "bytecode": { - "doc_opcode": "B7A909", - "tlb": "#B7A909", - "prefix": "B7A909", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - r", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMODC" - }, - "bytecode": { - "doc_opcode": "B7A90A", - "tlb": "#B7A90A", - "prefix": "B7A90A", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - r", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QDIVMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QDIVMOD" - }, - "bytecode": { - "doc_opcode": "B7A90C", - "tlb": "#B7A90C", - "prefix": "B7A90C", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q r", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QDIVMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QDIVMODR" - }, - "bytecode": { - "doc_opcode": "B7A90D", - "tlb": "#B7A90D", - "prefix": "B7A90D", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q' r'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QDIVMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QDIVMODC" - }, - "bytecode": { - "doc_opcode": "B7A90E", - "tlb": "#B7A90E", - "prefix": "B7A90E", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q'' r''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QADDRSHIFTMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QADDRSHIFTMOD" - }, - "bytecode": { - "doc_opcode": "B7A920", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QADDRSHIFTMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QADDRSHIFTMODR" - }, - "bytecode": { - "doc_opcode": "B7A921", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QADDRSHIFTMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QADDRSHIFTMODC" - }, - "bytecode": { - "doc_opcode": "B7A922", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QRSHIFTR_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QRSHIFTR" - }, - "bytecode": { - "doc_opcode": "B7A925", - "tlb": "#B7A925", - "prefix": "B7A925", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - round(x/2^y)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QRSHIFTC_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QRSHIFTC" - }, - "bytecode": { - "doc_opcode": "B7A926", - "tlb": "#B7A926", - "prefix": "B7A926", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - ceil(x/2^y)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMODPOW2_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMODPOW2" - }, - "bytecode": { - "doc_opcode": "B7A928", - "tlb": "#B7A928", - "prefix": "B7A928", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x mod 2^y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMODPOW2R_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMODPOW2R" - }, - "bytecode": { - "doc_opcode": "B7A929", - "tlb": "#B7A929", - "prefix": "B7A929", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x mod 2^y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMODPOW2C_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMODPOW2C" - }, - "bytecode": { - "doc_opcode": "B7A92A", - "tlb": "#B7A92A", - "prefix": "B7A92A", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x mod 2^y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QRSHIFTMOD_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QRSHIFTMOD" - }, - "bytecode": { - "doc_opcode": "B7A92C", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QRSHIFTMODR_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QRSHIFTMODR" - }, - "bytecode": { - "doc_opcode": "B7A92D", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QRSHIFTMODC_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QRSHIFTMODC" - }, - "bytecode": { - "doc_opcode": "B7A92E", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QADDRSHIFTMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QADDRSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "B7A930tt", - "tlb": "#B7A930 tt:uint8", - "prefix": "B7A930", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QADDRSHIFTRMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QADDRSHIFTR#MOD" - }, - "bytecode": { - "doc_opcode": "B7A931tt", - "tlb": "#B7A931 tt:uint8", - "prefix": "B7A931", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QADDRSHIFTCMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QADDRSHIFTC#MOD" - }, - "bytecode": { - "doc_opcode": "B7A932tt", - "tlb": "#B7A932 tt:uint8", - "prefix": "B7A932", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QRSHIFTR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QRSHIFTR#" - }, - "bytecode": { - "doc_opcode": "B7A935tt", - "tlb": "#B7A935 tt:uint8", - "prefix": "B7A935", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - round(x/2^(tt+1))", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QRSHIFTC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QRSHIFTC#" - }, - "bytecode": { - "doc_opcode": "B7A936tt", - "tlb": "#B7A936 tt:uint8", - "prefix": "B7A936", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - ceil(x/2^(tt+1))", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMODPOW2", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMODPOW2#" - }, - "bytecode": { - "doc_opcode": "B7A938tt", - "tlb": "#B7A938 tt:uint8", - "prefix": "B7A938", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMODPOW2R", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMODPOW2R#" - }, - "bytecode": { - "doc_opcode": "B7A939tt", - "tlb": "#B7A939 tt:uint8", - "prefix": "B7A939", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMODPOW2C", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMODPOW2C#" - }, - "bytecode": { - "doc_opcode": "B7A93Att", - "tlb": "#B7A93A tt:uint8", - "prefix": "B7A93A", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QRSHIFTMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QRSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "A93Ctt", - "tlb": "#A93C tt:uint8", - "prefix": "A93C", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QRSHIFTRMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QRSHIFTR#MOD" - }, - "bytecode": { - "doc_opcode": "A93Dtt", - "tlb": "#A93D tt:uint8", - "prefix": "A93D", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QRSHIFTCMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QRSHIFTC#MOD" - }, - "bytecode": { - "doc_opcode": "B7A93Ett", - "tlb": "#B7A93E tt:uint8", - "prefix": "B7A93E", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULADDDIVMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULADDDIVMOD" - }, - "bytecode": { - "doc_opcode": "B7A980", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULADDDIVMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULADDDIVMODR" - }, - "bytecode": { - "doc_opcode": "B7A981", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULADDDIVMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULADDDIVMODC" - }, - "bytecode": { - "doc_opcode": "B7A982", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULDIV", - "doc": { - "category": "arithm_quiet", - "description": "`q=floor(x*y/z)`", - "gas": "34", - "fift": "QMULDIV" - }, - "bytecode": { - "doc_opcode": "B7A984", - "tlb": "#B7A984", - "prefix": "B7A984", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULDIVR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULDIVR" - }, - "bytecode": { - "doc_opcode": "B7A985", - "tlb": "#B7A985", - "prefix": "B7A985", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULDIVC", - "doc": { - "category": "arithm_quiet", - "description": "`q'=ceil(x*y/z)`", - "gas": "34", - "fift": "QMULDIVC" - }, - "bytecode": { - "doc_opcode": "B7A986", - "tlb": "#B7A986", - "prefix": "B7A986", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULMOD" - }, - "bytecode": { - "doc_opcode": "B7A988", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULMODR" - }, - "bytecode": { - "doc_opcode": "B7A989", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULMODC" - }, - "bytecode": { - "doc_opcode": "B7A98A", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULDIVMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULDIVMOD" - }, - "bytecode": { - "doc_opcode": "B7A98C", - "tlb": "#B7A98C", - "prefix": "B7A98C", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q r", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULDIVMODR", - "doc": { - "category": "arithm_quiet", - "description": "`q=round(x*y/z)`, `r=x*y-z*q`", - "gas": "34", - "fift": "QMULDIVMODR" - }, - "bytecode": { - "doc_opcode": "B7A98D", - "tlb": "#B7A98D", - "prefix": "B7A98D", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q r", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULDIVMODC", - "doc": { - "category": "arithm_quiet", - "description": "`q=ceil(x*y/z)`, `r=x*y-z*q`", - "gas": "34", - "fift": "QMULDIVMODC" - }, - "bytecode": { - "doc_opcode": "B7A98E", - "tlb": "#B7A98E", - "prefix": "B7A98E", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q r", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULADDRSHIFTMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULADDRSHIFTMOD" - }, - "bytecode": { - "doc_opcode": "B7A9A0", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULADDRSHIFTRMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULADDRSHIFTRMOD" - }, - "bytecode": { - "doc_opcode": "B7A9A1", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULADDRSHIFTCMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULADDRSHIFTCMOD" - }, - "bytecode": { - "doc_opcode": "B7A9A2", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFT_VAR", - "doc": { - "category": "arithm_quiet", - "description": "`0 <= z <= 256`", - "gas": "34", - "fift": "QMULRSHIFT" - }, - "bytecode": { - "doc_opcode": "B7A9A4", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTR_VAR", - "doc": { - "category": "arithm_quiet", - "description": "`0 <= z <= 256`", - "gas": "34", - "fift": "QMULRSHIFTR" - }, - "bytecode": { - "doc_opcode": "B7A9A5", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTC_VAR", - "doc": { - "category": "arithm_quiet", - "description": "`0 <= z <= 256`", - "gas": "34", - "fift": "QMULRSHIFTC" - }, - "bytecode": { - "doc_opcode": "B7A9A6", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULMODPOW2_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULMODPOW2_VAR" - }, - "bytecode": { - "doc_opcode": "B7A9A8", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULMODPOW2R_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULMODPOW2R_VAR" - }, - "bytecode": { - "doc_opcode": "B7A9A9", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULMODPOW2C_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULMODPOW2C_VAR" - }, - "bytecode": { - "doc_opcode": "B7A9AA", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTMOD_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULRSHIFTMOD_VAR" - }, - "bytecode": { - "doc_opcode": "B7A9AC", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTRMOD_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULRSHIFTRMOD_VAR" - }, - "bytecode": { - "doc_opcode": "B7A9AD", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTCMOD_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULRSHIFTCMOD_VAR" - }, - "bytecode": { - "doc_opcode": "B7A9AE", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULADDRSHIFTMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULADDRSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "B7A9B0tt", - "tlb": "#B7A9B0 tt:uint8", - "prefix": "B7A9B0", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULADDRSHIFTRMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULADDRSHIFTR#MOD" - }, - "bytecode": { - "doc_opcode": "B7A9B1tt", - "tlb": "#B7A9B1 tt:uint8", - "prefix": "B7A9B1", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULADDRSHIFTCMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULADDRSHIFTC#MOD" - }, - "bytecode": { - "doc_opcode": "B7A9B2tt", - "tlb": "#B7A9B2 tt:uint8", - "prefix": "B7A9B2", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFT", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULRSHIFT#" - }, - "bytecode": { - "doc_opcode": "B7A9B4tt", - "tlb": "#B7A9B4 tt:uint8", - "prefix": "B7A9B4", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - floor(x*y/2^(tt+1))", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULRSHIFTR#" - }, - "bytecode": { - "doc_opcode": "B7A9B5tt", - "tlb": "#B7A9B5 tt:uint8", - "prefix": "B7A9B5", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - round(x*y/2^(tt+1))", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULRSHIFTC#" - }, - "bytecode": { - "doc_opcode": "B7A9B6tt", - "tlb": "#B7A9B6 tt:uint8", - "prefix": "B7A9B6", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - ceil(x*y/2^(tt+1))", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULMODPOW2", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULMODPOW2#" - }, - "bytecode": { - "doc_opcode": "B7A9B8tt", - "tlb": "#B7A9B8 tt:uint8", - "prefix": "B7A9B8", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULMODPOW2R", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULMODPOW2R#" - }, - "bytecode": { - "doc_opcode": "B7A9B9tt", - "tlb": "#B7A9B9 tt:uint8", - "prefix": "B7A9B9", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULMODPOW2C", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULMODPOW2C#" - }, - "bytecode": { - "doc_opcode": "B7A9BAtt", - "tlb": "#B7A9BA tt:uint8", - "prefix": "B7A9BA", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "QMULRSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "B7A9BC", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTRMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "QMULRSHIFTR#MOD" - }, - "bytecode": { - "doc_opcode": "B7A9BD", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTCMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "QMULRSHIFTC#MOD" - }, - "bytecode": { - "doc_opcode": "B7A9BE", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTADDDIVMOD_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTADDDIVMOD" - }, - "bytecode": { - "doc_opcode": "B7A9C0", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTADDDIVMODR_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTADDDIVMODR" - }, - "bytecode": { - "doc_opcode": "B7A9C1", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTADDDIVMODC_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTADDDIVMODC" - }, - "bytecode": { - "doc_opcode": "B7A9C2", - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIV_VAR", - "doc": { - "category": "arithm_quiet", - "description": "`0 <= z <= 256`", - "gas": "34", - "fift": "QLSHIFTDIV" - }, - "bytecode": { - "doc_opcode": "B7A9C4", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVR_VAR", - "doc": { - "category": "arithm_quiet", - "description": "`0 <= z <= 256`", - "gas": "34", - "fift": "QLSHIFTDIVR" - }, - "bytecode": { - "doc_opcode": "B7A9C5", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVC_VAR", - "doc": { - "category": "arithm_quiet", - "description": "`0 <= z <= 256`", - "gas": "34", - "fift": "QLSHIFTDIVC" - }, - "bytecode": { - "doc_opcode": "B7A9C6", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTMOD_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTMOD" - }, - "bytecode": { - "doc_opcode": "B7A9C8", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTMODR_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTMODR" - }, - "bytecode": { - "doc_opcode": "B7A9C9", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTMODC_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTMODC" - }, - "bytecode": { - "doc_opcode": "B7A9CA", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVMOD_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTDIVMOD" - }, - "bytecode": { - "doc_opcode": "B7A9CC", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVMODR_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTDIVMODR" - }, - "bytecode": { - "doc_opcode": "B7A9CD", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVMODC_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTDIVMODC" - }, - "bytecode": { - "doc_opcode": "B7A9CE", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTADDDIVMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#ADDDIVMOD" - }, - "bytecode": { - "doc_opcode": "B7A9D0tt", - "tlb": "#B7A9D0 tt:uint8", - "prefix": "B7A9D0", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTADDDIVMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#ADDDIVMODR" - }, - "bytecode": { - "doc_opcode": "B7A9D1tt", - "tlb": "#B7A9D1 tt:uint8", - "prefix": "B7A9D1", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTADDDIVMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#ADDDIVMODC" - }, - "bytecode": { - "doc_opcode": "B7A9D2tt", - "tlb": "#B7A9D2 tt:uint8", - "prefix": "B7A9D2", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIV", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#DIV" - }, - "bytecode": { - "doc_opcode": "B7A9D4tt", - "tlb": "#B7A9D4 tt:uint8", - "prefix": "B7A9D4", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - floor(2^(tt+1)*x/y)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#DIVR" - }, - "bytecode": { - "doc_opcode": "B7A9D5tt", - "tlb": "#B7A9D5 tt:uint8", - "prefix": "B7A9D5", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - round(2^(tt+1)*x/y)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "[tt+1] QLSHIFT#DIVC" - }, - "bytecode": { - "doc_opcode": "B7A9D6tt", - "tlb": "#B7A9D6 tt:uint8", - "prefix": "B7A9D6", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - ceil(2^(tt+1)*x/y)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "B7A9D8tt", - "tlb": "#B7A9D8 tt:uint8", - "prefix": "B7A9D8", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] LSHIFT#MODR" - }, - "bytecode": { - "doc_opcode": "B7A9D9tt", - "tlb": "#B7A9D9 tt:uint8", - "prefix": "B7A9D9", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#MODC" - }, - "bytecode": { - "doc_opcode": "B7A9DAtt", - "tlb": "#B7A9DA tt:uint8", - "prefix": "B7A9DA", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#DIVMOD" - }, - "bytecode": { - "doc_opcode": "B7A9DCtt", - "tlb": "#B7A9DC tt:uint8", - "prefix": "B7A9DC", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#DIVMODR" - }, - "bytecode": { - "doc_opcode": "B7A9DDtt", - "tlb": "#B7A9DD tt:uint8", - "prefix": "B7A9DD", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#DIVMODC" - }, - "bytecode": { - "doc_opcode": "B7A9DEtt", - "tlb": "#B7A9DE tt:uint8", - "prefix": "B7A9DE", - "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFT", - "doc": { - "category": "arithm_quiet", - "description": "`0 <= cc <= 255`", - "gas": "34", - "fift": "[cc+1] QLSHIFT#" - }, - "bytecode": { - "doc_opcode": "B7AAcc", - "tlb": "#B7AA cc:uint8", - "prefix": "B7AA", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x*2^(cc+1)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QRSHIFT", - "doc": { - "category": "arithm_quiet", - "description": "`0 <= cc <= 255`", - "gas": "26", - "fift": "[cc+1] RSHIFT#" - }, - "bytecode": { - "doc_opcode": "B7ABcc", - "tlb": "#B7AB cc:uint8", - "prefix": "B7AB", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - floor(x/2^(cc+1))", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QLSHIFT_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QLSHIFT" - }, - "bytecode": { - "doc_opcode": "B7AC", - "tlb": "#B7AC", - "prefix": "B7AC", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x*2^y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QRSHIFT_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QRSHIFT" - }, - "bytecode": { - "doc_opcode": "B7AD", - "tlb": "#B7AD", - "prefix": "B7AD", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - floor(x/2^y)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QPOW2", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QPOW2" - }, - "bytecode": { - "doc_opcode": "B7AE", - "tlb": "#B7AE", - "prefix": "B7AE", - "operands": [] - }, - "value_flow": { - "doc_stack": "y - 2^y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QAND", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QAND" - }, - "bytecode": { - "doc_opcode": "B7B0", - "tlb": "#B7B0", - "prefix": "B7B0", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x&y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QOR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QOR" - }, - "bytecode": { - "doc_opcode": "B7B1", - "tlb": "#B7B1", - "prefix": "B7B1", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x|y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QXOR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QXOR" - }, - "bytecode": { - "doc_opcode": "B7B2", - "tlb": "#B7B2", - "prefix": "B7B2", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x xor y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QNOT", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QNOT" - }, - "bytecode": { - "doc_opcode": "B7B3", - "tlb": "#B7B3", - "prefix": "B7B3", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - ~x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QFITS", - "doc": { - "category": "arithm_quiet", - "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" - }, - "bytecode": { - "doc_opcode": "B7B4cc", - "tlb": "#B7B4 cc:uint8", - "prefix": "B7B4", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QUFITS", - "doc": { - "category": "arithm_quiet", - "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" - }, - "bytecode": { - "doc_opcode": "B7B5cc", - "tlb": "#B7B5 cc:uint8", - "prefix": "B7B5", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QFITSX", - "doc": { - "category": "arithm_quiet", - "description": "Replaces `x` with a `NaN` if x is not a c-bit signed integer, leaves it intact otherwise.", - "gas": "34", - "fift": "QFITSX" - }, - "bytecode": { - "doc_opcode": "B7B600", - "tlb": "#B7B600", - "prefix": "B7B600", - "operands": [] - }, - "value_flow": { - "doc_stack": "x c - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "QUFITSX", - "doc": { - "category": "arithm_quiet", - "description": "Replaces `x` with a `NaN` if x is not a c-bit unsigned integer, leaves it intact otherwise.", - "gas": "34", - "fift": "QUFITSX" - }, - "bytecode": { - "doc_opcode": "B7B601", - "tlb": "#B7B601", - "prefix": "B7B601", - "operands": [] - }, - "value_flow": { - "doc_stack": "x c - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SGN", - "doc": { - "category": "compare_int", - "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" - }, - "bytecode": { - "doc_opcode": "B8", - "tlb": "#B8", - "prefix": "B8", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - sgn(x)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LESS", - "doc": { - "category": "compare_int", - "description": "Returns `-1` if `xy", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "NEQ", - "doc": { - "category": "compare_int", - "description": "Equivalent to `EQUAL` `NOT`.", - "gas": "18", - "fift": "NEQ" - }, - "bytecode": { - "doc_opcode": "BD", - "tlb": "#BD", - "prefix": "BD", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x!=y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "GEQ", - "doc": { - "category": "compare_int", - "description": "Equivalent to `LESS` `NOT`.", - "gas": "18", - "fift": "GEQ" - }, - "bytecode": { - "doc_opcode": "BE", - "tlb": "#BE", - "prefix": "BE", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x>=y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "CMP", - "doc": { - "category": "compare_int", - "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" - }, - "bytecode": { - "doc_opcode": "BF", - "tlb": "#BF", - "prefix": "BF", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - sgn(x-y)", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "EQINT", - "doc": { - "category": "compare_int", - "description": "Returns `-1` if `x=yy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", - "gas": "26", - "fift": "[yy] EQINT" - }, - "bytecode": { - "doc_opcode": "C0yy", - "tlb": "#C0 yy:int8", - "prefix": "C0", - "operands": [ - { - "name": "y", - "loader": "int", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x=yy", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LESSINT", - "doc": { - "category": "compare_int", - "description": "Returns `-1` if `xyy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", - "gas": "26", - "fift": "[yy] GTINT\n[yy+1] GEQINT" - }, - "bytecode": { - "doc_opcode": "C2yy", - "tlb": "#C2 yy:int8", - "prefix": "C2", - "operands": [ - { - "name": "y", - "loader": "int", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x>yy", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "NEQINT", - "doc": { - "category": "compare_int", - "description": "Returns `-1` if `x!=yy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", - "gas": "26", - "fift": "[yy] NEQINT" - }, - "bytecode": { - "doc_opcode": "C3yy", - "tlb": "#C3 yy:int8", - "prefix": "C3", - "operands": [ - { - "name": "y", - "loader": "int", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x!=yy", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "ISNAN", - "doc": { - "category": "compare_int", - "description": "Checks whether `x` is a `NaN`.", - "gas": "18", - "fift": "ISNAN" - }, - "bytecode": { - "doc_opcode": "C4", - "tlb": "#C4", - "prefix": "C4", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x=NaN", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "CHKNAN", - "doc": { - "category": "compare_int", - "description": "Throws an arithmetic overflow exception if `x` is a `NaN`.", - "gas": "18/68", - "fift": "CHKNAN" - }, - "bytecode": { - "doc_opcode": "C5", - "tlb": "#C5", - "prefix": "C5", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SEMPTY", - "doc": { - "category": "compare_other", - "description": "Checks whether a _Slice_ `s` is empty (i.e., contains no bits of data and no cell references).", - "gas": "26", - "fift": "SEMPTY" - }, - "bytecode": { - "doc_opcode": "C700", - "tlb": "#C700", - "prefix": "C700", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDEMPTY", - "doc": { - "category": "compare_other", - "description": "Checks whether _Slice_ `s` has no bits of data.", - "gas": "26", - "fift": "SDEMPTY" - }, - "bytecode": { - "doc_opcode": "C701", - "tlb": "#C701", - "prefix": "C701", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SREMPTY", - "doc": { - "category": "compare_other", - "description": "Checks whether _Slice_ `s` has no references.", - "gas": "26", - "fift": "SREMPTY" - }, - "bytecode": { - "doc_opcode": "C702", - "tlb": "#C702", - "prefix": "C702", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDFIRST", - "doc": { - "category": "compare_other", - "description": "Checks whether the first bit of _Slice_ `s` is a one.", - "gas": "26", - "fift": "SDFIRST" - }, - "bytecode": { - "doc_opcode": "C703", - "tlb": "#C703", - "prefix": "C703", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDLEXCMP", - "doc": { - "category": "compare_other", - "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" - }, - "bytecode": { - "doc_opcode": "C704", - "tlb": "#C704", - "prefix": "C704", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDEQ", - "doc": { - "category": "compare_other", - "description": "Checks whether the data parts of `s` and `s'` coincide, equivalent to `SDLEXCMP` `ISZERO`.", - "gas": "26", - "fift": "SDEQ" - }, - "bytecode": { - "doc_opcode": "C705", - "tlb": "#C705", - "prefix": "C705", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDPFX", - "doc": { - "category": "compare_other", - "description": "Checks whether `s` is a prefix of `s'`.", - "gas": "26", - "fift": "SDPFX" - }, - "bytecode": { - "doc_opcode": "C708", - "tlb": "#C708", - "prefix": "C708", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDPFXREV", - "doc": { - "category": "compare_other", - "description": "Checks whether `s'` is a prefix of `s`, equivalent to `SWAP` `SDPFX`.", - "gas": "26", - "fift": "SDPFXREV" - }, - "bytecode": { - "doc_opcode": "C709", - "tlb": "#C709", - "prefix": "C709", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDPPFX", - "doc": { - "category": "compare_other", - "description": "Checks whether `s` is a proper prefix of `s'` (i.e., a prefix distinct from `s'`).", - "gas": "26", - "fift": "SDPPFX" - }, - "bytecode": { - "doc_opcode": "C70A", - "tlb": "#C70A", - "prefix": "C70A", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDPPFXREV", - "doc": { - "category": "compare_other", - "description": "Checks whether `s'` is a proper prefix of `s`.", - "gas": "26", - "fift": "SDPPFXREV" - }, - "bytecode": { - "doc_opcode": "C70B", - "tlb": "#C70B", - "prefix": "C70B", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "SDSFX", - "doc": { - "category": "compare_other", - "description": "Checks whether `s` is a suffix of `s'`.", - "gas": "26", - "fift": "SDSFX" - }, - "bytecode": { - "doc_opcode": "C70C", - "tlb": "#C70C", - "prefix": "C70C", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDSFXREV", - "doc": { - "category": "compare_other", - "description": "Checks whether `s'` is a suffix of `s`.", - "gas": "26", - "fift": "SDSFXREV" - }, - "bytecode": { - "doc_opcode": "C70D", - "tlb": "#C70D", - "prefix": "C70D", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDPSFX", - "doc": { - "category": "compare_other", - "description": "Checks whether `s` is a proper suffix of `s'`.", - "gas": "26", - "fift": "SDPSFX" - }, - "bytecode": { - "doc_opcode": "C70E", - "tlb": "#C70E", - "prefix": "C70E", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDPSFXREV", - "doc": { - "category": "compare_other", - "description": "Checks whether `s'` is a proper suffix of `s`.", - "gas": "26", - "fift": "SDPSFXREV" - }, - "bytecode": { - "doc_opcode": "C70F", - "tlb": "#C70F", - "prefix": "C70F", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDCNTLEAD0", - "doc": { - "category": "compare_other", - "description": "Returns the number of leading zeroes in `s`.", - "gas": "26", - "fift": "SDCNTLEAD0" - }, - "bytecode": { - "doc_opcode": "C710", - "tlb": "#C710", - "prefix": "C710", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - n", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDCNTLEAD1", - "doc": { - "category": "compare_other", - "description": "Returns the number of leading ones in `s`.", - "gas": "26", - "fift": "SDCNTLEAD1" - }, - "bytecode": { - "doc_opcode": "C711", - "tlb": "#C711", - "prefix": "C711", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - n", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDCNTTRAIL0", - "doc": { - "category": "compare_other", - "description": "Returns the number of trailing zeroes in `s`.", - "gas": "26", - "fift": "SDCNTTRAIL0" - }, - "bytecode": { - "doc_opcode": "C712", - "tlb": "#C712", - "prefix": "C712", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - n", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDCNTTRAIL1", - "doc": { - "category": "compare_other", - "description": "Returns the number of trailing ones in `s`.", - "gas": "26", - "fift": "SDCNTTRAIL1" - }, - "bytecode": { - "doc_opcode": "C713", - "tlb": "#C713", - "prefix": "C713", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - n", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "NEWC", - "doc": { - "category": "cell_build", - "description": "Creates a new empty _Builder_.", - "gas": "18", - "fift": "NEWC" - }, - "bytecode": { - "doc_opcode": "C8", - "tlb": "#C8", - "prefix": "C8", - "operands": [] - }, - "value_flow": { - "doc_stack": "- b", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "ENDC", - "doc": { - "category": "cell_build", - "description": "Converts a _Builder_ into an ordinary _Cell_.", - "gas": "518", - "fift": "ENDC" - }, - "bytecode": { - "doc_opcode": "C9", - "tlb": "#C9", - "prefix": "C9", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - c", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - } - } - }, - { - "mnemonic": "STI", - "doc": { - "category": "cell_build", - "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" - }, - "bytecode": { - "doc_opcode": "CAcc", - "tlb": "#CA cc:uint8", - "prefix": "CA", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x b - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STU", - "doc": { - "category": "cell_build", - "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" - }, - "bytecode": { - "doc_opcode": "CBcc", - "tlb": "#CB cc:uint8", - "prefix": "CB", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x b - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STREF", - "doc": { - "category": "cell_build", - "description": "Stores a reference to _Cell_ `c` into _Builder_ `b`.", - "gas": "18", - "fift": "STREF" - }, - "bytecode": { - "doc_opcode": "CC", - "tlb": "#CC", - "prefix": "CC", - "operands": [] - }, - "value_flow": { - "doc_stack": "c b - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STBREFR", - "doc": { - "category": "cell_build", - "description": "Equivalent to `ENDC` `SWAP` `STREF`.", - "gas": "518", - "fift": "STBREFR\nENDCST" - }, - "bytecode": { - "doc_opcode": "CD", - "tlb": "#CD", - "prefix": "CD", - "operands": [] - }, - "value_flow": { - "doc_stack": "b b'' - b", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "child", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STSLICE", - "doc": { - "category": "cell_build", - "description": "Stores _Slice_ `s` into _Builder_ `b`.", - "gas": "18", - "fift": "STSLICE" - }, - "bytecode": { - "doc_opcode": "CE", - "tlb": "#CE", - "prefix": "CE", - "operands": [] - }, - "value_flow": { - "doc_stack": "s b - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STIX", - "doc": { - "category": "cell_build", - "description": "Stores a signed `l`-bit integer `x` into `b` for `0 <= l <= 257`.", - "gas": "26", - "fift": "STIX" - }, - "bytecode": { - "doc_opcode": "CF00", - "tlb": "#CF00", - "prefix": "CF00", - "operands": [] - }, - "value_flow": { - "doc_stack": "x b l - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STUX", - "doc": { - "category": "cell_build", - "description": "Stores an unsigned `l`-bit integer `x` into `b` for `0 <= l <= 256`.", - "gas": "26", - "fift": "STUX" - }, - "bytecode": { - "doc_opcode": "CF01", - "tlb": "#CF01", - "prefix": "CF01", - "operands": [] - }, - "value_flow": { - "doc_stack": "x b l - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STIXR", - "doc": { - "category": "cell_build", - "description": "Similar to `STIX`, but with arguments in a different order.", - "gas": "26", - "fift": "STIXR" - }, - "bytecode": { - "doc_opcode": "CF02", - "tlb": "#CF02", - "prefix": "CF02", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x l - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STUXR", - "doc": { - "category": "cell_build", - "description": "Similar to `STUX`, but with arguments in a different order.", - "gas": "26", - "fift": "STUXR" - }, - "bytecode": { - "doc_opcode": "CF03", - "tlb": "#CF03", - "prefix": "CF03", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x l - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STIXQ", - "doc": { - "category": "cell_build", - "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" - }, - "bytecode": { - "doc_opcode": "CF04", - "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"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - { - "value": 1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "STUXQ", - "doc": { - "category": "cell_build", - "description": "A quiet version of `STUX`.", - "gas": "26", - "fift": "STUXQ" - }, - "bytecode": { - "doc_opcode": "CF05", - "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"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - { - "value": 1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "STIXRQ", - "doc": { - "category": "cell_build", - "description": "A quiet version of `STIXR`.", - "gas": "26", - "fift": "STIXRQ" - }, - "bytecode": { - "doc_opcode": "CF06", - "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"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - { - "value": 1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "STUXRQ", - "doc": { - "category": "cell_build", - "description": "A quiet version of `STUXR`.", - "gas": "26", - "fift": "STUXRQ" - }, - "bytecode": { - "doc_opcode": "CF07", - "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"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - { - "value": 1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "STI_ALT", - "doc": { - "category": "cell_build", - "description": "A longer version of `[cc+1] STI`.", - "gas": "34", - "fift": "[cc+1] STI_l" - }, - "bytecode": { - "doc_opcode": "CF08cc", - "tlb": "#CF08 cc:uint8", - "prefix": "CF08", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x b - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STU_ALT", - "doc": { - "category": "cell_build", - "description": "A longer version of `[cc+1] STU`.", - "gas": "34", - "fift": "[cc+1] STU_l" - }, - "bytecode": { - "doc_opcode": "CF09cc", - "tlb": "#CF09 cc:uint8", - "prefix": "CF09", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x b - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STIR", - "doc": { - "category": "cell_build", - "description": "Equivalent to `SWAP` `[cc+1] STI`.", - "gas": "34", - "fift": "[cc+1] STIR" - }, - "bytecode": { - "doc_opcode": "CF0Acc", - "tlb": "#CF0A cc:uint8", - "prefix": "CF0A", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "b x - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STUR", - "doc": { - "category": "cell_build", - "description": "Equivalent to `SWAP` `[cc+1] STU`.", - "gas": "34", - "fift": "[cc+1] STUR" - }, - "bytecode": { - "doc_opcode": "CF0Bcc", - "tlb": "#CF0B cc:uint8", - "prefix": "CF0B", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "b x - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STIQ", - "doc": { - "category": "cell_build", - "description": "A quiet version of `STI`.", - "gas": "34", - "fift": "[cc+1] STIQ" - }, - "bytecode": { - "doc_opcode": "CF0Ccc", - "tlb": "#CF0C cc:uint8", - "prefix": "CF0C", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x b - x b f or b' 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - { - "value": 1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "STUQ", - "doc": { - "category": "cell_build", - "description": "A quiet version of `STU`.", - "gas": "34", - "fift": "[cc+1] STUQ" - }, - "bytecode": { - "doc_opcode": "CF0Dcc", - "tlb": "#CF0D cc:uint8", - "prefix": "CF0D", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "x b - x b f or b' 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - { - "value": 1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "STIRQ", - "doc": { - "category": "cell_build", - "description": "A quiet version of `STIR`.", - "gas": "34", - "fift": "[cc+1] STIRQ" - }, - "bytecode": { - "doc_opcode": "CF0Ecc", - "tlb": "#CF0E cc:uint8", - "prefix": "CF0E", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "b x - b x f or b' 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - { - "value": 1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "STURQ", - "doc": { - "category": "cell_build", - "description": "A quiet version of `STUR`.", - "gas": "34", - "fift": "[cc+1] STURQ" - }, - "bytecode": { - "doc_opcode": "CF0Fcc", - "tlb": "#CF0F cc:uint8", - "prefix": "CF0F", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "b x - b x f or b' 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - { - "value": 1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "STREF_ALT", - "doc": { - "category": "cell_build", - "description": "A longer version of `STREF`.", - "gas": "26", - "fift": "STREF_l" - }, - "bytecode": { - "doc_opcode": "CF10", - "tlb": "#CF10", - "prefix": "CF10", - "operands": [] - }, - "value_flow": { - "doc_stack": "c b - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STBREF", - "doc": { - "category": "cell_build", - "description": "Equivalent to `SWAP` `STBREFR`.", - "gas": "526", - "fift": "STBREF" - }, - "bytecode": { - "doc_opcode": "CF11", - "tlb": "#CF11", - "prefix": "CF11", - "operands": [] - }, - "value_flow": { - "doc_stack": "b' b - b''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "child", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STSLICE_ALT", - "doc": { - "category": "cell_build", - "description": "A longer version of `STSLICE`.", - "gas": "26", - "fift": "STSLICE_l" - }, - "bytecode": { - "doc_opcode": "CF12", - "tlb": "#CF12", - "prefix": "CF12", - "operands": [] - }, - "value_flow": { - "doc_stack": "s b - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STB", - "doc": { - "category": "cell_build", - "description": "Appends all data from _Builder_ `b'` to _Builder_ `b`.", - "gas": "26", - "fift": "STB" - }, - "bytecode": { - "doc_opcode": "CF13", - "tlb": "#CF13", - "prefix": "CF13", - "operands": [] - }, - "value_flow": { - "doc_stack": "b' b - b''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b3", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STREFR", - "doc": { - "category": "cell_build", - "description": "Equivalent to `SWAP` `STREF`.", - "gas": "26", - "fift": "STREFR" - }, - "bytecode": { - "doc_opcode": "CF14", - "tlb": "#CF14", - "prefix": "CF14", - "operands": [] - }, - "value_flow": { - "doc_stack": "b c - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STBREFR_ALT", - "doc": { - "category": "cell_build", - "description": "A longer encoding of `STBREFR`.", - "gas": "526", - "fift": "STBREFR_l" - }, - "bytecode": { - "doc_opcode": "CF15", - "tlb": "#CF15", - "prefix": "CF15", - "operands": [] - }, - "value_flow": { - "doc_stack": "b b' - b''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b3", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STSLICER", - "doc": { - "category": "cell_build", - "description": "Equivalent to `SWAP` `STSLICE`.", - "gas": "26", - "fift": "STSLICER" - }, - "bytecode": { - "doc_opcode": "CF16", - "tlb": "#CF16", - "prefix": "CF16", - "operands": [] - }, - "value_flow": { - "doc_stack": "b s - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STBR", - "doc": { - "category": "cell_build", - "description": "Concatenates two builders.\nEquivalent to `SWAP` `STB`.", - "gas": "26", - "fift": "STBR\nBCONCAT" - }, - "bytecode": { - "doc_opcode": "CF17", - "tlb": "#CF17", - "prefix": "CF17", - "operands": [] - }, - "value_flow": { - "doc_stack": "b b' - b''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b3", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STREFQ", - "doc": { - "category": "cell_build", - "description": "Quiet version of `STREF`.", - "gas": "26", - "fift": "STREFQ" - }, - "bytecode": { - "doc_opcode": "CF18", - "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"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "STBREFQ", - "doc": { - "category": "cell_build", - "description": "Quiet version of `STBREF`.", - "gas": "526", - "fift": "STBREFQ" - }, - "bytecode": { - "doc_opcode": "CF19", - "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"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b3", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "STSLICEQ", - "doc": { - "category": "cell_build", - "description": "Quiet version of `STSLICE`.", - "gas": "26", - "fift": "STSLICEQ" - }, - "bytecode": { - "doc_opcode": "CF1A", - "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"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "STBQ", - "doc": { - "category": "cell_build", - "description": "Quiet version of `STB`.", - "gas": "26", - "fift": "STBQ" - }, - "bytecode": { - "doc_opcode": "CF1B", - "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"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b3", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "STREFRQ", - "doc": { - "category": "cell_build", - "description": "Quiet version of `STREFR`.", - "gas": "26", - "fift": "STREFRQ" - }, - "bytecode": { - "doc_opcode": "CF1C", - "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"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "STBREFRQ", - "doc": { - "category": "cell_build", - "description": "Quiet version of `STBREFR`.", - "gas": "526", - "fift": "STBREFRQ" - }, - "bytecode": { - "doc_opcode": "CF1D", - "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"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b3", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "STSLICERQ", - "doc": { - "category": "cell_build", - "description": "Quiet version of `STSLICER`.", - "gas": "26", - "fift": "STSLICERQ" - }, - "bytecode": { - "doc_opcode": "CF1E", - "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"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b3", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "STBRQ", - "doc": { - "category": "cell_build", - "description": "Quiet version of `STBR`.", - "gas": "26", - "fift": "STBRQ\nBCONCATQ" - }, - "bytecode": { - "doc_opcode": "CF1F", - "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"] - }, - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b3", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "STREFCONST", - "doc": { - "category": "cell_build", - "description": "Equivalent to `PUSHREF` `STREFR`.", - "gas": "26", - "fift": "[ref] STREFCONST" - }, - "bytecode": { - "doc_opcode": "CF20", - "tlb": "#CF20 c:^Cell", - "prefix": "CF20", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] - }, - "value_flow": { - "doc_stack": "b - b\u0432\u0402\u2122", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STREF2CONST", - "doc": { - "category": "cell_build", - "description": "Equivalent to `STREFCONST` `STREFCONST`.", - "gas": "26", - "fift": "[ref] [ref] STREF2CONST" - }, - "bytecode": { - "doc_opcode": "CF21", - "tlb": "#CF21 c1:^Cell c2:^Cell", - "prefix": "CF21", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - b\u0432\u0402\u2122", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "ENDXC", - "doc": { - "category": "cell_build", - "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": "" - }, - "bytecode": { - "doc_opcode": "CF23", - "tlb": "#CF23", - "prefix": "CF23", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x - c", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - } - } - }, - { - "mnemonic": "STILE4", - "doc": { - "category": "cell_build", - "description": "Stores a little-endian signed 32-bit integer.", - "gas": "26", - "fift": "STILE4" - }, - "bytecode": { - "doc_opcode": "CF28", - "tlb": "#CF28", - "prefix": "CF28", - "operands": [] - }, - "value_flow": { - "doc_stack": "x b - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STULE4", - "doc": { - "category": "cell_build", - "description": "Stores a little-endian unsigned 32-bit integer.", - "gas": "26", - "fift": "STULE4" - }, - "bytecode": { - "doc_opcode": "CF29", - "tlb": "#CF29", - "prefix": "CF29", - "operands": [] - }, - "value_flow": { - "doc_stack": "x b - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STILE8", - "doc": { - "category": "cell_build", - "description": "Stores a little-endian signed 64-bit integer.", - "gas": "26", - "fift": "STILE8" - }, - "bytecode": { - "doc_opcode": "CF2A", - "tlb": "#CF2A", - "prefix": "CF2A", - "operands": [] - }, - "value_flow": { - "doc_stack": "x b - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STULE8", - "doc": { - "category": "cell_build", - "description": "Stores a little-endian unsigned 64-bit integer.", - "gas": "26", - "fift": "STULE8" - }, - "bytecode": { - "doc_opcode": "CF2B", - "tlb": "#CF2B", - "prefix": "CF2B", - "operands": [] - }, - "value_flow": { - "doc_stack": "x b - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "BDEPTH", - "doc": { - "category": "cell_build", - "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" - }, - "bytecode": { - "doc_opcode": "CF30", - "tlb": "#CF30", - "prefix": "CF30", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BBITS", - "doc": { - "category": "cell_build", - "description": "Returns the number of data bits already stored in _Builder_ `b`.", - "gas": "26", - "fift": "BBITS" - }, - "bytecode": { - "doc_opcode": "CF31", - "tlb": "#CF31", - "prefix": "CF31", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BREFS", - "doc": { - "category": "cell_build", - "description": "Returns the number of cell references already stored in `b`.", - "gas": "26", - "fift": "BREFS" - }, - "bytecode": { - "doc_opcode": "CF32", - "tlb": "#CF32", - "prefix": "CF32", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BBITREFS", - "doc": { - "category": "cell_build", - "description": "Returns the numbers of both data bits and cell references in `b`.", - "gas": "26", - "fift": "BBITREFS" - }, - "bytecode": { - "doc_opcode": "CF33", - "tlb": "#CF33", - "prefix": "CF33", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - x y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BREMBITS", - "doc": { - "category": "cell_build", - "description": "Returns the number of data bits that can still be stored in `b`.", - "gas": "26", - "fift": "BREMBITS" - }, - "bytecode": { - "doc_opcode": "CF35", - "tlb": "#CF35", - "prefix": "CF35", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - x'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BREMREFS", - "doc": { - "category": "cell_build", - "description": "Returns the number of references that can still be stored in `b`.", - "gas": "26", - "fift": "BREMREFS" - }, - "bytecode": { - "doc_opcode": "CF36", - "tlb": "#CF36", - "prefix": "CF36", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - y'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "y2", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BREMBITREFS", - "doc": { - "category": "cell_build", - "description": "Returns the numbers of both data bits and references that can still be stored in `b`.", - "gas": "26", - "fift": "BREMBITREFS" - }, - "bytecode": { - "doc_opcode": "CF37", - "tlb": "#CF37", - "prefix": "CF37", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - x' y'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y2", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BCHKBITS", - "doc": { - "category": "cell_build", - "description": "Checks whether `cc+1` bits can be stored into `b`, where `0 <= cc <= 255`.", - "gas": "34/84", - "fift": "[cc+1] BCHKBITS#" - }, - "bytecode": { - "doc_opcode": "CF38cc", - "tlb": "#CF38 cc:uint8", - "prefix": "CF38", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "b -", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "BCHKBITS_VAR", - "doc": { - "category": "cell_build", - "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" - }, - "bytecode": { - "doc_opcode": "CF39", - "tlb": "#CF39", - "prefix": "CF39", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "BCHKREFS", - "doc": { - "category": "cell_build", - "description": "Checks whether `y` references can be stored into `b`, `0 <= y <= 7`.", - "gas": "26/76", - "fift": "BCHKREFS" - }, - "bytecode": { - "doc_opcode": "CF3A", - "tlb": "#CF3A", - "prefix": "CF3A", - "operands": [] - }, - "value_flow": { - "doc_stack": "b y - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "BCHKBITREFS", - "doc": { - "category": "cell_build", - "description": "Checks whether `x` bits and `y` references can be stored into `b`, `0 <= x <= 1023`, `0 <= y <= 7`.", - "gas": "26/76", - "fift": "BCHKBITREFS" - }, - "bytecode": { - "doc_opcode": "CF3B", - "tlb": "#CF3B", - "prefix": "CF3B", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x y - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "BCHKBITSQ", - "doc": { - "category": "cell_build", - "description": "Checks whether `cc+1` bits can be stored into `b`, where `0 <= cc <= 255`.", - "gas": "34", - "fift": "[cc+1] BCHKBITSQ#" - }, - "bytecode": { - "doc_opcode": "CF3Ccc", - "tlb": "#CF3C cc:uint8", - "prefix": "CF3C", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "b - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BCHKBITSQ_VAR", - "doc": { - "category": "cell_build", - "description": "Checks whether `x` bits can be stored into `b`, `0 <= x <= 1023`.", - "gas": "26", - "fift": "BCHKBITSQ" - }, - "bytecode": { - "doc_opcode": "CF3D", - "tlb": "#CF3D", - "prefix": "CF3D", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BCHKREFSQ", - "doc": { - "category": "cell_build", - "description": "Checks whether `y` references can be stored into `b`, `0 <= y <= 7`.", - "gas": "26", - "fift": "BCHKREFSQ" - }, - "bytecode": { - "doc_opcode": "CF3E", - "tlb": "#CF3E", - "prefix": "CF3E", - "operands": [] - }, - "value_flow": { - "doc_stack": "b y - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BCHKBITREFSQ", - "doc": { - "category": "cell_build", - "description": "Checks whether `x` bits and `y` references can be stored into `b`, `0 <= x <= 1023`, `0 <= y <= 7`.", - "gas": "26", - "fift": "BCHKBITREFSQ" - }, - "bytecode": { - "doc_opcode": "CF3F", - "tlb": "#CF3F", - "prefix": "CF3F", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x y - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "STZEROES", - "doc": { - "category": "cell_build", - "description": "Stores `n` binary zeroes into _Builder_ `b`.", - "gas": "26", - "fift": "STZEROES" - }, - "bytecode": { - "doc_opcode": "CF40", - "tlb": "#CF40", - "prefix": "CF40", - "operands": [] - }, - "value_flow": { - "doc_stack": "b n - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STONES", - "doc": { - "category": "cell_build", - "description": "Stores `n` binary ones into _Builder_ `b`.", - "gas": "26", - "fift": "STONES" - }, - "bytecode": { - "doc_opcode": "CF41", - "tlb": "#CF41", - "prefix": "CF41", - "operands": [] - }, - "value_flow": { - "doc_stack": "b n - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STSAME", - "doc": { - "category": "cell_build", - "description": "Stores `n` binary `x`es (`0 <= x <= 1`) into _Builder_ `b`.", - "gas": "26", - "fift": "STSAME" - }, - "bytecode": { - "doc_opcode": "CF42", - "tlb": "#CF42", - "prefix": "CF42", - "operands": [] - }, - "value_flow": { - "doc_stack": "b n x - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STSLICECONST", - "doc": { - "category": "cell_build", - "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" - }, - "bytecode": { - "doc_opcode": "CFC0_xysss", - "tlb": "#CFC0_ x:(## 2) y:(## 3) c:(x * ^Cell) sss:((8 * y + 2) * Bit)", - "prefix": "CFC0_", - "operands": [ - { - "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 3, - "bits_padding": 2, - "refs_length_var_size": 2, - "completion_tag": true - } - } - ] - }, - "value_flow": { - "doc_stack": "b - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "CTOS", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D0", - "tlb": "#D0", - "prefix": "D0", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - s", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "ENDS", - "doc": { - "category": "cell_parse", - "description": "Removes a _Slice_ `s` from the stack, and throws an exception if it is not empty.", - "gas": "18/68", - "fift": "ENDS" - }, - "bytecode": { - "doc_opcode": "D1", - "tlb": "#D1", - "prefix": "D1", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "LDI", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D2cc", - "tlb": "#D2 cc:uint8", - "prefix": "D2", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDU", - "doc": { - "category": "cell_parse", - "description": "Loads an unsigned `cc+1`-bit integer `x` from _Slice_ `s`.", - "gas": "26", - "fift": "[cc+1] LDU" - }, - "bytecode": { - "doc_opcode": "D3cc", - "tlb": "#D3 cc:uint8", - "prefix": "D3", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDREF", - "doc": { - "category": "cell_parse", - "description": "Loads a cell reference `c` from `s`.", - "gas": "18", - "fift": "LDREF" - }, - "bytecode": { - "doc_opcode": "D4", - "tlb": "#D4", - "prefix": "D4", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - c s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDREFRTOS", - "doc": { - "category": "cell_parse", - "description": "Equivalent to `LDREF` `SWAP` `CTOS`.", - "gas": "118/43", - "fift": "LDREFRTOS" - }, - "bytecode": { - "doc_opcode": "D5", - "tlb": "#D5", - "prefix": "D5", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - s' s''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDSLICE", - "doc": { - "category": "cell_parse", - "description": "Cuts the next `cc+1` bits of `s` into a separate _Slice_ `s''`.", - "gas": "26", - "fift": "[cc+1] LDSLICE" - }, - "bytecode": { - "doc_opcode": "D6cc", - "tlb": "#D6 cc:uint8", - "prefix": "D6", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "s - s'' s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDIX", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D700", - "tlb": "#D700", - "prefix": "D700", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - x s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDUX", - "doc": { - "category": "cell_parse", - "description": "Loads an unsigned `l`-bit integer `x` from (the first `l` bits of) `s`, with `0 <= l <= 256`.", - "gas": "26", - "fift": "LDUX" - }, - "bytecode": { - "doc_opcode": "D701", - "tlb": "#D701", - "prefix": "D701", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - x s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "PLDIX", - "doc": { - "category": "cell_parse", - "description": "Preloads a signed `l`-bit integer from _Slice_ `s`, for `0 <= l <= 257`.", - "gas": "26", - "fift": "PLDIX" - }, - "bytecode": { - "doc_opcode": "D702", - "tlb": "#D702", - "prefix": "D702", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDUX", - "doc": { - "category": "cell_parse", - "description": "Preloads an unsigned `l`-bit integer from `s`, for `0 <= l <= 256`.", - "gas": "26", - "fift": "PLDUX" - }, - "bytecode": { - "doc_opcode": "D703", - "tlb": "#D703", - "prefix": "D703", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LDIXQ", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D704", - "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"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LDUXQ", - "doc": { - "category": "cell_parse", - "description": "Quiet version of `LDUX`.", - "gas": "26", - "fift": "LDUXQ" - }, - "bytecode": { - "doc_opcode": "D705", - "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"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDIXQ", - "doc": { - "category": "cell_parse", - "description": "Quiet version of `PLDIX`.", - "gas": "26", - "fift": "PLDIXQ" - }, - "bytecode": { - "doc_opcode": "D706", - "tlb": "#D706", - "prefix": "D706", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - x -1 or 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDUXQ", - "doc": { - "category": "cell_parse", - "description": "Quiet version of `PLDUX`.", - "gas": "26", - "fift": "PLDUXQ" - }, - "bytecode": { - "doc_opcode": "D707", - "tlb": "#D707", - "prefix": "D707", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - x -1 or 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LDI_ALT", - "doc": { - "category": "cell_parse", - "description": "A longer encoding for `LDI`.", - "gas": "34", - "fift": "[cc+1] LDI_l" - }, - "bytecode": { - "doc_opcode": "D708cc", - "tlb": "#D708 cc:uint8", - "prefix": "D708", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDU_ALT", - "doc": { - "category": "cell_parse", - "description": "A longer encoding for `LDU`.", - "gas": "34", - "fift": "[cc+1] LDU_l" - }, - "bytecode": { - "doc_opcode": "D709cc", - "tlb": "#D709 cc:uint8", - "prefix": "D709", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "PLDI", - "doc": { - "category": "cell_parse", - "description": "Preloads a signed `cc+1`-bit integer from _Slice_ `s`.", - "gas": "34", - "fift": "[cc+1] PLDI" - }, - "bytecode": { - "doc_opcode": "D70Acc", - "tlb": "#D70A cc:uint8", - "prefix": "D70A", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDU", - "doc": { - "category": "cell_parse", - "description": "Preloads an unsigned `cc+1`-bit integer from `s`.", - "gas": "34", - "fift": "[cc+1] PLDU" - }, - "bytecode": { - "doc_opcode": "D70Bcc", - "tlb": "#D70B cc:uint8", - "prefix": "D70B", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LDIQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `LDI`.", - "gas": "34", - "fift": "[cc+1] LDIQ" - }, - "bytecode": { - "doc_opcode": "D70Ccc", - "tlb": "#D70C cc:uint8", - "prefix": "D70C", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "s - x s' -1 or s 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LDUQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `LDU`.", - "gas": "34", - "fift": "[cc+1] LDUQ" - }, - "bytecode": { - "doc_opcode": "D70Dcc", - "tlb": "#D70D cc:uint8", - "prefix": "D70D", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "s - x s' -1 or s 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDIQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `PLDI`.", - "gas": "34", - "fift": "[cc+1] PLDIQ" - }, - "bytecode": { - "doc_opcode": "D70Ecc", - "tlb": "#D70E cc:uint8", - "prefix": "D70E", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "s - x -1 or 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDUQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `PLDU`.", - "gas": "34", - "fift": "[cc+1] PLDUQ" - }, - "bytecode": { - "doc_opcode": "D70Fcc", - "tlb": "#D70F cc:uint8", - "prefix": "D70F", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "s - x -1 or 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDUZ", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D714_c", - "tlb": "#D714_ c:uint3", - "prefix": "D714_", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 3 - } - } - ] - }, - "value_flow": { - "doc_stack": "s - s x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LDSLICEX", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D718", - "tlb": "#D718", - "prefix": "D718", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - s'' s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "PLDSLICEX", - "doc": { - "category": "cell_parse", - "description": "Returns the first `0 <= l <= 1023` bits of `s` as `s''`.", - "gas": "26", - "fift": "PLDSLICEX" - }, - "bytecode": { - "doc_opcode": "D719", - "tlb": "#D719", - "prefix": "D719", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - s''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDSLICEXQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `LDSLICEX`.", - "gas": "26", - "fift": "LDSLICEXQ" - }, - "bytecode": { - "doc_opcode": "D71A", - "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"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDSLICEXQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `LDSLICEXQ`.", - "gas": "26", - "fift": "PLDSLICEXQ" - }, - "bytecode": { - "doc_opcode": "D71B", - "tlb": "#D71B", - "prefix": "D71B", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - s' -1 or 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LDSLICE_ALT", - "doc": { - "category": "cell_parse", - "description": "A longer encoding for `LDSLICE`.", - "gas": "34", - "fift": "[cc+1] LDSLICE_l" - }, - "bytecode": { - "doc_opcode": "D71Ccc", - "tlb": "#D71C cc:uint8", - "prefix": "D71C", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "s - s'' s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "PLDSLICE", - "doc": { - "category": "cell_parse", - "description": "Returns the first `0 < cc+1 <= 256` bits of `s` as `s''`.", - "gas": "34", - "fift": "[cc+1] PLDSLICE" - }, - "bytecode": { - "doc_opcode": "D71Dcc", - "tlb": "#D71D cc:uint8", - "prefix": "D71D", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "s - s''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDSLICEQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `LDSLICE`.", - "gas": "34", - "fift": "[cc+1] LDSLICEQ" - }, - "bytecode": { - "doc_opcode": "D71Ecc", - "tlb": "#D71E cc:uint8", - "prefix": "D71E", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "s - s'' s' -1 or s 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDSLICEQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `PLDSLICE`.", - "gas": "34", - "fift": "[cc+1] PLDSLICEQ" - }, - "bytecode": { - "doc_opcode": "D71Fcc", - "tlb": "#D71F cc:uint8", - "prefix": "D71F", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "s - s'' -1 or 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDCUTFIRST", - "doc": { - "category": "cell_parse", - "description": "Returns the first `0 <= l <= 1023` bits of `s`. It is equivalent to `PLDSLICEX`.", - "gas": "26", - "fift": "SDCUTFIRST" - }, - "bytecode": { - "doc_opcode": "D720", - "tlb": "#D720", - "prefix": "D720", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "SDSKIPFIRST", - "doc": { - "category": "cell_parse", - "description": "Returns all but the first `0 <= l <= 1023` bits of `s`. It is equivalent to `LDSLICEX` `NIP`.", - "gas": "26", - "fift": "SDSKIPFIRST" - }, - "bytecode": { - "doc_opcode": "D721", - "tlb": "#D721", - "prefix": "D721", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "SDCUTLAST", - "doc": { - "category": "cell_parse", - "description": "Returns the last `0 <= l <= 1023` bits of `s`.", - "gas": "26", - "fift": "SDCUTLAST" - }, - "bytecode": { - "doc_opcode": "D722", - "tlb": "#D722", - "prefix": "D722", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "SDSKIPLAST", - "doc": { - "category": "cell_parse", - "description": "Returns all but the last `0 <= l <= 1023` bits of `s`.", - "gas": "26", - "fift": "SDSKIPLAST" - }, - "bytecode": { - "doc_opcode": "D723", - "tlb": "#D723", - "prefix": "D723", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "SDSUBSTR", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D724", - "tlb": "#D724", - "prefix": "D724", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l l' - s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l2", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "SDBEGINSX", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D726", - "tlb": "#D726", - "prefix": "D726", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - s''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "SDBEGINSXQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `SDBEGINSX`.", - "gas": "26", - "fift": "SDBEGINSXQ" - }, - "bytecode": { - "doc_opcode": "D727", - "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"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDBEGINS", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D72A_xsss", - "tlb": "#D72A_ x:(## 7) sss:((8 * x + 3) * Bit)", - "prefix": "D72A_", - "operands": [ - { - "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 7, - "bits_padding": 3, - "completion_tag": true - } - } - ] - }, - "value_flow": { - "doc_stack": "s - s''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "SDBEGINSQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `SDBEGINS`.", - "gas": "31", - "fift": "[slice] SDBEGINSQ" - }, - "bytecode": { - "doc_opcode": "D72E_xsss", - "tlb": "#D72E_ x:(## 7) sss:((8 * x + 3) * Bit)", - "prefix": "D72E_", - "operands": [ - { - "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 7, - "bits_padding": 3, - "completion_tag": true - } - } - ] - }, - "value_flow": { - "doc_stack": "s - s'' -1 or s 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SCUTFIRST", - "doc": { - "category": "cell_parse", - "description": "Returns the first `0 <= l <= 1023` bits and first `0 <= r <= 4` references of `s`.", - "gas": "26", - "fift": "SCUTFIRST" - }, - "bytecode": { - "doc_opcode": "D730", - "tlb": "#D730", - "prefix": "D730", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l r - s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "SSKIPFIRST", - "doc": { - "category": "cell_parse", - "description": "Returns all but the first `l` bits of `s` and `r` references of `s`.", - "gas": "26", - "fift": "SSKIPFIRST" - }, - "bytecode": { - "doc_opcode": "D731", - "tlb": "#D731", - "prefix": "D731", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l r - s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "SCUTLAST", - "doc": { - "category": "cell_parse", - "description": "Returns the last `0 <= l <= 1023` data bits and last `0 <= r <= 4` references of `s`.", - "gas": "26", - "fift": "SCUTLAST" - }, - "bytecode": { - "doc_opcode": "D732", - "tlb": "#D732", - "prefix": "D732", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l r - s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "SSKIPLAST", - "doc": { - "category": "cell_parse", - "description": "Returns all but the last `l` bits of `s` and `r` references of `s`.", - "gas": "26", - "fift": "SSKIPLAST" - }, - "bytecode": { - "doc_opcode": "D733", - "tlb": "#D733", - "prefix": "D733", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l r - s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "SUBSLICE", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D734", - "tlb": "#D734", - "prefix": "D734", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l r l' r' - s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l2", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r2", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "SPLIT", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D736", - "tlb": "#D736", - "prefix": "D736", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l r - s' s''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "SPLITQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `SPLIT`.", - "gas": "26", - "fift": "SPLITQ" - }, - "bytecode": { - "doc_opcode": "D737", - "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"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "XCTOS", - "doc": { - "category": "cell_parse", - "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": "" - }, - "bytecode": { - "doc_opcode": "D739", - "tlb": "#D739", - "prefix": "D739", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - s ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "flag", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "XLOAD", - "doc": { - "category": "cell_parse", - "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": "" - }, - "bytecode": { - "doc_opcode": "D73A", - "tlb": "#D73A", - "prefix": "D73A", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - c'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } - ] - } - } - }, - { - "mnemonic": "XLOADQ", - "doc": { - "category": "cell_parse", - "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": "" - }, - "bytecode": { - "doc_opcode": "D73B", - "tlb": "#D73B", - "prefix": "D73B", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - c' -1 or c 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SCHKBITS", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D741", - "tlb": "#D741", - "prefix": "D741", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "SCHKREFS", - "doc": { - "category": "cell_parse", - "description": "Checks whether there are at least `r` references in _Slice_ `s`.", - "gas": "26/76", - "fift": "SCHKREFS" - }, - "bytecode": { - "doc_opcode": "D742", - "tlb": "#D742", - "prefix": "D742", - "operands": [] - }, - "value_flow": { - "doc_stack": "s r - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "SCHKBITREFS", - "doc": { - "category": "cell_parse", - "description": "Checks whether there are at least `l` data bits and `r` references in _Slice_ `s`.", - "gas": "26/76", - "fift": "SCHKBITREFS" - }, - "bytecode": { - "doc_opcode": "D743", - "tlb": "#D743", - "prefix": "D743", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l r - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "SCHKBITSQ", - "doc": { - "category": "cell_parse", - "description": "Checks whether there are at least `l` data bits in _Slice_ `s`.", - "gas": "26", - "fift": "SCHKBITSQ" - }, - "bytecode": { - "doc_opcode": "D745", - "tlb": "#D745", - "prefix": "D745", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SCHKREFSQ", - "doc": { - "category": "cell_parse", - "description": "Checks whether there are at least `r` references in _Slice_ `s`.", - "gas": "26", - "fift": "SCHKREFSQ" - }, - "bytecode": { - "doc_opcode": "D746", - "tlb": "#D746", - "prefix": "D746", - "operands": [] - }, - "value_flow": { - "doc_stack": "s r - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SCHKBITREFSQ", - "doc": { - "category": "cell_parse", - "description": "Checks whether there are at least `l` data bits and `r` references in _Slice_ `s`.", - "gas": "26", - "fift": "SCHKBITREFSQ" - }, - "bytecode": { - "doc_opcode": "D747", - "tlb": "#D747", - "prefix": "D747", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l r - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDREFVAR", - "doc": { - "category": "cell_parse", - "description": "Returns the `n`-th cell reference of _Slice_ `s` for `0 <= n <= 3`.", - "gas": "26", - "fift": "PLDREFVAR" - }, - "bytecode": { - "doc_opcode": "D748", - "tlb": "#D748", - "prefix": "D748", - "operands": [] - }, - "value_flow": { - "doc_stack": "s n - c", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - } - } - }, - { - "mnemonic": "SBITS", - "doc": { - "category": "cell_parse", - "description": "Returns the number of data bits in _Slice_ `s`.", - "gas": "26", - "fift": "SBITS" - }, - "bytecode": { - "doc_opcode": "D749", - "tlb": "#D749", - "prefix": "D749", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - l", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SREFS", - "doc": { - "category": "cell_parse", - "description": "Returns the number of references in _Slice_ `s`.", - "gas": "26", - "fift": "SREFS" - }, - "bytecode": { - "doc_opcode": "D74A", - "tlb": "#D74A", - "prefix": "D74A", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - r", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SBITREFS", - "doc": { - "category": "cell_parse", - "description": "Returns both the number of data bits and the number of references in `s`.", - "gas": "26", - "fift": "SBITREFS" - }, - "bytecode": { - "doc_opcode": "D74B", - "tlb": "#D74B", - "prefix": "D74B", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - l r", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDREFIDX", - "doc": { - "category": "cell_parse", - "description": "Returns the `n`-th cell reference of _Slice_ `s`, where `0 <= n <= 3`.", - "gas": "26", - "fift": "[n] PLDREFIDX" - }, - "bytecode": { - "doc_opcode": "D74E_n", - "tlb": "#D74E_ n:uint2", - "prefix": "D74E_", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 2 - } - } - ] - }, - "value_flow": { - "doc_stack": "s - c", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - } - } - }, - { - "mnemonic": "LDILE4", - "doc": { - "category": "cell_parse", - "description": "Loads a little-endian signed 32-bit integer.", - "gas": "26", - "fift": "LDILE4" - }, - "bytecode": { - "doc_opcode": "D750", - "tlb": "#D750", - "prefix": "D750", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDULE4", - "doc": { - "category": "cell_parse", - "description": "Loads a little-endian unsigned 32-bit integer.", - "gas": "26", - "fift": "LDULE4" - }, - "bytecode": { - "doc_opcode": "D751", - "tlb": "#D751", - "prefix": "D751", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDILE8", - "doc": { - "category": "cell_parse", - "description": "Loads a little-endian signed 64-bit integer.", - "gas": "26", - "fift": "LDILE8" - }, - "bytecode": { - "doc_opcode": "D752", - "tlb": "#D752", - "prefix": "D752", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDULE8", - "doc": { - "category": "cell_parse", - "description": "Loads a little-endian unsigned 64-bit integer.", - "gas": "26", - "fift": "LDULE8" - }, - "bytecode": { - "doc_opcode": "D753", - "tlb": "#D753", - "prefix": "D753", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "PLDILE4", - "doc": { - "category": "cell_parse", - "description": "Preloads a little-endian signed 32-bit integer.", - "gas": "26", - "fift": "PLDILE4" - }, - "bytecode": { - "doc_opcode": "D754", - "tlb": "#D754", - "prefix": "D754", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDULE4", - "doc": { - "category": "cell_parse", - "description": "Preloads a little-endian unsigned 32-bit integer.", - "gas": "26", - "fift": "PLDULE4" - }, - "bytecode": { - "doc_opcode": "D755", - "tlb": "#D755", - "prefix": "D755", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDILE8", - "doc": { - "category": "cell_parse", - "description": "Preloads a little-endian signed 64-bit integer.", - "gas": "26", - "fift": "PLDILE8" - }, - "bytecode": { - "doc_opcode": "D756", - "tlb": "#D756", - "prefix": "D756", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDULE8", - "doc": { - "category": "cell_parse", - "description": "Preloads a little-endian unsigned 64-bit integer.", - "gas": "26", - "fift": "PLDULE8" - }, - "bytecode": { - "doc_opcode": "D757", - "tlb": "#D757", - "prefix": "D757", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LDILE4Q", - "doc": { - "category": "cell_parse", - "description": "Quietly loads a little-endian signed 32-bit integer.", - "gas": "26", - "fift": "LDILE4Q" - }, - "bytecode": { - "doc_opcode": "D758", - "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"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LDULE4Q", - "doc": { - "category": "cell_parse", - "description": "Quietly loads a little-endian unsigned 32-bit integer.", - "gas": "26", - "fift": "LDULE4Q" - }, - "bytecode": { - "doc_opcode": "D759", - "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"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LDILE8Q", - "doc": { - "category": "cell_parse", - "description": "Quietly loads a little-endian signed 64-bit integer.", - "gas": "26", - "fift": "LDILE8Q" - }, - "bytecode": { - "doc_opcode": "D75A", - "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"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LDULE8Q", - "doc": { - "category": "cell_parse", - "description": "Quietly loads a little-endian unsigned 64-bit integer.", - "gas": "26", - "fift": "LDULE8Q" - }, - "bytecode": { - "doc_opcode": "D75B", - "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"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDILE4Q", - "doc": { - "category": "cell_parse", - "description": "Quietly preloads a little-endian signed 32-bit integer.", - "gas": "26", - "fift": "PLDILE4Q" - }, - "bytecode": { - "doc_opcode": "D75C", - "tlb": "#D75C", - "prefix": "D75C", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x -1 or 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDULE4Q", - "doc": { - "category": "cell_parse", - "description": "Quietly preloads a little-endian unsigned 32-bit integer.", - "gas": "26", - "fift": "PLDULE4Q" - }, - "bytecode": { - "doc_opcode": "D75D", - "tlb": "#D75D", - "prefix": "D75D", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x -1 or 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDILE8Q", - "doc": { - "category": "cell_parse", - "description": "Quietly preloads a little-endian signed 64-bit integer.", - "gas": "26", - "fift": "PLDILE8Q" - }, - "bytecode": { - "doc_opcode": "D75E", - "tlb": "#D75E", - "prefix": "D75E", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x -1 or 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDULE8Q", - "doc": { - "category": "cell_parse", - "description": "Quietly preloads a little-endian unsigned 64-bit integer.", - "gas": "26", - "fift": "PLDULE8Q" - }, - "bytecode": { - "doc_opcode": "D75F", - "tlb": "#D75F", - "prefix": "D75F", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x -1 or 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LDZEROES", - "doc": { - "category": "cell_parse", - "description": "Returns the count `n` of leading zero bits in `s`, and removes these bits from `s`.", - "gas": "26", - "fift": "LDZEROES" - }, - "bytecode": { - "doc_opcode": "D760", - "tlb": "#D760", - "prefix": "D760", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - n s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDONES", - "doc": { - "category": "cell_parse", - "description": "Returns the count `n` of leading one bits in `s`, and removes these bits from `s`.", - "gas": "26", - "fift": "LDONES" - }, - "bytecode": { - "doc_opcode": "D761", - "tlb": "#D761", - "prefix": "D761", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - n s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDSAME", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D762", - "tlb": "#D762", - "prefix": "D762", - "operands": [] - }, - "value_flow": { - "doc_stack": "s x - n s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "SDEPTH", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D764", - "tlb": "#D764", - "prefix": "D764", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "CDEPTH", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D765", - "tlb": "#D765", - "prefix": "D765", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "EXECUTE", - "doc": { - "category": "cont_basic", - "description": "_Calls_, or _executes_, continuation `c`.", - "gas": "18", - "fift": "EXECUTE\nCALLX" - }, - "bytecode": { - "doc_opcode": "D8", - "tlb": "#D8", - "prefix": "D8", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ] - } - }, - { - "mnemonic": "JMPX", - "doc": { - "category": "cont_basic", - "description": "_Jumps_, or transfers control, to continuation `c`.\nThe remainder of the previous current continuation `cc` is discarded.", - "gas": "18", - "fift": "JMPX" - }, - "bytecode": { - "doc_opcode": "D9", - "tlb": "#D9", - "prefix": "D9", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } - }, - { - "mnemonic": "CALLXARGS", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DApr", - "tlb": "#DA p:uint4 r:uint4", - "prefix": "DA", - "operands": [ - { - "name": "p", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "r", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ] - } - }, - { - "mnemonic": "CALLXARGS_VAR", - "doc": { - "category": "cont_basic", - "description": "_Calls_ continuation `c` with `0 <= p <= 15` parameters, expecting an arbitrary number of return values.", - "gas": "26", - "fift": "[p] -1 CALLXARGS" - }, - "bytecode": { - "doc_opcode": "DB0p", - "tlb": "#DB0 p:uint4", - "prefix": "DB0", - "operands": [ - { - "name": "p", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ] - } - }, - { - "mnemonic": "JMPXARGS", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB1p", - "tlb": "#DB1 p:uint4", - "prefix": "DB1", - "operands": [ - { - "name": "p", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } - }, - { - "mnemonic": "RETARGS", - "doc": { - "category": "cont_basic", - "description": "_Returns_ to `c0`, with `0 <= r <= 15` return values taken from the current stack.", - "gas": "26", - "fift": "[r] RETARGS" - }, - "bytecode": { - "doc_opcode": "DB2r", - "tlb": "#DB2 r:uint4", - "prefix": "DB2", - "operands": [ - { - "name": "r", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { "type": "register", "index": 0 } - ] - } - }, - { - "mnemonic": "RET", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB30", - "tlb": "#DB30", - "prefix": "DB30", - "operands": [] - }, - "value_flow": { - "doc_stack": "", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { "type": "register", "index": 0 } - ] - } - }, - { - "mnemonic": "RETALT", - "doc": { - "category": "cont_basic", - "description": "_Returns_ to the continuation at `c1`.\nApproximately equivalent to `c1 PUSHCTR` `JMPX`.", - "gas": "26", - "fift": "RETALT\nRETFALSE" - }, - "bytecode": { - "doc_opcode": "DB31", - "tlb": "#DB31", - "prefix": "DB31", - "operands": [] - }, - "value_flow": { - "doc_stack": "", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { "type": "register", "index": 1 } - ] - } - }, - { - "mnemonic": "BRANCH", - "doc": { - "category": "cont_basic", - "description": "Performs `RETTRUE` if integer `f!=0`, or `RETFALSE` if `f=0`.", - "gas": "26", - "fift": "BRANCH\nRETBOOL" - }, - "bytecode": { - "doc_opcode": "DB32", - "tlb": "#DB32", - "prefix": "DB32", - "operands": [] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { "type": "register", "index": 0 }, - { "type": "register", "index": 1 } - ] - } - }, - { - "mnemonic": "CALLCC", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB34", - "tlb": "#DB34", - "prefix": "DB34", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } - }, - { - "mnemonic": "JMPXDATA", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB35", - "tlb": "#DB35", - "prefix": "DB35", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } - }, - { - "mnemonic": "CALLCCARGS", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB36pr", - "tlb": "#DB36 p:uint4 r:uint4", - "prefix": "DB36", - "operands": [ - { - "name": "p", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "r", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } - }, - { - "mnemonic": "CALLXVARARGS", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB38", - "tlb": "#DB38", - "prefix": "DB38", - "operands": [] - }, - "value_flow": { - "doc_stack": "c p r - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "p", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ] - } - }, - { - "mnemonic": "RETVARARGS", - "doc": { - "category": "cont_basic", - "description": "Similar to `RETARGS`.", - "gas": "26", - "fift": "RETVARARGS" - }, - "bytecode": { - "doc_opcode": "DB39", - "tlb": "#DB39", - "prefix": "DB39", - "operands": [] - }, - "value_flow": { - "doc_stack": "p r - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] - }, - { - "type": "simple", - "name": "p", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ] - } - }, - { - "mnemonic": "JMPXVARARGS", - "doc": { - "category": "cont_basic", - "description": "Similar to `JMPXARGS`.", - "gas": "26", - "fift": "JMPXVARARGS" - }, - "bytecode": { - "doc_opcode": "DB3A", - "tlb": "#DB3A", - "prefix": "DB3A", - "operands": [] - }, - "value_flow": { - "doc_stack": "c p r - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "p", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } - }, - { - "mnemonic": "CALLCCVARARGS", - "doc": { - "category": "cont_basic", - "description": "Similar to `CALLCCARGS`.", - "gas": "26", - "fift": "CALLCCVARARGS" - }, - "bytecode": { - "doc_opcode": "DB3B", - "tlb": "#DB3B", - "prefix": "DB3B", - "operands": [] - }, - "value_flow": { - "doc_stack": "c p r - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "p", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } - }, - { - "mnemonic": "CALLREF", - "doc": { - "category": "cont_basic", - "description": "Equivalent to `PUSHREFCONT` `CALLX`.", - "gas": "126/51", - "fift": "[ref] CALLREF" - }, - "bytecode": { - "doc_opcode": "DB3C", - "tlb": "#DB3C c:^Cell", - "prefix": "DB3C", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] - }, - "value_flow": { - "doc_stack": "", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ] - } - }, - { - "mnemonic": "JMPREF", - "doc": { - "category": "cont_basic", - "description": "Equivalent to `PUSHREFCONT` `JMPX`.", - "gas": "126/51", - "fift": "[ref] JMPREF" - }, - "bytecode": { - "doc_opcode": "DB3D", - "tlb": "#DB3D c:^Cell", - "prefix": "DB3D", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] - }, - "value_flow": { - "doc_stack": "", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } - }, - { - "mnemonic": "JMPREFDATA", - "doc": { - "category": "cont_basic", - "description": "Equivalent to `PUSHREFCONT` `JMPXDATA`.", - "gas": "126/51", - "fift": "[ref] JMPREFDATA" - }, - "bytecode": { - "doc_opcode": "DB3E", - "tlb": "#DB3E c:^Cell", - "prefix": "DB3E", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] - }, - "value_flow": { - "doc_stack": "", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } - }, - { - "mnemonic": "RETDATA", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB3F", - "tlb": "#DB3F", - "prefix": "DB3F", - "operands": [] - }, - "value_flow": { - "doc_stack": "", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { "type": "register", "index": 0 } - ] - } - }, - { - "mnemonic": "RUNVM", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB4fff", - "tlb": "#DB4 flags:(## 12)", - "prefix": "DB4", - "operands": [] - }, - "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]" - } - }, - { - "mnemonic": "RUNVMX", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB50", - "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]" - } - }, - { - "mnemonic": "IFRET", - "doc": { - "category": "cont_conditional", - "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:" - }, - "bytecode": { - "doc_opcode": "DC", - "tlb": "#DC", - "prefix": "DC", - "operands": [] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { "type": "register", "index": 0 } - ], - "nobranch": true - } - }, - { - "mnemonic": "IFNOTRET", - "doc": { - "category": "cont_conditional", - "description": "Performs a `RET`, but only if integer `f` is zero.", - "gas": "18", - "fift": "IFNOTRET\nIF:" - }, - "bytecode": { - "doc_opcode": "DD", - "tlb": "#DD", - "prefix": "DD", - "operands": [] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { "type": "register", "index": 0 } - ], - "nobranch": true - } - }, - { - "mnemonic": "IF", - "doc": { - "category": "cont_conditional", - "description": "Performs `EXECUTE` for `c` (i.e., _executes_ `c`), but only if integer `f` is non-zero. Otherwise simply discards both values.", - "gas": "18", - "fift": "IF", - "fift_examples": [ - { - "fift": "IF:<{ code }> <{ code }>IF", - "description": "Equivalent to `<{ code }> CONT` `IF`." - } - ] - }, - "bytecode": { - "doc_opcode": "DE", - "tlb": "#DE", - "prefix": "DE", - "operands": [] - }, - "value_flow": { - "doc_stack": "f c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ], - "nobranch": true - } - }, - { - "mnemonic": "IFNOT", - "doc": { - "category": "cont_conditional", - "description": "Executes continuation `c`, but only if integer `f` is zero. Otherwise simply discards both values.", - "gas": "18", - "fift": "IFNOT", - "fift_examples": [ - { - "fift": "IFNOT:<{ code }> <{ code }>IFNOT", - "description": "Equivalent to `<{ code }> CONT` `IFNOT`." - } - ] - }, - "bytecode": { - "doc_opcode": "DF", - "tlb": "#DF", - "prefix": "DF", - "operands": [] - }, - "value_flow": { - "doc_stack": "f c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ], - "nobranch": true - } - }, - { - "mnemonic": "IFJMP", - "doc": { - "category": "cont_conditional", - "description": "Jumps to `c` (similarly to `JMPX`), but only if `f` is non-zero.", - "gas": "18", - "fift": "IFJMP", - "fift_examples": [ - { - "fift": "IFJMP:<{ code }>", - "description": "Equivalent to `<{ code }> CONT` `IFJMP`." - } - ] - }, - "bytecode": { - "doc_opcode": "E0", - "tlb": "#E0", - "prefix": "E0", - "operands": [] - }, - "value_flow": { - "doc_stack": "f c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ], - "nobranch": true - } - }, - { - "mnemonic": "IFNOTJMP", - "doc": { - "category": "cont_conditional", - "description": "Jumps to `c` (similarly to `JMPX`), but only if `f` is zero.", - "gas": "18", - "fift": "IFNOTJMP", - "fift_examples": [ - { - "fift": "IFNOTJMP:<{ code }>", - "description": "Equivalent to `<{ code }> CONT` `IFNOTJMP`." - } - ] - }, - "bytecode": { - "doc_opcode": "E1", - "tlb": "#E1", - "prefix": "E1", - "operands": [] - }, - "value_flow": { - "doc_stack": "f c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ], - "nobranch": true - } - }, - { - "mnemonic": "IFELSE", - "doc": { - "category": "cont_conditional", - "description": "If integer `f` is non-zero, executes `c`, otherwise executes `c'`. Equivalent to `CONDSELCHK` `EXECUTE`.", - "gas": "18", - "fift": "IFELSE", - "fift_examples": [ - { - "fift": "IF:<{ code1 }>ELSE<{ code2 }>", - "description": "Equivalent to `<{ code1 }> CONT` `<{ code2 }> CONT` `IFELSE`." - } - ] - }, - "bytecode": { - "doc_opcode": "E2", - "tlb": "#E2", - "prefix": "E2", - "operands": [] - }, - "value_flow": { - "doc_stack": "f c c' - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - }, - { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ] - } - }, - { - "mnemonic": "IFREF", - "doc": { - "category": "cont_conditional", - "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" - }, - "bytecode": { - "doc_opcode": "E300", - "tlb": "#E300 c:^Cell", - "prefix": "E300", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ], - "nobranch": true - } - }, - { - "mnemonic": "IFNOTREF", - "doc": { - "category": "cont_conditional", - "description": "Equivalent to `PUSHREFCONT` `IFNOT`.", - "gas": "26/126/51", - "fift": "[ref] IFNOTREF" - }, - "bytecode": { - "doc_opcode": "E301", - "tlb": "#E301 c:^Cell", - "prefix": "E301", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ], - "nobranch": true - } - }, - { - "mnemonic": "IFJMPREF", - "doc": { - "category": "cont_conditional", - "description": "Equivalent to `PUSHREFCONT` `IFJMP`.", - "gas": "26/126/51", - "fift": "[ref] IFJMPREF" - }, - "bytecode": { - "doc_opcode": "E302", - "tlb": "#E302 c:^Cell", - "prefix": "E302", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ], - "nobranch": true - } - }, - { - "mnemonic": "IFNOTJMPREF", - "doc": { - "category": "cont_conditional", - "description": "Equivalent to `PUSHREFCONT` `IFNOTJMP`.", - "gas": "26/126/51", - "fift": "[ref] IFNOTJMPREF" - }, - "bytecode": { - "doc_opcode": "E303", - "tlb": "#E303 c:^Cell", - "prefix": "E303", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ], - "nobranch": true - } - }, - { - "mnemonic": "CONDSEL", - "doc": { - "category": "cont_conditional", - "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" - }, - "bytecode": { - "doc_opcode": "E304", - "tlb": "#E304", - "prefix": "E304", - "operands": [] - }, - "value_flow": { - "doc_stack": "f x y - x or y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y" - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result" - } - ] - } - } - }, - { - "mnemonic": "CONDSELCHK", - "doc": { - "category": "cont_conditional", - "description": "Same as `CONDSEL`, but first checks whether `x` and `y` have the same type.", - "gas": "26", - "fift": "CONDSELCHK" - }, - "bytecode": { - "doc_opcode": "E305", - "tlb": "#E305", - "prefix": "E305", - "operands": [] - }, - "value_flow": { - "doc_stack": "f x y - x or y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y" - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result" - } - ] - } - } - }, - { - "mnemonic": "IFRETALT", - "doc": { - "category": "cont_conditional", - "description": "Performs `RETALT` if integer `f!=0`.", - "gas": "26", - "fift": "IFRETALT" - }, - "bytecode": { - "doc_opcode": "E308", - "tlb": "#E308", - "prefix": "E308", - "operands": [] - }, - "value_flow": { - "doc_stack": "f -", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { "type": "register", "index": 1 } - ], - "nobranch": true - } - }, - { - "mnemonic": "IFNOTRETALT", - "doc": { - "category": "cont_conditional", - "description": "Performs `RETALT` if integer `f=0`.", - "gas": "26", - "fift": "IFNOTRETALT" - }, - "bytecode": { - "doc_opcode": "E309", - "tlb": "#E309", - "prefix": "E309", - "operands": [] - }, - "value_flow": { - "doc_stack": "f -", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { "type": "register", "index": 1 } - ], - "nobranch": true - } - }, - { - "mnemonic": "IFREFELSE", - "doc": { - "category": "cont_conditional", - "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" - }, - "bytecode": { - "doc_opcode": "E30D", - "tlb": "#E30D c:^Cell", - "prefix": "E30D", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] - }, - "value_flow": { - "doc_stack": "f c -", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - }, - { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ] - } - }, - { - "mnemonic": "IFELSEREF", - "doc": { - "category": "cont_conditional", - "description": "Equivalent to `PUSHREFCONT` `IFELSE`.", - "gas": "26/126/51", - "fift": "[ref] IFELSEREF" - }, - "bytecode": { - "doc_opcode": "E30E", - "tlb": "#E30E c:^Cell", - "prefix": "E30E", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] - }, - "value_flow": { - "doc_stack": "f c -", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - }, - { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ] - } - }, - { - "mnemonic": "IFREFELSEREF", - "doc": { - "category": "cont_conditional", - "description": "Equivalent to `PUSHREFCONT` `PUSHREFCONT` `IFELSE`.", - "gas": "126/51", - "fift": "[ref] [ref] IFREFELSEREF" - }, - "bytecode": { - "doc_opcode": "E30F", - "tlb": "#E30F c1:^Cell c2:^Cell", - "prefix": "E30F", - "operands": [ - { - "name": "c1", - "loader": "ref", - "loader_args": {} - }, - { - "name": "c2", - "loader": "ref", - "loader_args": {} - } - ] - }, - "value_flow": { - "doc_stack": "f -", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c1", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - }, - { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ] - } - }, - { - "mnemonic": "IFBITJMP", - "doc": { - "category": "cont_conditional", - "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" - }, - "bytecode": { - "doc_opcode": "E39_n", - "tlb": "#E39_ n:uint5", - "prefix": "E39_", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 5 - } - } - ] - }, - "value_flow": { - "doc_stack": "x c - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } - }, - { - "mnemonic": "IFNBITJMP", - "doc": { - "category": "cont_conditional", - "description": "Jumps to `c` if bit `0 <= n <= 31` is not set in integer `x`.", - "gas": "26", - "fift": "[n] IFNBITJMP" - }, - "bytecode": { - "doc_opcode": "E3B_n", - "tlb": "#E3B_ n:uint5", - "prefix": "E3B_", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 5 - } - } - ] - }, - "value_flow": { - "doc_stack": "x c - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } - }, - { - "mnemonic": "IFBITJMPREF", - "doc": { - "category": "cont_conditional", - "description": "Performs a `JMPREF` if bit `0 <= n <= 31` is set in integer `x`.", - "gas": "126/51", - "fift": "[ref] [n] IFBITJMPREF" - }, - "bytecode": { - "doc_opcode": "E3D_n", - "tlb": "#E3D_ n:uint5 c:^Cell", - "prefix": "E3D_", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 5 - } - }, - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] - }, - "value_flow": { - "doc_stack": "x - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } - }, - { - "mnemonic": "IFNBITJMPREF", - "doc": { - "category": "cont_conditional", - "description": "Performs a `JMPREF` if bit `0 <= n <= 31` is not set in integer `x`.", - "gas": "126/51", - "fift": "[ref] [n] IFNBITJMPREF" - }, - "bytecode": { - "doc_opcode": "E3F_n", - "tlb": "#E3F_ n:uint5 c:^Cell", - "prefix": "E3F_", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 5 - } - }, - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] - }, - "value_flow": { - "doc_stack": "x - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } - }, - { - "mnemonic": "REPEAT", - "doc": { - "category": "cont_loops", - "description": "Executes continuation `c` `n` times, if integer `n` is non-negative. If `n>=2^31` or `n<-2^31`, generates a range check exception.\nNotice that a `RET` inside the code of `c` works as a `continue`, not as a `break`. One should use either alternative (experimental) loops or alternative `RETALT` (along with a `SETEXITALT` before the loop) to `break` out of a loop.", - "gas": "18", - "fift": "REPEAT", - "fift_examples": [ - { - "fift": "REPEAT:<{ code }> <{ code }>REPEAT", - "description": "Equivalent to `<{ code }> CONT` `REPEAT`." - } - ] - }, - "bytecode": { - "doc_opcode": "E4", - "tlb": "#E4", - "prefix": "E4", - "operands": [] - }, - "value_flow": { - "doc_stack": "n c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "special", - "name": "repeat", - "args": { - "count": "n", - "body": { - "type": "variable", - "var_name": "c" - }, - "after": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ], - "nobranch": true - } - }, - { - "mnemonic": "REPEATEND", - "doc": { - "category": "cont_loops", - "description": "Similar to `REPEAT`, but it is applied to the current continuation `cc`.", - "gas": "18", - "fift": "REPEATEND\nREPEAT:" - }, - "bytecode": { - "doc_opcode": "E5", - "tlb": "#E5", - "prefix": "E5", - "operands": [] - }, - "value_flow": { - "doc_stack": "n - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "special", - "name": "repeat", - "args": { - "count": "n", - "body": { - "type": "cc" - }, - "after": { - "type": "register", - "index": 0 - } - } - } - ], - "nobranch": true - } - }, - { - "mnemonic": "UNTIL", - "doc": { - "category": "cont_loops", - "description": "Executes continuation `c`, then pops an integer `x` from the resulting stack. If `x` is zero, performs another iteration of this loop. The actual implementation of this primitive involves an extraordinary continuation `ec_until` with its arguments set to the body of the loop (continuation `c`) and the original current continuation `cc`. This extraordinary continuation is then saved into the savelist of `c` as `c.c0` and the modified `c` is then executed. The other loop primitives are implemented similarly with the aid of suitable extraordinary continuations.", - "gas": "18", - "fift": "UNTIL", - "fift_examples": [ - { - "fift": "UNTIL:<{ code }> <{ code }>UNTIL", - "description": "Equivalent to `<{ code }> CONT` `UNTIL`." - } - ] - }, - "bytecode": { - "doc_opcode": "E6", - "tlb": "#E6", - "prefix": "E6", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "special", - "name": "until", - "args": { - "body": { - "type": "variable", - "var_name": "c" - }, - "after": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - } - } - ] - } - }, - { - "mnemonic": "UNTILEND", - "doc": { - "category": "cont_loops", - "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:" - }, - "bytecode": { - "doc_opcode": "E7", - "tlb": "#E7", - "prefix": "E7", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { - "type": "cc", - "save": { - "c0": { - "type": "special", - "name": "until", - "args": { - "body": { - "type": "cc" - }, - "after": { "type": "register", "index": 0 } - } - } - } - } - ] - } - }, - { - "mnemonic": "WHILE", - "doc": { - "category": "cont_loops", - "description": "Executes `c'` and pops an integer `x` from the resulting stack. If `x` is zero, exists the loop and transfers control to the original `cc`. If `x` is non-zero, executes `c`, and then begins a new iteration.", - "gas": "18", - "fift": "WHILE", - "fift_examples": [ - { - "fift": "WHILE:<{ cond }>DO<{ code }>", - "description": "Equivalent to `<{ cond }> CONT` `<{ code }> CONT` `WHILE`." - } - ] - }, - "bytecode": { - "doc_opcode": "E8", - "tlb": "#E8", - "prefix": "E8", - "operands": [] - }, - "value_flow": { - "doc_stack": "c' c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "special", - "name": "while", - "args": { - "cond": { - "type": "variable", - "var_name": "c2" - }, - "body": { - "type": "variable", - "var_name": "c" - }, - "after": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - } - } - ] - } - }, - { - "mnemonic": "WHILEEND", - "doc": { - "category": "cont_loops", - "description": "Similar to `WHILE`, but uses the current continuation `cc` as the loop body.", - "gas": "18", - "fift": "WHILEEND" - }, - "bytecode": { - "doc_opcode": "E9", - "tlb": "#E9", - "prefix": "E9", - "operands": [] - }, - "value_flow": { - "doc_stack": "c' - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "special", - "name": "while", - "args": { - "cond": { - "type": "variable", - "var_name": "c2" - }, - "body": { - "type": "cc" - }, - "after": { "type": "register", "index": 0 } - } - } - } - } - - ] - } - }, - { - "mnemonic": "AGAIN", - "doc": { - "category": "cont_loops", - "description": "Similar to `REPEAT`, but executes `c` infinitely many times. A `RET` only begins a new iteration of the infinite loop, which can be exited only by an exception, or a `RETALT` (or an explicit `JMPX`).", - "gas": "18", - "fift": "AGAIN", - "fift_examples": [ - { - "fift": "AGAIN:<{ code }> <{ code }>AGAIN", - "description": "Equivalent to `<{ code }> CONT` `AGAIN`." - } - ] - }, - "bytecode": { - "doc_opcode": "EA", - "tlb": "#EA", - "prefix": "EA", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { - "type": "special", - "name": "again", - "args": { - "body": { - "type": "variable", - "var_name": "c" - } - } - } - ] - } - }, - { - "mnemonic": "AGAINEND", - "doc": { - "category": "cont_loops", - "description": "Similar to `AGAIN`, but performed with respect to the current continuation `cc`.", - "gas": "18", - "fift": "AGAINEND\nAGAIN:" - }, - "bytecode": { - "doc_opcode": "EB", - "tlb": "#EB", - "prefix": "EB", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "special", - "name": "again", - "args": { - "body": { - "type": "cc" - } - } - } - ] - } - }, - { - "mnemonic": "REPEATBRK", - "doc": { - "category": "cont_loops", - "description": "Similar to `REPEAT`, but also sets `c1` to the original `cc` after saving the old value of `c1` into the savelist of the original `cc`. In this way `RETALT` could be used to break out of the loop body.", - "gas": "26", - "fift": "REPEATBRK", - "fift_examples": [ - { - "fift": "REPEATBRK:<{ code }> <{ code }>REPEATBRK", - "description": "Equivalent to `<{ code }> CONT` `REPEATBRK`." - } - ] - }, - "bytecode": { - "doc_opcode": "E314", - "tlb": "#E314", - "prefix": "E314", - "operands": [] - }, - "value_flow": { - "doc_stack": "n c -", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "special", - "name": "repeat", - "args": { - "count": "n", - "body": { - "type": "variable", - "var_name": "c", - "save": { - "c1": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 } - } - } - } - }, - "after": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 } - } - } - } - } - ], - "nobranch": true - } - }, - { - "mnemonic": "REPEATENDBRK", - "doc": { - "category": "cont_loops", - "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" - }, - "bytecode": { - "doc_opcode": "E315", - "tlb": "#E315", - "prefix": "E315", - "operands": [] - }, - "value_flow": { - "doc_stack": "n -", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "special", - "name": "repeat", - "args": { - "count": "n", - "body": { - "type": "cc", - "save": { - "c1": { - "type": "register", - "index": 0 - } - } - }, - "after": { - "type": "register", - "index": 0 - } - } - } - ], - "nobranch": true - } - }, - { - "mnemonic": "UNTILBRK", - "doc": { - "category": "cont_loops", - "description": "Similar to `UNTIL`, but also modifies `c1` in the same way as `REPEATBRK`.", - "gas": "26", - "fift": "UNTILBRK", - "fift_examples": [ - { - "fift": "UNTILBRK:<{ code }>", - "description": "Equivalent to `<{ code }> CONT` `UNTILBRK`." - } - ] - }, - "bytecode": { - "doc_opcode": "E316", - "tlb": "#E316", - "prefix": "E316", - "operands": [] - }, - "value_flow": { - "doc_stack": "c -", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "special", - "name": "until", - "args": { - "body": { - "type": "variable", - "var_name": "c", - "save": { - "c1": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 } - } - } - } - }, - "after": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 } - } - } - } - }, - "c1": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 } - } - } - } - } - ] - } - }, - { - "mnemonic": "UNTILENDBRK", - "doc": { - "category": "cont_loops", - "description": "Equivalent to `SAMEALTSAVE` `UNTILEND`.", - "gas": "26", - "fift": "UNTILENDBRK\nUNTILBRK:" - }, - "bytecode": { - "doc_opcode": "E317", - "tlb": "#E317", - "prefix": "E317", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "cc", - "save": { - "c0": { - "type": "special", - "name": "until", - "args": { - "body": { - "type": "cc", - "save": { - "c1": { "type": "register", "index": 0 } - } - }, - "after": { "type": "register", "index": 0 } - } - }, - "c1": { "type": "register", "index": 0 } - } - } - - ] - } - }, - { - "mnemonic": "WHILEBRK", - "doc": { - "category": "cont_loops", - "description": "Similar to `WHILE`, but also modifies `c1` in the same way as `REPEATBRK`.", - "gas": "26", - "fift": "WHILEBRK", - "fift_examples": [ - { - "fift": "WHILEBRK:<{ cond }>DO<{ code }>", - "description": "Equivalent to `<{ cond }> CONT` `<{ code }> CONT` `WHILEBRK`." - } - ] - }, - "bytecode": { - "doc_opcode": "E318", - "tlb": "#E318", - "prefix": "E318", - "operands": [] - }, - "value_flow": { - "doc_stack": "c' c -", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "special", - "name": "while", - "args": { - "cond": { - "type": "variable", - "var_name": "c2" - }, - "body": { - "type": "variable", - "var_name": "c" - }, - "after": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 } - } - } - } - } - } - } - ] - } - }, - { - "mnemonic": "WHILEENDBRK", - "doc": { - "category": "cont_loops", - "description": "Equivalent to `SAMEALTSAVE` `WHILEEND`.", - "gas": "26", - "fift": "WHILEENDBRK" - }, - "bytecode": { - "doc_opcode": "E319", - "tlb": "#E319", - "prefix": "E319", - "operands": [] - }, - "value_flow": { - "doc_stack": "c -", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "AGAINBRK", - "doc": { - "category": "cont_loops", - "description": "Similar to `AGAIN`, but also modifies `c1` in the same way as `REPEATBRK`.", - "gas": "26", - "fift": "AGAINBRK", - "fift_examples": [ - { - "fift": "AGAINBRK:<{ code }>", - "description": "Equivalent to `<{ code }> CONT` `AGAINBRK`." - } - ] - }, - "bytecode": { - "doc_opcode": "E31A", - "tlb": "#E31A", - "prefix": "E31A", - "operands": [] - }, - "value_flow": { - "doc_stack": "c -", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "AGAINENDBRK", - "doc": { - "category": "cont_loops", - "description": "Equivalent to `SAMEALTSAVE` `AGAINEND`.", - "gas": "26", - "fift": "AGAINENDBRK\nAGAINBRK:" - }, - "bytecode": { - "doc_opcode": "E31B", - "tlb": "#E31B", - "prefix": "E31B", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "SETCONTARGS_N", - "doc": { - "category": "cont_stack", - "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\u0432\u0402\u045c", - "fift": "[r] [n] SETCONTARGS" - }, - "bytecode": { - "doc_opcode": "ECrn", - "tlb": "#EC r:uint4 n:uint4", - "prefix": "EC", - "operands": [ - { - "name": "r", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "x_1 x_2...x_r c - c'", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "r", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "RETURNARGS", - "doc": { - "category": "cont_stack", - "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\u0432\u0402\u045c", - "fift": "[p] RETURNARGS" - }, - "bytecode": { - "doc_opcode": "ED0p", - "tlb": "#ED0 p:uint4", - "prefix": "ED0", - "operands": [ - { - "name": "p", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "-" - } - }, - { - "mnemonic": "RETURNVARARGS", - "doc": { - "category": "cont_stack", - "description": "Similar to `RETURNARGS`, but with Integer `0 <= p <= 255` taken from the stack.", - "gas": "26+s\u0432\u0402\u045c", - "fift": "RETURNVARARGS" - }, - "bytecode": { - "doc_opcode": "ED10", - "tlb": "#ED10", - "prefix": "ED10", - "operands": [] - }, - "value_flow": { - "doc_stack": "p -" - } - }, - { - "mnemonic": "SETCONTVARARGS", - "doc": { - "category": "cont_stack", - "description": "Similar to `SETCONTARGS`, but with `0 <= r <= 255` and `-1 <= n <= 255` taken from the stack.", - "gas": "26+s\u0432\u0402\u045c", - "fift": "SETCONTVARARGS" - }, - "bytecode": { - "doc_opcode": "ED11", - "tlb": "#ED11", - "prefix": "ED11", - "operands": [] - }, - "value_flow": { - "doc_stack": "x_1 x_2...x_r c r n - c'", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "r", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "SETNUMVARARGS", - "doc": { - "category": "cont_stack", - "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" - }, - "bytecode": { - "doc_opcode": "ED12", - "tlb": "#ED12", - "prefix": "ED12", - "operands": [] - }, - "value_flow": { - "doc_stack": "c n - c'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "BLESS", - "doc": { - "category": "cont_create", - "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" - }, - "bytecode": { - "doc_opcode": "ED1E", - "tlb": "#ED1E", - "prefix": "ED1E", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - c", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "BLESSVARARGS", - "doc": { - "category": "cont_create", - "description": "Equivalent to `ROT` `BLESS` `ROTREV` `SETCONTVARARGS`.", - "gas": "26+s\u0432\u0402\u045c", - "fift": "BLESSVARARGS" - }, - "bytecode": { - "doc_opcode": "ED1F", - "tlb": "#ED1F", - "prefix": "ED1F", - "operands": [] - }, - "value_flow": { - "doc_stack": "x_1...x_r s r n - c", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "r", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "BLESSARGS", - "doc": { - "category": "cont_create", - "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" - }, - "bytecode": { - "doc_opcode": "EErn", - "tlb": "#EE r:uint4 n:uint4", - "prefix": "EE", - "operands": [ - { - "name": "r", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "x_1...x_r s - c", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "r", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "PUSHCTR", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "ED4i", - "tlb": "#ED4 i:uint4", - "prefix": "ED4", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "- x", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } - } - }, - { - "mnemonic": "POPCTR", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "ED5i", - "tlb": "#ED5 i:uint4", - "prefix": "ED5", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "SETCONTCTR", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "ED6i", - "tlb": "#ED6 i:uint4", - "prefix": "ED6", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "x c - c'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "SETRETCTR", - "doc": { - "category": "cont_registers", - "description": "Equivalent to `c0 PUSHCTR` `c[i] SETCONTCTR` `c0 POPCTR`.", - "gas": "26", - "fift": "c[i] SETRETCTR" - }, - "bytecode": { - "doc_opcode": "ED7i", - "tlb": "#ED7 i:uint4", - "prefix": "ED7", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "SETALTCTR", - "doc": { - "category": "cont_registers", - "description": "Equivalent to `c1 PUSHCTR` `c[i] SETCONTCTR` `c0 POPCTR`.", - "gas": "26", - "fift": "c[i] SETALTCTR" - }, - "bytecode": { - "doc_opcode": "ED8i", - "tlb": "#ED8 i:uint4", - "prefix": "ED8", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "POPSAVE", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "ED9i", - "tlb": "#ED9 i:uint4", - "prefix": "ED9", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "x -", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "SAVE", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "EDAi", - "tlb": "#EDA i:uint4", - "prefix": "EDA", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "SAVEALT", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "EDBi", - "tlb": "#EDB i:uint4", - "prefix": "EDB", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "SAVEBOTH", - "doc": { - "category": "cont_registers", - "description": "Equivalent to `DUP` `c[i] SAVE` `c[i] SAVEALT`.", - "gas": "26", - "fift": "c[i] SAVEBOTH\nc[i] SAVEBOTHCTR" - }, - "bytecode": { - "doc_opcode": "EDCi", - "tlb": "#EDC i:uint4", - "prefix": "EDC", - "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "PUSHCTRX", - "doc": { - "category": "cont_registers", - "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 \u0432\u0402\u045aexotic'' 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" - }, - "bytecode": { - "doc_opcode": "EDE0", - "tlb": "#EDE0", - "prefix": "EDE0", - "operands": [] - }, - "value_flow": { - "doc_stack": "i - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } - } - }, - { - "mnemonic": "POPCTRX", - "doc": { - "category": "cont_registers", - "description": "Similar to `c[i] POPCTR`, but with `0 <= i <= 255` from the stack.", - "gas": "26", - "fift": "POPCTRX" - }, - "bytecode": { - "doc_opcode": "EDE1", - "tlb": "#EDE1", - "prefix": "EDE1", - "operands": [] - }, - "value_flow": { - "doc_stack": "x i - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "SETCONTCTRX", - "doc": { - "category": "cont_registers", - "description": "Similar to `c[i] SETCONTCTR`, but with `0 <= i <= 255` from the stack.", - "gas": "26", - "fift": "SETCONTCTRX" - }, - "bytecode": { - "doc_opcode": "EDE2", - "tlb": "#EDE2", - "prefix": "EDE2", - "operands": [] - }, - "value_flow": { - "doc_stack": "x c i - c'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "COMPOS", - "doc": { - "category": "cont_registers", - "description": "Computes the composition `compose0(c, c\u0432\u0402\u2122)`, which has the meaning of \u0432\u0402\u045aperform `c`, and, if successful, perform `c'`'' (if `c` is a boolean circuit) or simply \u0432\u0402\u045aperform `c`, then `c'`''. Equivalent to `SWAP` `c0 SETCONT`.", - "gas": "26", - "fift": "COMPOS\nBOOLAND" - }, - "bytecode": { - "doc_opcode": "EDF0", - "tlb": "#EDF0", - "prefix": "EDF0", - "operands": [] - }, - "value_flow": { - "doc_stack": "c c' - c''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c3", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "COMPOSALT", - "doc": { - "category": "cont_registers", - "description": "Computes the alternative composition `compose1(c, c\u0432\u0402\u2122)`, which has the meaning of \u0432\u0402\u045aperform `c`, and, if not successful, perform `c'`'' (if `c` is a boolean circuit). Equivalent to `SWAP` `c1 SETCONT`.", - "gas": "26", - "fift": "COMPOSALT\nBOOLOR" - }, - "bytecode": { - "doc_opcode": "EDF1", - "tlb": "#EDF1", - "prefix": "EDF1", - "operands": [] - }, - "value_flow": { - "doc_stack": "c c' - c''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c3", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "COMPOSBOTH", - "doc": { - "category": "cont_registers", - "description": "Computes composition `compose1(compose0(c, c\u0432\u0402\u2122), c\u0432\u0402\u2122)`, which has the meaning of \u0432\u0402\u045acompute boolean circuit `c`, then compute `c'`, regardless of the result of `c`''.", - "gas": "26", - "fift": "COMPOSBOTH" - }, - "bytecode": { - "doc_opcode": "EDF2", - "tlb": "#EDF2", - "prefix": "EDF2", - "operands": [] - }, - "value_flow": { - "doc_stack": "c c' - c''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c3", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "ATEXIT", - "doc": { - "category": "cont_registers", - "description": "Sets `c0` to `compose0(c, c0)`. In other words, `c` will be executed before exiting current subroutine.", - "gas": "26", - "fift": "ATEXIT", - "fift_examples": [ - { - "fift": "ATEXIT:<{ code }> <{ code }>ATEXIT", - "description": "Equivalent to `<{ code }> CONT` `ATEXIT`." - } - ] - }, - "bytecode": { - "doc_opcode": "EDF3", - "tlb": "#EDF3", - "prefix": "EDF3", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "ATEXITALT", - "doc": { - "category": "cont_registers", - "description": "Sets `c1` to `compose1(c, c1)`. In other words, `c` will be executed before exiting current subroutine by its alternative return path.", - "gas": "26", - "fift": "ATEXITALT", - "fift_examples": [ - { - "fift": "ATEXITALT:<{ code }> <{ code }>ATEXITALT", - "description": "Equivalent to `<{ code }> CONT` `ATEXITALT`." - } - ] - }, - "bytecode": { - "doc_opcode": "EDF4", - "tlb": "#EDF4", - "prefix": "EDF4", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "SETEXITALT", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "EDF5", - "tlb": "#EDF5", - "prefix": "EDF5", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "THENRET", - "doc": { - "category": "cont_registers", - "description": "Computes `compose0(c, c0)`.", - "gas": "26", - "fift": "THENRET" - }, - "bytecode": { - "doc_opcode": "EDF6", - "tlb": "#EDF6", - "prefix": "EDF6", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - c'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "THENRETALT", - "doc": { - "category": "cont_registers", - "description": "Computes `compose0(c, c1)`", - "gas": "26", - "fift": "THENRETALT" - }, - "bytecode": { - "doc_opcode": "EDF7", - "tlb": "#EDF7", - "prefix": "EDF7", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - c'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "INVERT", - "doc": { - "category": "cont_registers", - "description": "Interchanges `c0` and `c1`.", - "gas": "26", - "fift": "INVERT" - }, - "bytecode": { - "doc_opcode": "EDF8", - "tlb": "#EDF8", - "prefix": "EDF8", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "BOOLEVAL", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "EDF9", - "tlb": "#EDF9", - "prefix": "EDF9", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "special", - "name": "pushint", - "args": { - "next": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 } - } - }, - "value": -1 - } - }, - "c1": { - "type": "special", - "name": "pushint", - "args": { - "next": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 } - } - }, - "value": 0 - } - } - } - } - ] - } - }, - { - "mnemonic": "SAMEALT", - "doc": { - "category": "cont_registers", - "description": "Sets `c1` to `c0`. Equivalent to `c0 PUSHCTR` `c1 POPCTR`.", - "gas": "26", - "fift": "SAMEALT" - }, - "bytecode": { - "doc_opcode": "EDFA", - "tlb": "#EDFA", - "prefix": "EDFA", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "SAMEALTSAVE", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "EDFB", - "tlb": "#EDFB", - "prefix": "EDFB", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "CALLDICT", - "doc": { - "category": "cont_dict", - "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" - }, - "bytecode": { - "doc_opcode": "F0nn", - "tlb": "#F0 n:uint8", - "prefix": "F0", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] - }, - "value_flow": { - "doc_stack": "- nn", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "register", - "index": 3, - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ] - } - }, - { - "mnemonic": "CALLDICT_LONG", - "doc": { - "category": "cont_dict", - "description": "For `0 <= n < 2^14`, an encoding of `[n] CALL` for larger values of `n`.", - "gas": "", - "fift": "[n] CALL\n[n] CALLDICT" - }, - "bytecode": { - "doc_opcode": "F12_n", - "tlb": "#F12_ n:uint14", - "prefix": "F12_", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 14 - } - } - ] - }, - "value_flow": { - "doc_stack": "- n", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "register", - "index": 3, - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ] - } - }, - { - "mnemonic": "JMPDICT", - "doc": { - "category": "cont_dict", - "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" - }, - "bytecode": { - "doc_opcode": "F16_n", - "tlb": "#F16_ n:uint14", - "prefix": "F16_", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 14 - } - } - ] - }, - "value_flow": { - "doc_stack": " - n", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "register", - "index": 3 - } - ] - } - }, - { - "mnemonic": "PREPAREDICT", - "doc": { - "category": "cont_dict", - "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" - }, - "bytecode": { - "doc_opcode": "F1A_n", - "tlb": "#F1A_ n:uint14", - "prefix": "F1A_", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 14 - } - } - ] - }, - "value_flow": { - "doc_stack": " - n c", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "THROW_SHORT", - "doc": { - "category": "exceptions", - "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" - }, - "bytecode": { - "doc_opcode": "F22_n", - "tlb": "#F22_ n:uint6", - "prefix": "F22_", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 6 - } - } - ] - }, - "value_flow": { - "doc_stack": " - 0 n", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "THROWIF_SHORT", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= n <= 63` with parameter zero only if integer `f!=0`.", - "gas": "26/76", - "fift": "[n] THROWIF" - }, - "bytecode": { - "doc_opcode": "F26_n", - "tlb": "#F26_ n:uint6", - "prefix": "F26_", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 6 - } - } - ] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "THROWIFNOT_SHORT", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= n <= 63` with parameter zero only if integer `f=0`.", - "gas": "26/76", - "fift": "[n] THROWIFNOT" - }, - "bytecode": { - "doc_opcode": "F2A_n", - "tlb": "#F2A_ n:uint6", - "prefix": "F2A_", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 6 - } - } - ] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "THROW", - "doc": { - "category": "exceptions", - "description": "For `0 <= n < 2^11`, an encoding of `[n] THROW` for larger values of `n`.", - "gas": "84", - "fift": "[n] THROW" - }, - "bytecode": { - "doc_opcode": "F2C4_n", - "tlb": "#F2C4_ n:uint11", - "prefix": "F2C4_", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 11 - } - } - ] - }, - "value_flow": { - "doc_stack": "- 0 nn", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "THROWARG", - "doc": { - "category": "exceptions", - "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" - }, - "bytecode": { - "doc_opcode": "F2CC_n", - "tlb": "#F2CC_ n:uint11", - "prefix": "F2CC_", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 11 - } - } - ] - }, - "value_flow": { - "doc_stack": "x - x nn", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "THROWIF", - "doc": { - "category": "exceptions", - "description": "For `0 <= n < 2^11`, an encoding of `[n] THROWIF` for larger values of `n`.", - "gas": "34/84", - "fift": "[n] THROWIF" - }, - "bytecode": { - "doc_opcode": "F2D4_n", - "tlb": "#F2D4_ n:uint11", - "prefix": "F2D4_", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 11 - } - } - ] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "THROWARGIF", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= nn < 2^11` with parameter `x` only if integer `f!=0`.", - "gas": "34/84", - "fift": "[n] THROWARGIF" - }, - "bytecode": { - "doc_opcode": "F2DC_n", - "tlb": "#F2DC_ n:uint11", - "prefix": "F2DC_", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 11 - } - } - ] - }, - "value_flow": { - "doc_stack": "x f - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "THROWIFNOT", - "doc": { - "category": "exceptions", - "description": "For `0 <= n < 2^11`, an encoding of `[n] THROWIFNOT` for larger values of `n`.", - "gas": "34/84", - "fift": "[n] THROWIFNOT" - }, - "bytecode": { - "doc_opcode": "F2E4_n", - "tlb": "#F2E4_ n:uint11", - "prefix": "F2E4_", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 11 - } - } - ] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "THROWARGIFNOT", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= n < 2^11` with parameter `x` only if integer `f=0`.", - "gas": "34/84", - "fift": "[n] THROWARGIFNOT" - }, - "bytecode": { - "doc_opcode": "F2EC_n", - "tlb": "#F2EC_ n:uint11", - "prefix": "F2EC_", - "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 11 - } - } - ] - }, - "value_flow": { - "doc_stack": "x f - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "THROWANY", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= n < 2^16` with parameter zero.\nApproximately equivalent to `ZERO` `SWAP` `THROWARGANY`.", - "gas": "76", - "fift": "THROWANY" - }, - "bytecode": { - "doc_opcode": "F2F0", - "tlb": "#F2F0", - "prefix": "F2F0", - "operands": [] - }, - "value_flow": { - "doc_stack": "n - 0 n", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "THROWARGANY", - "doc": { - "category": "exceptions", - "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" - }, - "bytecode": { - "doc_opcode": "F2F1", - "tlb": "#F2F1", - "prefix": "F2F1", - "operands": [] - }, - "value_flow": { - "doc_stack": "x n - x n", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "THROWANYIF", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= n < 2^16` with parameter zero only if `f!=0`.", - "gas": "26/76", - "fift": "THROWANYIF" - }, - "bytecode": { - "doc_opcode": "F2F2", - "tlb": "#F2F2", - "prefix": "F2F2", - "operands": [] - }, - "value_flow": { - "doc_stack": "n f - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "THROWARGANYIF", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= n<2^16` with parameter `x` only if `f!=0`.", - "gas": "26/76", - "fift": "THROWARGANYIF" - }, - "bytecode": { - "doc_opcode": "F2F3", - "tlb": "#F2F3", - "prefix": "F2F3", - "operands": [] - }, - "value_flow": { - "doc_stack": "x n f - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "THROWANYIFNOT", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= n<2^16` with parameter zero only if `f=0`.", - "gas": "26/76", - "fift": "THROWANYIFNOT" - }, - "bytecode": { - "doc_opcode": "F2F4", - "tlb": "#F2F4", - "prefix": "F2F4", - "operands": [] - }, - "value_flow": { - "doc_stack": "n f - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "THROWARGANYIFNOT", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= n<2^16` with parameter `x` only if `f=0`.", - "gas": "26/76", - "fift": "THROWARGANYIFNOT" - }, - "bytecode": { - "doc_opcode": "F2F5", - "tlb": "#F2F5", - "prefix": "F2F5", - "operands": [] - }, - "value_flow": { - "doc_stack": "x n f - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "TRY", - "doc": { - "category": "exceptions", - "description": "Sets `c2` to `c'`, first saving the old value of `c2` both into the savelist of `c'` and into the savelist of the current continuation, which is stored into `c.c0` and `c'.c0`. Then runs `c` similarly to `EXECUTE`. If `c` does not throw any exceptions, the original value of `c2` is automatically restored on return from `c`. If an exception occurs, the execution is transferred to `c'`, but the original value of `c2` is restored in the process, so that `c'` can re-throw the exception by `THROWANY` if it cannot handle it by itself.", - "gas": "26", - "fift": "TRY", - "fift_examples": [ - { - "fift": "TRY:<{ code1 }>CATCH<{ code2 }>", - "description": "Equivalent to `<{ code1 }> CONT` `<{ code2 }> CONT` `TRY`." - } - ] - }, - "bytecode": { - "doc_opcode": "F2FF", - "tlb": "#F2FF", - "prefix": "F2FF", - "operands": [] - }, - "value_flow": { - "doc_stack": "c c' - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 }, - "c2": { "type": "register", "index": 2 } - } - }, - "c2": { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 }, - "c2": { "type": "register", "index": 2 } - } - }, - "c2": { "type": "register", "index": 2 } - } - } - } - } - ] - } - }, - { - "mnemonic": "TRYARGS", - "doc": { - "category": "exceptions", - "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" - }, - "bytecode": { - "doc_opcode": "F3pr", - "tlb": "#F3 p:uint4 r:uint4", - "prefix": "F3", - "operands": [ - { - "name": "p", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "r", - "loader": "uint", - "loader_args": { - "size": 4 - } - } - ] - }, - "value_flow": { - "doc_stack": "c c' - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "r", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 }, - "c2": { "type": "register", "index": 2 } - } - }, - "c2": { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 }, - "c2": { "type": "register", "index": 2 } - } - }, - "c2": { "type": "register", "index": 2 } - } - } - } - } - ] - } - }, - { - "mnemonic": "STDICT", - "doc": { - "category": "dict_serial", - "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" - }, - "bytecode": { - "doc_opcode": "F400", - "tlb": "#F400", - "prefix": "F400", - "operands": [] - }, - "value_flow": { - "doc_stack": "D b - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "SKIPDICT", - "doc": { - "category": "dict_serial", - "description": "Equivalent to `LDDICT` `NIP`.", - "gas": "26", - "fift": "SKIPDICT\nSKIPOPTREF" - }, - "bytecode": { - "doc_opcode": "F401", - "tlb": "#F401", - "prefix": "F401", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDDICTS", - "doc": { - "category": "dict_serial", - "description": "Loads (parses) a (_Slice_-represented) dictionary `s'` from _Slice_ `s`, and returns the remainder of `s` as `s''`.\nThis is a \u0432\u0402\u045asplit function'' for all `HashmapE(n,X)` dictionary types.", - "gas": "26", - "fift": "LDDICTS" - }, - "bytecode": { - "doc_opcode": "F402", - "tlb": "#F402", - "prefix": "F402", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - s' s''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "PLDDICTS", - "doc": { - "category": "dict_serial", - "description": "Preloads a (_Slice_-represented) dictionary `s'` from _Slice_ `s`.\nApproximately equivalent to `LDDICTS` `DROP`.", - "gas": "26", - "fift": "PLDDICTS" - }, - "bytecode": { - "doc_opcode": "F403", - "tlb": "#F403", - "prefix": "F403", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDDICT", - "doc": { - "category": "dict_serial", - "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" - }, - "bytecode": { - "doc_opcode": "F404", - "tlb": "#F404", - "prefix": "F404", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - D s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "PLDDICT", - "doc": { - "category": "dict_serial", - "description": "Preloads a dictionary `D` from _Slice_ `s`.\nApproximately equivalent to `LDDICT` `DROP`.", - "gas": "26", - "fift": "PLDDICT\nPLDOPTREF" - }, - "bytecode": { - "doc_opcode": "F405", - "tlb": "#F405", - "prefix": "F405", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - D", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - } - } - }, - { - "mnemonic": "LDDICTQ", - "doc": { - "category": "dict_serial", - "description": "A quiet version of `LDDICT`.", - "gas": "26", - "fift": "LDDICTQ" - }, - "bytecode": { - "doc_opcode": "F406", - "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"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Integer"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PLDDICTQ", - "doc": { - "category": "dict_serial", - "description": "A quiet version of `PLDDICT`.", - "gas": "26", - "fift": "PLDDICTQ" - }, - "bytecode": { - "doc_opcode": "F407", - "tlb": "#F407", - "prefix": "F407", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - D -1 or 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTGET", - "doc": { - "category": "dict_get", - "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" - }, - "bytecode": { - "doc_opcode": "F40A", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTGETREF", - "doc": { - "category": "dict_get", - "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" - }, - "bytecode": { - "doc_opcode": "F40B", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": [ - "Integer" - ] - } - ] - } - } - }, - { - "mnemonic": "DICTIGET", - "doc": { - "category": "dict_get", - "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" - }, - "bytecode": { - "doc_opcode": "F40C", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Cell", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIGETREF", - "doc": { - "category": "dict_get", - "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" - }, - "bytecode": { - "doc_opcode": "F40D", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Cell", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUGET", - "doc": { - "category": "dict_get", - "description": "Similar to `DICTIGET`, but with _unsigned_ (big-endian) `n`-bit _Integer_ `i` used as a key.", - "gas": "", - "fift": "DICTUGET" - }, - "bytecode": { - "doc_opcode": "F40E", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Cell", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUGETREF", - "doc": { - "category": "dict_get", - "description": "Similar to `DICTIGETREF`, but with an unsigned `n`-bit _Integer_ key `i`.", - "gas": "", - "fift": "DICTUGETREF" - }, - "bytecode": { - "doc_opcode": "F40F", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Cell", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTSET", - "doc": { - "category": "dict_set", - "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" - }, - "bytecode": { - "doc_opcode": "F412", - "tlb": "#F412", - "prefix": "F412", - "operands": [] - }, - "value_flow": { - "doc_stack": "x k D n - D'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "DICTSETREF", - "doc": { - "category": "dict_set", - "description": "Similar to `DICTSET`, but with the value set to a reference to _Cell_ `c`.", - "gas": "", - "fift": "DICTSETREF" - }, - "bytecode": { - "doc_opcode": "F413", - "tlb": "#F413", - "prefix": "F413", - "operands": [] - }, - "value_flow": { - "doc_stack": "c k D n - D'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "DICTISET", - "doc": { - "category": "dict_set", - "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" - }, - "bytecode": { - "doc_opcode": "F414", - "tlb": "#F414", - "prefix": "F414", - "operands": [] - }, - "value_flow": { - "doc_stack": "x i D n - D'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "DICTISETREF", - "doc": { - "category": "dict_set", - "description": "Similar to `DICTSETREF`, but with the key a signed `n`-bit integer as in `DICTISET`.", - "gas": "", - "fift": "DICTISETREF" - }, - "bytecode": { - "doc_opcode": "F415", - "tlb": "#F415", - "prefix": "F415", - "operands": [] - }, - "value_flow": { - "doc_stack": "c i D n - D'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "DICTUSET", - "doc": { - "category": "dict_set", - "description": "Similar to `DICTISET`, but with `i` an _unsigned_ `n`-bit integer.", - "gas": "", - "fift": "DICTUSET" - }, - "bytecode": { - "doc_opcode": "F416", - "tlb": "#F416", - "prefix": "F416", - "operands": [] - }, - "value_flow": { - "doc_stack": "x i D n - D'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "DICTUSETREF", - "doc": { - "category": "dict_set", - "description": "Similar to `DICTISETREF`, but with `i` unsigned.", - "gas": "", - "fift": "DICTUSETREF" - }, - "bytecode": { - "doc_opcode": "F417", - "tlb": "#F417", - "prefix": "F417", - "operands": [] - }, - "value_flow": { - "doc_stack": "c i D n - D'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "DICTSETGET", - "doc": { - "category": "dict_set", - "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" - }, - "bytecode": { - "doc_opcode": "F41A", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTSETGETREF", - "doc": { - "category": "dict_set", - "description": "Combines `DICTSETREF` with `DICTGETREF` similarly to `DICTSETGET`.", - "gas": "", - "fift": "DICTSETGETREF" - }, - "bytecode": { - "doc_opcode": "F41B", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTISETGET", - "doc": { - "category": "dict_set", - "description": "`DICTISETGET`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTISETGET" - }, - "bytecode": { - "doc_opcode": "F41C", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTISETGETREF", - "doc": { - "category": "dict_set", - "description": "`DICTISETGETREF`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTISETGETREF" - }, - "bytecode": { - "doc_opcode": "F41D", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUSETGET", - "doc": { - "category": "dict_set", - "description": "`DICTISETGET`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUSETGET" - }, - "bytecode": { - "doc_opcode": "F41E", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUSETGETREF", - "doc": { - "category": "dict_set", - "description": "`DICTISETGETREF`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUSETGETREF" - }, - "bytecode": { - "doc_opcode": "F41F", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTREPLACE", - "doc": { - "category": "dict_set", - "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" - }, - "bytecode": { - "doc_opcode": "F422", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTREPLACEREF", - "doc": { - "category": "dict_set", - "description": "A _Replace_ counterpart of `DICTSETREF`.", - "gas": "", - "fift": "DICTREPLACEREF" - }, - "bytecode": { - "doc_opcode": "F423", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIREPLACE", - "doc": { - "category": "dict_set", - "description": "`DICTREPLACE`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIREPLACE" - }, - "bytecode": { - "doc_opcode": "F424", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIREPLACEREF", - "doc": { - "category": "dict_set", - "description": "`DICTREPLACEREF`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIREPLACEREF" - }, - "bytecode": { - "doc_opcode": "F425", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUREPLACE", - "doc": { - "category": "dict_set", - "description": "`DICTREPLACE`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUREPLACE" - }, - "bytecode": { - "doc_opcode": "F426", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUREPLACEREF", - "doc": { - "category": "dict_set", - "description": "`DICTREPLACEREF`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUREPLACEREF" - }, - "bytecode": { - "doc_opcode": "F427", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTREPLACEGET", - "doc": { - "category": "dict_set", - "description": "A _Replace_ counterpart of `DICTSETGET`: on success, also returns the old value associated with the key in question.", - "gas": "", - "fift": "DICTREPLACEGET" - }, - "bytecode": { - "doc_opcode": "F42A", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTREPLACEGETREF", - "doc": { - "category": "dict_set", - "description": "A _Replace_ counterpart of `DICTSETGETREF`.", - "gas": "", - "fift": "DICTREPLACEGETREF" - }, - "bytecode": { - "doc_opcode": "F42B", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIREPLACEGET", - "doc": { - "category": "dict_set", - "description": "`DICTREPLACEGET`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIREPLACEGET" - }, - "bytecode": { - "doc_opcode": "F42C", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIREPLACEGETREF", - "doc": { - "category": "dict_set", - "description": "`DICTREPLACEGETREF`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIREPLACEGETREF" - }, - "bytecode": { - "doc_opcode": "F42D", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUREPLACEGET", - "doc": { - "category": "dict_set", - "description": "`DICTREPLACEGET`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUREPLACEGET" - }, - "bytecode": { - "doc_opcode": "F42E", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUREPLACEGETREF", - "doc": { - "category": "dict_set", - "description": "`DICTREPLACEGETREF`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUREPLACEGETREF" - }, - "bytecode": { - "doc_opcode": "F42F", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTADD", - "doc": { - "category": "dict_set", - "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" - }, - "bytecode": { - "doc_opcode": "F432", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTADDREF", - "doc": { - "category": "dict_set", - "description": "An _Add_ counterpart of `DICTSETREF`.", - "gas": "", - "fift": "DICTADDREF" - }, - "bytecode": { - "doc_opcode": "F433", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIADD", - "doc": { - "category": "dict_set", - "description": "`DICTADD`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIADD" - }, - "bytecode": { - "doc_opcode": "F434", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIADDREF", - "doc": { - "category": "dict_set", - "description": "`DICTADDREF`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIADDREF" - }, - "bytecode": { - "doc_opcode": "F435", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUADD", - "doc": { - "category": "dict_set", - "description": "`DICTADD`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUADD" - }, - "bytecode": { - "doc_opcode": "F436", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUADDREF", - "doc": { - "category": "dict_set", - "description": "`DICTADDREF`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUADDREF" - }, - "bytecode": { - "doc_opcode": "F437", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTADDGET", - "doc": { - "category": "dict_set", - "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" - }, - "bytecode": { - "doc_opcode": "F43A", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTADDGETREF", - "doc": { - "category": "dict_set", - "description": "An _Add_ counterpart of `DICTSETGETREF`.", - "gas": "", - "fift": "DICTADDGETREF" - }, - "bytecode": { - "doc_opcode": "F43B", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIADDGET", - "doc": { - "category": "dict_set", - "description": "`DICTADDGET`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIADDGET" - }, - "bytecode": { - "doc_opcode": "F43C", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIADDGETREF", - "doc": { - "category": "dict_set", - "description": "`DICTADDGETREF`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIADDGETREF" - }, - "bytecode": { - "doc_opcode": "F43D", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUADDGET", - "doc": { - "category": "dict_set", - "description": "`DICTADDGET`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUADDGET" - }, - "bytecode": { - "doc_opcode": "F43E", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUADDGETREF", - "doc": { - "category": "dict_set", - "description": "`DICTADDGETREF`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUADDGETREF" - }, - "bytecode": { - "doc_opcode": "F43F", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTSETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTSETB" - }, - "bytecode": { - "doc_opcode": "F441", - "tlb": "#F441", - "prefix": "F441", - "operands": [] - }, - "value_flow": { - "doc_stack": "b k D n - D'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "DICTISETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTISETB" - }, - "bytecode": { - "doc_opcode": "F442", - "tlb": "#F442", - "prefix": "F442", - "operands": [] - }, - "value_flow": { - "doc_stack": "b i D n - D'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "DICTUSETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTUSETB" - }, - "bytecode": { - "doc_opcode": "F443", - "tlb": "#F443", - "prefix": "F443", - "operands": [] - }, - "value_flow": { - "doc_stack": "b i D n - D'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "DICTSETGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTSETGETB" - }, - "bytecode": { - "doc_opcode": "F445", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTISETGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTISETGETB" - }, - "bytecode": { - "doc_opcode": "F446", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUSETGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTUSETGETB" - }, - "bytecode": { - "doc_opcode": "F447", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTREPLACEB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTREPLACEB" - }, - "bytecode": { - "doc_opcode": "F449", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIREPLACEB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTIREPLACEB" - }, - "bytecode": { - "doc_opcode": "F44A", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUREPLACEB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTUREPLACEB" - }, - "bytecode": { - "doc_opcode": "F44B", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTREPLACEGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTREPLACEGETB" - }, - "bytecode": { - "doc_opcode": "F44D", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIREPLACEGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTIREPLACEGETB" - }, - "bytecode": { - "doc_opcode": "F44E", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUREPLACEGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTUREPLACEGETB" - }, - "bytecode": { - "doc_opcode": "F44F", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTADDB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTADDB" - }, - "bytecode": { - "doc_opcode": "F451", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIADDB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTIADDB" - }, - "bytecode": { - "doc_opcode": "F452", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUADDB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTUADDB" - }, - "bytecode": { - "doc_opcode": "F453", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTADDGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTADDGETB" - }, - "bytecode": { - "doc_opcode": "F455", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIADDGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTIADDGETB" - }, - "bytecode": { - "doc_opcode": "F456", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUADDGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTUADDGETB" - }, - "bytecode": { - "doc_opcode": "F457", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTDEL", - "doc": { - "category": "dict_delete", - "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" - }, - "bytecode": { - "doc_opcode": "F459", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIDEL", - "doc": { - "category": "dict_delete", - "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` (\u0432\u0402\u045akey not found, dictionary unmodified'').", - "gas": "", - "fift": "DICTIDEL" - }, - "bytecode": { - "doc_opcode": "F45A", - "tlb": "#F45A", - "prefix": "F45A", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - D' ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUDEL", - "doc": { - "category": "dict_delete", - "description": "Similar to `DICTIDEL`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUDEL" - }, - "bytecode": { - "doc_opcode": "F45B", - "tlb": "#F45B", - "prefix": "F45B", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - D' ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTDELGET", - "doc": { - "category": "dict_delete", - "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" - }, - "bytecode": { - "doc_opcode": "F462", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTDELGETREF", - "doc": { - "category": "dict_delete", - "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" - }, - "bytecode": { - "doc_opcode": "F463", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIDELGET", - "doc": { - "category": "dict_delete", - "description": "`DICTDELGET`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIDELGET" - }, - "bytecode": { - "doc_opcode": "F464", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIDELGETREF", - "doc": { - "category": "dict_delete", - "description": "`DICTDELGETREF`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIDELGETREF" - }, - "bytecode": { - "doc_opcode": "F465", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUDELGET", - "doc": { - "category": "dict_delete", - "description": "`DICTDELGET`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUDELGET" - }, - "bytecode": { - "doc_opcode": "F466", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUDELGETREF", - "doc": { - "category": "dict_delete", - "description": "`DICTDELGETREF`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUDELGETREF" - }, - "bytecode": { - "doc_opcode": "F467", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTGETOPTREF", - "doc": { - "category": "dict_mayberef", - "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" - }, - "bytecode": { - "doc_opcode": "F469", - "tlb": "#F469", - "prefix": "F469", - "operands": [] - }, - "value_flow": { - "doc_stack": "k D n - c^?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell", "Null"] - } - ] - } - } - }, - { - "mnemonic": "DICTIGETOPTREF", - "doc": { - "category": "dict_mayberef", - "description": "`DICTGETOPTREF`, but with `i` a signed `n`-bit integer. If the key `i` is out of range, also returns _Null_.", - "gas": "", - "fift": "DICTIGETOPTREF" - }, - "bytecode": { - "doc_opcode": "F46A", - "tlb": "#F46A", - "prefix": "F46A", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - c^?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell", "Null"] - } - ] - } - } - }, - { - "mnemonic": "DICTUGETOPTREF", - "doc": { - "category": "dict_mayberef", - "description": "`DICTGETOPTREF`, but with `i` an unsigned `n`-bit integer. If the key `i` is out of range, also returns _Null_.", - "gas": "", - "fift": "DICTUGETOPTREF" - }, - "bytecode": { - "doc_opcode": "F46B", - "tlb": "#F46B", - "prefix": "F46B", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - c^?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell", "Null"] - } - ] - } - } - }, - { - "mnemonic": "DICTSETGETOPTREF", - "doc": { - "category": "dict_mayberef", - "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" - }, - "bytecode": { - "doc_opcode": "F46D", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell", "Null"] - } - ] - } - } - }, - { - "mnemonic": "DICTISETGETOPTREF", - "doc": { - "category": "dict_mayberef", - "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" - }, - "bytecode": { - "doc_opcode": "F46E", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell", "Null"] - } - ] - } - } - }, - { - "mnemonic": "DICTUSETGETOPTREF", - "doc": { - "category": "dict_mayberef", - "description": "Similar to primitive `DICTSETGETOPTREF`, but using unsigned `n`-bit _Integer_ `i` as a key.", - "gas": "", - "fift": "DICTUSETGETOPTREF" - }, - "bytecode": { - "doc_opcode": "F46F", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell", "Null"] - } - ] - } - } - }, - { - "mnemonic": "PFXDICTSET", - "doc": { - "category": "dict_prefix", - "description": "", - "gas": "", - "fift": "PFXDICTSET" - }, - "bytecode": { - "doc_opcode": "F470", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PFXDICTREPLACE", - "doc": { - "category": "dict_prefix", - "description": "", - "gas": "", - "fift": "PFXDICTREPLACE" - }, - "bytecode": { - "doc_opcode": "F471", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PFXDICTADD", - "doc": { - "category": "dict_prefix", - "description": "", - "gas": "", - "fift": "PFXDICTADD" - }, - "bytecode": { - "doc_opcode": "F472", - "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PFXDICTDEL", - "doc": { - "category": "dict_prefix", - "description": "", - "gas": "", - "fift": "PFXDICTDEL" - }, - "bytecode": { - "doc_opcode": "F473", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTGETNEXT", - "doc": { - "category": "dict_next", - "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" - }, - "bytecode": { - "doc_opcode": "F474", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTGETNEXTEQ", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETNEXT`, but computes the minimal key `k'` that is lexicographically greater than or equal to `k`.", - "gas": "", - "fift": "DICTGETNEXTEQ" - }, - "bytecode": { - "doc_opcode": "F475", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTGETPREV", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETNEXT`, but computes the maximal key `k'` lexicographically smaller than `k`.", - "gas": "", - "fift": "DICTGETPREV" - }, - "bytecode": { - "doc_opcode": "F476", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTGETPREVEQ", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETPREV`, but computes the maximal key `k'` lexicographically smaller than or equal to `k`.", - "gas": "", - "fift": "DICTGETPREVEQ" - }, - "bytecode": { - "doc_opcode": "F477", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k2", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIGETNEXT", - "doc": { - "category": "dict_next", - "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" - }, - "bytecode": { - "doc_opcode": "F478", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i2", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIGETNEXTEQ", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETNEXTEQ`, but interprets keys as signed `n`-bit integers.", - "gas": "", - "fift": "DICTIGETNEXTEQ" - }, - "bytecode": { - "doc_opcode": "F479", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i2", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIGETPREV", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETPREV`, but interprets keys as signed `n`-bit integers.", - "gas": "", - "fift": "DICTIGETPREV" - }, - "bytecode": { - "doc_opcode": "F47A", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i2", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIGETPREVEQ", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETPREVEQ`, but interprets keys as signed `n`-bit integers.", - "gas": "", - "fift": "DICTIGETPREVEQ" - }, - "bytecode": { - "doc_opcode": "F47B", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i2", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUGETNEXT", - "doc": { - "category": "dict_next", - "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" - }, - "bytecode": { - "doc_opcode": "F47C", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i2", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUGETNEXTEQ", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETNEXTEQ`, but interprets keys as unsigned `n`-bit integers.", - "gas": "", - "fift": "DICTUGETNEXTEQ" - }, - "bytecode": { - "doc_opcode": "F47D", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i2", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUGETPREV", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETPREV`, but interprets keys as unsigned `n`-bit integers.", - "gas": "", - "fift": "DICTUGETPREV" - }, - "bytecode": { - "doc_opcode": "F47E", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i2", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUGETPREVEQ", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETPREVEQ`, but interprets keys a unsigned `n`-bit integers.", - "gas": "", - "fift": "DICTUGETPREVEQ" - }, - "bytecode": { - "doc_opcode": "F47F", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i2", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTMIN", - "doc": { - "category": "dict_min", - "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" - }, - "bytecode": { - "doc_opcode": "F482", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTMINREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTMIN`, but returns the only reference in the value as a _Cell_ `c`.", - "gas": "", - "fift": "DICTMINREF" - }, - "bytecode": { - "doc_opcode": "F483", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIMIN", - "doc": { - "category": "dict_min", - "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" - }, - "bytecode": { - "doc_opcode": "F484", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIMINREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTIMIN`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTIMINREF" - }, - "bytecode": { - "doc_opcode": "F485", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUMIN", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTMIN`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", - "gas": "", - "fift": "DICTUMIN" - }, - "bytecode": { - "doc_opcode": "F486", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUMINREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTUMIN`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTUMINREF" - }, - "bytecode": { - "doc_opcode": "F487", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTMAX", - "doc": { - "category": "dict_min", - "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" - }, - "bytecode": { - "doc_opcode": "F48A", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTMAXREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTMAX`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTMAXREF" - }, - "bytecode": { - "doc_opcode": "F48B", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIMAX", - "doc": { - "category": "dict_min", - "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" - }, - "bytecode": { - "doc_opcode": "F48C", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIMAXREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTIMAX`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTIMAXREF" - }, - "bytecode": { - "doc_opcode": "F48D", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUMAX", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTMAX`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", - "gas": "", - "fift": "DICTUMAX" - }, - "bytecode": { - "doc_opcode": "F48E", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUMAXREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTUMAX`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTUMAXREF" - }, - "bytecode": { - "doc_opcode": "F48F", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTREMMIN", - "doc": { - "category": "dict_min", - "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" - }, - "bytecode": { - "doc_opcode": "F492", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTREMMINREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTREMMIN`, but returns the only reference in the value as a _Cell_ `c`.", - "gas": "", - "fift": "DICTREMMINREF" - }, - "bytecode": { - "doc_opcode": "F493", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIREMMIN", - "doc": { - "category": "dict_min", - "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" - }, - "bytecode": { - "doc_opcode": "F494", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] + ] + } + } + }, + { + "mnemonic": "INDEX2", + "doc": { + "category": "tuple", + "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" + }, + "bytecode": { + "doc_opcode": "6FBij", + "tlb": "#6FB i:uint2 j:uint2", + "prefix": "6FB", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 2 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 2 + } + } + ] + }, + "value_flow": { + "doc_stack": "t - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x" + } + ] + } + } + }, + { + "mnemonic": "INDEX3", + "doc": { + "category": "tuple", + "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" + }, + "bytecode": { + "doc_opcode": "6FE_ijk", + "tlb": "#6FE_ i:uint2 j:uint2 k:uint2", + "prefix": "6FE_", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 2 + } + }, + { + "name": "j", + "loader": "uint", + "loader_args": { + "size": 2 + } + }, + { + "name": "k", + "loader": "uint", + "loader_args": { + "size": 2 + } + } + ] + }, + "value_flow": { + "doc_stack": "t - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x" + } + ] + } + } + }, + { + "mnemonic": "PUSHINT_4", + "doc": { + "category": "const_int", + "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" + }, + "bytecode": { + "doc_opcode": "7i", + "tlb": "#7 i:uint4", + "prefix": "7", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "- x", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PUSHINT_8", + "doc": { + "category": "const_int", + "description": "Pushes integer `xx`. `-128 <= xx <= 127`.", + "gas": "26", + "fift": "[xx] PUSHINT\n[xx] INT" + }, + "bytecode": { + "doc_opcode": "80xx", + "tlb": "#80 xx:int8", + "prefix": "80", + "operands": [ + { + "name": "x", + "loader": "int", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "- xx", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PUSHINT_16", + "doc": { + "category": "const_int", + "description": "Pushes integer `xxxx`. `-2^15 <= xx < 2^15`.", + "gas": "34", + "fift": "[xxxx] PUSHINT\n[xxxx] INT" + }, + "bytecode": { + "doc_opcode": "81xxxx", + "tlb": "#81 xxxx:int16", + "prefix": "81", + "operands": [ + { + "name": "x", + "loader": "int", + "loader_args": { + "size": 16 + } + } + ] + }, + "value_flow": { + "doc_stack": "- xxxx", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PUSHINT_LONG", + "doc": { + "category": "const_int", + "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" + }, + "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", + "loader": "pushint_long", + "loader_args": {} + } + ] + }, + "value_flow": { + "doc_stack": "- xxx", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PUSHPOW2", + "doc": { + "category": "const_int", + "description": "(Quietly) pushes `2^(xx+1)` for `0 <= xx <= 255`.\n`2^256` is a `NaN`.", + "gas": "26", + "fift": "[xx+1] PUSHPOW2" + }, + "bytecode": { + "doc_opcode": "83xx", + "tlb": "#83 xx:uint8", + "prefix": "83", + "operands_range_check": { + "length": 8, + "from": 0, + "to": 254 + }, + "operands": [ + { + "name": "x", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "- 2^(xx+1)", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PUSHNAN", + "doc": { + "category": "const_int", + "description": "Pushes a `NaN`.", + "gas": "26", + "fift": "PUSHNAN" + }, + "bytecode": { + "doc_opcode": "83FF", + "tlb": "#83FF", + "prefix": "83FF", + "operands": [] + }, + "value_flow": { + "doc_stack": "- NaN", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "const", + "value_type": "Integer", + "value": null + } + ] + } + } + }, + { + "mnemonic": "PUSHPOW2DEC", + "doc": { + "category": "const_int", + "description": "Pushes `2^(xx+1)-1` for `0 <= xx <= 255`.", + "gas": "26", + "fift": "[xx+1] PUSHPOW2DEC" + }, + "bytecode": { + "doc_opcode": "84xx", + "tlb": "#84 xx:uint8", + "prefix": "84", + "operands": [ + { + "name": "x", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "- 2^(xx+1)-1", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PUSHNEGPOW2", + "doc": { + "category": "const_int", + "description": "Pushes `-2^(xx+1)` for `0 <= xx <= 255`.", + "gas": "26", + "fift": "[xx+1] PUSHNEGPOW2" + }, + "bytecode": { + "doc_opcode": "85xx", + "tlb": "#85 xx:uint8", + "prefix": "85", + "operands": [ + { + "name": "x", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "- -2^(xx+1)", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PUSHREF", + "doc": { + "category": "const_data", + "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" + }, + "bytecode": { + "doc_opcode": "88", + "tlb": "#88 c:^Cell", + "prefix": "88", + "operands": [ + { + "name": "c", + "loader": "ref", + "loader_args": {} + } + ] + }, + "value_flow": { + "doc_stack": "- c", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Cell"] + } + ] + } + } + }, + { + "mnemonic": "PUSHREFSLICE", + "doc": { + "category": "const_data", + "description": "Similar to `PUSHREF`, but converts the cell into a _Slice_.", + "gas": "118/43", + "fift": "[ref] PUSHREFSLICE" + }, + "bytecode": { + "doc_opcode": "89", + "tlb": "#89 c:^Cell", + "prefix": "89", + "operands": [ + { + "name": "c", + "loader": "ref", + "loader_args": {} + } + ] + }, + "value_flow": { + "doc_stack": "- s", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "PUSHREFCONT", + "doc": { + "category": "const_data", + "description": "Similar to `PUSHREFSLICE`, but makes a simple ordinary _Continuation_ out of the cell.", + "gas": "118/43", + "fift": "[ref] PUSHREFCONT" + }, + "bytecode": { + "doc_opcode": "8A", + "tlb": "#8A c:^Cell", + "prefix": "8A", + "operands": [ + { + "name": "c", + "loader": "ref", + "loader_args": {} + } + ] + }, + "value_flow": { + "doc_stack": "- cont", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Continuation"] + } + ] + } + } + }, + { + "mnemonic": "PUSHSLICE", + "doc": { + "category": "const_data", + "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" + }, + "bytecode": { + "doc_opcode": "8Bxsss", + "tlb": "#8B x:(## 4) sss:((8 * x + 4) * Bit)", + "prefix": "8B", + "operands": [ + { + "name": "s", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 4, + "bits_padding": 4, + "completion_tag": true + } + } + ] + }, + "value_flow": { + "doc_stack": "- s", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "PUSHSLICE_REFS", + "doc": { + "category": "const_data", + "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" + }, + "bytecode": { + "doc_opcode": "8Crxxssss", + "tlb": "#8C r:(## 2) xx:(## 5) c:((r + 1) * ^Cell) ssss:((8 * xx + 1) * Bit)", + "prefix": "8C", + "operands": [ + { + "name": "slice", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 5, + "bits_padding": 1, + "refs_length_var_size": 2, + "refs_add": 1, + "completion_tag": true + } + } + ] + }, + "value_flow": { + "doc_stack": "- s", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "PUSHSLICE_LONG", + "doc": { + "category": "const_data", + "description": "Pushes the slice `slice` into the stack.\n_Details:_ Pushes the subslice of `cc.code` consisting of `0 <= r <= 4` references and up to `8xx+6` bits of data, with `0 <= xx <= 127`.\nA completion tag is assumed.", + "gas": "28", + "fift": "[slice] PUSHSLICE\n[slice] SLICE", + "fift_examples": [ + { + "fift": "x{} PUSHSLICE x{ABCD1234} PUSHSLICE b{01101} PUSHSLICE", + "description": "Examples of `PUSHSLICE`. `x{}` is an empty slice. `x{...}` is a hexadecimal literal. `b{...}` is a binary literal. More on slice literals [here](https://github.com/Piterden/TON-docs/blob/master/Fift.%20A%20Brief%20Introduction.md#user-content-51-slice-literals). Note that the assembler can replace `PUSHSLICE` with `PUSHREFSLICE` in certain situations (e.g. if there’s not enough space in the current continuation)." + }, + { + "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)." + } + ] + }, + "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 + }, + "operands": [ + { + "name": "slice", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 7, + "bits_padding": 6, + "refs_length_var_size": 3, + "completion_tag": true + } + } + ] + }, + "value_flow": { + "doc_stack": "- s", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "PUSHCONT", + "doc": { + "category": "const_data", + "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" + }, + "bytecode": { + "doc_opcode": "8F_rxxcccc", + "tlb": "#8F_ r:(## 2) xx:(## 7) c:(r * ^Cell) ssss:((8 * xx) * Bit)", + "prefix": "8F_", + "operands": [ + { + "name": "s", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 7, + "bits_padding": 0, + "refs_length_var_size": 2 + } + } + ] + }, + "value_flow": { + "doc_stack": "- c", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Continuation"] + } + ] + } + } + }, + { + "mnemonic": "PUSHCONT_SHORT", + "doc": { + "category": "const_data", + "description": "Pushes a continuation made from `builder`.\n_Details:_ Pushes an `x`-byte continuation for `0 <= x <= 15`.", + "gas": "18", + "fift": "[builder] PUSHCONT\n[builder] CONT", + "fift_examples": [ + { + "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)." + } + ] + }, + "bytecode": { + "doc_opcode": "9xccc", + "tlb": "#9 x:(## 4) ssss:((8 * x) * Bit)", + "prefix": "9", + "operands": [ + { + "name": "s", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 4, + "bits_padding": 0 + } + } + ] + }, + "value_flow": { + "doc_stack": "- c", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + } + } + }, + { + "mnemonic": "ADD", + "doc": { + "category": "arithm_basic", + "description": "", + "gas": "18", + "fift": "ADD" + }, + "bytecode": { + "doc_opcode": "A0", + "tlb": "#A0", + "prefix": "A0", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x+y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SUB", + "doc": { + "category": "arithm_basic", + "description": "", + "gas": "18", + "fift": "SUB" + }, + "bytecode": { + "doc_opcode": "A1", + "tlb": "#A1", + "prefix": "A1", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x-y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SUBR", + "doc": { + "category": "arithm_basic", + "description": "Equivalent to `SWAP` `SUB`.", + "gas": "18", + "fift": "SUBR" + }, + "bytecode": { + "doc_opcode": "A2", + "tlb": "#A2", + "prefix": "A2", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - y-x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "NEGATE", + "doc": { + "category": "arithm_basic", + "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" + }, + "bytecode": { + "doc_opcode": "A3", + "tlb": "#A3", + "prefix": "A3", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - -x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "INC", + "doc": { + "category": "arithm_basic", + "description": "Equivalent to `1 ADDCONST`.", + "gas": "18", + "fift": "INC" + }, + "bytecode": { + "doc_opcode": "A4", + "tlb": "#A4", + "prefix": "A4", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - x+1", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DEC", + "doc": { + "category": "arithm_basic", + "description": "Equivalent to `-1 ADDCONST`.", + "gas": "18", + "fift": "DEC" + }, + "bytecode": { + "doc_opcode": "A5", + "tlb": "#A5", + "prefix": "A5", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - x-1", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "ADDCONST", + "doc": { + "category": "arithm_basic", + "description": "`-128 <= cc <= 127`.", + "gas": "26", + "fift": "[cc] ADDCONST\n[cc] ADDINT\n[-cc] SUBCONST\n[-cc] SUBINT" + }, + "bytecode": { + "doc_opcode": "A6cc", + "tlb": "#A6 cc:int8", + "prefix": "A6", + "operands": [ + { + "name": "c", + "loader": "int", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x+cc", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULCONST", + "doc": { + "category": "arithm_basic", + "description": "`-128 <= cc <= 127`.", + "gas": "26", + "fift": "[cc] MULCONST\n[cc] MULINT" + }, + "bytecode": { + "doc_opcode": "A7cc", + "tlb": "#A7 cc:int8", + "prefix": "A7", + "operands": [ + { + "name": "c", + "loader": "int", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x*cc", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MUL", + "doc": { + "category": "arithm_basic", + "description": "", + "gas": "18", + "fift": "MUL" + }, + "bytecode": { + "doc_opcode": "A8", + "tlb": "#A8", + "prefix": "A8", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x*y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "ADDDIVMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "ADDDIVMOD" + }, + "bytecode": { + "doc_opcode": "A900", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "ADDDIVMODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "ADDDIVMODR" + }, + "bytecode": { + "doc_opcode": "A901", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "ADDDIVMODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "ADDDIVMODC" + }, + "bytecode": { + "doc_opcode": "A902", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DIV", + "doc": { + "category": "arithm_div", + "description": "`q=floor(x/y)`, `r=x-y*q`", + "gas": "26", + "fift": "DIV" + }, + "bytecode": { + "doc_opcode": "A904", + "tlb": "#A904", + "prefix": "A904", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DIVR", + "doc": { + "category": "arithm_div", + "description": "`q\u0432\u0402\u2122=round(x/y)`, `r\u0432\u0402\u2122=x-y*q\u0432\u0402\u2122`", + "gas": "26", + "fift": "DIVR" + }, + "bytecode": { + "doc_opcode": "A905", + "tlb": "#A905", + "prefix": "A905", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q\u0432\u0402\u2122", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DIVC", + "doc": { + "category": "arithm_div", + "description": "`q\u0432\u0402\u2122\u0432\u0402\u2122=ceil(x/y)`, `r\u0432\u0402\u2122\u0432\u0402\u2122=x-y*q\u0432\u0402\u2122\u0432\u0402\u2122`", + "gas": "26", + "fift": "DIVC" + }, + "bytecode": { + "doc_opcode": "A906", + "tlb": "#A906", + "prefix": "A906", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MOD" + }, + "bytecode": { + "doc_opcode": "A908", + "tlb": "#A908", + "prefix": "A908", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - r", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MODR" + }, + "bytecode": { + "doc_opcode": "A909", + "tlb": "#A909", + "prefix": "A909", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - r", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MODC" + }, + "bytecode": { + "doc_opcode": "A90A", + "tlb": "#A90A", + "prefix": "A90A", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - r", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DIVMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "DIVMOD" + }, + "bytecode": { + "doc_opcode": "A90C", + "tlb": "#A90C", + "prefix": "A90C", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q r", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DIVMODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "DIVMODR" + }, + "bytecode": { + "doc_opcode": "A90D", + "tlb": "#A90D", + "prefix": "A90D", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q' r'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DIVMODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "DIVMODC" + }, + "bytecode": { + "doc_opcode": "A90E", + "tlb": "#A90E", + "prefix": "A90E", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q'' r''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "ADDRSHIFTMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "ADDRSHIFTMOD" + }, + "bytecode": { + "doc_opcode": "A920", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "ADDRSHIFTMODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "ADDRSHIFTMODR" + }, + "bytecode": { + "doc_opcode": "A921", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "ADDRSHIFTMODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "ADDRSHIFTMODC" + }, + "bytecode": { + "doc_opcode": "A922", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RSHIFTR_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "RSHIFTR" + }, + "bytecode": { + "doc_opcode": "A925", + "tlb": "#A925", + "prefix": "A925", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - round(x/2^y)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RSHIFTC_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "RSHIFTC" + }, + "bytecode": { + "doc_opcode": "A926", + "tlb": "#A926", + "prefix": "A926", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - ceil(x/2^y)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MODPOW2_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MODPOW2" + }, + "bytecode": { + "doc_opcode": "A928", + "tlb": "#A928", + "prefix": "A928", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x mod 2^y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MODPOW2R_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MODPOW2R" + }, + "bytecode": { + "doc_opcode": "A929", + "tlb": "#A929", + "prefix": "A929", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x mod 2^y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MODPOW2C_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MODPOW2C" + }, + "bytecode": { + "doc_opcode": "A92A", + "tlb": "#A92A", + "prefix": "A92A", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x mod 2^y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RSHIFTMOD_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "RSHIFTMOD" + }, + "bytecode": { + "doc_opcode": "A92C", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RSHIFTMODR_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "RSHIFTMODR" + }, + "bytecode": { + "doc_opcode": "A92D", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RSHIFTMODC_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "RSHIFTMODC" + }, + "bytecode": { + "doc_opcode": "A92E", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "ADDRSHIFTMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] ADDRSHIFT#MOD" + }, + "bytecode": { + "doc_opcode": "A930tt", + "tlb": "#A930 tt:uint8", + "prefix": "A930", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "ADDRSHIFTRMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] ADDRSHIFTR#MOD" + }, + "bytecode": { + "doc_opcode": "A931tt", + "tlb": "#A931 tt:uint8", + "prefix": "A931", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "ADDRSHIFTCMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] ADDRSHIFTC#MOD" + }, + "bytecode": { + "doc_opcode": "A932tt", + "tlb": "#A932 tt:uint8", + "prefix": "A932", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RSHIFTR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] RSHIFTR#" + }, + "bytecode": { + "doc_opcode": "A935tt", + "tlb": "#A935 tt:uint8", + "prefix": "A935", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - round(x/2^(tt+1))", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RSHIFTC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] RSHIFTC#" + }, + "bytecode": { + "doc_opcode": "A936tt", + "tlb": "#A936 tt:uint8", + "prefix": "A936", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - ceil(x/2^(tt+1))", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MODPOW2", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MODPOW2#" + }, + "bytecode": { + "doc_opcode": "A938tt", + "tlb": "#A938 tt:uint8", + "prefix": "A938", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x mod 2^(tt+1)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MODPOW2R", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MODPOW2R#" + }, + "bytecode": { + "doc_opcode": "A939tt", + "tlb": "#A939 tt:uint8", + "prefix": "A939", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x mod 2^(tt+1)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MODPOW2C", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MODPOW2C#" + }, + "bytecode": { + "doc_opcode": "A93Att", + "tlb": "#A93A tt:uint8", + "prefix": "A93A", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x mod 2^(tt+1)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RSHIFTMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] RSHIFT#MOD" + }, + "bytecode": { + "doc_opcode": "A93Ctt", + "tlb": "#A93C tt:uint8", + "prefix": "A93C", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RSHIFTRMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] RSHIFTR#MOD" + }, + "bytecode": { + "doc_opcode": "A93Dtt", + "tlb": "#A93D tt:uint8", + "prefix": "A93D", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RSHIFTCMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] RSHIFTC#MOD" + }, + "bytecode": { + "doc_opcode": "A93Ett", + "tlb": "#A93E tt:uint8", + "prefix": "A93E", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULADDDIVMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULADDDIVMOD" + }, + "bytecode": { + "doc_opcode": "A980", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULADDDIVMODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULADDDIVMODR" + }, + "bytecode": { + "doc_opcode": "A981", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULADDDIVMODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULADDDIVMODC" + }, + "bytecode": { + "doc_opcode": "A982", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULDIV", + "doc": { + "category": "arithm_div", + "description": "`q=floor(x*y/z)`", + "gas": "26", + "fift": "MULDIV" + }, + "bytecode": { + "doc_opcode": "A984", + "tlb": "#A984", + "prefix": "A984", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULDIVR", + "doc": { + "category": "arithm_div", + "description": "`q'=round(x*y/z)`", + "gas": "26", + "fift": "MULDIVR" + }, + "bytecode": { + "doc_opcode": "A985", + "tlb": "#A985", + "prefix": "A985", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULDIVC", + "doc": { + "category": "arithm_div", + "description": "`q'=ceil(x*y/z)`", + "gas": "26", + "fift": "MULDIVC" + }, + "bytecode": { + "doc_opcode": "A986", + "tlb": "#A986", + "prefix": "A986", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULMOD" + }, + "bytecode": { + "doc_opcode": "A988", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULMODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULMODR" + }, + "bytecode": { + "doc_opcode": "A989", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULMODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULMODC" + }, + "bytecode": { + "doc_opcode": "A98A", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULDIVMOD", + "doc": { + "category": "arithm_div", + "description": "`q=floor(x*y/z)`, `r=x*y-z*q`", + "gas": "26", + "fift": "MULDIVMOD" + }, + "bytecode": { + "doc_opcode": "A98C", + "tlb": "#A98C", + "prefix": "A98C", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q r", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULDIVMODR", + "doc": { + "category": "arithm_div", + "description": "`q=round(x*y/z)`, `r=x*y-z*q`", + "gas": "26", + "fift": "MULDIVMODR" + }, + "bytecode": { + "doc_opcode": "A98D", + "tlb": "#A98D", + "prefix": "A98D", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q r", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULDIVMODC", + "doc": { + "category": "arithm_div", + "description": "`q=ceil(x*y/z)`, `r=x*y-z*q`", + "gas": "26", + "fift": "MULDIVMODC" + }, + "bytecode": { + "doc_opcode": "A98E", + "tlb": "#A98E", + "prefix": "A98E", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q r", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULADDRSHIFTMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULADDRSHIFTMOD" + }, + "bytecode": { + "doc_opcode": "A9A0", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULADDRSHIFTRMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULADDRSHIFTRMOD" + }, + "bytecode": { + "doc_opcode": "A9A1", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULADDRSHIFTCMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULADDRSHIFTCMOD" + }, + "bytecode": { + "doc_opcode": "A9A2", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULRSHIFT_VAR", + "doc": { + "category": "arithm_div", + "description": "`0 <= z <= 256`", + "gas": "26", + "fift": "MULRSHIFT" + }, + "bytecode": { + "doc_opcode": "A9A4", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULRSHIFTR_VAR", + "doc": { + "category": "arithm_div", + "description": "`0 <= z <= 256`", + "gas": "26", + "fift": "MULRSHIFTR" + }, + "bytecode": { + "doc_opcode": "A9A5", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULRSHIFTC_VAR", + "doc": { + "category": "arithm_div", + "description": "`0 <= z <= 256`", + "gas": "26", + "fift": "MULRSHIFTC" + }, + "bytecode": { + "doc_opcode": "A9A6", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULMODPOW2_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULMODPOW2_VAR" + }, + "bytecode": { + "doc_opcode": "A9A8", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULMODPOW2R_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULMODPOW2R_VAR" + }, + "bytecode": { + "doc_opcode": "A9A9", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULMODPOW2C_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULMODPOW2C_VAR" + }, + "bytecode": { + "doc_opcode": "A9AA", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULRSHIFTMOD_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULRSHIFTMOD_VAR" + }, + "bytecode": { + "doc_opcode": "A9AC", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULRSHIFTRMOD_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULRSHIFTRMOD_VAR" + }, + "bytecode": { + "doc_opcode": "A9AD", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULRSHIFTCMOD_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULRSHIFTCMOD_VAR" + }, + "bytecode": { + "doc_opcode": "A9AE", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULADDRSHIFTMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULADDRSHIFT#MOD" + }, + "bytecode": { + "doc_opcode": "A9B0tt", + "tlb": "#A9B0 tt:uint8", + "prefix": "A9B0", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULADDRSHIFTRMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULADDRSHIFTR#MOD" + }, + "bytecode": { + "doc_opcode": "A9B1tt", + "tlb": "#A9B1 tt:uint8", + "prefix": "A9B1", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULADDRSHIFTCMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULADDRSHIFTC#MOD" + }, + "bytecode": { + "doc_opcode": "A9B2tt", + "tlb": "#A9B2 tt:uint8", + "prefix": "A9B2", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULRSHIFT", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULRSHIFT#" + }, + "bytecode": { + "doc_opcode": "A9B4tt", + "tlb": "#A9B4 tt:uint8", + "prefix": "A9B4", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - floor(x*y/2^(tt+1))", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULRSHIFTR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULRSHIFTR#" + }, + "bytecode": { + "doc_opcode": "A9B5tt", + "tlb": "#A9B5 tt:uint8", + "prefix": "A9B5", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - round(x*y/2^(tt+1))", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULRSHIFTC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULRSHIFTC#" + }, + "bytecode": { + "doc_opcode": "A9B6tt", + "tlb": "#A9B6 tt:uint8", + "prefix": "A9B6", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - ceil(x*y/2^(tt+1))", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULMODPOW2", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULMODPOW2#" + }, + "bytecode": { + "doc_opcode": "A9B8tt", + "tlb": "#A9B8 tt:uint8", + "prefix": "A9B8", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - x*y mod 2^(tt+1)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULMODPOW2R", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULMODPOW2R#" + }, + "bytecode": { + "doc_opcode": "A9B9tt", + "tlb": "#A9B9 tt:uint8", + "prefix": "A9B9", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - x*y mod 2^(tt+1)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULMODPOW2C", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULMODPOW2C#" + }, + "bytecode": { + "doc_opcode": "A9BAtt", + "tlb": "#A9BA tt:uint8", + "prefix": "A9BA", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - x*y mod 2^(tt+1)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULRSHIFTMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "MULRSHIFT#MOD" + }, + "bytecode": { + "doc_opcode": "A9BC", + "tlb": "#A9BC", + "prefix": "A9BC", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULRSHIFTRMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "MULRSHIFTR#MOD" + }, + "bytecode": { + "doc_opcode": "A9BD", + "tlb": "#A9BD", + "prefix": "A9BD", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MULRSHIFTCMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "MULRSHIFTC#MOD" + }, + "bytecode": { + "doc_opcode": "A9BE", + "tlb": "#A9BE", + "prefix": "A9BE", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTADDDIVMOD_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTADDDIVMOD" + }, + "bytecode": { + "doc_opcode": "A9C0", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTADDDIVMODR_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTADDDIVMODR" + }, + "bytecode": { + "doc_opcode": "A9C1", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTADDDIVMODC_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTADDDIVMODC" + }, + "bytecode": { + "doc_opcode": "A9C2", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTDIV_VAR", + "doc": { + "category": "arithm_div", + "description": "`0 <= z <= 256`", + "gas": "26", + "fift": "LSHIFTDIV" + }, + "bytecode": { + "doc_opcode": "A9C4", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTDIVR_VAR", + "doc": { + "category": "arithm_div", + "description": "`0 <= z <= 256`", + "gas": "26", + "fift": "LSHIFTDIVR" + }, + "bytecode": { + "doc_opcode": "A9C5", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTDIVC_VAR", + "doc": { + "category": "arithm_div", + "description": "`0 <= z <= 256`", + "gas": "26", + "fift": "LSHIFTDIVC" + }, + "bytecode": { + "doc_opcode": "A9C6", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTMOD_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTMOD" + }, + "bytecode": { + "doc_opcode": "A9C8", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTMODR_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTMODR" + }, + "bytecode": { + "doc_opcode": "A9C9", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTMODC_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTMODC" + }, + "bytecode": { + "doc_opcode": "A9CA", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTDIVMOD_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTDIVMOD" + }, + "bytecode": { + "doc_opcode": "A9CC", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTDIVMODR_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTDIVMODR" + }, + "bytecode": { + "doc_opcode": "A9CD", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTDIVMODC_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTDIVMODC" + }, + "bytecode": { + "doc_opcode": "A9CE", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTADDDIVMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#ADDDIVMOD" + }, + "bytecode": { + "doc_opcode": "A9D0tt", + "tlb": "#A9D0 tt:uint8", + "prefix": "A9D0", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTADDDIVMODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#ADDDIVMODR" + }, + "bytecode": { + "doc_opcode": "A9D1tt", + "tlb": "#A9D1 tt:uint8", + "prefix": "A9D1", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTADDDIVMODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#ADDDIVMODC" + }, + "bytecode": { + "doc_opcode": "A9D2tt", + "tlb": "#A9D2 tt:uint8", + "prefix": "A9D2", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTDIV", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#DIV" + }, + "bytecode": { + "doc_opcode": "A9D4tt", + "tlb": "#A9D4 tt:uint8", + "prefix": "A9D4", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - floor(2^(tt+1)*x/y)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTDIVR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#DIVR" + }, + "bytecode": { + "doc_opcode": "A9D5tt", + "tlb": "#A9D5 tt:uint8", + "prefix": "A9D5", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - round(2^(tt+1)*x/y)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTDIVC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "[tt+1] LSHIFT#DIVC" + }, + "bytecode": { + "doc_opcode": "A9D6tt", + "tlb": "#A9D6 tt:uint8", + "prefix": "A9D6", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - ceil(2^(tt+1)*x/y)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#MOD" + }, + "bytecode": { + "doc_opcode": "A9D8tt", + "tlb": "#A9D8 tt:uint8", + "prefix": "A9D8", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - 2^(tt+1)*x mod y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTMODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#MODR" + }, + "bytecode": { + "doc_opcode": "A9D9tt", + "tlb": "#A9D9 tt:uint8", + "prefix": "A9D9", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - 2^(tt+1)*x mod y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTMODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#MODC" + }, + "bytecode": { + "doc_opcode": "A9DAtt", + "tlb": "#A9DA tt:uint8", + "prefix": "A9DA", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - 2^(tt+1)*x mod y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTDIVMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#DIVMOD" + }, + "bytecode": { + "doc_opcode": "A9DCtt", + "tlb": "#A9DC tt:uint8", + "prefix": "A9DC", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTDIVMODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#DIVMODR" + }, + "bytecode": { + "doc_opcode": "A9DDtt", + "tlb": "#A9DD tt:uint8", + "prefix": "A9DD", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFTDIVMODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#DIVMODC" + }, + "bytecode": { + "doc_opcode": "A9DEtt", + "tlb": "#A9DE tt:uint8", + "prefix": "A9DE", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFT", + "doc": { + "category": "arithm_logical", + "description": "`0 <= cc <= 255`", + "gas": "26", + "fift": "[cc+1] LSHIFT#" + }, + "bytecode": { + "doc_opcode": "AAcc", + "tlb": "#AA cc:uint8", + "prefix": "AA", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x*2^(cc+1)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RSHIFT", + "doc": { + "category": "arithm_logical", + "description": "`0 <= cc <= 255`", + "gas": "18", + "fift": "[cc+1] RSHIFT#" + }, + "bytecode": { + "doc_opcode": "ABcc", + "tlb": "#AB cc:uint8", + "prefix": "AB", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - floor(x/2^(cc+1))", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LSHIFT_VAR", + "doc": { + "category": "arithm_logical", + "description": "`0 <= y <= 1023`", + "gas": "18", + "fift": "LSHIFT" + }, + "bytecode": { + "doc_opcode": "AC", + "tlb": "#AC", + "prefix": "AC", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x*2^y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RSHIFT_VAR", + "doc": { + "category": "arithm_logical", + "description": "`0 <= y <= 1023`", + "gas": "18", + "fift": "RSHIFT" + }, + "bytecode": { + "doc_opcode": "AD", + "tlb": "#AD", + "prefix": "AD", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - floor(x/2^y)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "POW2", + "doc": { + "category": "arithm_logical", + "description": "`0 <= y <= 1023`\nEquivalent to `ONE` `SWAP` `LSHIFT`.", + "gas": "18", + "fift": "POW2" + }, + "bytecode": { + "doc_opcode": "AE", + "tlb": "#AE", + "prefix": "AE", + "operands": [] + }, + "value_flow": { + "doc_stack": "y - 2^y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "AND", + "doc": { + "category": "arithm_logical", + "description": "Bitwise and of two signed integers `x` and `y`, sign-extended to infinity.", + "gas": "18", + "fift": "AND" + }, + "bytecode": { + "doc_opcode": "B0", + "tlb": "#B0", + "prefix": "B0", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x&y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "OR", + "doc": { + "category": "arithm_logical", + "description": "Bitwise or of two integers.", + "gas": "18", + "fift": "OR" + }, + "bytecode": { + "doc_opcode": "B1", + "tlb": "#B1", + "prefix": "B1", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x|y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "XOR", + "doc": { + "category": "arithm_logical", + "description": "Bitwise xor of two integers.", + "gas": "18", + "fift": "XOR" + }, + "bytecode": { + "doc_opcode": "B2", + "tlb": "#B2", + "prefix": "B2", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x xor y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "NOT", + "doc": { + "category": "arithm_logical", + "description": "Bitwise not of an integer.", + "gas": "26", + "fift": "NOT" + }, + "bytecode": { + "doc_opcode": "B3", + "tlb": "#B3", + "prefix": "B3", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - ~x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "FITS", + "doc": { + "category": "arithm_logical", + "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" + }, + "bytecode": { + "doc_opcode": "B4cc", + "tlb": "#B4 cc:uint8", + "prefix": "B4", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "UFITS", + "doc": { + "category": "arithm_logical", + "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" + }, + "bytecode": { + "doc_opcode": "B5cc", + "tlb": "#B5 cc:uint8", + "prefix": "B5", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "FITSX", + "doc": { + "category": "arithm_logical", + "description": "Checks whether `x` is a `c`-bit signed integer for `0 <= c <= 1023`.", + "gas": "26/76", + "fift": "FITSX" + }, + "bytecode": { + "doc_opcode": "B600", + "tlb": "#B600", + "prefix": "B600", + "operands": [] + }, + "value_flow": { + "doc_stack": "x c - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "UFITSX", + "doc": { + "category": "arithm_logical", + "description": "Checks whether `x` is a `c`-bit unsigned integer for `0 <= c <= 1023`.", + "gas": "26/76", + "fift": "UFITSX" + }, + "bytecode": { + "doc_opcode": "B601", + "tlb": "#B601", + "prefix": "B601", + "operands": [] + }, + "value_flow": { + "doc_stack": "x c - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BITSIZE", + "doc": { + "category": "arithm_logical", + "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" + }, + "bytecode": { + "doc_opcode": "B602", + "tlb": "#B602", + "prefix": "B602", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - c", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "UBITSIZE", + "doc": { + "category": "arithm_logical", + "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" + }, + "bytecode": { + "doc_opcode": "B603", + "tlb": "#B603", + "prefix": "B603", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - c", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MIN", + "doc": { + "category": "arithm_logical", + "description": "Computes the minimum of two integers `x` and `y`.", + "gas": "26", + "fift": "MIN" + }, + "bytecode": { + "doc_opcode": "B608", + "tlb": "#B608", + "prefix": "B608", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x or y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MAX", + "doc": { + "category": "arithm_logical", + "description": "Computes the maximum of two integers `x` and `y`.", + "gas": "26", + "fift": "MAX" + }, + "bytecode": { + "doc_opcode": "B609", + "tlb": "#B609", + "prefix": "B609", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x or y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "MINMAX", + "doc": { + "category": "arithm_logical", + "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" + }, + "bytecode": { + "doc_opcode": "B60A", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "r1", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r2", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "ABS", + "doc": { + "category": "arithm_logical", + "description": "Computes the absolute value of an integer `x`.", + "gas": "26", + "fift": "ABS" + }, + "bytecode": { + "doc_opcode": "B60B", + "tlb": "#B60B", + "prefix": "B60B", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - |x|", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QADD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QADD" + }, + "bytecode": { + "doc_opcode": "B7A0", + "tlb": "#B7A0", + "prefix": "B7A0", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x+y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QSUB", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QSUB" + }, + "bytecode": { + "doc_opcode": "B7A1", + "tlb": "#B7A1", + "prefix": "B7A1", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x-y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QSUBR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QSUBR" + }, + "bytecode": { + "doc_opcode": "B7A2", + "tlb": "#B7A2", + "prefix": "B7A2", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - y-x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QNEGATE", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QNEGATE" + }, + "bytecode": { + "doc_opcode": "B7A3", + "tlb": "#B7A3", + "prefix": "B7A3", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - -x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QINC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QINC" + }, + "bytecode": { + "doc_opcode": "B7A4", + "tlb": "#B7A4", + "prefix": "B7A4", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - x+1", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QDEC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QDEC" + }, + "bytecode": { + "doc_opcode": "B7A5", + "tlb": "#B7A5", + "prefix": "B7A5", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - x-1", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMUL", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QMUL" + }, + "bytecode": { + "doc_opcode": "B7A8", + "tlb": "#B7A8", + "prefix": "B7A8", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x*y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QADDDIVMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QADDDIVMOD" + }, + "bytecode": { + "doc_opcode": "B7A900", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QADDDIVMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QADDDIVMODR" + }, + "bytecode": { + "doc_opcode": "B7A901", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QADDDIVMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QADDDIVMODC" + }, + "bytecode": { + "doc_opcode": "B7A902", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QDIV", + "doc": { + "category": "arithm_quiet", + "description": "Division returns `NaN` if `y=0`.", + "gas": "34", + "fift": "QDIV" + }, + "bytecode": { + "doc_opcode": "B7A904", + "tlb": "#B7A904", + "prefix": "B7A904", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QDIVR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QDIVR" + }, + "bytecode": { + "doc_opcode": "B7A905", + "tlb": "#B7A905", + "prefix": "B7A905", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q\u0432\u0402\u2122", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QDIVC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QDIVC" + }, + "bytecode": { + "doc_opcode": "B7A906", + "tlb": "#B7A906", + "prefix": "B7A906", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMOD" + }, + "bytecode": { + "doc_opcode": "B7A908", + "tlb": "#B7A908", + "prefix": "B7A908", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - r", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMODR" + }, + "bytecode": { + "doc_opcode": "B7A909", + "tlb": "#B7A909", + "prefix": "B7A909", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - r", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMODC" + }, + "bytecode": { + "doc_opcode": "B7A90A", + "tlb": "#B7A90A", + "prefix": "B7A90A", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - r", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QDIVMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QDIVMOD" + }, + "bytecode": { + "doc_opcode": "B7A90C", + "tlb": "#B7A90C", + "prefix": "B7A90C", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q r", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QDIVMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QDIVMODR" + }, + "bytecode": { + "doc_opcode": "B7A90D", + "tlb": "#B7A90D", + "prefix": "B7A90D", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q' r'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QDIVMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QDIVMODC" + }, + "bytecode": { + "doc_opcode": "B7A90E", + "tlb": "#B7A90E", + "prefix": "B7A90E", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q'' r''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QADDRSHIFTMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QADDRSHIFTMOD" + }, + "bytecode": { + "doc_opcode": "B7A920", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QADDRSHIFTMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QADDRSHIFTMODR" + }, + "bytecode": { + "doc_opcode": "B7A921", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QADDRSHIFTMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QADDRSHIFTMODC" + }, + "bytecode": { + "doc_opcode": "B7A922", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QRSHIFTR_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QRSHIFTR" + }, + "bytecode": { + "doc_opcode": "B7A925", + "tlb": "#B7A925", + "prefix": "B7A925", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - round(x/2^y)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QRSHIFTC_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QRSHIFTC" + }, + "bytecode": { + "doc_opcode": "B7A926", + "tlb": "#B7A926", + "prefix": "B7A926", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - ceil(x/2^y)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMODPOW2_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMODPOW2" + }, + "bytecode": { + "doc_opcode": "B7A928", + "tlb": "#B7A928", + "prefix": "B7A928", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x mod 2^y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMODPOW2R_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMODPOW2R" + }, + "bytecode": { + "doc_opcode": "B7A929", + "tlb": "#B7A929", + "prefix": "B7A929", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x mod 2^y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMODPOW2C_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMODPOW2C" + }, + "bytecode": { + "doc_opcode": "B7A92A", + "tlb": "#B7A92A", + "prefix": "B7A92A", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x mod 2^y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QRSHIFTMOD_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QRSHIFTMOD" + }, + "bytecode": { + "doc_opcode": "B7A92C", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QRSHIFTMODR_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QRSHIFTMODR" + }, + "bytecode": { + "doc_opcode": "B7A92D", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QRSHIFTMODC_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QRSHIFTMODC" + }, + "bytecode": { + "doc_opcode": "B7A92E", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QADDRSHIFTMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QADDRSHIFT#MOD" + }, + "bytecode": { + "doc_opcode": "B7A930tt", + "tlb": "#B7A930 tt:uint8", + "prefix": "B7A930", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QADDRSHIFTRMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QADDRSHIFTR#MOD" + }, + "bytecode": { + "doc_opcode": "B7A931tt", + "tlb": "#B7A931 tt:uint8", + "prefix": "B7A931", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QADDRSHIFTCMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QADDRSHIFTC#MOD" + }, + "bytecode": { + "doc_opcode": "B7A932tt", + "tlb": "#B7A932 tt:uint8", + "prefix": "B7A932", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QRSHIFTR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QRSHIFTR#" + }, + "bytecode": { + "doc_opcode": "B7A935tt", + "tlb": "#B7A935 tt:uint8", + "prefix": "B7A935", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - round(x/2^(tt+1))", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QRSHIFTC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QRSHIFTC#" + }, + "bytecode": { + "doc_opcode": "B7A936tt", + "tlb": "#B7A936 tt:uint8", + "prefix": "B7A936", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - ceil(x/2^(tt+1))", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMODPOW2", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMODPOW2#" + }, + "bytecode": { + "doc_opcode": "B7A938tt", + "tlb": "#B7A938 tt:uint8", + "prefix": "B7A938", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x mod 2^(tt+1)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMODPOW2R", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMODPOW2R#" + }, + "bytecode": { + "doc_opcode": "B7A939tt", + "tlb": "#B7A939 tt:uint8", + "prefix": "B7A939", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x mod 2^(tt+1)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMODPOW2C", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMODPOW2C#" + }, + "bytecode": { + "doc_opcode": "B7A93Att", + "tlb": "#B7A93A tt:uint8", + "prefix": "B7A93A", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x mod 2^(tt+1)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QRSHIFTMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QRSHIFT#MOD" + }, + "bytecode": { + "doc_opcode": "A93Ctt", + "tlb": "#A93C tt:uint8", + "prefix": "A93C", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QRSHIFTRMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QRSHIFTR#MOD" + }, + "bytecode": { + "doc_opcode": "A93Dtt", + "tlb": "#A93D tt:uint8", + "prefix": "A93D", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QRSHIFTCMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QRSHIFTC#MOD" + }, + "bytecode": { + "doc_opcode": "B7A93Ett", + "tlb": "#B7A93E tt:uint8", + "prefix": "B7A93E", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULADDDIVMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULADDDIVMOD" + }, + "bytecode": { + "doc_opcode": "B7A980", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULADDDIVMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULADDDIVMODR" + }, + "bytecode": { + "doc_opcode": "B7A981", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULADDDIVMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULADDDIVMODC" + }, + "bytecode": { + "doc_opcode": "B7A982", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULDIV", + "doc": { + "category": "arithm_quiet", + "description": "`q=floor(x*y/z)`", + "gas": "34", + "fift": "QMULDIV" + }, + "bytecode": { + "doc_opcode": "B7A984", + "tlb": "#B7A984", + "prefix": "B7A984", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULDIVR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULDIVR" + }, + "bytecode": { + "doc_opcode": "B7A985", + "tlb": "#B7A985", + "prefix": "B7A985", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULDIVC", + "doc": { + "category": "arithm_quiet", + "description": "`q'=ceil(x*y/z)`", + "gas": "34", + "fift": "QMULDIVC" + }, + "bytecode": { + "doc_opcode": "B7A986", + "tlb": "#B7A986", + "prefix": "B7A986", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULMOD" + }, + "bytecode": { + "doc_opcode": "B7A988", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULMODR" + }, + "bytecode": { + "doc_opcode": "B7A989", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULMODC" + }, + "bytecode": { + "doc_opcode": "B7A98A", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULDIVMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULDIVMOD" + }, + "bytecode": { + "doc_opcode": "B7A98C", + "tlb": "#B7A98C", + "prefix": "B7A98C", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q r", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULDIVMODR", + "doc": { + "category": "arithm_quiet", + "description": "`q=round(x*y/z)`, `r=x*y-z*q`", + "gas": "34", + "fift": "QMULDIVMODR" + }, + "bytecode": { + "doc_opcode": "B7A98D", + "tlb": "#B7A98D", + "prefix": "B7A98D", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q r", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULDIVMODC", + "doc": { + "category": "arithm_quiet", + "description": "`q=ceil(x*y/z)`, `r=x*y-z*q`", + "gas": "34", + "fift": "QMULDIVMODC" + }, + "bytecode": { + "doc_opcode": "B7A98E", + "tlb": "#B7A98E", + "prefix": "B7A98E", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q r", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULADDRSHIFTMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULADDRSHIFTMOD" + }, + "bytecode": { + "doc_opcode": "B7A9A0", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULADDRSHIFTRMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULADDRSHIFTRMOD" + }, + "bytecode": { + "doc_opcode": "B7A9A1", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULADDRSHIFTCMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULADDRSHIFTCMOD" + }, + "bytecode": { + "doc_opcode": "B7A9A2", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "q", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULRSHIFT_VAR", + "doc": { + "category": "arithm_quiet", + "description": "`0 <= z <= 256`", + "gas": "34", + "fift": "QMULRSHIFT" + }, + "bytecode": { + "doc_opcode": "B7A9A4", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULRSHIFTR_VAR", + "doc": { + "category": "arithm_quiet", + "description": "`0 <= z <= 256`", + "gas": "34", + "fift": "QMULRSHIFTR" + }, + "bytecode": { + "doc_opcode": "B7A9A5", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULRSHIFTC_VAR", + "doc": { + "category": "arithm_quiet", + "description": "`0 <= z <= 256`", + "gas": "34", + "fift": "QMULRSHIFTC" + }, + "bytecode": { + "doc_opcode": "B7A9A6", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULMODPOW2_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULMODPOW2_VAR" + }, + "bytecode": { + "doc_opcode": "B7A9A8", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULMODPOW2R_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULMODPOW2R_VAR" + }, + "bytecode": { + "doc_opcode": "B7A9A9", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULMODPOW2C_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULMODPOW2C_VAR" + }, + "bytecode": { + "doc_opcode": "B7A9AA", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULRSHIFTMOD_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULRSHIFTMOD_VAR" + }, + "bytecode": { + "doc_opcode": "B7A9AC", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULRSHIFTRMOD_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULRSHIFTRMOD_VAR" + }, + "bytecode": { + "doc_opcode": "B7A9AD", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULRSHIFTCMOD_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULRSHIFTCMOD_VAR" + }, + "bytecode": { + "doc_opcode": "B7A9AE", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULADDRSHIFTMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULADDRSHIFT#MOD" + }, + "bytecode": { + "doc_opcode": "B7A9B0tt", + "tlb": "#B7A9B0 tt:uint8", + "prefix": "B7A9B0", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULADDRSHIFTRMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULADDRSHIFTR#MOD" + }, + "bytecode": { + "doc_opcode": "B7A9B1tt", + "tlb": "#B7A9B1 tt:uint8", + "prefix": "B7A9B1", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULADDRSHIFTCMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULADDRSHIFTC#MOD" + }, + "bytecode": { + "doc_opcode": "B7A9B2tt", + "tlb": "#B7A9B2 tt:uint8", + "prefix": "B7A9B2", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULRSHIFT", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULRSHIFT#" + }, + "bytecode": { + "doc_opcode": "B7A9B4tt", + "tlb": "#B7A9B4 tt:uint8", + "prefix": "B7A9B4", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - floor(x*y/2^(tt+1))", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULRSHIFTR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULRSHIFTR#" + }, + "bytecode": { + "doc_opcode": "B7A9B5tt", + "tlb": "#B7A9B5 tt:uint8", + "prefix": "B7A9B5", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - round(x*y/2^(tt+1))", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULRSHIFTC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULRSHIFTC#" + }, + "bytecode": { + "doc_opcode": "B7A9B6tt", + "tlb": "#B7A9B6 tt:uint8", + "prefix": "B7A9B6", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - ceil(x*y/2^(tt+1))", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULMODPOW2", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULMODPOW2#" + }, + "bytecode": { + "doc_opcode": "B7A9B8tt", + "tlb": "#B7A9B8 tt:uint8", + "prefix": "B7A9B8", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - x*y mod 2^(tt+1)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULMODPOW2R", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULMODPOW2R#" + }, + "bytecode": { + "doc_opcode": "B7A9B9tt", + "tlb": "#B7A9B9 tt:uint8", + "prefix": "B7A9B9", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - x*y mod 2^(tt+1)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULMODPOW2C", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULMODPOW2C#" + }, + "bytecode": { + "doc_opcode": "B7A9BAtt", + "tlb": "#B7A9BA tt:uint8", + "prefix": "B7A9BA", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - x*y mod 2^(tt+1)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULRSHIFTMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "QMULRSHIFT#MOD" + }, + "bytecode": { + "doc_opcode": "B7A9BC", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULRSHIFTRMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "QMULRSHIFTR#MOD" + }, + "bytecode": { + "doc_opcode": "B7A9BD", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QMULRSHIFTCMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "QMULRSHIFTC#MOD" + }, + "bytecode": { + "doc_opcode": "B7A9BE", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTADDDIVMOD_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTADDDIVMOD" + }, + "bytecode": { + "doc_opcode": "B7A9C0", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTADDDIVMODR_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTADDDIVMODR" + }, + "bytecode": { + "doc_opcode": "B7A9C1", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTADDDIVMODC_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTADDDIVMODC" + }, + "bytecode": { + "doc_opcode": "B7A9C2", + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTDIV_VAR", + "doc": { + "category": "arithm_quiet", + "description": "`0 <= z <= 256`", + "gas": "34", + "fift": "QLSHIFTDIV" + }, + "bytecode": { + "doc_opcode": "B7A9C4", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTDIVR_VAR", + "doc": { + "category": "arithm_quiet", + "description": "`0 <= z <= 256`", + "gas": "34", + "fift": "QLSHIFTDIVR" + }, + "bytecode": { + "doc_opcode": "B7A9C5", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTDIVC_VAR", + "doc": { + "category": "arithm_quiet", + "description": "`0 <= z <= 256`", + "gas": "34", + "fift": "QLSHIFTDIVC" + }, + "bytecode": { + "doc_opcode": "B7A9C6", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTMOD_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTMOD" + }, + "bytecode": { + "doc_opcode": "B7A9C8", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTMODR_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTMODR" + }, + "bytecode": { + "doc_opcode": "B7A9C9", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTMODC_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTMODC" + }, + "bytecode": { + "doc_opcode": "B7A9CA", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTDIVMOD_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTDIVMOD" + }, + "bytecode": { + "doc_opcode": "B7A9CC", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTDIVMODR_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTDIVMODR" + }, + "bytecode": { + "doc_opcode": "B7A9CD", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTDIVMODC_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTDIVMODC" + }, + "bytecode": { + "doc_opcode": "B7A9CE", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTADDDIVMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#ADDDIVMOD" + }, + "bytecode": { + "doc_opcode": "B7A9D0tt", + "tlb": "#B7A9D0 tt:uint8", + "prefix": "B7A9D0", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTADDDIVMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#ADDDIVMODR" + }, + "bytecode": { + "doc_opcode": "B7A9D1tt", + "tlb": "#B7A9D1 tt:uint8", + "prefix": "B7A9D1", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTADDDIVMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#ADDDIVMODC" + }, + "bytecode": { + "doc_opcode": "B7A9D2tt", + "tlb": "#B7A9D2 tt:uint8", + "prefix": "B7A9D2", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "w", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTDIV", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#DIV" + }, + "bytecode": { + "doc_opcode": "B7A9D4tt", + "tlb": "#B7A9D4 tt:uint8", + "prefix": "B7A9D4", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - floor(2^(tt+1)*x/y)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTDIVR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#DIVR" + }, + "bytecode": { + "doc_opcode": "B7A9D5tt", + "tlb": "#B7A9D5 tt:uint8", + "prefix": "B7A9D5", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - round(2^(tt+1)*x/y)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTDIVC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "[tt+1] QLSHIFT#DIVC" + }, + "bytecode": { + "doc_opcode": "B7A9D6tt", + "tlb": "#B7A9D6 tt:uint8", + "prefix": "B7A9D6", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - ceil(2^(tt+1)*x/y)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#MOD" + }, + "bytecode": { + "doc_opcode": "B7A9D8tt", + "tlb": "#B7A9D8 tt:uint8", + "prefix": "B7A9D8", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - 2^(tt+1)*x mod y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] LSHIFT#MODR" + }, + "bytecode": { + "doc_opcode": "B7A9D9tt", + "tlb": "#B7A9D9 tt:uint8", + "prefix": "B7A9D9", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - 2^(tt+1)*x mod y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#MODC" + }, + "bytecode": { + "doc_opcode": "B7A9DAtt", + "tlb": "#B7A9DA tt:uint8", + "prefix": "B7A9DA", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x y - 2^(tt+1)*x mod y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTDIVMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#DIVMOD" + }, + "bytecode": { + "doc_opcode": "B7A9DCtt", + "tlb": "#B7A9DC tt:uint8", + "prefix": "B7A9DC", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTDIVMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#DIVMODR" + }, + "bytecode": { + "doc_opcode": "B7A9DDtt", + "tlb": "#B7A9DD tt:uint8", + "prefix": "B7A9DD", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFTDIVMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#DIVMODC" + }, + "bytecode": { + "doc_opcode": "B7A9DEtt", + "tlb": "#B7A9DE tt:uint8", + "prefix": "B7A9DE", + "operands": [ + { + "name": "t", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFT", + "doc": { + "category": "arithm_quiet", + "description": "`0 <= cc <= 255`", + "gas": "34", + "fift": "[cc+1] QLSHIFT#" + }, + "bytecode": { + "doc_opcode": "B7AAcc", + "tlb": "#B7AA cc:uint8", + "prefix": "B7AA", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x*2^(cc+1)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QRSHIFT", + "doc": { + "category": "arithm_quiet", + "description": "`0 <= cc <= 255`", + "gas": "26", + "fift": "[cc+1] RSHIFT#" + }, + "bytecode": { + "doc_opcode": "B7ABcc", + "tlb": "#B7AB cc:uint8", + "prefix": "B7AB", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - floor(x/2^(cc+1))", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QLSHIFT_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QLSHIFT" + }, + "bytecode": { + "doc_opcode": "B7AC", + "tlb": "#B7AC", + "prefix": "B7AC", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x*2^y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QRSHIFT_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QRSHIFT" + }, + "bytecode": { + "doc_opcode": "B7AD", + "tlb": "#B7AD", + "prefix": "B7AD", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - floor(x/2^y)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QPOW2", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QPOW2" + }, + "bytecode": { + "doc_opcode": "B7AE", + "tlb": "#B7AE", + "prefix": "B7AE", + "operands": [] + }, + "value_flow": { + "doc_stack": "y - 2^y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QAND", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QAND" + }, + "bytecode": { + "doc_opcode": "B7B0", + "tlb": "#B7B0", + "prefix": "B7B0", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x&y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QOR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QOR" + }, + "bytecode": { + "doc_opcode": "B7B1", + "tlb": "#B7B1", + "prefix": "B7B1", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x|y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QXOR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QXOR" + }, + "bytecode": { + "doc_opcode": "B7B2", + "tlb": "#B7B2", + "prefix": "B7B2", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x xor y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QNOT", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QNOT" + }, + "bytecode": { + "doc_opcode": "B7B3", + "tlb": "#B7B3", + "prefix": "B7B3", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - ~x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QFITS", + "doc": { + "category": "arithm_quiet", + "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" + }, + "bytecode": { + "doc_opcode": "B7B4cc", + "tlb": "#B7B4 cc:uint8", + "prefix": "B7B4", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QUFITS", + "doc": { + "category": "arithm_quiet", + "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" + }, + "bytecode": { + "doc_opcode": "B7B5cc", + "tlb": "#B7B5 cc:uint8", + "prefix": "B7B5", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QFITSX", + "doc": { + "category": "arithm_quiet", + "description": "Replaces `x` with a `NaN` if x is not a c-bit signed integer, leaves it intact otherwise.", + "gas": "34", + "fift": "QFITSX" + }, + "bytecode": { + "doc_opcode": "B7B600", + "tlb": "#B7B600", + "prefix": "B7B600", + "operands": [] + }, + "value_flow": { + "doc_stack": "x c - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "QUFITSX", + "doc": { + "category": "arithm_quiet", + "description": "Replaces `x` with a `NaN` if x is not a c-bit unsigned integer, leaves it intact otherwise.", + "gas": "34", + "fift": "QUFITSX" + }, + "bytecode": { + "doc_opcode": "B7B601", + "tlb": "#B7B601", + "prefix": "B7B601", + "operands": [] + }, + "value_flow": { + "doc_stack": "x c - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SGN", + "doc": { + "category": "compare_int", + "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" + }, + "bytecode": { + "doc_opcode": "B8", + "tlb": "#B8", + "prefix": "B8", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - sgn(x)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LESS", + "doc": { + "category": "compare_int", + "description": "Returns `-1` if `xy", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "NEQ", + "doc": { + "category": "compare_int", + "description": "Equivalent to `EQUAL` `NOT`.", + "gas": "18", + "fift": "NEQ" + }, + "bytecode": { + "doc_opcode": "BD", + "tlb": "#BD", + "prefix": "BD", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x!=y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "GEQ", + "doc": { + "category": "compare_int", + "description": "Equivalent to `LESS` `NOT`.", + "gas": "18", + "fift": "GEQ" + }, + "bytecode": { + "doc_opcode": "BE", + "tlb": "#BE", + "prefix": "BE", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x>=y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "CMP", + "doc": { + "category": "compare_int", + "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" + }, + "bytecode": { + "doc_opcode": "BF", + "tlb": "#BF", + "prefix": "BF", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - sgn(x-y)", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "EQINT", + "doc": { + "category": "compare_int", + "description": "Returns `-1` if `x=yy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", + "gas": "26", + "fift": "[yy] EQINT" + }, + "bytecode": { + "doc_opcode": "C0yy", + "tlb": "#C0 yy:int8", + "prefix": "C0", + "operands": [ + { + "name": "y", + "loader": "int", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x=yy", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LESSINT", + "doc": { + "category": "compare_int", + "description": "Returns `-1` if `xyy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", + "gas": "26", + "fift": "[yy] GTINT\n[yy+1] GEQINT" + }, + "bytecode": { + "doc_opcode": "C2yy", + "tlb": "#C2 yy:int8", + "prefix": "C2", + "operands": [ + { + "name": "y", + "loader": "int", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x>yy", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "NEQINT", + "doc": { + "category": "compare_int", + "description": "Returns `-1` if `x!=yy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", + "gas": "26", + "fift": "[yy] NEQINT" + }, + "bytecode": { + "doc_opcode": "C3yy", + "tlb": "#C3 yy:int8", + "prefix": "C3", + "operands": [ + { + "name": "y", + "loader": "int", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x!=yy", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "ISNAN", + "doc": { + "category": "compare_int", + "description": "Checks whether `x` is a `NaN`.", + "gas": "18", + "fift": "ISNAN" + }, + "bytecode": { + "doc_opcode": "C4", + "tlb": "#C4", + "prefix": "C4", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - x=NaN", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "CHKNAN", + "doc": { + "category": "compare_int", + "description": "Throws an arithmetic overflow exception if `x` is a `NaN`.", + "gas": "18/68", + "fift": "CHKNAN" + }, + "bytecode": { + "doc_opcode": "C5", + "tlb": "#C5", + "prefix": "C5", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SEMPTY", + "doc": { + "category": "compare_other", + "description": "Checks whether a _Slice_ `s` is empty (i.e., contains no bits of data and no cell references).", + "gas": "26", + "fift": "SEMPTY" + }, + "bytecode": { + "doc_opcode": "C700", + "tlb": "#C700", + "prefix": "C700", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDEMPTY", + "doc": { + "category": "compare_other", + "description": "Checks whether _Slice_ `s` has no bits of data.", + "gas": "26", + "fift": "SDEMPTY" + }, + "bytecode": { + "doc_opcode": "C701", + "tlb": "#C701", + "prefix": "C701", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SREMPTY", + "doc": { + "category": "compare_other", + "description": "Checks whether _Slice_ `s` has no references.", + "gas": "26", + "fift": "SREMPTY" + }, + "bytecode": { + "doc_opcode": "C702", + "tlb": "#C702", + "prefix": "C702", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDFIRST", + "doc": { + "category": "compare_other", + "description": "Checks whether the first bit of _Slice_ `s` is a one.", + "gas": "26", + "fift": "SDFIRST" + }, + "bytecode": { + "doc_opcode": "C703", + "tlb": "#C703", + "prefix": "C703", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDLEXCMP", + "doc": { + "category": "compare_other", + "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" + }, + "bytecode": { + "doc_opcode": "C704", + "tlb": "#C704", + "prefix": "C704", + "operands": [] + }, + "value_flow": { + "doc_stack": "s s' - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDEQ", + "doc": { + "category": "compare_other", + "description": "Checks whether the data parts of `s` and `s'` coincide, equivalent to `SDLEXCMP` `ISZERO`.", + "gas": "26", + "fift": "SDEQ" + }, + "bytecode": { + "doc_opcode": "C705", + "tlb": "#C705", + "prefix": "C705", + "operands": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDPFX", + "doc": { + "category": "compare_other", + "description": "Checks whether `s` is a prefix of `s'`.", + "gas": "26", + "fift": "SDPFX" + }, + "bytecode": { + "doc_opcode": "C708", + "tlb": "#C708", + "prefix": "C708", + "operands": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDPFXREV", + "doc": { + "category": "compare_other", + "description": "Checks whether `s'` is a prefix of `s`, equivalent to `SWAP` `SDPFX`.", + "gas": "26", + "fift": "SDPFXREV" + }, + "bytecode": { + "doc_opcode": "C709", + "tlb": "#C709", + "prefix": "C709", + "operands": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDPPFX", + "doc": { + "category": "compare_other", + "description": "Checks whether `s` is a proper prefix of `s'` (i.e., a prefix distinct from `s'`).", + "gas": "26", + "fift": "SDPPFX" + }, + "bytecode": { + "doc_opcode": "C70A", + "tlb": "#C70A", + "prefix": "C70A", + "operands": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDPPFXREV", + "doc": { + "category": "compare_other", + "description": "Checks whether `s'` is a proper prefix of `s`.", + "gas": "26", + "fift": "SDPPFXREV" + }, + "bytecode": { + "doc_opcode": "C70B", + "tlb": "#C70B", + "prefix": "C70B", + "operands": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SDSFX", + "doc": { + "category": "compare_other", + "description": "Checks whether `s` is a suffix of `s'`.", + "gas": "26", + "fift": "SDSFX" + }, + "bytecode": { + "doc_opcode": "C70C", + "tlb": "#C70C", + "prefix": "C70C", + "operands": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDSFXREV", + "doc": { + "category": "compare_other", + "description": "Checks whether `s'` is a suffix of `s`.", + "gas": "26", + "fift": "SDSFXREV" + }, + "bytecode": { + "doc_opcode": "C70D", + "tlb": "#C70D", + "prefix": "C70D", + "operands": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDPSFX", + "doc": { + "category": "compare_other", + "description": "Checks whether `s` is a proper suffix of `s'`.", + "gas": "26", + "fift": "SDPSFX" + }, + "bytecode": { + "doc_opcode": "C70E", + "tlb": "#C70E", + "prefix": "C70E", + "operands": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDPSFXREV", + "doc": { + "category": "compare_other", + "description": "Checks whether `s'` is a proper suffix of `s`.", + "gas": "26", + "fift": "SDPSFXREV" + }, + "bytecode": { + "doc_opcode": "C70F", + "tlb": "#C70F", + "prefix": "C70F", + "operands": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDCNTLEAD0", + "doc": { + "category": "compare_other", + "description": "Returns the number of leading zeroes in `s`.", + "gas": "26", + "fift": "SDCNTLEAD0" + }, + "bytecode": { + "doc_opcode": "C710", + "tlb": "#C710", + "prefix": "C710", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - n", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDCNTLEAD1", + "doc": { + "category": "compare_other", + "description": "Returns the number of leading ones in `s`.", + "gas": "26", + "fift": "SDCNTLEAD1" + }, + "bytecode": { + "doc_opcode": "C711", + "tlb": "#C711", + "prefix": "C711", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - n", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDCNTTRAIL0", + "doc": { + "category": "compare_other", + "description": "Returns the number of trailing zeroes in `s`.", + "gas": "26", + "fift": "SDCNTTRAIL0" + }, + "bytecode": { + "doc_opcode": "C712", + "tlb": "#C712", + "prefix": "C712", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - n", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDCNTTRAIL1", + "doc": { + "category": "compare_other", + "description": "Returns the number of trailing ones in `s`.", + "gas": "26", + "fift": "SDCNTTRAIL1" + }, + "bytecode": { + "doc_opcode": "C713", + "tlb": "#C713", + "prefix": "C713", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - n", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "NEWC", + "doc": { + "category": "cell_build", + "description": "Creates a new empty _Builder_.", + "gas": "18", + "fift": "NEWC" + }, + "bytecode": { + "doc_opcode": "C8", + "tlb": "#C8", + "prefix": "C8", + "operands": [] + }, + "value_flow": { + "doc_stack": "- b", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "ENDC", + "doc": { + "category": "cell_build", + "description": "Converts a _Builder_ into an ordinary _Cell_.", + "gas": "518", + "fift": "ENDC" + }, + "bytecode": { + "doc_opcode": "C9", + "tlb": "#C9", + "prefix": "C9", + "operands": [] + }, + "value_flow": { + "doc_stack": "b - c", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + } + } + }, + { + "mnemonic": "STI", + "doc": { + "category": "cell_build", + "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" + }, + "bytecode": { + "doc_opcode": "CAcc", + "tlb": "#CA cc:uint8", + "prefix": "CA", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x b - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STU", + "doc": { + "category": "cell_build", + "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" + }, + "bytecode": { + "doc_opcode": "CBcc", + "tlb": "#CB cc:uint8", + "prefix": "CB", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x b - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STREF", + "doc": { + "category": "cell_build", + "description": "Stores a reference to _Cell_ `c` into _Builder_ `b`.", + "gas": "18", + "fift": "STREF" + }, + "bytecode": { + "doc_opcode": "CC", + "tlb": "#CC", + "prefix": "CC", + "operands": [] + }, + "value_flow": { + "doc_stack": "c b - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STBREFR", + "doc": { + "category": "cell_build", + "description": "Equivalent to `ENDC` `SWAP` `STREF`.", + "gas": "518", + "fift": "STBREFR\nENDCST" + }, + "bytecode": { + "doc_opcode": "CD", + "tlb": "#CD", + "prefix": "CD", + "operands": [] + }, + "value_flow": { + "doc_stack": "b b'' - b", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "child", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STSLICE", + "doc": { + "category": "cell_build", + "description": "Stores _Slice_ `s` into _Builder_ `b`.", + "gas": "18", + "fift": "STSLICE" + }, + "bytecode": { + "doc_opcode": "CE", + "tlb": "#CE", + "prefix": "CE", + "operands": [] + }, + "value_flow": { + "doc_stack": "s b - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STIX", + "doc": { + "category": "cell_build", + "description": "Stores a signed `l`-bit integer `x` into `b` for `0 <= l <= 257`.", + "gas": "26", + "fift": "STIX" + }, + "bytecode": { + "doc_opcode": "CF00", + "tlb": "#CF00", + "prefix": "CF00", + "operands": [] + }, + "value_flow": { + "doc_stack": "x b l - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STUX", + "doc": { + "category": "cell_build", + "description": "Stores an unsigned `l`-bit integer `x` into `b` for `0 <= l <= 256`.", + "gas": "26", + "fift": "STUX" + }, + "bytecode": { + "doc_opcode": "CF01", + "tlb": "#CF01", + "prefix": "CF01", + "operands": [] + }, + "value_flow": { + "doc_stack": "x b l - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STIXR", + "doc": { + "category": "cell_build", + "description": "Similar to `STIX`, but with arguments in a different order.", + "gas": "26", + "fift": "STIXR" + }, + "bytecode": { + "doc_opcode": "CF02", + "tlb": "#CF02", + "prefix": "CF02", + "operands": [] + }, + "value_flow": { + "doc_stack": "b x l - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STUXR", + "doc": { + "category": "cell_build", + "description": "Similar to `STUX`, but with arguments in a different order.", + "gas": "26", + "fift": "STUXR" + }, + "bytecode": { + "doc_opcode": "CF03", + "tlb": "#CF03", + "prefix": "CF03", + "operands": [] + }, + "value_flow": { + "doc_stack": "b x l - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STIXQ", + "doc": { + "category": "cell_build", + "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" + }, + "bytecode": { + "doc_opcode": "CF04", + "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"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIREMMINREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTIREMMIN`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTIREMMINREF" - }, - "bytecode": { - "doc_opcode": "F495", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] + { + "value": 1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "STUXQ", + "doc": { + "category": "cell_build", + "description": "A quiet version of `STUX`.", + "gas": "26", + "fift": "STUXQ" + }, + "bytecode": { + "doc_opcode": "CF05", + "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"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUREMMIN", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTREMMIN`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", - "gas": "", - "fift": "DICTUREMMIN" - }, - "bytecode": { - "doc_opcode": "F496", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] + { + "value": 1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "STIXRQ", + "doc": { + "category": "cell_build", + "description": "A quiet version of `STIXR`.", + "gas": "26", + "fift": "STIXRQ" + }, + "bytecode": { + "doc_opcode": "CF06", + "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"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUREMMINREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTUREMMIN`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTUREMMINREF" - }, - "bytecode": { - "doc_opcode": "F497", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] + { + "value": 1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "STUXRQ", + "doc": { + "category": "cell_build", + "description": "A quiet version of `STUXR`.", + "gas": "26", + "fift": "STUXRQ" + }, + "bytecode": { + "doc_opcode": "CF07", + "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"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTREMMAX", - "doc": { - "category": "dict_min", - "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" - }, - "bytecode": { - "doc_opcode": "F49A", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] + { + "value": 1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "STI_ALT", + "doc": { + "category": "cell_build", + "description": "A longer version of `[cc+1] STI`.", + "gas": "34", + "fift": "[cc+1] STI_l" + }, + "bytecode": { + "doc_opcode": "CF08cc", + "tlb": "#CF08 cc:uint8", + "prefix": "CF08", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x b - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STU_ALT", + "doc": { + "category": "cell_build", + "description": "A longer version of `[cc+1] STU`.", + "gas": "34", + "fift": "[cc+1] STU_l" + }, + "bytecode": { + "doc_opcode": "CF09cc", + "tlb": "#CF09 cc:uint8", + "prefix": "CF09", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x b - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STIR", + "doc": { + "category": "cell_build", + "description": "Equivalent to `SWAP` `[cc+1] STI`.", + "gas": "34", + "fift": "[cc+1] STIR" + }, + "bytecode": { + "doc_opcode": "CF0Acc", + "tlb": "#CF0A cc:uint8", + "prefix": "CF0A", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "b x - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STUR", + "doc": { + "category": "cell_build", + "description": "Equivalent to `SWAP` `[cc+1] STU`.", + "gas": "34", + "fift": "[cc+1] STUR" + }, + "bytecode": { + "doc_opcode": "CF0Bcc", + "tlb": "#CF0B cc:uint8", + "prefix": "CF0B", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "b x - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STIQ", + "doc": { + "category": "cell_build", + "description": "A quiet version of `STI`.", + "gas": "34", + "fift": "[cc+1] STIQ" + }, + "bytecode": { + "doc_opcode": "CF0Ccc", + "tlb": "#CF0C cc:uint8", + "prefix": "CF0C", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x b - x b f or b' 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTREMMAXREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTREMMAX`, but returns the only reference in the value as a _Cell_ `c`.", - "gas": "", - "fift": "DICTREMMAXREF" - }, - "bytecode": { - "doc_opcode": "F49B", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] + { + "value": 1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "STUQ", + "doc": { + "category": "cell_build", + "description": "A quiet version of `STU`.", + "gas": "34", + "fift": "[cc+1] STUQ" + }, + "bytecode": { + "doc_opcode": "CF0Dcc", + "tlb": "#CF0D cc:uint8", + "prefix": "CF0D", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "x b - x b f or b' 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIREMMAX", - "doc": { - "category": "dict_min", - "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" - }, - "bytecode": { - "doc_opcode": "F49C", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] + { + "value": 1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "STIRQ", + "doc": { + "category": "cell_build", + "description": "A quiet version of `STIR`.", + "gas": "34", + "fift": "[cc+1] STIRQ" + }, + "bytecode": { + "doc_opcode": "CF0Ecc", + "tlb": "#CF0E cc:uint8", + "prefix": "CF0E", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "b x - b x f or b' 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIREMMAXREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTIREMMAX`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTIREMMAXREF" - }, - "bytecode": { - "doc_opcode": "F49D", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] + { + "value": 1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "STURQ", + "doc": { + "category": "cell_build", + "description": "A quiet version of `STUR`.", + "gas": "34", + "fift": "[cc+1] STURQ" + }, + "bytecode": { + "doc_opcode": "CF0Fcc", + "tlb": "#CF0F cc:uint8", + "prefix": "CF0F", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "b x - b x f or b' 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUREMMAX", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTREMMAX`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", - "gas": "", - "fift": "DICTUREMMAX" - }, - "bytecode": { - "doc_opcode": "F49E", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] + { + "value": 1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "STREF_ALT", + "doc": { + "category": "cell_build", + "description": "A longer version of `STREF`.", + "gas": "26", + "fift": "STREF_l" + }, + "bytecode": { + "doc_opcode": "CF10", + "tlb": "#CF10", + "prefix": "CF10", + "operands": [] + }, + "value_flow": { + "doc_stack": "c b - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STBREF", + "doc": { + "category": "cell_build", + "description": "Equivalent to `SWAP` `STBREFR`.", + "gas": "526", + "fift": "STBREF" + }, + "bytecode": { + "doc_opcode": "CF11", + "tlb": "#CF11", + "prefix": "CF11", + "operands": [] + }, + "value_flow": { + "doc_stack": "b' b - b''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "child", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STSLICE_ALT", + "doc": { + "category": "cell_build", + "description": "A longer version of `STSLICE`.", + "gas": "26", + "fift": "STSLICE_l" + }, + "bytecode": { + "doc_opcode": "CF12", + "tlb": "#CF12", + "prefix": "CF12", + "operands": [] + }, + "value_flow": { + "doc_stack": "s b - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STB", + "doc": { + "category": "cell_build", + "description": "Appends all data from _Builder_ `b'` to _Builder_ `b`.", + "gas": "26", + "fift": "STB" + }, + "bytecode": { + "doc_opcode": "CF13", + "tlb": "#CF13", + "prefix": "CF13", + "operands": [] + }, + "value_flow": { + "doc_stack": "b' b - b''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b3", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STREFR", + "doc": { + "category": "cell_build", + "description": "Equivalent to `SWAP` `STREF`.", + "gas": "26", + "fift": "STREFR" + }, + "bytecode": { + "doc_opcode": "CF14", + "tlb": "#CF14", + "prefix": "CF14", + "operands": [] + }, + "value_flow": { + "doc_stack": "b c - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STBREFR_ALT", + "doc": { + "category": "cell_build", + "description": "A longer encoding of `STBREFR`.", + "gas": "526", + "fift": "STBREFR_l" + }, + "bytecode": { + "doc_opcode": "CF15", + "tlb": "#CF15", + "prefix": "CF15", + "operands": [] + }, + "value_flow": { + "doc_stack": "b b' - b''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b3", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STSLICER", + "doc": { + "category": "cell_build", + "description": "Equivalent to `SWAP` `STSLICE`.", + "gas": "26", + "fift": "STSLICER" + }, + "bytecode": { + "doc_opcode": "CF16", + "tlb": "#CF16", + "prefix": "CF16", + "operands": [] + }, + "value_flow": { + "doc_stack": "b s - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STBR", + "doc": { + "category": "cell_build", + "description": "Concatenates two builders.\nEquivalent to `SWAP` `STB`.", + "gas": "26", + "fift": "STBR\nBCONCAT" + }, + "bytecode": { + "doc_opcode": "CF17", + "tlb": "#CF17", + "prefix": "CF17", + "operands": [] + }, + "value_flow": { + "doc_stack": "b b' - b''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b3", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STREFQ", + "doc": { + "category": "cell_build", + "description": "Quiet version of `STREF`.", + "gas": "26", + "fift": "STREFQ" + }, + "bytecode": { + "doc_opcode": "CF18", + "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"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "STBREFQ", + "doc": { + "category": "cell_build", + "description": "Quiet version of `STBREF`.", + "gas": "526", + "fift": "STBREFQ" + }, + "bytecode": { + "doc_opcode": "CF19", + "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"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b3", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "STSLICEQ", + "doc": { + "category": "cell_build", + "description": "Quiet version of `STSLICE`.", + "gas": "26", + "fift": "STSLICEQ" + }, + "bytecode": { + "doc_opcode": "CF1A", + "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"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "STBQ", + "doc": { + "category": "cell_build", + "description": "Quiet version of `STB`.", + "gas": "26", + "fift": "STBQ" + }, + "bytecode": { + "doc_opcode": "CF1B", + "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"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b3", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "STREFRQ", + "doc": { + "category": "cell_build", + "description": "Quiet version of `STREFR`.", + "gas": "26", + "fift": "STREFRQ" + }, + "bytecode": { + "doc_opcode": "CF1C", + "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"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "STBREFRQ", + "doc": { + "category": "cell_build", + "description": "Quiet version of `STBREFR`.", + "gas": "526", + "fift": "STBREFRQ" + }, + "bytecode": { + "doc_opcode": "CF1D", + "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"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b3", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "STSLICERQ", + "doc": { + "category": "cell_build", + "description": "Quiet version of `STSLICER`.", + "gas": "26", + "fift": "STSLICERQ" + }, + "bytecode": { + "doc_opcode": "CF1E", + "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"] + }, + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b3", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "STBRQ", + "doc": { + "category": "cell_build", + "description": "Quiet version of `STBR`.", + "gas": "26", + "fift": "STBRQ\nBCONCATQ" + }, + "bytecode": { + "doc_opcode": "CF1F", + "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"] + }, + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b3", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "STREFCONST", + "doc": { + "category": "cell_build", + "description": "Equivalent to `PUSHREF` `STREFR`.", + "gas": "26", + "fift": "[ref] STREFCONST" + }, + "bytecode": { + "doc_opcode": "CF20", + "tlb": "#CF20 c:^Cell", + "prefix": "CF20", + "operands": [ + { + "name": "c", + "loader": "ref", + "loader_args": {} + } + ] + }, + "value_flow": { + "doc_stack": "b - b\u0432\u0402\u2122", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STREF2CONST", + "doc": { + "category": "cell_build", + "description": "Equivalent to `STREFCONST` `STREFCONST`.", + "gas": "26", + "fift": "[ref] [ref] STREF2CONST" + }, + "bytecode": { + "doc_opcode": "CF21", + "tlb": "#CF21 c1:^Cell c2:^Cell", + "prefix": "CF21", + "operands": [] + }, + "value_flow": { + "doc_stack": "b - b\u0432\u0402\u2122", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "ENDXC", + "doc": { + "category": "cell_build", + "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": "" + }, + "bytecode": { + "doc_opcode": "CF23", + "tlb": "#CF23", + "prefix": "CF23", + "operands": [] + }, + "value_flow": { + "doc_stack": "b x - c", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + } + } + }, + { + "mnemonic": "STILE4", + "doc": { + "category": "cell_build", + "description": "Stores a little-endian signed 32-bit integer.", + "gas": "26", + "fift": "STILE4" + }, + "bytecode": { + "doc_opcode": "CF28", + "tlb": "#CF28", + "prefix": "CF28", + "operands": [] + }, + "value_flow": { + "doc_stack": "x b - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STULE4", + "doc": { + "category": "cell_build", + "description": "Stores a little-endian unsigned 32-bit integer.", + "gas": "26", + "fift": "STULE4" + }, + "bytecode": { + "doc_opcode": "CF29", + "tlb": "#CF29", + "prefix": "CF29", + "operands": [] + }, + "value_flow": { + "doc_stack": "x b - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STILE8", + "doc": { + "category": "cell_build", + "description": "Stores a little-endian signed 64-bit integer.", + "gas": "26", + "fift": "STILE8" + }, + "bytecode": { + "doc_opcode": "CF2A", + "tlb": "#CF2A", + "prefix": "CF2A", + "operands": [] + }, + "value_flow": { + "doc_stack": "x b - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STULE8", + "doc": { + "category": "cell_build", + "description": "Stores a little-endian unsigned 64-bit integer.", + "gas": "26", + "fift": "STULE8" + }, + "bytecode": { + "doc_opcode": "CF2B", + "tlb": "#CF2B", + "prefix": "CF2B", + "operands": [] + }, + "value_flow": { + "doc_stack": "x b - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "BDEPTH", + "doc": { + "category": "cell_build", + "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" + }, + "bytecode": { + "doc_opcode": "CF30", + "tlb": "#CF30", + "prefix": "CF30", + "operands": [] + }, + "value_flow": { + "doc_stack": "b - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BBITS", + "doc": { + "category": "cell_build", + "description": "Returns the number of data bits already stored in _Builder_ `b`.", + "gas": "26", + "fift": "BBITS" + }, + "bytecode": { + "doc_opcode": "CF31", + "tlb": "#CF31", + "prefix": "CF31", + "operands": [] + }, + "value_flow": { + "doc_stack": "b - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BREFS", + "doc": { + "category": "cell_build", + "description": "Returns the number of cell references already stored in `b`.", + "gas": "26", + "fift": "BREFS" + }, + "bytecode": { + "doc_opcode": "CF32", + "tlb": "#CF32", + "prefix": "CF32", + "operands": [] + }, + "value_flow": { + "doc_stack": "b - y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BBITREFS", + "doc": { + "category": "cell_build", + "description": "Returns the numbers of both data bits and cell references in `b`.", + "gas": "26", + "fift": "BBITREFS" + }, + "bytecode": { + "doc_opcode": "CF33", + "tlb": "#CF33", + "prefix": "CF33", + "operands": [] + }, + "value_flow": { + "doc_stack": "b - x y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BREMBITS", + "doc": { + "category": "cell_build", + "description": "Returns the number of data bits that can still be stored in `b`.", + "gas": "26", + "fift": "BREMBITS" + }, + "bytecode": { + "doc_opcode": "CF35", + "tlb": "#CF35", + "prefix": "CF35", + "operands": [] + }, + "value_flow": { + "doc_stack": "b - x'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BREMREFS", + "doc": { + "category": "cell_build", + "description": "Returns the number of references that can still be stored in `b`.", + "gas": "26", + "fift": "BREMREFS" + }, + "bytecode": { + "doc_opcode": "CF36", + "tlb": "#CF36", + "prefix": "CF36", + "operands": [] + }, + "value_flow": { + "doc_stack": "b - y'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "y2", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BREMBITREFS", + "doc": { + "category": "cell_build", + "description": "Returns the numbers of both data bits and references that can still be stored in `b`.", + "gas": "26", + "fift": "BREMBITREFS" + }, + "bytecode": { + "doc_opcode": "CF37", + "tlb": "#CF37", + "prefix": "CF37", + "operands": [] + }, + "value_flow": { + "doc_stack": "b - x' y'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y2", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BCHKBITS", + "doc": { + "category": "cell_build", + "description": "Checks whether `cc+1` bits can be stored into `b`, where `0 <= cc <= 255`.", + "gas": "34/84", + "fift": "[cc+1] BCHKBITS#" + }, + "bytecode": { + "doc_opcode": "CF38cc", + "tlb": "#CF38 cc:uint8", + "prefix": "CF38", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "b -", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "BCHKBITS_VAR", + "doc": { + "category": "cell_build", + "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" + }, + "bytecode": { + "doc_opcode": "CF39", + "tlb": "#CF39", + "prefix": "CF39", + "operands": [] + }, + "value_flow": { + "doc_stack": "b x - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "BCHKREFS", + "doc": { + "category": "cell_build", + "description": "Checks whether `y` references can be stored into `b`, `0 <= y <= 7`.", + "gas": "26/76", + "fift": "BCHKREFS" + }, + "bytecode": { + "doc_opcode": "CF3A", + "tlb": "#CF3A", + "prefix": "CF3A", + "operands": [] + }, + "value_flow": { + "doc_stack": "b y - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "BCHKBITREFS", + "doc": { + "category": "cell_build", + "description": "Checks whether `x` bits and `y` references can be stored into `b`, `0 <= x <= 1023`, `0 <= y <= 7`.", + "gas": "26/76", + "fift": "BCHKBITREFS" + }, + "bytecode": { + "doc_opcode": "CF3B", + "tlb": "#CF3B", + "prefix": "CF3B", + "operands": [] + }, + "value_flow": { + "doc_stack": "b x y - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "BCHKBITSQ", + "doc": { + "category": "cell_build", + "description": "Checks whether `cc+1` bits can be stored into `b`, where `0 <= cc <= 255`.", + "gas": "34", + "fift": "[cc+1] BCHKBITSQ#" + }, + "bytecode": { + "doc_opcode": "CF3Ccc", + "tlb": "#CF3C cc:uint8", + "prefix": "CF3C", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "b - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BCHKBITSQ_VAR", + "doc": { + "category": "cell_build", + "description": "Checks whether `x` bits can be stored into `b`, `0 <= x <= 1023`.", + "gas": "26", + "fift": "BCHKBITSQ" + }, + "bytecode": { + "doc_opcode": "CF3D", + "tlb": "#CF3D", + "prefix": "CF3D", + "operands": [] + }, + "value_flow": { + "doc_stack": "b x - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BCHKREFSQ", + "doc": { + "category": "cell_build", + "description": "Checks whether `y` references can be stored into `b`, `0 <= y <= 7`.", + "gas": "26", + "fift": "BCHKREFSQ" + }, + "bytecode": { + "doc_opcode": "CF3E", + "tlb": "#CF3E", + "prefix": "CF3E", + "operands": [] + }, + "value_flow": { + "doc_stack": "b y - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BCHKBITREFSQ", + "doc": { + "category": "cell_build", + "description": "Checks whether `x` bits and `y` references can be stored into `b`, `0 <= x <= 1023`, `0 <= y <= 7`.", + "gas": "26", + "fift": "BCHKBITREFSQ" + }, + "bytecode": { + "doc_opcode": "CF3F", + "tlb": "#CF3F", + "prefix": "CF3F", + "operands": [] + }, + "value_flow": { + "doc_stack": "b x y - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "STZEROES", + "doc": { + "category": "cell_build", + "description": "Stores `n` binary zeroes into _Builder_ `b`.", + "gas": "26", + "fift": "STZEROES" + }, + "bytecode": { + "doc_opcode": "CF40", + "tlb": "#CF40", + "prefix": "CF40", + "operands": [] + }, + "value_flow": { + "doc_stack": "b n - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STONES", + "doc": { + "category": "cell_build", + "description": "Stores `n` binary ones into _Builder_ `b`.", + "gas": "26", + "fift": "STONES" + }, + "bytecode": { + "doc_opcode": "CF41", + "tlb": "#CF41", + "prefix": "CF41", + "operands": [] + }, + "value_flow": { + "doc_stack": "b n - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STSAME", + "doc": { + "category": "cell_build", + "description": "Stores `n` binary `x`es (`0 <= x <= 1`) into _Builder_ `b`.", + "gas": "26", + "fift": "STSAME" + }, + "bytecode": { + "doc_opcode": "CF42", + "tlb": "#CF42", + "prefix": "CF42", + "operands": [] + }, + "value_flow": { + "doc_stack": "b n x - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STSLICECONST", + "doc": { + "category": "cell_build", + "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" + }, + "bytecode": { + "doc_opcode": "CFC0_xysss", + "tlb": "#CFC0_ x:(## 2) y:(## 3) c:(x * ^Cell) sss:((8 * y + 2) * Bit)", + "prefix": "CFC0_", + "operands": [ + { + "name": "s", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 3, + "bits_padding": 2, + "refs_length_var_size": 2, + "completion_tag": true + } + } + ] + }, + "value_flow": { + "doc_stack": "b - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "CTOS", + "doc": { + "category": "cell_parse", + "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" + }, + "bytecode": { + "doc_opcode": "D0", + "tlb": "#D0", + "prefix": "D0", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - s", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "ENDS", + "doc": { + "category": "cell_parse", + "description": "Removes a _Slice_ `s` from the stack, and throws an exception if it is not empty.", + "gas": "18/68", + "fift": "ENDS" + }, + "bytecode": { + "doc_opcode": "D1", + "tlb": "#D1", + "prefix": "D1", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "LDI", + "doc": { + "category": "cell_parse", + "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" + }, + "bytecode": { + "doc_opcode": "D2cc", + "tlb": "#D2 cc:uint8", + "prefix": "D2", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDU", + "doc": { + "category": "cell_parse", + "description": "Loads an unsigned `cc+1`-bit integer `x` from _Slice_ `s`.", + "gas": "26", + "fift": "[cc+1] LDU" + }, + "bytecode": { + "doc_opcode": "D3cc", + "tlb": "#D3 cc:uint8", + "prefix": "D3", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDREF", + "doc": { + "category": "cell_parse", + "description": "Loads a cell reference `c` from `s`.", + "gas": "18", + "fift": "LDREF" + }, + "bytecode": { + "doc_opcode": "D4", + "tlb": "#D4", + "prefix": "D4", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - c s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDREFRTOS", + "doc": { + "category": "cell_parse", + "description": "Equivalent to `LDREF` `SWAP` `CTOS`.", + "gas": "118/43", + "fift": "LDREFRTOS" + }, + "bytecode": { + "doc_opcode": "D5", + "tlb": "#D5", + "prefix": "D5", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - s' s''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDSLICE", + "doc": { + "category": "cell_parse", + "description": "Cuts the next `cc+1` bits of `s` into a separate _Slice_ `s''`.", + "gas": "26", + "fift": "[cc+1] LDSLICE" + }, + "bytecode": { + "doc_opcode": "D6cc", + "tlb": "#D6 cc:uint8", + "prefix": "D6", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - s'' s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDIX", + "doc": { + "category": "cell_parse", + "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" + }, + "bytecode": { + "doc_opcode": "D700", + "tlb": "#D700", + "prefix": "D700", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - x s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDUX", + "doc": { + "category": "cell_parse", + "description": "Loads an unsigned `l`-bit integer `x` from (the first `l` bits of) `s`, with `0 <= l <= 256`.", + "gas": "26", + "fift": "LDUX" + }, + "bytecode": { + "doc_opcode": "D701", + "tlb": "#D701", + "prefix": "D701", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - x s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "PLDIX", + "doc": { + "category": "cell_parse", + "description": "Preloads a signed `l`-bit integer from _Slice_ `s`, for `0 <= l <= 257`.", + "gas": "26", + "fift": "PLDIX" + }, + "bytecode": { + "doc_opcode": "D702", + "tlb": "#D702", + "prefix": "D702", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDUX", + "doc": { + "category": "cell_parse", + "description": "Preloads an unsigned `l`-bit integer from `s`, for `0 <= l <= 256`.", + "gas": "26", + "fift": "PLDUX" + }, + "bytecode": { + "doc_opcode": "D703", + "tlb": "#D703", + "prefix": "D703", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LDIXQ", + "doc": { + "category": "cell_parse", + "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" + }, + "bytecode": { + "doc_opcode": "D704", + "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"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LDUXQ", + "doc": { + "category": "cell_parse", + "description": "Quiet version of `LDUX`.", + "gas": "26", + "fift": "LDUXQ" + }, + "bytecode": { + "doc_opcode": "D705", + "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"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDIXQ", + "doc": { + "category": "cell_parse", + "description": "Quiet version of `PLDIX`.", + "gas": "26", + "fift": "PLDIXQ" + }, + "bytecode": { + "doc_opcode": "D706", + "tlb": "#D706", + "prefix": "D706", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - x -1 or 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDUXQ", + "doc": { + "category": "cell_parse", + "description": "Quiet version of `PLDUX`.", + "gas": "26", + "fift": "PLDUXQ" + }, + "bytecode": { + "doc_opcode": "D707", + "tlb": "#D707", + "prefix": "D707", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - x -1 or 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LDI_ALT", + "doc": { + "category": "cell_parse", + "description": "A longer encoding for `LDI`.", + "gas": "34", + "fift": "[cc+1] LDI_l" + }, + "bytecode": { + "doc_opcode": "D708cc", + "tlb": "#D708 cc:uint8", + "prefix": "D708", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDU_ALT", + "doc": { + "category": "cell_parse", + "description": "A longer encoding for `LDU`.", + "gas": "34", + "fift": "[cc+1] LDU_l" + }, + "bytecode": { + "doc_opcode": "D709cc", + "tlb": "#D709 cc:uint8", + "prefix": "D709", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "PLDI", + "doc": { + "category": "cell_parse", + "description": "Preloads a signed `cc+1`-bit integer from _Slice_ `s`.", + "gas": "34", + "fift": "[cc+1] PLDI" + }, + "bytecode": { + "doc_opcode": "D70Acc", + "tlb": "#D70A cc:uint8", + "prefix": "D70A", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDU", + "doc": { + "category": "cell_parse", + "description": "Preloads an unsigned `cc+1`-bit integer from `s`.", + "gas": "34", + "fift": "[cc+1] PLDU" + }, + "bytecode": { + "doc_opcode": "D70Bcc", + "tlb": "#D70B cc:uint8", + "prefix": "D70B", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LDIQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `LDI`.", + "gas": "34", + "fift": "[cc+1] LDIQ" + }, + "bytecode": { + "doc_opcode": "D70Ccc", + "tlb": "#D70C cc:uint8", + "prefix": "D70C", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - x s' -1 or s 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LDUQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `LDU`.", + "gas": "34", + "fift": "[cc+1] LDUQ" + }, + "bytecode": { + "doc_opcode": "D70Dcc", + "tlb": "#D70D cc:uint8", + "prefix": "D70D", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - x s' -1 or s 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDIQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `PLDI`.", + "gas": "34", + "fift": "[cc+1] PLDIQ" + }, + "bytecode": { + "doc_opcode": "D70Ecc", + "tlb": "#D70E cc:uint8", + "prefix": "D70E", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - x -1 or 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDUQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `PLDU`.", + "gas": "34", + "fift": "[cc+1] PLDUQ" + }, + "bytecode": { + "doc_opcode": "D70Fcc", + "tlb": "#D70F cc:uint8", + "prefix": "D70F", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - x -1 or 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDUZ", + "doc": { + "category": "cell_parse", + "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" + }, + "bytecode": { + "doc_opcode": "D714_c", + "tlb": "#D714_ c:uint3", + "prefix": "D714_", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 3 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - s x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LDSLICEX", + "doc": { + "category": "cell_parse", + "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" + }, + "bytecode": { + "doc_opcode": "D718", + "tlb": "#D718", + "prefix": "D718", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - s'' s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "PLDSLICEX", + "doc": { + "category": "cell_parse", + "description": "Returns the first `0 <= l <= 1023` bits of `s` as `s''`.", + "gas": "26", + "fift": "PLDSLICEX" + }, + "bytecode": { + "doc_opcode": "D719", + "tlb": "#D719", + "prefix": "D719", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - s''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDSLICEXQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `LDSLICEX`.", + "gas": "26", + "fift": "LDSLICEXQ" + }, + "bytecode": { + "doc_opcode": "D71A", + "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"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDSLICEXQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `LDSLICEXQ`.", + "gas": "26", + "fift": "PLDSLICEXQ" + }, + "bytecode": { + "doc_opcode": "D71B", + "tlb": "#D71B", + "prefix": "D71B", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - s' -1 or 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LDSLICE_ALT", + "doc": { + "category": "cell_parse", + "description": "A longer encoding for `LDSLICE`.", + "gas": "34", + "fift": "[cc+1] LDSLICE_l" + }, + "bytecode": { + "doc_opcode": "D71Ccc", + "tlb": "#D71C cc:uint8", + "prefix": "D71C", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - s'' s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "PLDSLICE", + "doc": { + "category": "cell_parse", + "description": "Returns the first `0 < cc+1 <= 256` bits of `s` as `s''`.", + "gas": "34", + "fift": "[cc+1] PLDSLICE" + }, + "bytecode": { + "doc_opcode": "D71Dcc", + "tlb": "#D71D cc:uint8", + "prefix": "D71D", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - s''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDSLICEQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `LDSLICE`.", + "gas": "34", + "fift": "[cc+1] LDSLICEQ" + }, + "bytecode": { + "doc_opcode": "D71Ecc", + "tlb": "#D71E cc:uint8", + "prefix": "D71E", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - s'' s' -1 or s 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDSLICEQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `PLDSLICE`.", + "gas": "34", + "fift": "[cc+1] PLDSLICEQ" + }, + "bytecode": { + "doc_opcode": "D71Fcc", + "tlb": "#D71F cc:uint8", + "prefix": "D71F", + "operands": [ + { + "name": "c", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - s'' -1 or 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDCUTFIRST", + "doc": { + "category": "cell_parse", + "description": "Returns the first `0 <= l <= 1023` bits of `s`. It is equivalent to `PLDSLICEX`.", + "gas": "26", + "fift": "SDCUTFIRST" + }, + "bytecode": { + "doc_opcode": "D720", + "tlb": "#D720", + "prefix": "D720", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "SDSKIPFIRST", + "doc": { + "category": "cell_parse", + "description": "Returns all but the first `0 <= l <= 1023` bits of `s`. It is equivalent to `LDSLICEX` `NIP`.", + "gas": "26", + "fift": "SDSKIPFIRST" + }, + "bytecode": { + "doc_opcode": "D721", + "tlb": "#D721", + "prefix": "D721", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "SDCUTLAST", + "doc": { + "category": "cell_parse", + "description": "Returns the last `0 <= l <= 1023` bits of `s`.", + "gas": "26", + "fift": "SDCUTLAST" + }, + "bytecode": { + "doc_opcode": "D722", + "tlb": "#D722", + "prefix": "D722", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "SDSKIPLAST", + "doc": { + "category": "cell_parse", + "description": "Returns all but the last `0 <= l <= 1023` bits of `s`.", + "gas": "26", + "fift": "SDSKIPLAST" + }, + "bytecode": { + "doc_opcode": "D723", + "tlb": "#D723", + "prefix": "D723", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "SDSUBSTR", + "doc": { + "category": "cell_parse", + "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" + }, + "bytecode": { + "doc_opcode": "D724", + "tlb": "#D724", + "prefix": "D724", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l l' - s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "l2", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "SDBEGINSX", + "doc": { + "category": "cell_parse", + "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" + }, + "bytecode": { + "doc_opcode": "D726", + "tlb": "#D726", + "prefix": "D726", + "operands": [] + }, + "value_flow": { + "doc_stack": "s s' - s''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "SDBEGINSXQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `SDBEGINSX`.", + "gas": "26", + "fift": "SDBEGINSXQ" + }, + "bytecode": { + "doc_opcode": "D727", + "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"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDBEGINS", + "doc": { + "category": "cell_parse", + "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" + }, + "bytecode": { + "doc_opcode": "D72A_xsss", + "tlb": "#D72A_ x:(## 7) sss:((8 * x + 3) * Bit)", + "prefix": "D72A_", + "operands": [ + { + "name": "s", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 7, + "bits_padding": 3, + "completion_tag": true + } + } + ] + }, + "value_flow": { + "doc_stack": "s - s''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "SDBEGINSQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `SDBEGINS`.", + "gas": "31", + "fift": "[slice] SDBEGINSQ" + }, + "bytecode": { + "doc_opcode": "D72E_xsss", + "tlb": "#D72E_ x:(## 7) sss:((8 * x + 3) * Bit)", + "prefix": "D72E_", + "operands": [ + { + "name": "s", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 7, + "bits_padding": 3, + "completion_tag": true + } + } + ] + }, + "value_flow": { + "doc_stack": "s - s'' -1 or s 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SCUTFIRST", + "doc": { + "category": "cell_parse", + "description": "Returns the first `0 <= l <= 1023` bits and first `0 <= r <= 4` references of `s`.", + "gas": "26", + "fift": "SCUTFIRST" + }, + "bytecode": { + "doc_opcode": "D730", + "tlb": "#D730", + "prefix": "D730", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l r - s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "SSKIPFIRST", + "doc": { + "category": "cell_parse", + "description": "Returns all but the first `l` bits of `s` and `r` references of `s`.", + "gas": "26", + "fift": "SSKIPFIRST" + }, + "bytecode": { + "doc_opcode": "D731", + "tlb": "#D731", + "prefix": "D731", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l r - s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "SCUTLAST", + "doc": { + "category": "cell_parse", + "description": "Returns the last `0 <= l <= 1023` data bits and last `0 <= r <= 4` references of `s`.", + "gas": "26", + "fift": "SCUTLAST" + }, + "bytecode": { + "doc_opcode": "D732", + "tlb": "#D732", + "prefix": "D732", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l r - s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "SSKIPLAST", + "doc": { + "category": "cell_parse", + "description": "Returns all but the last `l` bits of `s` and `r` references of `s`.", + "gas": "26", + "fift": "SSKIPLAST" + }, + "bytecode": { + "doc_opcode": "D733", + "tlb": "#D733", + "prefix": "D733", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l r - s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "SUBSLICE", + "doc": { + "category": "cell_parse", + "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" + }, + "bytecode": { + "doc_opcode": "D734", + "tlb": "#D734", + "prefix": "D734", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l r l' r' - s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "l2", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r2", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "SPLIT", + "doc": { + "category": "cell_parse", + "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" + }, + "bytecode": { + "doc_opcode": "D736", + "tlb": "#D736", + "prefix": "D736", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l r - s' s''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "SPLITQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `SPLIT`.", + "gas": "26", + "fift": "SPLITQ" + }, + "bytecode": { + "doc_opcode": "D737", + "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"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "XCTOS", + "doc": { + "category": "cell_parse", + "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": "" + }, + "bytecode": { + "doc_opcode": "D739", + "tlb": "#D739", + "prefix": "D739", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - s ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "flag", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "XLOAD", + "doc": { + "category": "cell_parse", + "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": "" + }, + "bytecode": { + "doc_opcode": "D73A", + "tlb": "#D73A", + "prefix": "D73A", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - c'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c2", + "value_types": ["Cell"] + } + ] + } + } + }, + { + "mnemonic": "XLOADQ", + "doc": { + "category": "cell_parse", + "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": "" + }, + "bytecode": { + "doc_opcode": "D73B", + "tlb": "#D73B", + "prefix": "D73B", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - c' -1 or c 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "c2", + "value_types": ["Cell"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SCHKBITS", + "doc": { + "category": "cell_parse", + "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" + }, + "bytecode": { + "doc_opcode": "D741", + "tlb": "#D741", + "prefix": "D741", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SCHKREFS", + "doc": { + "category": "cell_parse", + "description": "Checks whether there are at least `r` references in _Slice_ `s`.", + "gas": "26/76", + "fift": "SCHKREFS" + }, + "bytecode": { + "doc_opcode": "D742", + "tlb": "#D742", + "prefix": "D742", + "operands": [] + }, + "value_flow": { + "doc_stack": "s r - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SCHKBITREFS", + "doc": { + "category": "cell_parse", + "description": "Checks whether there are at least `l` data bits and `r` references in _Slice_ `s`.", + "gas": "26/76", + "fift": "SCHKBITREFS" + }, + "bytecode": { + "doc_opcode": "D743", + "tlb": "#D743", + "prefix": "D743", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l r - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SCHKBITSQ", + "doc": { + "category": "cell_parse", + "description": "Checks whether there are at least `l` data bits in _Slice_ `s`.", + "gas": "26", + "fift": "SCHKBITSQ" + }, + "bytecode": { + "doc_opcode": "D745", + "tlb": "#D745", + "prefix": "D745", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SCHKREFSQ", + "doc": { + "category": "cell_parse", + "description": "Checks whether there are at least `r` references in _Slice_ `s`.", + "gas": "26", + "fift": "SCHKREFSQ" + }, + "bytecode": { + "doc_opcode": "D746", + "tlb": "#D746", + "prefix": "D746", + "operands": [] + }, + "value_flow": { + "doc_stack": "s r - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SCHKBITREFSQ", + "doc": { + "category": "cell_parse", + "description": "Checks whether there are at least `l` data bits and `r` references in _Slice_ `s`.", + "gas": "26", + "fift": "SCHKBITREFSQ" + }, + "bytecode": { + "doc_opcode": "D747", + "tlb": "#D747", + "prefix": "D747", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l r - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDREFVAR", + "doc": { + "category": "cell_parse", + "description": "Returns the `n`-th cell reference of _Slice_ `s` for `0 <= n <= 3`.", + "gas": "26", + "fift": "PLDREFVAR" + }, + "bytecode": { + "doc_opcode": "D748", + "tlb": "#D748", + "prefix": "D748", + "operands": [] + }, + "value_flow": { + "doc_stack": "s n - c", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + } + } + }, + { + "mnemonic": "SBITS", + "doc": { + "category": "cell_parse", + "description": "Returns the number of data bits in _Slice_ `s`.", + "gas": "26", + "fift": "SBITS" + }, + "bytecode": { + "doc_opcode": "D749", + "tlb": "#D749", + "prefix": "D749", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - l", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SREFS", + "doc": { + "category": "cell_parse", + "description": "Returns the number of references in _Slice_ `s`.", + "gas": "26", + "fift": "SREFS" + }, + "bytecode": { + "doc_opcode": "D74A", + "tlb": "#D74A", + "prefix": "D74A", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - r", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SBITREFS", + "doc": { + "category": "cell_parse", + "description": "Returns both the number of data bits and the number of references in `s`.", + "gas": "26", + "fift": "SBITREFS" + }, + "bytecode": { + "doc_opcode": "D74B", + "tlb": "#D74B", + "prefix": "D74B", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - l r", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDREFIDX", + "doc": { + "category": "cell_parse", + "description": "Returns the `n`-th cell reference of _Slice_ `s`, where `0 <= n <= 3`.", + "gas": "26", + "fift": "[n] PLDREFIDX" + }, + "bytecode": { + "doc_opcode": "D74E_n", + "tlb": "#D74E_ n:uint2", + "prefix": "D74E_", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 2 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - c", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + } + } + }, + { + "mnemonic": "LDILE4", + "doc": { + "category": "cell_parse", + "description": "Loads a little-endian signed 32-bit integer.", + "gas": "26", + "fift": "LDILE4" + }, + "bytecode": { + "doc_opcode": "D750", + "tlb": "#D750", + "prefix": "D750", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDULE4", + "doc": { + "category": "cell_parse", + "description": "Loads a little-endian unsigned 32-bit integer.", + "gas": "26", + "fift": "LDULE4" + }, + "bytecode": { + "doc_opcode": "D751", + "tlb": "#D751", + "prefix": "D751", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDILE8", + "doc": { + "category": "cell_parse", + "description": "Loads a little-endian signed 64-bit integer.", + "gas": "26", + "fift": "LDILE8" + }, + "bytecode": { + "doc_opcode": "D752", + "tlb": "#D752", + "prefix": "D752", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDULE8", + "doc": { + "category": "cell_parse", + "description": "Loads a little-endian unsigned 64-bit integer.", + "gas": "26", + "fift": "LDULE8" + }, + "bytecode": { + "doc_opcode": "D753", + "tlb": "#D753", + "prefix": "D753", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "PLDILE4", + "doc": { + "category": "cell_parse", + "description": "Preloads a little-endian signed 32-bit integer.", + "gas": "26", + "fift": "PLDILE4" + }, + "bytecode": { + "doc_opcode": "D754", + "tlb": "#D754", + "prefix": "D754", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDULE4", + "doc": { + "category": "cell_parse", + "description": "Preloads a little-endian unsigned 32-bit integer.", + "gas": "26", + "fift": "PLDULE4" + }, + "bytecode": { + "doc_opcode": "D755", + "tlb": "#D755", + "prefix": "D755", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDILE8", + "doc": { + "category": "cell_parse", + "description": "Preloads a little-endian signed 64-bit integer.", + "gas": "26", + "fift": "PLDILE8" + }, + "bytecode": { + "doc_opcode": "D756", + "tlb": "#D756", + "prefix": "D756", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDULE8", + "doc": { + "category": "cell_parse", + "description": "Preloads a little-endian unsigned 64-bit integer.", + "gas": "26", + "fift": "PLDULE8" + }, + "bytecode": { + "doc_opcode": "D757", + "tlb": "#D757", + "prefix": "D757", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LDILE4Q", + "doc": { + "category": "cell_parse", + "description": "Quietly loads a little-endian signed 32-bit integer.", + "gas": "26", + "fift": "LDILE4Q" + }, + "bytecode": { + "doc_opcode": "D758", + "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"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LDULE4Q", + "doc": { + "category": "cell_parse", + "description": "Quietly loads a little-endian unsigned 32-bit integer.", + "gas": "26", + "fift": "LDULE4Q" + }, + "bytecode": { + "doc_opcode": "D759", + "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"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LDILE8Q", + "doc": { + "category": "cell_parse", + "description": "Quietly loads a little-endian signed 64-bit integer.", + "gas": "26", + "fift": "LDILE8Q" + }, + "bytecode": { + "doc_opcode": "D75A", + "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"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LDULE8Q", + "doc": { + "category": "cell_parse", + "description": "Quietly loads a little-endian unsigned 64-bit integer.", + "gas": "26", + "fift": "LDULE8Q" + }, + "bytecode": { + "doc_opcode": "D75B", + "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"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDILE4Q", + "doc": { + "category": "cell_parse", + "description": "Quietly preloads a little-endian signed 32-bit integer.", + "gas": "26", + "fift": "PLDILE4Q" + }, + "bytecode": { + "doc_opcode": "D75C", + "tlb": "#D75C", + "prefix": "D75C", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x -1 or 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDULE4Q", + "doc": { + "category": "cell_parse", + "description": "Quietly preloads a little-endian unsigned 32-bit integer.", + "gas": "26", + "fift": "PLDULE4Q" + }, + "bytecode": { + "doc_opcode": "D75D", + "tlb": "#D75D", + "prefix": "D75D", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x -1 or 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDILE8Q", + "doc": { + "category": "cell_parse", + "description": "Quietly preloads a little-endian signed 64-bit integer.", + "gas": "26", + "fift": "PLDILE8Q" + }, + "bytecode": { + "doc_opcode": "D75E", + "tlb": "#D75E", + "prefix": "D75E", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x -1 or 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDULE8Q", + "doc": { + "category": "cell_parse", + "description": "Quietly preloads a little-endian unsigned 64-bit integer.", + "gas": "26", + "fift": "PLDULE8Q" + }, + "bytecode": { + "doc_opcode": "D75F", + "tlb": "#D75F", + "prefix": "D75F", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x -1 or 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LDZEROES", + "doc": { + "category": "cell_parse", + "description": "Returns the count `n` of leading zero bits in `s`, and removes these bits from `s`.", + "gas": "26", + "fift": "LDZEROES" + }, + "bytecode": { + "doc_opcode": "D760", + "tlb": "#D760", + "prefix": "D760", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - n s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDONES", + "doc": { + "category": "cell_parse", + "description": "Returns the count `n` of leading one bits in `s`, and removes these bits from `s`.", + "gas": "26", + "fift": "LDONES" + }, + "bytecode": { + "doc_opcode": "D761", + "tlb": "#D761", + "prefix": "D761", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - n s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDSAME", + "doc": { + "category": "cell_parse", + "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" + }, + "bytecode": { + "doc_opcode": "D762", + "tlb": "#D762", + "prefix": "D762", + "operands": [] + }, + "value_flow": { + "doc_stack": "s x - n s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "SDEPTH", + "doc": { + "category": "cell_parse", + "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" + }, + "bytecode": { + "doc_opcode": "D764", + "tlb": "#D764", + "prefix": "D764", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "CDEPTH", + "doc": { + "category": "cell_parse", + "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" + }, + "bytecode": { + "doc_opcode": "D765", + "tlb": "#D765", + "prefix": "D765", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "EXECUTE", + "doc": { + "category": "cont_basic", + "description": "_Calls_, or _executes_, continuation `c`.", + "gas": "18", + "fift": "EXECUTE\nCALLX" + }, + "bytecode": { + "doc_opcode": "D8", + "tlb": "#D8", + "prefix": "D8", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "JMPX", + "doc": { + "category": "cont_basic", + "description": "_Jumps_, or transfers control, to continuation `c`.\nThe remainder of the previous current continuation `cc` is discarded.", + "gas": "18", + "fift": "JMPX" + }, + "bytecode": { + "doc_opcode": "D9", + "tlb": "#D9", + "prefix": "D9", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c" + } + ] + } + }, + { + "mnemonic": "CALLXARGS", + "doc": { + "category": "cont_basic", + "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" + }, + "bytecode": { + "doc_opcode": "DApr", + "tlb": "#DA p:uint4 r:uint4", + "prefix": "DA", + "operands": [ + { + "name": "p", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "r", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [ + { + "type": "simple", + "name": "arg" + } + ] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "CALLXARGS_VAR", + "doc": { + "category": "cont_basic", + "description": "_Calls_ continuation `c` with `0 <= p <= 15` parameters, expecting an arbitrary number of return values.", + "gas": "26", + "fift": "[p] -1 CALLXARGS" + }, + "bytecode": { + "doc_opcode": "DB0p", + "tlb": "#DB0 p:uint4", + "prefix": "DB0", + "operands": [ + { + "name": "p", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [ + { + "type": "simple", + "name": "arg" + } + ] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "JMPXARGS", + "doc": { + "category": "cont_basic", + "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" + }, + "bytecode": { + "doc_opcode": "DB1p", + "tlb": "#DB1 p:uint4", + "prefix": "DB1", + "operands": [ + { + "name": "p", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [ + { + "type": "simple", + "name": "arg" + } + ] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c" + } + ] + } + }, + { + "mnemonic": "RETARGS", + "doc": { + "category": "cont_basic", + "description": "_Returns_ to `c0`, with `0 <= r <= 15` return values taken from the current stack.", + "gas": "26", + "fift": "[r] RETARGS" + }, + "bytecode": { + "doc_opcode": "DB2r", + "tlb": "#DB2 r:uint4", + "prefix": "DB2", + "operands": [ + { + "name": "r", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [ + { + "type": "simple", + "name": "arg" + } + ] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "register", + "index": 0 + } + ] + } + }, + { + "mnemonic": "RET", + "doc": { + "category": "cont_basic", + "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" + }, + "bytecode": { + "doc_opcode": "DB30", + "tlb": "#DB30", + "prefix": "DB30", + "operands": [] + }, + "value_flow": { + "doc_stack": "", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "register", + "index": 0 + } + ] + } + }, + { + "mnemonic": "RETALT", + "doc": { + "category": "cont_basic", + "description": "_Returns_ to the continuation at `c1`.\nApproximately equivalent to `c1 PUSHCTR` `JMPX`.", + "gas": "26", + "fift": "RETALT\nRETFALSE" + }, + "bytecode": { + "doc_opcode": "DB31", + "tlb": "#DB31", + "prefix": "DB31", + "operands": [] + }, + "value_flow": { + "doc_stack": "", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "register", + "index": 1 + } + ] + } + }, + { + "mnemonic": "BRANCH", + "doc": { + "category": "cont_basic", + "description": "Performs `RETTRUE` if integer `f!=0`, or `RETFALSE` if `f=0`.", + "gas": "26", + "fift": "BRANCH\nRETBOOL" + }, + "bytecode": { + "doc_opcode": "DB32", + "tlb": "#DB32", + "prefix": "DB32", + "operands": [] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "register", + "index": 0 + }, + { + "type": "register", + "index": 1 + } + ] + } + }, + { + "mnemonic": "CALLCC", + "doc": { + "category": "cont_basic", + "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" + }, + "bytecode": { + "doc_opcode": "DB34", + "tlb": "#DB34", + "prefix": "DB34", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c" + } + ] + } + }, + { + "mnemonic": "JMPXDATA", + "doc": { + "category": "cont_basic", + "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" + }, + "bytecode": { + "doc_opcode": "DB35", + "tlb": "#DB35", + "prefix": "DB35", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c" + } + ] + } + }, + { + "mnemonic": "CALLCCARGS", + "doc": { + "category": "cont_basic", + "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" + }, + "bytecode": { + "doc_opcode": "DB36pr", + "tlb": "#DB36 p:uint4 r:uint4", + "prefix": "DB36", + "operands": [ + { + "name": "p", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "r", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [ + { + "type": "simple", + "name": "arg" + } + ] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c" + } + ] + } + }, + { + "mnemonic": "CALLXVARARGS", + "doc": { + "category": "cont_basic", + "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" + }, + "bytecode": { + "doc_opcode": "DB38", + "tlb": "#DB38", + "prefix": "DB38", + "operands": [] + }, + "value_flow": { + "doc_stack": "c p r - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [ + { + "type": "simple", + "name": "arg" + } + ] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + }, + { + "type": "simple", + "name": "p", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "RETVARARGS", + "doc": { + "category": "cont_basic", + "description": "Similar to `RETARGS`.", + "gas": "26", + "fift": "RETVARARGS" + }, + "bytecode": { + "doc_opcode": "DB39", + "tlb": "#DB39", + "prefix": "DB39", + "operands": [] + }, + "value_flow": { + "doc_stack": "p r - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [ + { + "type": "simple", + "name": "arg" + } + ] + }, + { + "type": "simple", + "name": "p", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "JMPXVARARGS", + "doc": { + "category": "cont_basic", + "description": "Similar to `JMPXARGS`.", + "gas": "26", + "fift": "JMPXVARARGS" + }, + "bytecode": { + "doc_opcode": "DB3A", + "tlb": "#DB3A", + "prefix": "DB3A", + "operands": [] + }, + "value_flow": { + "doc_stack": "c p r - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [ + { + "type": "simple", + "name": "arg" + } + ] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + }, + { + "type": "simple", + "name": "p", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c" + } + ] + } + }, + { + "mnemonic": "CALLCCVARARGS", + "doc": { + "category": "cont_basic", + "description": "Similar to `CALLCCARGS`.", + "gas": "26", + "fift": "CALLCCVARARGS" + }, + "bytecode": { + "doc_opcode": "DB3B", + "tlb": "#DB3B", + "prefix": "DB3B", + "operands": [] + }, + "value_flow": { + "doc_stack": "c p r - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [ + { + "type": "simple", + "name": "arg" + } + ] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + }, + { + "type": "simple", + "name": "p", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c" + } + ] + } + }, + { + "mnemonic": "CALLREF", + "doc": { + "category": "cont_basic", + "description": "Equivalent to `PUSHREFCONT` `CALLX`.", + "gas": "126/51", + "fift": "[ref] CALLREF" + }, + "bytecode": { + "doc_opcode": "DB3C", + "tlb": "#DB3C c:^Cell", + "prefix": "DB3C", + "operands": [ + { + "name": "c", + "loader": "ref", + "loader_args": {} + } + ] + }, + "value_flow": { + "doc_stack": "", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "JMPREF", + "doc": { + "category": "cont_basic", + "description": "Equivalent to `PUSHREFCONT` `JMPX`.", + "gas": "126/51", + "fift": "[ref] JMPREF" + }, + "bytecode": { + "doc_opcode": "DB3D", + "tlb": "#DB3D c:^Cell", + "prefix": "DB3D", + "operands": [ + { + "name": "c", + "loader": "ref", + "loader_args": {} + } + ] + }, + "value_flow": { + "doc_stack": "", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c" + } + ] + } + }, + { + "mnemonic": "JMPREFDATA", + "doc": { + "category": "cont_basic", + "description": "Equivalent to `PUSHREFCONT` `JMPXDATA`.", + "gas": "126/51", + "fift": "[ref] JMPREFDATA" + }, + "bytecode": { + "doc_opcode": "DB3E", + "tlb": "#DB3E c:^Cell", + "prefix": "DB3E", + "operands": [ + { + "name": "c", + "loader": "ref", + "loader_args": {} + } + ] + }, + "value_flow": { + "doc_stack": "", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c" + } + ] + } + }, + { + "mnemonic": "RETDATA", + "doc": { + "category": "cont_basic", + "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" + }, + "bytecode": { + "doc_opcode": "DB3F", + "tlb": "#DB3F", + "prefix": "DB3F", + "operands": [] + }, + "value_flow": { + "doc_stack": "", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "register", + "index": 0 + } + ] + } + }, + { + "mnemonic": "RUNVM", + "doc": { + "category": "cont_basic", + "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" + }, + "bytecode": { + "doc_opcode": "DB4fff", + "tlb": "#DB4 flags:(## 12)", + "prefix": "DB4", + "operands": [] + }, + "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]" + } + }, + { + "mnemonic": "RUNVMX", + "doc": { + "category": "cont_basic", + "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" + }, + "bytecode": { + "doc_opcode": "DB50", + "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]" + } + }, + { + "mnemonic": "IFRET", + "doc": { + "category": "cont_conditional", + "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:" + }, + "bytecode": { + "doc_opcode": "DC", + "tlb": "#DC", + "prefix": "DC", + "operands": [] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "register", + "index": 0 + } + ], + "nobranch": true + } + }, + { + "mnemonic": "IFNOTRET", + "doc": { + "category": "cont_conditional", + "description": "Performs a `RET`, but only if integer `f` is zero.", + "gas": "18", + "fift": "IFNOTRET\nIF:" + }, + "bytecode": { + "doc_opcode": "DD", + "tlb": "#DD", + "prefix": "DD", + "operands": [] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "register", + "index": 0 + } + ], + "nobranch": true + } + }, + { + "mnemonic": "IF", + "doc": { + "category": "cont_conditional", + "description": "Performs `EXECUTE` for `c` (i.e., _executes_ `c`), but only if integer `f` is non-zero. Otherwise simply discards both values.", + "gas": "18", + "fift": "IF", + "fift_examples": [ + { + "fift": "IF:<{ code }> <{ code }>IF", + "description": "Equivalent to `<{ code }> CONT` `IF`." + } + ] + }, + "bytecode": { + "doc_opcode": "DE", + "tlb": "#DE", + "prefix": "DE", + "operands": [] + }, + "value_flow": { + "doc_stack": "f c - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ], + "nobranch": true + } + }, + { + "mnemonic": "IFNOT", + "doc": { + "category": "cont_conditional", + "description": "Executes continuation `c`, but only if integer `f` is zero. Otherwise simply discards both values.", + "gas": "18", + "fift": "IFNOT", + "fift_examples": [ + { + "fift": "IFNOT:<{ code }> <{ code }>IFNOT", + "description": "Equivalent to `<{ code }> CONT` `IFNOT`." + } + ] + }, + "bytecode": { + "doc_opcode": "DF", + "tlb": "#DF", + "prefix": "DF", + "operands": [] + }, + "value_flow": { + "doc_stack": "f c - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ], + "nobranch": true + } + }, + { + "mnemonic": "IFJMP", + "doc": { + "category": "cont_conditional", + "description": "Jumps to `c` (similarly to `JMPX`), but only if `f` is non-zero.", + "gas": "18", + "fift": "IFJMP", + "fift_examples": [ + { + "fift": "IFJMP:<{ code }>", + "description": "Equivalent to `<{ code }> CONT` `IFJMP`." + } + ] + }, + "bytecode": { + "doc_opcode": "E0", + "tlb": "#E0", + "prefix": "E0", + "operands": [] + }, + "value_flow": { + "doc_stack": "f c - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c" + } + ], + "nobranch": true + } + }, + { + "mnemonic": "IFNOTJMP", + "doc": { + "category": "cont_conditional", + "description": "Jumps to `c` (similarly to `JMPX`), but only if `f` is zero.", + "gas": "18", + "fift": "IFNOTJMP", + "fift_examples": [ + { + "fift": "IFNOTJMP:<{ code }>", + "description": "Equivalent to `<{ code }> CONT` `IFNOTJMP`." + } + ] + }, + "bytecode": { + "doc_opcode": "E1", + "tlb": "#E1", + "prefix": "E1", + "operands": [] + }, + "value_flow": { + "doc_stack": "f c - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c" + } + ], + "nobranch": true + } + }, + { + "mnemonic": "IFELSE", + "doc": { + "category": "cont_conditional", + "description": "If integer `f` is non-zero, executes `c`, otherwise executes `c'`. Equivalent to `CONDSELCHK` `EXECUTE`.", + "gas": "18", + "fift": "IFELSE", + "fift_examples": [ + { + "fift": "IF:<{ code1 }>ELSE<{ code2 }>", + "description": "Equivalent to `<{ code1 }> CONT` `<{ code2 }> CONT` `IFELSE`." + } + ] + }, + "bytecode": { + "doc_opcode": "E2", + "tlb": "#E2", + "prefix": "E2", + "operands": [] + }, + "value_flow": { + "doc_stack": "f c c' - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + }, + { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "IFREF", + "doc": { + "category": "cont_conditional", + "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" + }, + "bytecode": { + "doc_opcode": "E300", + "tlb": "#E300 c:^Cell", + "prefix": "E300", + "operands": [ + { + "name": "c", + "loader": "ref", + "loader_args": {} + } + ] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ], + "nobranch": true + } + }, + { + "mnemonic": "IFNOTREF", + "doc": { + "category": "cont_conditional", + "description": "Equivalent to `PUSHREFCONT` `IFNOT`.", + "gas": "26/126/51", + "fift": "[ref] IFNOTREF" + }, + "bytecode": { + "doc_opcode": "E301", + "tlb": "#E301 c:^Cell", + "prefix": "E301", + "operands": [ + { + "name": "c", + "loader": "ref", + "loader_args": {} + } + ] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ], + "nobranch": true + } + }, + { + "mnemonic": "IFJMPREF", + "doc": { + "category": "cont_conditional", + "description": "Equivalent to `PUSHREFCONT` `IFJMP`.", + "gas": "26/126/51", + "fift": "[ref] IFJMPREF" + }, + "bytecode": { + "doc_opcode": "E302", + "tlb": "#E302 c:^Cell", + "prefix": "E302", + "operands": [ + { + "name": "c", + "loader": "ref", + "loader_args": {} + } + ] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c" + } + ], + "nobranch": true + } + }, + { + "mnemonic": "IFNOTJMPREF", + "doc": { + "category": "cont_conditional", + "description": "Equivalent to `PUSHREFCONT` `IFNOTJMP`.", + "gas": "26/126/51", + "fift": "[ref] IFNOTJMPREF" + }, + "bytecode": { + "doc_opcode": "E303", + "tlb": "#E303 c:^Cell", + "prefix": "E303", + "operands": [ + { + "name": "c", + "loader": "ref", + "loader_args": {} + } + ] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c" + } + ], + "nobranch": true + } + }, + { + "mnemonic": "CONDSEL", + "doc": { + "category": "cont_conditional", + "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" + }, + "bytecode": { + "doc_opcode": "E304", + "tlb": "#E304", + "prefix": "E304", + "operands": [] + }, + "value_flow": { + "doc_stack": "f x y - x or y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "y" + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result" + } + ] + } + } + }, + { + "mnemonic": "CONDSELCHK", + "doc": { + "category": "cont_conditional", + "description": "Same as `CONDSEL`, but first checks whether `x` and `y` have the same type.", + "gas": "26", + "fift": "CONDSELCHK" + }, + "bytecode": { + "doc_opcode": "E305", + "tlb": "#E305", + "prefix": "E305", + "operands": [] + }, + "value_flow": { + "doc_stack": "f x y - x or y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "y" + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result" + } + ] + } + } + }, + { + "mnemonic": "IFRETALT", + "doc": { + "category": "cont_conditional", + "description": "Performs `RETALT` if integer `f!=0`.", + "gas": "26", + "fift": "IFRETALT" + }, + "bytecode": { + "doc_opcode": "E308", + "tlb": "#E308", + "prefix": "E308", + "operands": [] + }, + "value_flow": { + "doc_stack": "f -", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "register", + "index": 1 + } + ], + "nobranch": true + } + }, + { + "mnemonic": "IFNOTRETALT", + "doc": { + "category": "cont_conditional", + "description": "Performs `RETALT` if integer `f=0`.", + "gas": "26", + "fift": "IFNOTRETALT" + }, + "bytecode": { + "doc_opcode": "E309", + "tlb": "#E309", + "prefix": "E309", + "operands": [] + }, + "value_flow": { + "doc_stack": "f -", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "register", + "index": 1 + } + ], + "nobranch": true + } + }, + { + "mnemonic": "IFREFELSE", + "doc": { + "category": "cont_conditional", + "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" + }, + "bytecode": { + "doc_opcode": "E30D", + "tlb": "#E30D c:^Cell", + "prefix": "E30D", + "operands": [ + { + "name": "c", + "loader": "ref", + "loader_args": {} + } + ] + }, + "value_flow": { + "doc_stack": "f c -", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + }, + { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "IFELSEREF", + "doc": { + "category": "cont_conditional", + "description": "Equivalent to `PUSHREFCONT` `IFELSE`.", + "gas": "26/126/51", + "fift": "[ref] IFELSEREF" + }, + "bytecode": { + "doc_opcode": "E30E", + "tlb": "#E30E c:^Cell", + "prefix": "E30E", + "operands": [ + { + "name": "c", + "loader": "ref", + "loader_args": {} + } + ] + }, + "value_flow": { + "doc_stack": "f c -", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + }, + { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "IFREFELSEREF", + "doc": { + "category": "cont_conditional", + "description": "Equivalent to `PUSHREFCONT` `PUSHREFCONT` `IFELSE`.", + "gas": "126/51", + "fift": "[ref] [ref] IFREFELSEREF" + }, + "bytecode": { + "doc_opcode": "E30F", + "tlb": "#E30F c1:^Cell c2:^Cell", + "prefix": "E30F", + "operands": [ + { + "name": "c1", + "loader": "ref", + "loader_args": {} + }, + { + "name": "c2", + "loader": "ref", + "loader_args": {} + } + ] + }, + "value_flow": { + "doc_stack": "f -", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c1", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + }, + { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "IFBITJMP", + "doc": { + "category": "cont_conditional", + "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" + }, + "bytecode": { + "doc_opcode": "E39_n", + "tlb": "#E39_ n:uint5", + "prefix": "E39_", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 5 + } + } + ] + }, + "value_flow": { + "doc_stack": "x c - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c" + } + ] + } + }, + { + "mnemonic": "IFNBITJMP", + "doc": { + "category": "cont_conditional", + "description": "Jumps to `c` if bit `0 <= n <= 31` is not set in integer `x`.", + "gas": "26", + "fift": "[n] IFNBITJMP" + }, + "bytecode": { + "doc_opcode": "E3B_n", + "tlb": "#E3B_ n:uint5", + "prefix": "E3B_", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 5 + } + } + ] + }, + "value_flow": { + "doc_stack": "x c - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c" + } + ] + } + }, + { + "mnemonic": "IFBITJMPREF", + "doc": { + "category": "cont_conditional", + "description": "Performs a `JMPREF` if bit `0 <= n <= 31` is set in integer `x`.", + "gas": "126/51", + "fift": "[ref] [n] IFBITJMPREF" + }, + "bytecode": { + "doc_opcode": "E3D_n", + "tlb": "#E3D_ n:uint5 c:^Cell", + "prefix": "E3D_", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 5 + } + }, + { + "name": "c", + "loader": "ref", + "loader_args": {} + } + ] + }, + "value_flow": { + "doc_stack": "x - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c" + } + ] + } + }, + { + "mnemonic": "IFNBITJMPREF", + "doc": { + "category": "cont_conditional", + "description": "Performs a `JMPREF` if bit `0 <= n <= 31` is not set in integer `x`.", + "gas": "126/51", + "fift": "[ref] [n] IFNBITJMPREF" + }, + "bytecode": { + "doc_opcode": "E3F_n", + "tlb": "#E3F_ n:uint5 c:^Cell", + "prefix": "E3F_", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 5 + } + }, + { + "name": "c", + "loader": "ref", + "loader_args": {} + } + ] + }, + "value_flow": { + "doc_stack": "x - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c" + } + ] + } + }, + { + "mnemonic": "REPEAT", + "doc": { + "category": "cont_loops", + "description": "Executes continuation `c` `n` times, if integer `n` is non-negative. If `n>=2^31` or `n<-2^31`, generates a range check exception.\nNotice that a `RET` inside the code of `c` works as a `continue`, not as a `break`. One should use either alternative (experimental) loops or alternative `RETALT` (along with a `SETEXITALT` before the loop) to `break` out of a loop.", + "gas": "18", + "fift": "REPEAT", + "fift_examples": [ + { + "fift": "REPEAT:<{ code }> <{ code }>REPEAT", + "description": "Equivalent to `<{ code }> CONT` `REPEAT`." + } + ] + }, + "bytecode": { + "doc_opcode": "E4", + "tlb": "#E4", + "prefix": "E4", + "operands": [] + }, + "value_flow": { + "doc_stack": "n c - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "special", + "name": "repeat", + "args": { + "count": "n", + "body": { + "type": "variable", + "var_name": "c" + }, + "after": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ], + "nobranch": true + } + }, + { + "mnemonic": "REPEATEND", + "doc": { + "category": "cont_loops", + "description": "Similar to `REPEAT`, but it is applied to the current continuation `cc`.", + "gas": "18", + "fift": "REPEATEND\nREPEAT:" + }, + "bytecode": { + "doc_opcode": "E5", + "tlb": "#E5", + "prefix": "E5", + "operands": [] + }, + "value_flow": { + "doc_stack": "n - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "special", + "name": "repeat", + "args": { + "count": "n", + "body": { + "type": "cc" + }, + "after": { + "type": "register", + "index": 0 + } + } + } + ], + "nobranch": true + } + }, + { + "mnemonic": "UNTIL", + "doc": { + "category": "cont_loops", + "description": "Executes continuation `c`, then pops an integer `x` from the resulting stack. If `x` is zero, performs another iteration of this loop. The actual implementation of this primitive involves an extraordinary continuation `ec_until` with its arguments set to the body of the loop (continuation `c`) and the original current continuation `cc`. This extraordinary continuation is then saved into the savelist of `c` as `c.c0` and the modified `c` is then executed. The other loop primitives are implemented similarly with the aid of suitable extraordinary continuations.", + "gas": "18", + "fift": "UNTIL", + "fift_examples": [ + { + "fift": "UNTIL:<{ code }> <{ code }>UNTIL", + "description": "Equivalent to `<{ code }> CONT` `UNTIL`." + } + ] + }, + "bytecode": { + "doc_opcode": "E6", + "tlb": "#E6", + "prefix": "E6", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "special", + "name": "until", + "args": { + "body": { + "type": "variable", + "var_name": "c" + }, + "after": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + } + } + ] + } + }, + { + "mnemonic": "UNTILEND", + "doc": { + "category": "cont_loops", + "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:" + }, + "bytecode": { + "doc_opcode": "E7", + "tlb": "#E7", + "prefix": "E7", + "operands": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "cc", + "save": { + "c0": { + "type": "special", + "name": "until", + "args": { + "body": { + "type": "cc" + }, + "after": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "WHILE", + "doc": { + "category": "cont_loops", + "description": "Executes `c'` and pops an integer `x` from the resulting stack. If `x` is zero, exists the loop and transfers control to the original `cc`. If `x` is non-zero, executes `c`, and then begins a new iteration.", + "gas": "18", + "fift": "WHILE", + "fift_examples": [ + { + "fift": "WHILE:<{ cond }>DO<{ code }>", + "description": "Equivalent to `<{ cond }> CONT` `<{ code }> CONT` `WHILE`." + } + ] + }, + "bytecode": { + "doc_opcode": "E8", + "tlb": "#E8", + "prefix": "E8", + "operands": [] + }, + "value_flow": { + "doc_stack": "c' c - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "special", + "name": "while", + "args": { + "cond": { + "type": "variable", + "var_name": "c2" + }, + "body": { + "type": "variable", + "var_name": "c" + }, + "after": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + } + } + ] + } + }, + { + "mnemonic": "WHILEEND", + "doc": { + "category": "cont_loops", + "description": "Similar to `WHILE`, but uses the current continuation `cc` as the loop body.", + "gas": "18", + "fift": "WHILEEND" + }, + "bytecode": { + "doc_opcode": "E9", + "tlb": "#E9", + "prefix": "E9", + "operands": [] + }, + "value_flow": { + "doc_stack": "c' - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "special", + "name": "while", + "args": { + "cond": { + "type": "variable", + "var_name": "c2" + }, + "body": { + "type": "cc" + }, + "after": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "AGAIN", + "doc": { + "category": "cont_loops", + "description": "Similar to `REPEAT`, but executes `c` infinitely many times. A `RET` only begins a new iteration of the infinite loop, which can be exited only by an exception, or a `RETALT` (or an explicit `JMPX`).", + "gas": "18", + "fift": "AGAIN", + "fift_examples": [ + { + "fift": "AGAIN:<{ code }> <{ code }>AGAIN", + "description": "Equivalent to `<{ code }> CONT` `AGAIN`." + } + ] + }, + "bytecode": { + "doc_opcode": "EA", + "tlb": "#EA", + "prefix": "EA", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "special", + "name": "again", + "args": { + "body": { + "type": "variable", + "var_name": "c" + } + } + } + ] + } + }, + { + "mnemonic": "AGAINEND", + "doc": { + "category": "cont_loops", + "description": "Similar to `AGAIN`, but performed with respect to the current continuation `cc`.", + "gas": "18", + "fift": "AGAINEND\nAGAIN:" + }, + "bytecode": { + "doc_opcode": "EB", + "tlb": "#EB", + "prefix": "EB", + "operands": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "special", + "name": "again", + "args": { + "body": { + "type": "cc" + } + } + } + ] + } + }, + { + "mnemonic": "REPEATBRK", + "doc": { + "category": "cont_loops", + "description": "Similar to `REPEAT`, but also sets `c1` to the original `cc` after saving the old value of `c1` into the savelist of the original `cc`. In this way `RETALT` could be used to break out of the loop body.", + "gas": "26", + "fift": "REPEATBRK", + "fift_examples": [ + { + "fift": "REPEATBRK:<{ code }> <{ code }>REPEATBRK", + "description": "Equivalent to `<{ code }> CONT` `REPEATBRK`." + } + ] + }, + "bytecode": { + "doc_opcode": "E314", + "tlb": "#E314", + "prefix": "E314", + "operands": [] + }, + "value_flow": { + "doc_stack": "n c -", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "special", + "name": "repeat", + "args": { + "count": "n", + "body": { + "type": "variable", + "var_name": "c", + "save": { + "c1": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + }, + "c1": { + "type": "register", + "index": 1 + } + } + } + } + }, + "after": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + }, + "c1": { + "type": "register", + "index": 1 + } + } + } + } + } + ], + "nobranch": true + } + }, + { + "mnemonic": "REPEATENDBRK", + "doc": { + "category": "cont_loops", + "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" + }, + "bytecode": { + "doc_opcode": "E315", + "tlb": "#E315", + "prefix": "E315", + "operands": [] + }, + "value_flow": { + "doc_stack": "n -", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "special", + "name": "repeat", + "args": { + "count": "n", + "body": { + "type": "cc", + "save": { + "c1": { + "type": "register", + "index": 0 + } + } + }, + "after": { + "type": "register", + "index": 0 + } + } + } + ], + "nobranch": true + } + }, + { + "mnemonic": "UNTILBRK", + "doc": { + "category": "cont_loops", + "description": "Similar to `UNTIL`, but also modifies `c1` in the same way as `REPEATBRK`.", + "gas": "26", + "fift": "UNTILBRK", + "fift_examples": [ + { + "fift": "UNTILBRK:<{ code }>", + "description": "Equivalent to `<{ code }> CONT` `UNTILBRK`." + } + ] + }, + "bytecode": { + "doc_opcode": "E316", + "tlb": "#E316", + "prefix": "E316", + "operands": [] + }, + "value_flow": { + "doc_stack": "c -", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "special", + "name": "until", + "args": { + "body": { + "type": "variable", + "var_name": "c", + "save": { + "c1": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + }, + "c1": { + "type": "register", + "index": 1 + } + } + } + } + }, + "after": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + }, + "c1": { + "type": "register", + "index": 1 + } + } + } + } + }, + "c1": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + }, + "c1": { + "type": "register", + "index": 1 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "UNTILENDBRK", + "doc": { + "category": "cont_loops", + "description": "Equivalent to `SAMEALTSAVE` `UNTILEND`.", + "gas": "26", + "fift": "UNTILENDBRK\nUNTILBRK:" + }, + "bytecode": { + "doc_opcode": "E317", + "tlb": "#E317", + "prefix": "E317", + "operands": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "cc", + "save": { + "c0": { + "type": "special", + "name": "until", + "args": { + "body": { + "type": "cc", + "save": { + "c1": { + "type": "register", + "index": 0 + } + } + }, + "after": { + "type": "register", + "index": 0 + } + } + }, + "c1": { + "type": "register", + "index": 0 + } + } + } + ] + } + }, + { + "mnemonic": "WHILEBRK", + "doc": { + "category": "cont_loops", + "description": "Similar to `WHILE`, but also modifies `c1` in the same way as `REPEATBRK`.", + "gas": "26", + "fift": "WHILEBRK", + "fift_examples": [ + { + "fift": "WHILEBRK:<{ cond }>DO<{ code }>", + "description": "Equivalent to `<{ cond }> CONT` `<{ code }> CONT` `WHILEBRK`." + } + ] + }, + "bytecode": { + "doc_opcode": "E318", + "tlb": "#E318", + "prefix": "E318", + "operands": [] + }, + "value_flow": { + "doc_stack": "c' c -", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "special", + "name": "while", + "args": { + "cond": { + "type": "variable", + "var_name": "c2" + }, + "body": { + "type": "variable", + "var_name": "c" + }, + "after": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + }, + "c1": { + "type": "register", + "index": 1 + } + } + } + } + } + } + } + ] + } + }, + { + "mnemonic": "WHILEENDBRK", + "doc": { + "category": "cont_loops", + "description": "Equivalent to `SAMEALTSAVE` `WHILEEND`.", + "gas": "26", + "fift": "WHILEENDBRK" + }, + "bytecode": { + "doc_opcode": "E319", + "tlb": "#E319", + "prefix": "E319", + "operands": [] + }, + "value_flow": { + "doc_stack": "c -", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "AGAINBRK", + "doc": { + "category": "cont_loops", + "description": "Similar to `AGAIN`, but also modifies `c1` in the same way as `REPEATBRK`.", + "gas": "26", + "fift": "AGAINBRK", + "fift_examples": [ + { + "fift": "AGAINBRK:<{ code }>", + "description": "Equivalent to `<{ code }> CONT` `AGAINBRK`." + } + ] + }, + "bytecode": { + "doc_opcode": "E31A", + "tlb": "#E31A", + "prefix": "E31A", + "operands": [] + }, + "value_flow": { + "doc_stack": "c -", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "AGAINENDBRK", + "doc": { + "category": "cont_loops", + "description": "Equivalent to `SAMEALTSAVE` `AGAINEND`.", + "gas": "26", + "fift": "AGAINENDBRK\nAGAINBRK:" + }, + "bytecode": { + "doc_opcode": "E31B", + "tlb": "#E31B", + "prefix": "E31B", + "operands": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SETCONTARGS_N", + "doc": { + "category": "cont_stack", + "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\u0432\u0402\u045c", + "fift": "[r] [n] SETCONTARGS" + }, + "bytecode": { + "doc_opcode": "ECrn", + "tlb": "#EC r:uint4 n:uint4", + "prefix": "EC", + "operands": [ + { + "name": "r", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "x_1 x_2...x_r c - c'", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "r", + "array_entry": [ + { + "type": "simple", + "name": "x" + } + ] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + } + ] + } + } + }, + { + "mnemonic": "RETURNARGS", + "doc": { + "category": "cont_stack", + "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\u0432\u0402\u045c", + "fift": "[p] RETURNARGS" + }, + "bytecode": { + "doc_opcode": "ED0p", + "tlb": "#ED0 p:uint4", + "prefix": "ED0", + "operands": [ + { + "name": "p", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "-" + } + }, + { + "mnemonic": "RETURNVARARGS", + "doc": { + "category": "cont_stack", + "description": "Similar to `RETURNARGS`, but with Integer `0 <= p <= 255` taken from the stack.", + "gas": "26+s\u0432\u0402\u045c", + "fift": "RETURNVARARGS" + }, + "bytecode": { + "doc_opcode": "ED10", + "tlb": "#ED10", + "prefix": "ED10", + "operands": [] + }, + "value_flow": { + "doc_stack": "p -" + } + }, + { + "mnemonic": "SETCONTVARARGS", + "doc": { + "category": "cont_stack", + "description": "Similar to `SETCONTARGS`, but with `0 <= r <= 255` and `-1 <= n <= 255` taken from the stack.", + "gas": "26+s\u0432\u0402\u045c", + "fift": "SETCONTVARARGS" + }, + "bytecode": { + "doc_opcode": "ED11", + "tlb": "#ED11", + "prefix": "ED11", + "operands": [] + }, + "value_flow": { + "doc_stack": "x_1 x_2...x_r c r n - c'", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "r", + "array_entry": [ + { + "type": "simple", + "name": "x" + } + ] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + } + ] + } + } + }, + { + "mnemonic": "SETNUMVARARGS", + "doc": { + "category": "cont_stack", + "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" + }, + "bytecode": { + "doc_opcode": "ED12", + "tlb": "#ED12", + "prefix": "ED12", + "operands": [] + }, + "value_flow": { + "doc_stack": "c n - c'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + } + ] + } + } + }, + { + "mnemonic": "BLESS", + "doc": { + "category": "cont_create", + "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" + }, + "bytecode": { + "doc_opcode": "ED1E", + "tlb": "#ED1E", + "prefix": "ED1E", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - c", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + } + } + }, + { + "mnemonic": "BLESSVARARGS", + "doc": { + "category": "cont_create", + "description": "Equivalent to `ROT` `BLESS` `ROTREV` `SETCONTVARARGS`.", + "gas": "26+s\u0432\u0402\u045c", + "fift": "BLESSVARARGS" + }, + "bytecode": { + "doc_opcode": "ED1F", + "tlb": "#ED1F", + "prefix": "ED1F", + "operands": [] + }, + "value_flow": { + "doc_stack": "x_1...x_r s r n - c", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "r", + "array_entry": [ + { + "type": "simple", + "name": "x" + } + ] + }, + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + } + } + }, + { + "mnemonic": "BLESSARGS", + "doc": { + "category": "cont_create", + "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" + }, + "bytecode": { + "doc_opcode": "EErn", + "tlb": "#EE r:uint4 n:uint4", + "prefix": "EE", + "operands": [ + { + "name": "r", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "x_1...x_r s - c", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "r", + "array_entry": [ + { + "type": "simple", + "name": "x" + } + ] + }, + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + } + } + }, + { + "mnemonic": "PUSHCTR", + "doc": { + "category": "cont_registers", + "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" + }, + "bytecode": { + "doc_opcode": "ED4i", + "tlb": "#ED4 i:uint4", + "prefix": "ED4", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "- x", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x" + } + ] + } + } + }, + { + "mnemonic": "POPCTR", + "doc": { + "category": "cont_registers", + "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" + }, + "bytecode": { + "doc_opcode": "ED5i", + "tlb": "#ED5 i:uint4", + "prefix": "ED5", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SETCONTCTR", + "doc": { + "category": "cont_registers", + "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" + }, + "bytecode": { + "doc_opcode": "ED6i", + "tlb": "#ED6 i:uint4", + "prefix": "ED6", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "x c - c'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + } + ] + } + } + }, + { + "mnemonic": "SETRETCTR", + "doc": { + "category": "cont_registers", + "description": "Equivalent to `c0 PUSHCTR` `c[i] SETCONTCTR` `c0 POPCTR`.", + "gas": "26", + "fift": "c[i] SETRETCTR" + }, + "bytecode": { + "doc_opcode": "ED7i", + "tlb": "#ED7 i:uint4", + "prefix": "ED7", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SETALTCTR", + "doc": { + "category": "cont_registers", + "description": "Equivalent to `c1 PUSHCTR` `c[i] SETCONTCTR` `c0 POPCTR`.", + "gas": "26", + "fift": "c[i] SETALTCTR" + }, + "bytecode": { + "doc_opcode": "ED8i", + "tlb": "#ED8 i:uint4", + "prefix": "ED8", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "POPSAVE", + "doc": { + "category": "cont_registers", + "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" + }, + "bytecode": { + "doc_opcode": "ED9i", + "tlb": "#ED9 i:uint4", + "prefix": "ED9", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "x -", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SAVE", + "doc": { + "category": "cont_registers", + "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" + }, + "bytecode": { + "doc_opcode": "EDAi", + "tlb": "#EDA i:uint4", + "prefix": "EDA", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SAVEALT", + "doc": { + "category": "cont_registers", + "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" + }, + "bytecode": { + "doc_opcode": "EDBi", + "tlb": "#EDB i:uint4", + "prefix": "EDB", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SAVEBOTH", + "doc": { + "category": "cont_registers", + "description": "Equivalent to `DUP` `c[i] SAVE` `c[i] SAVEALT`.", + "gas": "26", + "fift": "c[i] SAVEBOTH\nc[i] SAVEBOTHCTR" + }, + "bytecode": { + "doc_opcode": "EDCi", + "tlb": "#EDC i:uint4", + "prefix": "EDC", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "PUSHCTRX", + "doc": { + "category": "cont_registers", + "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 \u0432\u0402\u045aexotic'' 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" + }, + "bytecode": { + "doc_opcode": "EDE0", + "tlb": "#EDE0", + "prefix": "EDE0", + "operands": [] + }, + "value_flow": { + "doc_stack": "i - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x" + } + ] + } + } + }, + { + "mnemonic": "POPCTRX", + "doc": { + "category": "cont_registers", + "description": "Similar to `c[i] POPCTR`, but with `0 <= i <= 255` from the stack.", + "gas": "26", + "fift": "POPCTRX" + }, + "bytecode": { + "doc_opcode": "EDE1", + "tlb": "#EDE1", + "prefix": "EDE1", + "operands": [] + }, + "value_flow": { + "doc_stack": "x i - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SETCONTCTRX", + "doc": { + "category": "cont_registers", + "description": "Similar to `c[i] SETCONTCTR`, but with `0 <= i <= 255` from the stack.", + "gas": "26", + "fift": "SETCONTCTRX" + }, + "bytecode": { + "doc_opcode": "EDE2", + "tlb": "#EDE2", + "prefix": "EDE2", + "operands": [] + }, + "value_flow": { + "doc_stack": "x c i - c'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + } + ] + } + } + }, + { + "mnemonic": "COMPOS", + "doc": { + "category": "cont_registers", + "description": "Computes the composition `compose0(c, c\u0432\u0402\u2122)`, which has the meaning of \u0432\u0402\u045aperform `c`, and, if successful, perform `c'`'' (if `c` is a boolean circuit) or simply \u0432\u0402\u045aperform `c`, then `c'`''. Equivalent to `SWAP` `c0 SETCONT`.", + "gas": "26", + "fift": "COMPOS\nBOOLAND" + }, + "bytecode": { + "doc_opcode": "EDF0", + "tlb": "#EDF0", + "prefix": "EDF0", + "operands": [] + }, + "value_flow": { + "doc_stack": "c c' - c''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c3", + "value_types": ["Continuation"] + } + ] + } + } + }, + { + "mnemonic": "COMPOSALT", + "doc": { + "category": "cont_registers", + "description": "Computes the alternative composition `compose1(c, c\u0432\u0402\u2122)`, which has the meaning of \u0432\u0402\u045aperform `c`, and, if not successful, perform `c'`'' (if `c` is a boolean circuit). Equivalent to `SWAP` `c1 SETCONT`.", + "gas": "26", + "fift": "COMPOSALT\nBOOLOR" + }, + "bytecode": { + "doc_opcode": "EDF1", + "tlb": "#EDF1", + "prefix": "EDF1", + "operands": [] + }, + "value_flow": { + "doc_stack": "c c' - c''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c3", + "value_types": ["Continuation"] + } + ] + } + } + }, + { + "mnemonic": "COMPOSBOTH", + "doc": { + "category": "cont_registers", + "description": "Computes composition `compose1(compose0(c, c\u0432\u0402\u2122), c\u0432\u0402\u2122)`, which has the meaning of \u0432\u0402\u045acompute boolean circuit `c`, then compute `c'`, regardless of the result of `c`''.", + "gas": "26", + "fift": "COMPOSBOTH" + }, + "bytecode": { + "doc_opcode": "EDF2", + "tlb": "#EDF2", + "prefix": "EDF2", + "operands": [] + }, + "value_flow": { + "doc_stack": "c c' - c''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c3", + "value_types": ["Continuation"] + } + ] + } + } + }, + { + "mnemonic": "ATEXIT", + "doc": { + "category": "cont_registers", + "description": "Sets `c0` to `compose0(c, c0)`. In other words, `c` will be executed before exiting current subroutine.", + "gas": "26", + "fift": "ATEXIT", + "fift_examples": [ + { + "fift": "ATEXIT:<{ code }> <{ code }>ATEXIT", + "description": "Equivalent to `<{ code }> CONT` `ATEXIT`." + } + ] + }, + "bytecode": { + "doc_opcode": "EDF3", + "tlb": "#EDF3", + "prefix": "EDF3", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "ATEXITALT", + "doc": { + "category": "cont_registers", + "description": "Sets `c1` to `compose1(c, c1)`. In other words, `c` will be executed before exiting current subroutine by its alternative return path.", + "gas": "26", + "fift": "ATEXITALT", + "fift_examples": [ + { + "fift": "ATEXITALT:<{ code }> <{ code }>ATEXITALT", + "description": "Equivalent to `<{ code }> CONT` `ATEXITALT`." + } + ] + }, + "bytecode": { + "doc_opcode": "EDF4", + "tlb": "#EDF4", + "prefix": "EDF4", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SETEXITALT", + "doc": { + "category": "cont_registers", + "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" + }, + "bytecode": { + "doc_opcode": "EDF5", + "tlb": "#EDF5", + "prefix": "EDF5", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "THENRET", + "doc": { + "category": "cont_registers", + "description": "Computes `compose0(c, c0)`.", + "gas": "26", + "fift": "THENRET" + }, + "bytecode": { + "doc_opcode": "EDF6", + "tlb": "#EDF6", + "prefix": "EDF6", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - c'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + } + ] + } + } + }, + { + "mnemonic": "THENRETALT", + "doc": { + "category": "cont_registers", + "description": "Computes `compose0(c, c1)`", + "gas": "26", + "fift": "THENRETALT" + }, + "bytecode": { + "doc_opcode": "EDF7", + "tlb": "#EDF7", + "prefix": "EDF7", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - c'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + } + ] + } + } + }, + { + "mnemonic": "INVERT", + "doc": { + "category": "cont_registers", + "description": "Interchanges `c0` and `c1`.", + "gas": "26", + "fift": "INVERT" + }, + "bytecode": { + "doc_opcode": "EDF8", + "tlb": "#EDF8", + "prefix": "EDF8", + "operands": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "BOOLEVAL", + "doc": { + "category": "cont_registers", + "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" + }, + "bytecode": { + "doc_opcode": "EDF9", + "tlb": "#EDF9", + "prefix": "EDF9", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "special", + "name": "pushint", + "args": { + "next": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + }, + "c1": { + "type": "register", + "index": 1 + } + } + }, + "value": -1 + } + }, + "c1": { + "type": "special", + "name": "pushint", + "args": { + "next": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + }, + "c1": { + "type": "register", + "index": 1 + } + } + }, + "value": 0 + } + } + } + } + ] + } + }, + { + "mnemonic": "SAMEALT", + "doc": { + "category": "cont_registers", + "description": "Sets `c1` to `c0`. Equivalent to `c0 PUSHCTR` `c1 POPCTR`.", + "gas": "26", + "fift": "SAMEALT" + }, + "bytecode": { + "doc_opcode": "EDFA", + "tlb": "#EDFA", + "prefix": "EDFA", + "operands": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SAMEALTSAVE", + "doc": { + "category": "cont_registers", + "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" + }, + "bytecode": { + "doc_opcode": "EDFB", + "tlb": "#EDFB", + "prefix": "EDFB", + "operands": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "CALLDICT", + "doc": { + "category": "cont_dict", + "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" + }, + "bytecode": { + "doc_opcode": "F0nn", + "tlb": "#F0 n:uint8", + "prefix": "F0", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "- nn", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + } + }, + "control_flow": { + "branches": [ + { + "type": "register", + "index": 3, + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "CALLDICT_LONG", + "doc": { + "category": "cont_dict", + "description": "For `0 <= n < 2^14`, an encoding of `[n] CALL` for larger values of `n`.", + "gas": "", + "fift": "[n] CALL\n[n] CALLDICT" + }, + "bytecode": { + "doc_opcode": "F12_n", + "tlb": "#F12_ n:uint14", + "prefix": "F12_", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 14 + } + } + ] + }, + "value_flow": { + "doc_stack": "- n", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + } + }, + "control_flow": { + "branches": [ + { + "type": "register", + "index": 3, + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "JMPDICT", + "doc": { + "category": "cont_dict", + "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" + }, + "bytecode": { + "doc_opcode": "F16_n", + "tlb": "#F16_ n:uint14", + "prefix": "F16_", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 14 + } + } + ] + }, + "value_flow": { + "doc_stack": " - n", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + } + }, + "control_flow": { + "branches": [ + { + "type": "register", + "index": 3 + } + ] + } + }, + { + "mnemonic": "PREPAREDICT", + "doc": { + "category": "cont_dict", + "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" + }, + "bytecode": { + "doc_opcode": "F1A_n", + "tlb": "#F1A_ n:uint14", + "prefix": "F1A_", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 14 + } + } + ] + }, + "value_flow": { + "doc_stack": " - n c", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + } + ] + } + } + }, + { + "mnemonic": "THROW_SHORT", + "doc": { + "category": "exceptions", + "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" + }, + "bytecode": { + "doc_opcode": "F22_n", + "tlb": "#F22_ n:uint6", + "prefix": "F22_", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 6 + } + } + ] + }, + "value_flow": { + "doc_stack": " - 0 n", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "THROWIF_SHORT", + "doc": { + "category": "exceptions", + "description": "Throws exception `0 <= n <= 63` with parameter zero only if integer `f!=0`.", + "gas": "26/76", + "fift": "[n] THROWIF" + }, + "bytecode": { + "doc_opcode": "F26_n", + "tlb": "#F26_ n:uint6", + "prefix": "F26_", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 6 + } + } + ] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "THROWIFNOT_SHORT", + "doc": { + "category": "exceptions", + "description": "Throws exception `0 <= n <= 63` with parameter zero only if integer `f=0`.", + "gas": "26/76", + "fift": "[n] THROWIFNOT" + }, + "bytecode": { + "doc_opcode": "F2A_n", + "tlb": "#F2A_ n:uint6", + "prefix": "F2A_", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 6 + } + } + ] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "THROW", + "doc": { + "category": "exceptions", + "description": "For `0 <= n < 2^11`, an encoding of `[n] THROW` for larger values of `n`.", + "gas": "84", + "fift": "[n] THROW" + }, + "bytecode": { + "doc_opcode": "F2C4_n", + "tlb": "#F2C4_ n:uint11", + "prefix": "F2C4_", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 11 + } + } + ] + }, + "value_flow": { + "doc_stack": "- 0 nn", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "THROWARG", + "doc": { + "category": "exceptions", + "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" + }, + "bytecode": { + "doc_opcode": "F2CC_n", + "tlb": "#F2CC_ n:uint11", + "prefix": "F2CC_", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 11 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - x nn", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "THROWIF", + "doc": { + "category": "exceptions", + "description": "For `0 <= n < 2^11`, an encoding of `[n] THROWIF` for larger values of `n`.", + "gas": "34/84", + "fift": "[n] THROWIF" + }, + "bytecode": { + "doc_opcode": "F2D4_n", + "tlb": "#F2D4_ n:uint11", + "prefix": "F2D4_", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 11 + } + } + ] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "THROWARGIF", + "doc": { + "category": "exceptions", + "description": "Throws exception `0 <= nn < 2^11` with parameter `x` only if integer `f!=0`.", + "gas": "34/84", + "fift": "[n] THROWARGIF" + }, + "bytecode": { + "doc_opcode": "F2DC_n", + "tlb": "#F2DC_ n:uint11", + "prefix": "F2DC_", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 11 + } + } + ] + }, + "value_flow": { + "doc_stack": "x f - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "THROWIFNOT", + "doc": { + "category": "exceptions", + "description": "For `0 <= n < 2^11`, an encoding of `[n] THROWIFNOT` for larger values of `n`.", + "gas": "34/84", + "fift": "[n] THROWIFNOT" + }, + "bytecode": { + "doc_opcode": "F2E4_n", + "tlb": "#F2E4_ n:uint11", + "prefix": "F2E4_", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 11 + } + } + ] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "THROWARGIFNOT", + "doc": { + "category": "exceptions", + "description": "Throws exception `0 <= n < 2^11` with parameter `x` only if integer `f=0`.", + "gas": "34/84", + "fift": "[n] THROWARGIFNOT" + }, + "bytecode": { + "doc_opcode": "F2EC_n", + "tlb": "#F2EC_ n:uint11", + "prefix": "F2EC_", + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 11 + } + } + ] + }, + "value_flow": { + "doc_stack": "x f - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "THROWANY", + "doc": { + "category": "exceptions", + "description": "Throws exception `0 <= n < 2^16` with parameter zero.\nApproximately equivalent to `ZERO` `SWAP` `THROWARGANY`.", + "gas": "76", + "fift": "THROWANY" + }, + "bytecode": { + "doc_opcode": "F2F0", + "tlb": "#F2F0", + "prefix": "F2F0", + "operands": [] + }, + "value_flow": { + "doc_stack": "n - 0 n", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "THROWARGANY", + "doc": { + "category": "exceptions", + "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" + }, + "bytecode": { + "doc_opcode": "F2F1", + "tlb": "#F2F1", + "prefix": "F2F1", + "operands": [] + }, + "value_flow": { + "doc_stack": "x n - x n", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "THROWANYIF", + "doc": { + "category": "exceptions", + "description": "Throws exception `0 <= n < 2^16` with parameter zero only if `f!=0`.", + "gas": "26/76", + "fift": "THROWANYIF" + }, + "bytecode": { + "doc_opcode": "F2F2", + "tlb": "#F2F2", + "prefix": "F2F2", + "operands": [] + }, + "value_flow": { + "doc_stack": "n f - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "THROWARGANYIF", + "doc": { + "category": "exceptions", + "description": "Throws exception `0 <= n<2^16` with parameter `x` only if `f!=0`.", + "gas": "26/76", + "fift": "THROWARGANYIF" + }, + "bytecode": { + "doc_opcode": "F2F3", + "tlb": "#F2F3", + "prefix": "F2F3", + "operands": [] + }, + "value_flow": { + "doc_stack": "x n f - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "THROWANYIFNOT", + "doc": { + "category": "exceptions", + "description": "Throws exception `0 <= n<2^16` with parameter zero only if `f=0`.", + "gas": "26/76", + "fift": "THROWANYIFNOT" + }, + "bytecode": { + "doc_opcode": "F2F4", + "tlb": "#F2F4", + "prefix": "F2F4", + "operands": [] + }, + "value_flow": { + "doc_stack": "n f - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "THROWARGANYIFNOT", + "doc": { + "category": "exceptions", + "description": "Throws exception `0 <= n<2^16` with parameter `x` only if `f=0`.", + "gas": "26/76", + "fift": "THROWARGANYIFNOT" + }, + "bytecode": { + "doc_opcode": "F2F5", + "tlb": "#F2F5", + "prefix": "F2F5", + "operands": [] + }, + "value_flow": { + "doc_stack": "x n f - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "f", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "TRY", + "doc": { + "category": "exceptions", + "description": "Sets `c2` to `c'`, first saving the old value of `c2` both into the savelist of `c'` and into the savelist of the current continuation, which is stored into `c.c0` and `c'.c0`. Then runs `c` similarly to `EXECUTE`. If `c` does not throw any exceptions, the original value of `c2` is automatically restored on return from `c`. If an exception occurs, the execution is transferred to `c'`, but the original value of `c2` is restored in the process, so that `c'` can re-throw the exception by `THROWANY` if it cannot handle it by itself.", + "gas": "26", + "fift": "TRY", + "fift_examples": [ + { + "fift": "TRY:<{ code1 }>CATCH<{ code2 }>", + "description": "Equivalent to `<{ code1 }> CONT` `<{ code2 }> CONT` `TRY`." + } + ] + }, + "bytecode": { + "doc_opcode": "F2FF", + "tlb": "#F2FF", + "prefix": "F2FF", + "operands": [] + }, + "value_flow": { + "doc_stack": "c c' - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + }, + "c1": { + "type": "register", + "index": 1 + }, + "c2": { + "type": "register", + "index": 2 + } + } + }, + "c2": { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + }, + "c1": { + "type": "register", + "index": 1 + }, + "c2": { + "type": "register", + "index": 2 + } + } + }, + "c2": { + "type": "register", + "index": 2 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "TRYARGS", + "doc": { + "category": "exceptions", + "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" + }, + "bytecode": { + "doc_opcode": "F3pr", + "tlb": "#F3 p:uint4 r:uint4", + "prefix": "F3", + "operands": [ + { + "name": "p", + "loader": "uint", + "loader_args": { + "size": 4 + } + }, + { + "name": "r", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "c c' - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "r", + "array_entry": [ + { + "type": "simple", + "name": "arg" + } + ] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Continuation"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Continuation"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + }, + "c1": { + "type": "register", + "index": 1 + }, + "c2": { + "type": "register", + "index": 2 + } + } + }, + "c2": { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + }, + "c1": { + "type": "register", + "index": 1 + }, + "c2": { + "type": "register", + "index": 2 + } + } + }, + "c2": { + "type": "register", + "index": 2 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "STDICT", + "doc": { + "category": "dict_serial", + "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" + }, + "bytecode": { + "doc_opcode": "F400", + "tlb": "#F400", + "prefix": "F400", + "operands": [] + }, + "value_flow": { + "doc_stack": "D b - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "SKIPDICT", + "doc": { + "category": "dict_serial", + "description": "Equivalent to `LDDICT` `NIP`.", + "gas": "26", + "fift": "SKIPDICT\nSKIPOPTREF" + }, + "bytecode": { + "doc_opcode": "F401", + "tlb": "#F401", + "prefix": "F401", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDDICTS", + "doc": { + "category": "dict_serial", + "description": "Loads (parses) a (_Slice_-represented) dictionary `s'` from _Slice_ `s`, and returns the remainder of `s` as `s''`.\nThis is a \u0432\u0402\u045asplit function'' for all `HashmapE(n,X)` dictionary types.", + "gas": "26", + "fift": "LDDICTS" + }, + "bytecode": { + "doc_opcode": "F402", + "tlb": "#F402", + "prefix": "F402", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - s' s''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "PLDDICTS", + "doc": { + "category": "dict_serial", + "description": "Preloads a (_Slice_-represented) dictionary `s'` from _Slice_ `s`.\nApproximately equivalent to `LDDICTS` `DROP`.", + "gas": "26", + "fift": "PLDDICTS" + }, + "bytecode": { + "doc_opcode": "F403", + "tlb": "#F403", + "prefix": "F403", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDDICT", + "doc": { + "category": "dict_serial", + "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" + }, + "bytecode": { + "doc_opcode": "F404", + "tlb": "#F404", + "prefix": "F404", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - D s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "PLDDICT", + "doc": { + "category": "dict_serial", + "description": "Preloads a dictionary `D` from _Slice_ `s`.\nApproximately equivalent to `LDDICT` `DROP`.", + "gas": "26", + "fift": "PLDDICT\nPLDOPTREF" + }, + "bytecode": { + "doc_opcode": "F405", + "tlb": "#F405", + "prefix": "F405", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - D", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + } + } + }, + { + "mnemonic": "LDDICTQ", + "doc": { + "category": "dict_serial", + "description": "A quiet version of `LDDICT`.", + "gas": "26", + "fift": "LDDICTQ" + }, + "bytecode": { + "doc_opcode": "F406", + "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"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Integer"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PLDDICTQ", + "doc": { + "category": "dict_serial", + "description": "A quiet version of `PLDDICT`.", + "gas": "26", + "fift": "PLDDICTQ" + }, + "bytecode": { + "doc_opcode": "F407", + "tlb": "#F407", + "prefix": "F407", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - D -1 or 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTGET", + "doc": { + "category": "dict_get", + "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" + }, + "bytecode": { + "doc_opcode": "F40A", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTGETREF", + "doc": { + "category": "dict_get", + "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" + }, + "bytecode": { + "doc_opcode": "F40B", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIGET", + "doc": { + "category": "dict_get", + "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" + }, + "bytecode": { + "doc_opcode": "F40C", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Cell", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIGETREF", + "doc": { + "category": "dict_get", + "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" + }, + "bytecode": { + "doc_opcode": "F40D", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Cell", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUGET", + "doc": { + "category": "dict_get", + "description": "Similar to `DICTIGET`, but with _unsigned_ (big-endian) `n`-bit _Integer_ `i` used as a key.", + "gas": "", + "fift": "DICTUGET" + }, + "bytecode": { + "doc_opcode": "F40E", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Cell", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUGETREF", + "doc": { + "category": "dict_get", + "description": "Similar to `DICTIGETREF`, but with an unsigned `n`-bit _Integer_ key `i`.", + "gas": "", + "fift": "DICTUGETREF" + }, + "bytecode": { + "doc_opcode": "F40F", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Cell", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTSET", + "doc": { + "category": "dict_set", + "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" + }, + "bytecode": { + "doc_opcode": "F412", + "tlb": "#F412", + "prefix": "F412", + "operands": [] + }, + "value_flow": { + "doc_stack": "x k D n - D'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "DICTSETREF", + "doc": { + "category": "dict_set", + "description": "Similar to `DICTSET`, but with the value set to a reference to _Cell_ `c`.", + "gas": "", + "fift": "DICTSETREF" + }, + "bytecode": { + "doc_opcode": "F413", + "tlb": "#F413", + "prefix": "F413", + "operands": [] + }, + "value_flow": { + "doc_stack": "c k D n - D'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "DICTISET", + "doc": { + "category": "dict_set", + "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" + }, + "bytecode": { + "doc_opcode": "F414", + "tlb": "#F414", + "prefix": "F414", + "operands": [] + }, + "value_flow": { + "doc_stack": "x i D n - D'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "DICTISETREF", + "doc": { + "category": "dict_set", + "description": "Similar to `DICTSETREF`, but with the key a signed `n`-bit integer as in `DICTISET`.", + "gas": "", + "fift": "DICTISETREF" + }, + "bytecode": { + "doc_opcode": "F415", + "tlb": "#F415", + "prefix": "F415", + "operands": [] + }, + "value_flow": { + "doc_stack": "c i D n - D'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "DICTUSET", + "doc": { + "category": "dict_set", + "description": "Similar to `DICTISET`, but with `i` an _unsigned_ `n`-bit integer.", + "gas": "", + "fift": "DICTUSET" + }, + "bytecode": { + "doc_opcode": "F416", + "tlb": "#F416", + "prefix": "F416", + "operands": [] + }, + "value_flow": { + "doc_stack": "x i D n - D'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "DICTUSETREF", + "doc": { + "category": "dict_set", + "description": "Similar to `DICTISETREF`, but with `i` unsigned.", + "gas": "", + "fift": "DICTUSETREF" + }, + "bytecode": { + "doc_opcode": "F417", + "tlb": "#F417", + "prefix": "F417", + "operands": [] + }, + "value_flow": { + "doc_stack": "c i D n - D'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "DICTSETGET", + "doc": { + "category": "dict_set", + "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" + }, + "bytecode": { + "doc_opcode": "F41A", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTSETGETREF", + "doc": { + "category": "dict_set", + "description": "Combines `DICTSETREF` with `DICTGETREF` similarly to `DICTSETGET`.", + "gas": "", + "fift": "DICTSETGETREF" + }, + "bytecode": { + "doc_opcode": "F41B", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Cell"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTISETGET", + "doc": { + "category": "dict_set", + "description": "`DICTISETGET`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTISETGET" + }, + "bytecode": { + "doc_opcode": "F41C", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTISETGETREF", + "doc": { + "category": "dict_set", + "description": "`DICTISETGETREF`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTISETGETREF" + }, + "bytecode": { + "doc_opcode": "F41D", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Cell"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUSETGET", + "doc": { + "category": "dict_set", + "description": "`DICTISETGET`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUSETGET" + }, + "bytecode": { + "doc_opcode": "F41E", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUSETGETREF", + "doc": { + "category": "dict_set", + "description": "`DICTISETGETREF`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUSETGETREF" + }, + "bytecode": { + "doc_opcode": "F41F", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Cell"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTREPLACE", + "doc": { + "category": "dict_set", + "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" + }, + "bytecode": { + "doc_opcode": "F422", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTREPLACEREF", + "doc": { + "category": "dict_set", + "description": "A _Replace_ counterpart of `DICTSETREF`.", + "gas": "", + "fift": "DICTREPLACEREF" + }, + "bytecode": { + "doc_opcode": "F423", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIREPLACE", + "doc": { + "category": "dict_set", + "description": "`DICTREPLACE`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIREPLACE" + }, + "bytecode": { + "doc_opcode": "F424", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIREPLACEREF", + "doc": { + "category": "dict_set", + "description": "`DICTREPLACEREF`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIREPLACEREF" + }, + "bytecode": { + "doc_opcode": "F425", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUREPLACE", + "doc": { + "category": "dict_set", + "description": "`DICTREPLACE`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUREPLACE" + }, + "bytecode": { + "doc_opcode": "F426", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUREPLACEREF", + "doc": { + "category": "dict_set", + "description": "`DICTREPLACEREF`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUREPLACEREF" + }, + "bytecode": { + "doc_opcode": "F427", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTREPLACEGET", + "doc": { + "category": "dict_set", + "description": "A _Replace_ counterpart of `DICTSETGET`: on success, also returns the old value associated with the key in question.", + "gas": "", + "fift": "DICTREPLACEGET" + }, + "bytecode": { + "doc_opcode": "F42A", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTREPLACEGETREF", + "doc": { + "category": "dict_set", + "description": "A _Replace_ counterpart of `DICTSETGETREF`.", + "gas": "", + "fift": "DICTREPLACEGETREF" + }, + "bytecode": { + "doc_opcode": "F42B", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Cell"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIREPLACEGET", + "doc": { + "category": "dict_set", + "description": "`DICTREPLACEGET`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIREPLACEGET" + }, + "bytecode": { + "doc_opcode": "F42C", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIREPLACEGETREF", + "doc": { + "category": "dict_set", + "description": "`DICTREPLACEGETREF`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIREPLACEGETREF" + }, + "bytecode": { + "doc_opcode": "F42D", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Cell"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUREPLACEGET", + "doc": { + "category": "dict_set", + "description": "`DICTREPLACEGET`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUREPLACEGET" + }, + "bytecode": { + "doc_opcode": "F42E", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUREPLACEGETREF", + "doc": { + "category": "dict_set", + "description": "`DICTREPLACEGETREF`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUREPLACEGETREF" + }, + "bytecode": { + "doc_opcode": "F42F", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Cell"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTADD", + "doc": { + "category": "dict_set", + "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" + }, + "bytecode": { + "doc_opcode": "F432", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTADDREF", + "doc": { + "category": "dict_set", + "description": "An _Add_ counterpart of `DICTSETREF`.", + "gas": "", + "fift": "DICTADDREF" + }, + "bytecode": { + "doc_opcode": "F433", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIADD", + "doc": { + "category": "dict_set", + "description": "`DICTADD`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIADD" + }, + "bytecode": { + "doc_opcode": "F434", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIADDREF", + "doc": { + "category": "dict_set", + "description": "`DICTADDREF`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIADDREF" + }, + "bytecode": { + "doc_opcode": "F435", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUADD", + "doc": { + "category": "dict_set", + "description": "`DICTADD`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUADD" + }, + "bytecode": { + "doc_opcode": "F436", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUADDREF", + "doc": { + "category": "dict_set", + "description": "`DICTADDREF`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUADDREF" + }, + "bytecode": { + "doc_opcode": "F437", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTADDGET", + "doc": { + "category": "dict_set", + "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" + }, + "bytecode": { + "doc_opcode": "F43A", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTUREMMAXREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTUREMMAX`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTUREMMAXREF" - }, - "bytecode": { - "doc_opcode": "F49F", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTADDGETREF", + "doc": { + "category": "dict_set", + "description": "An _Add_ counterpart of `DICTSETGETREF`.", + "gas": "", + "fift": "DICTADDGETREF" + }, + "bytecode": { + "doc_opcode": "F43B", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Cell"] + } + ] }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "DICTIGETJMP", - "doc": { - "category": "dict_special", - "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" - }, - "bytecode": { - "doc_opcode": "F4A0", - "tlb": "#F4A0", - "prefix": "F4A0", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIADDGET", + "doc": { + "category": "dict_set", + "description": "`DICTADDGET`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIADDGET" + }, + "bytecode": { + "doc_opcode": "F43C", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "x" - } - ] - } - }, - { - "mnemonic": "DICTUGETJMP", - "doc": { - "category": "dict_special", - "description": "Similar to `DICTIGETJMP`, but performs `DICTUGET` instead of `DICTIGET`.", - "gas": "", - "fift": "DICTUGETJMP" - }, - "bytecode": { - "doc_opcode": "F4A1", - "tlb": "#F4A1", - "prefix": "F4A1", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIADDGETREF", + "doc": { + "category": "dict_set", + "description": "`DICTADDGETREF`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIADDGETREF" + }, + "bytecode": { + "doc_opcode": "F43D", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Cell"] + } + ] }, - "outputs": { - "stack": [] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "x" - } - ] - } - }, - { - "mnemonic": "DICTIGETEXEC", - "doc": { - "category": "dict_special", - "description": "Similar to `DICTIGETJMP`, but with `EXECUTE` instead of `JMPX`.", - "gas": "", - "fift": "DICTIGETEXEC" - }, - "bytecode": { - "doc_opcode": "F4A2", - "tlb": "#F4A2", - "prefix": "F4A2", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUADDGET", + "doc": { + "category": "dict_set", + "description": "`DICTADDGET`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUADDGET" + }, + "bytecode": { + "doc_opcode": "F43E", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] }, - "outputs": { - "stack": [] + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] } + ] }, - "control_flow": { - "branches": [ + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUADDGETREF", + "doc": { + "category": "dict_set", + "description": "`DICTADDGETREF`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUADDGETREF" + }, + "bytecode": { + "doc_opcode": "F43F", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + }, { - "type": "variable", - "var_name": "x", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } + "type": "simple", + "name": "c2", + "value_types": ["Cell"] } - ] - } - }, - { - "mnemonic": "DICTUGETEXEC", - "doc": { - "category": "dict_special", - "description": "Similar to `DICTUGETJMP`, but with `EXECUTE` instead of `JMPX`.", - "gas": "", - "fift": "DICTUGETEXEC" - }, - "bytecode": { - "doc_opcode": "F4A3", - "tlb": "#F4A3", - "prefix": "F4A3", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] + ] }, - "outputs": { - "stack": [] + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTSETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTSETB" + }, + "bytecode": { + "doc_opcode": "F441", + "tlb": "#F441", + "prefix": "F441", + "operands": [] + }, + "value_flow": { + "doc_stack": "b k D n - D'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "DICTISETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTISETB" + }, + "bytecode": { + "doc_opcode": "F442", + "tlb": "#F442", + "prefix": "F442", + "operands": [] + }, + "value_flow": { + "doc_stack": "b i D n - D'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "DICTUSETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTUSETB" + }, + "bytecode": { + "doc_opcode": "F443", + "tlb": "#F443", + "prefix": "F443", + "operands": [] + }, + "value_flow": { + "doc_stack": "b i D n - D'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "DICTSETGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTSETGETB" + }, + "bytecode": { + "doc_opcode": "F445", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] } + ] }, - "control_flow": { - "branches": [ + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTISETGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTISETGETB" + }, + "bytecode": { + "doc_opcode": "F446", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, { - "type": "variable", - "var_name": "x", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } + "type": "simple", + "name": "y", + "value_types": ["Slice"] } - ] + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] } - }, - { - "mnemonic": "DICTPUSHCONST", - "doc": { - "category": "dict_special", - "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" + ] + } + } + }, + { + "mnemonic": "DICTUSETGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTUSETGETB" + }, + "bytecode": { + "doc_opcode": "F447", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTREPLACEB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTREPLACEB" + }, + "bytecode": { + "doc_opcode": "F449", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIREPLACEB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTIREPLACEB" + }, + "bytecode": { + "doc_opcode": "F44A", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUREPLACEB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTUREPLACEB" + }, + "bytecode": { + "doc_opcode": "F44B", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTREPLACEGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTREPLACEGETB" + }, + "bytecode": { + "doc_opcode": "F44D", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] + } + ] }, - "bytecode": { - "doc_opcode": "F4A6_n", - "tlb": "#F4A6_ d:^Cell n:uint10", - "prefix": "F4A6_", - "operands": [ + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIREPLACEGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTIREPLACEGETB" + }, + "bytecode": { + "doc_opcode": "F44E", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, { - "name": "d", - "loader": "ref", - "loader_args": {} + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUREPLACEGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTUREPLACEGETB" + }, + "bytecode": { + "doc_opcode": "F44F", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] }, { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 10 - } + "type": "simple", + "name": "y", + "value_types": ["Slice"] } - ] + ] + } + ] }, - "value_flow": { - "doc_stack": " - D n", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PFXDICTGETQ", - "doc": { - "category": "dict_special", - "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" - }, - "bytecode": { - "doc_opcode": "F4A8", - "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"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTADDB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTADDB" + }, + "bytecode": { + "doc_opcode": "F451", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIADDB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTIADDB" + }, + "bytecode": { + "doc_opcode": "F452", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUADDB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTUADDB" + }, + "bytecode": { + "doc_opcode": "F453", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTADDGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTADDGETB" + }, + "bytecode": { + "doc_opcode": "F455", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PFXDICTGET", - "doc": { - "category": "dict_special", - "description": "Similar to `PFXDICTGET`, but throws a cell deserialization failure exception on failure.", - "gas": "", - "fift": "PFXDICTGET" - }, - "bytecode": { - "doc_opcode": "F4A9", - "tlb": "#F4A9", - "prefix": "F4A9", - "operands": [] - }, - "value_flow": { - "doc_stack": "s D n - s' x s''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIADDGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTIADDGETB" + }, + "bytecode": { + "doc_opcode": "F456", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "PFXDICTGETJMP", - "doc": { - "category": "dict_special", - "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" - }, - "bytecode": { - "doc_opcode": "F4AA", - "tlb": "#F4AA", - "prefix": "F4AA", - "operands": [] - }, - "value_flow": { - "doc_stack": "s D n - s' s'' or s" - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "x" - } - ] - } - }, - { - "mnemonic": "PFXDICTGETEXEC", - "doc": { - "category": "dict_special", - "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" - }, - "bytecode": { - "doc_opcode": "F4AB", - "tlb": "#F4AB", - "prefix": "F4AB", - "operands": [] - }, - "value_flow": { - "doc_stack": "s D n - s' s''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUADDGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTUADDGETB" + }, + "bytecode": { + "doc_opcode": "F457", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } - ] + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTDEL", + "doc": { + "category": "dict_delete", + "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" + }, + "bytecode": { + "doc_opcode": "F459", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIDEL", + "doc": { + "category": "dict_delete", + "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` (\u0432\u0402\u045akey not found, dictionary unmodified'').", + "gas": "", + "fift": "DICTIDEL" + }, + "bytecode": { + "doc_opcode": "F45A", + "tlb": "#F45A", + "prefix": "F45A", + "operands": [] + }, + "value_flow": { + "doc_stack": "i D n - D' ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUDEL", + "doc": { + "category": "dict_delete", + "description": "Similar to `DICTIDEL`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUDEL" + }, + "bytecode": { + "doc_opcode": "F45B", + "tlb": "#F45B", + "prefix": "F45B", + "operands": [] + }, + "value_flow": { + "doc_stack": "i D n - D' ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTDELGET", + "doc": { + "category": "dict_delete", + "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" + }, + "bytecode": { + "doc_opcode": "F462", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + } + ] } + ] }, - "control_flow": { - "branches": [ + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTDELGETREF", + "doc": { + "category": "dict_delete", + "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" + }, + "bytecode": { + "doc_opcode": "F463", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, { - "type": "variable", - "var_name": "x", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } + "type": "simple", + "name": "c", + "value_types": ["Cell"] } - ] + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] } - }, - { - "mnemonic": "PFXDICTCONSTGETJMP", - "doc": { - "category": "dict_special", - "description": "Combines `[n] DICTPUSHCONST` for `0 <= n <= 1023` with `PFXDICTGETJMP`.", - "gas": "", - "fift": "[ref] [n] PFXDICTCONSTGETJMP\n[ref] [n] PFXDICTSWITCH" + ] + } + } + }, + { + "mnemonic": "DICTIDELGET", + "doc": { + "category": "dict_delete", + "description": "`DICTDELGET`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIDELGET" + }, + "bytecode": { + "doc_opcode": "F464", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIDELGETREF", + "doc": { + "category": "dict_delete", + "description": "`DICTDELGETREF`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIDELGETREF" + }, + "bytecode": { + "doc_opcode": "F465", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUDELGET", + "doc": { + "category": "dict_delete", + "description": "`DICTDELGET`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUDELGET" + }, + "bytecode": { + "doc_opcode": "F466", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUDELGETREF", + "doc": { + "category": "dict_delete", + "description": "`DICTDELGETREF`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUDELGETREF" + }, + "bytecode": { + "doc_opcode": "F467", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTGETOPTREF", + "doc": { + "category": "dict_mayberef", + "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" + }, + "bytecode": { + "doc_opcode": "F469", + "tlb": "#F469", + "prefix": "F469", + "operands": [] + }, + "value_flow": { + "doc_stack": "k D n - c^?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell", "Null"] + } + ] + } + } + }, + { + "mnemonic": "DICTIGETOPTREF", + "doc": { + "category": "dict_mayberef", + "description": "`DICTGETOPTREF`, but with `i` a signed `n`-bit integer. If the key `i` is out of range, also returns _Null_.", + "gas": "", + "fift": "DICTIGETOPTREF" + }, + "bytecode": { + "doc_opcode": "F46A", + "tlb": "#F46A", + "prefix": "F46A", + "operands": [] + }, + "value_flow": { + "doc_stack": "i D n - c^?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell", "Null"] + } + ] + } + } + }, + { + "mnemonic": "DICTUGETOPTREF", + "doc": { + "category": "dict_mayberef", + "description": "`DICTGETOPTREF`, but with `i` an unsigned `n`-bit integer. If the key `i` is out of range, also returns _Null_.", + "gas": "", + "fift": "DICTUGETOPTREF" + }, + "bytecode": { + "doc_opcode": "F46B", + "tlb": "#F46B", + "prefix": "F46B", + "operands": [] + }, + "value_flow": { + "doc_stack": "i D n - c^?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell", "Null"] + } + ] + } + } + }, + { + "mnemonic": "DICTSETGETOPTREF", + "doc": { + "category": "dict_mayberef", + "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" + }, + "bytecode": { + "doc_opcode": "F46D", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Cell", "Null"] + } + ] + } + } + }, + { + "mnemonic": "DICTISETGETOPTREF", + "doc": { + "category": "dict_mayberef", + "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" + }, + "bytecode": { + "doc_opcode": "F46E", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Cell", "Null"] + } + ] + } + } + }, + { + "mnemonic": "DICTUSETGETOPTREF", + "doc": { + "category": "dict_mayberef", + "description": "Similar to primitive `DICTSETGETOPTREF`, but using unsigned `n`-bit _Integer_ `i` as a key.", + "gas": "", + "fift": "DICTUSETGETOPTREF" + }, + "bytecode": { + "doc_opcode": "F46F", + "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"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "c2", + "value_types": ["Cell", "Null"] + } + ] + } + } + }, + { + "mnemonic": "PFXDICTSET", + "doc": { + "category": "dict_prefix", + "description": "", + "gas": "", + "fift": "PFXDICTSET" + }, + "bytecode": { + "doc_opcode": "F470", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PFXDICTREPLACE", + "doc": { + "category": "dict_prefix", + "description": "", + "gas": "", + "fift": "PFXDICTREPLACE" + }, + "bytecode": { + "doc_opcode": "F471", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PFXDICTADD", + "doc": { + "category": "dict_prefix", + "description": "", + "gas": "", + "fift": "PFXDICTADD" + }, + "bytecode": { + "doc_opcode": "F472", + "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"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PFXDICTDEL", + "doc": { + "category": "dict_prefix", + "description": "", + "gas": "", + "fift": "PFXDICTDEL" + }, + "bytecode": { + "doc_opcode": "F473", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTGETNEXT", + "doc": { + "category": "dict_next", + "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" + }, + "bytecode": { + "doc_opcode": "F474", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "k2", + "value_types": ["Slice"] + } + ] + } + ] }, - "bytecode": { - "doc_opcode": "F4AE_n", - "tlb": "#F4AE_ d:^Cell n:uint10", - "prefix": "F4AE_", - "operands": [ + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTGETNEXTEQ", + "doc": { + "category": "dict_next", + "description": "Similar to `DICTGETNEXT`, but computes the minimal key `k'` that is lexicographically greater than or equal to `k`.", + "gas": "", + "fift": "DICTGETNEXTEQ" + }, + "bytecode": { + "doc_opcode": "F475", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, { - "name": "d", - "loader": "ref", - "loader_args": {} + "type": "simple", + "name": "k2", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTGETPREV", + "doc": { + "category": "dict_next", + "description": "Similar to `DICTGETNEXT`, but computes the maximal key `k'` lexicographically smaller than `k`.", + "gas": "", + "fift": "DICTGETPREV" + }, + "bytecode": { + "doc_opcode": "F476", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] }, { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 10 - } + "type": "simple", + "name": "k2", + "value_types": ["Slice"] } - ] - }, - "value_flow": { - "doc_stack": "s - s' s'' or s" + ] + } + ] }, - "control_flow": { - "branches": [ + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTGETPREVEQ", + "doc": { + "category": "dict_next", + "description": "Similar to `DICTGETPREV`, but computes the maximal key `k'` lexicographically smaller than or equal to `k`.", + "gas": "", + "fift": "DICTGETPREVEQ" + }, + "bytecode": { + "doc_opcode": "F477", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, { - "type": "variable", - "var_name": "x" + "type": "simple", + "name": "k2", + "value_types": ["Slice"] } - ] - } - }, - { - "mnemonic": "DICTIGETJMPZ", - "doc": { - "category": "dict_special", - "description": "A variant of `DICTIGETJMP` that returns index `i` on failure.", - "gas": "", - "fift": "DICTIGETJMPZ" - }, - "bytecode": { - "doc_opcode": "F4BC", - "tlb": "#F4BC", - "prefix": "F4BC", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - i or nothing" + ] + } + ] }, - "control_flow": { - "branches": [ + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIGETNEXT", + "doc": { + "category": "dict_next", + "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" + }, + "bytecode": { + "doc_opcode": "F478", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, { - "type": "variable", - "var_name": "x" + "type": "simple", + "name": "i2", + "value_types": ["Integer"] } - ] - } - }, - { - "mnemonic": "DICTUGETJMPZ", - "doc": { - "category": "dict_special", - "description": "A variant of `DICTUGETJMP` that returns index `i` on failure.", - "gas": "", - "fift": "DICTUGETJMPZ" - }, - "bytecode": { - "doc_opcode": "F4BD", - "tlb": "#F4BD", - "prefix": "F4BD", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - i or nothing" + ] + } + ] }, - "control_flow": { - "branches": [ + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIGETNEXTEQ", + "doc": { + "category": "dict_next", + "description": "Similar to `DICTGETNEXTEQ`, but interprets keys as signed `n`-bit integers.", + "gas": "", + "fift": "DICTIGETNEXTEQ" + }, + "bytecode": { + "doc_opcode": "F479", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, { - "type": "variable", - "var_name": "x" + "type": "simple", + "name": "i2", + "value_types": ["Integer"] } - ] - } - }, - { - "mnemonic": "DICTIGETEXECZ", - "doc": { - "category": "dict_special", - "description": "A variant of `DICTIGETEXEC` that returns index `i` on failure.", - "gas": "", - "fift": "DICTIGETEXECZ" - }, - "bytecode": { - "doc_opcode": "F4BE", - "tlb": "#F4BE", - "prefix": "F4BE", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - i or nothing" + ] + } + ] }, - "control_flow": { - "branches": [ + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIGETPREV", + "doc": { + "category": "dict_next", + "description": "Similar to `DICTGETPREV`, but interprets keys as signed `n`-bit integers.", + "gas": "", + "fift": "DICTIGETPREV" + }, + "bytecode": { + "doc_opcode": "F47A", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, { - "type": "variable", - "var_name": "x", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } + "type": "simple", + "name": "i2", + "value_types": ["Integer"] } - ] - } - }, - { - "mnemonic": "DICTUGETEXECZ", - "doc": { - "category": "dict_special", - "description": "A variant of `DICTUGETEXEC` that returns index `i` on failure.", - "gas": "", - "fift": "DICTUGETEXECZ" - }, - "bytecode": { - "doc_opcode": "F4BF", - "tlb": "#F4BF", - "prefix": "F4BF", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - i or nothing" + ] + } + ] }, - "control_flow": { - "branches": [ + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIGETPREVEQ", + "doc": { + "category": "dict_next", + "description": "Similar to `DICTGETPREVEQ`, but interprets keys as signed `n`-bit integers.", + "gas": "", + "fift": "DICTIGETPREVEQ" + }, + "bytecode": { + "doc_opcode": "F47B", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, { - "type": "variable", - "var_name": "x", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } + "type": "simple", + "name": "i2", + "value_types": ["Integer"] } - ] - } - }, - { - "mnemonic": "SUBDICTGET", - "doc": { - "category": "dict_sub", - "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" - }, - "bytecode": { - "doc_opcode": "F4B1", - "tlb": "#F4B1", - "prefix": "F4B1", - "operands": [] - }, - "value_flow": { - "doc_stack": "k l D n - D'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - } - }, - { - "mnemonic": "SUBDICTIGET", - "doc": { - "category": "dict_sub", - "description": "Variant of `SUBDICTGET` with the prefix represented by a signed big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 257`.", - "gas": "", - "fift": "SUBDICTIGET" - }, - "bytecode": { - "doc_opcode": "F4B2", - "tlb": "#F4B2", - "prefix": "F4B2", - "operands": [] - }, - "value_flow": { - "doc_stack": "x l D n - D'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - } - }, - { - "mnemonic": "SUBDICTUGET", - "doc": { - "category": "dict_sub", - "description": "Variant of `SUBDICTGET` with the prefix represented by an unsigned big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 256`.", - "gas": "", - "fift": "SUBDICTUGET" - }, - "bytecode": { - "doc_opcode": "F4B3", - "tlb": "#F4B3", - "prefix": "F4B3", - "operands": [] - }, - "value_flow": { - "doc_stack": "x l D n - D'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - } - }, - { - "mnemonic": "SUBDICTRPGET", - "doc": { - "category": "dict_sub", - "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" - }, - "bytecode": { - "doc_opcode": "F4B5", - "tlb": "#F4B5", - "prefix": "F4B5", - "operands": [] - }, - "value_flow": { - "doc_stack": "k l D n - D'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - } - }, - { - "mnemonic": "SUBDICTIRPGET", - "doc": { - "category": "dict_sub", - "description": "Variant of `SUBDICTRPGET` with the prefix represented by a signed big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 257`.", - "gas": "", - "fift": "SUBDICTIRPGET" - }, - "bytecode": { - "doc_opcode": "F4B6", - "tlb": "#F4B6", - "prefix": "F4B6", - "operands": [] - }, - "value_flow": { - "doc_stack": "x l D n - D'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - } - }, - { - "mnemonic": "SUBDICTURPGET", - "doc": { - "category": "dict_sub", - "description": "Variant of `SUBDICTRPGET` with the prefix represented by an unsigned big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 256`.", - "gas": "", - "fift": "SUBDICTURPGET" - }, - "bytecode": { - "doc_opcode": "F4B7", - "tlb": "#F4B7", - "prefix": "F4B7", - "operands": [] - }, - "value_flow": { - "doc_stack": "x l D n - D'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] + ] } - } - }, - { - "mnemonic": "ACCEPT", - "doc": { - "category": "app_gas", - "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" + ] }, - "bytecode": { - "doc_opcode": "F800", - "tlb": "#F800", - "prefix": "F800", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "SETGASLIMIT", - "doc": { - "category": "app_gas", - "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" - }, - "bytecode": { - "doc_opcode": "F801", - "tlb": "#F801", - "prefix": "F801", - "operands": [] - }, - "value_flow": { - "doc_stack": "g - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "g", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "GASCONSUMED", - "doc": { - "category": "app_gas", - "description": "Returns gas consumed by VM so far (including this instruction).", - "gas": "26", - "fift": "GASCONSUMED" - }, - "bytecode": { - "doc_opcode": "F802", - "tlb": "#F802", - "prefix": "F802", - "operands": [] - }, - "value_flow": { - "doc_stack": "- g_c", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "g_c", - "value_types": ["Integer"] - } - ] - } + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] } - }, - { - "mnemonic": "COMMIT", - "doc": { - "category": "app_gas", - "description": "Commits the current state of registers `c4` (\u0432\u0402\u045apersistent data'') and `c5` (\u0432\u0402\u045aactions'') so that the current execution is considered \u0432\u0402\u045asuccessful'' with the saved values even if an exception is thrown later.", - "gas": "26", - "fift": "COMMIT" - }, - "bytecode": { - "doc_opcode": "F80F", - "tlb": "#F80F", - "prefix": "F80F", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] + ] + } + } + }, + { + "mnemonic": "DICTUGETNEXT", + "doc": { + "category": "dict_next", + "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" + }, + "bytecode": { + "doc_opcode": "F47C", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i2", + "value_types": ["Integer"] + } + ] } - } - }, - { - "mnemonic": "RANDU256", - "doc": { - "category": "app_rnd", - "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" - }, - "bytecode": { - "doc_opcode": "F810", - "tlb": "#F810", - "prefix": "F810", - "operands": [] + ] }, - "value_flow": { - "doc_stack": "- x", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RAND", - "doc": { - "category": "app_rnd", - "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" - }, - "bytecode": { - "doc_opcode": "F811", - "tlb": "#F811", - "prefix": "F811", - "operands": [] - }, - "value_flow": { - "doc_stack": "y - z", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SETRAND", - "doc": { - "category": "app_rnd", - "description": "Sets the random seed to unsigned 256-bit _Integer_ `x`.", - "gas": "26+|c7|+|c1_1|", - "fift": "SETRAND" - }, - "bytecode": { - "doc_opcode": "F814", - "tlb": "#F814", - "prefix": "F814", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "ADDRAND", - "doc": { - "category": "app_rnd", - "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" - }, - "bytecode": { - "doc_opcode": "F815", - "tlb": "#F815", - "prefix": "F815", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] } - }, - { - "mnemonic": "GETPARAM", - "doc": { - "category": "app_config", - "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" - }, - "bytecode": { - "doc_opcode": "F82i", - "tlb": "#F82 i:uint4", - "prefix": "F82", - "operands": [ + ] + } + } + }, + { + "mnemonic": "DICTUGETNEXTEQ", + "doc": { + "category": "dict_next", + "description": "Similar to `DICTGETNEXTEQ`, but interprets keys as unsigned `n`-bit integers.", + "gas": "", + "fift": "DICTUGETNEXTEQ" + }, + "bytecode": { + "doc_opcode": "F47D", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } + "type": "simple", + "name": "i2", + "value_types": ["Integer"] } - ] - }, - "value_flow": { - "doc_stack": " - x", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] + ] } - } - }, - { - "mnemonic": "CONFIGDICT", - "doc": { - "category": "app_config", - "description": "Returns the global configuration dictionary along with its key length (32).\nEquivalent to `CONFIGROOT` `32 PUSHINT`.", - "gas": "26", - "fift": "CONFIGDICT" + ] }, - "bytecode": { - "doc_opcode": "F830", - "tlb": "#F830", - "prefix": "F830", - "operands": [] - }, - "value_flow": { - "doc_stack": " - D 32", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice", "Null"] - }, - { - "type": "const", - "value": 32, - "value_type": "Integer" - } - ] - } - } - }, - { - "mnemonic": "CONFIGPARAM", - "doc": { - "category": "app_config", - "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" - }, - "bytecode": { - "doc_opcode": "F832", - "tlb": "#F832", - "prefix": "F832", - "operands": [] - }, - "value_flow": { - "doc_stack": "i - c -1 or 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "CONFIGOPTPARAM", - "doc": { - "category": "app_config", - "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" - }, - "bytecode": { - "doc_opcode": "F833", - "tlb": "#F833", - "prefix": "F833", - "operands": [] - }, - "value_flow": { - "doc_stack": "i - c^?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell", "Null"] - } - ] - } + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] } - }, - { - "mnemonic": "PREVMCBLOCKS", - "doc": { - "category": "app_config", - "description": "Retrives `last_mc_blocks` part of PrevBlocksInfo from c7 (parameter 13).", - "gas": "", - "fift": "PREVMCBLOCKS" - }, - "bytecode": { - "doc_opcode": "F83400", - "tlb": "#F83400", - "prefix": "F83400", - "operands": [] - }, - "value_flow": { - "doc_stack": "- t", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] + ] + } + } + }, + { + "mnemonic": "DICTUGETPREV", + "doc": { + "category": "dict_next", + "description": "Similar to `DICTGETPREV`, but interprets keys as unsigned `n`-bit integers.", + "gas": "", + "fift": "DICTUGETPREV" + }, + "bytecode": { + "doc_opcode": "F47E", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i2", + "value_types": ["Integer"] + } + ] } - } - }, - { - "mnemonic": "PREVKEYBLOCK", - "doc": { - "category": "app_config", - "description": "Retrives `prev_key_block` part of PrevBlocksInfo from c7 (parameter 13).", - "gas": "", - "fift": "PREVKEYBLOCK" - }, - "bytecode": { - "doc_opcode": "F83401", - "tlb": "#F83401", - "prefix": "F83401", - "operands": [] + ] }, - "value_flow": { - "doc_stack": "- t", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] - } + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] } - }, - { - "mnemonic": "GLOBALID", - "doc": { - "category": "app_config", - "description": "Retrieves `global_id` from 19 network config.", - "gas": "", - "fift": "GLOBALID" - }, - "bytecode": { - "doc_opcode": "F835", - "tlb": "#F835", - "prefix": "F835", - "operands": [] - }, - "value_flow": { - "doc_stack": "- i", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "GETGLOBVAR", - "doc": { - "category": "app_global", - "description": "Returns the `k`-th global variable for `0 <= k < 255`.\nEquivalent to `c7 PUSHCTR` `SWAP` `INDEXVARQ`.", - "gas": "26", - "fift": "GETGLOBVAR" - }, - "bytecode": { - "doc_opcode": "F840", - "tlb": "#F840", - "prefix": "F840", - "operands": [] - }, - "value_flow": { - "doc_stack": "k - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } - } - }, - { - "mnemonic": "GETGLOB", - "doc": { - "category": "app_global", - "description": "Returns the `k`-th global variable for `1 <= k <= 31`.\nEquivalent to `c7 PUSHCTR` `[k] INDEXQ`.", - "gas": "26", - "fift": "[k] GETGLOB" - }, - "bytecode": { - "doc_opcode": "F85_k", - "tlb": "#F85_ k:(## 5) {1 <= k}", - "prefix": "F85_", - "operands_range_check": { - "length": 5, - "from": 1, - "to": 31 - }, - "operands": [ + ] + } + } + }, + { + "mnemonic": "DICTUGETPREVEQ", + "doc": { + "category": "dict_next", + "description": "Similar to `DICTGETPREVEQ`, but interprets keys a unsigned `n`-bit integers.", + "gas": "", + "fift": "DICTUGETPREVEQ" + }, + "bytecode": { + "doc_opcode": "F47F", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 5 - } + "type": "simple", + "name": "i2", + "value_types": ["Integer"] } - ] + ] + } + ] }, - "value_flow": { - "doc_stack": " - x", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } - } - }, - { - "mnemonic": "SETGLOBVAR", - "doc": { - "category": "app_global", - "description": "Assigns `x` to the `k`-th global variable for `0 <= k < 255`.\nEquivalent to `c7 PUSHCTR` `ROTREV` `SETINDEXVARQ` `c7 POPCTR`.", - "gas": "26+|c7\u0432\u0402\u2122|", - "fift": "SETGLOBVAR" - }, - "bytecode": { - "doc_opcode": "F860", - "tlb": "#F860", - "prefix": "F860", - "operands": [] - }, - "value_flow": { - "doc_stack": "x k - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "k", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "SETGLOB", - "doc": { - "category": "app_global", - "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\u0432\u0402\u2122|", - "fift": "[k] SETGLOB" - }, - "bytecode": { - "doc_opcode": "F87_k", - "tlb": "#F87_ k:(## 5) {1 <= k}", - "prefix": "F87_", - "operands_range_check": { - "length": 5, - "from": 1, - "to": 31 - }, - "operands": [ + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTMIN", + "doc": { + "category": "dict_min", + "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" + }, + "bytecode": { + "doc_opcode": "F482", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 5 - } + "type": "simple", + "name": "k", + "value_types": ["Slice"] } - ] + ] + } + ] }, - "value_flow": { - "doc_stack": "x - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "HASHCU", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F900", - "tlb": "#F900", - "prefix": "F900", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "HASHSU", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F901", - "tlb": "#F901", - "prefix": "F901", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SHA256U", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F902", - "tlb": "#F902", - "prefix": "F902", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXT_SHA256", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90400", - "tlb": "#F90400", - "prefix": "F90400", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_1 ... s_n n - h", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "h", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXT_SHA512", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90401", - "tlb": "#F90401", - "prefix": "F90401", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_1 ... s_n n - h1 h2", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "h1", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "h2", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXT_BLAKE2B", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90402", - "tlb": "#F90402", - "prefix": "F90402", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_1 ... s_n n - h1 h2", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "h1", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "h2", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXT_KECCAK256", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90403", - "tlb": "#F90403", - "prefix": "F90403", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_1 ... s_n n - h", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "h", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXT_KECCAK512", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90404", - "tlb": "#F90404", - "prefix": "F90404", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_1 ... s_n n - h1 h2", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "h1", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "h2", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXTR_SHA256", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90500", - "tlb": "#F90500", - "prefix": "F90500", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_n ... s_1 n - h", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "h", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXTR_SHA512", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90501", - "tlb": "#F90501", - "prefix": "F90501", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_n ... s_1 n - h1 h2", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "h1", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "h2", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXTR_BLAKE2B", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90502", - "tlb": "#F90502", - "prefix": "F90502", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_n ... s_1 n - h1 h2", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "h1", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "h2", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXTR_KECCAK256", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90503", - "tlb": "#F90503", - "prefix": "F90503", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_n ... s_1 n - h", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "h", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXTR_KECCAK512", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90504", - "tlb": "#F90504", - "prefix": "F90504", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_n ... s_1 n - h1 h2", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "h1", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "h2", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXTA_SHA256", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90600", - "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"] - }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXTA_SHA512", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90601", - "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"] - }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXTA_BLAKE2B", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90602", - "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"] - }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXTA_KECCAK256", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90603", - "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"] - }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXTA_KECCAK512", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90604", - "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"] - }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXTAR_SHA256", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90700", - "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"] - }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXTAR_SHA512", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90701", - "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"] - }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXTAR_BLAKE2B", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90702", - "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"] - }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXTAR_KECCAK256", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90703", - "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"] - }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "HASHEXTAR_KECCAK512", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90704", - "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"] - }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "CHKSIGNU", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F910", - "tlb": "#F910", - "prefix": "F910", - "operands": [] - }, - "value_flow": { - "doc_stack": "h s k - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "h", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "CHKSIGNS", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F911", - "tlb": "#F911", - "prefix": "F911", - "operands": [] - }, - "value_flow": { - "doc_stack": "d s k - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "d", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "ECRECOVER", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F912", - "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"] - }, - { - "type": "simple", - "name": "v", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "h", - "value_types": [ - "Integer" - ] - }, - { - "type": "simple", - "name": "x1", - "value_types": [ - "Integer" - ] - }, - { - "type": "simple", - "name": "x2", - "value_types": [ - "Integer" - ] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - - { - "mnemonic": "P256_CHKSIGNU", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F914", - "tlb": "#F914", - "prefix": "F914", - "operands": [] - }, - "value_flow": { - "doc_stack": "h sig k - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "d", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "sig", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "P256_CHKSIGNS", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F915", - "tlb": "#F915", - "prefix": "F915", - "operands": [] - }, - "value_flow": { - "doc_stack": "d sig k - ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "d", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "sig", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RIST255_FROMHASH", - "doc": { - "category": "app_crypto", - "description": "Deterministically generates a valid point `x` from a 512-bit hash (given as two 256-bit integers).", - "gas": "626", - "fift": "RIST255_FROMHASH" - }, - "bytecode": { - "doc_opcode": "F920", - "tlb": "#F920", - "prefix": "F920", - "operands": [] - }, - "value_flow": { - "doc_stack": "h1 h2 - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "h1", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "h2", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RIST255_VALIDATE", - "doc": { - "category": "app_crypto", - "description": "Checks that integer `x` is a valid representation of some curve point. Throws range_chk on error.", - "gas": "226", - "fift": "RIST255_VALIDATE" - }, - "bytecode": { - "doc_opcode": "F921", - "tlb": "#F921", - "prefix": "F921", - "operands": [] - }, - "value_flow": { - "doc_stack": "x -", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - ] - } - } - }, - { - "mnemonic": "RIST255_ADD", - "doc": { - "category": "app_crypto", - "description": "Addition of two points on a curve.", - "gas": "626", - "fift": "RIST255_ADD" - }, - "bytecode": { - "doc_opcode": "F922", - "tlb": "#F922", - "prefix": "F922", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x+y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RIST255_SUB", - "doc": { - "category": "app_crypto", - "description": "Subtraction of two points on curve.", - "gas": "626", - "fift": "RIST255_SUB" - }, - "bytecode": { - "doc_opcode": "F923", - "tlb": "#F923", - "prefix": "F923", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x-y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RIST255_MUL", - "doc": { - "category": "app_crypto", - "description": "Multiplies point `x` by a scalar `n`. Any `n` is valid, including negative.", - "gas": "2026", - "fift": "RIST255_MUL" - }, - "bytecode": { - "doc_opcode": "F924", - "tlb": "#F924", - "prefix": "F924", - "operands": [] - }, - "value_flow": { - "doc_stack": "x n - x*n", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RIST255_MULBASE", - "doc": { - "category": "app_crypto", - "description": "Multiplies the generator point `g` by a scalar `n`. Any `n` is valid, including negative.", - "gas": "776", - "fift": "RIST255_MULBASE" - }, - "bytecode": { - "doc_opcode": "F925", - "tlb": "#F925", - "prefix": "F925", - "operands": [] - }, - "value_flow": { - "doc_stack": "n - g*n", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTMINREF", + "doc": { + "category": "dict_min", + "description": "Similar to `DICTMIN`, but returns the only reference in the value as a _Cell_ `c`.", + "gas": "", + "fift": "DICTMINREF" + }, + "bytecode": { + "doc_opcode": "F483", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + } + ] } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] } - }, - { - "mnemonic": "RIST255_PUSHL", - "doc": { - "category": "app_crypto", - "description": "Pushes integer l=2^252+27742317777372353535851937790883648493, which is the order of the group.", - "gas": "26", - "fift": "RIST255_PUSHL" + ] + } + } + }, + { + "mnemonic": "DICTIMIN", + "doc": { + "category": "dict_min", + "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" + }, + "bytecode": { + "doc_opcode": "F484", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] }, - "bytecode": { - "doc_opcode": "F926", - "tlb": "#F926", - "prefix": "F926", - "operands": [] + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIMINREF", + "doc": { + "category": "dict_min", + "description": "Similar to `DICTIMIN`, but returns the only reference in the value.", + "gas": "", + "fift": "DICTIMINREF" + }, + "bytecode": { + "doc_opcode": "F485", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] }, - "value_flow": { - "doc_stack": "- l", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RIST255_QVALIDATE", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "B7F921", - "tlb": "#B7F921", - "prefix": "B7F921", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - 0 or -1", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RIST255_QADD", - "doc": { - "category": "app_crypto", - "description": "Addition of two points on a curve. Returns -1 on success and 0 on failure.", - "gas": "634", - "fift": "RIST255_QADD" - }, - "bytecode": { - "doc_opcode": "B7F922", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": [ - "Integer" - ] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RIST255_QSUB", - "doc": { - "category": "app_crypto", - "description": "Subtraction of two points on curve. Returns -1 on success and 0 on failure.", - "gas": "634", - "fift": "RIST255_QSUB" - }, - "bytecode": { - "doc_opcode": "B7F923", - "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": [ - "Integer" - ] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RIST255_QMUL", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "B7F924", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": [ - "Integer" - ] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "RIST255_QMULBASE", - "doc": { - "category": "app_crypto", - "description": "Multiplies the generator point `g` by a scalar `n`. Any `n` is valid, including negative.", - "gas": "784", - "fift": "RIST255_QMULBASE" - }, - "bytecode": { - "doc_opcode": "B7F925", - "tlb": "#B7F925", - "prefix": "B7F925", - "operands": [] - }, - "value_flow": { - "doc_stack": "n - 0 or g*n -1", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": [ - "Integer" - ] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BLS_VERIFY", - "doc": { - "category": "app_crypto", - "description": "Checks BLS signature, return true on success, false otherwise.", - "gas": "61034", - "fift": "BLS_VERIFY" - }, - "bytecode": { - "doc_opcode": "F93000", - "tlb": "#F93000", - "prefix": "F93000", - "operands": [] - }, - "value_flow": { - "doc_stack": "pk msg sgn - bool", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "pk", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "msg", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "sgn", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BLS_AGGREGATE", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F93001", - "tlb": "#F93001", - "prefix": "F93001", - "operands": [] - }, - "value_flow": { - "doc_stack": "sig_1 ... sig_n n - sig", - "inputs": { - "stack": [ - { - "type": "array", - "name": "signatures", - "length_var": "n", - "array_entry":[ - { - "type": "simple", - "name": "sig", - "value_types": [ - "Slice" - ] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "BLS_FASTAGGREGATEVERIFY", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F93002", - "tlb": "#F93002", - "prefix": "F93002", - "operands": [] - }, - "value_flow": { - "doc_stack": "pk_1 ... pk_n n msg sig - bool", - "inputs": { - "stack": [ - { - "type": "array", - "name": "public_keys", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "pk", - "value_types": ["Slice"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "msg", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "sig", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BLS_AGGREGATEVERIFY", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F93003", - "tlb": "#F93003", - "prefix": "F93003", - "operands": [] - }, - "value_flow": { - "doc_stack": "pk_1 msg_1 ... pk_n msg_n n sgn - bool", - "inputs": { - "stack": [ - { - "type": "array", - "name": "key_message_pairs", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "pk", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "msg", - "value_types": ["Slice"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "sgn", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BLS_G1_ADD", - "doc": { - "category": "app_crypto", - "description": "Addition on G1.", - "gas": "3934", - "fift": "BLS_G1_ADD" - }, - "bytecode": { - "doc_opcode": "F93010", - "tlb": "#F93010", - "prefix": "F93010", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x+y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "BLS_G1_SUB", - "doc": { - "category": "app_crypto", - "description": "Subtraction on G1.", - "gas": "3934", - "fift": "BLS_G1_SUB" - }, - "bytecode": { - "doc_opcode": "F93011", - "tlb": "#F93011", - "prefix": "F93011", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x-y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "BLS_G1_NEG", - "doc": { - "category": "app_crypto", - "description": "Negation on G1.", - "gas": "784", - "fift": "BLS_G1_NEG" - }, - "bytecode": { - "doc_opcode": "F93012", - "tlb": "#F93012", - "prefix": "F93012", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - -x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "BLS_G1_MUL", - "doc": { - "category": "app_crypto", - "description": "Multiplies G1 point `x` by scalar `s`. Any `s` is valid, including negative.", - "gas": "5234", - "fift": "BLS_G1_MUL" - }, - "bytecode": { - "doc_opcode": "F93013", - "tlb": "#F93013", - "prefix": "F93013", - "operands": [] - }, - "value_flow": { - "doc_stack": "x s - x*s", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "BLS_G1_MULTIEXP", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F93014", - "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": [ - { - "type": "array", - "name": "components", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Integer"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } - ] + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUMIN", + "doc": { + "category": "dict_min", + "description": "Similar to `DICTMIN`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", + "gas": "", + "fift": "DICTUMIN" + }, + "bytecode": { + "doc_opcode": "F486", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] } - }, - { - "mnemonic": "BLS_G1_ZERO", - "doc": { - "category": "app_crypto", - "description": "Pushes zero point in G1.", - "gas": "34", - "fift": "BLS_G1_ZERO" + ] + } + } + }, + { + "mnemonic": "DICTUMINREF", + "doc": { + "category": "dict_min", + "description": "Similar to `DICTUMIN`, but returns the only reference in the value.", + "gas": "", + "fift": "DICTUMINREF" + }, + "bytecode": { + "doc_opcode": "F487", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] }, - "bytecode": { - "doc_opcode": "F93015", - "tlb": "#F93015", - "prefix": "F93015", - "operands": [] + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTMAX", + "doc": { + "category": "dict_min", + "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" + }, + "bytecode": { + "doc_opcode": "F48A", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + } + ] + } + ] }, - "value_flow": { - "doc_stack": "- zero", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "zero", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "BLS_MAP_TO_G1", - "doc": { - "category": "app_crypto", - "description": "Converts FP element `f` to a G1 point.", - "gas": "2384", - "fift": "BLS_MAP_TO_G1" - }, - "bytecode": { - "doc_opcode": "F93016", - "tlb": "#F93016", - "prefix": "F93016", - "operands": [] - }, - "value_flow": { - "doc_stack": "f - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "BLS_G1_INGROUP", - "doc": { - "category": "app_crypto", - "description": "Checks that slice `x` represents a valid element of G1.", - "gas": "2984", - "fift": "BLS_G1_INGROUP" - }, - "bytecode": { - "doc_opcode": "F93017", - "tlb": "#F93017", - "prefix": "F93017", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - bool", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BLS_G1_ISZERO", - "doc": { - "category": "app_crypto", - "description": "Checks that G1 point `x` is equal to zero.", - "gas": "34", - "fift": "BLS_G1_ISZERO" - }, - "bytecode": { - "doc_opcode": "F93018", - "tlb": "#F93018", - "prefix": "F93018", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - bool", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BLS_G2_ADD", - "doc": { - "category": "app_crypto", - "description": "Addition on G2.", - "gas": "6134", - "fift": "BLS_G2_ADD" - }, - "bytecode": { - "doc_opcode": "F93020", - "tlb": "#F93020", - "prefix": "F93020", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x+y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "BLS_G2_SUB", - "doc": { - "category": "app_crypto", - "description": "Subtraction on G2.", - "gas": "6134", - "fift": "BLS_G2_SUB" - }, - "bytecode": { - "doc_opcode": "F93021", - "tlb": "#F93021", - "prefix": "F93021", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x-y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "BLS_G2_NEG", - "doc": { - "category": "app_crypto", - "description": "Negation on G2.", - "gas": "1584", - "fift": "BLS_G2_NEG" - }, - "bytecode": { - "doc_opcode": "F93022", - "tlb": "#F93022", - "prefix": "F93022", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - -x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "BLS_G2_MUL", - "doc": { - "category": "app_crypto", - "description": "Multiplies G2 point `x` by scalar `s`. Any `s` is valid, including negative.", - "gas": "10584", - "fift": "BLS_G2_MUL" - }, - "bytecode": { - "doc_opcode": "F93023", - "tlb": "#F93023", - "prefix": "F93023", - "operands": [] - }, - "value_flow": { - "doc_stack": "x s - x*s", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "BLS_G2_MULTIEXP", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F93024", - "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": [ - { - "type": "array", - "name": "components", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Integer"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } - ] + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTMAXREF", + "doc": { + "category": "dict_min", + "description": "Similar to `DICTMAX`, but returns the only reference in the value.", + "gas": "", + "fift": "DICTMAXREF" + }, + "bytecode": { + "doc_opcode": "F48B", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + } + ] } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] } - }, - { - "mnemonic": "BLS_G2_ZERO", - "doc": { - "category": "app_crypto", - "description": "Pushes zero point in G2.", - "gas": "34", - "fift": "BLS_G2_ZERO" + ] + } + } + }, + { + "mnemonic": "DICTIMAX", + "doc": { + "category": "dict_min", + "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" + }, + "bytecode": { + "doc_opcode": "F48C", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] }, - "bytecode": { - "doc_opcode": "F93025", - "tlb": "#F93025", - "prefix": "F93025", - "operands": [] + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIMAXREF", + "doc": { + "category": "dict_min", + "description": "Similar to `DICTIMAX`, but returns the only reference in the value.", + "gas": "", + "fift": "DICTIMAXREF" + }, + "bytecode": { + "doc_opcode": "F48D", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] }, - "value_flow": { - "doc_stack": "- zero", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "zero", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "BLS_MAP_TO_G2", - "doc": { - "category": "app_crypto", - "description": "Converts FP2 element `f` to a G2 point.", - "gas": "7984", - "fift": "BLS_MAP_TO_G2" - }, - "bytecode": { - "doc_opcode": "F93026", - "tlb": "#F93026", - "prefix": "F93026", - "operands": [] - }, - "value_flow": { - "doc_stack": "f - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "BLS_G2_INGROUP", - "doc": { - "category": "app_crypto", - "description": "Checks that slice `x` represents a valid element of G2.", - "gas": "4284", - "fift": "BLS_G2_INGROUP" - }, - "bytecode": { - "doc_opcode": "F93027", - "tlb": "#F93027", - "prefix": "F93027", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - bool", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BLS_G2_ISZERO", - "doc": { - "category": "app_crypto", - "description": "Checks that G2 point `x` is equal to zero.", - "gas": "34", - "fift": "BLS_G2_ISZERO" - }, - "bytecode": { - "doc_opcode": "F93028", - "tlb": "#F93028", - "prefix": "F93028", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - bool", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "BLS_PAIRING", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F93030", - "tlb": "#F93030", - "prefix": "F93030", - "operands": [] - }, - "value_flow": { - "doc_stack": "x_1 y_1 ... x_n y_n n - bool", - "inputs": { - "stack": [ - { - "type": "array", - "name": "components", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUMAX", + "doc": { + "category": "dict_min", + "description": "Similar to `DICTMAX`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", + "gas": "", + "fift": "DICTUMAX" + }, + "bytecode": { + "doc_opcode": "F48E", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] } - }, - { - "mnemonic": "BLS_PUSHR", - "doc": { - "category": "app_crypto", - "description": "Pushes the order of G1 and G2 (approx. `2^255`).", - "gas": "34", - "fift": "BLS_PUSHR" + ] + } + } + }, + { + "mnemonic": "DICTUMAXREF", + "doc": { + "category": "dict_min", + "description": "Similar to `DICTUMAX`, but returns the only reference in the value.", + "gas": "", + "fift": "DICTUMAXREF" + }, + "bytecode": { + "doc_opcode": "F48F", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] }, - "bytecode": { - "doc_opcode": "F93031", - "tlb": "#F93031", - "prefix": "F93031", - "operands": [] + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTREMMIN", + "doc": { + "category": "dict_min", + "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" + }, + "bytecode": { + "doc_opcode": "F492", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + } + ] + } + ] }, - "value_flow": { - "doc_stack": "- r", - "inputs": { - "stack": [ - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "CDATASIZEQ", - "doc": { - "category": "app_misc", - "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" - }, - "bytecode": { - "doc_opcode": "F940", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "CDATASIZE", - "doc": { - "category": "app_misc", - "description": "A non-quiet version of `CDATASIZEQ` that throws a cell overflow exception (8) on failure.", - "gas": "", - "fift": "CDATASIZE" - }, - "bytecode": { - "doc_opcode": "F941", - "tlb": "#F941", - "prefix": "F941", - "operands": [] - }, - "value_flow": { - "doc_stack": "c n - x y z", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDATASIZEQ", - "doc": { - "category": "app_misc", - "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" - }, - "bytecode": { - "doc_opcode": "F942", - "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"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SDATASIZE", - "doc": { - "category": "app_misc", - "description": "A non-quiet version of `SDATASIZEQ` that throws a cell overflow exception (8) on failure.", - "gas": "", - "fift": "SDATASIZE" - }, - "bytecode": { - "doc_opcode": "F943", - "tlb": "#F943", - "prefix": "F943", - "operands": [] - }, - "value_flow": { - "doc_stack": "s n - x y z", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "LDGRAMS", - "doc": { - "category": "app_currency", - "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" - }, - "bytecode": { - "doc_opcode": "FA00", - "tlb": "#FA00", - "prefix": "FA00", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDVARINT16", - "doc": { - "category": "app_currency", - "description": "Similar to `LDVARUINT16`, but loads a _signed_ _Integer_ `x`.\nApproximately equivalent to `4 LDU` `SWAP` `3 LSHIFT#` `LDIX`.", - "gas": "26", - "fift": "LDVARINT16" - }, - "bytecode": { - "doc_opcode": "FA01", - "tlb": "#FA01", - "prefix": "FA01", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "STGRAMS", - "doc": { - "category": "app_currency", - "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" - }, - "bytecode": { - "doc_opcode": "FA02", - "tlb": "#FA02", - "prefix": "FA02", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STVARINT16", - "doc": { - "category": "app_currency", - "description": "Similar to `STVARUINT16`, but serializes a _signed_ _Integer_ `x` in the range `-2^119...2^119-1`.", - "gas": "26", - "fift": "STVARINT16" - }, - "bytecode": { - "doc_opcode": "FA03", - "tlb": "#FA03", - "prefix": "FA03", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "LDVARUINT32", - "doc": { - "category": "app_currency", - "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" - }, - "bytecode": { - "doc_opcode": "FA04", - "tlb": "#FA04", - "prefix": "FA04", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDVARINT32", - "doc": { - "category": "app_currency", - "description": "Similar to `LDVARUINT32`, but loads a _signed_ _Integer_ `x`.\nApproximately equivalent to `5 LDU` `SWAP` `3 LSHIFT#` `LDIX`.", - "gas": "26", - "fift": "LDVARINT32" - }, - "bytecode": { - "doc_opcode": "FA05", - "tlb": "#FA05", - "prefix": "FA05", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "STVARUINT32", - "doc": { - "category": "app_currency", - "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" - }, - "bytecode": { - "doc_opcode": "FA06", - "tlb": "#FA06", - "prefix": "FA06", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "STVARINT32", - "doc": { - "category": "app_currency", - "description": "Similar to `STVARUINT32`, but serializes a _signed_ _Integer_ `x` in the range `-2^247...2^247-1`.", - "gas": "26", - "fift": "STVARINT32" - }, - "bytecode": { - "doc_opcode": "FA07", - "tlb": "#FA07", - "prefix": "FA07", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x - b'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - } - }, - { - "mnemonic": "LDMSGADDR", - "doc": { - "category": "app_addr", - "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" - }, - "bytecode": { - "doc_opcode": "FA40", - "tlb": "#FA40", - "prefix": "FA40", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - s' s''", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "LDMSGADDRQ", - "doc": { - "category": "app_addr", - "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" - }, - "bytecode": { - "doc_opcode": "FA41", - "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"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "PARSEMSGADDR", - "doc": { - "category": "app_addr", - "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" - }, - "bytecode": { - "doc_opcode": "FA42", - "tlb": "#FA42", - "prefix": "FA42", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - t", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] - } - } - }, - { - "mnemonic": "PARSEMSGADDRQ", - "doc": { - "category": "app_addr", - "description": "A quiet version of `PARSEMSGADDR`: returns a zero on error instead of throwing an exception.", - "gas": "26", - "fift": "PARSEMSGADDRQ" - }, - "bytecode": { - "doc_opcode": "FA43", - "tlb": "#FA43", - "prefix": "FA43", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - t -1 or 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "REWRITESTDADDR", - "doc": { - "category": "app_addr", - "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" - }, - "bytecode": { - "doc_opcode": "FA44", - "tlb": "#FA44", - "prefix": "FA44", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "REWRITESTDADDRQ", - "doc": { - "category": "app_addr", - "description": "A quiet version of primitive `REWRITESTDADDR`.", - "gas": "26", - "fift": "REWRITESTDADDRQ" - }, - "bytecode": { - "doc_opcode": "FA45", - "tlb": "#FA45", - "prefix": "FA45", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x y -1 or 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "REWRITEVARADDR", - "doc": { - "category": "app_addr", - "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" - }, - "bytecode": { - "doc_opcode": "FA46", - "tlb": "#FA46", - "prefix": "FA46", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } - } - }, - { - "mnemonic": "REWRITEVARADDRQ", - "doc": { - "category": "app_addr", - "description": "A quiet version of primitive `REWRITEVARADDR`.", - "gas": "26", - "fift": "REWRITEVARADDRQ" - }, - "bytecode": { - "doc_opcode": "FA47", - "tlb": "#FA47", - "prefix": "FA47", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s' -1 or 0", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s'", - "value_types": ["Slice"] - } - ] - } - ] - }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } - ] - } - } - }, - { - "mnemonic": "SENDRAWMSG", - "doc": { - "category": "app_actions", - "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" - }, - "bytecode": { - "doc_opcode": "FB00", - "tlb": "#FB00", - "prefix": "FB00", - "operands": [] - }, - "value_flow": { - "doc_stack": "c x - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "RAWRESERVE", - "doc": { - "category": "app_actions", - "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" - }, - "bytecode": { - "doc_opcode": "FB02", - "tlb": "#FB02", - "prefix": "FB02", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "RAWRESERVEX", - "doc": { - "category": "app_actions", - "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" - }, - "bytecode": { - "doc_opcode": "FB03", - "tlb": "#FB03", - "prefix": "FB03", - "operands": [] - }, - "value_flow": { - "doc_stack": "x D y - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Cell", "Null"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "SETCODE", - "doc": { - "category": "app_actions", - "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" - }, - "bytecode": { - "doc_opcode": "FB04", - "tlb": "#FB04", - "prefix": "FB04", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "SETLIBCODE", - "doc": { - "category": "app_actions", - "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" - }, - "bytecode": { - "doc_opcode": "FB06", - "tlb": "#FB06", - "prefix": "FB06", - "operands": [] - }, - "value_flow": { - "doc_stack": "c x - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "CHANGELIB", - "doc": { - "category": "app_actions", - "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" - }, - "bytecode": { - "doc_opcode": "FB07", - "tlb": "#FB07", - "prefix": "FB07", - "operands": [] - }, - "value_flow": { - "doc_stack": "h x - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "h", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "SENDMSG", - "doc": { - "category": "app_actions", - "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" - }, - "bytecode": { - "doc_opcode": "FB08", - "tlb": "#FB08", - "prefix": "FB08", - "operands": [] - }, - "value_flow": { - "doc_stack": "c x - fee", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "fee", - "value_types": ["Integer"] - } - ] + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTREMMINREF", + "doc": { + "category": "dict_min", + "description": "Similar to `DICTREMMIN`, but returns the only reference in the value as a _Cell_ `c`.", + "gas": "", + "fift": "DICTREMMINREF" + }, + "bytecode": { + "doc_opcode": "F493", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIREMMIN", + "doc": { + "category": "dict_min", + "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" + }, + "bytecode": { + "doc_opcode": "F494", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIREMMINREF", + "doc": { + "category": "dict_min", + "description": "Similar to `DICTIREMMIN`, but returns the only reference in the value.", + "gas": "", + "fift": "DICTIREMMINREF" + }, + "bytecode": { + "doc_opcode": "F495", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] } - }, - { - "mnemonic": "DUMPSTK", - "doc": { - "category": "debug", - "description": "Dumps the stack (at most the top 255 values) and shows the total stack depth.", - "gas": "26", - "fift": "DUMPSTK" + ] + } + } + }, + { + "mnemonic": "DICTUREMMIN", + "doc": { + "category": "dict_min", + "description": "Similar to `DICTREMMIN`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", + "gas": "", + "fift": "DICTUREMMIN" + }, + "bytecode": { + "doc_opcode": "F496", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] }, - "bytecode": { - "doc_opcode": "FE00", - "tlb": "#FE00", - "prefix": "FE00" + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUREMMINREF", + "doc": { + "category": "dict_min", + "description": "Similar to `DICTUREMMIN`, but returns the only reference in the value.", + "gas": "", + "fift": "DICTUREMMINREF" + }, + "bytecode": { + "doc_opcode": "F497", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "DEBUG", - "doc": { - "category": "debug", - "description": "", - "gas": "26", - "fift": "{nn} DEBUG" - }, - "bytecode": { - "doc_opcode": "FEnn", - "tlb": "#FE nn:(#<= 239)", - "prefix": "FE", - "operands_range_check": { - "length": 8, - "from": 1, - "to": 19 - }, - "operands": [ + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTREMMAX", + "doc": { + "category": "dict_min", + "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" + }, + "bytecode": { + "doc_opcode": "F49A", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 8 - } + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] } - ] + ] + } + ] }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTREMMAXREF", + "doc": { + "category": "dict_min", + "description": "Similar to `DICTREMMAX`, but returns the only reference in the value as a _Cell_ `c`.", + "gas": "", + "fift": "DICTREMMAXREF" + }, + "bytecode": { + "doc_opcode": "F49B", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + } + ] } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] } - }, - { - "mnemonic": "STRDUMP", - "doc": { - "category": "debug", - "description": "", - "gas": "26", - "fift": "STRDUMP" + ] + } + } + }, + { + "mnemonic": "DICTIREMMAX", + "doc": { + "category": "dict_min", + "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" + }, + "bytecode": { + "doc_opcode": "F49C", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] }, - "bytecode": { - "doc_opcode": "FE14", - "tlb": "#FE14", - "prefix": "FE14" + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTIREMMAXREF", + "doc": { + "category": "dict_min", + "description": "Similar to `DICTIREMMAX`, but returns the only reference in the value.", + "gas": "", + "fift": "DICTIREMMAXREF" + }, + "bytecode": { + "doc_opcode": "F49D", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "DEBUG", - "doc": { - "category": "debug", - "description": "", - "gas": "26", - "fift": "{nn} DEBUG" - }, - "bytecode": { - "doc_opcode": "FEnn", - "tlb": "#FE nn:(#<= 239)", - "prefix": "FE", - "operands_range_check": { - "length": 8, - "from": 21, - "to": 31 - }, - "operands": [ + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUREMMAX", + "doc": { + "category": "dict_min", + "description": "Similar to `DICTREMMAX`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", + "gas": "", + "fift": "DICTUREMMAX" + }, + "bytecode": { + "doc_opcode": "F49E", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 8 - } + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] } - ] + ] + } + ] }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DICTUREMMAXREF", + "doc": { + "category": "dict_min", + "description": "Similar to `DICTUREMMAX`, but returns the only reference in the value.", + "gas": "", + "fift": "DICTUREMMAXREF" + }, + "bytecode": { + "doc_opcode": "F49F", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] } - }, - { - "mnemonic": "DUMP", - "doc": { - "category": "debug", - "description": "Dumps `s[i]`.", - "gas": "26", - "fift": "s[i] DUMP" + ] + } + } + }, + { + "mnemonic": "DICTIGETJMP", + "doc": { + "category": "dict_special", + "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" + }, + "bytecode": { + "doc_opcode": "F4A0", + "tlb": "#F4A0", + "prefix": "F4A0", + "operands": [] + }, + "value_flow": { + "doc_stack": "i D n - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "x" + } + ] + } + }, + { + "mnemonic": "DICTUGETJMP", + "doc": { + "category": "dict_special", + "description": "Similar to `DICTIGETJMP`, but performs `DICTUGET` instead of `DICTIGET`.", + "gas": "", + "fift": "DICTUGETJMP" + }, + "bytecode": { + "doc_opcode": "F4A1", + "tlb": "#F4A1", + "prefix": "F4A1", + "operands": [] + }, + "value_flow": { + "doc_stack": "i D n - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "x" + } + ] + } + }, + { + "mnemonic": "DICTIGETEXEC", + "doc": { + "category": "dict_special", + "description": "Similar to `DICTIGETJMP`, but with `EXECUTE` instead of `JMPX`.", + "gas": "", + "fift": "DICTIGETEXEC" + }, + "bytecode": { + "doc_opcode": "F4A2", + "tlb": "#F4A2", + "prefix": "F4A2", + "operands": [] + }, + "value_flow": { + "doc_stack": "i D n - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "x", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "DICTUGETEXEC", + "doc": { + "category": "dict_special", + "description": "Similar to `DICTUGETJMP`, but with `EXECUTE` instead of `JMPX`.", + "gas": "", + "fift": "DICTUGETEXEC" + }, + "bytecode": { + "doc_opcode": "F4A3", + "tlb": "#F4A3", + "prefix": "F4A3", + "operands": [] + }, + "value_flow": { + "doc_stack": "i D n - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "x", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "DICTPUSHCONST", + "doc": { + "category": "dict_special", + "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" + }, + "bytecode": { + "doc_opcode": "F4A6_n", + "tlb": "#F4A6_ d:^Cell n:uint10", + "prefix": "F4A6_", + "operands": [ + { + "name": "d", + "loader": "ref", + "loader_args": {} + }, + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 10 + } + } + ] + }, + "value_flow": { + "doc_stack": " - D n", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PFXDICTGETQ", + "doc": { + "category": "dict_special", + "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" + }, + "bytecode": { + "doc_opcode": "F4A8", + "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"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PFXDICTGET", + "doc": { + "category": "dict_special", + "description": "Similar to `PFXDICTGET`, but throws a cell deserialization failure exception on failure.", + "gas": "", + "fift": "PFXDICTGET" + }, + "bytecode": { + "doc_opcode": "F4A9", + "tlb": "#F4A9", + "prefix": "F4A9", + "operands": [] + }, + "value_flow": { + "doc_stack": "s D n - s' x s''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "PFXDICTGETJMP", + "doc": { + "category": "dict_special", + "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" + }, + "bytecode": { + "doc_opcode": "F4AA", + "tlb": "#F4AA", + "prefix": "F4AA", + "operands": [] + }, + "value_flow": { + "doc_stack": "s D n - s' s'' or s" + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "x" + } + ] + } + }, + { + "mnemonic": "PFXDICTGETEXEC", + "doc": { + "category": "dict_special", + "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" + }, + "bytecode": { + "doc_opcode": "F4AB", + "tlb": "#F4AB", + "prefix": "F4AB", + "operands": [] + }, + "value_flow": { + "doc_stack": "s D n - s' s''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + } + ] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "x", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "PFXDICTCONSTGETJMP", + "doc": { + "category": "dict_special", + "description": "Combines `[n] DICTPUSHCONST` for `0 <= n <= 1023` with `PFXDICTGETJMP`.", + "gas": "", + "fift": "[ref] [n] PFXDICTCONSTGETJMP\n[ref] [n] PFXDICTSWITCH" + }, + "bytecode": { + "doc_opcode": "F4AE_n", + "tlb": "#F4AE_ d:^Cell n:uint10", + "prefix": "F4AE_", + "operands": [ + { + "name": "d", + "loader": "ref", + "loader_args": {} + }, + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 10 + } + } + ] + }, + "value_flow": { + "doc_stack": "s - s' s'' or s" + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "x" + } + ] + } + }, + { + "mnemonic": "DICTIGETJMPZ", + "doc": { + "category": "dict_special", + "description": "A variant of `DICTIGETJMP` that returns index `i` on failure.", + "gas": "", + "fift": "DICTIGETJMPZ" + }, + "bytecode": { + "doc_opcode": "F4BC", + "tlb": "#F4BC", + "prefix": "F4BC", + "operands": [] + }, + "value_flow": { + "doc_stack": "i D n - i or nothing" + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "x" + } + ] + } + }, + { + "mnemonic": "DICTUGETJMPZ", + "doc": { + "category": "dict_special", + "description": "A variant of `DICTUGETJMP` that returns index `i` on failure.", + "gas": "", + "fift": "DICTUGETJMPZ" + }, + "bytecode": { + "doc_opcode": "F4BD", + "tlb": "#F4BD", + "prefix": "F4BD", + "operands": [] + }, + "value_flow": { + "doc_stack": "i D n - i or nothing" + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "x" + } + ] + } + }, + { + "mnemonic": "DICTIGETEXECZ", + "doc": { + "category": "dict_special", + "description": "A variant of `DICTIGETEXEC` that returns index `i` on failure.", + "gas": "", + "fift": "DICTIGETEXECZ" + }, + "bytecode": { + "doc_opcode": "F4BE", + "tlb": "#F4BE", + "prefix": "F4BE", + "operands": [] + }, + "value_flow": { + "doc_stack": "i D n - i or nothing" + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "x", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "DICTUGETEXECZ", + "doc": { + "category": "dict_special", + "description": "A variant of `DICTUGETEXEC` that returns index `i` on failure.", + "gas": "", + "fift": "DICTUGETEXECZ" + }, + "bytecode": { + "doc_opcode": "F4BF", + "tlb": "#F4BF", + "prefix": "F4BF", + "operands": [] + }, + "value_flow": { + "doc_stack": "i D n - i or nothing" + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "x", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { + "type": "register", + "index": 0 + } + } + } + } + } + ] + } + }, + { + "mnemonic": "SUBDICTGET", + "doc": { + "category": "dict_sub", + "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" + }, + "bytecode": { + "doc_opcode": "F4B1", + "tlb": "#F4B1", + "prefix": "F4B1", + "operands": [] + }, + "value_flow": { + "doc_stack": "k l D n - D'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + } + }, + { + "mnemonic": "SUBDICTIGET", + "doc": { + "category": "dict_sub", + "description": "Variant of `SUBDICTGET` with the prefix represented by a signed big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 257`.", + "gas": "", + "fift": "SUBDICTIGET" + }, + "bytecode": { + "doc_opcode": "F4B2", + "tlb": "#F4B2", + "prefix": "F4B2", + "operands": [] + }, + "value_flow": { + "doc_stack": "x l D n - D'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + } + }, + { + "mnemonic": "SUBDICTUGET", + "doc": { + "category": "dict_sub", + "description": "Variant of `SUBDICTGET` with the prefix represented by an unsigned big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 256`.", + "gas": "", + "fift": "SUBDICTUGET" + }, + "bytecode": { + "doc_opcode": "F4B3", + "tlb": "#F4B3", + "prefix": "F4B3", + "operands": [] + }, + "value_flow": { + "doc_stack": "x l D n - D'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + } + }, + { + "mnemonic": "SUBDICTRPGET", + "doc": { + "category": "dict_sub", + "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" + }, + "bytecode": { + "doc_opcode": "F4B5", + "tlb": "#F4B5", + "prefix": "F4B5", + "operands": [] + }, + "value_flow": { + "doc_stack": "k l D n - D'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + } + }, + { + "mnemonic": "SUBDICTIRPGET", + "doc": { + "category": "dict_sub", + "description": "Variant of `SUBDICTRPGET` with the prefix represented by a signed big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 257`.", + "gas": "", + "fift": "SUBDICTIRPGET" + }, + "bytecode": { + "doc_opcode": "F4B6", + "tlb": "#F4B6", + "prefix": "F4B6", + "operands": [] + }, + "value_flow": { + "doc_stack": "x l D n - D'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + } + }, + { + "mnemonic": "SUBDICTURPGET", + "doc": { + "category": "dict_sub", + "description": "Variant of `SUBDICTRPGET` with the prefix represented by an unsigned big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 256`.", + "gas": "", + "fift": "SUBDICTURPGET" + }, + "bytecode": { + "doc_opcode": "F4B7", + "tlb": "#F4B7", + "prefix": "F4B7", + "operands": [] + }, + "value_flow": { + "doc_stack": "x l D n - D'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "l", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + } + }, + { + "mnemonic": "ACCEPT", + "doc": { + "category": "app_gas", + "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" + }, + "bytecode": { + "doc_opcode": "F800", + "tlb": "#F800", + "prefix": "F800", + "operands": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SETGASLIMIT", + "doc": { + "category": "app_gas", + "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" + }, + "bytecode": { + "doc_opcode": "F801", + "tlb": "#F801", + "prefix": "F801", + "operands": [] + }, + "value_flow": { + "doc_stack": "g - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "g", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "GASCONSUMED", + "doc": { + "category": "app_gas", + "description": "Returns gas consumed by VM so far (including this instruction).", + "gas": "26", + "fift": "GASCONSUMED" + }, + "bytecode": { + "doc_opcode": "F802", + "tlb": "#F802", + "prefix": "F802", + "operands": [] + }, + "value_flow": { + "doc_stack": "- g_c", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "g_c", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "COMMIT", + "doc": { + "category": "app_gas", + "description": "Commits the current state of registers `c4` (\u0432\u0402\u045apersistent data'') and `c5` (\u0432\u0402\u045aactions'') so that the current execution is considered \u0432\u0402\u045asuccessful'' with the saved values even if an exception is thrown later.", + "gas": "26", + "fift": "COMMIT" + }, + "bytecode": { + "doc_opcode": "F80F", + "tlb": "#F80F", + "prefix": "F80F", + "operands": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "RANDU256", + "doc": { + "category": "app_rnd", + "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" + }, + "bytecode": { + "doc_opcode": "F810", + "tlb": "#F810", + "prefix": "F810", + "operands": [] + }, + "value_flow": { + "doc_stack": "- x", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RAND", + "doc": { + "category": "app_rnd", + "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" + }, + "bytecode": { + "doc_opcode": "F811", + "tlb": "#F811", + "prefix": "F811", + "operands": [] + }, + "value_flow": { + "doc_stack": "y - z", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SETRAND", + "doc": { + "category": "app_rnd", + "description": "Sets the random seed to unsigned 256-bit _Integer_ `x`.", + "gas": "26+|c7|+|c1_1|", + "fift": "SETRAND" + }, + "bytecode": { + "doc_opcode": "F814", + "tlb": "#F814", + "prefix": "F814", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "ADDRAND", + "doc": { + "category": "app_rnd", + "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" + }, + "bytecode": { + "doc_opcode": "F815", + "tlb": "#F815", + "prefix": "F815", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "GETPARAM", + "doc": { + "category": "app_config", + "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" + }, + "bytecode": { + "doc_opcode": "F82i", + "tlb": "#F82 i:uint4", + "prefix": "F82", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": " - x", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "CONFIGDICT", + "doc": { + "category": "app_config", + "description": "Returns the global configuration dictionary along with its key length (32).\nEquivalent to `CONFIGROOT` `32 PUSHINT`.", + "gas": "26", + "fift": "CONFIGDICT" + }, + "bytecode": { + "doc_opcode": "F830", + "tlb": "#F830", + "prefix": "F830", + "operands": [] + }, + "value_flow": { + "doc_stack": " - D 32", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice", "Null"] + }, + { + "type": "const", + "value": 32, + "value_type": "Integer" + } + ] + } + } + }, + { + "mnemonic": "CONFIGPARAM", + "doc": { + "category": "app_config", + "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" + }, + "bytecode": { + "doc_opcode": "F832", + "tlb": "#F832", + "prefix": "F832", + "operands": [] + }, + "value_flow": { + "doc_stack": "i - c -1 or 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "CONFIGOPTPARAM", + "doc": { + "category": "app_config", + "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" + }, + "bytecode": { + "doc_opcode": "F833", + "tlb": "#F833", + "prefix": "F833", + "operands": [] + }, + "value_flow": { + "doc_stack": "i - c^?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell", "Null"] + } + ] + } + } + }, + { + "mnemonic": "PREVMCBLOCKS", + "doc": { + "category": "app_config", + "description": "Retrives `last_mc_blocks` part of PrevBlocksInfo from c7 (parameter 13).", + "gas": "", + "fift": "PREVMCBLOCKS" + }, + "bytecode": { + "doc_opcode": "F83400", + "tlb": "#F83400", + "prefix": "F83400", + "operands": [] + }, + "value_flow": { + "doc_stack": "- t", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + } + ] + } + } + }, + { + "mnemonic": "PREVKEYBLOCK", + "doc": { + "category": "app_config", + "description": "Retrives `prev_key_block` part of PrevBlocksInfo from c7 (parameter 13).", + "gas": "", + "fift": "PREVKEYBLOCK" + }, + "bytecode": { + "doc_opcode": "F83401", + "tlb": "#F83401", + "prefix": "F83401", + "operands": [] + }, + "value_flow": { + "doc_stack": "- t", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + } + ] + } + } + }, + { + "mnemonic": "GLOBALID", + "doc": { + "category": "app_config", + "description": "Retrieves `global_id` from 19 network config.", + "gas": "", + "fift": "GLOBALID" + }, + "bytecode": { + "doc_opcode": "F835", + "tlb": "#F835", + "prefix": "F835", + "operands": [] + }, + "value_flow": { + "doc_stack": "- i", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "GETGLOBVAR", + "doc": { + "category": "app_global", + "description": "Returns the `k`-th global variable for `0 <= k < 255`.\nEquivalent to `c7 PUSHCTR` `SWAP` `INDEXVARQ`.", + "gas": "26", + "fift": "GETGLOBVAR" + }, + "bytecode": { + "doc_opcode": "F840", + "tlb": "#F840", + "prefix": "F840", + "operands": [] + }, + "value_flow": { + "doc_stack": "k - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "k", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x" + } + ] + } + } + }, + { + "mnemonic": "GETGLOB", + "doc": { + "category": "app_global", + "description": "Returns the `k`-th global variable for `1 <= k <= 31`.\nEquivalent to `c7 PUSHCTR` `[k] INDEXQ`.", + "gas": "26", + "fift": "[k] GETGLOB" + }, + "bytecode": { + "doc_opcode": "F85_k", + "tlb": "#F85_ k:(## 5) {1 <= k}", + "prefix": "F85_", + "operands_range_check": { + "length": 5, + "from": 1, + "to": 31 + }, + "operands": [ + { + "name": "k", + "loader": "uint", + "loader_args": { + "size": 5 + } + } + ] + }, + "value_flow": { + "doc_stack": " - x", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x" + } + ] + } + } + }, + { + "mnemonic": "SETGLOBVAR", + "doc": { + "category": "app_global", + "description": "Assigns `x` to the `k`-th global variable for `0 <= k < 255`.\nEquivalent to `c7 PUSHCTR` `ROTREV` `SETINDEXVARQ` `c7 POPCTR`.", + "gas": "26+|c7\u0432\u0402\u2122|", + "fift": "SETGLOBVAR" + }, + "bytecode": { + "doc_opcode": "F860", + "tlb": "#F860", + "prefix": "F860", + "operands": [] + }, + "value_flow": { + "doc_stack": "x k - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + }, + { + "type": "simple", + "name": "k", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SETGLOB", + "doc": { + "category": "app_global", + "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\u0432\u0402\u2122|", + "fift": "[k] SETGLOB" + }, + "bytecode": { + "doc_opcode": "F87_k", + "tlb": "#F87_ k:(## 5) {1 <= k}", + "prefix": "F87_", + "operands_range_check": { + "length": 5, + "from": 1, + "to": 31 + }, + "operands": [ + { + "name": "k", + "loader": "uint", + "loader_args": { + "size": 5 + } + } + ] + }, + "value_flow": { + "doc_stack": "x - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x" + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "HASHCU", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F900", + "tlb": "#F900", + "prefix": "F900", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "HASHSU", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F901", + "tlb": "#F901", + "prefix": "F901", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SHA256U", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F902", + "tlb": "#F902", + "prefix": "F902", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXT_SHA256", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90400", + "tlb": "#F90400", + "prefix": "F90400", + "operands": [] + }, + "value_flow": { + "doc_stack": "s_1 ... s_n n - h", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "h", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXT_SHA512", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90401", + "tlb": "#F90401", + "prefix": "F90401", + "operands": [] + }, + "value_flow": { + "doc_stack": "s_1 ... s_n n - h1 h2", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "h1", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "h2", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXT_BLAKE2B", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90402", + "tlb": "#F90402", + "prefix": "F90402", + "operands": [] + }, + "value_flow": { + "doc_stack": "s_1 ... s_n n - h1 h2", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "h1", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "h2", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXT_KECCAK256", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90403", + "tlb": "#F90403", + "prefix": "F90403", + "operands": [] + }, + "value_flow": { + "doc_stack": "s_1 ... s_n n - h", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "h", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXT_KECCAK512", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90404", + "tlb": "#F90404", + "prefix": "F90404", + "operands": [] + }, + "value_flow": { + "doc_stack": "s_1 ... s_n n - h1 h2", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "h1", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "h2", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXTR_SHA256", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90500", + "tlb": "#F90500", + "prefix": "F90500", + "operands": [] + }, + "value_flow": { + "doc_stack": "s_n ... s_1 n - h", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "h", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXTR_SHA512", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90501", + "tlb": "#F90501", + "prefix": "F90501", + "operands": [] + }, + "value_flow": { + "doc_stack": "s_n ... s_1 n - h1 h2", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "h1", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "h2", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXTR_BLAKE2B", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90502", + "tlb": "#F90502", + "prefix": "F90502", + "operands": [] + }, + "value_flow": { + "doc_stack": "s_n ... s_1 n - h1 h2", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "h1", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "h2", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXTR_KECCAK256", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90503", + "tlb": "#F90503", + "prefix": "F90503", + "operands": [] + }, + "value_flow": { + "doc_stack": "s_n ... s_1 n - h", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "h", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXTR_KECCAK512", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90504", + "tlb": "#F90504", + "prefix": "F90504", + "operands": [] + }, + "value_flow": { + "doc_stack": "s_n ... s_1 n - h1 h2", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "h1", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "h2", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXTA_SHA256", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90600", + "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"] + }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXTA_SHA512", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90601", + "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"] + }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXTA_BLAKE2B", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90602", + "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"] + }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXTA_KECCAK256", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90603", + "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"] + }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXTA_KECCAK512", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90604", + "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"] + }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXTAR_SHA256", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90700", + "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"] + }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXTAR_SHA512", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90701", + "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"] + }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXTAR_BLAKE2B", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90702", + "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"] + }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXTAR_KECCAK256", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90703", + "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"] + }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "HASHEXTAR_KECCAK512", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F90704", + "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"] + }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "CHKSIGNU", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F910", + "tlb": "#F910", + "prefix": "F910", + "operands": [] + }, + "value_flow": { + "doc_stack": "h s k - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "h", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "CHKSIGNS", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F911", + "tlb": "#F911", + "prefix": "F911", + "operands": [] + }, + "value_flow": { + "doc_stack": "d s k - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "d", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "ECRECOVER", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F912", + "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"] + }, + { + "type": "simple", + "name": "v", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "r", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "h", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "x1", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "x2", + "value_types": ["Integer"] + } + ] + } + ] }, - "bytecode": { - "doc_opcode": "FE2i", - "tlb": "#FE2 i:uint4", - "prefix": "FE2", - "operands": [ + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "P256_CHKSIGNU", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F914", + "tlb": "#F914", + "prefix": "F914", + "operands": [] + }, + "value_flow": { + "doc_stack": "h sig k - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "d", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "sig", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "P256_CHKSIGNS", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F915", + "tlb": "#F915", + "prefix": "F915", + "operands": [] + }, + "value_flow": { + "doc_stack": "d sig k - ?", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "d", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "sig", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "k", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RIST255_FROMHASH", + "doc": { + "category": "app_crypto", + "description": "Deterministically generates a valid point `x` from a 512-bit hash (given as two 256-bit integers).", + "gas": "626", + "fift": "RIST255_FROMHASH" + }, + "bytecode": { + "doc_opcode": "F920", + "tlb": "#F920", + "prefix": "F920", + "operands": [] + }, + "value_flow": { + "doc_stack": "h1 h2 - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "h1", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "h2", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RIST255_VALIDATE", + "doc": { + "category": "app_crypto", + "description": "Checks that integer `x` is a valid representation of some curve point. Throws range_chk on error.", + "gas": "226", + "fift": "RIST255_VALIDATE" + }, + "bytecode": { + "doc_opcode": "F921", + "tlb": "#F921", + "prefix": "F921", + "operands": [] + }, + "value_flow": { + "doc_stack": "x -", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "RIST255_ADD", + "doc": { + "category": "app_crypto", + "description": "Addition of two points on a curve.", + "gas": "626", + "fift": "RIST255_ADD" + }, + "bytecode": { + "doc_opcode": "F922", + "tlb": "#F922", + "prefix": "F922", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x+y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RIST255_SUB", + "doc": { + "category": "app_crypto", + "description": "Subtraction of two points on curve.", + "gas": "626", + "fift": "RIST255_SUB" + }, + "bytecode": { + "doc_opcode": "F923", + "tlb": "#F923", + "prefix": "F923", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x-y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RIST255_MUL", + "doc": { + "category": "app_crypto", + "description": "Multiplies point `x` by a scalar `n`. Any `n` is valid, including negative.", + "gas": "2026", + "fift": "RIST255_MUL" + }, + "bytecode": { + "doc_opcode": "F924", + "tlb": "#F924", + "prefix": "F924", + "operands": [] + }, + "value_flow": { + "doc_stack": "x n - x*n", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RIST255_MULBASE", + "doc": { + "category": "app_crypto", + "description": "Multiplies the generator point `g` by a scalar `n`. Any `n` is valid, including negative.", + "gas": "776", + "fift": "RIST255_MULBASE" + }, + "bytecode": { + "doc_opcode": "F925", + "tlb": "#F925", + "prefix": "F925", + "operands": [] + }, + "value_flow": { + "doc_stack": "n - g*n", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RIST255_PUSHL", + "doc": { + "category": "app_crypto", + "description": "Pushes integer l=2^252+27742317777372353535851937790883648493, which is the order of the group.", + "gas": "26", + "fift": "RIST255_PUSHL" + }, + "bytecode": { + "doc_opcode": "F926", + "tlb": "#F926", + "prefix": "F926", + "operands": [] + }, + "value_flow": { + "doc_stack": "- l", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RIST255_QVALIDATE", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "B7F921", + "tlb": "#B7F921", + "prefix": "B7F921", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - 0 or -1", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RIST255_QADD", + "doc": { + "category": "app_crypto", + "description": "Addition of two points on a curve. Returns -1 on success and 0 on failure.", + "gas": "634", + "fift": "RIST255_QADD" + }, + "bytecode": { + "doc_opcode": "B7F922", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RIST255_QSUB", + "doc": { + "category": "app_crypto", + "description": "Subtraction of two points on curve. Returns -1 on success and 0 on failure.", + "gas": "634", + "fift": "RIST255_QSUB" + }, + "bytecode": { + "doc_opcode": "B7F923", + "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"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RIST255_QMUL", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "B7F924", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "RIST255_QMULBASE", + "doc": { + "category": "app_crypto", + "description": "Multiplies the generator point `g` by a scalar `n`. Any `n` is valid, including negative.", + "gas": "784", + "fift": "RIST255_QMULBASE" + }, + "bytecode": { + "doc_opcode": "B7F925", + "tlb": "#B7F925", + "prefix": "B7F925", + "operands": [] + }, + "value_flow": { + "doc_stack": "n - 0 or g*n -1", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BLS_VERIFY", + "doc": { + "category": "app_crypto", + "description": "Checks BLS signature, return true on success, false otherwise.", + "gas": "61034", + "fift": "BLS_VERIFY" + }, + "bytecode": { + "doc_opcode": "F93000", + "tlb": "#F93000", + "prefix": "F93000", + "operands": [] + }, + "value_flow": { + "doc_stack": "pk msg sgn - bool", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "pk", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "msg", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "sgn", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BLS_AGGREGATE", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F93001", + "tlb": "#F93001", + "prefix": "F93001", + "operands": [] + }, + "value_flow": { + "doc_stack": "sig_1 ... sig_n n - sig", + "inputs": { + "stack": [ + { + "type": "array", + "name": "signatures", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "sig", + "value_types": ["Slice"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "BLS_FASTAGGREGATEVERIFY", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F93002", + "tlb": "#F93002", + "prefix": "F93002", + "operands": [] + }, + "value_flow": { + "doc_stack": "pk_1 ... pk_n n msg sig - bool", + "inputs": { + "stack": [ + { + "type": "array", + "name": "public_keys", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "pk", + "value_types": ["Slice"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "msg", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "sig", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BLS_AGGREGATEVERIFY", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F93003", + "tlb": "#F93003", + "prefix": "F93003", + "operands": [] + }, + "value_flow": { + "doc_stack": "pk_1 msg_1 ... pk_n msg_n n sgn - bool", + "inputs": { + "stack": [ + { + "type": "array", + "name": "key_message_pairs", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "pk", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "msg", + "value_types": ["Slice"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "sgn", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BLS_G1_ADD", + "doc": { + "category": "app_crypto", + "description": "Addition on G1.", + "gas": "3934", + "fift": "BLS_G1_ADD" + }, + "bytecode": { + "doc_opcode": "F93010", + "tlb": "#F93010", + "prefix": "F93010", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x+y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "BLS_G1_SUB", + "doc": { + "category": "app_crypto", + "description": "Subtraction on G1.", + "gas": "3934", + "fift": "BLS_G1_SUB" + }, + "bytecode": { + "doc_opcode": "F93011", + "tlb": "#F93011", + "prefix": "F93011", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x-y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "BLS_G1_NEG", + "doc": { + "category": "app_crypto", + "description": "Negation on G1.", + "gas": "784", + "fift": "BLS_G1_NEG" + }, + "bytecode": { + "doc_opcode": "F93012", + "tlb": "#F93012", + "prefix": "F93012", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - -x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "BLS_G1_MUL", + "doc": { + "category": "app_crypto", + "description": "Multiplies G1 point `x` by scalar `s`. Any `s` is valid, including negative.", + "gas": "5234", + "fift": "BLS_G1_MUL" + }, + "bytecode": { + "doc_opcode": "F93013", + "tlb": "#F93013", + "prefix": "F93013", + "operands": [] + }, + "value_flow": { + "doc_stack": "x s - x*s", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "BLS_G1_MULTIEXP", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F93014", + "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": [ + { + "type": "array", + "name": "components", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s", + "value_types": ["Integer"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "BLS_G1_ZERO", + "doc": { + "category": "app_crypto", + "description": "Pushes zero point in G1.", + "gas": "34", + "fift": "BLS_G1_ZERO" + }, + "bytecode": { + "doc_opcode": "F93015", + "tlb": "#F93015", + "prefix": "F93015", + "operands": [] + }, + "value_flow": { + "doc_stack": "- zero", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "zero", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "BLS_MAP_TO_G1", + "doc": { + "category": "app_crypto", + "description": "Converts FP element `f` to a G1 point.", + "gas": "2384", + "fift": "BLS_MAP_TO_G1" + }, + "bytecode": { + "doc_opcode": "F93016", + "tlb": "#F93016", + "prefix": "F93016", + "operands": [] + }, + "value_flow": { + "doc_stack": "f - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "BLS_G1_INGROUP", + "doc": { + "category": "app_crypto", + "description": "Checks that slice `x` represents a valid element of G1.", + "gas": "2984", + "fift": "BLS_G1_INGROUP" + }, + "bytecode": { + "doc_opcode": "F93017", + "tlb": "#F93017", + "prefix": "F93017", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - bool", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BLS_G1_ISZERO", + "doc": { + "category": "app_crypto", + "description": "Checks that G1 point `x` is equal to zero.", + "gas": "34", + "fift": "BLS_G1_ISZERO" + }, + "bytecode": { + "doc_opcode": "F93018", + "tlb": "#F93018", + "prefix": "F93018", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - bool", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BLS_G2_ADD", + "doc": { + "category": "app_crypto", + "description": "Addition on G2.", + "gas": "6134", + "fift": "BLS_G2_ADD" + }, + "bytecode": { + "doc_opcode": "F93020", + "tlb": "#F93020", + "prefix": "F93020", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x+y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "BLS_G2_SUB", + "doc": { + "category": "app_crypto", + "description": "Subtraction on G2.", + "gas": "6134", + "fift": "BLS_G2_SUB" + }, + "bytecode": { + "doc_opcode": "F93021", + "tlb": "#F93021", + "prefix": "F93021", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x-y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "BLS_G2_NEG", + "doc": { + "category": "app_crypto", + "description": "Negation on G2.", + "gas": "1584", + "fift": "BLS_G2_NEG" + }, + "bytecode": { + "doc_opcode": "F93022", + "tlb": "#F93022", + "prefix": "F93022", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - -x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "BLS_G2_MUL", + "doc": { + "category": "app_crypto", + "description": "Multiplies G2 point `x` by scalar `s`. Any `s` is valid, including negative.", + "gas": "10584", + "fift": "BLS_G2_MUL" + }, + "bytecode": { + "doc_opcode": "F93023", + "tlb": "#F93023", + "prefix": "F93023", + "operands": [] + }, + "value_flow": { + "doc_stack": "x s - x*s", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "BLS_G2_MULTIEXP", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F93024", + "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": [ + { + "type": "array", + "name": "components", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s", + "value_types": ["Integer"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "BLS_G2_ZERO", + "doc": { + "category": "app_crypto", + "description": "Pushes zero point in G2.", + "gas": "34", + "fift": "BLS_G2_ZERO" + }, + "bytecode": { + "doc_opcode": "F93025", + "tlb": "#F93025", + "prefix": "F93025", + "operands": [] + }, + "value_flow": { + "doc_stack": "- zero", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "zero", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "BLS_MAP_TO_G2", + "doc": { + "category": "app_crypto", + "description": "Converts FP2 element `f` to a G2 point.", + "gas": "7984", + "fift": "BLS_MAP_TO_G2" + }, + "bytecode": { + "doc_opcode": "F93026", + "tlb": "#F93026", + "prefix": "F93026", + "operands": [] + }, + "value_flow": { + "doc_stack": "f - x", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "f", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "BLS_G2_INGROUP", + "doc": { + "category": "app_crypto", + "description": "Checks that slice `x` represents a valid element of G2.", + "gas": "4284", + "fift": "BLS_G2_INGROUP" + }, + "bytecode": { + "doc_opcode": "F93027", + "tlb": "#F93027", + "prefix": "F93027", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - bool", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BLS_G2_ISZERO", + "doc": { + "category": "app_crypto", + "description": "Checks that G2 point `x` is equal to zero.", + "gas": "34", + "fift": "BLS_G2_ISZERO" + }, + "bytecode": { + "doc_opcode": "F93028", + "tlb": "#F93028", + "prefix": "F93028", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - bool", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BLS_PAIRING", + "doc": { + "category": "app_crypto", + "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" + }, + "bytecode": { + "doc_opcode": "F93030", + "tlb": "#F93030", + "prefix": "F93030", + "operands": [] + }, + "value_flow": { + "doc_stack": "x_1 y_1 ... x_n y_n n - bool", + "inputs": { + "stack": [ + { + "type": "array", + "name": "components", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "x", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Slice"] + } + ] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "BLS_PUSHR", + "doc": { + "category": "app_crypto", + "description": "Pushes the order of G1 and G2 (approx. `2^255`).", + "gas": "34", + "fift": "BLS_PUSHR" + }, + "bytecode": { + "doc_opcode": "F93031", + "tlb": "#F93031", + "prefix": "F93031", + "operands": [] + }, + "value_flow": { + "doc_stack": "- r", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "CDATASIZEQ", + "doc": { + "category": "app_misc", + "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" + }, + "bytecode": { + "doc_opcode": "F940", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] } - ] + ] + } + ] }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "DEBUG", - "doc": { - "category": "debug", - "description": "", - "gas": "26", - "fift": "{nn} DEBUG" - }, - "bytecode": { - "doc_opcode": "FEnn", - "tlb": "#FE nn:(#<= 239)", - "prefix": "FE", - "operands_range_check": { - "length": 8, - "from": 48, - "to": 239 - }, - "operands": [ + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "CDATASIZE", + "doc": { + "category": "app_misc", + "description": "A non-quiet version of `CDATASIZEQ` that throws a cell overflow exception (8) on failure.", + "gas": "", + "fift": "CDATASIZE" + }, + "bytecode": { + "doc_opcode": "F941", + "tlb": "#F941", + "prefix": "F941", + "operands": [] + }, + "value_flow": { + "doc_stack": "c n - x y z", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDATASIZEQ", + "doc": { + "category": "app_misc", + "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" + }, + "bytecode": { + "doc_opcode": "F942", + "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"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 8 - } + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] } - ] + ] + } + ] }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "DEBUGSTR", - "doc": { - "category": "debug", - "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" - }, - "bytecode": { - "doc_opcode": "FEFnssss", - "tlb": "#FEF n:(## 4) ssss:((n * 8 + 8) * Bit)", - "prefix": "FEF", - "operands": [ - { - "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 4, - "bits_padding": 8 - } + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SDATASIZE", + "doc": { + "category": "app_misc", + "description": "A non-quiet version of `SDATASIZEQ` that throws a cell overflow exception (8) on failure.", + "gas": "", + "fift": "SDATASIZE" + }, + "bytecode": { + "doc_opcode": "F943", + "tlb": "#F943", + "prefix": "F943", + "operands": [] + }, + "value_flow": { + "doc_stack": "s n - x y z", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "n", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "LDGRAMS", + "doc": { + "category": "app_currency", + "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" + }, + "bytecode": { + "doc_opcode": "FA00", + "tlb": "#FA00", + "prefix": "FA00", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDVARINT16", + "doc": { + "category": "app_currency", + "description": "Similar to `LDVARUINT16`, but loads a _signed_ _Integer_ `x`.\nApproximately equivalent to `4 LDU` `SWAP` `3 LSHIFT#` `LDIX`.", + "gas": "26", + "fift": "LDVARINT16" + }, + "bytecode": { + "doc_opcode": "FA01", + "tlb": "#FA01", + "prefix": "FA01", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "STGRAMS", + "doc": { + "category": "app_currency", + "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" + }, + "bytecode": { + "doc_opcode": "FA02", + "tlb": "#FA02", + "prefix": "FA02", + "operands": [] + }, + "value_flow": { + "doc_stack": "b x - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STVARINT16", + "doc": { + "category": "app_currency", + "description": "Similar to `STVARUINT16`, but serializes a _signed_ _Integer_ `x` in the range `-2^119...2^119-1`.", + "gas": "26", + "fift": "STVARINT16" + }, + "bytecode": { + "doc_opcode": "FA03", + "tlb": "#FA03", + "prefix": "FA03", + "operands": [] + }, + "value_flow": { + "doc_stack": "b x - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "LDVARUINT32", + "doc": { + "category": "app_currency", + "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" + }, + "bytecode": { + "doc_opcode": "FA04", + "tlb": "#FA04", + "prefix": "FA04", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDVARINT32", + "doc": { + "category": "app_currency", + "description": "Similar to `LDVARUINT32`, but loads a _signed_ _Integer_ `x`.\nApproximately equivalent to `5 LDU` `SWAP` `3 LSHIFT#` `LDIX`.", + "gas": "26", + "fift": "LDVARINT32" + }, + "bytecode": { + "doc_opcode": "FA05", + "tlb": "#FA05", + "prefix": "FA05", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "STVARUINT32", + "doc": { + "category": "app_currency", + "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" + }, + "bytecode": { + "doc_opcode": "FA06", + "tlb": "#FA06", + "prefix": "FA06", + "operands": [] + }, + "value_flow": { + "doc_stack": "b x - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "STVARINT32", + "doc": { + "category": "app_currency", + "description": "Similar to `STVARUINT32`, but serializes a _signed_ _Integer_ `x` in the range `-2^247...2^247-1`.", + "gas": "26", + "fift": "STVARINT32" + }, + "bytecode": { + "doc_opcode": "FA07", + "tlb": "#FA07", + "prefix": "FA07", + "operands": [] + }, + "value_flow": { + "doc_stack": "b x - b'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + } + }, + { + "mnemonic": "LDMSGADDR", + "doc": { + "category": "app_addr", + "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" + }, + "bytecode": { + "doc_opcode": "FA40", + "tlb": "#FA40", + "prefix": "FA40", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - s' s''", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "LDMSGADDRQ", + "doc": { + "category": "app_addr", + "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" + }, + "bytecode": { + "doc_opcode": "FA41", + "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"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] } - ] + ] + } + ] }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "SETCP", - "doc": { - "category": "codepage", - "description": "Selects TVM codepage `0 <= nn < 240`. If the codepage is not supported, throws an invalid opcode exception.", - "gas": "26", - "fift": "[nn] SETCP" - }, - "bytecode": { - "doc_opcode": "FFnn", - "tlb": "#FF nn:(#<= 239)", - "prefix": "FF", - "operands_range_check": { - "length": 8, - "from": 0, - "to": 239 - }, - "operands": [ + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "PARSEMSGADDR", + "doc": { + "category": "app_addr", + "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" + }, + "bytecode": { + "doc_opcode": "FA42", + "tlb": "#FA42", + "prefix": "FA42", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - t", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + } + ] + } + } + }, + { + "mnemonic": "PARSEMSGADDRQ", + "doc": { + "category": "app_addr", + "description": "A quiet version of `PARSEMSGADDR`: returns a zero on error instead of throwing an exception.", + "gas": "26", + "fift": "PARSEMSGADDRQ" + }, + "bytecode": { + "doc_opcode": "FA43", + "tlb": "#FA43", + "prefix": "FA43", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - t -1 or 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "t", + "value_types": ["Tuple"] + } + ] + } + ] + }, + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "REWRITESTDADDR", + "doc": { + "category": "app_addr", + "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" + }, + "bytecode": { + "doc_opcode": "FA44", + "tlb": "#FA44", + "prefix": "FA44", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x y", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "REWRITESTDADDRQ", + "doc": { + "category": "app_addr", + "description": "A quiet version of primitive `REWRITESTDADDR`.", + "gas": "26", + "fift": "REWRITESTDADDRQ" + }, + "bytecode": { + "doc_opcode": "FA45", + "tlb": "#FA45", + "prefix": "FA45", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x y -1 or 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 8 - } + "type": "simple", + "name": "y", + "value_types": ["Integer"] } - ] + ] + } + ] }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "SETCP_SPECIAL", - "doc": { - "category": "codepage", - "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" - }, - "bytecode": { - "doc_opcode": "FFFz", - "tlb": "#FFF z:(## 4) {1 <= z}", - "prefix": "FFF", - "operands_range_check": { - "length": 4, - "from": 1, - "to": 15 - }, - "operands": [ + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "REWRITEVARADDR", + "doc": { + "category": "app_addr", + "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" + }, + "bytecode": { + "doc_opcode": "FA46", + "tlb": "#FA46", + "prefix": "FA46", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + } + ] + } + } + }, + { + "mnemonic": "REWRITEVARADDRQ", + "doc": { + "category": "app_addr", + "description": "A quiet version of primitive `REWRITEVARADDR`.", + "gas": "26", + "fift": "REWRITEVARADDRQ" + }, + "bytecode": { + "doc_opcode": "FA47", + "tlb": "#FA47", + "prefix": "FA47", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x s' -1 or 0", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, { - "name": "z", - "loader": "uint", - "loader_args": { - "size": 4 - } + "type": "simple", + "name": "s'", + "value_types": ["Slice"] } - ] + ] + } + ] }, - "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } - } - }, - { - "mnemonic": "SETCPX", - "doc": { - "category": "codepage", - "description": "Selects codepage `c` with `-2^15 <= c < 2^15` passed in the top of the stack.", - "gas": "26", - "fift": "SETCPX" - }, - "bytecode": { - "doc_opcode": "FFF0", - "tlb": "#FFF0", - "prefix": "FFF0", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Integer"] - } - ] - }, - "outputs": { - "stack": [] - } - } - } - ], - "aliases": [ - { - "mnemonic": "SWAP", - "alias_of": "XCHG_0I", - "doc_fift": "SWAP", - "doc_stack": "x y - y x", - "description": "Same as `s1 XCHG0`.", - "operands": { - "i": 1 - } - }, - { - "mnemonic": "DUP", - "alias_of": "PUSH", - "doc_fift": "DUP", - "doc_stack": "x - x x", - "description": "Same as `s0 PUSH`.", - "operands": { - "i": 0 - } - }, - { - "mnemonic": "OVER", - "alias_of": "PUSH", - "doc_fift": "OVER", - "doc_stack": "x y - x y x", - "description": "Same as `s1 PUSH`.", - "operands": { - "i": 1 - } - }, - { - "mnemonic": "DROP", - "alias_of": "POP", - "doc_fift": "DROP", - "doc_stack": "x -", - "description": "Same as `s0 POP`, discards the top-of-stack value.", - "operands": { - "i": 0 - } - }, - { - "mnemonic": "NIP", - "alias_of": "POP", - "doc_fift": "NIP", - "doc_stack": "x y - y", - "description": "Same as `s1 POP`.", - "operands": { - "i": 1 - } - }, - { - "mnemonic": "ROT2", - "alias_of": "BLKSWAP", - "doc_fift": "ROT2\n2ROT", - "doc_stack": "a b c d e f - c d e f a b", - "description": "Rotates the three topmost pairs of stack entries.", - "operands": { - "i": 1, - "j": 3 - } - }, - { - "mnemonic": "ROLL", - "alias_of": "BLKSWAP", - "doc_fift": "[i+1] ROLL", - "doc_stack": "", - "description": "Rotates the top `i+1` stack entries.\nEquivalent to `1 [i+1] BLKSWAP`.", - "operands": { - "i": 0 - } - }, - { - "mnemonic": "ROLLREV", - "alias_of": "BLKSWAP", - "doc_fift": "[i+1] -ROLL\n[i+1] ROLLREV", - "doc_stack": "", - "description": "Rotates the top `i+1` stack entries in the other direction.\nEquivalent to `[i+1] 1 BLKSWAP`.", - "operands": {} - }, - { - "mnemonic": "NIL", - "alias_of": "TUPLE", - "doc_fift": "NIL", - "doc_stack": "- t", - "description": "Pushes the only _Tuple_ `t=()` of length zero.", - "operands": { - "n": 0 - } - }, - { - "mnemonic": "SINGLE", - "alias_of": "TUPLE", - "doc_fift": "SINGLE", - "doc_stack": "x - t", - "description": "Creates a singleton `t:=(x)`, i.e., a _Tuple_ of length one.", - "operands": { - "n": 1 - } - }, - { - "mnemonic": "PAIR", - "alias_of": "TUPLE", - "doc_fift": "PAIR\nCONS", - "doc_stack": "x y - t", - "description": "Creates pair `t:=(x,y)`.", - "operands": { - "n": 2 - } - }, - { - "mnemonic": "TRIPLE", - "alias_of": "TUPLE", - "doc_fift": "TRIPLE", - "doc_stack": "x y z - t", - "description": "Creates triple `t:=(x,y,z)`.", - "operands": { - "n": 3 - } - }, - { - "mnemonic": "FIRST", - "alias_of": "INDEX", - "doc_fift": "FIRST\nCAR", - "doc_stack": "t - x", - "description": "Returns the first element of a _Tuple_.", - "operands": { - "k": 0 - } - }, - { - "mnemonic": "SECOND", - "alias_of": "INDEX", - "doc_fift": "SECOND\nCDR", - "doc_stack": "t - y", - "description": "Returns the second element of a _Tuple_.", - "operands": { - "k": 1 - } - }, - { - "mnemonic": "THIRD", - "alias_of": "INDEX", - "doc_fift": "THIRD", - "doc_stack": "t - z", - "description": "Returns the third element of a _Tuple_.", - "operands": { - "k": 2 - } - }, - { - "mnemonic": "UNSINGLE", - "alias_of": "UNTUPLE", - "doc_fift": "UNSINGLE", - "doc_stack": "t - x", - "description": "Unpacks a singleton `t=(x)`.", - "operands": { - "n": 1 - } - }, - { - "mnemonic": "UNPAIR", - "alias_of": "UNTUPLE", - "doc_fift": "UNPAIR\nUNCONS", - "doc_stack": "t - x y", - "description": "Unpacks a pair `t=(x,y)`.", - "operands": { - "n": 2 - } - }, - { - "mnemonic": "UNTRIPLE", - "alias_of": "UNTUPLE", - "doc_fift": "UNTRIPLE", - "doc_stack": "t - x y z", - "description": "Unpacks a triple `t=(x,y,z)`.", - "operands": { - "n": 3 - } - }, - { - "mnemonic": "CHKTUPLE", - "alias_of": "UNPACKFIRST", - "doc_fift": "CHKTUPLE", - "doc_stack": "t -", - "description": "Checks whether `t` is a _Tuple_. If not, throws a type check exception.", - "operands": { - "k": 0 - } - }, - { - "mnemonic": "SETFIRST", - "alias_of": "SETINDEX", - "doc_fift": "SETFIRST", - "doc_stack": "t x - t'", - "description": "Sets the first component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { - "k": 0 - } - }, - { - "mnemonic": "SETSECOND", - "alias_of": "SETINDEX", - "doc_fift": "SETSECOND", - "doc_stack": "t x - t'", - "description": "Sets the second component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { - "k": 1 - } - }, - { - "mnemonic": "SETTHIRD", - "alias_of": "SETINDEX", - "doc_fift": "SETTHIRD", - "doc_stack": "t x - t'", - "description": "Sets the third component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { - "k": 2 - } - }, - { - "mnemonic": "FIRSTQ", - "alias_of": "INDEXQ", - "doc_fift": "FIRSTQ\nCARQ", - "doc_stack": "t - x", - "description": "Returns the first element of a _Tuple_.", - "operands": { - "k": 0 - } - }, - { - "mnemonic": "SECONDQ", - "alias_of": "INDEXQ", - "doc_fift": "SECONDQ\nCDRQ", - "doc_stack": "t - y", - "description": "Returns the second element of a _Tuple_.", - "operands": { - "k": 1 - } - }, - { - "mnemonic": "THIRDQ", - "alias_of": "INDEXQ", - "doc_fift": "THIRDQ", - "doc_stack": "t - z", - "description": "Returns the third element of a _Tuple_.", - "operands": { - "k": 2 - } - }, - { - "mnemonic": "SETFIRSTQ", - "alias_of": "SETINDEXQ", - "doc_fift": "SETFIRSTQ", - "doc_stack": "t x - t'", - "description": "Sets the first component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { - "k": 0 - } - }, - { - "mnemonic": "SETSECONDQ", - "alias_of": "SETINDEXQ", - "doc_fift": "SETSECONDQ", - "doc_stack": "t x - t'", - "description": "Sets the second component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { - "k": 1 - } - }, - { - "mnemonic": "SETTHIRDQ", - "alias_of": "SETINDEXQ", - "doc_fift": "SETTHIRDQ", - "doc_stack": "t x - t'", - "description": "Sets the third component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { - "k": 2 - } - }, - { - "mnemonic": "CADR", - "alias_of": "INDEX2", - "doc_fift": "CADR", - "doc_stack": "t - x", - "description": "Recovers `x=(t_2)_1`.", - "operands": { - "i": 1, - "j": 0 - } - }, - { - "mnemonic": "CDDR", - "alias_of": "INDEX2", - "doc_fift": "CDDR", - "doc_stack": "t - x", - "description": "Recovers `x=(t_2)_2`.", - "operands": { - "i": 1, - "j": 1 - } - }, - { - "mnemonic": "CADDR", - "alias_of": "INDEX3", - "doc_fift": "CADDR", - "doc_stack": "t - x", - "description": "Recovers `x=t_2_2_1`.", - "operands": { - "i": 1, - "j": 1, - "k": 0 - } - }, - { - "mnemonic": "CDDDR", - "alias_of": "INDEX3", - "doc_fift": "CDDDR", - "doc_stack": "t - x", - "description": "Recovers `x=t_2_2_2`.", - "operands": { - "i": 1, - "j": 1, - "k": 1 - } - }, - { - "mnemonic": "ZERO", - "alias_of": "PUSHINT_4", - "doc_fift": "ZERO\nFALSE", - "doc_stack": "- 0", - "description": "", - "operands": { - "i": 0 - } - }, - { - "mnemonic": "ONE", - "alias_of": "PUSHINT_4", - "doc_fift": "ONE", - "doc_stack": "- 1", - "description": "", - "operands": { - "i": 1 - } - }, - { - "mnemonic": "TWO", - "alias_of": "PUSHINT_4", - "doc_fift": "TWO", - "doc_stack": "- 2", - "description": "", - "operands": { - "i": 2 - } - }, - { - "mnemonic": "TEN", - "alias_of": "PUSHINT_4", - "doc_fift": "TEN", - "doc_stack": "- 10", - "description": "", - "operands": { - "i": 10 - } - }, - { - "mnemonic": "TRUE", - "alias_of": "PUSHINT_4", - "doc_fift": "TRUE", - "doc_stack": "- -1", - "description": "", - "operands": { - "i": 15 - } - }, - { - "mnemonic": "CHKBOOL", - "alias_of": "FITS", - "doc_fift": "CHKBOOL", - "doc_stack": "x - x", - "description": "Checks whether `x` is a \u0432\u0402\u045aboolean value'' (i.e., either 0 or -1).", - "operands": { - "c": 0 - } - }, - { - "mnemonic": "CHKBIT", - "alias_of": "UFITS", - "doc_fift": "CHKBIT", - "doc_stack": "x - x", - "description": "Checks whether `x` is a binary digit (i.e., zero or one).", - "operands": { - "c": 0 - } - }, - { - "mnemonic": "ISZERO", - "alias_of": "EQINT", - "doc_fift": "ISZERO", - "doc_stack": "x - x=0", - "description": "Checks whether an integer is zero. Corresponds to Forth's `0=`.", - "operands": { - "y": 0 - } - }, - { - "mnemonic": "ISNEG", - "alias_of": "LESSINT", - "doc_fift": "ISNEG", - "doc_stack": "x - x<0", - "description": "Checks whether an integer is negative. Corresponds to Forth's `0<`.", - "operands": { - "y": 0 - } - }, - { - "mnemonic": "ISNPOS", - "alias_of": "LESSINT", - "doc_fift": "ISNPOS", - "doc_stack": "x - x<=0", - "description": "Checks whether an integer is non-positive.", - "operands": { - "y": 1 - } - }, - { - "mnemonic": "ISPOS", - "alias_of": "GTINT", - "doc_fift": "ISPOS", - "doc_stack": "x - x>0", - "description": "Checks whether an integer is positive. Corresponds to Forth's `0>`.", - "operands": { - "y": 0 - } - }, - { - "mnemonic": "ISNNEG", - "alias_of": "GTINT", - "doc_fift": "ISNNEG", - "doc_stack": "x - x >=0", - "description": "Checks whether an integer is non-negative.", - "operands": { - "y": -1 - } - }, - { - "mnemonic": "STZERO", - "alias_of": "STSLICECONST", - "doc_fift": "STZERO", - "doc_stack": "b - b'", - "description": "Stores one binary zero.", - "operands": { - "x": 0, - "y": 0, - "sss": "0" - } - }, - { - "mnemonic": "STONE", - "alias_of": "STSLICECONST", - "doc_fift": "STONE", - "doc_stack": "b - b'", - "description": "Stores one binary one.", - "operands": { - "x": 0, - "y": 0, - "sss": "1" - } - }, - { - "mnemonic": "PLDREF", - "alias_of": "PLDREFIDX", - "doc_fift": "PLDREF", - "doc_stack": "s - c", - "description": "Preloads the first cell reference of a _Slice_.", - "operands": { - "n": 0 - } - }, - { - "mnemonic": "SETNUMARGS", - "alias_of": "SETCONTARGS_N", - "doc_fift": "[n] SETNUMARGS", - "doc_stack": "c - c'", - "description": "Sets `c.nargs` to `n` plus the current depth of `c`'s stack, where `0 <= n <= 14`. If `c.nargs` is already set to a non-negative value, does nothing.", - "operands": { - "r": 0 - } - }, - { - "mnemonic": "SETCONTARGS", - "alias_of": "SETCONTARGS_N", - "doc_fift": "[r] -1 SETCONTARGS", - "doc_stack": "x_1 x_2...x_r c - c'", - "description": "Pushes `0 <= r <= 15` values `x_1...x_r` into the stack of (a copy of) the continuation `c`, starting with `x_1`. If the final depth of `c`'s stack turns out to be greater than `c.nargs`, a stack overflow exception is generated.", - "operands": { - "n": -1 - } - }, - { - "mnemonic": "BLESSNUMARGS", - "alias_of": "BLESSARGS", - "doc_fift": "[n] BLESSNUMARGS", - "doc_stack": "s - c", - "description": "Also transforms a _Slice_ `s` into a _Continuation_ `c`, but sets `c.nargs` to `0 <= n <= 14`.", - "operands": { - "r": 0 - } - }, - { - "mnemonic": "PUSHROOT", - "alias_of": "PUSHCTR", - "doc_fift": "c4 PUSHCTR\nc4 PUSH", - "doc_stack": "- x", - "description": "Pushes the \u0432\u0402\u045aglobal data root'' cell reference, thus enabling access to persistent smart-contract data.", - "operands": { - "i": 4 - } - }, - { - "mnemonic": "POPROOT", - "alias_of": "POPCTR", - "doc_fift": "c4 POPCTR\nc4 POP", - "doc_stack": "x -", - "description": "Sets the \u0432\u0402\u045aglobal data root'' cell reference, thus allowing modification of persistent smart-contract data.", - "operands": { - "i": 4 - } - }, - { - "mnemonic": "NEWDICT", - "alias_of": "NULL", - "doc_fift": "NEWDICT", - "doc_stack": " - D", - "description": "Returns a new empty dictionary.\nIt is an alternative mnemonics for `PUSHNULL`.", - "operands": {} - }, - { - "mnemonic": "DICTEMPTY", - "alias_of": "ISNULL", - "doc_fift": "DICTEMPTY", - "doc_stack": "D - ?", - "description": "Checks whether dictionary `D` is empty, and returns `-1` or `0` accordingly.\nIt is an alternative mnemonics for `ISNULL`.", - "operands": {} - }, - { - "mnemonic": "STDICTS", - "alias_of": "STSLICE", - "doc_fift": "STDICTS\n", - "doc_stack": "s b - b'", - "description": "Stores a _Slice_-represented dictionary `s` into _Builder_ `b`.\nIt is actually a synonym for `STSLICE`.", - "operands": {} - }, - { - "mnemonic": "NOW", - "alias_of": "GETPARAM", - "doc_fift": "NOW", - "doc_stack": " - x", - "description": "Returns the current Unix time as an _Integer_. If it is impossible to recover the requested value starting from `c7`, throws a type checking or range checking exception as appropriate.\nEquivalent to `3 GETPARAM`.", - "operands": { - "i": 3 - } - }, - { - "mnemonic": "BLOCKLT", - "alias_of": "GETPARAM", - "doc_fift": "BLOCKLT", - "doc_stack": " - x", - "description": "Returns the starting logical time of the current block.\nEquivalent to `4 GETPARAM`.", - "operands": { - "i": 4 - } - }, - { - "mnemonic": "LTIME", - "alias_of": "GETPARAM", - "doc_fift": "LTIME", - "doc_stack": " - x", - "description": "Returns the logical time of the current transaction.\nEquivalent to `5 GETPARAM`.", - "operands": { - "i": 5 - } - }, - { - "mnemonic": "RANDSEED", - "alias_of": "GETPARAM", - "doc_fift": "RANDSEED", - "doc_stack": " - x", - "description": "Returns the current random seed as an unsigned 256-bit _Integer_.\nEquivalent to `6 GETPARAM`.", - "operands": { - "i": 6 - } - }, - { - "mnemonic": "BALANCE", - "alias_of": "GETPARAM", - "doc_fift": "BALANCE", - "doc_stack": " - t", - "description": "Returns the remaining balance of the smart contract as a _Tuple_ consisting of an _Integer_ (the remaining Gram balance in nanograms) and a _Maybe Cell_ (a dictionary with 32-bit keys representing the balance of \u0432\u0402\u045aextra currencies'').\nEquivalent to `7 GETPARAM`.\nNote that `RAW` primitives such as `SENDRAWMSG` do not update this field.", - "operands": { - "i": 7 - } - }, - { - "mnemonic": "MYADDR", - "alias_of": "GETPARAM", - "doc_fift": "MYADDR", - "doc_stack": " - s", - "description": "Returns the internal address of the current smart contract as a _Slice_ with a `MsgAddressInt`. If necessary, it can be parsed further using primitives such as `PARSEMSGADDR` or `REWRITESTDADDR`.\nEquivalent to `8 GETPARAM`.", - "operands": { - "i": 8 - } - }, - { - "mnemonic": "CONFIGROOT", - "alias_of": "GETPARAM", - "doc_fift": "CONFIGROOT", - "doc_stack": " - D", - "description": "Returns the _Maybe Cell_ `D` with the current global configuration dictionary. Equivalent to `9 GETPARAM `.", - "operands": { - "i": 9 - } - }, - { - "mnemonic": "MYCODE", - "alias_of": "GETPARAM", - "doc_fift": "MYCODE", - "doc_stack": " - c", - "description": "Retrieves code of smart-contract from c7. Equivalent to `10 GETPARAM `.", - "operands": { - "i": 10 - } - }, - { - "mnemonic": "INCOMINGVALUE", - "alias_of": "GETPARAM", - "doc_fift": "INCOMINGVALUE", - "doc_stack": " - t", - "description": "Retrieves value of incoming message from c7. Equivalent to `11 GETPARAM `.", - "operands": { - "i": 11 - } - }, - { - "mnemonic": "STORAGEFEES", - "alias_of": "GETPARAM", - "doc_fift": "STORAGEFEES", - "doc_stack": " - i", - "description": "Retrieves value of storage phase fees from c7. Equivalent to `12 GETPARAM `.", - "operands": { - "i": 12 - } - }, - { - "mnemonic": "PREVBLOCKSINFOTUPLE", - "alias_of": "GETPARAM", - "doc_fift": "PREVBLOCKSINFOTUPLE", - "doc_stack": " - t", - "description": "Retrives PrevBlocksInfo: `[last_mc_blocks, prev_key_block]` from c7. Equivalent to `13 GETPARAM `.", - "operands": { - "i": 13 - } - }, - { - "mnemonic": "SETCP0", - "alias_of": "SETCP", - "doc_fift": "SETCP0", - "doc_stack": "-", - "description": "Selects TVM (test) codepage zero as described in this document.", - "operands": { - "n": 0 - } - } - ] -} \ No newline at end of file + { + "type": "simple", + "name": "status", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "SENDRAWMSG", + "doc": { + "category": "app_actions", + "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" + }, + "bytecode": { + "doc_opcode": "FB00", + "tlb": "#FB00", + "prefix": "FB00", + "operands": [] + }, + "value_flow": { + "doc_stack": "c x - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "RAWRESERVE", + "doc": { + "category": "app_actions", + "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" + }, + "bytecode": { + "doc_opcode": "FB02", + "tlb": "#FB02", + "prefix": "FB02", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "RAWRESERVEX", + "doc": { + "category": "app_actions", + "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" + }, + "bytecode": { + "doc_opcode": "FB03", + "tlb": "#FB03", + "prefix": "FB03", + "operands": [] + }, + "value_flow": { + "doc_stack": "x D y - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "D", + "value_types": ["Cell", "Null"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SETCODE", + "doc": { + "category": "app_actions", + "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" + }, + "bytecode": { + "doc_opcode": "FB04", + "tlb": "#FB04", + "prefix": "FB04", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SETLIBCODE", + "doc": { + "category": "app_actions", + "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" + }, + "bytecode": { + "doc_opcode": "FB06", + "tlb": "#FB06", + "prefix": "FB06", + "operands": [] + }, + "value_flow": { + "doc_stack": "c x - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "CHANGELIB", + "doc": { + "category": "app_actions", + "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" + }, + "bytecode": { + "doc_opcode": "FB07", + "tlb": "#FB07", + "prefix": "FB07", + "operands": [] + }, + "value_flow": { + "doc_stack": "h x - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "h", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SENDMSG", + "doc": { + "category": "app_actions", + "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" + }, + "bytecode": { + "doc_opcode": "FB08", + "tlb": "#FB08", + "prefix": "FB08", + "operands": [] + }, + "value_flow": { + "doc_stack": "c x - fee", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Cell"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "fee", + "value_types": ["Integer"] + } + ] + } + } + }, + { + "mnemonic": "DUMPSTK", + "doc": { + "category": "debug", + "description": "Dumps the stack (at most the top 255 values) and shows the total stack depth.", + "gas": "26", + "fift": "DUMPSTK" + }, + "bytecode": { + "doc_opcode": "FE00", + "tlb": "#FE00", + "prefix": "FE00" + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "DEBUG", + "doc": { + "category": "debug", + "description": "", + "gas": "26", + "fift": "{nn} DEBUG" + }, + "bytecode": { + "doc_opcode": "FEnn", + "tlb": "#FE nn:(#<= 239)", + "prefix": "FE", + "operands_range_check": { + "length": 8, + "from": 1, + "to": 19 + }, + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "STRDUMP", + "doc": { + "category": "debug", + "description": "", + "gas": "26", + "fift": "STRDUMP" + }, + "bytecode": { + "doc_opcode": "FE14", + "tlb": "#FE14", + "prefix": "FE14" + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "DEBUG", + "doc": { + "category": "debug", + "description": "", + "gas": "26", + "fift": "{nn} DEBUG" + }, + "bytecode": { + "doc_opcode": "FEnn", + "tlb": "#FE nn:(#<= 239)", + "prefix": "FE", + "operands_range_check": { + "length": 8, + "from": 21, + "to": 31 + }, + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "DUMP", + "doc": { + "category": "debug", + "description": "Dumps `s[i]`.", + "gas": "26", + "fift": "s[i] DUMP" + }, + "bytecode": { + "doc_opcode": "FE2i", + "tlb": "#FE2 i:uint4", + "prefix": "FE2", + "operands": [ + { + "name": "i", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "DEBUG", + "doc": { + "category": "debug", + "description": "", + "gas": "26", + "fift": "{nn} DEBUG" + }, + "bytecode": { + "doc_opcode": "FEnn", + "tlb": "#FE nn:(#<= 239)", + "prefix": "FE", + "operands_range_check": { + "length": 8, + "from": 48, + "to": 239 + }, + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "DEBUGSTR", + "doc": { + "category": "debug", + "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" + }, + "bytecode": { + "doc_opcode": "FEFnssss", + "tlb": "#FEF n:(## 4) ssss:((n * 8 + 8) * Bit)", + "prefix": "FEF", + "operands": [ + { + "name": "s", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 4, + "bits_padding": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SETCP", + "doc": { + "category": "codepage", + "description": "Selects TVM codepage `0 <= nn < 240`. If the codepage is not supported, throws an invalid opcode exception.", + "gas": "26", + "fift": "[nn] SETCP" + }, + "bytecode": { + "doc_opcode": "FFnn", + "tlb": "#FF nn:(#<= 239)", + "prefix": "FF", + "operands_range_check": { + "length": 8, + "from": 0, + "to": 239 + }, + "operands": [ + { + "name": "n", + "loader": "uint", + "loader_args": { + "size": 8 + } + } + ] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SETCP_SPECIAL", + "doc": { + "category": "codepage", + "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" + }, + "bytecode": { + "doc_opcode": "FFFz", + "tlb": "#FFF z:(## 4) {1 <= z}", + "prefix": "FFF", + "operands_range_check": { + "length": 4, + "from": 1, + "to": 15 + }, + "operands": [ + { + "name": "z", + "loader": "uint", + "loader_args": { + "size": 4 + } + } + ] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { + "stack": [] + }, + "outputs": { + "stack": [] + } + } + }, + { + "mnemonic": "SETCPX", + "doc": { + "category": "codepage", + "description": "Selects codepage `c` with `-2^15 <= c < 2^15` passed in the top of the stack.", + "gas": "26", + "fift": "SETCPX" + }, + "bytecode": { + "doc_opcode": "FFF0", + "tlb": "#FFF0", + "prefix": "FFF0", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "simple", + "name": "c", + "value_types": ["Integer"] + } + ] + }, + "outputs": { + "stack": [] + } + } + } + ], + "aliases": [ + { + "mnemonic": "SWAP", + "alias_of": "XCHG_0I", + "doc_fift": "SWAP", + "doc_stack": "x y - y x", + "description": "Same as `s1 XCHG0`.", + "operands": { + "i": 1 + } + }, + { + "mnemonic": "DUP", + "alias_of": "PUSH", + "doc_fift": "DUP", + "doc_stack": "x - x x", + "description": "Same as `s0 PUSH`.", + "operands": { + "i": 0 + } + }, + { + "mnemonic": "OVER", + "alias_of": "PUSH", + "doc_fift": "OVER", + "doc_stack": "x y - x y x", + "description": "Same as `s1 PUSH`.", + "operands": { + "i": 1 + } + }, + { + "mnemonic": "DROP", + "alias_of": "POP", + "doc_fift": "DROP", + "doc_stack": "x -", + "description": "Same as `s0 POP`, discards the top-of-stack value.", + "operands": { + "i": 0 + } + }, + { + "mnemonic": "NIP", + "alias_of": "POP", + "doc_fift": "NIP", + "doc_stack": "x y - y", + "description": "Same as `s1 POP`.", + "operands": { + "i": 1 + } + }, + { + "mnemonic": "ROT2", + "alias_of": "BLKSWAP", + "doc_fift": "ROT2\n2ROT", + "doc_stack": "a b c d e f - c d e f a b", + "description": "Rotates the three topmost pairs of stack entries.", + "operands": { + "i": 1, + "j": 3 + } + }, + { + "mnemonic": "ROLL", + "alias_of": "BLKSWAP", + "doc_fift": "[i+1] ROLL", + "doc_stack": "", + "description": "Rotates the top `i+1` stack entries.\nEquivalent to `1 [i+1] BLKSWAP`.", + "operands": { + "i": 0 + } + }, + { + "mnemonic": "ROLLREV", + "alias_of": "BLKSWAP", + "doc_fift": "[i+1] -ROLL\n[i+1] ROLLREV", + "doc_stack": "", + "description": "Rotates the top `i+1` stack entries in the other direction.\nEquivalent to `[i+1] 1 BLKSWAP`.", + "operands": {} + }, + { + "mnemonic": "NIL", + "alias_of": "TUPLE", + "doc_fift": "NIL", + "doc_stack": "- t", + "description": "Pushes the only _Tuple_ `t=()` of length zero.", + "operands": { + "n": 0 + } + }, + { + "mnemonic": "SINGLE", + "alias_of": "TUPLE", + "doc_fift": "SINGLE", + "doc_stack": "x - t", + "description": "Creates a singleton `t:=(x)`, i.e., a _Tuple_ of length one.", + "operands": { + "n": 1 + } + }, + { + "mnemonic": "PAIR", + "alias_of": "TUPLE", + "doc_fift": "PAIR\nCONS", + "doc_stack": "x y - t", + "description": "Creates pair `t:=(x,y)`.", + "operands": { + "n": 2 + } + }, + { + "mnemonic": "TRIPLE", + "alias_of": "TUPLE", + "doc_fift": "TRIPLE", + "doc_stack": "x y z - t", + "description": "Creates triple `t:=(x,y,z)`.", + "operands": { + "n": 3 + } + }, + { + "mnemonic": "FIRST", + "alias_of": "INDEX", + "doc_fift": "FIRST\nCAR", + "doc_stack": "t - x", + "description": "Returns the first element of a _Tuple_.", + "operands": { + "k": 0 + } + }, + { + "mnemonic": "SECOND", + "alias_of": "INDEX", + "doc_fift": "SECOND\nCDR", + "doc_stack": "t - y", + "description": "Returns the second element of a _Tuple_.", + "operands": { + "k": 1 + } + }, + { + "mnemonic": "THIRD", + "alias_of": "INDEX", + "doc_fift": "THIRD", + "doc_stack": "t - z", + "description": "Returns the third element of a _Tuple_.", + "operands": { + "k": 2 + } + }, + { + "mnemonic": "UNSINGLE", + "alias_of": "UNTUPLE", + "doc_fift": "UNSINGLE", + "doc_stack": "t - x", + "description": "Unpacks a singleton `t=(x)`.", + "operands": { + "n": 1 + } + }, + { + "mnemonic": "UNPAIR", + "alias_of": "UNTUPLE", + "doc_fift": "UNPAIR\nUNCONS", + "doc_stack": "t - x y", + "description": "Unpacks a pair `t=(x,y)`.", + "operands": { + "n": 2 + } + }, + { + "mnemonic": "UNTRIPLE", + "alias_of": "UNTUPLE", + "doc_fift": "UNTRIPLE", + "doc_stack": "t - x y z", + "description": "Unpacks a triple `t=(x,y,z)`.", + "operands": { + "n": 3 + } + }, + { + "mnemonic": "CHKTUPLE", + "alias_of": "UNPACKFIRST", + "doc_fift": "CHKTUPLE", + "doc_stack": "t -", + "description": "Checks whether `t` is a _Tuple_. If not, throws a type check exception.", + "operands": { + "k": 0 + } + }, + { + "mnemonic": "SETFIRST", + "alias_of": "SETINDEX", + "doc_fift": "SETFIRST", + "doc_stack": "t x - t'", + "description": "Sets the first component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", + "operands": { + "k": 0 + } + }, + { + "mnemonic": "SETSECOND", + "alias_of": "SETINDEX", + "doc_fift": "SETSECOND", + "doc_stack": "t x - t'", + "description": "Sets the second component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", + "operands": { + "k": 1 + } + }, + { + "mnemonic": "SETTHIRD", + "alias_of": "SETINDEX", + "doc_fift": "SETTHIRD", + "doc_stack": "t x - t'", + "description": "Sets the third component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", + "operands": { + "k": 2 + } + }, + { + "mnemonic": "FIRSTQ", + "alias_of": "INDEXQ", + "doc_fift": "FIRSTQ\nCARQ", + "doc_stack": "t - x", + "description": "Returns the first element of a _Tuple_.", + "operands": { + "k": 0 + } + }, + { + "mnemonic": "SECONDQ", + "alias_of": "INDEXQ", + "doc_fift": "SECONDQ\nCDRQ", + "doc_stack": "t - y", + "description": "Returns the second element of a _Tuple_.", + "operands": { + "k": 1 + } + }, + { + "mnemonic": "THIRDQ", + "alias_of": "INDEXQ", + "doc_fift": "THIRDQ", + "doc_stack": "t - z", + "description": "Returns the third element of a _Tuple_.", + "operands": { + "k": 2 + } + }, + { + "mnemonic": "SETFIRSTQ", + "alias_of": "SETINDEXQ", + "doc_fift": "SETFIRSTQ", + "doc_stack": "t x - t'", + "description": "Sets the first component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", + "operands": { + "k": 0 + } + }, + { + "mnemonic": "SETSECONDQ", + "alias_of": "SETINDEXQ", + "doc_fift": "SETSECONDQ", + "doc_stack": "t x - t'", + "description": "Sets the second component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", + "operands": { + "k": 1 + } + }, + { + "mnemonic": "SETTHIRDQ", + "alias_of": "SETINDEXQ", + "doc_fift": "SETTHIRDQ", + "doc_stack": "t x - t'", + "description": "Sets the third component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", + "operands": { + "k": 2 + } + }, + { + "mnemonic": "CADR", + "alias_of": "INDEX2", + "doc_fift": "CADR", + "doc_stack": "t - x", + "description": "Recovers `x=(t_2)_1`.", + "operands": { + "i": 1, + "j": 0 + } + }, + { + "mnemonic": "CDDR", + "alias_of": "INDEX2", + "doc_fift": "CDDR", + "doc_stack": "t - x", + "description": "Recovers `x=(t_2)_2`.", + "operands": { + "i": 1, + "j": 1 + } + }, + { + "mnemonic": "CADDR", + "alias_of": "INDEX3", + "doc_fift": "CADDR", + "doc_stack": "t - x", + "description": "Recovers `x=t_2_2_1`.", + "operands": { + "i": 1, + "j": 1, + "k": 0 + } + }, + { + "mnemonic": "CDDDR", + "alias_of": "INDEX3", + "doc_fift": "CDDDR", + "doc_stack": "t - x", + "description": "Recovers `x=t_2_2_2`.", + "operands": { + "i": 1, + "j": 1, + "k": 1 + } + }, + { + "mnemonic": "ZERO", + "alias_of": "PUSHINT_4", + "doc_fift": "ZERO\nFALSE", + "doc_stack": "- 0", + "description": "", + "operands": { + "i": 0 + } + }, + { + "mnemonic": "ONE", + "alias_of": "PUSHINT_4", + "doc_fift": "ONE", + "doc_stack": "- 1", + "description": "", + "operands": { + "i": 1 + } + }, + { + "mnemonic": "TWO", + "alias_of": "PUSHINT_4", + "doc_fift": "TWO", + "doc_stack": "- 2", + "description": "", + "operands": { + "i": 2 + } + }, + { + "mnemonic": "TEN", + "alias_of": "PUSHINT_4", + "doc_fift": "TEN", + "doc_stack": "- 10", + "description": "", + "operands": { + "i": 10 + } + }, + { + "mnemonic": "TRUE", + "alias_of": "PUSHINT_4", + "doc_fift": "TRUE", + "doc_stack": "- -1", + "description": "", + "operands": { + "i": 15 + } + }, + { + "mnemonic": "CHKBOOL", + "alias_of": "FITS", + "doc_fift": "CHKBOOL", + "doc_stack": "x - x", + "description": "Checks whether `x` is a \u0432\u0402\u045aboolean value'' (i.e., either 0 or -1).", + "operands": { + "c": 0 + } + }, + { + "mnemonic": "CHKBIT", + "alias_of": "UFITS", + "doc_fift": "CHKBIT", + "doc_stack": "x - x", + "description": "Checks whether `x` is a binary digit (i.e., zero or one).", + "operands": { + "c": 0 + } + }, + { + "mnemonic": "ISZERO", + "alias_of": "EQINT", + "doc_fift": "ISZERO", + "doc_stack": "x - x=0", + "description": "Checks whether an integer is zero. Corresponds to Forth's `0=`.", + "operands": { + "y": 0 + } + }, + { + "mnemonic": "ISNEG", + "alias_of": "LESSINT", + "doc_fift": "ISNEG", + "doc_stack": "x - x<0", + "description": "Checks whether an integer is negative. Corresponds to Forth's `0<`.", + "operands": { + "y": 0 + } + }, + { + "mnemonic": "ISNPOS", + "alias_of": "LESSINT", + "doc_fift": "ISNPOS", + "doc_stack": "x - x<=0", + "description": "Checks whether an integer is non-positive.", + "operands": { + "y": 1 + } + }, + { + "mnemonic": "ISPOS", + "alias_of": "GTINT", + "doc_fift": "ISPOS", + "doc_stack": "x - x>0", + "description": "Checks whether an integer is positive. Corresponds to Forth's `0>`.", + "operands": { + "y": 0 + } + }, + { + "mnemonic": "ISNNEG", + "alias_of": "GTINT", + "doc_fift": "ISNNEG", + "doc_stack": "x - x >=0", + "description": "Checks whether an integer is non-negative.", + "operands": { + "y": -1 + } + }, + { + "mnemonic": "STZERO", + "alias_of": "STSLICECONST", + "doc_fift": "STZERO", + "doc_stack": "b - b'", + "description": "Stores one binary zero.", + "operands": { + "x": 0, + "y": 0, + "sss": "0" + } + }, + { + "mnemonic": "STONE", + "alias_of": "STSLICECONST", + "doc_fift": "STONE", + "doc_stack": "b - b'", + "description": "Stores one binary one.", + "operands": { + "x": 0, + "y": 0, + "sss": "1" + } + }, + { + "mnemonic": "PLDREF", + "alias_of": "PLDREFIDX", + "doc_fift": "PLDREF", + "doc_stack": "s - c", + "description": "Preloads the first cell reference of a _Slice_.", + "operands": { + "n": 0 + } + }, + { + "mnemonic": "SETNUMARGS", + "alias_of": "SETCONTARGS_N", + "doc_fift": "[n] SETNUMARGS", + "doc_stack": "c - c'", + "description": "Sets `c.nargs` to `n` plus the current depth of `c`'s stack, where `0 <= n <= 14`. If `c.nargs` is already set to a non-negative value, does nothing.", + "operands": { + "r": 0 + } + }, + { + "mnemonic": "SETCONTARGS", + "alias_of": "SETCONTARGS_N", + "doc_fift": "[r] -1 SETCONTARGS", + "doc_stack": "x_1 x_2...x_r c - c'", + "description": "Pushes `0 <= r <= 15` values `x_1...x_r` into the stack of (a copy of) the continuation `c`, starting with `x_1`. If the final depth of `c`'s stack turns out to be greater than `c.nargs`, a stack overflow exception is generated.", + "operands": { + "n": -1 + } + }, + { + "mnemonic": "BLESSNUMARGS", + "alias_of": "BLESSARGS", + "doc_fift": "[n] BLESSNUMARGS", + "doc_stack": "s - c", + "description": "Also transforms a _Slice_ `s` into a _Continuation_ `c`, but sets `c.nargs` to `0 <= n <= 14`.", + "operands": { + "r": 0 + } + }, + { + "mnemonic": "PUSHROOT", + "alias_of": "PUSHCTR", + "doc_fift": "c4 PUSHCTR\nc4 PUSH", + "doc_stack": "- x", + "description": "Pushes the \u0432\u0402\u045aglobal data root'' cell reference, thus enabling access to persistent smart-contract data.", + "operands": { + "i": 4 + } + }, + { + "mnemonic": "POPROOT", + "alias_of": "POPCTR", + "doc_fift": "c4 POPCTR\nc4 POP", + "doc_stack": "x -", + "description": "Sets the \u0432\u0402\u045aglobal data root'' cell reference, thus allowing modification of persistent smart-contract data.", + "operands": { + "i": 4 + } + }, + { + "mnemonic": "NEWDICT", + "alias_of": "NULL", + "doc_fift": "NEWDICT", + "doc_stack": " - D", + "description": "Returns a new empty dictionary.\nIt is an alternative mnemonics for `PUSHNULL`.", + "operands": {} + }, + { + "mnemonic": "DICTEMPTY", + "alias_of": "ISNULL", + "doc_fift": "DICTEMPTY", + "doc_stack": "D - ?", + "description": "Checks whether dictionary `D` is empty, and returns `-1` or `0` accordingly.\nIt is an alternative mnemonics for `ISNULL`.", + "operands": {} + }, + { + "mnemonic": "STDICTS", + "alias_of": "STSLICE", + "doc_fift": "STDICTS\n", + "doc_stack": "s b - b'", + "description": "Stores a _Slice_-represented dictionary `s` into _Builder_ `b`.\nIt is actually a synonym for `STSLICE`.", + "operands": {} + }, + { + "mnemonic": "NOW", + "alias_of": "GETPARAM", + "doc_fift": "NOW", + "doc_stack": " - x", + "description": "Returns the current Unix time as an _Integer_. If it is impossible to recover the requested value starting from `c7`, throws a type checking or range checking exception as appropriate.\nEquivalent to `3 GETPARAM`.", + "operands": { + "i": 3 + } + }, + { + "mnemonic": "BLOCKLT", + "alias_of": "GETPARAM", + "doc_fift": "BLOCKLT", + "doc_stack": " - x", + "description": "Returns the starting logical time of the current block.\nEquivalent to `4 GETPARAM`.", + "operands": { + "i": 4 + } + }, + { + "mnemonic": "LTIME", + "alias_of": "GETPARAM", + "doc_fift": "LTIME", + "doc_stack": " - x", + "description": "Returns the logical time of the current transaction.\nEquivalent to `5 GETPARAM`.", + "operands": { + "i": 5 + } + }, + { + "mnemonic": "RANDSEED", + "alias_of": "GETPARAM", + "doc_fift": "RANDSEED", + "doc_stack": " - x", + "description": "Returns the current random seed as an unsigned 256-bit _Integer_.\nEquivalent to `6 GETPARAM`.", + "operands": { + "i": 6 + } + }, + { + "mnemonic": "BALANCE", + "alias_of": "GETPARAM", + "doc_fift": "BALANCE", + "doc_stack": " - t", + "description": "Returns the remaining balance of the smart contract as a _Tuple_ consisting of an _Integer_ (the remaining Gram balance in nanograms) and a _Maybe Cell_ (a dictionary with 32-bit keys representing the balance of \u0432\u0402\u045aextra currencies'').\nEquivalent to `7 GETPARAM`.\nNote that `RAW` primitives such as `SENDRAWMSG` do not update this field.", + "operands": { + "i": 7 + } + }, + { + "mnemonic": "MYADDR", + "alias_of": "GETPARAM", + "doc_fift": "MYADDR", + "doc_stack": " - s", + "description": "Returns the internal address of the current smart contract as a _Slice_ with a `MsgAddressInt`. If necessary, it can be parsed further using primitives such as `PARSEMSGADDR` or `REWRITESTDADDR`.\nEquivalent to `8 GETPARAM`.", + "operands": { + "i": 8 + } + }, + { + "mnemonic": "CONFIGROOT", + "alias_of": "GETPARAM", + "doc_fift": "CONFIGROOT", + "doc_stack": " - D", + "description": "Returns the _Maybe Cell_ `D` with the current global configuration dictionary. Equivalent to `9 GETPARAM `.", + "operands": { + "i": 9 + } + }, + { + "mnemonic": "MYCODE", + "alias_of": "GETPARAM", + "doc_fift": "MYCODE", + "doc_stack": " - c", + "description": "Retrieves code of smart-contract from c7. Equivalent to `10 GETPARAM `.", + "operands": { + "i": 10 + } + }, + { + "mnemonic": "INCOMINGVALUE", + "alias_of": "GETPARAM", + "doc_fift": "INCOMINGVALUE", + "doc_stack": " - t", + "description": "Retrieves value of incoming message from c7. Equivalent to `11 GETPARAM `.", + "operands": { + "i": 11 + } + }, + { + "mnemonic": "STORAGEFEES", + "alias_of": "GETPARAM", + "doc_fift": "STORAGEFEES", + "doc_stack": " - i", + "description": "Retrieves value of storage phase fees from c7. Equivalent to `12 GETPARAM `.", + "operands": { + "i": 12 + } + }, + { + "mnemonic": "PREVBLOCKSINFOTUPLE", + "alias_of": "GETPARAM", + "doc_fift": "PREVBLOCKSINFOTUPLE", + "doc_stack": " - t", + "description": "Retrives PrevBlocksInfo: `[last_mc_blocks, prev_key_block]` from c7. Equivalent to `13 GETPARAM `.", + "operands": { + "i": 13 + } + }, + { + "mnemonic": "SETCP0", + "alias_of": "SETCP", + "doc_fift": "SETCP0", + "doc_stack": "-", + "description": "Selects TVM (test) codepage zero as described in this document.", + "operands": { + "n": 0 + } + } + ] +} From 6ea746298d0ab1e8ae6f1775a7f12107c80c2fec Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Mon, 26 Feb 2024 22:20:23 +0700 Subject: [PATCH 04/27] Format document --- cp0.json | 20671 +++++++++-------------------------------------------- 1 file changed, 3451 insertions(+), 17220 deletions(-) diff --git a/cp0.json b/cp0.json index 284ed42..1da5f5d 100644 --- a/cp0.json +++ b/cp0.json @@ -17,12 +17,8 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -37,24 +33,12 @@ "doc_opcode": "0i", "tlb": "#0 i:(## 4) {1 <= i}", "prefix": "0", - "operands_range_check": { - "length": 4, - "from": 1, - "to": 15 - }, + "operands_range_check": { "length": 4, "from": 1, "to": 15 }, "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "XCHG_IJ", @@ -68,31 +52,13 @@ "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 - }, + "operands_range_check": { "length": 4, "from": 1, "to": 15 }, "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "XCHG_0I_LONG", @@ -107,18 +73,10 @@ "tlb": "#11 ii:uint8", "prefix": "11", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 8 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "XCHG_1I", @@ -132,24 +90,12 @@ "doc_opcode": "1i", "tlb": "#1 i:(## 4) {2 <= i}", "prefix": "1", - "operands_range_check": { - "length": 4, - "from": 2, - "to": 15 - }, + "operands_range_check": { "length": 4, "from": 2, "to": 15 }, "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "PUSH", @@ -164,18 +110,10 @@ "tlb": "#2 i:uint4", "prefix": "2", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "POP", @@ -190,18 +128,10 @@ "tlb": "#3 i:uint4", "prefix": "3", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "XCHG3", @@ -216,32 +146,12 @@ "tlb": "#4 i:uint4 j:uint4 k:uint4", "prefix": "4", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "XCHG2", @@ -256,25 +166,11 @@ "tlb": "#50 i:uint4 j:uint4", "prefix": "50", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "XCPU", @@ -289,25 +185,11 @@ "tlb": "#51 i:uint4 j:uint4", "prefix": "51", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "PUXC", @@ -322,25 +204,11 @@ "tlb": "#52 i:uint4 j:uint4", "prefix": "52", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "PUSH2", @@ -355,25 +223,11 @@ "tlb": "#53 i:uint4 j:uint4", "prefix": "53", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "XCHG3_ALT", @@ -388,32 +242,12 @@ "tlb": "#540 i:uint4 j:uint4 k:uint4", "prefix": "540", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "XC2PU", @@ -428,32 +262,12 @@ "tlb": "#541 i:uint4 j:uint4 k:uint4", "prefix": "541", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "XCPUXC", @@ -468,32 +282,12 @@ "tlb": "#542 i:uint4 j:uint4 k:uint4", "prefix": "542", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "XCPU2", @@ -508,32 +302,12 @@ "tlb": "#543 i:uint4 j:uint4 k:uint4", "prefix": "543", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "PUXC2", @@ -548,32 +322,12 @@ "tlb": "#544 i:uint4 j:uint4 k:uint4", "prefix": "544", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "PUXCPU", @@ -588,32 +342,12 @@ "tlb": "#545 i:uint4 j:uint4 k:uint4", "prefix": "545", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "PU2XC", @@ -628,32 +362,12 @@ "tlb": "#546 i:uint4 j:uint4 k:uint4", "prefix": "546", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "PUSH3", @@ -668,32 +382,12 @@ "tlb": "#547 i:uint4 j:uint4 k:uint4", "prefix": "547", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "BLKSWAP", @@ -708,25 +402,11 @@ "tlb": "#55 i:uint4 j:uint4", "prefix": "55", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "PUSH_LONG", @@ -741,18 +421,10 @@ "tlb": "#56 ii:uint8", "prefix": "56", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 8 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "POP_LONG", @@ -767,18 +439,10 @@ "tlb": "#57 ii:uint8", "prefix": "57", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 8 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "ROT", @@ -794,9 +458,7 @@ "prefix": "58", "operands": [] }, - "value_flow": { - "doc_stack": "a b c - b c a" - } + "value_flow": { "doc_stack": "a b c - b c a" } }, { "mnemonic": "ROTREV", @@ -812,9 +474,7 @@ "prefix": "59", "operands": [] }, - "value_flow": { - "doc_stack": "a b c - c a b" - } + "value_flow": { "doc_stack": "a b c - c a b" } }, { "mnemonic": "SWAP2", @@ -830,9 +490,7 @@ "prefix": "5A", "operands": [] }, - "value_flow": { - "doc_stack": "a b c d - c d a b" - } + "value_flow": { "doc_stack": "a b c d - c d a b" } }, { "mnemonic": "DROP2", @@ -848,9 +506,7 @@ "prefix": "5B", "operands": [] }, - "value_flow": { - "doc_stack": "a b - " - } + "value_flow": { "doc_stack": "a b - " } }, { "mnemonic": "DUP2", @@ -866,9 +522,7 @@ "prefix": "5C", "operands": [] }, - "value_flow": { - "doc_stack": "a b - a b a b" - } + "value_flow": { "doc_stack": "a b - a b a b" } }, { "mnemonic": "OVER2", @@ -884,9 +538,7 @@ "prefix": "5D", "operands": [] }, - "value_flow": { - "doc_stack": "a b c d - a b c d a b" - } + "value_flow": { "doc_stack": "a b c d - a b c d a b" } }, { "mnemonic": "REVERSE", @@ -901,25 +553,11 @@ "tlb": "#5E i:uint4 j:uint4", "prefix": "5E", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "BLKDROP", @@ -934,18 +572,10 @@ "tlb": "#5F0 i:uint4", "prefix": "5F0", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "BLKPUSH", @@ -959,31 +589,13 @@ "doc_opcode": "5Fij", "tlb": "#5F i:(## 4) j:uint4 {1 <= i}", "prefix": "5F", - "operands_range_check": { - "length": 4, - "from": 1, - "to": 15 - }, + "operands_range_check": { "length": 4, "from": 1, "to": 15 }, "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "PICK", @@ -999,9 +611,7 @@ "prefix": "60", "operands": [] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "ROLLX", @@ -1017,9 +627,7 @@ "prefix": "61", "operands": [] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "-ROLLX", @@ -1035,9 +643,7 @@ "prefix": "62", "operands": [] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "BLKSWX", @@ -1053,9 +659,7 @@ "prefix": "63", "operands": [] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "REVX", @@ -1071,9 +675,7 @@ "prefix": "64", "operands": [] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "DROPX", @@ -1089,9 +691,7 @@ "prefix": "65", "operands": [] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "TUCK", @@ -1107,9 +707,7 @@ "prefix": "66", "operands": [] }, - "value_flow": { - "doc_stack": "a b - b a b" - } + "value_flow": { "doc_stack": "a b - b a b" } }, { "mnemonic": "XCHGX", @@ -1125,9 +723,7 @@ "prefix": "67", "operands": [] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "DEPTH", @@ -1145,16 +741,10 @@ }, "value_flow": { "doc_stack": "- depth", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "depth", - "value_types": ["Integer"] - } + { "type": "simple", "name": "depth", "value_types": ["Integer"] } ] } } @@ -1177,16 +767,10 @@ "doc_stack": "i -", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -1203,9 +787,7 @@ "prefix": "6A", "operands": [] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "ONLYX", @@ -1221,9 +803,7 @@ "prefix": "6B", "operands": [] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "BLKDROP2", @@ -1237,31 +817,13 @@ "doc_opcode": "6Cij", "tlb": "#6C i:(## 4) j:uint4 {1 <= i}", "prefix": "6C", - "operands_range_check": { - "length": 4, - "from": 1, - "to": 15 - }, + "operands_range_check": { "length": 4, "from": 1, "to": 15 }, "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "" - } + "value_flow": { "doc_stack": "" } }, { "mnemonic": "NULL", @@ -1279,17 +841,9 @@ }, "value_flow": { "doc_stack": " - null", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { - "stack": [ - { - "type": "const", - "value": null, - "value_type": "Null" - } - ] + "stack": [{ "type": "const", "value": null, "value_type": "Null" }] } } }, @@ -1311,20 +865,12 @@ "doc_stack": "x - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -1342,13 +888,7 @@ "tlb": "#6F0 n:uint4", "prefix": "6F0", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { @@ -1359,23 +899,12 @@ "type": "array", "name": "tuple_elements", "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] + "array_entry": [{ "type": "simple", "name": "x" }] } ] }, "outputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] } } }, @@ -1392,34 +921,15 @@ "tlb": "#6F1 k:uint4", "prefix": "6F1", "operands": [ - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "t - x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } } }, { @@ -1435,25 +945,13 @@ "tlb": "#6F2 n:uint4", "prefix": "6F2", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "t - x_1 ... x_n", "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] }, "outputs": { "stack": [ @@ -1461,12 +959,7 @@ "type": "array", "name": "tuple_elements", "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] + "array_entry": [{ "type": "simple", "name": "x" }] } ] } @@ -1485,25 +978,13 @@ "tlb": "#6F3 k:uint4", "prefix": "6F3", "operands": [ - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "t - x_1 ... x_k", "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] }, "outputs": { "stack": [ @@ -1511,12 +992,7 @@ "type": "array", "name": "tuple_elements", "length_var": "k", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] + "array_entry": [{ "type": "simple", "name": "x" }] } ] } @@ -1535,25 +1011,13 @@ "tlb": "#6F4 n:uint4", "prefix": "6F4", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "t - x_1 ... x_m m", "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] }, "outputs": { "stack": [ @@ -1561,18 +1025,9 @@ "type": "array", "name": "tuple_elements", "length_var": "m", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] + "array_entry": [{ "type": "simple", "name": "x" }] }, - { - "type": "simple", - "name": "m", - "value_types": ["Integer"] - } + { "type": "simple", "name": "m", "value_types": ["Integer"] } ] } } @@ -1590,37 +1045,20 @@ "tlb": "#6F5 k:uint4", "prefix": "6F5", "operands": [ - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "t x - t'", "inputs": { "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - }, - { - "type": "simple", - "name": "x" - } + { "type": "simple", "name": "t", "value_types": ["Tuple"] }, + { "type": "simple", "name": "x" } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "t2", - "value_types": ["Tuple"] - } + { "type": "simple", "name": "t2", "value_types": ["Tuple"] } ] } } @@ -1638,34 +1076,17 @@ "tlb": "#6F6 k:uint4", "prefix": "6F6", "operands": [ - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "t - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple", "Null"] - } + { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] } ] }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } } }, { @@ -1681,37 +1102,20 @@ "tlb": "#6F7 k:uint4", "prefix": "6F7", "operands": [ - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "t x - t'", "inputs": { "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple", "Null"] - }, - { - "type": "simple", - "name": "x" - } + { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] }, + { "type": "simple", "name": "x" } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "t2", - "value_types": ["Tuple", "Null"] - } + { "type": "simple", "name": "t2", "value_types": ["Tuple", "Null"] } ] } } @@ -1738,28 +1142,13 @@ "type": "array", "name": "tuple_elements", "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] + "array_entry": [{ "type": "simple", "name": "x" }] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] } } }, @@ -1781,26 +1170,11 @@ "doc_stack": "t k - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Integer"] - } + { "type": "simple", "name": "t", "value_types": ["Tuple"] }, + { "type": "simple", "name": "k", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } } }, { @@ -1821,16 +1195,8 @@ "doc_stack": "t n - x_1 ... x_n", "inputs": { "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "t", "value_types": ["Tuple"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -1839,12 +1205,7 @@ "type": "array", "name": "tuple_elements", "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] + "array_entry": [{ "type": "simple", "name": "x" }] } ] } @@ -1868,16 +1229,8 @@ "doc_stack": "t n - x_1 ... x_n", "inputs": { "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "t", "value_types": ["Tuple"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -1886,12 +1239,7 @@ "type": "array", "name": "tuple_elements", "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] + "array_entry": [{ "type": "simple", "name": "x" }] } ] } @@ -1915,16 +1263,8 @@ "doc_stack": "t n - x_1 ... x_m m", "inputs": { "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "t", "value_types": ["Tuple"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -1933,18 +1273,9 @@ "type": "array", "name": "tuple_elements", "length_var": "m", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] + "array_entry": [{ "type": "simple", "name": "x" }] }, - { - "type": "simple", - "name": "m", - "value_types": ["Integer"] - } + { "type": "simple", "name": "m", "value_types": ["Integer"] } ] } } @@ -1967,29 +1298,14 @@ "doc_stack": "t x k - t'", "inputs": { "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - }, - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "k", - "value_types": ["Integer"] - } + { "type": "simple", "name": "t", "value_types": ["Tuple"] }, + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "k", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "t2", - "value_types": ["Tuple"] - } + { "type": "simple", "name": "t2", "value_types": ["Tuple"] } ] } } @@ -2012,26 +1328,11 @@ "doc_stack": "t k - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple", "Null"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Integer"] - } + { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] }, + { "type": "simple", "name": "k", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } } }, { @@ -2052,29 +1353,14 @@ "doc_stack": "t x k - t'", "inputs": { "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple", "Null"] - }, - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "k", - "value_types": ["Integer"] - } + { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] }, + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "k", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "t2", - "value_types": ["Tuple", "Null"] - } + { "type": "simple", "name": "t2", "value_types": ["Tuple", "Null"] } ] } } @@ -2096,21 +1382,11 @@ "value_flow": { "doc_stack": "t - n", "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] } } @@ -2132,21 +1408,11 @@ "value_flow": { "doc_stack": "t - n or -1", "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] } } @@ -2168,21 +1434,11 @@ "value_flow": { "doc_stack": "t - ?", "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] } } @@ -2204,22 +1460,9 @@ "value_flow": { "doc_stack": "t - x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } } }, { @@ -2240,24 +1483,13 @@ "doc_stack": "t x - t'", "inputs": { "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - }, - { - "type": "simple", - "name": "x" - } + { "type": "simple", "name": "t", "value_types": ["Tuple"] }, + { "type": "simple", "name": "x" } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "t2", - "value_types": ["Tuple"] - } + { "type": "simple", "name": "t2", "value_types": ["Tuple"] } ] } } @@ -2279,25 +1511,12 @@ "value_flow": { "doc_stack": "t - t' x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "t2", - "value_types": ["Tuple"] - }, - { - "type": "simple", - "name": "x" - } + { "type": "simple", "name": "t2", "value_types": ["Tuple"] }, + { "type": "simple", "name": "x" } ] } } @@ -2320,11 +1539,7 @@ "doc_stack": "x - x or null x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { @@ -2332,25 +1547,10 @@ { "type": "conditional", "name": "x", - "match": [ - { - "value": 0, - "stack": [] - } - ], - "else": [ - { - "type": "const", - "value": null, - "value_type": "Null" - } - ] + "match": [{ "value": 0, "stack": [] }], + "else": [{ "type": "const", "value": null, "value_type": "Null" }] }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -2373,11 +1573,7 @@ "doc_stack": "x - x or null x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { @@ -2389,21 +1585,13 @@ { "value": 0, "stack": [ - { - "type": "const", - "value": null, - "value_type": "Null" - } + { "type": "const", "value": null, "value_type": "Null" } ] } ], "else": [] }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -2426,15 +1614,8 @@ "doc_stack": "x y - x y or null x y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { @@ -2442,29 +1623,11 @@ { "type": "conditional", "name": "y", - "match": [ - { - "value": 0, - "stack": [] - } - ], - "else": [ - { - "type": "const", - "value": null, - "value_type": "Null" - } - ] - }, - { - "type": "simple", - "name": "x" + "match": [{ "value": 0, "stack": [] }], + "else": [{ "type": "const", "value": null, "value_type": "Null" }] }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] } } @@ -2487,15 +1650,8 @@ "doc_stack": "x y - x y or null x y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { @@ -2507,25 +1663,14 @@ { "value": 0, "stack": [ - { - "type": "const", - "value": null, - "value_type": "Null" - } + { "type": "const", "value": null, "value_type": "Null" } ] } ], "else": [] }, - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] } } @@ -2548,11 +1693,7 @@ "doc_stack": "x - x or null null x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { @@ -2560,30 +1701,13 @@ { "type": "conditional", "name": "x", - "match": [ - { - "value": 0, - "stack": [] - } - ], + "match": [{ "value": 0, "stack": [] }], "else": [ - { - "type": "const", - "value": null, - "value_type": "Null" - }, - { - "type": "const", - "value": null, - "value_type": "Null" - } + { "type": "const", "value": null, "value_type": "Null" }, + { "type": "const", "value": null, "value_type": "Null" } ] }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -2606,11 +1730,7 @@ "doc_stack": "x - x or null null x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { @@ -2622,26 +1742,14 @@ { "value": 0, "stack": [ - { - "type": "const", - "value": null, - "value_type": "Null" - }, - { - "type": "const", - "value": null, - "value_type": "Null" - } + { "type": "const", "value": null, "value_type": "Null" }, + { "type": "const", "value": null, "value_type": "Null" } ] } ], "else": [] }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -2664,15 +1772,8 @@ "doc_stack": "x y - x y or null null x y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { @@ -2680,34 +1781,14 @@ { "type": "conditional", "name": "y", - "match": [ - { - "value": 0, - "stack": [] - } - ], + "match": [{ "value": 0, "stack": [] }], "else": [ - { - "type": "const", - "value": null, - "value_type": "Null" - }, - { - "type": "const", - "value": null, - "value_type": "Null" - } + { "type": "const", "value": null, "value_type": "Null" }, + { "type": "const", "value": null, "value_type": "Null" } ] }, - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] } } @@ -2730,15 +1811,8 @@ "doc_stack": "x y - x y or null null x y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { @@ -2750,30 +1824,15 @@ { "value": 0, "stack": [ - { - "type": "const", - "value": null, - "value_type": "Null" - }, - { - "type": "const", - "value": null, - "value_type": "Null" - } + { "type": "const", "value": null, "value_type": "Null" }, + { "type": "const", "value": null, "value_type": "Null" } ] } ], "else": [] }, - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] } } @@ -2791,41 +1850,16 @@ "tlb": "#6FB i:uint2 j:uint2", "prefix": "6FB", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 2 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 2 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 2 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 2 } } ] }, "value_flow": { "doc_stack": "t - x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } } }, { @@ -2841,48 +1875,17 @@ "tlb": "#6FE_ i:uint2 j:uint2 k:uint2", "prefix": "6FE_", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 2 - } - }, - { - "name": "j", - "loader": "uint", - "loader_args": { - "size": 2 - } - }, - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 2 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 2 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 2 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 2 } } ] }, "value_flow": { "doc_stack": "t - x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } } }, { @@ -2898,27 +1901,15 @@ "tlb": "#7 i:uint4", "prefix": "7", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "- x", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -2936,27 +1927,15 @@ "tlb": "#80 xx:int8", "prefix": "80", "operands": [ - { - "name": "x", - "loader": "int", - "loader_args": { - "size": 8 - } - } + { "name": "x", "loader": "int", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "- xx", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -2974,27 +1953,15 @@ "tlb": "#81 xxxx:int16", "prefix": "81", "operands": [ - { - "name": "x", - "loader": "int", - "loader_args": { - "size": 16 - } - } + { "name": "x", "loader": "int", "loader_args": { "size": 16 } } ] }, "value_flow": { "doc_stack": "- xxxx", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -3011,31 +1978,17 @@ "doc_opcode": "82lxxx", "tlb": "#82 l:(## 5) xxx:(int (8 * l + 19))", "prefix": "82", - "operands_range_check": { - "length": 5, - "from": 0, - "to": 30 - }, + "operands_range_check": { "length": 5, "from": 0, "to": 30 }, "operands": [ - { - "name": "x", - "loader": "pushint_long", - "loader_args": {} - } + { "name": "x", "loader": "pushint_long", "loader_args": {} } ] }, "value_flow": { "doc_stack": "- xxx", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -3052,33 +2005,17 @@ "doc_opcode": "83xx", "tlb": "#83 xx:uint8", "prefix": "83", - "operands_range_check": { - "length": 8, - "from": 0, - "to": 254 - }, + "operands_range_check": { "length": 8, "from": 0, "to": 254 }, "operands": [ - { - "name": "x", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "x", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "- 2^(xx+1)", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -3099,17 +2036,9 @@ }, "value_flow": { "doc_stack": "- NaN", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { - "stack": [ - { - "type": "const", - "value_type": "Integer", - "value": null - } - ] + "stack": [{ "type": "const", "value_type": "Integer", "value": null }] } } }, @@ -3126,27 +2055,15 @@ "tlb": "#84 xx:uint8", "prefix": "84", "operands": [ - { - "name": "x", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "x", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "- 2^(xx+1)-1", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -3164,27 +2081,15 @@ "tlb": "#85 xx:uint8", "prefix": "85", "operands": [ - { - "name": "x", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "x", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "- -2^(xx+1)", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -3201,26 +2106,14 @@ "doc_opcode": "88", "tlb": "#88 c:^Cell", "prefix": "88", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] }, "value_flow": { "doc_stack": "- c", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Cell"] - } + { "type": "simple", "name": "result", "value_types": ["Cell"] } ] } } @@ -3237,26 +2130,14 @@ "doc_opcode": "89", "tlb": "#89 c:^Cell", "prefix": "89", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] }, "value_flow": { "doc_stack": "- s", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } + { "type": "simple", "name": "result", "value_types": ["Slice"] } ] } } @@ -3273,19 +2154,11 @@ "doc_opcode": "8A", "tlb": "#8A c:^Cell", "prefix": "8A", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] }, "value_flow": { "doc_stack": "- cont", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ { @@ -3323,16 +2196,10 @@ }, "value_flow": { "doc_stack": "- s", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } + { "type": "simple", "name": "result", "value_types": ["Slice"] } ] } } @@ -3365,16 +2232,10 @@ }, "value_flow": { "doc_stack": "- s", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } + { "type": "simple", "name": "result", "value_types": ["Slice"] } ] } } @@ -3401,11 +2262,7 @@ "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 - }, + "operands_range_check": { "length": 3, "from": 0, "to": 4 }, "operands": [ { "name": "slice", @@ -3421,16 +2278,10 @@ }, "value_flow": { "doc_stack": "- s", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } + { "type": "simple", "name": "result", "value_types": ["Slice"] } ] } } @@ -3461,9 +2312,7 @@ }, "value_flow": { "doc_stack": "- c", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ { @@ -3497,25 +2346,16 @@ { "name": "s", "loader": "subslice", - "loader_args": { - "bits_length_var_size": 4, - "bits_padding": 0 - } + "loader_args": { "bits_length_var_size": 4, "bits_padding": 0 } } ] }, "value_flow": { "doc_stack": "- c", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] } } @@ -3538,25 +2378,13 @@ "doc_stack": "x y - x+y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -3579,25 +2407,13 @@ "doc_stack": "x y - x-y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -3620,25 +2436,13 @@ "doc_stack": "x y - y-x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -3661,20 +2465,12 @@ "doc_stack": "x - -x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -3697,20 +2493,12 @@ "doc_stack": "x - x+1", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -3733,20 +2521,12 @@ "doc_stack": "x - x-1", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -3764,33 +2544,19 @@ "tlb": "#A6 cc:int8", "prefix": "A6", "operands": [ - { - "name": "c", - "loader": "int", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "int", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - x+cc", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -3808,33 +2574,19 @@ "tlb": "#A7 cc:int8", "prefix": "A7", "operands": [ - { - "name": "c", - "loader": "int", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "int", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - x*cc", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -3857,25 +2609,13 @@ "doc_stack": "x y - x*y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -3898,35 +2638,15 @@ "doc_stack": "x w z - q=floor((x+w)/z) r=(x+w)-zq", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -3949,35 +2669,15 @@ "doc_stack": "x w z - q=round((x+w)/z) r=(x+w)-zq", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -4000,35 +2700,15 @@ "doc_stack": "x w y - q=ceil((x+w)/z) r=(x+w)-zq", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -4051,25 +2731,13 @@ "doc_stack": "x y - q", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -4092,25 +2760,13 @@ "doc_stack": "x y - q\u0432\u0402\u2122", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -4133,25 +2789,13 @@ "doc_stack": "x y - q''", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -4174,25 +2818,13 @@ "doc_stack": "x y - r", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -4215,25 +2847,13 @@ "doc_stack": "x y - r", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -4256,25 +2876,13 @@ "doc_stack": "x y - r", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -4297,30 +2905,14 @@ "doc_stack": "x y - q r", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -4343,30 +2935,14 @@ "doc_stack": "x y - q' r'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -4389,30 +2965,14 @@ "doc_stack": "x y - q'' r''", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -4435,35 +2995,15 @@ "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -4486,35 +3026,15 @@ "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -4537,35 +3057,15 @@ "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -4588,25 +3088,13 @@ "doc_stack": "x y - round(x/2^y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -4629,25 +3117,13 @@ "doc_stack": "x y - ceil(x/2^y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -4670,25 +3146,13 @@ "doc_stack": "x y - x mod 2^y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -4711,25 +3175,13 @@ "doc_stack": "x y - x mod 2^y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -4752,25 +3204,13 @@ "doc_stack": "x y - x mod 2^y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -4793,30 +3233,14 @@ "doc_stack": "x y - q=floor(x/2^y) r=x-q*2^y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -4839,30 +3263,14 @@ "doc_stack": "x y - q=round(x/2^y) r=x-q*2^y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -4885,30 +3293,14 @@ "doc_stack": "x y - q=ceil(x/2^y) r=x-q*2^y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -4926,43 +3318,21 @@ "tlb": "#A930 tt:uint8", "prefix": "A930", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -4980,43 +3350,21 @@ "tlb": "#A931 tt:uint8", "prefix": "A931", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -5034,43 +3382,21 @@ "tlb": "#A932 tt:uint8", "prefix": "A932", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -5088,33 +3414,19 @@ "tlb": "#A935 tt:uint8", "prefix": "A935", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - round(x/2^(tt+1))", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -5132,33 +3444,19 @@ "tlb": "#A936 tt:uint8", "prefix": "A936", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - ceil(x/2^(tt+1))", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -5176,33 +3474,19 @@ "tlb": "#A938 tt:uint8", "prefix": "A938", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - x mod 2^(tt+1)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -5220,33 +3504,19 @@ "tlb": "#A939 tt:uint8", "prefix": "A939", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - x mod 2^(tt+1)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -5264,33 +3534,19 @@ "tlb": "#A93A tt:uint8", "prefix": "A93A", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - x mod 2^(tt+1)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -5308,38 +3564,20 @@ "tlb": "#A93C tt:uint8", "prefix": "A93C", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -5357,38 +3595,20 @@ "tlb": "#A93D tt:uint8", "prefix": "A93D", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -5406,38 +3626,20 @@ "tlb": "#A93E tt:uint8", "prefix": "A93E", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -5460,40 +3662,16 @@ "doc_stack": "x y w z - q=floor((xy+w)/z) r=(xy+w)-zq", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -5516,40 +3694,16 @@ "doc_stack": "x y w z - q=round((xy+w)/z) r=(xy+w)-zq", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -5572,40 +3726,16 @@ "doc_stack": "x y w z - q=ceil((xy+w)/z) r=(xy+w)-zq", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -5628,30 +3758,14 @@ "doc_stack": "x y z - q", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -5674,30 +3788,14 @@ "doc_stack": "x y z - q'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -5720,30 +3818,14 @@ "doc_stack": "x y z - q'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -5766,30 +3848,14 @@ "doc_stack": "x y z - x*y mod z", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -5812,30 +3878,14 @@ "doc_stack": "x y z - x*y mod z", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -5858,30 +3908,14 @@ "doc_stack": "x y z - x*y mod z", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -5904,35 +3938,15 @@ "doc_stack": "x y z - q r", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -5955,35 +3969,15 @@ "doc_stack": "x y z - q r", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -6006,35 +4000,15 @@ "doc_stack": "x y z - q r", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -6057,40 +4031,16 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -6113,40 +4063,16 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -6169,40 +4095,16 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -6225,30 +4127,14 @@ "doc_stack": "x y z - floor(x*y/2^z)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -6271,30 +4157,14 @@ "doc_stack": "x y z - round(x*y/2^z)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -6317,30 +4187,14 @@ "doc_stack": "x y z - ceil(x*y/2^z)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -6363,30 +4217,14 @@ "doc_stack": "x y z - x*y mod 2^z", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -6409,30 +4247,14 @@ "doc_stack": "x y z - x*y mod 2^z", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -6455,30 +4277,14 @@ "doc_stack": "x y z - x*y mod 2^z", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -6501,30 +4307,14 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -6547,30 +4337,14 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -6593,30 +4367,14 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -6634,43 +4392,21 @@ "tlb": "#A9B0 tt:uint8", "prefix": "A9B0", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -6688,43 +4424,21 @@ "tlb": "#A9B1 tt:uint8", "prefix": "A9B1", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -6742,43 +4456,21 @@ "tlb": "#A9B2 tt:uint8", "prefix": "A9B2", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -6796,38 +4488,20 @@ "tlb": "#A9B4 tt:uint8", "prefix": "A9B4", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - floor(x*y/2^(tt+1))", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -6845,38 +4519,20 @@ "tlb": "#A9B5 tt:uint8", "prefix": "A9B5", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - round(x*y/2^(tt+1))", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -6894,38 +4550,20 @@ "tlb": "#A9B6 tt:uint8", "prefix": "A9B6", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - ceil(x*y/2^(tt+1))", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -6943,38 +4581,20 @@ "tlb": "#A9B8 tt:uint8", "prefix": "A9B8", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - x*y mod 2^(tt+1)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -6992,38 +4612,20 @@ "tlb": "#A9B9 tt:uint8", "prefix": "A9B9", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - x*y mod 2^(tt+1)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7041,38 +4643,20 @@ "tlb": "#A9BA tt:uint8", "prefix": "A9BA", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - x*y mod 2^(tt+1)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7095,25 +4679,13 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7136,25 +4708,13 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7177,25 +4737,13 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7218,35 +4766,15 @@ "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7269,35 +4797,15 @@ "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7320,35 +4828,15 @@ "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7371,30 +4859,14 @@ "doc_stack": "x y z - floor(2^z*x/y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7417,30 +4889,14 @@ "doc_stack": "x y z - round(2^z*x/y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7463,30 +4919,14 @@ "doc_stack": "x y z - ceil(2^z*x/y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7509,30 +4949,14 @@ "doc_stack": "x y z - 2^z*x mod y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7555,30 +4979,14 @@ "doc_stack": "x y z - 2^z*x mod y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7601,30 +5009,14 @@ "doc_stack": "x y z - 2^z*x mod y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7647,30 +5039,14 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7693,30 +5069,14 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7739,30 +5099,14 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7780,43 +5124,21 @@ "tlb": "#A9D0 tt:uint8", "prefix": "A9D0", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7834,43 +5156,21 @@ "tlb": "#A9D1 tt:uint8", "prefix": "A9D1", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7888,43 +5188,21 @@ "tlb": "#A9D2 tt:uint8", "prefix": "A9D2", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7942,38 +5220,20 @@ "tlb": "#A9D4 tt:uint8", "prefix": "A9D4", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - floor(2^(tt+1)*x/y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -7991,38 +5251,20 @@ "tlb": "#A9D5 tt:uint8", "prefix": "A9D5", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - round(2^(tt+1)*x/y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -8040,38 +5282,20 @@ "tlb": "#A9D6 tt:uint8", "prefix": "A9D6", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - ceil(2^(tt+1)*x/y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -8089,38 +5313,20 @@ "tlb": "#A9D8 tt:uint8", "prefix": "A9D8", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - 2^(tt+1)*x mod y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -8138,38 +5344,20 @@ "tlb": "#A9D9 tt:uint8", "prefix": "A9D9", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - 2^(tt+1)*x mod y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -8187,38 +5375,20 @@ "tlb": "#A9DA tt:uint8", "prefix": "A9DA", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - 2^(tt+1)*x mod y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -8236,38 +5406,20 @@ "tlb": "#A9DC tt:uint8", "prefix": "A9DC", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -8285,38 +5437,20 @@ "tlb": "#A9DD tt:uint8", "prefix": "A9DD", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -8334,38 +5468,20 @@ "tlb": "#A9DE tt:uint8", "prefix": "A9DE", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -8383,33 +5499,19 @@ "tlb": "#AA cc:uint8", "prefix": "AA", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - x*2^(cc+1)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -8427,33 +5529,19 @@ "tlb": "#AB cc:uint8", "prefix": "AB", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - floor(x/2^(cc+1))", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -8476,25 +5564,13 @@ "doc_stack": "x y - x*2^y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -8517,25 +5593,13 @@ "doc_stack": "x y - floor(x/2^y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -8558,20 +5622,12 @@ "doc_stack": "y - 2^y", "inputs": { "stack": [ - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -8594,25 +5650,13 @@ "doc_stack": "x y - x&y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -8635,25 +5679,13 @@ "doc_stack": "x y - x|y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -8676,25 +5708,13 @@ "doc_stack": "x y - x xor y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -8717,20 +5737,12 @@ "doc_stack": "x - ~x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -8748,33 +5760,19 @@ "tlb": "#B4 cc:uint8", "prefix": "B4", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -8792,33 +5790,19 @@ "tlb": "#B5 cc:uint8", "prefix": "B5", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -8841,25 +5825,13 @@ "doc_stack": "x c - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -8882,25 +5854,13 @@ "doc_stack": "x c - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -8923,20 +5883,12 @@ "doc_stack": "x - c", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Integer"] } ] } } @@ -8959,20 +5911,12 @@ "doc_stack": "x - c", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Integer"] } ] } } @@ -8995,25 +5939,13 @@ "doc_stack": "x y - x or y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -9036,25 +5968,13 @@ "doc_stack": "x y - x or y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -9077,30 +5997,14 @@ "doc_stack": "x y - x y or y x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "r1", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r2", - "value_types": ["Integer"] - } + { "type": "simple", "name": "r1", "value_types": ["Integer"] }, + { "type": "simple", "name": "r2", "value_types": ["Integer"] } ] } } @@ -9123,20 +6027,12 @@ "doc_stack": "x - |x|", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -9159,25 +6055,13 @@ "doc_stack": "x y - x+y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -9200,25 +6084,13 @@ "doc_stack": "x y - x-y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -9241,25 +6113,13 @@ "doc_stack": "x y - y-x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -9282,20 +6142,12 @@ "doc_stack": "x - -x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -9318,20 +6170,12 @@ "doc_stack": "x - x+1", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -9354,20 +6198,12 @@ "doc_stack": "x - x-1", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -9390,25 +6226,13 @@ "doc_stack": "x y - x*y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -9431,35 +6255,15 @@ "doc_stack": "x w z - q=floor((x+w)/z) r=(x+w)-zq", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -9482,35 +6286,15 @@ "doc_stack": "x w z - q=round((x+w)/z) r=(x+w)-zq", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -9533,35 +6317,15 @@ "doc_stack": "x w y - q=ceil((x+w)/z) r=(x+w)-zq", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -9584,25 +6348,13 @@ "doc_stack": "x y - q", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -9625,25 +6377,13 @@ "doc_stack": "x y - q\u0432\u0402\u2122", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -9666,25 +6406,13 @@ "doc_stack": "x y - q''", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -9707,25 +6435,13 @@ "doc_stack": "x y - r", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -9748,25 +6464,13 @@ "doc_stack": "x y - r", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -9789,25 +6493,13 @@ "doc_stack": "x y - r", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -9830,30 +6522,14 @@ "doc_stack": "x y - q r", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -9876,30 +6552,14 @@ "doc_stack": "x y - q' r'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -9922,30 +6582,14 @@ "doc_stack": "x y - q'' r''", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -9968,35 +6612,15 @@ "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -10019,35 +6643,15 @@ "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -10070,35 +6674,15 @@ "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -10121,25 +6705,13 @@ "doc_stack": "x y - round(x/2^y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -10162,25 +6734,13 @@ "doc_stack": "x y - ceil(x/2^y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -10203,25 +6763,13 @@ "doc_stack": "x y - x mod 2^y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -10244,25 +6792,13 @@ "doc_stack": "x y - x mod 2^y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -10285,25 +6821,13 @@ "doc_stack": "x y - x mod 2^y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -10326,30 +6850,14 @@ "doc_stack": "x y - q=floor(x/2^y) r=x-q*2^y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -10372,30 +6880,14 @@ "doc_stack": "x y - q=round(x/2^y) r=x-q*2^y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -10418,30 +6910,14 @@ "doc_stack": "x y - q=ceil(x/2^y) r=x-q*2^y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -10459,43 +6935,21 @@ "tlb": "#B7A930 tt:uint8", "prefix": "B7A930", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -10513,43 +6967,21 @@ "tlb": "#B7A931 tt:uint8", "prefix": "B7A931", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -10567,43 +6999,21 @@ "tlb": "#B7A932 tt:uint8", "prefix": "B7A932", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -10621,33 +7031,19 @@ "tlb": "#B7A935 tt:uint8", "prefix": "B7A935", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - round(x/2^(tt+1))", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -10665,33 +7061,19 @@ "tlb": "#B7A936 tt:uint8", "prefix": "B7A936", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - ceil(x/2^(tt+1))", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -10709,33 +7091,19 @@ "tlb": "#B7A938 tt:uint8", "prefix": "B7A938", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - x mod 2^(tt+1)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -10753,33 +7121,19 @@ "tlb": "#B7A939 tt:uint8", "prefix": "B7A939", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - x mod 2^(tt+1)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -10797,33 +7151,19 @@ "tlb": "#B7A93A tt:uint8", "prefix": "B7A93A", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - x mod 2^(tt+1)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -10841,38 +7181,20 @@ "tlb": "#A93C tt:uint8", "prefix": "A93C", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -10890,38 +7212,20 @@ "tlb": "#A93D tt:uint8", "prefix": "A93D", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -10939,38 +7243,20 @@ "tlb": "#B7A93E tt:uint8", "prefix": "B7A93E", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -10993,40 +7279,16 @@ "doc_stack": "x y w z - q=floor((xy+w)/z) r=(xy+w)-zq", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -11049,40 +7311,16 @@ "doc_stack": "x y w z - q=round((xy+w)/z) r=(xy+w)-zq", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -11105,40 +7343,16 @@ "doc_stack": "x y w z - q=ceil((xy+w)/z) r=(xy+w)-zq", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -11161,30 +7375,14 @@ "doc_stack": "x y z - q", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -11207,30 +7405,14 @@ "doc_stack": "x y z - q'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] } ] } } @@ -11253,30 +7435,14 @@ "doc_stack": "x y z - q'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -11299,30 +7465,14 @@ "doc_stack": "x y z - x*y mod z", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -11345,30 +7495,14 @@ "doc_stack": "x y z - x*y mod z", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -11391,30 +7525,14 @@ "doc_stack": "x y z - x*y mod z", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -11437,30 +7555,14 @@ "doc_stack": "x y z - q r", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -11483,35 +7585,15 @@ "doc_stack": "x y z - q r", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -11534,35 +7616,15 @@ "doc_stack": "x y z - q r", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -11585,40 +7647,16 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -11641,40 +7679,16 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -11697,40 +7711,16 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "q", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -11753,30 +7743,14 @@ "doc_stack": "x y z - floor(x*y/2^z)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -11799,30 +7773,14 @@ "doc_stack": "x y z - round(x*y/2^z)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -11845,30 +7803,14 @@ "doc_stack": "x y z - ceil(x*y/2^z)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -11891,30 +7833,14 @@ "doc_stack": "x y z - x*y mod 2^z", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -11937,30 +7863,14 @@ "doc_stack": "x y z - x*y mod 2^z", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -11983,30 +7893,14 @@ "doc_stack": "x y z - x*y mod 2^z", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12029,30 +7923,14 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12075,30 +7953,14 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12121,30 +7983,14 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12162,43 +8008,21 @@ "tlb": "#B7A9B0 tt:uint8", "prefix": "B7A9B0", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12216,43 +8040,21 @@ "tlb": "#B7A9B1 tt:uint8", "prefix": "B7A9B1", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12270,43 +8072,21 @@ "tlb": "#B7A9B2 tt:uint8", "prefix": "B7A9B2", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12324,38 +8104,20 @@ "tlb": "#B7A9B4 tt:uint8", "prefix": "B7A9B4", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - floor(x*y/2^(tt+1))", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12373,38 +8135,20 @@ "tlb": "#B7A9B5 tt:uint8", "prefix": "B7A9B5", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - round(x*y/2^(tt+1))", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12422,38 +8166,20 @@ "tlb": "#B7A9B6 tt:uint8", "prefix": "B7A9B6", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - ceil(x*y/2^(tt+1))", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12471,38 +8197,20 @@ "tlb": "#B7A9B8 tt:uint8", "prefix": "B7A9B8", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - x*y mod 2^(tt+1)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12520,38 +8228,20 @@ "tlb": "#B7A9B9 tt:uint8", "prefix": "B7A9B9", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - x*y mod 2^(tt+1)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12569,38 +8259,20 @@ "tlb": "#B7A9BA tt:uint8", "prefix": "B7A9BA", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - x*y mod 2^(tt+1)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12623,25 +8295,13 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12664,25 +8324,13 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12705,25 +8353,13 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12746,35 +8382,15 @@ "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12797,35 +8413,15 @@ "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12848,35 +8444,15 @@ "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12899,30 +8475,14 @@ "doc_stack": "x y z - floor(2^z*x/y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12945,30 +8505,14 @@ "doc_stack": "x y z - round(2^z*x/y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -12991,30 +8535,14 @@ "doc_stack": "x y z - ceil(2^z*x/y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13037,30 +8565,14 @@ "doc_stack": "x y z - 2^z*x mod y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13083,30 +8595,14 @@ "doc_stack": "x y z - 2^z*x mod y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13129,30 +8625,14 @@ "doc_stack": "x y z - 2^z*x mod y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13175,30 +8655,14 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13221,30 +8685,14 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13267,30 +8715,14 @@ "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13308,43 +8740,21 @@ "tlb": "#B7A9D0 tt:uint8", "prefix": "B7A9D0", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13362,43 +8772,21 @@ "tlb": "#B7A9D1 tt:uint8", "prefix": "B7A9D1", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13416,43 +8804,21 @@ "tlb": "#B7A9D2 tt:uint8", "prefix": "B7A9D2", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "w", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13470,38 +8836,20 @@ "tlb": "#B7A9D4 tt:uint8", "prefix": "B7A9D4", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - floor(2^(tt+1)*x/y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13519,38 +8867,20 @@ "tlb": "#B7A9D5 tt:uint8", "prefix": "B7A9D5", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - round(2^(tt+1)*x/y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13568,38 +8898,20 @@ "tlb": "#B7A9D6 tt:uint8", "prefix": "B7A9D6", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - ceil(2^(tt+1)*x/y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13617,38 +8929,20 @@ "tlb": "#B7A9D8 tt:uint8", "prefix": "B7A9D8", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - 2^(tt+1)*x mod y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13666,38 +8960,20 @@ "tlb": "#B7A9D9 tt:uint8", "prefix": "B7A9D9", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - 2^(tt+1)*x mod y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13715,38 +8991,20 @@ "tlb": "#B7A9DA tt:uint8", "prefix": "B7A9DA", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x y - 2^(tt+1)*x mod y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13764,38 +9022,20 @@ "tlb": "#B7A9DC tt:uint8", "prefix": "B7A9DC", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13813,38 +9053,20 @@ "tlb": "#B7A9DD tt:uint8", "prefix": "B7A9DD", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13862,38 +9084,20 @@ "tlb": "#B7A9DE tt:uint8", "prefix": "B7A9DE", "operands": [ - { - "name": "t", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } ] }, "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"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13911,33 +9115,19 @@ "tlb": "#B7AA cc:uint8", "prefix": "B7AA", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - x*2^(cc+1)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -13955,33 +9145,19 @@ "tlb": "#B7AB cc:uint8", "prefix": "B7AB", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - floor(x/2^(cc+1))", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -14004,25 +9180,13 @@ "doc_stack": "x y - x*2^y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -14045,25 +9209,13 @@ "doc_stack": "x y - floor(x/2^y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -14086,20 +9238,12 @@ "doc_stack": "y - 2^y", "inputs": { "stack": [ - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -14122,25 +9266,13 @@ "doc_stack": "x y - x&y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -14163,25 +9295,13 @@ "doc_stack": "x y - x|y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -14204,25 +9324,13 @@ "doc_stack": "x y - x xor y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -14245,20 +9353,12 @@ "doc_stack": "x - ~x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -14276,33 +9376,19 @@ "tlb": "#B7B4 cc:uint8", "prefix": "B7B4", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -14320,33 +9406,19 @@ "tlb": "#B7B5 cc:uint8", "prefix": "B7B5", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -14369,25 +9441,13 @@ "doc_stack": "x c - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -14410,25 +9470,13 @@ "doc_stack": "x c - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -14451,20 +9499,12 @@ "doc_stack": "x - sgn(x)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -14487,25 +9527,13 @@ "doc_stack": "x y - xy", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -14651,25 +9643,13 @@ "doc_stack": "x y - x!=y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -14692,25 +9672,13 @@ "doc_stack": "x y - x>=y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -14733,25 +9701,13 @@ "doc_stack": "x y - sgn(x-y)", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -14769,33 +9725,19 @@ "tlb": "#C0 yy:int8", "prefix": "C0", "operands": [ - { - "name": "y", - "loader": "int", - "loader_args": { - "size": 8 - } - } + { "name": "y", "loader": "int", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - x=yy", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -14813,33 +9755,19 @@ "tlb": "#C1 yy:int8", "prefix": "C1", "operands": [ - { - "name": "y", - "loader": "int", - "loader_args": { - "size": 8 - } - } + { "name": "y", "loader": "int", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - xyy", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -14901,33 +9815,19 @@ "tlb": "#C3 yy:int8", "prefix": "C3", "operands": [ - { - "name": "y", - "loader": "int", - "loader_args": { - "size": 8 - } - } + { "name": "y", "loader": "int", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x - x!=yy", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -14950,20 +9850,12 @@ "doc_stack": "x - x=NaN", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -14986,20 +9878,12 @@ "doc_stack": "x - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -15021,21 +9905,11 @@ "value_flow": { "doc_stack": "s - ?", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -15057,21 +9931,11 @@ "value_flow": { "doc_stack": "s - ?", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -15093,21 +9957,11 @@ "value_flow": { "doc_stack": "s - ?", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -15129,21 +9983,11 @@ "value_flow": { "doc_stack": "s - ?", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -15166,25 +10010,13 @@ "doc_stack": "s s' - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -15207,25 +10039,13 @@ "doc_stack": "s s' - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -15248,25 +10068,13 @@ "doc_stack": "s s' - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -15289,25 +10097,13 @@ "doc_stack": "s s' - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -15330,25 +10126,13 @@ "doc_stack": "s s' - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -15371,21 +10155,11 @@ "doc_stack": "s s' - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -15406,25 +10180,13 @@ "doc_stack": "s s' - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -15447,25 +10209,13 @@ "doc_stack": "s s' - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -15488,25 +10238,13 @@ "doc_stack": "s s' - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -15529,25 +10267,13 @@ "doc_stack": "s s' - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -15569,21 +10295,11 @@ "value_flow": { "doc_stack": "s - n", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -15605,21 +10321,11 @@ "value_flow": { "doc_stack": "s - n", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -15641,21 +10347,11 @@ "value_flow": { "doc_stack": "s - n", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -15677,21 +10373,11 @@ "value_flow": { "doc_stack": "s - n", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -15712,16 +10398,10 @@ }, "value_flow": { "doc_stack": "- b", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] } } @@ -15744,21 +10424,11 @@ "doc_stack": "b - c", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] } } }, @@ -15775,38 +10445,20 @@ "tlb": "#CA cc:uint8", "prefix": "CA", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x b - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -15824,38 +10476,20 @@ "tlb": "#CB cc:uint8", "prefix": "CB", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x b - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -15878,25 +10512,13 @@ "doc_stack": "c b - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -15919,25 +10541,13 @@ "doc_stack": "b b'' - b", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "child", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "child", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -15960,25 +10570,13 @@ "doc_stack": "s b - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -16001,30 +10599,14 @@ "doc_stack": "x b l - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -16047,30 +10629,14 @@ "doc_stack": "x b l - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -16093,30 +10659,14 @@ "doc_stack": "b x l - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -16139,30 +10689,14 @@ "doc_stack": "b x l - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -16185,21 +10719,9 @@ "doc_stack": "x b l - x b f or b' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { @@ -16250,11 +10772,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -16277,21 +10795,9 @@ "doc_stack": "x b l - x b f or b' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { @@ -16342,11 +10848,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -16369,21 +10871,9 @@ "doc_stack": "b x l - b x f or b' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { @@ -16434,11 +10924,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -16461,21 +10947,9 @@ "doc_stack": "b x l - b x f or b' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { @@ -16526,11 +11000,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -16548,38 +11018,20 @@ "tlb": "#CF08 cc:uint8", "prefix": "CF08", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x b - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -16597,38 +11049,20 @@ "tlb": "#CF09 cc:uint8", "prefix": "CF09", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x b - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -16646,38 +11080,20 @@ "tlb": "#CF0A cc:uint8", "prefix": "CF0A", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "b x - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -16695,38 +11111,20 @@ "tlb": "#CF0B cc:uint8", "prefix": "CF0B", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "b x - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -16744,29 +11142,15 @@ "tlb": "#CF0C cc:uint8", "prefix": "CF0C", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x b - x b f or b' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { @@ -16817,11 +11201,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -16839,29 +11219,15 @@ "tlb": "#CF0D cc:uint8", "prefix": "CF0D", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "x b - x b f or b' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { @@ -16912,11 +11278,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -16934,29 +11296,15 @@ "tlb": "#CF0E cc:uint8", "prefix": "CF0E", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "b x - b x f or b' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { @@ -17007,11 +11355,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -17029,29 +11373,15 @@ "tlb": "#CF0F cc:uint8", "prefix": "CF0F", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "b x - b x f or b' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { @@ -17102,11 +11432,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -17129,25 +11455,13 @@ "doc_stack": "c b - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -17170,25 +11484,13 @@ "doc_stack": "b' b - b''", "inputs": { "stack": [ - { - "type": "simple", - "name": "child", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "child", "value_types": ["Builder"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -17211,25 +11513,13 @@ "doc_stack": "s b - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -17252,25 +11542,13 @@ "doc_stack": "b' b - b''", "inputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b3", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b3", "value_types": ["Builder"] } ] } } @@ -17293,25 +11571,13 @@ "doc_stack": "b c - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "c", "value_types": ["Cell"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -17334,25 +11600,13 @@ "doc_stack": "b b' - b''", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b3", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b3", "value_types": ["Builder"] } ] } } @@ -17375,25 +11629,13 @@ "doc_stack": "b s - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -17416,25 +11658,13 @@ "doc_stack": "b b' - b''", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b3", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b3", "value_types": ["Builder"] } ] } } @@ -17457,16 +11687,8 @@ "doc_stack": "c b - c b -1 or b' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { @@ -17488,11 +11710,7 @@ { "value": -1, "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, + { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "b", @@ -17502,11 +11720,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -17529,16 +11743,8 @@ "doc_stack": "b' b - b' b -1 or b'' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { @@ -17574,11 +11780,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -17601,16 +11803,8 @@ "doc_stack": "s b - s b -1 or b' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { @@ -17632,11 +11826,7 @@ { "value": -1, "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, + { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "b", @@ -17646,11 +11836,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -17673,16 +11859,8 @@ "doc_stack": "b' b - b' b -1 or b'' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { @@ -17718,11 +11896,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -17745,16 +11919,8 @@ "doc_stack": "b c - b c -1 or b' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "c", "value_types": ["Cell"] } ] }, "outputs": { @@ -17781,20 +11947,12 @@ "name": "b", "value_types": ["Builder"] }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -17817,16 +11975,8 @@ "doc_stack": "b b' - b b' -1 or b'' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { @@ -17862,11 +12012,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -17889,16 +12035,8 @@ "doc_stack": "b s - b s -1 or b'' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, "outputs": { @@ -17925,20 +12063,12 @@ "name": "b", "value_types": ["Builder"] }, - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -17961,16 +12091,8 @@ "doc_stack": "b b' - b b' -1 or b'' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] }, "outputs": { @@ -18006,11 +12128,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -18027,32 +12145,18 @@ "doc_opcode": "CF20", "tlb": "#CF20 c:^Cell", "prefix": "CF20", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] }, "value_flow": { "doc_stack": "b - b\u0432\u0402\u2122", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -18075,20 +12179,12 @@ "doc_stack": "b - b\u0432\u0402\u2122", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -18111,26 +12207,12 @@ "doc_stack": "b x - c", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] } } }, @@ -18152,25 +12234,13 @@ "doc_stack": "x b - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -18193,25 +12263,13 @@ "doc_stack": "x b - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -18234,25 +12292,13 @@ "doc_stack": "x b - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -18275,25 +12321,13 @@ "doc_stack": "x b - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -18316,20 +12350,12 @@ "doc_stack": "b - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -18352,20 +12378,12 @@ "doc_stack": "b - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -18388,20 +12406,12 @@ "doc_stack": "b - y", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] } } @@ -18424,25 +12434,13 @@ "doc_stack": "b - x y", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] } } @@ -18465,20 +12463,12 @@ "doc_stack": "b - x'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x2", "value_types": ["Integer"] } ] } } @@ -18501,20 +12491,12 @@ "doc_stack": "b - y'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "y2", - "value_types": ["Integer"] - } + { "type": "simple", "name": "y2", "value_types": ["Integer"] } ] } } @@ -18537,25 +12519,13 @@ "doc_stack": "b - x' y'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y2", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x2", "value_types": ["Integer"] }, + { "type": "simple", "name": "y2", "value_types": ["Integer"] } ] } } @@ -18573,29 +12543,17 @@ "tlb": "#CF38 cc:uint8", "prefix": "CF38", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "b -", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -18616,21 +12574,11 @@ "doc_stack": "b x - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -18651,21 +12599,11 @@ "doc_stack": "b y - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -18686,26 +12624,12 @@ "doc_stack": "b x y - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -18721,33 +12645,19 @@ "tlb": "#CF3C cc:uint8", "prefix": "CF3C", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "b - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -18770,25 +12680,13 @@ "doc_stack": "b x - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -18811,25 +12709,13 @@ "doc_stack": "b y - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -18852,30 +12738,14 @@ "doc_stack": "b x y - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -18898,25 +12768,13 @@ "doc_stack": "b n - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -18939,25 +12797,13 @@ "doc_stack": "b n - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -18980,30 +12826,14 @@ "doc_stack": "b n x - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -19037,20 +12867,12 @@ "doc_stack": "b - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -19072,22 +12894,10 @@ "value_flow": { "doc_stack": "c - s", "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] }, "outputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] } } }, @@ -19108,17 +12918,9 @@ "value_flow": { "doc_stack": "s - ", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -19134,38 +12936,18 @@ "tlb": "#D2 cc:uint8", "prefix": "D2", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -19183,38 +12965,18 @@ "tlb": "#D3 cc:uint8", "prefix": "D3", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "s - x s'", "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -19236,26 +12998,12 @@ "value_flow": { "doc_stack": "s - c s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -19277,26 +13025,12 @@ "value_flow": { "doc_stack": "s - s' s''", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] }, + { "type": "simple", "name": "s3", "value_types": ["Slice"] } ] } } @@ -19314,38 +13048,18 @@ "tlb": "#D6 cc:uint8", "prefix": "D6", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "s - s'' s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s3", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -19368,30 +13082,14 @@ "doc_stack": "s l - x s'", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -19414,30 +13112,14 @@ "doc_stack": "s l - x s'", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -19460,25 +13142,13 @@ "doc_stack": "s l - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -19501,25 +13171,13 @@ "doc_stack": "s l - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -19542,16 +13200,8 @@ "doc_stack": "s l - x s' -1 or s 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { @@ -19563,11 +13213,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, { @@ -19578,20 +13224,12 @@ "name": "x", "value_types": ["Integer"] }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -19614,16 +13252,8 @@ "doc_stack": "s l - x s' -1 or s 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { @@ -19635,11 +13265,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, { @@ -19650,20 +13276,12 @@ "name": "x", "value_types": ["Integer"] }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -19686,16 +13304,8 @@ "doc_stack": "s l - x -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { @@ -19704,10 +13314,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -19720,11 +13327,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -19747,16 +13350,8 @@ "doc_stack": "s l - x -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { @@ -19765,10 +13360,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -19781,11 +13373,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -19803,38 +13391,18 @@ "tlb": "#D708 cc:uint8", "prefix": "D708", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -19852,38 +13420,18 @@ "tlb": "#D709 cc:uint8", "prefix": "D709", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -19901,33 +13449,17 @@ "tlb": "#D70A cc:uint8", "prefix": "D70A", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -19945,33 +13477,17 @@ "tlb": "#D70B cc:uint8", "prefix": "D70B", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -19989,25 +13505,13 @@ "tlb": "#D70C cc:uint8", "prefix": "D70C", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "s - x s' -1 or s 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -20018,11 +13522,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, { @@ -20033,20 +13533,12 @@ "name": "x", "value_types": ["Integer"] }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -20064,25 +13556,13 @@ "tlb": "#D70D cc:uint8", "prefix": "D70D", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "s - x s' -1 or s 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -20093,11 +13573,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, { @@ -20108,20 +13584,12 @@ "name": "x", "value_types": ["Integer"] }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -20139,25 +13607,13 @@ "tlb": "#D70E cc:uint8", "prefix": "D70E", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "s - x -1 or 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -20165,10 +13621,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -20181,11 +13634,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -20203,25 +13652,13 @@ "tlb": "#D70F cc:uint8", "prefix": "D70F", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "s - x -1 or 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -20229,10 +13666,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -20245,11 +13679,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -20267,38 +13697,18 @@ "tlb": "#D714_ c:uint3", "prefix": "D714_", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 3 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 3 } } ] }, "value_flow": { "doc_stack": "s - s x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -20321,30 +13731,14 @@ "doc_stack": "s l - s'' s'", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s3", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -20367,25 +13761,13 @@ "doc_stack": "s l - s''", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s3", "value_types": ["Slice"] } ] } } @@ -20408,16 +13790,8 @@ "doc_stack": "s l - s'' s' -1 or s 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { @@ -20429,11 +13803,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, { @@ -20444,20 +13814,12 @@ "name": "s3", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -20480,16 +13842,8 @@ "doc_stack": "s l - s' -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { @@ -20498,27 +13852,16 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -20536,38 +13879,18 @@ "tlb": "#D71C cc:uint8", "prefix": "D71C", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "s - s'' s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s3", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -20585,33 +13908,17 @@ "tlb": "#D71D cc:uint8", "prefix": "D71D", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "s - s''", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s3", "value_types": ["Slice"] } ] } } @@ -20629,25 +13936,13 @@ "tlb": "#D71E cc:uint8", "prefix": "D71E", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "s - s'' s' -1 or s 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -20658,11 +13953,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, { @@ -20673,20 +13964,12 @@ "name": "s3", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -20704,25 +13987,13 @@ "tlb": "#D71F cc:uint8", "prefix": "D71F", "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "s - s'' -1 or 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -20730,27 +14001,16 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s3", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -20773,25 +14033,13 @@ "doc_stack": "s l - s'", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -20814,25 +14062,13 @@ "doc_stack": "s l - s'", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -20855,25 +14091,13 @@ "doc_stack": "s l - s'", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -20896,25 +14120,13 @@ "doc_stack": "s l - s'", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -20937,30 +14149,14 @@ "doc_stack": "s l l' - s'", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l2", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "l2", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -20983,25 +14179,13 @@ "doc_stack": "s s' - s''", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s3", "value_types": ["Slice"] } ] } } @@ -21024,16 +14208,8 @@ "doc_stack": "s s' - s'' -1 or s 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] }, "outputs": { @@ -21045,30 +14221,18 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s3", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -21100,21 +14264,11 @@ "value_flow": { "doc_stack": "s - s''", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s3", "value_types": ["Slice"] } ] } } @@ -21146,13 +14300,7 @@ "value_flow": { "doc_stack": "s - s'' -1 or s 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -21163,30 +14311,18 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s3", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -21209,30 +14345,14 @@ "doc_stack": "s l r - s'", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -21255,30 +14375,14 @@ "doc_stack": "s l r - s'", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -21301,30 +14405,14 @@ "doc_stack": "s l r - s'", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -21347,30 +14435,14 @@ "doc_stack": "s l r - s'", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -21393,40 +14465,16 @@ "doc_stack": "s l r l' r' - s'", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l2", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r2", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] }, + { "type": "simple", "name": "l2", "value_types": ["Integer"] }, + { "type": "simple", "name": "r2", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -21449,35 +14497,15 @@ "doc_stack": "s l r - s' s''", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] }, + { "type": "simple", "name": "s3", "value_types": ["Slice"] } ] } } @@ -21500,21 +14528,9 @@ "doc_stack": "s l r - s' s'' -1 or s 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] }, "outputs": { @@ -21526,11 +14542,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, { @@ -21541,20 +14553,12 @@ "name": "s2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s3", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -21576,26 +14580,12 @@ "value_flow": { "doc_stack": "c - s ?", "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "flag", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "flag", "value_types": ["Integer"] } ] } } @@ -21617,22 +14607,10 @@ "value_flow": { "doc_stack": "c - c'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] }, "outputs": { - "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } - ] + "stack": [{ "type": "simple", "name": "c2", "value_types": ["Cell"] }] } } }, @@ -21653,13 +14631,7 @@ "value_flow": { "doc_stack": "c - c' -1 or c 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] }, "outputs": { "stack": [ @@ -21670,30 +14642,18 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } + { "type": "simple", "name": "c2", "value_types": ["Cell"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -21716,21 +14676,11 @@ "doc_stack": "s l - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -21751,21 +14701,11 @@ "doc_stack": "s r - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -21786,26 +14726,12 @@ "doc_stack": "s l r - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -21826,25 +14752,13 @@ "doc_stack": "s l - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -21867,25 +14781,13 @@ "doc_stack": "s r - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -21908,30 +14810,14 @@ "doc_stack": "s l r - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -21954,26 +14840,12 @@ "doc_stack": "s n - c", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] } } }, @@ -21994,21 +14866,11 @@ "value_flow": { "doc_stack": "s - l", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - } + { "type": "simple", "name": "l", "value_types": ["Integer"] } ] } } @@ -22030,21 +14892,11 @@ "value_flow": { "doc_stack": "s - r", "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -22066,26 +14918,12 @@ "value_flow": { "doc_stack": "s - l r", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] } } @@ -22103,34 +14941,16 @@ "tlb": "#D74E_ n:uint2", "prefix": "D74E_", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 2 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 2 } } ] }, "value_flow": { "doc_stack": "s - c", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] } } }, @@ -22151,26 +14971,12 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -22192,26 +14998,12 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -22233,26 +15025,12 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -22274,26 +15052,12 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -22315,21 +15079,11 @@ "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -22351,21 +15105,11 @@ "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -22387,21 +15131,11 @@ "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -22423,21 +15157,11 @@ "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -22459,13 +15183,7 @@ "value_flow": { "doc_stack": "s - x s' -1 or s 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -22476,11 +15194,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, { @@ -22491,20 +15205,12 @@ "name": "x", "value_types": ["Integer"] }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -22526,13 +15232,7 @@ "value_flow": { "doc_stack": "s - x s' -1 or s 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -22543,11 +15243,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, { @@ -22558,20 +15254,12 @@ "name": "x", "value_types": ["Integer"] }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -22593,13 +15281,7 @@ "value_flow": { "doc_stack": "s - x s' -1 or s 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -22610,11 +15292,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, { @@ -22625,20 +15303,12 @@ "name": "x", "value_types": ["Integer"] }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -22660,13 +15330,7 @@ "value_flow": { "doc_stack": "s - x s' -1 or s 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -22677,11 +15341,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, { @@ -22692,20 +15352,12 @@ "name": "x", "value_types": ["Integer"] }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -22727,13 +15379,7 @@ "value_flow": { "doc_stack": "s - x -1 or 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -22741,10 +15387,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -22757,11 +15400,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -22783,13 +15422,7 @@ "value_flow": { "doc_stack": "s - x -1 or 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -22797,10 +15430,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -22813,11 +15443,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -22839,13 +15465,7 @@ "value_flow": { "doc_stack": "s - x -1 or 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -22853,10 +15473,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -22869,11 +15486,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -22895,13 +15508,7 @@ "value_flow": { "doc_stack": "s - x -1 or 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -22909,10 +15516,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -22925,11 +15529,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -22951,26 +15551,12 @@ "value_flow": { "doc_stack": "s - n s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -22992,26 +15578,12 @@ "value_flow": { "doc_stack": "s - n s'", "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -23034,30 +15606,14 @@ "doc_stack": "s x - n s'", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -23079,21 +15635,11 @@ "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -23115,21 +15661,11 @@ "value_flow": { "doc_stack": "c - x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -23152,16 +15688,10 @@ "doc_stack": "c - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -23171,12 +15701,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -23201,25 +15726,12 @@ "doc_stack": "c - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } + "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } }, { "mnemonic": "CALLXARGS", @@ -23234,20 +15746,8 @@ "tlb": "#DA p:uint4 r:uint4", "prefix": "DA", "operands": [ - { - "name": "p", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "r", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "p", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "r", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { @@ -23258,23 +15758,12 @@ "type": "array", "name": "args", "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] + "array_entry": [{ "type": "simple", "name": "arg" }] }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -23284,12 +15773,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -23309,13 +15793,7 @@ "tlb": "#DB0 p:uint4", "prefix": "DB0", "operands": [ - { - "name": "p", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "p", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { @@ -23326,23 +15804,12 @@ "type": "array", "name": "args", "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] + "array_entry": [{ "type": "simple", "name": "arg" }] }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -23352,12 +15819,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -23377,13 +15839,7 @@ "tlb": "#DB1 p:uint4", "prefix": "DB1", "operands": [ - { - "name": "p", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "p", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { @@ -23394,32 +15850,14 @@ "type": "array", "name": "args", "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] + "array_entry": [{ "type": "simple", "name": "arg" }] }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } + "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } }, { "mnemonic": "RETARGS", @@ -23434,13 +15872,7 @@ "tlb": "#DB2 r:uint4", "prefix": "DB2", "operands": [ - { - "name": "r", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "r", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { @@ -23451,27 +15883,13 @@ "type": "array", "name": "args", "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] + "array_entry": [{ "type": "simple", "name": "arg" }] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, - "control_flow": { - "branches": [ - { - "type": "register", - "index": 0 - } - ] - } + "control_flow": { "branches": [{ "type": "register", "index": 0 }] } }, { "mnemonic": "RET", @@ -23489,21 +15907,10 @@ }, "value_flow": { "doc_stack": "", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } }, - "control_flow": { - "branches": [ - { - "type": "register", - "index": 0 - } - ] - } + "control_flow": { "branches": [{ "type": "register", "index": 0 }] } }, { "mnemonic": "RETALT", @@ -23521,21 +15928,10 @@ }, "value_flow": { "doc_stack": "", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } }, - "control_flow": { - "branches": [ - { - "type": "register", - "index": 1 - } - ] - } + "control_flow": { "branches": [{ "type": "register", "index": 1 }] } }, { "mnemonic": "BRANCH", @@ -23555,27 +15951,15 @@ "doc_stack": "f - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ - { - "type": "register", - "index": 0 - }, - { - "type": "register", - "index": 1 - } + { "type": "register", "index": 0 }, + { "type": "register", "index": 1 } ] } }, @@ -23597,25 +15981,12 @@ "doc_stack": "c - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } + "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } }, { "mnemonic": "JMPXDATA", @@ -23635,25 +16006,12 @@ "doc_stack": "c - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } + "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } }, { "mnemonic": "CALLCCARGS", @@ -23668,20 +16026,8 @@ "tlb": "#DB36 p:uint4 r:uint4", "prefix": "DB36", "operands": [ - { - "name": "p", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "r", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "p", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "r", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { @@ -23692,32 +16038,14 @@ "type": "array", "name": "args", "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] + "array_entry": [{ "type": "simple", "name": "arg" }] }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } + "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } }, { "mnemonic": "CALLXVARARGS", @@ -23741,33 +16069,14 @@ "type": "array", "name": "args", "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "p", - "value_types": ["Integer"] + "array_entry": [{ "type": "simple", "name": "arg" }] }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "p", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -23777,12 +16086,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -23811,28 +16115,13 @@ "type": "array", "name": "args", "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] + "array_entry": [{ "type": "simple", "name": "arg" }] }, - { - "type": "simple", - "name": "p", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "p", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -23842,12 +16131,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -23876,42 +16160,16 @@ "type": "array", "name": "args", "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "p", - "value_types": ["Integer"] + "array_entry": [{ "type": "simple", "name": "arg" }] }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "p", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } + "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } }, { "mnemonic": "CALLCCVARARGS", @@ -23935,42 +16193,16 @@ "type": "array", "name": "args", "length_var": "p", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "p", - "value_types": ["Integer"] + "array_entry": [{ "type": "simple", "name": "arg" }] }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "p", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } + "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } }, { "mnemonic": "CALLREF", @@ -23984,22 +16216,12 @@ "doc_opcode": "DB3C", "tlb": "#DB3C c:^Cell", "prefix": "DB3C", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] }, "value_flow": { "doc_stack": "", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -24009,12 +16231,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -24033,31 +16250,14 @@ "doc_opcode": "DB3D", "tlb": "#DB3D c:^Cell", "prefix": "DB3D", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] }, "value_flow": { "doc_stack": "", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } + "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } }, { "mnemonic": "JMPREFDATA", @@ -24071,31 +16271,14 @@ "doc_opcode": "DB3E", "tlb": "#DB3E c:^Cell", "prefix": "DB3E", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] }, "value_flow": { "doc_stack": "", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } + "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } }, { "mnemonic": "RETDATA", @@ -24113,21 +16296,10 @@ }, "value_flow": { "doc_stack": "", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } }, - "control_flow": { - "branches": [ - { - "type": "register", - "index": 0 - } - ] - } + "control_flow": { "branches": [{ "type": "register", "index": 0 }] } }, { "mnemonic": "RUNVM", @@ -24183,24 +16355,13 @@ "doc_stack": "f - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { - "branches": [ - { - "type": "register", - "index": 0 - } - ], + "branches": [{ "type": "register", "index": 0 }], "nobranch": true } }, @@ -24222,24 +16383,13 @@ "doc_stack": "f - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { - "branches": [ - { - "type": "register", - "index": 0 - } - ], + "branches": [{ "type": "register", "index": 0 }], "nobranch": true } }, @@ -24267,21 +16417,11 @@ "doc_stack": "f c - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -24291,12 +16431,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -24328,21 +16463,11 @@ "doc_stack": "f c - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -24352,12 +16477,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -24389,29 +16509,14 @@ "doc_stack": "f c - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ], + "branches": [{ "type": "variable", "var_name": "c" }], "nobranch": true } }, @@ -24439,29 +16544,14 @@ "doc_stack": "f c - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ], + "branches": [{ "type": "variable", "var_name": "c" }], "nobranch": true } }, @@ -24489,26 +16579,12 @@ "doc_stack": "f c c' - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -24518,12 +16594,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } }, @@ -24533,12 +16604,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -24557,28 +16623,16 @@ "doc_opcode": "E300", "tlb": "#E300 c:^Cell", "prefix": "E300", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] }, "value_flow": { "doc_stack": "f - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -24588,12 +16642,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -24613,28 +16662,16 @@ "doc_opcode": "E301", "tlb": "#E301 c:^Cell", "prefix": "E301", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] }, "value_flow": { "doc_stack": "f - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -24644,12 +16681,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -24669,36 +16701,19 @@ "doc_opcode": "E302", "tlb": "#E302 c:^Cell", "prefix": "E302", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] }, "value_flow": { "doc_stack": "f - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ], + "branches": [{ "type": "variable", "var_name": "c" }], "nobranch": true } }, @@ -24714,36 +16729,19 @@ "doc_opcode": "E303", "tlb": "#E303 c:^Cell", "prefix": "E303", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] }, "value_flow": { "doc_stack": "f - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ], + "branches": [{ "type": "variable", "var_name": "c" }], "nobranch": true } }, @@ -24765,29 +16763,12 @@ "doc_stack": "f x y - x or y", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y" - } + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y" } ] }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result" - } - ] - } + "outputs": { "stack": [{ "type": "simple", "name": "result" }] } } }, { @@ -24808,29 +16789,12 @@ "doc_stack": "f x y - x or y", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "y" - } + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y" } ] }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result" - } - ] - } + "outputs": { "stack": [{ "type": "simple", "name": "result" }] } } }, { @@ -24851,24 +16815,13 @@ "doc_stack": "f -", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { - "branches": [ - { - "type": "register", - "index": 1 - } - ], + "branches": [{ "type": "register", "index": 1 }], "nobranch": true } }, @@ -24890,24 +16843,13 @@ "doc_stack": "f -", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { - "branches": [ - { - "type": "register", - "index": 1 - } - ], + "branches": [{ "type": "register", "index": 1 }], "nobranch": true } }, @@ -24923,33 +16865,17 @@ "doc_opcode": "E30D", "tlb": "#E30D c:^Cell", "prefix": "E30D", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] }, "value_flow": { "doc_stack": "f c -", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -24959,12 +16885,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } }, @@ -24974,12 +16895,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -24998,33 +16914,17 @@ "doc_opcode": "E30E", "tlb": "#E30E c:^Cell", "prefix": "E30E", - "operands": [ - { - "name": "c", - "loader": "ref", - "loader_args": {} - } - ] + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] }, "value_flow": { "doc_stack": "f c -", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -25034,12 +16934,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } }, @@ -25049,12 +16944,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -25074,32 +16964,18 @@ "tlb": "#E30F c1:^Cell c2:^Cell", "prefix": "E30F", "operands": [ - { - "name": "c1", - "loader": "ref", - "loader_args": {} - }, - { - "name": "c2", - "loader": "ref", - "loader_args": {} - } + { "name": "c1", "loader": "ref", "loader_args": {} }, + { "name": "c2", "loader": "ref", "loader_args": {} } ] }, "value_flow": { "doc_stack": "f -", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -25109,12 +16985,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } }, @@ -25124,12 +16995,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -25149,49 +17015,24 @@ "tlb": "#E39_ n:uint5", "prefix": "E39_", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 5 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 5 } } ] }, "value_flow": { "doc_stack": "x c - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } + "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } }, { "mnemonic": "IFNBITJMP", @@ -25206,49 +17047,24 @@ "tlb": "#E3B_ n:uint5", "prefix": "E3B_", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 5 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 5 } } ] }, "value_flow": { "doc_stack": "x c - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } + "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } }, { "mnemonic": "IFBITJMPREF", @@ -25263,49 +17079,24 @@ "tlb": "#E3D_ n:uint5 c:^Cell", "prefix": "E3D_", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 5 - } - }, - { - "name": "c", - "loader": "ref", - "loader_args": {} - } + { "name": "n", "loader": "uint", "loader_args": { "size": 5 } }, + { "name": "c", "loader": "ref", "loader_args": {} } ] }, "value_flow": { "doc_stack": "x - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } + "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } }, { "mnemonic": "IFNBITJMPREF", @@ -25320,49 +17111,24 @@ "tlb": "#E3F_ n:uint5 c:^Cell", "prefix": "E3F_", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 5 - } - }, - { - "name": "c", - "loader": "ref", - "loader_args": {} - } + { "name": "n", "loader": "uint", "loader_args": { "size": 5 } }, + { "name": "c", "loader": "ref", "loader_args": {} } ] }, "value_flow": { "doc_stack": "x - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c" - } - ] - } + "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } }, { "mnemonic": "REPEAT", @@ -25388,21 +17154,11 @@ "doc_stack": "n c - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -25411,18 +17167,10 @@ "name": "repeat", "args": { "count": "n", - "body": { - "type": "variable", - "var_name": "c" - }, + "body": { "type": "variable", "var_name": "c" }, "after": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -25448,16 +17196,10 @@ "doc_stack": "n - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -25466,13 +17208,8 @@ "name": "repeat", "args": { "count": "n", - "body": { - "type": "cc" - }, - "after": { - "type": "register", - "index": 0 - } + "body": { "type": "cc" }, + "after": { "type": "register", "index": 0 } } } ], @@ -25503,16 +17240,10 @@ "doc_stack": "c - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -25524,18 +17255,10 @@ "type": "special", "name": "until", "args": { - "body": { - "type": "variable", - "var_name": "c" - }, + "body": { "type": "variable", "var_name": "c" }, "after": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -25560,12 +17283,8 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -25576,13 +17295,8 @@ "type": "special", "name": "until", "args": { - "body": { - "type": "cc" - }, - "after": { - "type": "register", - "index": 0 - } + "body": { "type": "cc" }, + "after": { "type": "register", "index": 0 } } } } @@ -25614,21 +17328,11 @@ "doc_stack": "c' c - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c2", "value_types": ["Continuation"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -25640,22 +17344,11 @@ "type": "special", "name": "while", "args": { - "cond": { - "type": "variable", - "var_name": "c2" - }, - "body": { - "type": "variable", - "var_name": "c" - }, + "cond": { "type": "variable", "var_name": "c2" }, + "body": { "type": "variable", "var_name": "c" }, "after": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -25682,16 +17375,10 @@ "doc_stack": "c' - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -25703,17 +17390,9 @@ "type": "special", "name": "while", "args": { - "cond": { - "type": "variable", - "var_name": "c2" - }, - "body": { - "type": "cc" - }, - "after": { - "type": "register", - "index": 0 - } + "cond": { "type": "variable", "var_name": "c2" }, + "body": { "type": "cc" }, + "after": { "type": "register", "index": 0 } } } } @@ -25745,28 +17424,17 @@ "doc_stack": "c - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ { "type": "special", "name": "again", - "args": { - "body": { - "type": "variable", - "var_name": "c" - } - } + "args": { "body": { "type": "variable", "var_name": "c" } } } ] } @@ -25787,23 +17455,15 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } }, "control_flow": { "branches": [ { "type": "special", "name": "again", - "args": { - "body": { - "type": "cc" - } - } + "args": { "body": { "type": "cc" } } } ] } @@ -25832,21 +17492,11 @@ "doc_stack": "n c -", "inputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -25862,14 +17512,8 @@ "c1": { "type": "cc", "save": { - "c0": { - "type": "register", - "index": 0 - }, - "c1": { - "type": "register", - "index": 1 - } + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 } } } } @@ -25877,14 +17521,8 @@ "after": { "type": "cc", "save": { - "c0": { - "type": "register", - "index": 0 - }, - "c1": { - "type": "register", - "index": 1 - } + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 } } } } @@ -25911,16 +17549,10 @@ "doc_stack": "n -", "inputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -25931,17 +17563,9 @@ "count": "n", "body": { "type": "cc", - "save": { - "c1": { - "type": "register", - "index": 0 - } - } + "save": { "c1": { "type": "register", "index": 0 } } }, - "after": { - "type": "register", - "index": 0 - } + "after": { "type": "register", "index": 0 } } } ], @@ -25972,16 +17596,10 @@ "doc_stack": "c -", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -26000,14 +17618,8 @@ "c1": { "type": "cc", "save": { - "c0": { - "type": "register", - "index": 0 - }, - "c1": { - "type": "register", - "index": 1 - } + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 } } } } @@ -26015,14 +17627,8 @@ "after": { "type": "cc", "save": { - "c0": { - "type": "register", - "index": 0 - }, - "c1": { - "type": "register", - "index": 1 - } + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 } } } } @@ -26030,14 +17636,8 @@ "c1": { "type": "cc", "save": { - "c0": { - "type": "register", - "index": 0 - }, - "c1": { - "type": "register", - "index": 1 - } + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 } } } } @@ -26061,12 +17661,8 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -26079,23 +17675,12 @@ "args": { "body": { "type": "cc", - "save": { - "c1": { - "type": "register", - "index": 0 - } - } + "save": { "c1": { "type": "register", "index": 0 } } }, - "after": { - "type": "register", - "index": 0 - } + "after": { "type": "register", "index": 0 } } }, - "c1": { - "type": "register", - "index": 0 - } + "c1": { "type": "register", "index": 0 } } } ] @@ -26125,21 +17710,11 @@ "doc_stack": "c' c -", "inputs": { "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c2", "value_types": ["Continuation"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -26151,25 +17726,13 @@ "type": "special", "name": "while", "args": { - "cond": { - "type": "variable", - "var_name": "c2" - }, - "body": { - "type": "variable", - "var_name": "c" - }, + "cond": { "type": "variable", "var_name": "c2" }, + "body": { "type": "variable", "var_name": "c" }, "after": { "type": "cc", "save": { - "c0": { - "type": "register", - "index": 0 - }, - "c1": { - "type": "register", - "index": 1 - } + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 } } } } @@ -26197,16 +17760,10 @@ "doc_stack": "c -", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -26233,16 +17790,10 @@ "doc_stack": "c -", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -26261,12 +17812,8 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -26282,20 +17829,8 @@ "tlb": "#EC r:uint4 n:uint4", "prefix": "EC", "operands": [ - { - "name": "r", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "r", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { @@ -26306,27 +17841,14 @@ "type": "array", "name": "args", "length_var": "r", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] + "array_entry": [{ "type": "simple", "name": "x" }] }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } ] } } @@ -26344,18 +17866,10 @@ "tlb": "#ED0 p:uint4", "prefix": "ED0", "operands": [ - { - "name": "p", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "p", "loader": "uint", "loader_args": { "size": 4 } } ] }, - "value_flow": { - "doc_stack": "-" - } + "value_flow": { "doc_stack": "-" } }, { "mnemonic": "RETURNVARARGS", @@ -26371,9 +17885,7 @@ "prefix": "ED10", "operands": [] }, - "value_flow": { - "doc_stack": "p -" - } + "value_flow": { "doc_stack": "p -" } }, { "mnemonic": "SETCONTVARARGS", @@ -26397,37 +17909,16 @@ "type": "array", "name": "args", "length_var": "r", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] + "array_entry": [{ "type": "simple", "name": "x" }] }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } ] } } @@ -26450,25 +17941,13 @@ "doc_stack": "c n - c'", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } ] } } @@ -26490,21 +17969,11 @@ "value_flow": { "doc_stack": "s - c", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] } } @@ -26531,37 +18000,16 @@ "type": "array", "name": "args", "length_var": "r", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] + "array_entry": [{ "type": "simple", "name": "x" }] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] } } @@ -26579,20 +18027,8 @@ "tlb": "#EE r:uint4 n:uint4", "prefix": "EE", "operands": [ - { - "name": "r", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "r", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { @@ -26603,27 +18039,14 @@ "type": "array", "name": "args", "length_var": "r", - "array_entry": [ - { - "type": "simple", - "name": "x" - } - ] + "array_entry": [{ "type": "simple", "name": "x" }] }, - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] } } @@ -26641,28 +18064,13 @@ "tlb": "#ED4 i:uint4", "prefix": "ED4", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "- x", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } } }, { @@ -26678,28 +18086,13 @@ "tlb": "#ED5 i:uint4", "prefix": "ED5", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "x - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, + "outputs": { "stack": [] } } }, { @@ -26715,37 +18108,20 @@ "tlb": "#ED6 i:uint4", "prefix": "ED6", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "x c - c'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } ] } } @@ -26763,28 +18139,13 @@ "tlb": "#ED7 i:uint4", "prefix": "ED7", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "x - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, + "outputs": { "stack": [] } } }, { @@ -26800,28 +18161,13 @@ "tlb": "#ED8 i:uint4", "prefix": "ED8", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "x - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, + "outputs": { "stack": [] } } }, { @@ -26837,28 +18183,13 @@ "tlb": "#ED9 i:uint4", "prefix": "ED9", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "x -", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, + "outputs": { "stack": [] } } }, { @@ -26874,23 +18205,13 @@ "tlb": "#EDA i:uint4", "prefix": "EDA", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -26906,23 +18227,13 @@ "tlb": "#EDB i:uint4", "prefix": "EDB", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -26938,23 +18249,13 @@ "tlb": "#EDC i:uint4", "prefix": "EDC", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -26975,21 +18276,10 @@ "doc_stack": "i - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } } }, { @@ -27010,20 +18300,11 @@ "doc_stack": "x i - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "i", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -27044,29 +18325,14 @@ "doc_stack": "x c i - c'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } ] } } @@ -27089,25 +18355,13 @@ "doc_stack": "c c' - c''", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c3", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c3", "value_types": ["Continuation"] } ] } } @@ -27130,25 +18384,13 @@ "doc_stack": "c c' - c''", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c3", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c3", "value_types": ["Continuation"] } ] } } @@ -27171,25 +18413,13 @@ "doc_stack": "c c' - c''", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c3", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c3", "value_types": ["Continuation"] } ] } } @@ -27218,16 +18448,10 @@ "doc_stack": "c - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -27254,16 +18478,10 @@ "doc_stack": "c - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -27284,16 +18502,10 @@ "doc_stack": "c - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -27314,20 +18526,12 @@ "doc_stack": "c - c'", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } ] } } @@ -27350,20 +18554,12 @@ "doc_stack": "c - c'", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } ] } } @@ -27384,12 +18580,8 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -27410,20 +18602,12 @@ "doc_stack": "c - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } }, @@ -27440,14 +18624,8 @@ "next": { "type": "cc", "save": { - "c0": { - "type": "register", - "index": 0 - }, - "c1": { - "type": "register", - "index": 1 - } + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 } } }, "value": -1 @@ -27460,14 +18638,8 @@ "next": { "type": "cc", "save": { - "c0": { - "type": "register", - "index": 0 - }, - "c1": { - "type": "register", - "index": 1 - } + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 } } }, "value": 0 @@ -27494,12 +18666,8 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -27518,12 +18686,8 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -27539,27 +18703,15 @@ "tlb": "#F0 n:uint8", "prefix": "F0", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "- nn", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] } }, @@ -27571,12 +18723,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -27596,27 +18743,15 @@ "tlb": "#F12_ n:uint14", "prefix": "F12_", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 14 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 14 } } ] }, "value_flow": { "doc_stack": "- n", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] } }, @@ -27628,12 +18763,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -27653,38 +18783,19 @@ "tlb": "#F16_ n:uint14", "prefix": "F16_", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 14 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 14 } } ] }, "value_flow": { "doc_stack": " - n", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] } }, - "control_flow": { - "branches": [ - { - "type": "register", - "index": 3 - } - ] - } + "control_flow": { "branches": [{ "type": "register", "index": 3 }] } }, { "mnemonic": "PREPAREDICT", @@ -27699,32 +18810,16 @@ "tlb": "#F1A_ n:uint14", "prefix": "F1A_", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 14 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 14 } } ] }, "value_flow": { "doc_stack": " - n c", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } ] } } @@ -27742,23 +18837,13 @@ "tlb": "#F22_ n:uint6", "prefix": "F22_", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 6 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 6 } } ] }, "value_flow": { "doc_stack": " - 0 n", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -27774,29 +18859,17 @@ "tlb": "#F26_ n:uint6", "prefix": "F26_", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 6 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 6 } } ] }, "value_flow": { "doc_stack": "f - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -27812,29 +18885,17 @@ "tlb": "#F2A_ n:uint6", "prefix": "F2A_", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 6 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 6 } } ] }, "value_flow": { "doc_stack": "f - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -27850,23 +18911,13 @@ "tlb": "#F2C4_ n:uint11", "prefix": "F2C4_", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 11 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } ] }, "value_flow": { "doc_stack": "- 0 nn", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -27882,28 +18933,13 @@ "tlb": "#F2CC_ n:uint11", "prefix": "F2CC_", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 11 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } ] }, "value_flow": { "doc_stack": "x - x nn", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, + "outputs": { "stack": [] } } }, { @@ -27919,29 +18955,17 @@ "tlb": "#F2D4_ n:uint11", "prefix": "F2D4_", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 11 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } ] }, "value_flow": { "doc_stack": "f - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -27957,33 +18981,18 @@ "tlb": "#F2DC_ n:uint11", "prefix": "F2DC_", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 11 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } ] }, "value_flow": { "doc_stack": "x f - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -27999,29 +19008,17 @@ "tlb": "#F2E4_ n:uint11", "prefix": "F2E4_", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 11 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } ] }, "value_flow": { "doc_stack": "f - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -28037,33 +19034,18 @@ "tlb": "#F2EC_ n:uint11", "prefix": "F2EC_", "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 11 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } ] }, "value_flow": { "doc_stack": "x f - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -28084,16 +19066,10 @@ "doc_stack": "n - 0 n", "inputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -28114,20 +19090,11 @@ "doc_stack": "x n - x n", "inputs": { "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -28148,21 +19115,11 @@ "doc_stack": "n f - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -28183,25 +19140,12 @@ "doc_stack": "x n f - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -28222,21 +19166,11 @@ "doc_stack": "n f - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -28257,25 +19191,12 @@ "doc_stack": "x n f - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "f", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "f", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -28302,21 +19223,11 @@ "doc_stack": "c c' - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -28327,18 +19238,9 @@ "c0": { "type": "cc", "save": { - "c0": { - "type": "register", - "index": 0 - }, - "c1": { - "type": "register", - "index": 1 - }, - "c2": { - "type": "register", - "index": 2 - } + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 }, + "c2": { "type": "register", "index": 2 } } }, "c2": { @@ -28348,24 +19250,12 @@ "c0": { "type": "cc", "save": { - "c0": { - "type": "register", - "index": 0 - }, - "c1": { - "type": "register", - "index": 1 - }, - "c2": { - "type": "register", - "index": 2 - } + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 }, + "c2": { "type": "register", "index": 2 } } }, - "c2": { - "type": "register", - "index": 2 - } + "c2": { "type": "register", "index": 2 } } } } @@ -28386,20 +19276,8 @@ "tlb": "#F3 p:uint4 r:uint4", "prefix": "F3", "operands": [ - { - "name": "p", - "loader": "uint", - "loader_args": { - "size": 4 - } - }, - { - "name": "r", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "p", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "r", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { @@ -28410,28 +19288,13 @@ "type": "array", "name": "args", "length_var": "r", - "array_entry": [ - { - "type": "simple", - "name": "arg" - } - ] - }, - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] + "array_entry": [{ "type": "simple", "name": "arg" }] }, - { - "type": "simple", - "name": "c2", - "value_types": ["Continuation"] - } + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -28442,18 +19305,9 @@ "c0": { "type": "cc", "save": { - "c0": { - "type": "register", - "index": 0 - }, - "c1": { - "type": "register", - "index": 1 - }, - "c2": { - "type": "register", - "index": 2 - } + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 }, + "c2": { "type": "register", "index": 2 } } }, "c2": { @@ -28463,24 +19317,12 @@ "c0": { "type": "cc", "save": { - "c0": { - "type": "register", - "index": 0 - }, - "c1": { - "type": "register", - "index": 1 - }, - "c2": { - "type": "register", - "index": 2 - } + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 }, + "c2": { "type": "register", "index": 2 } } }, - "c2": { - "type": "register", - "index": 2 - } + "c2": { "type": "register", "index": 2 } } } } @@ -28506,25 +19348,13 @@ "doc_stack": "D b - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -28546,21 +19376,11 @@ "value_flow": { "doc_stack": "s - s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -28582,26 +19402,12 @@ "value_flow": { "doc_stack": "s - s' s''", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] }, + { "type": "simple", "name": "s3", "value_types": ["Slice"] } ] } } @@ -28623,21 +19429,11 @@ "value_flow": { "doc_stack": "s - s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -28659,26 +19455,12 @@ "value_flow": { "doc_stack": "s - D s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -28700,21 +19482,11 @@ "value_flow": { "doc_stack": "s - D", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] } ] } } @@ -28737,11 +19509,7 @@ "doc_stack": "s - D s' -1 or s 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Integer"] } ] }, "outputs": { @@ -28768,20 +19536,12 @@ "name": "D", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -28804,11 +19564,7 @@ "doc_stack": "s - D -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Integer"] } ] }, "outputs": { @@ -28817,10 +19573,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -28833,11 +19586,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -28860,21 +19609,9 @@ "doc_stack": "k D n - x -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -28883,27 +19620,16 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -28926,21 +19652,9 @@ "doc_stack": "k D n - c -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "k", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -28949,27 +19663,16 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -28992,21 +19695,9 @@ "doc_stack": "i D n - x -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Cell", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -29015,27 +19706,16 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -29058,21 +19738,9 @@ "doc_stack": "i D n - c -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Cell", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -29081,27 +19749,16 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -29124,21 +19781,9 @@ "doc_stack": "i D n - x -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Cell", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -29147,27 +19792,16 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -29190,21 +19824,9 @@ "doc_stack": "i D n - c -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Cell", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -29213,27 +19835,16 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -29256,35 +19867,15 @@ "doc_stack": "x k D n - D'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } } @@ -29307,35 +19898,15 @@ "doc_stack": "c k D n - D'", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } } @@ -29358,35 +19929,15 @@ "doc_stack": "x i D n - D'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } } @@ -29409,35 +19960,15 @@ "doc_stack": "c i D n - D'", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } } @@ -29460,35 +19991,15 @@ "doc_stack": "x i D n - D'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } } @@ -29511,35 +20022,15 @@ "doc_stack": "c i D n - D'", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } } @@ -29561,30 +20052,14 @@ "value_flow": { "doc_stack": "x k D n - D' y -1 or D' 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [ { "type": "conditional", @@ -29593,11 +20068,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] }, { @@ -29608,20 +20079,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -29644,26 +20107,10 @@ "doc_stack": "c k D n - D' c' -1 or D' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -29675,11 +20122,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] }, { @@ -29690,20 +20133,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } + { "type": "simple", "name": "c2", "value_types": ["Cell"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -29726,26 +20161,10 @@ "doc_stack": "x i D n - D' y -1 or D' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -29757,11 +20176,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] }, { @@ -29772,20 +20187,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -29808,26 +20215,10 @@ "doc_stack": "c i D n - D' c' -1 or D' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -29839,11 +20230,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] }, { @@ -29854,20 +20241,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } + { "type": "simple", "name": "c2", "value_types": ["Cell"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -29890,26 +20269,10 @@ "doc_stack": "x i D n - D' y -1 or D' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -29921,11 +20284,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] }, { @@ -29936,20 +20295,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -29972,26 +20323,10 @@ "doc_stack": "c i D n - D' c' -1 or D' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -30003,11 +20338,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] }, { @@ -30018,20 +20349,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } + { "type": "simple", "name": "c2", "value_types": ["Cell"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -30054,26 +20377,10 @@ "doc_stack": "x k D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -30095,20 +20402,12 @@ { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -30131,26 +20430,10 @@ "doc_stack": "c k D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -30172,20 +20455,12 @@ { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -30208,26 +20483,10 @@ "doc_stack": "x i D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -30249,20 +20508,12 @@ { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -30285,26 +20536,10 @@ "doc_stack": "c i D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -30326,20 +20561,12 @@ { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -30361,30 +20588,14 @@ "value_flow": { "doc_stack": "x i D n - D' -1 or D 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } - ] - }, - "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [ { "type": "conditional", @@ -30403,20 +20614,12 @@ { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -30439,26 +20642,10 @@ "doc_stack": "c i D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -30480,20 +20667,12 @@ { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -30516,26 +20695,10 @@ "doc_stack": "x k D n - D' y -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -30562,20 +20725,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -30598,26 +20753,10 @@ "doc_stack": "c k D n - D' c' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -30644,20 +20783,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } + { "type": "simple", "name": "c2", "value_types": ["Cell"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -30680,26 +20811,10 @@ "doc_stack": "x i D n - D' y -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -30726,20 +20841,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -30762,26 +20869,10 @@ "doc_stack": "c i D n - D' c' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -30808,20 +20899,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } + { "type": "simple", "name": "c2", "value_types": ["Cell"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -30844,26 +20927,10 @@ "doc_stack": "x i D n - D' y -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -30890,20 +20957,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -30926,26 +20985,10 @@ "doc_stack": "c i D n - D' c' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -30972,20 +21015,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } + { "type": "simple", "name": "c2", "value_types": ["Cell"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -31008,26 +21043,10 @@ "doc_stack": "x k D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -31039,30 +21058,18 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -31085,26 +21092,10 @@ "doc_stack": "c k D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -31116,30 +21107,18 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -31162,26 +21141,10 @@ "doc_stack": "x i D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -31193,30 +21156,18 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -31239,26 +21190,10 @@ "doc_stack": "c i D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -31270,30 +21205,18 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -31316,26 +21239,10 @@ "doc_stack": "x i D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -31347,30 +21254,18 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -31393,26 +21288,10 @@ "doc_stack": "c i D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -31424,30 +21303,18 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -31470,26 +21337,10 @@ "doc_stack": "x k D n - D' -1 or D y 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -31501,35 +21352,19 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -31552,26 +21387,10 @@ "doc_stack": "c k D n - D' -1 or D c' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -31583,35 +21402,19 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "c2", "value_types": ["Cell"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -31634,26 +21437,10 @@ "doc_stack": "x i D n - D' -1 or D y 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -31665,35 +21452,19 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -31716,26 +21487,10 @@ "doc_stack": "c i D n - D' -1 or D c' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -31747,35 +21502,19 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "c2", "value_types": ["Cell"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -31798,26 +21537,10 @@ "doc_stack": "x i D n - D' -1 or D y 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -31829,35 +21552,19 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -31880,26 +21587,10 @@ "doc_stack": "c i D n - D' -1 or D c' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -31911,35 +21602,19 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "c2", "value_types": ["Cell"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -31956,41 +21631,21 @@ "doc_opcode": "F441", "tlb": "#F441", "prefix": "F441", - "operands": [] - }, - "value_flow": { - "doc_stack": "b k D n - D'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + "operands": [] + }, + "value_flow": { + "doc_stack": "b k D n - D'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } } @@ -32013,35 +21668,15 @@ "doc_stack": "b i D n - D'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } } @@ -32064,35 +21699,15 @@ "doc_stack": "b i D n - D'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } } @@ -32115,26 +21730,10 @@ "doc_stack": "b k D n - D' y -1 or D' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -32146,11 +21745,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] }, { @@ -32161,20 +21756,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -32197,26 +21784,10 @@ "doc_stack": "b i D n - D' y -1 or D' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -32228,11 +21799,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] }, { @@ -32243,20 +21810,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -32279,26 +21838,10 @@ "doc_stack": "b i D n - D' y -1 or D' 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -32310,11 +21853,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] }, { @@ -32325,20 +21864,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -32361,26 +21892,10 @@ "doc_stack": "b k D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -32392,30 +21907,18 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -32438,26 +21941,10 @@ "doc_stack": "b i D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -32469,30 +21956,18 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -32515,26 +21990,10 @@ "doc_stack": "b i D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -32546,30 +22005,18 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -32592,26 +22039,10 @@ "doc_stack": "b k D n - D' y -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -32623,11 +22054,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] } ] }, { @@ -32638,20 +22065,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -32664,36 +22083,20 @@ "gas": "", "fift": "DICTIREPLACEGETB" }, - "bytecode": { - "doc_opcode": "F44E", - "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"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + "bytecode": { + "doc_opcode": "F44E", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -32705,11 +22108,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] } ] }, { @@ -32720,20 +22119,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -32756,26 +22147,10 @@ "doc_stack": "b i D n - D' y -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -32787,11 +22162,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] } ] }, { @@ -32802,20 +22173,12 @@ "name": "D2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -32838,26 +22201,10 @@ "doc_stack": "b k D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -32869,30 +22216,18 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -32915,26 +22250,10 @@ "doc_stack": "b i D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -32946,30 +22265,18 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -32992,26 +22299,10 @@ "doc_stack": "b i D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -33023,30 +22314,18 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -33069,26 +22348,10 @@ "doc_stack": "b k D n - D' -1 or D y 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -33100,35 +22363,19 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -33151,26 +22398,10 @@ "doc_stack": "b i D n - D' -1 or D y 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -33182,35 +22413,19 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -33233,26 +22448,10 @@ "doc_stack": "b i D n - D' -1 or D y 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -33264,35 +22463,19 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -33315,21 +22498,9 @@ "doc_stack": "k D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -33360,11 +22531,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -33383,25 +22550,13 @@ "prefix": "F45A", "operands": [] }, - "value_flow": { - "doc_stack": "i D n - D' ?", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + "value_flow": { + "doc_stack": "i D n - D' ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -33432,11 +22587,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -33459,21 +22610,9 @@ "doc_stack": "i D n - D' ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -33504,11 +22643,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -33531,21 +22666,9 @@ "doc_stack": "k D n - D' x -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -33572,20 +22695,12 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -33608,21 +22723,9 @@ "doc_stack": "k D n - D' c -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -33649,20 +22752,12 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -33685,21 +22780,9 @@ "doc_stack": "i D n - D' x -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -33726,20 +22809,12 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -33762,21 +22837,9 @@ "doc_stack": "i D n - D' c -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -33803,20 +22866,12 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -33839,21 +22894,9 @@ "doc_stack": "i D n - D' x -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -33880,20 +22923,12 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -33916,21 +22951,9 @@ "doc_stack": "i D n - D' c -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -33957,20 +22980,12 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -33993,30 +23008,14 @@ "doc_stack": "k D n - c^?", "inputs": { "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell", "Null"] - } + { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] } ] } } @@ -34039,30 +23038,14 @@ "doc_stack": "i D n - c^?", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell", "Null"] - } + { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] } ] } } @@ -34085,30 +23068,14 @@ "doc_stack": "i D n - c^?", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell", "Null"] - } + { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] } ] } } @@ -34131,26 +23098,10 @@ "doc_stack": "c^? k D n - D' ~c^?", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell", "Null"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -34160,11 +23111,7 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell", "Null"] - } + { "type": "simple", "name": "c2", "value_types": ["Cell", "Null"] } ] } } @@ -34187,26 +23134,10 @@ "doc_stack": "c^? i D n - D' ~c^?", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell", "Null"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -34216,11 +23147,7 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell", "Null"] - } + { "type": "simple", "name": "c2", "value_types": ["Cell", "Null"] } ] } } @@ -34243,26 +23170,10 @@ "doc_stack": "c^? i D n - D' ~c^?", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell", "Null"] - }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -34272,11 +23183,7 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "c2", - "value_types": ["Cell", "Null"] - } + { "type": "simple", "name": "c2", "value_types": ["Cell", "Null"] } ] } } @@ -34299,26 +23206,10 @@ "doc_stack": "x k D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -34349,11 +23240,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -34369,33 +23256,17 @@ "bytecode": { "doc_opcode": "F471", "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"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + "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"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -34426,11 +23297,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -34453,26 +23320,10 @@ "doc_stack": "x k D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -34503,11 +23354,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -34530,21 +23377,9 @@ "doc_stack": "k D n - D' -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -34575,11 +23410,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -34602,21 +23433,9 @@ "doc_stack": "k D n - x' k' -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -34625,10 +23444,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -34637,20 +23453,12 @@ "name": "x2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "k2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "k2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -34673,21 +23481,9 @@ "doc_stack": "k D n - x' k' -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -34696,10 +23492,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -34708,20 +23501,12 @@ "name": "x2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "k2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "k2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -34744,21 +23529,9 @@ "doc_stack": "k D n - x' k' -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -34767,10 +23540,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -34779,20 +23549,12 @@ "name": "x2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "k2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "k2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -34815,21 +23577,9 @@ "doc_stack": "k D n - x' k' -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -34838,10 +23588,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -34850,20 +23597,12 @@ "name": "x2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "k2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "k2", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -34886,21 +23625,9 @@ "doc_stack": "i D n - x' i' -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -34909,10 +23636,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -34930,11 +23654,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -34957,21 +23677,9 @@ "doc_stack": "i D n - x' i' -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -34980,10 +23688,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -35001,11 +23706,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -35028,21 +23729,9 @@ "doc_stack": "i D n - x' i' -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -35051,10 +23740,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -35072,11 +23758,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -35099,21 +23781,9 @@ "doc_stack": "i D n - x' i' -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -35122,10 +23792,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -35143,11 +23810,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -35170,21 +23833,9 @@ "doc_stack": "i D n - x' i' -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -35193,10 +23844,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -35214,11 +23862,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -35241,21 +23885,9 @@ "doc_stack": "i D n - x' i' -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -35264,10 +23896,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -35285,11 +23914,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -35312,21 +23937,9 @@ "doc_stack": "i D n - x' i' -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -35335,10 +23948,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -35356,11 +23966,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -35383,21 +23989,9 @@ "doc_stack": "i D n - x' i' -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -35406,10 +24000,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -35427,11 +24018,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -35454,16 +24041,8 @@ "doc_stack": "D n - x k -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -35472,32 +24051,17 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -35520,16 +24084,8 @@ "doc_stack": "D n - c k -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -35538,32 +24094,17 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -35586,16 +24127,8 @@ "doc_stack": "D n - x i -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -35604,18 +24137,11 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, { "type": "simple", "name": "i", @@ -35625,11 +24151,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -35652,16 +24174,8 @@ "doc_stack": "D n - c i -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -35670,18 +24184,11 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, + { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "i", @@ -35691,11 +24198,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -35718,16 +24221,8 @@ "doc_stack": "D n - x i -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -35736,18 +24231,11 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, { "type": "simple", "name": "i", @@ -35757,11 +24245,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -35784,16 +24268,8 @@ "doc_stack": "D n - c i -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -35802,18 +24278,11 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, + { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "i", @@ -35823,11 +24292,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -35850,16 +24315,8 @@ "doc_stack": "D n - x k -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -35868,32 +24325,17 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -35916,16 +24358,8 @@ "doc_stack": "D n - c k -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -35934,32 +24368,17 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -35982,16 +24401,8 @@ "doc_stack": "D n - x i -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -36000,18 +24411,11 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, { "type": "simple", "name": "i", @@ -36021,11 +24425,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -36048,16 +24448,8 @@ "doc_stack": "D n - c i -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -36066,18 +24458,11 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, + { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "i", @@ -36087,11 +24472,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -36114,16 +24495,8 @@ "doc_stack": "D n - x i -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -36132,18 +24505,11 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, { "type": "simple", "name": "i", @@ -36153,11 +24519,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -36180,16 +24542,8 @@ "doc_stack": "D n - c i -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -36198,18 +24552,11 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, + { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "i", @@ -36219,11 +24566,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -36246,16 +24589,8 @@ "doc_stack": "D n - D' x k -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -36279,28 +24614,16 @@ "stack": [ { "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -36323,16 +24646,8 @@ "doc_stack": "D n - D' c k -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -36359,25 +24674,13 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -36400,16 +24703,8 @@ "doc_stack": "D n - D' x i -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -36436,11 +24731,7 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, { "type": "simple", "name": "i", @@ -36450,11 +24741,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -36477,16 +24764,8 @@ "doc_stack": "D n - D' c i -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -36513,11 +24792,7 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, + { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "i", @@ -36527,11 +24802,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -36554,16 +24825,8 @@ "doc_stack": "D n - D' x i -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -36590,11 +24853,7 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, { "type": "simple", "name": "i", @@ -36604,11 +24863,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -36631,16 +24886,8 @@ "doc_stack": "D n - D' c i -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -36667,11 +24914,7 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, + { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "i", @@ -36681,11 +24924,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -36708,16 +24947,8 @@ "doc_stack": "D n - D' x k -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -36744,25 +24975,13 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -36785,16 +25004,8 @@ "doc_stack": "D n - D' c k -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -36821,25 +25032,13 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -36862,16 +25061,8 @@ "doc_stack": "D n - D' x i -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -36898,11 +25089,7 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, { "type": "simple", "name": "i", @@ -36912,11 +25099,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -36939,16 +25122,8 @@ "doc_stack": "D n - D' c i -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -36975,11 +25150,7 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, + { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "i", @@ -36989,11 +25160,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -37016,16 +25183,8 @@ "doc_stack": "D n - D' x i -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -37052,11 +25211,7 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, { "type": "simple", "name": "i", @@ -37066,11 +25221,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -37093,16 +25244,8 @@ "doc_stack": "D n - D' c i -1 or D 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -37129,11 +25272,7 @@ "name": "D2", "value_types": ["Slice", "Null"] }, - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, + { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "i", @@ -37143,11 +25282,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -37170,35 +25305,14 @@ "doc_stack": "i D n - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "x" - } - ] - } + "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }] } }, { "mnemonic": "DICTUGETJMP", @@ -37218,35 +25332,14 @@ "doc_stack": "i D n - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "x" - } - ] - } + "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }] } }, { "mnemonic": "DICTIGETEXEC", @@ -37266,26 +25359,12 @@ "doc_stack": "i D n - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -37295,12 +25374,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -37325,26 +25399,12 @@ "doc_stack": "i D n - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } }, "control_flow": { "branches": [ @@ -37353,13 +25413,8 @@ "var_name": "x", "save": { "c0": { - "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -37379,37 +25434,17 @@ "tlb": "#F4A6_ d:^Cell n:uint10", "prefix": "F4A6_", "operands": [ - { - "name": "d", - "loader": "ref", - "loader_args": {} - }, - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 10 - } - } + { "name": "d", "loader": "ref", "loader_args": {} }, + { "name": "n", "loader": "uint", "loader_args": { "size": 10 } } ] }, "value_flow": { "doc_stack": " - D n", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] } } @@ -37432,21 +25467,9 @@ "doc_stack": "s D n - s' x s'' -1 or s 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -37458,11 +25481,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, { @@ -37473,25 +25492,13 @@ "name": "s2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "s3", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -37514,40 +25521,16 @@ "doc_stack": "s D n - s' x s''", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "s3", "value_types": ["Slice"] } ] } } @@ -37566,17 +25549,8 @@ "prefix": "F4AA", "operands": [] }, - "value_flow": { - "doc_stack": "s D n - s' s'' or s" - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "x" - } - ] - } + "value_flow": { "doc_stack": "s D n - s' s'' or s" }, + "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }] } }, { "mnemonic": "PFXDICTGETEXEC", @@ -37596,35 +25570,15 @@ "doc_stack": "s D n - s' s''", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] }, + { "type": "simple", "name": "s3", "value_types": ["Slice"] } ] } }, @@ -37636,12 +25590,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -37661,31 +25610,12 @@ "tlb": "#F4AE_ d:^Cell n:uint10", "prefix": "F4AE_", "operands": [ - { - "name": "d", - "loader": "ref", - "loader_args": {} - }, - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 10 - } - } + { "name": "d", "loader": "ref", "loader_args": {} }, + { "name": "n", "loader": "uint", "loader_args": { "size": 10 } } ] }, - "value_flow": { - "doc_stack": "s - s' s'' or s" - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "x" - } - ] - } + "value_flow": { "doc_stack": "s - s' s'' or s" }, + "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }] } }, { "mnemonic": "DICTIGETJMPZ", @@ -37701,17 +25631,8 @@ "prefix": "F4BC", "operands": [] }, - "value_flow": { - "doc_stack": "i D n - i or nothing" - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "x" - } - ] - } + "value_flow": { "doc_stack": "i D n - i or nothing" }, + "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }] } }, { "mnemonic": "DICTUGETJMPZ", @@ -37727,17 +25648,8 @@ "prefix": "F4BD", "operands": [] }, - "value_flow": { - "doc_stack": "i D n - i or nothing" - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "x" - } - ] - } + "value_flow": { "doc_stack": "i D n - i or nothing" }, + "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }] } }, { "mnemonic": "DICTIGETEXECZ", @@ -37753,9 +25665,7 @@ "prefix": "F4BE", "operands": [] }, - "value_flow": { - "doc_stack": "i D n - i or nothing" - }, + "value_flow": { "doc_stack": "i D n - i or nothing" }, "control_flow": { "branches": [ { @@ -37764,12 +25674,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -37790,9 +25695,7 @@ "prefix": "F4BF", "operands": [] }, - "value_flow": { - "doc_stack": "i D n - i or nothing" - }, + "value_flow": { "doc_stack": "i D n - i or nothing" }, "control_flow": { "branches": [ { @@ -37801,12 +25704,7 @@ "save": { "c0": { "type": "cc", - "save": { - "c0": { - "type": "register", - "index": 0 - } - } + "save": { "c0": { "type": "register", "index": 0 } } } } } @@ -37831,35 +25729,15 @@ "doc_stack": "k l D n - D'", "inputs": { "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } ] } } @@ -37882,35 +25760,15 @@ "doc_stack": "x l D n - D'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } ] } } @@ -37933,35 +25791,15 @@ "doc_stack": "x l D n - D'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } ] } } @@ -37984,35 +25822,15 @@ "doc_stack": "k l D n - D'", "inputs": { "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } ] } } @@ -38035,35 +25853,15 @@ "doc_stack": "x l D n - D'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } ] } } @@ -38086,35 +25884,15 @@ "doc_stack": "x l D n - D'", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "l", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } + { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } ] } } @@ -38134,13 +25912,9 @@ "operands": [] }, "value_flow": { - "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -38161,16 +25935,10 @@ "doc_stack": "g - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "g", - "value_types": ["Integer"] - } + { "type": "simple", "name": "g", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -38189,16 +25957,10 @@ }, "value_flow": { "doc_stack": "- g_c", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "g_c", - "value_types": ["Integer"] - } + { "type": "simple", "name": "g_c", "value_types": ["Integer"] } ] } } @@ -38219,12 +25981,8 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -38243,16 +26001,10 @@ }, "value_flow": { "doc_stack": "- x", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -38275,20 +26027,12 @@ "doc_stack": "y - z", "inputs": { "stack": [ - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] } } @@ -38311,16 +26055,10 @@ "doc_stack": "x - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -38341,16 +26079,10 @@ "doc_stack": "x - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -38366,27 +26098,15 @@ "tlb": "#F82 i:uint4", "prefix": "F82", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": " - x", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -38407,21 +26127,11 @@ }, "value_flow": { "doc_stack": " - D 32", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice", "Null"] - }, - { - "type": "const", - "value": 32, - "value_type": "Integer" - } + { "type": "simple", "name": "x", "value_types": ["Slice", "Null"] }, + { "type": "const", "value": 32, "value_type": "Integer" } ] } } @@ -38444,11 +26154,7 @@ "doc_stack": "i - c -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] } ] }, "outputs": { @@ -38457,27 +26163,16 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -38500,20 +26195,12 @@ "doc_stack": "i - c^?", "inputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell", "Null"] - } + { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] } ] } } @@ -38534,17 +26221,9 @@ }, "value_flow": { "doc_stack": "- t", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] } } }, @@ -38564,17 +26243,9 @@ }, "value_flow": { "doc_stack": "- t", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] } } }, @@ -38594,16 +26265,10 @@ }, "value_flow": { "doc_stack": "- i", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } + { "type": "simple", "name": "i", "value_types": ["Integer"] } ] } } @@ -38626,21 +26291,10 @@ "doc_stack": "k - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "k", - "value_types": ["Integer"] - } + { "type": "simple", "name": "k", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } } }, { @@ -38655,34 +26309,15 @@ "doc_opcode": "F85_k", "tlb": "#F85_ k:(## 5) {1 <= k}", "prefix": "F85_", - "operands_range_check": { - "length": 5, - "from": 1, - "to": 31 - }, + "operands_range_check": { "length": 5, "from": 1, "to": 31 }, "operands": [ - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 5 - } - } + { "name": "k", "loader": "uint", "loader_args": { "size": 5 } } ] }, "value_flow": { "doc_stack": " - x", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } } }, { @@ -38703,20 +26338,11 @@ "doc_stack": "x k - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "x" - }, - { - "type": "simple", - "name": "k", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "k", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -38731,34 +26357,15 @@ "doc_opcode": "F87_k", "tlb": "#F87_ k:(## 5) {1 <= k}", "prefix": "F87_", - "operands_range_check": { - "length": 5, - "from": 1, - "to": 31 - }, + "operands_range_check": { "length": 5, "from": 1, "to": 31 }, "operands": [ - { - "name": "k", - "loader": "uint", - "loader_args": { - "size": 5 - } - } + { "name": "k", "loader": "uint", "loader_args": { "size": 5 } } ] }, "value_flow": { "doc_stack": "x - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x" - } - ] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, + "outputs": { "stack": [] } } }, { @@ -38778,21 +26385,11 @@ "value_flow": { "doc_stack": "c - x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -38814,21 +26411,11 @@ "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -38850,21 +26437,11 @@ "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -38899,20 +26476,12 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "h", - "value_types": ["Integer"] - } + { "type": "simple", "name": "h", "value_types": ["Integer"] } ] } } @@ -38947,25 +26516,13 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "h1", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "h2", - "value_types": ["Integer"] - } + { "type": "simple", "name": "h1", "value_types": ["Integer"] }, + { "type": "simple", "name": "h2", "value_types": ["Integer"] } ] } } @@ -39000,25 +26557,13 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "h1", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "h2", - "value_types": ["Integer"] - } + { "type": "simple", "name": "h1", "value_types": ["Integer"] }, + { "type": "simple", "name": "h2", "value_types": ["Integer"] } ] } } @@ -39053,20 +26598,12 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "h", - "value_types": ["Integer"] - } + { "type": "simple", "name": "h", "value_types": ["Integer"] } ] } } @@ -39101,25 +26638,13 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "h1", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "h2", - "value_types": ["Integer"] - } + { "type": "simple", "name": "h1", "value_types": ["Integer"] }, + { "type": "simple", "name": "h2", "value_types": ["Integer"] } ] } } @@ -39154,20 +26679,12 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "h", - "value_types": ["Integer"] - } + { "type": "simple", "name": "h", "value_types": ["Integer"] } ] } } @@ -39202,25 +26719,13 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "h1", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "h2", - "value_types": ["Integer"] - } + { "type": "simple", "name": "h1", "value_types": ["Integer"] }, + { "type": "simple", "name": "h2", "value_types": ["Integer"] } ] } } @@ -39255,25 +26760,13 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "h1", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "h2", - "value_types": ["Integer"] - } + { "type": "simple", "name": "h1", "value_types": ["Integer"] }, + { "type": "simple", "name": "h2", "value_types": ["Integer"] } ] } } @@ -39308,20 +26801,12 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "h", - "value_types": ["Integer"] - } + { "type": "simple", "name": "h", "value_types": ["Integer"] } ] } } @@ -39356,25 +26841,13 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "h1", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "h2", - "value_types": ["Integer"] - } + { "type": "simple", "name": "h1", "value_types": ["Integer"] }, + { "type": "simple", "name": "h2", "value_types": ["Integer"] } ] } } @@ -39397,11 +26870,7 @@ "doc_stack": "b s_1 ... s_n n - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "array", "name": "input_parts", @@ -39412,22 +26881,14 @@ "name": "s", "value_types": ["Slice", "Builder"] } - ] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -39450,11 +26911,7 @@ "doc_stack": "b s_1 ... s_n n - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "array", "name": "input_parts", @@ -39467,20 +26924,12 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -39503,11 +26952,7 @@ "doc_stack": "b s_1 ... s_n n - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "array", "name": "input_parts", @@ -39520,20 +26965,12 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -39556,11 +26993,7 @@ "doc_stack": "b s_1 ... s_n n - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "array", "name": "input_parts", @@ -39573,20 +27006,12 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -39609,11 +27034,7 @@ "doc_stack": "b s_1 ... s_n n - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "array", "name": "input_parts", @@ -39626,20 +27047,12 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -39662,11 +27075,7 @@ "doc_stack": "b s_1 ... s_n n - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "array", "name": "input_parts", @@ -39679,20 +27088,12 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -39715,11 +27116,7 @@ "doc_stack": "b s_n ... s_1 n - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "array", "name": "input_parts", @@ -39732,20 +27129,12 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -39768,11 +27157,7 @@ "doc_stack": "b s_n ... s_1 n - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "array", "name": "input_parts", @@ -39785,20 +27170,12 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -39821,11 +27198,7 @@ "doc_stack": "b s_n ... s_1 n - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "array", "name": "input_parts", @@ -39838,20 +27211,12 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -39874,11 +27239,7 @@ "doc_stack": "b s_n ... s_1 n - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "array", "name": "input_parts", @@ -39891,20 +27252,12 @@ } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -39927,30 +27280,14 @@ "doc_stack": "h s k - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "h", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Integer"] - } + { "type": "simple", "name": "h", "value_types": ["Integer"] }, + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -39973,30 +27310,14 @@ "doc_stack": "d s k - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "d", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Integer"] - } + { "type": "simple", "name": "d", "value_types": ["Slice"] }, + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -40019,26 +27340,10 @@ "doc_stack": "hash v r s - 0 or h x1 x2 -1", "inputs": { "stack": [ - { - "type": "simple", - "name": "hash", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "v", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "r", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Integer"] - } + { "type": "simple", "name": "hash", "value_types": ["Integer"] }, + { "type": "simple", "name": "v", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] }, + { "type": "simple", "name": "s", "value_types": ["Integer"] } ] }, "outputs": { @@ -40047,10 +27352,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -40073,11 +27375,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -40100,30 +27398,14 @@ "doc_stack": "h sig k - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "d", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "sig", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } + { "type": "simple", "name": "d", "value_types": ["Slice"] }, + { "type": "simple", "name": "sig", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -40146,30 +27428,14 @@ "doc_stack": "d sig k - ?", "inputs": { "stack": [ - { - "type": "simple", - "name": "d", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "sig", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "k", - "value_types": ["Slice"] - } + { "type": "simple", "name": "d", "value_types": ["Slice"] }, + { "type": "simple", "name": "sig", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -40192,25 +27458,13 @@ "doc_stack": "h1 h2 - x", "inputs": { "stack": [ - { - "type": "simple", - "name": "h1", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "h2", - "value_types": ["Integer"] - } + { "type": "simple", "name": "h1", "value_types": ["Integer"] }, + { "type": "simple", "name": "h2", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] } } @@ -40233,16 +27487,10 @@ "doc_stack": "x -", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -40263,25 +27511,13 @@ "doc_stack": "x y - x+y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -40304,25 +27540,13 @@ "doc_stack": "x y - x-y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -40345,25 +27569,13 @@ "doc_stack": "x n - x*n", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -40386,20 +27598,12 @@ "doc_stack": "n - g*n", "inputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -40420,16 +27624,10 @@ }, "value_flow": { "doc_stack": "- l", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -40452,20 +27650,12 @@ "doc_stack": "x - 0 or -1", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -40488,16 +27678,8 @@ "doc_stack": "x y - 0 or x+y -1", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { @@ -40506,10 +27688,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -40522,11 +27701,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -40545,20 +27720,12 @@ "prefix": "B7F923", "operands": [] }, - "value_flow": { - "doc_stack": "x y - 0 or x-y -1", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + "value_flow": { + "doc_stack": "x y - 0 or x-y -1", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, "outputs": { @@ -40567,10 +27734,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -40583,11 +27747,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -40610,16 +27770,8 @@ "doc_stack": "x n - 0 or x*n -1", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -40628,10 +27780,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -40644,11 +27793,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -40671,11 +27816,7 @@ "doc_stack": "n - 0 or g*n -1", "inputs": { "stack": [ - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -40684,10 +27825,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -40700,11 +27838,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -40727,30 +27861,14 @@ "doc_stack": "pk msg sgn - bool", "inputs": { "stack": [ - { - "type": "simple", - "name": "pk", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "msg", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "sgn", - "value_types": ["Slice"] - } + { "type": "simple", "name": "pk", "value_types": ["Slice"] }, + { "type": "simple", "name": "msg", "value_types": ["Slice"] }, + { "type": "simple", "name": "sgn", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -40778,27 +27896,15 @@ "name": "signatures", "length_var": "n", "array_entry": [ - { - "type": "simple", - "name": "sig", - "value_types": ["Slice"] - } + { "type": "simple", "name": "sig", "value_types": ["Slice"] } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } + { "type": "simple", "name": "result", "value_types": ["Slice"] } ] } } @@ -40826,37 +27932,17 @@ "name": "public_keys", "length_var": "n", "array_entry": [ - { - "type": "simple", - "name": "pk", - "value_types": ["Slice"] - } + { "type": "simple", "name": "pk", "value_types": ["Slice"] } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "msg", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "sig", - "value_types": ["Slice"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "msg", "value_types": ["Slice"] }, + { "type": "simple", "name": "sig", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -40884,37 +27970,17 @@ "name": "key_message_pairs", "length_var": "n", "array_entry": [ - { - "type": "simple", - "name": "pk", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "msg", - "value_types": ["Slice"] - } + { "type": "simple", "name": "pk", "value_types": ["Slice"] }, + { "type": "simple", "name": "msg", "value_types": ["Slice"] } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "sgn", - "value_types": ["Slice"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "sgn", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -40937,25 +28003,13 @@ "doc_stack": "x y - x+y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } + { "type": "simple", "name": "result", "value_types": ["Slice"] } ] } } @@ -40978,25 +28032,13 @@ "doc_stack": "x y - x-y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } + { "type": "simple", "name": "result", "value_types": ["Slice"] } ] } } @@ -41018,21 +28060,11 @@ "value_flow": { "doc_stack": "x - -x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } + { "type": "simple", "name": "result", "value_types": ["Slice"] } ] } } @@ -41055,25 +28087,13 @@ "doc_stack": "x s - x*s", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "s", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } + { "type": "simple", "name": "result", "value_types": ["Slice"] } ] } } @@ -41101,32 +28121,16 @@ "name": "components", "length_var": "n", "array_entry": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "s", "value_types": ["Integer"] } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } + { "type": "simple", "name": "result", "value_types": ["Slice"] } ] } } @@ -41147,16 +28151,10 @@ }, "value_flow": { "doc_stack": "- zero", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "zero", - "value_types": ["Slice"] - } + { "type": "simple", "name": "zero", "value_types": ["Slice"] } ] } } @@ -41178,22 +28176,10 @@ "value_flow": { "doc_stack": "f - x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "f", "value_types": ["Slice"] }] }, "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] } } }, @@ -41214,21 +28200,11 @@ "value_flow": { "doc_stack": "x - bool", "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -41250,21 +28226,11 @@ "value_flow": { "doc_stack": "x - bool", "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -41287,25 +28253,13 @@ "doc_stack": "x y - x+y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } + { "type": "simple", "name": "result", "value_types": ["Slice"] } ] } } @@ -41328,25 +28282,13 @@ "doc_stack": "x y - x-y", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } + { "type": "simple", "name": "result", "value_types": ["Slice"] } ] } } @@ -41368,21 +28310,11 @@ "value_flow": { "doc_stack": "x - -x", "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } + { "type": "simple", "name": "result", "value_types": ["Slice"] } ] } } @@ -41405,25 +28337,13 @@ "doc_stack": "x s - x*s", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "s", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } + { "type": "simple", "name": "result", "value_types": ["Slice"] } ] } } @@ -41451,32 +28371,16 @@ "name": "components", "length_var": "n", "array_entry": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "s", "value_types": ["Integer"] } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Slice"] - } + { "type": "simple", "name": "result", "value_types": ["Slice"] } ] } } @@ -41497,16 +28401,10 @@ }, "value_flow": { "doc_stack": "- zero", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "zero", - "value_types": ["Slice"] - } + { "type": "simple", "name": "zero", "value_types": ["Slice"] } ] } } @@ -41526,24 +28424,12 @@ "operands": [] }, "value_flow": { - "doc_stack": "f - x", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "f", - "value_types": ["Slice"] - } - ] + "doc_stack": "f - x", + "inputs": { + "stack": [{ "type": "simple", "name": "f", "value_types": ["Slice"] }] }, "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] } } }, @@ -41564,21 +28450,11 @@ "value_flow": { "doc_stack": "x - bool", "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -41600,21 +28476,11 @@ "value_flow": { "doc_stack": "x - bool", "inputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -41642,32 +28508,16 @@ "name": "components", "length_var": "n", "array_entry": [ - { - "type": "simple", - "name": "x", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } ] }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -41688,16 +28538,10 @@ }, "value_flow": { "doc_stack": "- r", - "inputs": { - "stack": [] - }, + "inputs": { "stack": [] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } + { "type": "simple", "name": "result", "value_types": ["Integer"] } ] } } @@ -41720,16 +28564,8 @@ "doc_stack": "c n - x y z -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -41738,10 +28574,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -41764,11 +28597,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -41791,35 +28620,15 @@ "doc_stack": "c n - x y z", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] } } @@ -41842,16 +28651,8 @@ "doc_stack": "s n - x y z -1 or 0", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { @@ -41860,10 +28661,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -41886,11 +28684,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -41913,35 +28707,15 @@ "doc_stack": "s n - x y z", "inputs": { "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "n", - "value_types": ["Integer"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } ] } } @@ -41963,26 +28737,12 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -42004,26 +28764,12 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -42046,25 +28792,13 @@ "doc_stack": "b x - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -42087,25 +28821,13 @@ "doc_stack": "b x - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -42127,26 +28849,12 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -42168,26 +28876,12 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -42210,25 +28904,13 @@ "doc_stack": "b x - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -42251,25 +28933,13 @@ "doc_stack": "b x - b'", "inputs": { "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } + { "type": "simple", "name": "b2", "value_types": ["Builder"] } ] } } @@ -42291,26 +28961,12 @@ "value_flow": { "doc_stack": "s - s' s''", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s2", "value_types": ["Slice"] }, + { "type": "simple", "name": "s3", "value_types": ["Slice"] } ] } } @@ -42332,13 +28988,7 @@ "value_flow": { "doc_stack": "s - s' s'' -1 or s 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -42349,11 +28999,7 @@ { "value": 0, "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s", "value_types": ["Slice"] } ] }, { @@ -42364,20 +29010,12 @@ "name": "s2", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s3", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -42399,22 +29037,10 @@ "value_flow": { "doc_stack": "s - t", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { - "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } - ] + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] } } }, @@ -42435,13 +29061,7 @@ "value_flow": { "doc_stack": "s - t -1 or 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -42449,27 +29069,16 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ - { - "type": "simple", - "name": "t", - "value_types": ["Tuple"] - } + { "type": "simple", "name": "t", "value_types": ["Tuple"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -42490,27 +29099,13 @@ }, "value_flow": { "doc_stack": "s - x y", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] } } @@ -42532,13 +29127,7 @@ "value_flow": { "doc_stack": "s - x y -1 or 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -42546,10 +29135,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -42567,11 +29153,7 @@ } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -42593,26 +29175,12 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } ] } } @@ -42634,13 +29202,7 @@ "value_flow": { "doc_stack": "s - x s' -1 or 0", "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] }, "outputs": { "stack": [ @@ -42648,10 +29210,7 @@ "type": "conditional", "name": "status", "match": [ - { - "value": 0, - "stack": [] - }, + { "value": 0, "stack": [] }, { "value": -1, "stack": [ @@ -42660,20 +29219,12 @@ "name": "x", "value_types": ["Integer"] }, - { - "type": "simple", - "name": "s'", - "value_types": ["Slice"] - } + { "type": "simple", "name": "s'", "value_types": ["Slice"] } ] } ] }, - { - "type": "simple", - "name": "status", - "value_types": ["Integer"] - } + { "type": "simple", "name": "status", "value_types": ["Integer"] } ] } } @@ -42696,21 +29247,11 @@ "doc_stack": "c x - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -42731,21 +29272,11 @@ "doc_stack": "x y - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -42766,26 +29297,12 @@ "doc_stack": "x D y - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "D", - "value_types": ["Cell", "Null"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -42805,17 +29322,9 @@ "value_flow": { "doc_stack": "c - ", "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - } - ] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -42836,21 +29345,11 @@ "doc_stack": "c x - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -42871,21 +29370,11 @@ "doc_stack": "h x - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "h", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "h", "value_types": ["Integer"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } }, { @@ -42906,25 +29395,13 @@ "doc_stack": "c x - fee", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Cell"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } ] }, "outputs": { "stack": [ - { - "type": "simple", - "name": "fee", - "value_types": ["Integer"] - } + { "type": "simple", "name": "fee", "value_types": ["Integer"] } ] } } @@ -42937,19 +29414,11 @@ "gas": "26", "fift": "DUMPSTK" }, - "bytecode": { - "doc_opcode": "FE00", - "tlb": "#FE00", - "prefix": "FE00" - }, + "bytecode": { "doc_opcode": "FE00", "tlb": "#FE00", "prefix": "FE00" }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -42964,29 +29433,15 @@ "doc_opcode": "FEnn", "tlb": "#FE nn:(#<= 239)", "prefix": "FE", - "operands_range_check": { - "length": 8, - "from": 1, - "to": 19 - }, + "operands_range_check": { "length": 8, "from": 1, "to": 19 }, "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -42997,19 +29452,11 @@ "gas": "26", "fift": "STRDUMP" }, - "bytecode": { - "doc_opcode": "FE14", - "tlb": "#FE14", - "prefix": "FE14" - }, + "bytecode": { "doc_opcode": "FE14", "tlb": "#FE14", "prefix": "FE14" }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -43024,29 +29471,15 @@ "doc_opcode": "FEnn", "tlb": "#FE nn:(#<= 239)", "prefix": "FE", - "operands_range_check": { - "length": 8, - "from": 21, - "to": 31 - }, + "operands_range_check": { "length": 8, "from": 21, "to": 31 }, "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -43062,23 +29495,13 @@ "tlb": "#FE2 i:uint4", "prefix": "FE2", "operands": [ - { - "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -43093,29 +29516,15 @@ "doc_opcode": "FEnn", "tlb": "#FE nn:(#<= 239)", "prefix": "FE", - "operands_range_check": { - "length": 8, - "from": 48, - "to": 239 - }, + "operands_range_check": { "length": 8, "from": 48, "to": 239 }, "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -43134,21 +29543,14 @@ { "name": "s", "loader": "subslice", - "loader_args": { - "bits_length_var_size": 4, - "bits_padding": 8 - } + "loader_args": { "bits_length_var_size": 4, "bits_padding": 8 } } ] }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -43163,29 +29565,15 @@ "doc_opcode": "FFnn", "tlb": "#FF nn:(#<= 239)", "prefix": "FF", - "operands_range_check": { - "length": 8, - "from": 0, - "to": 239 - }, + "operands_range_check": { "length": 8, "from": 0, "to": 239 }, "operands": [ - { - "name": "n", - "loader": "uint", - "loader_args": { - "size": 8 - } - } + { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } ] }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -43200,29 +29588,15 @@ "doc_opcode": "FFFz", "tlb": "#FFF z:(## 4) {1 <= z}", "prefix": "FFF", - "operands_range_check": { - "length": 4, - "from": 1, - "to": 15 - }, + "operands_range_check": { "length": 4, "from": 1, "to": 15 }, "operands": [ - { - "name": "z", - "loader": "uint", - "loader_args": { - "size": 4 - } - } + { "name": "z", "loader": "uint", "loader_args": { "size": 4 } } ] }, "value_flow": { "doc_stack": "-", - "inputs": { - "stack": [] - }, - "outputs": { - "stack": [] - } + "inputs": { "stack": [] }, + "outputs": { "stack": [] } } }, { @@ -43243,16 +29617,10 @@ "doc_stack": "c - ", "inputs": { "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Integer"] - } + { "type": "simple", "name": "c", "value_types": ["Integer"] } ] }, - "outputs": { - "stack": [] - } + "outputs": { "stack": [] } } } ], @@ -43263,9 +29631,7 @@ "doc_fift": "SWAP", "doc_stack": "x y - y x", "description": "Same as `s1 XCHG0`.", - "operands": { - "i": 1 - } + "operands": { "i": 1 } }, { "mnemonic": "DUP", @@ -43273,9 +29639,7 @@ "doc_fift": "DUP", "doc_stack": "x - x x", "description": "Same as `s0 PUSH`.", - "operands": { - "i": 0 - } + "operands": { "i": 0 } }, { "mnemonic": "OVER", @@ -43283,9 +29647,7 @@ "doc_fift": "OVER", "doc_stack": "x y - x y x", "description": "Same as `s1 PUSH`.", - "operands": { - "i": 1 - } + "operands": { "i": 1 } }, { "mnemonic": "DROP", @@ -43293,9 +29655,7 @@ "doc_fift": "DROP", "doc_stack": "x -", "description": "Same as `s0 POP`, discards the top-of-stack value.", - "operands": { - "i": 0 - } + "operands": { "i": 0 } }, { "mnemonic": "NIP", @@ -43303,9 +29663,7 @@ "doc_fift": "NIP", "doc_stack": "x y - y", "description": "Same as `s1 POP`.", - "operands": { - "i": 1 - } + "operands": { "i": 1 } }, { "mnemonic": "ROT2", @@ -43313,10 +29671,7 @@ "doc_fift": "ROT2\n2ROT", "doc_stack": "a b c d e f - c d e f a b", "description": "Rotates the three topmost pairs of stack entries.", - "operands": { - "i": 1, - "j": 3 - } + "operands": { "i": 1, "j": 3 } }, { "mnemonic": "ROLL", @@ -43324,9 +29679,7 @@ "doc_fift": "[i+1] ROLL", "doc_stack": "", "description": "Rotates the top `i+1` stack entries.\nEquivalent to `1 [i+1] BLKSWAP`.", - "operands": { - "i": 0 - } + "operands": { "i": 0 } }, { "mnemonic": "ROLLREV", @@ -43342,9 +29695,7 @@ "doc_fift": "NIL", "doc_stack": "- t", "description": "Pushes the only _Tuple_ `t=()` of length zero.", - "operands": { - "n": 0 - } + "operands": { "n": 0 } }, { "mnemonic": "SINGLE", @@ -43352,9 +29703,7 @@ "doc_fift": "SINGLE", "doc_stack": "x - t", "description": "Creates a singleton `t:=(x)`, i.e., a _Tuple_ of length one.", - "operands": { - "n": 1 - } + "operands": { "n": 1 } }, { "mnemonic": "PAIR", @@ -43362,9 +29711,7 @@ "doc_fift": "PAIR\nCONS", "doc_stack": "x y - t", "description": "Creates pair `t:=(x,y)`.", - "operands": { - "n": 2 - } + "operands": { "n": 2 } }, { "mnemonic": "TRIPLE", @@ -43372,9 +29719,7 @@ "doc_fift": "TRIPLE", "doc_stack": "x y z - t", "description": "Creates triple `t:=(x,y,z)`.", - "operands": { - "n": 3 - } + "operands": { "n": 3 } }, { "mnemonic": "FIRST", @@ -43382,9 +29727,7 @@ "doc_fift": "FIRST\nCAR", "doc_stack": "t - x", "description": "Returns the first element of a _Tuple_.", - "operands": { - "k": 0 - } + "operands": { "k": 0 } }, { "mnemonic": "SECOND", @@ -43392,9 +29735,7 @@ "doc_fift": "SECOND\nCDR", "doc_stack": "t - y", "description": "Returns the second element of a _Tuple_.", - "operands": { - "k": 1 - } + "operands": { "k": 1 } }, { "mnemonic": "THIRD", @@ -43402,9 +29743,7 @@ "doc_fift": "THIRD", "doc_stack": "t - z", "description": "Returns the third element of a _Tuple_.", - "operands": { - "k": 2 - } + "operands": { "k": 2 } }, { "mnemonic": "UNSINGLE", @@ -43412,9 +29751,7 @@ "doc_fift": "UNSINGLE", "doc_stack": "t - x", "description": "Unpacks a singleton `t=(x)`.", - "operands": { - "n": 1 - } + "operands": { "n": 1 } }, { "mnemonic": "UNPAIR", @@ -43422,9 +29759,7 @@ "doc_fift": "UNPAIR\nUNCONS", "doc_stack": "t - x y", "description": "Unpacks a pair `t=(x,y)`.", - "operands": { - "n": 2 - } + "operands": { "n": 2 } }, { "mnemonic": "UNTRIPLE", @@ -43432,9 +29767,7 @@ "doc_fift": "UNTRIPLE", "doc_stack": "t - x y z", "description": "Unpacks a triple `t=(x,y,z)`.", - "operands": { - "n": 3 - } + "operands": { "n": 3 } }, { "mnemonic": "CHKTUPLE", @@ -43442,9 +29775,7 @@ "doc_fift": "CHKTUPLE", "doc_stack": "t -", "description": "Checks whether `t` is a _Tuple_. If not, throws a type check exception.", - "operands": { - "k": 0 - } + "operands": { "k": 0 } }, { "mnemonic": "SETFIRST", @@ -43452,9 +29783,7 @@ "doc_fift": "SETFIRST", "doc_stack": "t x - t'", "description": "Sets the first component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { - "k": 0 - } + "operands": { "k": 0 } }, { "mnemonic": "SETSECOND", @@ -43462,9 +29791,7 @@ "doc_fift": "SETSECOND", "doc_stack": "t x - t'", "description": "Sets the second component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { - "k": 1 - } + "operands": { "k": 1 } }, { "mnemonic": "SETTHIRD", @@ -43472,9 +29799,7 @@ "doc_fift": "SETTHIRD", "doc_stack": "t x - t'", "description": "Sets the third component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { - "k": 2 - } + "operands": { "k": 2 } }, { "mnemonic": "FIRSTQ", @@ -43482,9 +29807,7 @@ "doc_fift": "FIRSTQ\nCARQ", "doc_stack": "t - x", "description": "Returns the first element of a _Tuple_.", - "operands": { - "k": 0 - } + "operands": { "k": 0 } }, { "mnemonic": "SECONDQ", @@ -43492,9 +29815,7 @@ "doc_fift": "SECONDQ\nCDRQ", "doc_stack": "t - y", "description": "Returns the second element of a _Tuple_.", - "operands": { - "k": 1 - } + "operands": { "k": 1 } }, { "mnemonic": "THIRDQ", @@ -43502,9 +29823,7 @@ "doc_fift": "THIRDQ", "doc_stack": "t - z", "description": "Returns the third element of a _Tuple_.", - "operands": { - "k": 2 - } + "operands": { "k": 2 } }, { "mnemonic": "SETFIRSTQ", @@ -43512,9 +29831,7 @@ "doc_fift": "SETFIRSTQ", "doc_stack": "t x - t'", "description": "Sets the first component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { - "k": 0 - } + "operands": { "k": 0 } }, { "mnemonic": "SETSECONDQ", @@ -43522,9 +29839,7 @@ "doc_fift": "SETSECONDQ", "doc_stack": "t x - t'", "description": "Sets the second component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { - "k": 1 - } + "operands": { "k": 1 } }, { "mnemonic": "SETTHIRDQ", @@ -43532,9 +29847,7 @@ "doc_fift": "SETTHIRDQ", "doc_stack": "t x - t'", "description": "Sets the third component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { - "k": 2 - } + "operands": { "k": 2 } }, { "mnemonic": "CADR", @@ -43542,10 +29855,7 @@ "doc_fift": "CADR", "doc_stack": "t - x", "description": "Recovers `x=(t_2)_1`.", - "operands": { - "i": 1, - "j": 0 - } + "operands": { "i": 1, "j": 0 } }, { "mnemonic": "CDDR", @@ -43553,10 +29863,7 @@ "doc_fift": "CDDR", "doc_stack": "t - x", "description": "Recovers `x=(t_2)_2`.", - "operands": { - "i": 1, - "j": 1 - } + "operands": { "i": 1, "j": 1 } }, { "mnemonic": "CADDR", @@ -43564,11 +29871,7 @@ "doc_fift": "CADDR", "doc_stack": "t - x", "description": "Recovers `x=t_2_2_1`.", - "operands": { - "i": 1, - "j": 1, - "k": 0 - } + "operands": { "i": 1, "j": 1, "k": 0 } }, { "mnemonic": "CDDDR", @@ -43576,11 +29879,7 @@ "doc_fift": "CDDDR", "doc_stack": "t - x", "description": "Recovers `x=t_2_2_2`.", - "operands": { - "i": 1, - "j": 1, - "k": 1 - } + "operands": { "i": 1, "j": 1, "k": 1 } }, { "mnemonic": "ZERO", @@ -43588,9 +29887,7 @@ "doc_fift": "ZERO\nFALSE", "doc_stack": "- 0", "description": "", - "operands": { - "i": 0 - } + "operands": { "i": 0 } }, { "mnemonic": "ONE", @@ -43598,9 +29895,7 @@ "doc_fift": "ONE", "doc_stack": "- 1", "description": "", - "operands": { - "i": 1 - } + "operands": { "i": 1 } }, { "mnemonic": "TWO", @@ -43608,9 +29903,7 @@ "doc_fift": "TWO", "doc_stack": "- 2", "description": "", - "operands": { - "i": 2 - } + "operands": { "i": 2 } }, { "mnemonic": "TEN", @@ -43618,9 +29911,7 @@ "doc_fift": "TEN", "doc_stack": "- 10", "description": "", - "operands": { - "i": 10 - } + "operands": { "i": 10 } }, { "mnemonic": "TRUE", @@ -43628,9 +29919,7 @@ "doc_fift": "TRUE", "doc_stack": "- -1", "description": "", - "operands": { - "i": 15 - } + "operands": { "i": 15 } }, { "mnemonic": "CHKBOOL", @@ -43638,9 +29927,7 @@ "doc_fift": "CHKBOOL", "doc_stack": "x - x", "description": "Checks whether `x` is a \u0432\u0402\u045aboolean value'' (i.e., either 0 or -1).", - "operands": { - "c": 0 - } + "operands": { "c": 0 } }, { "mnemonic": "CHKBIT", @@ -43648,9 +29935,7 @@ "doc_fift": "CHKBIT", "doc_stack": "x - x", "description": "Checks whether `x` is a binary digit (i.e., zero or one).", - "operands": { - "c": 0 - } + "operands": { "c": 0 } }, { "mnemonic": "ISZERO", @@ -43658,9 +29943,7 @@ "doc_fift": "ISZERO", "doc_stack": "x - x=0", "description": "Checks whether an integer is zero. Corresponds to Forth's `0=`.", - "operands": { - "y": 0 - } + "operands": { "y": 0 } }, { "mnemonic": "ISNEG", @@ -43668,9 +29951,7 @@ "doc_fift": "ISNEG", "doc_stack": "x - x<0", "description": "Checks whether an integer is negative. Corresponds to Forth's `0<`.", - "operands": { - "y": 0 - } + "operands": { "y": 0 } }, { "mnemonic": "ISNPOS", @@ -43678,9 +29959,7 @@ "doc_fift": "ISNPOS", "doc_stack": "x - x<=0", "description": "Checks whether an integer is non-positive.", - "operands": { - "y": 1 - } + "operands": { "y": 1 } }, { "mnemonic": "ISPOS", @@ -43688,9 +29967,7 @@ "doc_fift": "ISPOS", "doc_stack": "x - x>0", "description": "Checks whether an integer is positive. Corresponds to Forth's `0>`.", - "operands": { - "y": 0 - } + "operands": { "y": 0 } }, { "mnemonic": "ISNNEG", @@ -43698,9 +29975,7 @@ "doc_fift": "ISNNEG", "doc_stack": "x - x >=0", "description": "Checks whether an integer is non-negative.", - "operands": { - "y": -1 - } + "operands": { "y": -1 } }, { "mnemonic": "STZERO", @@ -43708,11 +29983,7 @@ "doc_fift": "STZERO", "doc_stack": "b - b'", "description": "Stores one binary zero.", - "operands": { - "x": 0, - "y": 0, - "sss": "0" - } + "operands": { "x": 0, "y": 0, "sss": "0" } }, { "mnemonic": "STONE", @@ -43720,11 +29991,7 @@ "doc_fift": "STONE", "doc_stack": "b - b'", "description": "Stores one binary one.", - "operands": { - "x": 0, - "y": 0, - "sss": "1" - } + "operands": { "x": 0, "y": 0, "sss": "1" } }, { "mnemonic": "PLDREF", @@ -43732,9 +29999,7 @@ "doc_fift": "PLDREF", "doc_stack": "s - c", "description": "Preloads the first cell reference of a _Slice_.", - "operands": { - "n": 0 - } + "operands": { "n": 0 } }, { "mnemonic": "SETNUMARGS", @@ -43742,9 +30007,7 @@ "doc_fift": "[n] SETNUMARGS", "doc_stack": "c - c'", "description": "Sets `c.nargs` to `n` plus the current depth of `c`'s stack, where `0 <= n <= 14`. If `c.nargs` is already set to a non-negative value, does nothing.", - "operands": { - "r": 0 - } + "operands": { "r": 0 } }, { "mnemonic": "SETCONTARGS", @@ -43752,9 +30015,7 @@ "doc_fift": "[r] -1 SETCONTARGS", "doc_stack": "x_1 x_2...x_r c - c'", "description": "Pushes `0 <= r <= 15` values `x_1...x_r` into the stack of (a copy of) the continuation `c`, starting with `x_1`. If the final depth of `c`'s stack turns out to be greater than `c.nargs`, a stack overflow exception is generated.", - "operands": { - "n": -1 - } + "operands": { "n": -1 } }, { "mnemonic": "BLESSNUMARGS", @@ -43762,9 +30023,7 @@ "doc_fift": "[n] BLESSNUMARGS", "doc_stack": "s - c", "description": "Also transforms a _Slice_ `s` into a _Continuation_ `c`, but sets `c.nargs` to `0 <= n <= 14`.", - "operands": { - "r": 0 - } + "operands": { "r": 0 } }, { "mnemonic": "PUSHROOT", @@ -43772,9 +30031,7 @@ "doc_fift": "c4 PUSHCTR\nc4 PUSH", "doc_stack": "- x", "description": "Pushes the \u0432\u0402\u045aglobal data root'' cell reference, thus enabling access to persistent smart-contract data.", - "operands": { - "i": 4 - } + "operands": { "i": 4 } }, { "mnemonic": "POPROOT", @@ -43782,9 +30039,7 @@ "doc_fift": "c4 POPCTR\nc4 POP", "doc_stack": "x -", "description": "Sets the \u0432\u0402\u045aglobal data root'' cell reference, thus allowing modification of persistent smart-contract data.", - "operands": { - "i": 4 - } + "operands": { "i": 4 } }, { "mnemonic": "NEWDICT", @@ -43816,9 +30071,7 @@ "doc_fift": "NOW", "doc_stack": " - x", "description": "Returns the current Unix time as an _Integer_. If it is impossible to recover the requested value starting from `c7`, throws a type checking or range checking exception as appropriate.\nEquivalent to `3 GETPARAM`.", - "operands": { - "i": 3 - } + "operands": { "i": 3 } }, { "mnemonic": "BLOCKLT", @@ -43826,9 +30079,7 @@ "doc_fift": "BLOCKLT", "doc_stack": " - x", "description": "Returns the starting logical time of the current block.\nEquivalent to `4 GETPARAM`.", - "operands": { - "i": 4 - } + "operands": { "i": 4 } }, { "mnemonic": "LTIME", @@ -43836,9 +30087,7 @@ "doc_fift": "LTIME", "doc_stack": " - x", "description": "Returns the logical time of the current transaction.\nEquivalent to `5 GETPARAM`.", - "operands": { - "i": 5 - } + "operands": { "i": 5 } }, { "mnemonic": "RANDSEED", @@ -43846,9 +30095,7 @@ "doc_fift": "RANDSEED", "doc_stack": " - x", "description": "Returns the current random seed as an unsigned 256-bit _Integer_.\nEquivalent to `6 GETPARAM`.", - "operands": { - "i": 6 - } + "operands": { "i": 6 } }, { "mnemonic": "BALANCE", @@ -43856,9 +30103,7 @@ "doc_fift": "BALANCE", "doc_stack": " - t", "description": "Returns the remaining balance of the smart contract as a _Tuple_ consisting of an _Integer_ (the remaining Gram balance in nanograms) and a _Maybe Cell_ (a dictionary with 32-bit keys representing the balance of \u0432\u0402\u045aextra currencies'').\nEquivalent to `7 GETPARAM`.\nNote that `RAW` primitives such as `SENDRAWMSG` do not update this field.", - "operands": { - "i": 7 - } + "operands": { "i": 7 } }, { "mnemonic": "MYADDR", @@ -43866,9 +30111,7 @@ "doc_fift": "MYADDR", "doc_stack": " - s", "description": "Returns the internal address of the current smart contract as a _Slice_ with a `MsgAddressInt`. If necessary, it can be parsed further using primitives such as `PARSEMSGADDR` or `REWRITESTDADDR`.\nEquivalent to `8 GETPARAM`.", - "operands": { - "i": 8 - } + "operands": { "i": 8 } }, { "mnemonic": "CONFIGROOT", @@ -43876,9 +30119,7 @@ "doc_fift": "CONFIGROOT", "doc_stack": " - D", "description": "Returns the _Maybe Cell_ `D` with the current global configuration dictionary. Equivalent to `9 GETPARAM `.", - "operands": { - "i": 9 - } + "operands": { "i": 9 } }, { "mnemonic": "MYCODE", @@ -43886,9 +30127,7 @@ "doc_fift": "MYCODE", "doc_stack": " - c", "description": "Retrieves code of smart-contract from c7. Equivalent to `10 GETPARAM `.", - "operands": { - "i": 10 - } + "operands": { "i": 10 } }, { "mnemonic": "INCOMINGVALUE", @@ -43896,9 +30135,7 @@ "doc_fift": "INCOMINGVALUE", "doc_stack": " - t", "description": "Retrieves value of incoming message from c7. Equivalent to `11 GETPARAM `.", - "operands": { - "i": 11 - } + "operands": { "i": 11 } }, { "mnemonic": "STORAGEFEES", @@ -43906,9 +30143,7 @@ "doc_fift": "STORAGEFEES", "doc_stack": " - i", "description": "Retrieves value of storage phase fees from c7. Equivalent to `12 GETPARAM `.", - "operands": { - "i": 12 - } + "operands": { "i": 12 } }, { "mnemonic": "PREVBLOCKSINFOTUPLE", @@ -43916,9 +30151,7 @@ "doc_fift": "PREVBLOCKSINFOTUPLE", "doc_stack": " - t", "description": "Retrives PrevBlocksInfo: `[last_mc_blocks, prev_key_block]` from c7. Equivalent to `13 GETPARAM `.", - "operands": { - "i": 13 - } + "operands": { "i": 13 } }, { "mnemonic": "SETCP0", @@ -43926,9 +30159,7 @@ "doc_fift": "SETCP0", "doc_stack": "-", "description": "Selects TVM (test) codepage zero as described in this document.", - "operands": { - "n": 0 - } + "operands": { "n": 0 } } ] } From b812e2ecf47562e48361184c6625f61d20ac686c Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Mon, 26 Feb 2024 22:57:02 +0700 Subject: [PATCH 05/27] Make fields required --- cp0.json | 62188 ++++++++++++++++++++++++++------------------------ schema.json | 26 +- 2 files changed, 32039 insertions(+), 30175 deletions(-) diff --git a/cp0.json b/cp0.json index 1da5f5d..9c7d606 100644 --- a/cp0.json +++ b/cp0.json @@ -1,30165 +1,32023 @@ -{ - "$schema": "./schema.json", - "instructions": [ - { - "mnemonic": "NOP", - "doc": { - "category": "stack_basic", - "description": "Does nothing.", - "gas": "18", - "fift": "NOP" - }, - "bytecode": { - "doc_opcode": "00", - "tlb": "#00", - "prefix": "00", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "XCHG_0I", - "doc": { - "category": "stack_basic", - "description": "Interchanges `s0` with `s[i]`, `1 <= i <= 15`.", - "gas": "18", - "fift": "s[i] XCHG0" - }, - "bytecode": { - "doc_opcode": "0i", - "tlb": "#0 i:(## 4) {1 <= i}", - "prefix": "0", - "operands_range_check": { "length": 4, "from": 1, "to": 15 }, - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "XCHG_IJ", - "doc": { - "category": "stack_basic", - "description": "Interchanges `s[i]` with `s[j]`, `1 <= i < j <= 15`.", - "gas": "26", - "fift": "s[i] s[j] XCHG" - }, - "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 }, - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "XCHG_0I_LONG", - "doc": { - "category": "stack_basic", - "description": "Interchanges `s0` with `s[ii]`, `0 <= ii <= 255`.", - "gas": "26", - "fift": "s0 [ii] s() XCHG" - }, - "bytecode": { - "doc_opcode": "11ii", - "tlb": "#11 ii:uint8", - "prefix": "11", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "XCHG_1I", - "doc": { - "category": "stack_basic", - "description": "Interchanges `s1` with `s[i]`, `2 <= i <= 15`.", - "gas": "18", - "fift": "s1 s[i] XCHG" - }, - "bytecode": { - "doc_opcode": "1i", - "tlb": "#1 i:(## 4) {2 <= i}", - "prefix": "1", - "operands_range_check": { "length": 4, "from": 2, "to": 15 }, - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "PUSH", - "doc": { - "category": "stack_basic", - "description": "Pushes a copy of the old `s[i]` into the stack.", - "gas": "18", - "fift": "s[i] PUSH" - }, - "bytecode": { - "doc_opcode": "2i", - "tlb": "#2 i:uint4", - "prefix": "2", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "POP", - "doc": { - "category": "stack_basic", - "description": "Pops the old `s0` value into the old `s[i]`.", - "gas": "18", - "fift": "s[i] POP" - }, - "bytecode": { - "doc_opcode": "3i", - "tlb": "#3 i:uint4", - "prefix": "3", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "XCHG3", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s2 s[i] XCHG` `s1 s[j] XCHG` `s[k] XCHG0`.", - "gas": "26", - "fift": "s[i] s[j] s[k] XCHG3" - }, - "bytecode": { - "doc_opcode": "4ijk", - "tlb": "#4 i:uint4 j:uint4 k:uint4", - "prefix": "4", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "XCHG2", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s1 s[i] XCHG` `s[j] XCHG0`.", - "gas": "26", - "fift": "s[i] s[j] XCHG2" - }, - "bytecode": { - "doc_opcode": "50ij", - "tlb": "#50 i:uint4 j:uint4", - "prefix": "50", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "XCPU", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s[i] XCHG0` `s[j] PUSH`.", - "gas": "26", - "fift": "s[i] s[j] XCPU" - }, - "bytecode": { - "doc_opcode": "51ij", - "tlb": "#51 i:uint4 j:uint4", - "prefix": "51", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "PUXC", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s[i] PUSH` `SWAP` `s[j] XCHG0`.", - "gas": "26", - "fift": "s[i] s[j-1] PUXC" - }, - "bytecode": { - "doc_opcode": "52ij", - "tlb": "#52 i:uint4 j:uint4", - "prefix": "52", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "PUSH2", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s[i] PUSH` `s[j+1] PUSH`.", - "gas": "26", - "fift": "s[i] s[j] PUSH2" - }, - "bytecode": { - "doc_opcode": "53ij", - "tlb": "#53 i:uint4 j:uint4", - "prefix": "53", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "XCHG3_ALT", - "doc": { - "category": "stack_complex", - "description": "Long form of `XCHG3`.", - "gas": "34", - "fift": "s[i] s[j] s[k] XCHG3_l" - }, - "bytecode": { - "doc_opcode": "540ijk", - "tlb": "#540 i:uint4 j:uint4 k:uint4", - "prefix": "540", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "XC2PU", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s[i] s[j] XCHG2` `s[k] PUSH`.", - "gas": "34", - "fift": "s[i] s[j] s[k] XC2PU" - }, - "bytecode": { - "doc_opcode": "541ijk", - "tlb": "#541 i:uint4 j:uint4 k:uint4", - "prefix": "541", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "XCPUXC", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s1 s[i] XCHG` `s[j] s[k-1] PUXC`.", - "gas": "34", - "fift": "s[i] s[j] s[k-1] XCPUXC" - }, - "bytecode": { - "doc_opcode": "542ijk", - "tlb": "#542 i:uint4 j:uint4 k:uint4", - "prefix": "542", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "XCPU2", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s[i] XCHG0` `s[j] s[k] PUSH2`.", - "gas": "34", - "fift": "s[i] s[j] s[k] XCPU2" - }, - "bytecode": { - "doc_opcode": "543ijk", - "tlb": "#543 i:uint4 j:uint4 k:uint4", - "prefix": "543", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "PUXC2", - "doc": { - "category": "stack_complex", - "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" - }, - "bytecode": { - "doc_opcode": "544ijk", - "tlb": "#544 i:uint4 j:uint4 k:uint4", - "prefix": "544", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "PUXCPU", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s[i] s[j-1] PUXC` `s[k] PUSH`.", - "gas": "34", - "fift": "s[i] s[j-1] s[k-1] PUXCPU" - }, - "bytecode": { - "doc_opcode": "545ijk", - "tlb": "#545 i:uint4 j:uint4 k:uint4", - "prefix": "545", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "PU2XC", - "doc": { - "category": "stack_complex", - "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" - }, - "bytecode": { - "doc_opcode": "546ijk", - "tlb": "#546 i:uint4 j:uint4 k:uint4", - "prefix": "546", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "PUSH3", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s[i] PUSH` `s[j+1] s[k+1] PUSH2`.", - "gas": "34", - "fift": "s[i] s[j] s[k] PUSH3" - }, - "bytecode": { - "doc_opcode": "547ijk", - "tlb": "#547 i:uint4 j:uint4 k:uint4", - "prefix": "547", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "BLKSWAP", - "doc": { - "category": "stack_complex", - "description": "Permutes two blocks `s[j+i+1] \u0432\u0402\u00a6 s[j+1]` and `s[j] \u0432\u0402\u00a6 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" - }, - "bytecode": { - "doc_opcode": "55ij", - "tlb": "#55 i:uint4 j:uint4", - "prefix": "55", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "PUSH_LONG", - "doc": { - "category": "stack_complex", - "description": "Pushes a copy of the old `s[ii]` into the stack.\n`0 <= ii <= 255`", - "gas": "26", - "fift": "[ii] s() PUSH" - }, - "bytecode": { - "doc_opcode": "56ii", - "tlb": "#56 ii:uint8", - "prefix": "56", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "POP_LONG", - "doc": { - "category": "stack_complex", - "description": "Pops the old `s0` value into the old `s[ii]`.\n`0 <= ii <= 255`", - "gas": "26", - "fift": "[ii] s() POP" - }, - "bytecode": { - "doc_opcode": "57ii", - "tlb": "#57 ii:uint8", - "prefix": "57", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "ROT", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `1 2 BLKSWAP` or to `s2 s1 XCHG2`.", - "gas": "18", - "fift": "ROT" - }, - "bytecode": { - "doc_opcode": "58", - "tlb": "#58", - "prefix": "58", - "operands": [] - }, - "value_flow": { "doc_stack": "a b c - b c a" } - }, - { - "mnemonic": "ROTREV", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `2 1 BLKSWAP` or to `s2 s2 XCHG2`.", - "gas": "18", - "fift": "ROTREV\n-ROT" - }, - "bytecode": { - "doc_opcode": "59", - "tlb": "#59", - "prefix": "59", - "operands": [] - }, - "value_flow": { "doc_stack": "a b c - c a b" } - }, - { - "mnemonic": "SWAP2", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `2 2 BLKSWAP` or to `s3 s2 XCHG2`.", - "gas": "18", - "fift": "SWAP2\n2SWAP" - }, - "bytecode": { - "doc_opcode": "5A", - "tlb": "#5A", - "prefix": "5A", - "operands": [] - }, - "value_flow": { "doc_stack": "a b c d - c d a b" } - }, - { - "mnemonic": "DROP2", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `DROP` `DROP`.", - "gas": "18", - "fift": "DROP2\n2DROP" - }, - "bytecode": { - "doc_opcode": "5B", - "tlb": "#5B", - "prefix": "5B", - "operands": [] - }, - "value_flow": { "doc_stack": "a b - " } - }, - { - "mnemonic": "DUP2", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s1 s0 PUSH2`.", - "gas": "18", - "fift": "DUP2\n2DUP" - }, - "bytecode": { - "doc_opcode": "5C", - "tlb": "#5C", - "prefix": "5C", - "operands": [] - }, - "value_flow": { "doc_stack": "a b - a b a b" } - }, - { - "mnemonic": "OVER2", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `s3 s2 PUSH2`.", - "gas": "18", - "fift": "OVER2\n2OVER" - }, - "bytecode": { - "doc_opcode": "5D", - "tlb": "#5D", - "prefix": "5D", - "operands": [] - }, - "value_flow": { "doc_stack": "a b c d - a b c d a b" } - }, - { - "mnemonic": "REVERSE", - "doc": { - "category": "stack_complex", - "description": "Reverses the order of `s[j+i+1] \u0432\u0402\u00a6 s[j]`.", - "gas": "26", - "fift": "[i+2] [j] REVERSE" - }, - "bytecode": { - "doc_opcode": "5Eij", - "tlb": "#5E i:uint4 j:uint4", - "prefix": "5E", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "BLKDROP", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `DROP` performed `i` times.", - "gas": "26", - "fift": "[i] BLKDROP" - }, - "bytecode": { - "doc_opcode": "5F0i", - "tlb": "#5F0 i:uint4", - "prefix": "5F0", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "BLKPUSH", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `PUSH s(j)` performed `i` times.\n`1 <= i <= 15`, `0 <= j <= 15`.", - "gas": "26", - "fift": "[i] [j] BLKPUSH" - }, - "bytecode": { - "doc_opcode": "5Fij", - "tlb": "#5F i:(## 4) j:uint4 {1 <= i}", - "prefix": "5F", - "operands_range_check": { "length": 4, "from": 1, "to": 15 }, - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "PICK", - "doc": { - "category": "stack_complex", - "description": "Pops integer `i` from the stack, then performs `s[i] PUSH`.", - "gas": "18", - "fift": "PICK\nPUSHX" - }, - "bytecode": { - "doc_opcode": "60", - "tlb": "#60", - "prefix": "60", - "operands": [] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "ROLLX", - "doc": { - "category": "stack_complex", - "description": "Pops integer `i` from the stack, then performs `1 [i] BLKSWAP`.", - "gas": "18", - "fift": "ROLLX" - }, - "bytecode": { - "doc_opcode": "61", - "tlb": "#61", - "prefix": "61", - "operands": [] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "-ROLLX", - "doc": { - "category": "stack_complex", - "description": "Pops integer `i` from the stack, then performs `[i] 1 BLKSWAP`.", - "gas": "18", - "fift": "-ROLLX\nROLLREVX" - }, - "bytecode": { - "doc_opcode": "62", - "tlb": "#62", - "prefix": "62", - "operands": [] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "BLKSWX", - "doc": { - "category": "stack_complex", - "description": "Pops integers `i`,`j` from the stack, then performs `[i] [j] BLKSWAP`.", - "gas": "18", - "fift": "BLKSWX" - }, - "bytecode": { - "doc_opcode": "63", - "tlb": "#63", - "prefix": "63", - "operands": [] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "REVX", - "doc": { - "category": "stack_complex", - "description": "Pops integers `i`,`j` from the stack, then performs `[i] [j] REVERSE`.", - "gas": "18", - "fift": "REVX" - }, - "bytecode": { - "doc_opcode": "64", - "tlb": "#64", - "prefix": "64", - "operands": [] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "DROPX", - "doc": { - "category": "stack_complex", - "description": "Pops integer `i` from the stack, then performs `[i] BLKDROP`.", - "gas": "18", - "fift": "DROPX" - }, - "bytecode": { - "doc_opcode": "65", - "tlb": "#65", - "prefix": "65", - "operands": [] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "TUCK", - "doc": { - "category": "stack_complex", - "description": "Equivalent to `SWAP` `OVER` or to `s1 s1 XCPU`.", - "gas": "18", - "fift": "TUCK" - }, - "bytecode": { - "doc_opcode": "66", - "tlb": "#66", - "prefix": "66", - "operands": [] - }, - "value_flow": { "doc_stack": "a b - b a b" } - }, - { - "mnemonic": "XCHGX", - "doc": { - "category": "stack_complex", - "description": "Pops integer `i` from the stack, then performs `s[i] XCHG`.", - "gas": "18", - "fift": "XCHGX" - }, - "bytecode": { - "doc_opcode": "67", - "tlb": "#67", - "prefix": "67", - "operands": [] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "DEPTH", - "doc": { - "category": "stack_complex", - "description": "Pushes the current depth of the stack.", - "gas": "18", - "fift": "DEPTH" - }, - "bytecode": { - "doc_opcode": "68", - "tlb": "#68", - "prefix": "68", - "operands": [] - }, - "value_flow": { - "doc_stack": "- depth", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "depth", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "CHKDEPTH", - "doc": { - "category": "stack_complex", - "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" - }, - "bytecode": { - "doc_opcode": "69", - "tlb": "#69", - "prefix": "69", - "operands": [] - }, - "value_flow": { - "doc_stack": "i -", - "inputs": { - "stack": [ - { "type": "simple", "name": "i", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "ONLYTOPX", - "doc": { - "category": "stack_complex", - "description": "Pops integer `i` from the stack, then removes all but the top `i` elements.", - "gas": "18", - "fift": "ONLYTOPX" - }, - "bytecode": { - "doc_opcode": "6A", - "tlb": "#6A", - "prefix": "6A", - "operands": [] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "ONLYX", - "doc": { - "category": "stack_complex", - "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" - }, - "bytecode": { - "doc_opcode": "6B", - "tlb": "#6B", - "prefix": "6B", - "operands": [] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "BLKDROP2", - "doc": { - "category": "stack_complex", - "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" - }, - "bytecode": { - "doc_opcode": "6Cij", - "tlb": "#6C i:(## 4) j:uint4 {1 <= i}", - "prefix": "6C", - "operands_range_check": { "length": 4, "from": 1, "to": 15 }, - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "" } - }, - { - "mnemonic": "NULL", - "doc": { - "category": "tuple", - "description": "Pushes the only value of type _Null_.", - "gas": "18", - "fift": "NULL\nPUSHNULL" - }, - "bytecode": { - "doc_opcode": "6D", - "tlb": "#6D", - "prefix": "6D", - "operands": [] - }, - "value_flow": { - "doc_stack": " - null", - "inputs": { "stack": [] }, - "outputs": { - "stack": [{ "type": "const", "value": null, "value_type": "Null" }] - } - } - }, - { - "mnemonic": "ISNULL", - "doc": { - "category": "tuple", - "description": "Checks whether `x` is a _Null_, and returns `-1` or `0` accordingly.", - "gas": "18", - "fift": "ISNULL" - }, - "bytecode": { - "doc_opcode": "6E", - "tlb": "#6E", - "prefix": "6E", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "TUPLE", - "doc": { - "category": "tuple", - "description": "Creates a new _Tuple_ `t=(x_1, \u0432\u0402\u00a6 ,x_n)` containing `n` values `x_1`,..., `x_n`.\n`0 <= n <= 15`", - "gas": "26+n", - "fift": "[n] TUPLE" - }, - "bytecode": { - "doc_opcode": "6F0n", - "tlb": "#6F0 n:uint4", - "prefix": "6F0", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "x_1 ... x_n - t", - "inputs": { - "stack": [ - { - "type": "array", - "name": "tuple_elements", - "length_var": "n", - "array_entry": [{ "type": "simple", "name": "x" }] - } - ] - }, - "outputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] - } - } - }, - { - "mnemonic": "INDEX", - "doc": { - "category": "tuple", - "description": "Returns the `k`-th element of a _Tuple_ `t`.\n`0 <= k <= 15`.", - "gas": "26", - "fift": "[k] INDEX" - }, - "bytecode": { - "doc_opcode": "6F1k", - "tlb": "#6F1 k:uint4", - "prefix": "6F1", - "operands": [ - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "t - x", - "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] - }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } - } - }, - { - "mnemonic": "UNTUPLE", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6F2n", - "tlb": "#6F2 n:uint4", - "prefix": "6F2", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "t - x_1 ... x_n", - "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] - }, - "outputs": { - "stack": [ - { - "type": "array", - "name": "tuple_elements", - "length_var": "n", - "array_entry": [{ "type": "simple", "name": "x" }] - } - ] - } - } - }, - { - "mnemonic": "UNPACKFIRST", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6F5k", - "tlb": "#6F5 k:uint4", - "prefix": "6F5", - "operands": [ - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "t x - t'", - "inputs": { - "stack": [ - { "type": "simple", "name": "t", "value_types": ["Tuple"] }, - { "type": "simple", "name": "x" } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "t2", "value_types": ["Tuple"] } - ] - } - } - }, - { - "mnemonic": "INDEXQ", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6F6k", - "tlb": "#6F6 k:uint4", - "prefix": "6F6", - "operands": [ - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "t - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] } - ] - }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } - } - }, - { - "mnemonic": "SETINDEXQ", - "doc": { - "category": "tuple", - "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\u0432\u0402\u2122=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\u0432\u0402\u2122|", - "fift": "[k] SETINDEXQ" - }, - "bytecode": { - "doc_opcode": "6F7k", - "tlb": "#6F7 k:uint4", - "prefix": "6F7", - "operands": [ - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "t x - t'", - "inputs": { - "stack": [ - { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] }, - { "type": "simple", "name": "x" } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "t2", "value_types": ["Tuple", "Null"] } - ] - } - } - }, - { - "mnemonic": "TUPLEVAR", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6F80", - "tlb": "#6F80", - "prefix": "6F80", - "operands": [] - }, - "value_flow": { - "doc_stack": "x_1 ... x_n n - t", - "inputs": { - "stack": [ - { - "type": "array", - "name": "tuple_elements", - "length_var": "n", - "array_entry": [{ "type": "simple", "name": "x" }] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] - } - } - }, - { - "mnemonic": "INDEXVAR", - "doc": { - "category": "tuple", - "description": "Similar to `k INDEX`, but with `0 <= k <= 254` taken from the stack.", - "gas": "26", - "fift": "INDEXVAR" - }, - "bytecode": { - "doc_opcode": "6F81", - "tlb": "#6F81", - "prefix": "6F81", - "operands": [] - }, - "value_flow": { - "doc_stack": "t k - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "t", "value_types": ["Tuple"] }, - { "type": "simple", "name": "k", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } - } - }, - { - "mnemonic": "UNTUPLEVAR", - "doc": { - "category": "tuple", - "description": "Similar to `n UNTUPLE`, but with `0 <= n <= 255` taken from the stack.", - "gas": "26+n", - "fift": "UNTUPLEVAR" - }, - "bytecode": { - "doc_opcode": "6F82", - "tlb": "#6F82", - "prefix": "6F82", - "operands": [] - }, - "value_flow": { - "doc_stack": "t n - x_1 ... x_n", - "inputs": { - "stack": [ - { "type": "simple", "name": "t", "value_types": ["Tuple"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "array", - "name": "tuple_elements", - "length_var": "n", - "array_entry": [{ "type": "simple", "name": "x" }] - } - ] - } - } - }, - { - "mnemonic": "UNPACKFIRSTVAR", - "doc": { - "category": "tuple", - "description": "Similar to `n UNPACKFIRST`, but with `0 <= n <= 255` taken from the stack.", - "gas": "26+n", - "fift": "UNPACKFIRSTVAR" - }, - "bytecode": { - "doc_opcode": "6F83", - "tlb": "#6F83", - "prefix": "6F83", - "operands": [] - }, - "value_flow": { - "doc_stack": "t n - x_1 ... x_n", - "inputs": { - "stack": [ - { "type": "simple", "name": "t", "value_types": ["Tuple"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "array", - "name": "tuple_elements", - "length_var": "n", - "array_entry": [{ "type": "simple", "name": "x" }] - } - ] - } - } - }, - { - "mnemonic": "EXPLODEVAR", - "doc": { - "category": "tuple", - "description": "Similar to `n EXPLODE`, but with `0 <= n <= 255` taken from the stack.", - "gas": "26+m", - "fift": "EXPLODEVAR" - }, - "bytecode": { - "doc_opcode": "6F84", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "array", - "name": "tuple_elements", - "length_var": "m", - "array_entry": [{ "type": "simple", "name": "x" }] - }, - { "type": "simple", "name": "m", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SETINDEXVAR", - "doc": { - "category": "tuple", - "description": "Similar to `k SETINDEX`, but with `0 <= k <= 254` taken from the stack.", - "gas": "26+|t\u0432\u0402\u2122|", - "fift": "SETINDEXVAR" - }, - "bytecode": { - "doc_opcode": "6F85", - "tlb": "#6F85", - "prefix": "6F85", - "operands": [] - }, - "value_flow": { - "doc_stack": "t x k - t'", - "inputs": { - "stack": [ - { "type": "simple", "name": "t", "value_types": ["Tuple"] }, - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "k", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "t2", "value_types": ["Tuple"] } - ] - } - } - }, - { - "mnemonic": "INDEXVARQ", - "doc": { - "category": "tuple", - "description": "Similar to `n INDEXQ`, but with `0 <= k <= 254` taken from the stack.", - "gas": "26", - "fift": "INDEXVARQ" - }, - "bytecode": { - "doc_opcode": "6F86", - "tlb": "#6F86", - "prefix": "6F86", - "operands": [] - }, - "value_flow": { - "doc_stack": "t k - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] }, - { "type": "simple", "name": "k", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } - } - }, - { - "mnemonic": "SETINDEXVARQ", - "doc": { - "category": "tuple", - "description": "Similar to `k SETINDEXQ`, but with `0 <= k <= 254` taken from the stack.", - "gas": "26+|t\u0432\u0402\u2122|", - "fift": "SETINDEXVARQ" - }, - "bytecode": { - "doc_opcode": "6F87", - "tlb": "#6F87", - "prefix": "6F87", - "operands": [] - }, - "value_flow": { - "doc_stack": "t x k - t'", - "inputs": { - "stack": [ - { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] }, - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "k", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "t2", "value_types": ["Tuple", "Null"] } - ] - } - } - }, - { - "mnemonic": "TLEN", - "doc": { - "category": "tuple", - "description": "Returns the length of a _Tuple_.", - "gas": "26", - "fift": "TLEN" - }, - "bytecode": { - "doc_opcode": "6F88", - "tlb": "#6F88", - "prefix": "6F88", - "operands": [] - }, - "value_flow": { - "doc_stack": "t - n", - "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QTLEN", - "doc": { - "category": "tuple", - "description": "Similar to `TLEN`, but returns `-1` if `t` is not a _Tuple_.", - "gas": "26", - "fift": "QTLEN" - }, - "bytecode": { - "doc_opcode": "6F89", - "tlb": "#6F89", - "prefix": "6F89", - "operands": [] - }, - "value_flow": { - "doc_stack": "t - n or -1", - "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "ISTUPLE", - "doc": { - "category": "tuple", - "description": "Returns `-1` or `0` depending on whether `t` is a _Tuple_.", - "gas": "26", - "fift": "ISTUPLE" - }, - "bytecode": { - "doc_opcode": "6F8A", - "tlb": "#6F8A", - "prefix": "6F8A", - "operands": [] - }, - "value_flow": { - "doc_stack": "t - ?", - "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LAST", - "doc": { - "category": "tuple", - "description": "Returns the last element of a non-empty _Tuple_ `t`.", - "gas": "26", - "fift": "LAST" - }, - "bytecode": { - "doc_opcode": "6F8B", - "tlb": "#6F8B", - "prefix": "6F8B", - "operands": [] - }, - "value_flow": { - "doc_stack": "t - x", - "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] - }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } - } - }, - { - "mnemonic": "TPUSH", - "doc": { - "category": "tuple", - "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\u0432\u0402\u2122|", - "fift": "TPUSH\nCOMMA" - }, - "bytecode": { - "doc_opcode": "6F8C", - "tlb": "#6F8C", - "prefix": "6F8C", - "operands": [] - }, - "value_flow": { - "doc_stack": "t x - t'", - "inputs": { - "stack": [ - { "type": "simple", "name": "t", "value_types": ["Tuple"] }, - { "type": "simple", "name": "x" } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "t2", "value_types": ["Tuple"] } - ] - } - } - }, - { - "mnemonic": "TPOP", - "doc": { - "category": "tuple", - "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\u0432\u0402\u2122|", - "fift": "TPOP" - }, - "bytecode": { - "doc_opcode": "6F8D", - "tlb": "#6F8D", - "prefix": "6F8D", - "operands": [] - }, - "value_flow": { - "doc_stack": "t - t' x", - "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "t2", "value_types": ["Tuple"] }, - { "type": "simple", "name": "x" } - ] - } - } - }, - { - "mnemonic": "NULLSWAPIF", - "doc": { - "category": "tuple", - "description": "Pushes a _Null_ under the topmost _Integer_ `x`, but only if `x!=0`.", - "gas": "26", - "fift": "NULLSWAPIF" - }, - "bytecode": { - "doc_opcode": "6FA0", - "tlb": "#6FA0", - "prefix": "6FA0", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x or null x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "x", - "match": [{ "value": 0, "stack": [] }], - "else": [{ "type": "const", "value": null, "value_type": "Null" }] - }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "NULLSWAPIFNOT", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6FA1", - "tlb": "#6FA1", - "prefix": "6FA1", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x or null x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "x", - "match": [ - { - "value": 0, - "stack": [ - { "type": "const", "value": null, "value_type": "Null" } - ] - } - ], - "else": [] - }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "NULLROTRIF", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6FA2", - "tlb": "#6FA2", - "prefix": "6FA2", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x y or null x y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "y", - "match": [{ "value": 0, "stack": [] }], - "else": [{ "type": "const", "value": null, "value_type": "Null" }] - }, - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "NULLROTRIFNOT", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6FA3", - "tlb": "#6FA3", - "prefix": "6FA3", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x y or null x y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "y", - "match": [ - { - "value": 0, - "stack": [ - { "type": "const", "value": null, "value_type": "Null" } - ] - } - ], - "else": [] - }, - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "NULLSWAPIF2", - "doc": { - "category": "tuple", - "description": "Pushes two nulls under the topmost _Integer_ `x`, but only if `x!=0`.\nEquivalent to `NULLSWAPIF` `NULLSWAPIF`.", - "gas": "26", - "fift": "NULLSWAPIF2" - }, - "bytecode": { - "doc_opcode": "6FA4", - "tlb": "#6FA4", - "prefix": "6FA4", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x or null null x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "x", - "match": [{ "value": 0, "stack": [] }], - "else": [ - { "type": "const", "value": null, "value_type": "Null" }, - { "type": "const", "value": null, "value_type": "Null" } - ] - }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "NULLSWAPIFNOT2", - "doc": { - "category": "tuple", - "description": "Pushes two nulls under the topmost _Integer_ `x`, but only if `x=0`.\nEquivalent to `NULLSWAPIFNOT` `NULLSWAPIFNOT`.", - "gas": "26", - "fift": "NULLSWAPIFNOT2" - }, - "bytecode": { - "doc_opcode": "6FA5", - "tlb": "#6FA5", - "prefix": "6FA5", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x or null null x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "x", - "match": [ - { - "value": 0, - "stack": [ - { "type": "const", "value": null, "value_type": "Null" }, - { "type": "const", "value": null, "value_type": "Null" } - ] - } - ], - "else": [] - }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "NULLROTRIF2", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6FA6", - "tlb": "#6FA6", - "prefix": "6FA6", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x y or null null x y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "y", - "match": [{ "value": 0, "stack": [] }], - "else": [ - { "type": "const", "value": null, "value_type": "Null" }, - { "type": "const", "value": null, "value_type": "Null" } - ] - }, - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "NULLROTRIFNOT2", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6FA7", - "tlb": "#6FA7", - "prefix": "6FA7", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x y or null null x y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "y", - "match": [ - { - "value": 0, - "stack": [ - { "type": "const", "value": null, "value_type": "Null" }, - { "type": "const", "value": null, "value_type": "Null" } - ] - } - ], - "else": [] - }, - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "INDEX2", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6FBij", - "tlb": "#6FB i:uint2 j:uint2", - "prefix": "6FB", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 2 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 2 } } - ] - }, - "value_flow": { - "doc_stack": "t - x", - "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] - }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } - } - }, - { - "mnemonic": "INDEX3", - "doc": { - "category": "tuple", - "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" - }, - "bytecode": { - "doc_opcode": "6FE_ijk", - "tlb": "#6FE_ i:uint2 j:uint2 k:uint2", - "prefix": "6FE_", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 2 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 2 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 2 } } - ] - }, - "value_flow": { - "doc_stack": "t - x", - "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] - }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } - } - }, - { - "mnemonic": "PUSHINT_4", - "doc": { - "category": "const_int", - "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" - }, - "bytecode": { - "doc_opcode": "7i", - "tlb": "#7 i:uint4", - "prefix": "7", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "- x", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PUSHINT_8", - "doc": { - "category": "const_int", - "description": "Pushes integer `xx`. `-128 <= xx <= 127`.", - "gas": "26", - "fift": "[xx] PUSHINT\n[xx] INT" - }, - "bytecode": { - "doc_opcode": "80xx", - "tlb": "#80 xx:int8", - "prefix": "80", - "operands": [ - { "name": "x", "loader": "int", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "- xx", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PUSHINT_16", - "doc": { - "category": "const_int", - "description": "Pushes integer `xxxx`. `-2^15 <= xx < 2^15`.", - "gas": "34", - "fift": "[xxxx] PUSHINT\n[xxxx] INT" - }, - "bytecode": { - "doc_opcode": "81xxxx", - "tlb": "#81 xxxx:int16", - "prefix": "81", - "operands": [ - { "name": "x", "loader": "int", "loader_args": { "size": 16 } } - ] - }, - "value_flow": { - "doc_stack": "- xxxx", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PUSHINT_LONG", - "doc": { - "category": "const_int", - "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" - }, - "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", "loader": "pushint_long", "loader_args": {} } - ] - }, - "value_flow": { - "doc_stack": "- xxx", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PUSHPOW2", - "doc": { - "category": "const_int", - "description": "(Quietly) pushes `2^(xx+1)` for `0 <= xx <= 255`.\n`2^256` is a `NaN`.", - "gas": "26", - "fift": "[xx+1] PUSHPOW2" - }, - "bytecode": { - "doc_opcode": "83xx", - "tlb": "#83 xx:uint8", - "prefix": "83", - "operands_range_check": { "length": 8, "from": 0, "to": 254 }, - "operands": [ - { "name": "x", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "- 2^(xx+1)", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PUSHNAN", - "doc": { - "category": "const_int", - "description": "Pushes a `NaN`.", - "gas": "26", - "fift": "PUSHNAN" - }, - "bytecode": { - "doc_opcode": "83FF", - "tlb": "#83FF", - "prefix": "83FF", - "operands": [] - }, - "value_flow": { - "doc_stack": "- NaN", - "inputs": { "stack": [] }, - "outputs": { - "stack": [{ "type": "const", "value_type": "Integer", "value": null }] - } - } - }, - { - "mnemonic": "PUSHPOW2DEC", - "doc": { - "category": "const_int", - "description": "Pushes `2^(xx+1)-1` for `0 <= xx <= 255`.", - "gas": "26", - "fift": "[xx+1] PUSHPOW2DEC" - }, - "bytecode": { - "doc_opcode": "84xx", - "tlb": "#84 xx:uint8", - "prefix": "84", - "operands": [ - { "name": "x", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "- 2^(xx+1)-1", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PUSHNEGPOW2", - "doc": { - "category": "const_int", - "description": "Pushes `-2^(xx+1)` for `0 <= xx <= 255`.", - "gas": "26", - "fift": "[xx+1] PUSHNEGPOW2" - }, - "bytecode": { - "doc_opcode": "85xx", - "tlb": "#85 xx:uint8", - "prefix": "85", - "operands": [ - { "name": "x", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "- -2^(xx+1)", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PUSHREF", - "doc": { - "category": "const_data", - "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" - }, - "bytecode": { - "doc_opcode": "88", - "tlb": "#88 c:^Cell", - "prefix": "88", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] - }, - "value_flow": { - "doc_stack": "- c", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Cell"] } - ] - } - } - }, - { - "mnemonic": "PUSHREFSLICE", - "doc": { - "category": "const_data", - "description": "Similar to `PUSHREF`, but converts the cell into a _Slice_.", - "gas": "118/43", - "fift": "[ref] PUSHREFSLICE" - }, - "bytecode": { - "doc_opcode": "89", - "tlb": "#89 c:^Cell", - "prefix": "89", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] - }, - "value_flow": { - "doc_stack": "- s", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "PUSHREFCONT", - "doc": { - "category": "const_data", - "description": "Similar to `PUSHREFSLICE`, but makes a simple ordinary _Continuation_ out of the cell.", - "gas": "118/43", - "fift": "[ref] PUSHREFCONT" - }, - "bytecode": { - "doc_opcode": "8A", - "tlb": "#8A c:^Cell", - "prefix": "8A", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] - }, - "value_flow": { - "doc_stack": "- cont", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "PUSHSLICE", - "doc": { - "category": "const_data", - "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" - }, - "bytecode": { - "doc_opcode": "8Bxsss", - "tlb": "#8B x:(## 4) sss:((8 * x + 4) * Bit)", - "prefix": "8B", - "operands": [ - { - "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 4, - "bits_padding": 4, - "completion_tag": true - } - } - ] - }, - "value_flow": { - "doc_stack": "- s", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "PUSHSLICE_REFS", - "doc": { - "category": "const_data", - "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" - }, - "bytecode": { - "doc_opcode": "8Crxxssss", - "tlb": "#8C r:(## 2) xx:(## 5) c:((r + 1) * ^Cell) ssss:((8 * xx + 1) * Bit)", - "prefix": "8C", - "operands": [ - { - "name": "slice", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 5, - "bits_padding": 1, - "refs_length_var_size": 2, - "refs_add": 1, - "completion_tag": true - } - } - ] - }, - "value_flow": { - "doc_stack": "- s", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "PUSHSLICE_LONG", - "doc": { - "category": "const_data", - "description": "Pushes the slice `slice` into the stack.\n_Details:_ Pushes the subslice of `cc.code` consisting of `0 <= r <= 4` references and up to `8xx+6` bits of data, with `0 <= xx <= 127`.\nA completion tag is assumed.", - "gas": "28", - "fift": "[slice] PUSHSLICE\n[slice] SLICE", - "fift_examples": [ - { - "fift": "x{} PUSHSLICE x{ABCD1234} PUSHSLICE b{01101} PUSHSLICE", - "description": "Examples of `PUSHSLICE`. `x{}` is an empty slice. `x{...}` is a hexadecimal literal. `b{...}` is a binary literal. More on slice literals [here](https://github.com/Piterden/TON-docs/blob/master/Fift.%20A%20Brief%20Introduction.md#user-content-51-slice-literals). Note that the assembler can replace `PUSHSLICE` with `PUSHREFSLICE` in certain situations (e.g. if there’s not enough space in the current continuation)." - }, - { - "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)." - } - ] - }, - "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 }, - "operands": [ - { - "name": "slice", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 7, - "bits_padding": 6, - "refs_length_var_size": 3, - "completion_tag": true - } - } - ] - }, - "value_flow": { - "doc_stack": "- s", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "PUSHCONT", - "doc": { - "category": "const_data", - "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" - }, - "bytecode": { - "doc_opcode": "8F_rxxcccc", - "tlb": "#8F_ r:(## 2) xx:(## 7) c:(r * ^Cell) ssss:((8 * xx) * Bit)", - "prefix": "8F_", - "operands": [ - { - "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 7, - "bits_padding": 0, - "refs_length_var_size": 2 - } - } - ] - }, - "value_flow": { - "doc_stack": "- c", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Continuation"] - } - ] - } - } - }, - { - "mnemonic": "PUSHCONT_SHORT", - "doc": { - "category": "const_data", - "description": "Pushes a continuation made from `builder`.\n_Details:_ Pushes an `x`-byte continuation for `0 <= x <= 15`.", - "gas": "18", - "fift": "[builder] PUSHCONT\n[builder] CONT", - "fift_examples": [ - { - "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)." - } - ] - }, - "bytecode": { - "doc_opcode": "9xccc", - "tlb": "#9 x:(## 4) ssss:((8 * x) * Bit)", - "prefix": "9", - "operands": [ - { - "name": "s", - "loader": "subslice", - "loader_args": { "bits_length_var_size": 4, "bits_padding": 0 } - } - ] - }, - "value_flow": { - "doc_stack": "- c", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - } - } - }, - { - "mnemonic": "ADD", - "doc": { - "category": "arithm_basic", - "description": "", - "gas": "18", - "fift": "ADD" - }, - "bytecode": { - "doc_opcode": "A0", - "tlb": "#A0", - "prefix": "A0", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x+y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SUB", - "doc": { - "category": "arithm_basic", - "description": "", - "gas": "18", - "fift": "SUB" - }, - "bytecode": { - "doc_opcode": "A1", - "tlb": "#A1", - "prefix": "A1", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x-y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SUBR", - "doc": { - "category": "arithm_basic", - "description": "Equivalent to `SWAP` `SUB`.", - "gas": "18", - "fift": "SUBR" - }, - "bytecode": { - "doc_opcode": "A2", - "tlb": "#A2", - "prefix": "A2", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - y-x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "NEGATE", - "doc": { - "category": "arithm_basic", - "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" - }, - "bytecode": { - "doc_opcode": "A3", - "tlb": "#A3", - "prefix": "A3", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - -x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "INC", - "doc": { - "category": "arithm_basic", - "description": "Equivalent to `1 ADDCONST`.", - "gas": "18", - "fift": "INC" - }, - "bytecode": { - "doc_opcode": "A4", - "tlb": "#A4", - "prefix": "A4", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x+1", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DEC", - "doc": { - "category": "arithm_basic", - "description": "Equivalent to `-1 ADDCONST`.", - "gas": "18", - "fift": "DEC" - }, - "bytecode": { - "doc_opcode": "A5", - "tlb": "#A5", - "prefix": "A5", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x-1", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "ADDCONST", - "doc": { - "category": "arithm_basic", - "description": "`-128 <= cc <= 127`.", - "gas": "26", - "fift": "[cc] ADDCONST\n[cc] ADDINT\n[-cc] SUBCONST\n[-cc] SUBINT" - }, - "bytecode": { - "doc_opcode": "A6cc", - "tlb": "#A6 cc:int8", - "prefix": "A6", - "operands": [ - { "name": "c", "loader": "int", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - x+cc", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULCONST", - "doc": { - "category": "arithm_basic", - "description": "`-128 <= cc <= 127`.", - "gas": "26", - "fift": "[cc] MULCONST\n[cc] MULINT" - }, - "bytecode": { - "doc_opcode": "A7cc", - "tlb": "#A7 cc:int8", - "prefix": "A7", - "operands": [ - { "name": "c", "loader": "int", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - x*cc", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MUL", - "doc": { - "category": "arithm_basic", - "description": "", - "gas": "18", - "fift": "MUL" - }, - "bytecode": { - "doc_opcode": "A8", - "tlb": "#A8", - "prefix": "A8", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x*y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "ADDDIVMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "ADDDIVMOD" - }, - "bytecode": { - "doc_opcode": "A900", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "ADDDIVMODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "ADDDIVMODR" - }, - "bytecode": { - "doc_opcode": "A901", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "ADDDIVMODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "ADDDIVMODC" - }, - "bytecode": { - "doc_opcode": "A902", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DIV", - "doc": { - "category": "arithm_div", - "description": "`q=floor(x/y)`, `r=x-y*q`", - "gas": "26", - "fift": "DIV" - }, - "bytecode": { - "doc_opcode": "A904", - "tlb": "#A904", - "prefix": "A904", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DIVR", - "doc": { - "category": "arithm_div", - "description": "`q\u0432\u0402\u2122=round(x/y)`, `r\u0432\u0402\u2122=x-y*q\u0432\u0402\u2122`", - "gas": "26", - "fift": "DIVR" - }, - "bytecode": { - "doc_opcode": "A905", - "tlb": "#A905", - "prefix": "A905", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q\u0432\u0402\u2122", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DIVC", - "doc": { - "category": "arithm_div", - "description": "`q\u0432\u0402\u2122\u0432\u0402\u2122=ceil(x/y)`, `r\u0432\u0402\u2122\u0432\u0402\u2122=x-y*q\u0432\u0402\u2122\u0432\u0402\u2122`", - "gas": "26", - "fift": "DIVC" - }, - "bytecode": { - "doc_opcode": "A906", - "tlb": "#A906", - "prefix": "A906", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q''", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MOD" - }, - "bytecode": { - "doc_opcode": "A908", - "tlb": "#A908", - "prefix": "A908", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - r", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MODR" - }, - "bytecode": { - "doc_opcode": "A909", - "tlb": "#A909", - "prefix": "A909", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - r", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MODC" - }, - "bytecode": { - "doc_opcode": "A90A", - "tlb": "#A90A", - "prefix": "A90A", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - r", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DIVMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "DIVMOD" - }, - "bytecode": { - "doc_opcode": "A90C", - "tlb": "#A90C", - "prefix": "A90C", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q r", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DIVMODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "DIVMODR" - }, - "bytecode": { - "doc_opcode": "A90D", - "tlb": "#A90D", - "prefix": "A90D", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q' r'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DIVMODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "DIVMODC" - }, - "bytecode": { - "doc_opcode": "A90E", - "tlb": "#A90E", - "prefix": "A90E", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q'' r''", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "ADDRSHIFTMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "ADDRSHIFTMOD" - }, - "bytecode": { - "doc_opcode": "A920", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "ADDRSHIFTMODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "ADDRSHIFTMODR" - }, - "bytecode": { - "doc_opcode": "A921", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "ADDRSHIFTMODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "ADDRSHIFTMODC" - }, - "bytecode": { - "doc_opcode": "A922", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RSHIFTR_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "RSHIFTR" - }, - "bytecode": { - "doc_opcode": "A925", - "tlb": "#A925", - "prefix": "A925", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - round(x/2^y)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RSHIFTC_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "RSHIFTC" - }, - "bytecode": { - "doc_opcode": "A926", - "tlb": "#A926", - "prefix": "A926", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - ceil(x/2^y)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MODPOW2_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MODPOW2" - }, - "bytecode": { - "doc_opcode": "A928", - "tlb": "#A928", - "prefix": "A928", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x mod 2^y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MODPOW2R_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MODPOW2R" - }, - "bytecode": { - "doc_opcode": "A929", - "tlb": "#A929", - "prefix": "A929", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x mod 2^y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MODPOW2C_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MODPOW2C" - }, - "bytecode": { - "doc_opcode": "A92A", - "tlb": "#A92A", - "prefix": "A92A", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x mod 2^y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RSHIFTMOD_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "RSHIFTMOD" - }, - "bytecode": { - "doc_opcode": "A92C", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RSHIFTMODR_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "RSHIFTMODR" - }, - "bytecode": { - "doc_opcode": "A92D", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RSHIFTMODC_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "RSHIFTMODC" - }, - "bytecode": { - "doc_opcode": "A92E", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "ADDRSHIFTMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] ADDRSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "A930tt", - "tlb": "#A930 tt:uint8", - "prefix": "A930", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "ADDRSHIFTRMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] ADDRSHIFTR#MOD" - }, - "bytecode": { - "doc_opcode": "A931tt", - "tlb": "#A931 tt:uint8", - "prefix": "A931", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "ADDRSHIFTCMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] ADDRSHIFTC#MOD" - }, - "bytecode": { - "doc_opcode": "A932tt", - "tlb": "#A932 tt:uint8", - "prefix": "A932", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RSHIFTR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] RSHIFTR#" - }, - "bytecode": { - "doc_opcode": "A935tt", - "tlb": "#A935 tt:uint8", - "prefix": "A935", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - round(x/2^(tt+1))", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RSHIFTC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] RSHIFTC#" - }, - "bytecode": { - "doc_opcode": "A936tt", - "tlb": "#A936 tt:uint8", - "prefix": "A936", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - ceil(x/2^(tt+1))", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MODPOW2", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MODPOW2#" - }, - "bytecode": { - "doc_opcode": "A938tt", - "tlb": "#A938 tt:uint8", - "prefix": "A938", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MODPOW2R", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MODPOW2R#" - }, - "bytecode": { - "doc_opcode": "A939tt", - "tlb": "#A939 tt:uint8", - "prefix": "A939", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MODPOW2C", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MODPOW2C#" - }, - "bytecode": { - "doc_opcode": "A93Att", - "tlb": "#A93A tt:uint8", - "prefix": "A93A", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RSHIFTMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] RSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "A93Ctt", - "tlb": "#A93C tt:uint8", - "prefix": "A93C", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RSHIFTRMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] RSHIFTR#MOD" - }, - "bytecode": { - "doc_opcode": "A93Dtt", - "tlb": "#A93D tt:uint8", - "prefix": "A93D", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RSHIFTCMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] RSHIFTC#MOD" - }, - "bytecode": { - "doc_opcode": "A93Ett", - "tlb": "#A93E tt:uint8", - "prefix": "A93E", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULADDDIVMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULADDDIVMOD" - }, - "bytecode": { - "doc_opcode": "A980", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULADDDIVMODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULADDDIVMODR" - }, - "bytecode": { - "doc_opcode": "A981", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULADDDIVMODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULADDDIVMODC" - }, - "bytecode": { - "doc_opcode": "A982", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULDIV", - "doc": { - "category": "arithm_div", - "description": "`q=floor(x*y/z)`", - "gas": "26", - "fift": "MULDIV" - }, - "bytecode": { - "doc_opcode": "A984", - "tlb": "#A984", - "prefix": "A984", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULDIVR", - "doc": { - "category": "arithm_div", - "description": "`q'=round(x*y/z)`", - "gas": "26", - "fift": "MULDIVR" - }, - "bytecode": { - "doc_opcode": "A985", - "tlb": "#A985", - "prefix": "A985", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULDIVC", - "doc": { - "category": "arithm_div", - "description": "`q'=ceil(x*y/z)`", - "gas": "26", - "fift": "MULDIVC" - }, - "bytecode": { - "doc_opcode": "A986", - "tlb": "#A986", - "prefix": "A986", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULMOD" - }, - "bytecode": { - "doc_opcode": "A988", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULMODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULMODR" - }, - "bytecode": { - "doc_opcode": "A989", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULMODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULMODC" - }, - "bytecode": { - "doc_opcode": "A98A", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULDIVMOD", - "doc": { - "category": "arithm_div", - "description": "`q=floor(x*y/z)`, `r=x*y-z*q`", - "gas": "26", - "fift": "MULDIVMOD" - }, - "bytecode": { - "doc_opcode": "A98C", - "tlb": "#A98C", - "prefix": "A98C", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q r", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULDIVMODR", - "doc": { - "category": "arithm_div", - "description": "`q=round(x*y/z)`, `r=x*y-z*q`", - "gas": "26", - "fift": "MULDIVMODR" - }, - "bytecode": { - "doc_opcode": "A98D", - "tlb": "#A98D", - "prefix": "A98D", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q r", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULDIVMODC", - "doc": { - "category": "arithm_div", - "description": "`q=ceil(x*y/z)`, `r=x*y-z*q`", - "gas": "26", - "fift": "MULDIVMODC" - }, - "bytecode": { - "doc_opcode": "A98E", - "tlb": "#A98E", - "prefix": "A98E", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q r", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULADDRSHIFTMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULADDRSHIFTMOD" - }, - "bytecode": { - "doc_opcode": "A9A0", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULADDRSHIFTRMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULADDRSHIFTRMOD" - }, - "bytecode": { - "doc_opcode": "A9A1", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULADDRSHIFTCMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULADDRSHIFTCMOD" - }, - "bytecode": { - "doc_opcode": "A9A2", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULRSHIFT_VAR", - "doc": { - "category": "arithm_div", - "description": "`0 <= z <= 256`", - "gas": "26", - "fift": "MULRSHIFT" - }, - "bytecode": { - "doc_opcode": "A9A4", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTR_VAR", - "doc": { - "category": "arithm_div", - "description": "`0 <= z <= 256`", - "gas": "26", - "fift": "MULRSHIFTR" - }, - "bytecode": { - "doc_opcode": "A9A5", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTC_VAR", - "doc": { - "category": "arithm_div", - "description": "`0 <= z <= 256`", - "gas": "26", - "fift": "MULRSHIFTC" - }, - "bytecode": { - "doc_opcode": "A9A6", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULMODPOW2_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULMODPOW2_VAR" - }, - "bytecode": { - "doc_opcode": "A9A8", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULMODPOW2R_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULMODPOW2R_VAR" - }, - "bytecode": { - "doc_opcode": "A9A9", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULMODPOW2C_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULMODPOW2C_VAR" - }, - "bytecode": { - "doc_opcode": "A9AA", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTMOD_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULRSHIFTMOD_VAR" - }, - "bytecode": { - "doc_opcode": "A9AC", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTRMOD_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULRSHIFTRMOD_VAR" - }, - "bytecode": { - "doc_opcode": "A9AD", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTCMOD_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "MULRSHIFTCMOD_VAR" - }, - "bytecode": { - "doc_opcode": "A9AE", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULADDRSHIFTMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULADDRSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "A9B0tt", - "tlb": "#A9B0 tt:uint8", - "prefix": "A9B0", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULADDRSHIFTRMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULADDRSHIFTR#MOD" - }, - "bytecode": { - "doc_opcode": "A9B1tt", - "tlb": "#A9B1 tt:uint8", - "prefix": "A9B1", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULADDRSHIFTCMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULADDRSHIFTC#MOD" - }, - "bytecode": { - "doc_opcode": "A9B2tt", - "tlb": "#A9B2 tt:uint8", - "prefix": "A9B2", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULRSHIFT", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULRSHIFT#" - }, - "bytecode": { - "doc_opcode": "A9B4tt", - "tlb": "#A9B4 tt:uint8", - "prefix": "A9B4", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - floor(x*y/2^(tt+1))", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULRSHIFTR#" - }, - "bytecode": { - "doc_opcode": "A9B5tt", - "tlb": "#A9B5 tt:uint8", - "prefix": "A9B5", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - round(x*y/2^(tt+1))", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULRSHIFTC#" - }, - "bytecode": { - "doc_opcode": "A9B6tt", - "tlb": "#A9B6 tt:uint8", - "prefix": "A9B6", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - ceil(x*y/2^(tt+1))", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULMODPOW2", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULMODPOW2#" - }, - "bytecode": { - "doc_opcode": "A9B8tt", - "tlb": "#A9B8 tt:uint8", - "prefix": "A9B8", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULMODPOW2R", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULMODPOW2R#" - }, - "bytecode": { - "doc_opcode": "A9B9tt", - "tlb": "#A9B9 tt:uint8", - "prefix": "A9B9", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULMODPOW2C", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] MULMODPOW2C#" - }, - "bytecode": { - "doc_opcode": "A9BAtt", - "tlb": "#A9BA tt:uint8", - "prefix": "A9BA", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "MULRSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "A9BC", - "tlb": "#A9BC", - "prefix": "A9BC", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTRMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "MULRSHIFTR#MOD" - }, - "bytecode": { - "doc_opcode": "A9BD", - "tlb": "#A9BD", - "prefix": "A9BD", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MULRSHIFTCMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "MULRSHIFTC#MOD" - }, - "bytecode": { - "doc_opcode": "A9BE", - "tlb": "#A9BE", - "prefix": "A9BE", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTADDDIVMOD_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTADDDIVMOD" - }, - "bytecode": { - "doc_opcode": "A9C0", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTADDDIVMODR_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTADDDIVMODR" - }, - "bytecode": { - "doc_opcode": "A9C1", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTADDDIVMODC_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTADDDIVMODC" - }, - "bytecode": { - "doc_opcode": "A9C2", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIV_VAR", - "doc": { - "category": "arithm_div", - "description": "`0 <= z <= 256`", - "gas": "26", - "fift": "LSHIFTDIV" - }, - "bytecode": { - "doc_opcode": "A9C4", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVR_VAR", - "doc": { - "category": "arithm_div", - "description": "`0 <= z <= 256`", - "gas": "26", - "fift": "LSHIFTDIVR" - }, - "bytecode": { - "doc_opcode": "A9C5", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVC_VAR", - "doc": { - "category": "arithm_div", - "description": "`0 <= z <= 256`", - "gas": "26", - "fift": "LSHIFTDIVC" - }, - "bytecode": { - "doc_opcode": "A9C6", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTMOD_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTMOD" - }, - "bytecode": { - "doc_opcode": "A9C8", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTMODR_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTMODR" - }, - "bytecode": { - "doc_opcode": "A9C9", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTMODC_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTMODC" - }, - "bytecode": { - "doc_opcode": "A9CA", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVMOD_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTDIVMOD" - }, - "bytecode": { - "doc_opcode": "A9CC", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVMODR_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTDIVMODR" - }, - "bytecode": { - "doc_opcode": "A9CD", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVMODC_VAR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "LSHIFTDIVMODC" - }, - "bytecode": { - "doc_opcode": "A9CE", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTADDDIVMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#ADDDIVMOD" - }, - "bytecode": { - "doc_opcode": "A9D0tt", - "tlb": "#A9D0 tt:uint8", - "prefix": "A9D0", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTADDDIVMODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#ADDDIVMODR" - }, - "bytecode": { - "doc_opcode": "A9D1tt", - "tlb": "#A9D1 tt:uint8", - "prefix": "A9D1", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTADDDIVMODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#ADDDIVMODC" - }, - "bytecode": { - "doc_opcode": "A9D2tt", - "tlb": "#A9D2 tt:uint8", - "prefix": "A9D2", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIV", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#DIV" - }, - "bytecode": { - "doc_opcode": "A9D4tt", - "tlb": "#A9D4 tt:uint8", - "prefix": "A9D4", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - floor(2^(tt+1)*x/y)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#DIVR" - }, - "bytecode": { - "doc_opcode": "A9D5tt", - "tlb": "#A9D5 tt:uint8", - "prefix": "A9D5", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - round(2^(tt+1)*x/y)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "26", - "fift": "[tt+1] LSHIFT#DIVC" - }, - "bytecode": { - "doc_opcode": "A9D6tt", - "tlb": "#A9D6 tt:uint8", - "prefix": "A9D6", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - ceil(2^(tt+1)*x/y)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "A9D8tt", - "tlb": "#A9D8 tt:uint8", - "prefix": "A9D8", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTMODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#MODR" - }, - "bytecode": { - "doc_opcode": "A9D9tt", - "tlb": "#A9D9 tt:uint8", - "prefix": "A9D9", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTMODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#MODC" - }, - "bytecode": { - "doc_opcode": "A9DAtt", - "tlb": "#A9DA tt:uint8", - "prefix": "A9DA", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVMOD", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#DIVMOD" - }, - "bytecode": { - "doc_opcode": "A9DCtt", - "tlb": "#A9DC tt:uint8", - "prefix": "A9DC", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVMODR", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#DIVMODR" - }, - "bytecode": { - "doc_opcode": "A9DDtt", - "tlb": "#A9DD tt:uint8", - "prefix": "A9DD", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFTDIVMODC", - "doc": { - "category": "arithm_div", - "description": "", - "gas": "34", - "fift": "[tt+1] LSHIFT#DIVMODC" - }, - "bytecode": { - "doc_opcode": "A9DEtt", - "tlb": "#A9DE tt:uint8", - "prefix": "A9DE", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFT", - "doc": { - "category": "arithm_logical", - "description": "`0 <= cc <= 255`", - "gas": "26", - "fift": "[cc+1] LSHIFT#" - }, - "bytecode": { - "doc_opcode": "AAcc", - "tlb": "#AA cc:uint8", - "prefix": "AA", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - x*2^(cc+1)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RSHIFT", - "doc": { - "category": "arithm_logical", - "description": "`0 <= cc <= 255`", - "gas": "18", - "fift": "[cc+1] RSHIFT#" - }, - "bytecode": { - "doc_opcode": "ABcc", - "tlb": "#AB cc:uint8", - "prefix": "AB", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - floor(x/2^(cc+1))", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LSHIFT_VAR", - "doc": { - "category": "arithm_logical", - "description": "`0 <= y <= 1023`", - "gas": "18", - "fift": "LSHIFT" - }, - "bytecode": { - "doc_opcode": "AC", - "tlb": "#AC", - "prefix": "AC", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x*2^y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RSHIFT_VAR", - "doc": { - "category": "arithm_logical", - "description": "`0 <= y <= 1023`", - "gas": "18", - "fift": "RSHIFT" - }, - "bytecode": { - "doc_opcode": "AD", - "tlb": "#AD", - "prefix": "AD", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - floor(x/2^y)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "POW2", - "doc": { - "category": "arithm_logical", - "description": "`0 <= y <= 1023`\nEquivalent to `ONE` `SWAP` `LSHIFT`.", - "gas": "18", - "fift": "POW2" - }, - "bytecode": { - "doc_opcode": "AE", - "tlb": "#AE", - "prefix": "AE", - "operands": [] - }, - "value_flow": { - "doc_stack": "y - 2^y", - "inputs": { - "stack": [ - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "AND", - "doc": { - "category": "arithm_logical", - "description": "Bitwise and of two signed integers `x` and `y`, sign-extended to infinity.", - "gas": "18", - "fift": "AND" - }, - "bytecode": { - "doc_opcode": "B0", - "tlb": "#B0", - "prefix": "B0", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x&y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "OR", - "doc": { - "category": "arithm_logical", - "description": "Bitwise or of two integers.", - "gas": "18", - "fift": "OR" - }, - "bytecode": { - "doc_opcode": "B1", - "tlb": "#B1", - "prefix": "B1", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x|y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "XOR", - "doc": { - "category": "arithm_logical", - "description": "Bitwise xor of two integers.", - "gas": "18", - "fift": "XOR" - }, - "bytecode": { - "doc_opcode": "B2", - "tlb": "#B2", - "prefix": "B2", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x xor y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "NOT", - "doc": { - "category": "arithm_logical", - "description": "Bitwise not of an integer.", - "gas": "26", - "fift": "NOT" - }, - "bytecode": { - "doc_opcode": "B3", - "tlb": "#B3", - "prefix": "B3", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - ~x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "FITS", - "doc": { - "category": "arithm_logical", - "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" - }, - "bytecode": { - "doc_opcode": "B4cc", - "tlb": "#B4 cc:uint8", - "prefix": "B4", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "UFITS", - "doc": { - "category": "arithm_logical", - "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" - }, - "bytecode": { - "doc_opcode": "B5cc", - "tlb": "#B5 cc:uint8", - "prefix": "B5", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "FITSX", - "doc": { - "category": "arithm_logical", - "description": "Checks whether `x` is a `c`-bit signed integer for `0 <= c <= 1023`.", - "gas": "26/76", - "fift": "FITSX" - }, - "bytecode": { - "doc_opcode": "B600", - "tlb": "#B600", - "prefix": "B600", - "operands": [] - }, - "value_flow": { - "doc_stack": "x c - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "c", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "UFITSX", - "doc": { - "category": "arithm_logical", - "description": "Checks whether `x` is a `c`-bit unsigned integer for `0 <= c <= 1023`.", - "gas": "26/76", - "fift": "UFITSX" - }, - "bytecode": { - "doc_opcode": "B601", - "tlb": "#B601", - "prefix": "B601", - "operands": [] - }, - "value_flow": { - "doc_stack": "x c - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "c", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BITSIZE", - "doc": { - "category": "arithm_logical", - "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" - }, - "bytecode": { - "doc_opcode": "B602", - "tlb": "#B602", - "prefix": "B602", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - c", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "UBITSIZE", - "doc": { - "category": "arithm_logical", - "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" - }, - "bytecode": { - "doc_opcode": "B603", - "tlb": "#B603", - "prefix": "B603", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - c", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MIN", - "doc": { - "category": "arithm_logical", - "description": "Computes the minimum of two integers `x` and `y`.", - "gas": "26", - "fift": "MIN" - }, - "bytecode": { - "doc_opcode": "B608", - "tlb": "#B608", - "prefix": "B608", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x or y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MAX", - "doc": { - "category": "arithm_logical", - "description": "Computes the maximum of two integers `x` and `y`.", - "gas": "26", - "fift": "MAX" - }, - "bytecode": { - "doc_opcode": "B609", - "tlb": "#B609", - "prefix": "B609", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x or y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "MINMAX", - "doc": { - "category": "arithm_logical", - "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" - }, - "bytecode": { - "doc_opcode": "B60A", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "r1", "value_types": ["Integer"] }, - { "type": "simple", "name": "r2", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "ABS", - "doc": { - "category": "arithm_logical", - "description": "Computes the absolute value of an integer `x`.", - "gas": "26", - "fift": "ABS" - }, - "bytecode": { - "doc_opcode": "B60B", - "tlb": "#B60B", - "prefix": "B60B", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - |x|", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QADD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QADD" - }, - "bytecode": { - "doc_opcode": "B7A0", - "tlb": "#B7A0", - "prefix": "B7A0", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x+y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QSUB", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QSUB" - }, - "bytecode": { - "doc_opcode": "B7A1", - "tlb": "#B7A1", - "prefix": "B7A1", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x-y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QSUBR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QSUBR" - }, - "bytecode": { - "doc_opcode": "B7A2", - "tlb": "#B7A2", - "prefix": "B7A2", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - y-x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QNEGATE", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QNEGATE" - }, - "bytecode": { - "doc_opcode": "B7A3", - "tlb": "#B7A3", - "prefix": "B7A3", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - -x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QINC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QINC" - }, - "bytecode": { - "doc_opcode": "B7A4", - "tlb": "#B7A4", - "prefix": "B7A4", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x+1", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QDEC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QDEC" - }, - "bytecode": { - "doc_opcode": "B7A5", - "tlb": "#B7A5", - "prefix": "B7A5", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x-1", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMUL", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QMUL" - }, - "bytecode": { - "doc_opcode": "B7A8", - "tlb": "#B7A8", - "prefix": "B7A8", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x*y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QADDDIVMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QADDDIVMOD" - }, - "bytecode": { - "doc_opcode": "B7A900", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QADDDIVMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QADDDIVMODR" - }, - "bytecode": { - "doc_opcode": "B7A901", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QADDDIVMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QADDDIVMODC" - }, - "bytecode": { - "doc_opcode": "B7A902", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QDIV", - "doc": { - "category": "arithm_quiet", - "description": "Division returns `NaN` if `y=0`.", - "gas": "34", - "fift": "QDIV" - }, - "bytecode": { - "doc_opcode": "B7A904", - "tlb": "#B7A904", - "prefix": "B7A904", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QDIVR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QDIVR" - }, - "bytecode": { - "doc_opcode": "B7A905", - "tlb": "#B7A905", - "prefix": "B7A905", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q\u0432\u0402\u2122", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QDIVC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QDIVC" - }, - "bytecode": { - "doc_opcode": "B7A906", - "tlb": "#B7A906", - "prefix": "B7A906", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q''", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMOD" - }, - "bytecode": { - "doc_opcode": "B7A908", - "tlb": "#B7A908", - "prefix": "B7A908", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - r", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMODR" - }, - "bytecode": { - "doc_opcode": "B7A909", - "tlb": "#B7A909", - "prefix": "B7A909", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - r", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMODC" - }, - "bytecode": { - "doc_opcode": "B7A90A", - "tlb": "#B7A90A", - "prefix": "B7A90A", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - r", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QDIVMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QDIVMOD" - }, - "bytecode": { - "doc_opcode": "B7A90C", - "tlb": "#B7A90C", - "prefix": "B7A90C", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q r", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QDIVMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QDIVMODR" - }, - "bytecode": { - "doc_opcode": "B7A90D", - "tlb": "#B7A90D", - "prefix": "B7A90D", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q' r'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QDIVMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QDIVMODC" - }, - "bytecode": { - "doc_opcode": "B7A90E", - "tlb": "#B7A90E", - "prefix": "B7A90E", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - q'' r''", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QADDRSHIFTMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QADDRSHIFTMOD" - }, - "bytecode": { - "doc_opcode": "B7A920", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QADDRSHIFTMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QADDRSHIFTMODR" - }, - "bytecode": { - "doc_opcode": "B7A921", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QADDRSHIFTMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QADDRSHIFTMODC" - }, - "bytecode": { - "doc_opcode": "B7A922", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QRSHIFTR_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QRSHIFTR" - }, - "bytecode": { - "doc_opcode": "B7A925", - "tlb": "#B7A925", - "prefix": "B7A925", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - round(x/2^y)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QRSHIFTC_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QRSHIFTC" - }, - "bytecode": { - "doc_opcode": "B7A926", - "tlb": "#B7A926", - "prefix": "B7A926", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - ceil(x/2^y)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMODPOW2_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMODPOW2" - }, - "bytecode": { - "doc_opcode": "B7A928", - "tlb": "#B7A928", - "prefix": "B7A928", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x mod 2^y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMODPOW2R_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMODPOW2R" - }, - "bytecode": { - "doc_opcode": "B7A929", - "tlb": "#B7A929", - "prefix": "B7A929", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x mod 2^y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMODPOW2C_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMODPOW2C" - }, - "bytecode": { - "doc_opcode": "B7A92A", - "tlb": "#B7A92A", - "prefix": "B7A92A", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x mod 2^y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QRSHIFTMOD_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QRSHIFTMOD" - }, - "bytecode": { - "doc_opcode": "B7A92C", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QRSHIFTMODR_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QRSHIFTMODR" - }, - "bytecode": { - "doc_opcode": "B7A92D", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QRSHIFTMODC_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QRSHIFTMODC" - }, - "bytecode": { - "doc_opcode": "B7A92E", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QADDRSHIFTMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QADDRSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "B7A930tt", - "tlb": "#B7A930 tt:uint8", - "prefix": "B7A930", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QADDRSHIFTRMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QADDRSHIFTR#MOD" - }, - "bytecode": { - "doc_opcode": "B7A931tt", - "tlb": "#B7A931 tt:uint8", - "prefix": "B7A931", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QADDRSHIFTCMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QADDRSHIFTC#MOD" - }, - "bytecode": { - "doc_opcode": "B7A932tt", - "tlb": "#B7A932 tt:uint8", - "prefix": "B7A932", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QRSHIFTR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QRSHIFTR#" - }, - "bytecode": { - "doc_opcode": "B7A935tt", - "tlb": "#B7A935 tt:uint8", - "prefix": "B7A935", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - round(x/2^(tt+1))", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QRSHIFTC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QRSHIFTC#" - }, - "bytecode": { - "doc_opcode": "B7A936tt", - "tlb": "#B7A936 tt:uint8", - "prefix": "B7A936", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - ceil(x/2^(tt+1))", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMODPOW2", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMODPOW2#" - }, - "bytecode": { - "doc_opcode": "B7A938tt", - "tlb": "#B7A938 tt:uint8", - "prefix": "B7A938", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMODPOW2R", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMODPOW2R#" - }, - "bytecode": { - "doc_opcode": "B7A939tt", - "tlb": "#B7A939 tt:uint8", - "prefix": "B7A939", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMODPOW2C", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMODPOW2C#" - }, - "bytecode": { - "doc_opcode": "B7A93Att", - "tlb": "#B7A93A tt:uint8", - "prefix": "B7A93A", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - x mod 2^(tt+1)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QRSHIFTMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QRSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "A93Ctt", - "tlb": "#A93C tt:uint8", - "prefix": "A93C", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QRSHIFTRMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QRSHIFTR#MOD" - }, - "bytecode": { - "doc_opcode": "A93Dtt", - "tlb": "#A93D tt:uint8", - "prefix": "A93D", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QRSHIFTCMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QRSHIFTC#MOD" - }, - "bytecode": { - "doc_opcode": "B7A93Ett", - "tlb": "#B7A93E tt:uint8", - "prefix": "B7A93E", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULADDDIVMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULADDDIVMOD" - }, - "bytecode": { - "doc_opcode": "B7A980", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULADDDIVMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULADDDIVMODR" - }, - "bytecode": { - "doc_opcode": "B7A981", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULADDDIVMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULADDDIVMODC" - }, - "bytecode": { - "doc_opcode": "B7A982", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULDIV", - "doc": { - "category": "arithm_quiet", - "description": "`q=floor(x*y/z)`", - "gas": "34", - "fift": "QMULDIV" - }, - "bytecode": { - "doc_opcode": "B7A984", - "tlb": "#B7A984", - "prefix": "B7A984", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULDIVR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULDIVR" - }, - "bytecode": { - "doc_opcode": "B7A985", - "tlb": "#B7A985", - "prefix": "B7A985", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULDIVC", - "doc": { - "category": "arithm_quiet", - "description": "`q'=ceil(x*y/z)`", - "gas": "34", - "fift": "QMULDIVC" - }, - "bytecode": { - "doc_opcode": "B7A986", - "tlb": "#B7A986", - "prefix": "B7A986", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULMOD" - }, - "bytecode": { - "doc_opcode": "B7A988", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULMODR" - }, - "bytecode": { - "doc_opcode": "B7A989", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULMODC" - }, - "bytecode": { - "doc_opcode": "B7A98A", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULDIVMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULDIVMOD" - }, - "bytecode": { - "doc_opcode": "B7A98C", - "tlb": "#B7A98C", - "prefix": "B7A98C", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q r", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULDIVMODR", - "doc": { - "category": "arithm_quiet", - "description": "`q=round(x*y/z)`, `r=x*y-z*q`", - "gas": "34", - "fift": "QMULDIVMODR" - }, - "bytecode": { - "doc_opcode": "B7A98D", - "tlb": "#B7A98D", - "prefix": "B7A98D", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q r", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULDIVMODC", - "doc": { - "category": "arithm_quiet", - "description": "`q=ceil(x*y/z)`, `r=x*y-z*q`", - "gas": "34", - "fift": "QMULDIVMODC" - }, - "bytecode": { - "doc_opcode": "B7A98E", - "tlb": "#B7A98E", - "prefix": "B7A98E", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y z - q r", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULADDRSHIFTMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULADDRSHIFTMOD" - }, - "bytecode": { - "doc_opcode": "B7A9A0", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULADDRSHIFTRMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULADDRSHIFTRMOD" - }, - "bytecode": { - "doc_opcode": "B7A9A1", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULADDRSHIFTCMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULADDRSHIFTCMOD" - }, - "bytecode": { - "doc_opcode": "B7A9A2", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "q", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFT_VAR", - "doc": { - "category": "arithm_quiet", - "description": "`0 <= z <= 256`", - "gas": "34", - "fift": "QMULRSHIFT" - }, - "bytecode": { - "doc_opcode": "B7A9A4", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTR_VAR", - "doc": { - "category": "arithm_quiet", - "description": "`0 <= z <= 256`", - "gas": "34", - "fift": "QMULRSHIFTR" - }, - "bytecode": { - "doc_opcode": "B7A9A5", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTC_VAR", - "doc": { - "category": "arithm_quiet", - "description": "`0 <= z <= 256`", - "gas": "34", - "fift": "QMULRSHIFTC" - }, - "bytecode": { - "doc_opcode": "B7A9A6", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULMODPOW2_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULMODPOW2_VAR" - }, - "bytecode": { - "doc_opcode": "B7A9A8", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULMODPOW2R_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULMODPOW2R_VAR" - }, - "bytecode": { - "doc_opcode": "B7A9A9", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULMODPOW2C_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULMODPOW2C_VAR" - }, - "bytecode": { - "doc_opcode": "B7A9AA", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTMOD_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULRSHIFTMOD_VAR" - }, - "bytecode": { - "doc_opcode": "B7A9AC", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTRMOD_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULRSHIFTRMOD_VAR" - }, - "bytecode": { - "doc_opcode": "B7A9AD", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTCMOD_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QMULRSHIFTCMOD_VAR" - }, - "bytecode": { - "doc_opcode": "B7A9AE", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULADDRSHIFTMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULADDRSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "B7A9B0tt", - "tlb": "#B7A9B0 tt:uint8", - "prefix": "B7A9B0", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULADDRSHIFTRMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULADDRSHIFTR#MOD" - }, - "bytecode": { - "doc_opcode": "B7A9B1tt", - "tlb": "#B7A9B1 tt:uint8", - "prefix": "B7A9B1", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULADDRSHIFTCMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULADDRSHIFTC#MOD" - }, - "bytecode": { - "doc_opcode": "B7A9B2tt", - "tlb": "#B7A9B2 tt:uint8", - "prefix": "B7A9B2", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFT", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULRSHIFT#" - }, - "bytecode": { - "doc_opcode": "B7A9B4tt", - "tlb": "#B7A9B4 tt:uint8", - "prefix": "B7A9B4", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - floor(x*y/2^(tt+1))", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULRSHIFTR#" - }, - "bytecode": { - "doc_opcode": "B7A9B5tt", - "tlb": "#B7A9B5 tt:uint8", - "prefix": "B7A9B5", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - round(x*y/2^(tt+1))", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULRSHIFTC#" - }, - "bytecode": { - "doc_opcode": "B7A9B6tt", - "tlb": "#B7A9B6 tt:uint8", - "prefix": "B7A9B6", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - ceil(x*y/2^(tt+1))", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULMODPOW2", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULMODPOW2#" - }, - "bytecode": { - "doc_opcode": "B7A9B8tt", - "tlb": "#B7A9B8 tt:uint8", - "prefix": "B7A9B8", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULMODPOW2R", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULMODPOW2R#" - }, - "bytecode": { - "doc_opcode": "B7A9B9tt", - "tlb": "#B7A9B9 tt:uint8", - "prefix": "B7A9B9", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULMODPOW2C", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QMULMODPOW2C#" - }, - "bytecode": { - "doc_opcode": "B7A9BAtt", - "tlb": "#B7A9BA tt:uint8", - "prefix": "B7A9BA", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - x*y mod 2^(tt+1)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "QMULRSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "B7A9BC", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTRMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "QMULRSHIFTR#MOD" - }, - "bytecode": { - "doc_opcode": "B7A9BD", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QMULRSHIFTCMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "QMULRSHIFTC#MOD" - }, - "bytecode": { - "doc_opcode": "B7A9BE", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTADDDIVMOD_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTADDDIVMOD" - }, - "bytecode": { - "doc_opcode": "B7A9C0", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTADDDIVMODR_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTADDDIVMODR" - }, - "bytecode": { - "doc_opcode": "B7A9C1", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTADDDIVMODC_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTADDDIVMODC" - }, - "bytecode": { - "doc_opcode": "B7A9C2", - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIV_VAR", - "doc": { - "category": "arithm_quiet", - "description": "`0 <= z <= 256`", - "gas": "34", - "fift": "QLSHIFTDIV" - }, - "bytecode": { - "doc_opcode": "B7A9C4", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVR_VAR", - "doc": { - "category": "arithm_quiet", - "description": "`0 <= z <= 256`", - "gas": "34", - "fift": "QLSHIFTDIVR" - }, - "bytecode": { - "doc_opcode": "B7A9C5", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVC_VAR", - "doc": { - "category": "arithm_quiet", - "description": "`0 <= z <= 256`", - "gas": "34", - "fift": "QLSHIFTDIVC" - }, - "bytecode": { - "doc_opcode": "B7A9C6", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTMOD_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTMOD" - }, - "bytecode": { - "doc_opcode": "B7A9C8", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTMODR_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTMODR" - }, - "bytecode": { - "doc_opcode": "B7A9C9", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTMODC_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTMODC" - }, - "bytecode": { - "doc_opcode": "B7A9CA", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVMOD_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTDIVMOD" - }, - "bytecode": { - "doc_opcode": "B7A9CC", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVMODR_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTDIVMODR" - }, - "bytecode": { - "doc_opcode": "B7A9CD", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVMODC_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "QLSHIFTDIVMODC" - }, - "bytecode": { - "doc_opcode": "B7A9CE", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTADDDIVMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#ADDDIVMOD" - }, - "bytecode": { - "doc_opcode": "B7A9D0tt", - "tlb": "#B7A9D0 tt:uint8", - "prefix": "B7A9D0", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTADDDIVMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#ADDDIVMODR" - }, - "bytecode": { - "doc_opcode": "B7A9D1tt", - "tlb": "#B7A9D1 tt:uint8", - "prefix": "B7A9D1", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTADDDIVMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#ADDDIVMODC" - }, - "bytecode": { - "doc_opcode": "B7A9D2tt", - "tlb": "#B7A9D2 tt:uint8", - "prefix": "B7A9D2", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "w", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIV", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#DIV" - }, - "bytecode": { - "doc_opcode": "B7A9D4tt", - "tlb": "#B7A9D4 tt:uint8", - "prefix": "B7A9D4", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - floor(2^(tt+1)*x/y)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#DIVR" - }, - "bytecode": { - "doc_opcode": "B7A9D5tt", - "tlb": "#B7A9D5 tt:uint8", - "prefix": "B7A9D5", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - round(2^(tt+1)*x/y)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "34", - "fift": "[tt+1] QLSHIFT#DIVC" - }, - "bytecode": { - "doc_opcode": "B7A9D6tt", - "tlb": "#B7A9D6 tt:uint8", - "prefix": "B7A9D6", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - ceil(2^(tt+1)*x/y)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#MOD" - }, - "bytecode": { - "doc_opcode": "B7A9D8tt", - "tlb": "#B7A9D8 tt:uint8", - "prefix": "B7A9D8", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] LSHIFT#MODR" - }, - "bytecode": { - "doc_opcode": "B7A9D9tt", - "tlb": "#B7A9D9 tt:uint8", - "prefix": "B7A9D9", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#MODC" - }, - "bytecode": { - "doc_opcode": "B7A9DAtt", - "tlb": "#B7A9DA tt:uint8", - "prefix": "B7A9DA", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x y - 2^(tt+1)*x mod y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVMOD", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#DIVMOD" - }, - "bytecode": { - "doc_opcode": "B7A9DCtt", - "tlb": "#B7A9DC tt:uint8", - "prefix": "B7A9DC", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVMODR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#DIVMODR" - }, - "bytecode": { - "doc_opcode": "B7A9DDtt", - "tlb": "#B7A9DD tt:uint8", - "prefix": "B7A9DD", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFTDIVMODC", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "42", - "fift": "[tt+1] QLSHIFT#DIVMODC" - }, - "bytecode": { - "doc_opcode": "B7A9DEtt", - "tlb": "#B7A9DE tt:uint8", - "prefix": "B7A9DE", - "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFT", - "doc": { - "category": "arithm_quiet", - "description": "`0 <= cc <= 255`", - "gas": "34", - "fift": "[cc+1] QLSHIFT#" - }, - "bytecode": { - "doc_opcode": "B7AAcc", - "tlb": "#B7AA cc:uint8", - "prefix": "B7AA", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - x*2^(cc+1)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QRSHIFT", - "doc": { - "category": "arithm_quiet", - "description": "`0 <= cc <= 255`", - "gas": "26", - "fift": "[cc+1] RSHIFT#" - }, - "bytecode": { - "doc_opcode": "B7ABcc", - "tlb": "#B7AB cc:uint8", - "prefix": "B7AB", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - floor(x/2^(cc+1))", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QLSHIFT_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QLSHIFT" - }, - "bytecode": { - "doc_opcode": "B7AC", - "tlb": "#B7AC", - "prefix": "B7AC", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x*2^y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QRSHIFT_VAR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QRSHIFT" - }, - "bytecode": { - "doc_opcode": "B7AD", - "tlb": "#B7AD", - "prefix": "B7AD", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - floor(x/2^y)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QPOW2", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QPOW2" - }, - "bytecode": { - "doc_opcode": "B7AE", - "tlb": "#B7AE", - "prefix": "B7AE", - "operands": [] - }, - "value_flow": { - "doc_stack": "y - 2^y", - "inputs": { - "stack": [ - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QAND", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QAND" - }, - "bytecode": { - "doc_opcode": "B7B0", - "tlb": "#B7B0", - "prefix": "B7B0", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x&y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QOR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QOR" - }, - "bytecode": { - "doc_opcode": "B7B1", - "tlb": "#B7B1", - "prefix": "B7B1", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x|y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QXOR", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QXOR" - }, - "bytecode": { - "doc_opcode": "B7B2", - "tlb": "#B7B2", - "prefix": "B7B2", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x xor y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QNOT", - "doc": { - "category": "arithm_quiet", - "description": "", - "gas": "26", - "fift": "QNOT" - }, - "bytecode": { - "doc_opcode": "B7B3", - "tlb": "#B7B3", - "prefix": "B7B3", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - ~x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QFITS", - "doc": { - "category": "arithm_quiet", - "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" - }, - "bytecode": { - "doc_opcode": "B7B4cc", - "tlb": "#B7B4 cc:uint8", - "prefix": "B7B4", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QUFITS", - "doc": { - "category": "arithm_quiet", - "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" - }, - "bytecode": { - "doc_opcode": "B7B5cc", - "tlb": "#B7B5 cc:uint8", - "prefix": "B7B5", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QFITSX", - "doc": { - "category": "arithm_quiet", - "description": "Replaces `x` with a `NaN` if x is not a c-bit signed integer, leaves it intact otherwise.", - "gas": "34", - "fift": "QFITSX" - }, - "bytecode": { - "doc_opcode": "B7B600", - "tlb": "#B7B600", - "prefix": "B7B600", - "operands": [] - }, - "value_flow": { - "doc_stack": "x c - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "c", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "QUFITSX", - "doc": { - "category": "arithm_quiet", - "description": "Replaces `x` with a `NaN` if x is not a c-bit unsigned integer, leaves it intact otherwise.", - "gas": "34", - "fift": "QUFITSX" - }, - "bytecode": { - "doc_opcode": "B7B601", - "tlb": "#B7B601", - "prefix": "B7B601", - "operands": [] - }, - "value_flow": { - "doc_stack": "x c - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "c", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SGN", - "doc": { - "category": "compare_int", - "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" - }, - "bytecode": { - "doc_opcode": "B8", - "tlb": "#B8", - "prefix": "B8", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - sgn(x)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LESS", - "doc": { - "category": "compare_int", - "description": "Returns `-1` if `xy", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "NEQ", - "doc": { - "category": "compare_int", - "description": "Equivalent to `EQUAL` `NOT`.", - "gas": "18", - "fift": "NEQ" - }, - "bytecode": { - "doc_opcode": "BD", - "tlb": "#BD", - "prefix": "BD", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x!=y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "GEQ", - "doc": { - "category": "compare_int", - "description": "Equivalent to `LESS` `NOT`.", - "gas": "18", - "fift": "GEQ" - }, - "bytecode": { - "doc_opcode": "BE", - "tlb": "#BE", - "prefix": "BE", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x>=y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "CMP", - "doc": { - "category": "compare_int", - "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" - }, - "bytecode": { - "doc_opcode": "BF", - "tlb": "#BF", - "prefix": "BF", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - sgn(x-y)", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "EQINT", - "doc": { - "category": "compare_int", - "description": "Returns `-1` if `x=yy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", - "gas": "26", - "fift": "[yy] EQINT" - }, - "bytecode": { - "doc_opcode": "C0yy", - "tlb": "#C0 yy:int8", - "prefix": "C0", - "operands": [ - { "name": "y", "loader": "int", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - x=yy", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LESSINT", - "doc": { - "category": "compare_int", - "description": "Returns `-1` if `xyy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", - "gas": "26", - "fift": "[yy] GTINT\n[yy+1] GEQINT" - }, - "bytecode": { - "doc_opcode": "C2yy", - "tlb": "#C2 yy:int8", - "prefix": "C2", - "operands": [ - { "name": "y", "loader": "int", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - x>yy", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "NEQINT", - "doc": { - "category": "compare_int", - "description": "Returns `-1` if `x!=yy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", - "gas": "26", - "fift": "[yy] NEQINT" - }, - "bytecode": { - "doc_opcode": "C3yy", - "tlb": "#C3 yy:int8", - "prefix": "C3", - "operands": [ - { "name": "y", "loader": "int", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x - x!=yy", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "ISNAN", - "doc": { - "category": "compare_int", - "description": "Checks whether `x` is a `NaN`.", - "gas": "18", - "fift": "ISNAN" - }, - "bytecode": { - "doc_opcode": "C4", - "tlb": "#C4", - "prefix": "C4", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x=NaN", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "CHKNAN", - "doc": { - "category": "compare_int", - "description": "Throws an arithmetic overflow exception if `x` is a `NaN`.", - "gas": "18/68", - "fift": "CHKNAN" - }, - "bytecode": { - "doc_opcode": "C5", - "tlb": "#C5", - "prefix": "C5", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SEMPTY", - "doc": { - "category": "compare_other", - "description": "Checks whether a _Slice_ `s` is empty (i.e., contains no bits of data and no cell references).", - "gas": "26", - "fift": "SEMPTY" - }, - "bytecode": { - "doc_opcode": "C700", - "tlb": "#C700", - "prefix": "C700", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - ?", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDEMPTY", - "doc": { - "category": "compare_other", - "description": "Checks whether _Slice_ `s` has no bits of data.", - "gas": "26", - "fift": "SDEMPTY" - }, - "bytecode": { - "doc_opcode": "C701", - "tlb": "#C701", - "prefix": "C701", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - ?", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SREMPTY", - "doc": { - "category": "compare_other", - "description": "Checks whether _Slice_ `s` has no references.", - "gas": "26", - "fift": "SREMPTY" - }, - "bytecode": { - "doc_opcode": "C702", - "tlb": "#C702", - "prefix": "C702", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - ?", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDFIRST", - "doc": { - "category": "compare_other", - "description": "Checks whether the first bit of _Slice_ `s` is a one.", - "gas": "26", - "fift": "SDFIRST" - }, - "bytecode": { - "doc_opcode": "C703", - "tlb": "#C703", - "prefix": "C703", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - ?", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDLEXCMP", - "doc": { - "category": "compare_other", - "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" - }, - "bytecode": { - "doc_opcode": "C704", - "tlb": "#C704", - "prefix": "C704", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDEQ", - "doc": { - "category": "compare_other", - "description": "Checks whether the data parts of `s` and `s'` coincide, equivalent to `SDLEXCMP` `ISZERO`.", - "gas": "26", - "fift": "SDEQ" - }, - "bytecode": { - "doc_opcode": "C705", - "tlb": "#C705", - "prefix": "C705", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDPFX", - "doc": { - "category": "compare_other", - "description": "Checks whether `s` is a prefix of `s'`.", - "gas": "26", - "fift": "SDPFX" - }, - "bytecode": { - "doc_opcode": "C708", - "tlb": "#C708", - "prefix": "C708", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDPFXREV", - "doc": { - "category": "compare_other", - "description": "Checks whether `s'` is a prefix of `s`, equivalent to `SWAP` `SDPFX`.", - "gas": "26", - "fift": "SDPFXREV" - }, - "bytecode": { - "doc_opcode": "C709", - "tlb": "#C709", - "prefix": "C709", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDPPFX", - "doc": { - "category": "compare_other", - "description": "Checks whether `s` is a proper prefix of `s'` (i.e., a prefix distinct from `s'`).", - "gas": "26", - "fift": "SDPPFX" - }, - "bytecode": { - "doc_opcode": "C70A", - "tlb": "#C70A", - "prefix": "C70A", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDPPFXREV", - "doc": { - "category": "compare_other", - "description": "Checks whether `s'` is a proper prefix of `s`.", - "gas": "26", - "fift": "SDPPFXREV" - }, - "bytecode": { - "doc_opcode": "C70B", - "tlb": "#C70B", - "prefix": "C70B", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SDSFX", - "doc": { - "category": "compare_other", - "description": "Checks whether `s` is a suffix of `s'`.", - "gas": "26", - "fift": "SDSFX" - }, - "bytecode": { - "doc_opcode": "C70C", - "tlb": "#C70C", - "prefix": "C70C", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDSFXREV", - "doc": { - "category": "compare_other", - "description": "Checks whether `s'` is a suffix of `s`.", - "gas": "26", - "fift": "SDSFXREV" - }, - "bytecode": { - "doc_opcode": "C70D", - "tlb": "#C70D", - "prefix": "C70D", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDPSFX", - "doc": { - "category": "compare_other", - "description": "Checks whether `s` is a proper suffix of `s'`.", - "gas": "26", - "fift": "SDPSFX" - }, - "bytecode": { - "doc_opcode": "C70E", - "tlb": "#C70E", - "prefix": "C70E", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDPSFXREV", - "doc": { - "category": "compare_other", - "description": "Checks whether `s'` is a proper suffix of `s`.", - "gas": "26", - "fift": "SDPSFXREV" - }, - "bytecode": { - "doc_opcode": "C70F", - "tlb": "#C70F", - "prefix": "C70F", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDCNTLEAD0", - "doc": { - "category": "compare_other", - "description": "Returns the number of leading zeroes in `s`.", - "gas": "26", - "fift": "SDCNTLEAD0" - }, - "bytecode": { - "doc_opcode": "C710", - "tlb": "#C710", - "prefix": "C710", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - n", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDCNTLEAD1", - "doc": { - "category": "compare_other", - "description": "Returns the number of leading ones in `s`.", - "gas": "26", - "fift": "SDCNTLEAD1" - }, - "bytecode": { - "doc_opcode": "C711", - "tlb": "#C711", - "prefix": "C711", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - n", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDCNTTRAIL0", - "doc": { - "category": "compare_other", - "description": "Returns the number of trailing zeroes in `s`.", - "gas": "26", - "fift": "SDCNTTRAIL0" - }, - "bytecode": { - "doc_opcode": "C712", - "tlb": "#C712", - "prefix": "C712", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - n", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDCNTTRAIL1", - "doc": { - "category": "compare_other", - "description": "Returns the number of trailing ones in `s`.", - "gas": "26", - "fift": "SDCNTTRAIL1" - }, - "bytecode": { - "doc_opcode": "C713", - "tlb": "#C713", - "prefix": "C713", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - n", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "NEWC", - "doc": { - "category": "cell_build", - "description": "Creates a new empty _Builder_.", - "gas": "18", - "fift": "NEWC" - }, - "bytecode": { - "doc_opcode": "C8", - "tlb": "#C8", - "prefix": "C8", - "operands": [] - }, - "value_flow": { - "doc_stack": "- b", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "ENDC", - "doc": { - "category": "cell_build", - "description": "Converts a _Builder_ into an ordinary _Cell_.", - "gas": "518", - "fift": "ENDC" - }, - "bytecode": { - "doc_opcode": "C9", - "tlb": "#C9", - "prefix": "C9", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - c", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] - } - } - }, - { - "mnemonic": "STI", - "doc": { - "category": "cell_build", - "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" - }, - "bytecode": { - "doc_opcode": "CAcc", - "tlb": "#CA cc:uint8", - "prefix": "CA", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x b - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STU", - "doc": { - "category": "cell_build", - "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" - }, - "bytecode": { - "doc_opcode": "CBcc", - "tlb": "#CB cc:uint8", - "prefix": "CB", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x b - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STREF", - "doc": { - "category": "cell_build", - "description": "Stores a reference to _Cell_ `c` into _Builder_ `b`.", - "gas": "18", - "fift": "STREF" - }, - "bytecode": { - "doc_opcode": "CC", - "tlb": "#CC", - "prefix": "CC", - "operands": [] - }, - "value_flow": { - "doc_stack": "c b - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STBREFR", - "doc": { - "category": "cell_build", - "description": "Equivalent to `ENDC` `SWAP` `STREF`.", - "gas": "518", - "fift": "STBREFR\nENDCST" - }, - "bytecode": { - "doc_opcode": "CD", - "tlb": "#CD", - "prefix": "CD", - "operands": [] - }, - "value_flow": { - "doc_stack": "b b'' - b", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "child", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STSLICE", - "doc": { - "category": "cell_build", - "description": "Stores _Slice_ `s` into _Builder_ `b`.", - "gas": "18", - "fift": "STSLICE" - }, - "bytecode": { - "doc_opcode": "CE", - "tlb": "#CE", - "prefix": "CE", - "operands": [] - }, - "value_flow": { - "doc_stack": "s b - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STIX", - "doc": { - "category": "cell_build", - "description": "Stores a signed `l`-bit integer `x` into `b` for `0 <= l <= 257`.", - "gas": "26", - "fift": "STIX" - }, - "bytecode": { - "doc_opcode": "CF00", - "tlb": "#CF00", - "prefix": "CF00", - "operands": [] - }, - "value_flow": { - "doc_stack": "x b l - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STUX", - "doc": { - "category": "cell_build", - "description": "Stores an unsigned `l`-bit integer `x` into `b` for `0 <= l <= 256`.", - "gas": "26", - "fift": "STUX" - }, - "bytecode": { - "doc_opcode": "CF01", - "tlb": "#CF01", - "prefix": "CF01", - "operands": [] - }, - "value_flow": { - "doc_stack": "x b l - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STIXR", - "doc": { - "category": "cell_build", - "description": "Similar to `STIX`, but with arguments in a different order.", - "gas": "26", - "fift": "STIXR" - }, - "bytecode": { - "doc_opcode": "CF02", - "tlb": "#CF02", - "prefix": "CF02", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x l - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STUXR", - "doc": { - "category": "cell_build", - "description": "Similar to `STUX`, but with arguments in a different order.", - "gas": "26", - "fift": "STUXR" - }, - "bytecode": { - "doc_opcode": "CF03", - "tlb": "#CF03", - "prefix": "CF03", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x l - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STIXQ", - "doc": { - "category": "cell_build", - "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" - }, - "bytecode": { - "doc_opcode": "CF04", - "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"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - { - "value": 1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "STUXQ", - "doc": { - "category": "cell_build", - "description": "A quiet version of `STUX`.", - "gas": "26", - "fift": "STUXQ" - }, - "bytecode": { - "doc_opcode": "CF05", - "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"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - { - "value": 1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "STIXRQ", - "doc": { - "category": "cell_build", - "description": "A quiet version of `STIXR`.", - "gas": "26", - "fift": "STIXRQ" - }, - "bytecode": { - "doc_opcode": "CF06", - "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"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - { - "value": 1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "STUXRQ", - "doc": { - "category": "cell_build", - "description": "A quiet version of `STUXR`.", - "gas": "26", - "fift": "STUXRQ" - }, - "bytecode": { - "doc_opcode": "CF07", - "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"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - { - "value": 1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "STI_ALT", - "doc": { - "category": "cell_build", - "description": "A longer version of `[cc+1] STI`.", - "gas": "34", - "fift": "[cc+1] STI_l" - }, - "bytecode": { - "doc_opcode": "CF08cc", - "tlb": "#CF08 cc:uint8", - "prefix": "CF08", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x b - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STU_ALT", - "doc": { - "category": "cell_build", - "description": "A longer version of `[cc+1] STU`.", - "gas": "34", - "fift": "[cc+1] STU_l" - }, - "bytecode": { - "doc_opcode": "CF09cc", - "tlb": "#CF09 cc:uint8", - "prefix": "CF09", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x b - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STIR", - "doc": { - "category": "cell_build", - "description": "Equivalent to `SWAP` `[cc+1] STI`.", - "gas": "34", - "fift": "[cc+1] STIR" - }, - "bytecode": { - "doc_opcode": "CF0Acc", - "tlb": "#CF0A cc:uint8", - "prefix": "CF0A", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "b x - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STUR", - "doc": { - "category": "cell_build", - "description": "Equivalent to `SWAP` `[cc+1] STU`.", - "gas": "34", - "fift": "[cc+1] STUR" - }, - "bytecode": { - "doc_opcode": "CF0Bcc", - "tlb": "#CF0B cc:uint8", - "prefix": "CF0B", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "b x - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STIQ", - "doc": { - "category": "cell_build", - "description": "A quiet version of `STI`.", - "gas": "34", - "fift": "[cc+1] STIQ" - }, - "bytecode": { - "doc_opcode": "CF0Ccc", - "tlb": "#CF0C cc:uint8", - "prefix": "CF0C", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x b - x b f or b' 0", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - { - "value": 1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "STUQ", - "doc": { - "category": "cell_build", - "description": "A quiet version of `STU`.", - "gas": "34", - "fift": "[cc+1] STUQ" - }, - "bytecode": { - "doc_opcode": "CF0Dcc", - "tlb": "#CF0D cc:uint8", - "prefix": "CF0D", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "x b - x b f or b' 0", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - }, - { - "value": 1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "STIRQ", - "doc": { - "category": "cell_build", - "description": "A quiet version of `STIR`.", - "gas": "34", - "fift": "[cc+1] STIRQ" - }, - "bytecode": { - "doc_opcode": "CF0Ecc", - "tlb": "#CF0E cc:uint8", - "prefix": "CF0E", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "b x - b x f or b' 0", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - { - "value": 1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "STURQ", - "doc": { - "category": "cell_build", - "description": "A quiet version of `STUR`.", - "gas": "34", - "fift": "[cc+1] STURQ" - }, - "bytecode": { - "doc_opcode": "CF0Fcc", - "tlb": "#CF0F cc:uint8", - "prefix": "CF0F", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "b x - b x f or b' 0", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - }, - { - "value": 1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "STREF_ALT", - "doc": { - "category": "cell_build", - "description": "A longer version of `STREF`.", - "gas": "26", - "fift": "STREF_l" - }, - "bytecode": { - "doc_opcode": "CF10", - "tlb": "#CF10", - "prefix": "CF10", - "operands": [] - }, - "value_flow": { - "doc_stack": "c b - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STBREF", - "doc": { - "category": "cell_build", - "description": "Equivalent to `SWAP` `STBREFR`.", - "gas": "526", - "fift": "STBREF" - }, - "bytecode": { - "doc_opcode": "CF11", - "tlb": "#CF11", - "prefix": "CF11", - "operands": [] - }, - "value_flow": { - "doc_stack": "b' b - b''", - "inputs": { - "stack": [ - { "type": "simple", "name": "child", "value_types": ["Builder"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STSLICE_ALT", - "doc": { - "category": "cell_build", - "description": "A longer version of `STSLICE`.", - "gas": "26", - "fift": "STSLICE_l" - }, - "bytecode": { - "doc_opcode": "CF12", - "tlb": "#CF12", - "prefix": "CF12", - "operands": [] - }, - "value_flow": { - "doc_stack": "s b - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STB", - "doc": { - "category": "cell_build", - "description": "Appends all data from _Builder_ `b'` to _Builder_ `b`.", - "gas": "26", - "fift": "STB" - }, - "bytecode": { - "doc_opcode": "CF13", - "tlb": "#CF13", - "prefix": "CF13", - "operands": [] - }, - "value_flow": { - "doc_stack": "b' b - b''", - "inputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b3", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STREFR", - "doc": { - "category": "cell_build", - "description": "Equivalent to `SWAP` `STREF`.", - "gas": "26", - "fift": "STREFR" - }, - "bytecode": { - "doc_opcode": "CF14", - "tlb": "#CF14", - "prefix": "CF14", - "operands": [] - }, - "value_flow": { - "doc_stack": "b c - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "c", "value_types": ["Cell"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STBREFR_ALT", - "doc": { - "category": "cell_build", - "description": "A longer encoding of `STBREFR`.", - "gas": "526", - "fift": "STBREFR_l" - }, - "bytecode": { - "doc_opcode": "CF15", - "tlb": "#CF15", - "prefix": "CF15", - "operands": [] - }, - "value_flow": { - "doc_stack": "b b' - b''", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b3", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STSLICER", - "doc": { - "category": "cell_build", - "description": "Equivalent to `SWAP` `STSLICE`.", - "gas": "26", - "fift": "STSLICER" - }, - "bytecode": { - "doc_opcode": "CF16", - "tlb": "#CF16", - "prefix": "CF16", - "operands": [] - }, - "value_flow": { - "doc_stack": "b s - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STBR", - "doc": { - "category": "cell_build", - "description": "Concatenates two builders.\nEquivalent to `SWAP` `STB`.", - "gas": "26", - "fift": "STBR\nBCONCAT" - }, - "bytecode": { - "doc_opcode": "CF17", - "tlb": "#CF17", - "prefix": "CF17", - "operands": [] - }, - "value_flow": { - "doc_stack": "b b' - b''", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b3", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STREFQ", - "doc": { - "category": "cell_build", - "description": "Quiet version of `STREF`.", - "gas": "26", - "fift": "STREFQ" - }, - "bytecode": { - "doc_opcode": "CF18", - "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"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "STBREFQ", - "doc": { - "category": "cell_build", - "description": "Quiet version of `STBREF`.", - "gas": "526", - "fift": "STBREFQ" - }, - "bytecode": { - "doc_opcode": "CF19", - "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"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b3", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "STSLICEQ", - "doc": { - "category": "cell_build", - "description": "Quiet version of `STSLICE`.", - "gas": "26", - "fift": "STSLICEQ" - }, - "bytecode": { - "doc_opcode": "CF1A", - "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"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "STBQ", - "doc": { - "category": "cell_build", - "description": "Quiet version of `STB`.", - "gas": "26", - "fift": "STBQ" - }, - "bytecode": { - "doc_opcode": "CF1B", - "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"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b3", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "STREFRQ", - "doc": { - "category": "cell_build", - "description": "Quiet version of `STREFR`.", - "gas": "26", - "fift": "STREFRQ" - }, - "bytecode": { - "doc_opcode": "CF1C", - "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"] }, - { "type": "simple", "name": "c", "value_types": ["Cell"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { "type": "simple", "name": "c", "value_types": ["Cell"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "STBREFRQ", - "doc": { - "category": "cell_build", - "description": "Quiet version of `STBREFR`.", - "gas": "526", - "fift": "STBREFRQ" - }, - "bytecode": { - "doc_opcode": "CF1D", - "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"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b3", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "STSLICERQ", - "doc": { - "category": "cell_build", - "description": "Quiet version of `STSLICER`.", - "gas": "26", - "fift": "STSLICERQ" - }, - "bytecode": { - "doc_opcode": "CF1E", - "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"] }, - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b3", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "STBRQ", - "doc": { - "category": "cell_build", - "description": "Quiet version of `STBR`.", - "gas": "26", - "fift": "STBRQ\nBCONCATQ" - }, - "bytecode": { - "doc_opcode": "CF1F", - "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"] }, - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "b3", - "value_types": ["Builder"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "b", - "value_types": ["Builder"] - }, - { - "type": "simple", - "name": "b2", - "value_types": ["Builder"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "STREFCONST", - "doc": { - "category": "cell_build", - "description": "Equivalent to `PUSHREF` `STREFR`.", - "gas": "26", - "fift": "[ref] STREFCONST" - }, - "bytecode": { - "doc_opcode": "CF20", - "tlb": "#CF20 c:^Cell", - "prefix": "CF20", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] - }, - "value_flow": { - "doc_stack": "b - b\u0432\u0402\u2122", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STREF2CONST", - "doc": { - "category": "cell_build", - "description": "Equivalent to `STREFCONST` `STREFCONST`.", - "gas": "26", - "fift": "[ref] [ref] STREF2CONST" - }, - "bytecode": { - "doc_opcode": "CF21", - "tlb": "#CF21 c1:^Cell c2:^Cell", - "prefix": "CF21", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - b\u0432\u0402\u2122", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "ENDXC", - "doc": { - "category": "cell_build", - "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": "" - }, - "bytecode": { - "doc_opcode": "CF23", - "tlb": "#CF23", - "prefix": "CF23", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x - c", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] - } - } - }, - { - "mnemonic": "STILE4", - "doc": { - "category": "cell_build", - "description": "Stores a little-endian signed 32-bit integer.", - "gas": "26", - "fift": "STILE4" - }, - "bytecode": { - "doc_opcode": "CF28", - "tlb": "#CF28", - "prefix": "CF28", - "operands": [] - }, - "value_flow": { - "doc_stack": "x b - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STULE4", - "doc": { - "category": "cell_build", - "description": "Stores a little-endian unsigned 32-bit integer.", - "gas": "26", - "fift": "STULE4" - }, - "bytecode": { - "doc_opcode": "CF29", - "tlb": "#CF29", - "prefix": "CF29", - "operands": [] - }, - "value_flow": { - "doc_stack": "x b - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STILE8", - "doc": { - "category": "cell_build", - "description": "Stores a little-endian signed 64-bit integer.", - "gas": "26", - "fift": "STILE8" - }, - "bytecode": { - "doc_opcode": "CF2A", - "tlb": "#CF2A", - "prefix": "CF2A", - "operands": [] - }, - "value_flow": { - "doc_stack": "x b - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STULE8", - "doc": { - "category": "cell_build", - "description": "Stores a little-endian unsigned 64-bit integer.", - "gas": "26", - "fift": "STULE8" - }, - "bytecode": { - "doc_opcode": "CF2B", - "tlb": "#CF2B", - "prefix": "CF2B", - "operands": [] - }, - "value_flow": { - "doc_stack": "x b - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "BDEPTH", - "doc": { - "category": "cell_build", - "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" - }, - "bytecode": { - "doc_opcode": "CF30", - "tlb": "#CF30", - "prefix": "CF30", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BBITS", - "doc": { - "category": "cell_build", - "description": "Returns the number of data bits already stored in _Builder_ `b`.", - "gas": "26", - "fift": "BBITS" - }, - "bytecode": { - "doc_opcode": "CF31", - "tlb": "#CF31", - "prefix": "CF31", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BREFS", - "doc": { - "category": "cell_build", - "description": "Returns the number of cell references already stored in `b`.", - "gas": "26", - "fift": "BREFS" - }, - "bytecode": { - "doc_opcode": "CF32", - "tlb": "#CF32", - "prefix": "CF32", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - y", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BBITREFS", - "doc": { - "category": "cell_build", - "description": "Returns the numbers of both data bits and cell references in `b`.", - "gas": "26", - "fift": "BBITREFS" - }, - "bytecode": { - "doc_opcode": "CF33", - "tlb": "#CF33", - "prefix": "CF33", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - x y", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BREMBITS", - "doc": { - "category": "cell_build", - "description": "Returns the number of data bits that can still be stored in `b`.", - "gas": "26", - "fift": "BREMBITS" - }, - "bytecode": { - "doc_opcode": "CF35", - "tlb": "#CF35", - "prefix": "CF35", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - x'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x2", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BREMREFS", - "doc": { - "category": "cell_build", - "description": "Returns the number of references that can still be stored in `b`.", - "gas": "26", - "fift": "BREMREFS" - }, - "bytecode": { - "doc_opcode": "CF36", - "tlb": "#CF36", - "prefix": "CF36", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - y'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "y2", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BREMBITREFS", - "doc": { - "category": "cell_build", - "description": "Returns the numbers of both data bits and references that can still be stored in `b`.", - "gas": "26", - "fift": "BREMBITREFS" - }, - "bytecode": { - "doc_opcode": "CF37", - "tlb": "#CF37", - "prefix": "CF37", - "operands": [] - }, - "value_flow": { - "doc_stack": "b - x' y'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x2", "value_types": ["Integer"] }, - { "type": "simple", "name": "y2", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BCHKBITS", - "doc": { - "category": "cell_build", - "description": "Checks whether `cc+1` bits can be stored into `b`, where `0 <= cc <= 255`.", - "gas": "34/84", - "fift": "[cc+1] BCHKBITS#" - }, - "bytecode": { - "doc_opcode": "CF38cc", - "tlb": "#CF38 cc:uint8", - "prefix": "CF38", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "b -", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "BCHKBITS_VAR", - "doc": { - "category": "cell_build", - "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" - }, - "bytecode": { - "doc_opcode": "CF39", - "tlb": "#CF39", - "prefix": "CF39", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "BCHKREFS", - "doc": { - "category": "cell_build", - "description": "Checks whether `y` references can be stored into `b`, `0 <= y <= 7`.", - "gas": "26/76", - "fift": "BCHKREFS" - }, - "bytecode": { - "doc_opcode": "CF3A", - "tlb": "#CF3A", - "prefix": "CF3A", - "operands": [] - }, - "value_flow": { - "doc_stack": "b y - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "BCHKBITREFS", - "doc": { - "category": "cell_build", - "description": "Checks whether `x` bits and `y` references can be stored into `b`, `0 <= x <= 1023`, `0 <= y <= 7`.", - "gas": "26/76", - "fift": "BCHKBITREFS" - }, - "bytecode": { - "doc_opcode": "CF3B", - "tlb": "#CF3B", - "prefix": "CF3B", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x y - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "BCHKBITSQ", - "doc": { - "category": "cell_build", - "description": "Checks whether `cc+1` bits can be stored into `b`, where `0 <= cc <= 255`.", - "gas": "34", - "fift": "[cc+1] BCHKBITSQ#" - }, - "bytecode": { - "doc_opcode": "CF3Ccc", - "tlb": "#CF3C cc:uint8", - "prefix": "CF3C", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "b - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BCHKBITSQ_VAR", - "doc": { - "category": "cell_build", - "description": "Checks whether `x` bits can be stored into `b`, `0 <= x <= 1023`.", - "gas": "26", - "fift": "BCHKBITSQ" - }, - "bytecode": { - "doc_opcode": "CF3D", - "tlb": "#CF3D", - "prefix": "CF3D", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BCHKREFSQ", - "doc": { - "category": "cell_build", - "description": "Checks whether `y` references can be stored into `b`, `0 <= y <= 7`.", - "gas": "26", - "fift": "BCHKREFSQ" - }, - "bytecode": { - "doc_opcode": "CF3E", - "tlb": "#CF3E", - "prefix": "CF3E", - "operands": [] - }, - "value_flow": { - "doc_stack": "b y - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BCHKBITREFSQ", - "doc": { - "category": "cell_build", - "description": "Checks whether `x` bits and `y` references can be stored into `b`, `0 <= x <= 1023`, `0 <= y <= 7`.", - "gas": "26", - "fift": "BCHKBITREFSQ" - }, - "bytecode": { - "doc_opcode": "CF3F", - "tlb": "#CF3F", - "prefix": "CF3F", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x y - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "STZEROES", - "doc": { - "category": "cell_build", - "description": "Stores `n` binary zeroes into _Builder_ `b`.", - "gas": "26", - "fift": "STZEROES" - }, - "bytecode": { - "doc_opcode": "CF40", - "tlb": "#CF40", - "prefix": "CF40", - "operands": [] - }, - "value_flow": { - "doc_stack": "b n - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STONES", - "doc": { - "category": "cell_build", - "description": "Stores `n` binary ones into _Builder_ `b`.", - "gas": "26", - "fift": "STONES" - }, - "bytecode": { - "doc_opcode": "CF41", - "tlb": "#CF41", - "prefix": "CF41", - "operands": [] - }, - "value_flow": { - "doc_stack": "b n - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STSAME", - "doc": { - "category": "cell_build", - "description": "Stores `n` binary `x`es (`0 <= x <= 1`) into _Builder_ `b`.", - "gas": "26", - "fift": "STSAME" - }, - "bytecode": { - "doc_opcode": "CF42", - "tlb": "#CF42", - "prefix": "CF42", - "operands": [] - }, - "value_flow": { - "doc_stack": "b n x - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STSLICECONST", - "doc": { - "category": "cell_build", - "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" - }, - "bytecode": { - "doc_opcode": "CFC0_xysss", - "tlb": "#CFC0_ x:(## 2) y:(## 3) c:(x * ^Cell) sss:((8 * y + 2) * Bit)", - "prefix": "CFC0_", - "operands": [ - { - "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 3, - "bits_padding": 2, - "refs_length_var_size": 2, - "completion_tag": true - } - } - ] - }, - "value_flow": { - "doc_stack": "b - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "CTOS", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D0", - "tlb": "#D0", - "prefix": "D0", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - s", - "inputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] - }, - "outputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - } - } - }, - { - "mnemonic": "ENDS", - "doc": { - "category": "cell_parse", - "description": "Removes a _Slice_ `s` from the stack, and throws an exception if it is not empty.", - "gas": "18/68", - "fift": "ENDS" - }, - "bytecode": { - "doc_opcode": "D1", - "tlb": "#D1", - "prefix": "D1", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - ", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "LDI", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D2cc", - "tlb": "#D2 cc:uint8", - "prefix": "D2", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDU", - "doc": { - "category": "cell_parse", - "description": "Loads an unsigned `cc+1`-bit integer `x` from _Slice_ `s`.", - "gas": "26", - "fift": "[cc+1] LDU" - }, - "bytecode": { - "doc_opcode": "D3cc", - "tlb": "#D3 cc:uint8", - "prefix": "D3", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDREF", - "doc": { - "category": "cell_parse", - "description": "Loads a cell reference `c` from `s`.", - "gas": "18", - "fift": "LDREF" - }, - "bytecode": { - "doc_opcode": "D4", - "tlb": "#D4", - "prefix": "D4", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - c s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDREFRTOS", - "doc": { - "category": "cell_parse", - "description": "Equivalent to `LDREF` `SWAP` `CTOS`.", - "gas": "118/43", - "fift": "LDREFRTOS" - }, - "bytecode": { - "doc_opcode": "D5", - "tlb": "#D5", - "prefix": "D5", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - s' s''", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] }, - { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDSLICE", - "doc": { - "category": "cell_parse", - "description": "Cuts the next `cc+1` bits of `s` into a separate _Slice_ `s''`.", - "gas": "26", - "fift": "[cc+1] LDSLICE" - }, - "bytecode": { - "doc_opcode": "D6cc", - "tlb": "#D6 cc:uint8", - "prefix": "D6", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "s - s'' s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s3", "value_types": ["Slice"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDIX", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D700", - "tlb": "#D700", - "prefix": "D700", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - x s'", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDUX", - "doc": { - "category": "cell_parse", - "description": "Loads an unsigned `l`-bit integer `x` from (the first `l` bits of) `s`, with `0 <= l <= 256`.", - "gas": "26", - "fift": "LDUX" - }, - "bytecode": { - "doc_opcode": "D701", - "tlb": "#D701", - "prefix": "D701", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - x s'", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "PLDIX", - "doc": { - "category": "cell_parse", - "description": "Preloads a signed `l`-bit integer from _Slice_ `s`, for `0 <= l <= 257`.", - "gas": "26", - "fift": "PLDIX" - }, - "bytecode": { - "doc_opcode": "D702", - "tlb": "#D702", - "prefix": "D702", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDUX", - "doc": { - "category": "cell_parse", - "description": "Preloads an unsigned `l`-bit integer from `s`, for `0 <= l <= 256`.", - "gas": "26", - "fift": "PLDUX" - }, - "bytecode": { - "doc_opcode": "D703", - "tlb": "#D703", - "prefix": "D703", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LDIXQ", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D704", - "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"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LDUXQ", - "doc": { - "category": "cell_parse", - "description": "Quiet version of `LDUX`.", - "gas": "26", - "fift": "LDUXQ" - }, - "bytecode": { - "doc_opcode": "D705", - "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"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDIXQ", - "doc": { - "category": "cell_parse", - "description": "Quiet version of `PLDIX`.", - "gas": "26", - "fift": "PLDIXQ" - }, - "bytecode": { - "doc_opcode": "D706", - "tlb": "#D706", - "prefix": "D706", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - x -1 or 0", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDUXQ", - "doc": { - "category": "cell_parse", - "description": "Quiet version of `PLDUX`.", - "gas": "26", - "fift": "PLDUXQ" - }, - "bytecode": { - "doc_opcode": "D707", - "tlb": "#D707", - "prefix": "D707", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - x -1 or 0", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LDI_ALT", - "doc": { - "category": "cell_parse", - "description": "A longer encoding for `LDI`.", - "gas": "34", - "fift": "[cc+1] LDI_l" - }, - "bytecode": { - "doc_opcode": "D708cc", - "tlb": "#D708 cc:uint8", - "prefix": "D708", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDU_ALT", - "doc": { - "category": "cell_parse", - "description": "A longer encoding for `LDU`.", - "gas": "34", - "fift": "[cc+1] LDU_l" - }, - "bytecode": { - "doc_opcode": "D709cc", - "tlb": "#D709 cc:uint8", - "prefix": "D709", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "PLDI", - "doc": { - "category": "cell_parse", - "description": "Preloads a signed `cc+1`-bit integer from _Slice_ `s`.", - "gas": "34", - "fift": "[cc+1] PLDI" - }, - "bytecode": { - "doc_opcode": "D70Acc", - "tlb": "#D70A cc:uint8", - "prefix": "D70A", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDU", - "doc": { - "category": "cell_parse", - "description": "Preloads an unsigned `cc+1`-bit integer from `s`.", - "gas": "34", - "fift": "[cc+1] PLDU" - }, - "bytecode": { - "doc_opcode": "D70Bcc", - "tlb": "#D70B cc:uint8", - "prefix": "D70B", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LDIQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `LDI`.", - "gas": "34", - "fift": "[cc+1] LDIQ" - }, - "bytecode": { - "doc_opcode": "D70Ccc", - "tlb": "#D70C cc:uint8", - "prefix": "D70C", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "s - x s' -1 or s 0", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LDUQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `LDU`.", - "gas": "34", - "fift": "[cc+1] LDUQ" - }, - "bytecode": { - "doc_opcode": "D70Dcc", - "tlb": "#D70D cc:uint8", - "prefix": "D70D", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "s - x s' -1 or s 0", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDIQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `PLDI`.", - "gas": "34", - "fift": "[cc+1] PLDIQ" - }, - "bytecode": { - "doc_opcode": "D70Ecc", - "tlb": "#D70E cc:uint8", - "prefix": "D70E", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "s - x -1 or 0", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDUQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `PLDU`.", - "gas": "34", - "fift": "[cc+1] PLDUQ" - }, - "bytecode": { - "doc_opcode": "D70Fcc", - "tlb": "#D70F cc:uint8", - "prefix": "D70F", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "s - x -1 or 0", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDUZ", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D714_c", - "tlb": "#D714_ c:uint3", - "prefix": "D714_", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 3 } } - ] - }, - "value_flow": { - "doc_stack": "s - s x", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LDSLICEX", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D718", - "tlb": "#D718", - "prefix": "D718", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - s'' s'", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s3", "value_types": ["Slice"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "PLDSLICEX", - "doc": { - "category": "cell_parse", - "description": "Returns the first `0 <= l <= 1023` bits of `s` as `s''`.", - "gas": "26", - "fift": "PLDSLICEX" - }, - "bytecode": { - "doc_opcode": "D719", - "tlb": "#D719", - "prefix": "D719", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - s''", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDSLICEXQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `LDSLICEX`.", - "gas": "26", - "fift": "LDSLICEXQ" - }, - "bytecode": { - "doc_opcode": "D71A", - "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"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDSLICEXQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `LDSLICEXQ`.", - "gas": "26", - "fift": "PLDSLICEXQ" - }, - "bytecode": { - "doc_opcode": "D71B", - "tlb": "#D71B", - "prefix": "D71B", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - s' -1 or 0", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LDSLICE_ALT", - "doc": { - "category": "cell_parse", - "description": "A longer encoding for `LDSLICE`.", - "gas": "34", - "fift": "[cc+1] LDSLICE_l" - }, - "bytecode": { - "doc_opcode": "D71Ccc", - "tlb": "#D71C cc:uint8", - "prefix": "D71C", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "s - s'' s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s3", "value_types": ["Slice"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "PLDSLICE", - "doc": { - "category": "cell_parse", - "description": "Returns the first `0 < cc+1 <= 256` bits of `s` as `s''`.", - "gas": "34", - "fift": "[cc+1] PLDSLICE" - }, - "bytecode": { - "doc_opcode": "D71Dcc", - "tlb": "#D71D cc:uint8", - "prefix": "D71D", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "s - s''", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDSLICEQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `LDSLICE`.", - "gas": "34", - "fift": "[cc+1] LDSLICEQ" - }, - "bytecode": { - "doc_opcode": "D71Ecc", - "tlb": "#D71E cc:uint8", - "prefix": "D71E", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "s - s'' s' -1 or s 0", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "s3", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDSLICEQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `PLDSLICE`.", - "gas": "34", - "fift": "[cc+1] PLDSLICEQ" - }, - "bytecode": { - "doc_opcode": "D71Fcc", - "tlb": "#D71F cc:uint8", - "prefix": "D71F", - "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "s - s'' -1 or 0", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDCUTFIRST", - "doc": { - "category": "cell_parse", - "description": "Returns the first `0 <= l <= 1023` bits of `s`. It is equivalent to `PLDSLICEX`.", - "gas": "26", - "fift": "SDCUTFIRST" - }, - "bytecode": { - "doc_opcode": "D720", - "tlb": "#D720", - "prefix": "D720", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - s'", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "SDSKIPFIRST", - "doc": { - "category": "cell_parse", - "description": "Returns all but the first `0 <= l <= 1023` bits of `s`. It is equivalent to `LDSLICEX` `NIP`.", - "gas": "26", - "fift": "SDSKIPFIRST" - }, - "bytecode": { - "doc_opcode": "D721", - "tlb": "#D721", - "prefix": "D721", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - s'", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "SDCUTLAST", - "doc": { - "category": "cell_parse", - "description": "Returns the last `0 <= l <= 1023` bits of `s`.", - "gas": "26", - "fift": "SDCUTLAST" - }, - "bytecode": { - "doc_opcode": "D722", - "tlb": "#D722", - "prefix": "D722", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - s'", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "SDSKIPLAST", - "doc": { - "category": "cell_parse", - "description": "Returns all but the last `0 <= l <= 1023` bits of `s`.", - "gas": "26", - "fift": "SDSKIPLAST" - }, - "bytecode": { - "doc_opcode": "D723", - "tlb": "#D723", - "prefix": "D723", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - s'", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "SDSUBSTR", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D724", - "tlb": "#D724", - "prefix": "D724", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l l' - s'", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] }, - { "type": "simple", "name": "l2", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "SDBEGINSX", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D726", - "tlb": "#D726", - "prefix": "D726", - "operands": [] - }, - "value_flow": { - "doc_stack": "s s' - s''", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "SDBEGINSXQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `SDBEGINSX`.", - "gas": "26", - "fift": "SDBEGINSXQ" - }, - "bytecode": { - "doc_opcode": "D727", - "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"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDBEGINS", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D72A_xsss", - "tlb": "#D72A_ x:(## 7) sss:((8 * x + 3) * Bit)", - "prefix": "D72A_", - "operands": [ - { - "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 7, - "bits_padding": 3, - "completion_tag": true - } - } - ] - }, - "value_flow": { - "doc_stack": "s - s''", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "SDBEGINSQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `SDBEGINS`.", - "gas": "31", - "fift": "[slice] SDBEGINSQ" - }, - "bytecode": { - "doc_opcode": "D72E_xsss", - "tlb": "#D72E_ x:(## 7) sss:((8 * x + 3) * Bit)", - "prefix": "D72E_", - "operands": [ - { - "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 7, - "bits_padding": 3, - "completion_tag": true - } - } - ] - }, - "value_flow": { - "doc_stack": "s - s'' -1 or s 0", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SCUTFIRST", - "doc": { - "category": "cell_parse", - "description": "Returns the first `0 <= l <= 1023` bits and first `0 <= r <= 4` references of `s`.", - "gas": "26", - "fift": "SCUTFIRST" - }, - "bytecode": { - "doc_opcode": "D730", - "tlb": "#D730", - "prefix": "D730", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l r - s'", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "SSKIPFIRST", - "doc": { - "category": "cell_parse", - "description": "Returns all but the first `l` bits of `s` and `r` references of `s`.", - "gas": "26", - "fift": "SSKIPFIRST" - }, - "bytecode": { - "doc_opcode": "D731", - "tlb": "#D731", - "prefix": "D731", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l r - s'", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "SCUTLAST", - "doc": { - "category": "cell_parse", - "description": "Returns the last `0 <= l <= 1023` data bits and last `0 <= r <= 4` references of `s`.", - "gas": "26", - "fift": "SCUTLAST" - }, - "bytecode": { - "doc_opcode": "D732", - "tlb": "#D732", - "prefix": "D732", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l r - s'", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "SSKIPLAST", - "doc": { - "category": "cell_parse", - "description": "Returns all but the last `l` bits of `s` and `r` references of `s`.", - "gas": "26", - "fift": "SSKIPLAST" - }, - "bytecode": { - "doc_opcode": "D733", - "tlb": "#D733", - "prefix": "D733", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l r - s'", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "SUBSLICE", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D734", - "tlb": "#D734", - "prefix": "D734", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l r l' r' - s'", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] }, - { "type": "simple", "name": "l2", "value_types": ["Integer"] }, - { "type": "simple", "name": "r2", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "SPLIT", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D736", - "tlb": "#D736", - "prefix": "D736", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l r - s' s''", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] }, - { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "SPLITQ", - "doc": { - "category": "cell_parse", - "description": "A quiet version of `SPLIT`.", - "gas": "26", - "fift": "SPLITQ" - }, - "bytecode": { - "doc_opcode": "D737", - "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"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "XCTOS", - "doc": { - "category": "cell_parse", - "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": "" - }, - "bytecode": { - "doc_opcode": "D739", - "tlb": "#D739", - "prefix": "D739", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - s ?", - "inputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "flag", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "XLOAD", - "doc": { - "category": "cell_parse", - "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": "" - }, - "bytecode": { - "doc_opcode": "D73A", - "tlb": "#D73A", - "prefix": "D73A", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - c'", - "inputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] - }, - "outputs": { - "stack": [{ "type": "simple", "name": "c2", "value_types": ["Cell"] }] - } - } - }, - { - "mnemonic": "XLOADQ", - "doc": { - "category": "cell_parse", - "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": "" - }, - "bytecode": { - "doc_opcode": "D73B", - "tlb": "#D73B", - "prefix": "D73B", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - c' -1 or c 0", - "inputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "c2", "value_types": ["Cell"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SCHKBITS", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D741", - "tlb": "#D741", - "prefix": "D741", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SCHKREFS", - "doc": { - "category": "cell_parse", - "description": "Checks whether there are at least `r` references in _Slice_ `s`.", - "gas": "26/76", - "fift": "SCHKREFS" - }, - "bytecode": { - "doc_opcode": "D742", - "tlb": "#D742", - "prefix": "D742", - "operands": [] - }, - "value_flow": { - "doc_stack": "s r - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SCHKBITREFS", - "doc": { - "category": "cell_parse", - "description": "Checks whether there are at least `l` data bits and `r` references in _Slice_ `s`.", - "gas": "26/76", - "fift": "SCHKBITREFS" - }, - "bytecode": { - "doc_opcode": "D743", - "tlb": "#D743", - "prefix": "D743", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l r - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SCHKBITSQ", - "doc": { - "category": "cell_parse", - "description": "Checks whether there are at least `l` data bits in _Slice_ `s`.", - "gas": "26", - "fift": "SCHKBITSQ" - }, - "bytecode": { - "doc_opcode": "D745", - "tlb": "#D745", - "prefix": "D745", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SCHKREFSQ", - "doc": { - "category": "cell_parse", - "description": "Checks whether there are at least `r` references in _Slice_ `s`.", - "gas": "26", - "fift": "SCHKREFSQ" - }, - "bytecode": { - "doc_opcode": "D746", - "tlb": "#D746", - "prefix": "D746", - "operands": [] - }, - "value_flow": { - "doc_stack": "s r - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SCHKBITREFSQ", - "doc": { - "category": "cell_parse", - "description": "Checks whether there are at least `l` data bits and `r` references in _Slice_ `s`.", - "gas": "26", - "fift": "SCHKBITREFSQ" - }, - "bytecode": { - "doc_opcode": "D747", - "tlb": "#D747", - "prefix": "D747", - "operands": [] - }, - "value_flow": { - "doc_stack": "s l r - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDREFVAR", - "doc": { - "category": "cell_parse", - "description": "Returns the `n`-th cell reference of _Slice_ `s` for `0 <= n <= 3`.", - "gas": "26", - "fift": "PLDREFVAR" - }, - "bytecode": { - "doc_opcode": "D748", - "tlb": "#D748", - "prefix": "D748", - "operands": [] - }, - "value_flow": { - "doc_stack": "s n - c", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] - } - } - }, - { - "mnemonic": "SBITS", - "doc": { - "category": "cell_parse", - "description": "Returns the number of data bits in _Slice_ `s`.", - "gas": "26", - "fift": "SBITS" - }, - "bytecode": { - "doc_opcode": "D749", - "tlb": "#D749", - "prefix": "D749", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - l", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SREFS", - "doc": { - "category": "cell_parse", - "description": "Returns the number of references in _Slice_ `s`.", - "gas": "26", - "fift": "SREFS" - }, - "bytecode": { - "doc_opcode": "D74A", - "tlb": "#D74A", - "prefix": "D74A", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - r", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SBITREFS", - "doc": { - "category": "cell_parse", - "description": "Returns both the number of data bits and the number of references in `s`.", - "gas": "26", - "fift": "SBITREFS" - }, - "bytecode": { - "doc_opcode": "D74B", - "tlb": "#D74B", - "prefix": "D74B", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - l r", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "l", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDREFIDX", - "doc": { - "category": "cell_parse", - "description": "Returns the `n`-th cell reference of _Slice_ `s`, where `0 <= n <= 3`.", - "gas": "26", - "fift": "[n] PLDREFIDX" - }, - "bytecode": { - "doc_opcode": "D74E_n", - "tlb": "#D74E_ n:uint2", - "prefix": "D74E_", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 2 } } - ] - }, - "value_flow": { - "doc_stack": "s - c", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] - } - } - }, - { - "mnemonic": "LDILE4", - "doc": { - "category": "cell_parse", - "description": "Loads a little-endian signed 32-bit integer.", - "gas": "26", - "fift": "LDILE4" - }, - "bytecode": { - "doc_opcode": "D750", - "tlb": "#D750", - "prefix": "D750", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDULE4", - "doc": { - "category": "cell_parse", - "description": "Loads a little-endian unsigned 32-bit integer.", - "gas": "26", - "fift": "LDULE4" - }, - "bytecode": { - "doc_opcode": "D751", - "tlb": "#D751", - "prefix": "D751", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDILE8", - "doc": { - "category": "cell_parse", - "description": "Loads a little-endian signed 64-bit integer.", - "gas": "26", - "fift": "LDILE8" - }, - "bytecode": { - "doc_opcode": "D752", - "tlb": "#D752", - "prefix": "D752", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDULE8", - "doc": { - "category": "cell_parse", - "description": "Loads a little-endian unsigned 64-bit integer.", - "gas": "26", - "fift": "LDULE8" - }, - "bytecode": { - "doc_opcode": "D753", - "tlb": "#D753", - "prefix": "D753", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "PLDILE4", - "doc": { - "category": "cell_parse", - "description": "Preloads a little-endian signed 32-bit integer.", - "gas": "26", - "fift": "PLDILE4" - }, - "bytecode": { - "doc_opcode": "D754", - "tlb": "#D754", - "prefix": "D754", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDULE4", - "doc": { - "category": "cell_parse", - "description": "Preloads a little-endian unsigned 32-bit integer.", - "gas": "26", - "fift": "PLDULE4" - }, - "bytecode": { - "doc_opcode": "D755", - "tlb": "#D755", - "prefix": "D755", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDILE8", - "doc": { - "category": "cell_parse", - "description": "Preloads a little-endian signed 64-bit integer.", - "gas": "26", - "fift": "PLDILE8" - }, - "bytecode": { - "doc_opcode": "D756", - "tlb": "#D756", - "prefix": "D756", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDULE8", - "doc": { - "category": "cell_parse", - "description": "Preloads a little-endian unsigned 64-bit integer.", - "gas": "26", - "fift": "PLDULE8" - }, - "bytecode": { - "doc_opcode": "D757", - "tlb": "#D757", - "prefix": "D757", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LDILE4Q", - "doc": { - "category": "cell_parse", - "description": "Quietly loads a little-endian signed 32-bit integer.", - "gas": "26", - "fift": "LDILE4Q" - }, - "bytecode": { - "doc_opcode": "D758", - "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"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LDULE4Q", - "doc": { - "category": "cell_parse", - "description": "Quietly loads a little-endian unsigned 32-bit integer.", - "gas": "26", - "fift": "LDULE4Q" - }, - "bytecode": { - "doc_opcode": "D759", - "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"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LDILE8Q", - "doc": { - "category": "cell_parse", - "description": "Quietly loads a little-endian signed 64-bit integer.", - "gas": "26", - "fift": "LDILE8Q" - }, - "bytecode": { - "doc_opcode": "D75A", - "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"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LDULE8Q", - "doc": { - "category": "cell_parse", - "description": "Quietly loads a little-endian unsigned 64-bit integer.", - "gas": "26", - "fift": "LDULE8Q" - }, - "bytecode": { - "doc_opcode": "D75B", - "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"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDILE4Q", - "doc": { - "category": "cell_parse", - "description": "Quietly preloads a little-endian signed 32-bit integer.", - "gas": "26", - "fift": "PLDILE4Q" - }, - "bytecode": { - "doc_opcode": "D75C", - "tlb": "#D75C", - "prefix": "D75C", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x -1 or 0", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDULE4Q", - "doc": { - "category": "cell_parse", - "description": "Quietly preloads a little-endian unsigned 32-bit integer.", - "gas": "26", - "fift": "PLDULE4Q" - }, - "bytecode": { - "doc_opcode": "D75D", - "tlb": "#D75D", - "prefix": "D75D", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x -1 or 0", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDILE8Q", - "doc": { - "category": "cell_parse", - "description": "Quietly preloads a little-endian signed 64-bit integer.", - "gas": "26", - "fift": "PLDILE8Q" - }, - "bytecode": { - "doc_opcode": "D75E", - "tlb": "#D75E", - "prefix": "D75E", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x -1 or 0", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDULE8Q", - "doc": { - "category": "cell_parse", - "description": "Quietly preloads a little-endian unsigned 64-bit integer.", - "gas": "26", - "fift": "PLDULE8Q" - }, - "bytecode": { - "doc_opcode": "D75F", - "tlb": "#D75F", - "prefix": "D75F", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x -1 or 0", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LDZEROES", - "doc": { - "category": "cell_parse", - "description": "Returns the count `n` of leading zero bits in `s`, and removes these bits from `s`.", - "gas": "26", - "fift": "LDZEROES" - }, - "bytecode": { - "doc_opcode": "D760", - "tlb": "#D760", - "prefix": "D760", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - n s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDONES", - "doc": { - "category": "cell_parse", - "description": "Returns the count `n` of leading one bits in `s`, and removes these bits from `s`.", - "gas": "26", - "fift": "LDONES" - }, - "bytecode": { - "doc_opcode": "D761", - "tlb": "#D761", - "prefix": "D761", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - n s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDSAME", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D762", - "tlb": "#D762", - "prefix": "D762", - "operands": [] - }, - "value_flow": { - "doc_stack": "s x - n s'", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "SDEPTH", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D764", - "tlb": "#D764", - "prefix": "D764", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "CDEPTH", - "doc": { - "category": "cell_parse", - "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" - }, - "bytecode": { - "doc_opcode": "D765", - "tlb": "#D765", - "prefix": "D765", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - x", - "inputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "EXECUTE", - "doc": { - "category": "cont_basic", - "description": "_Calls_, or _executes_, continuation `c`.", - "gas": "18", - "fift": "EXECUTE\nCALLX" - }, - "bytecode": { - "doc_opcode": "D8", - "tlb": "#D8", - "prefix": "D8", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ] - } - }, - { - "mnemonic": "JMPX", - "doc": { - "category": "cont_basic", - "description": "_Jumps_, or transfers control, to continuation `c`.\nThe remainder of the previous current continuation `cc` is discarded.", - "gas": "18", - "fift": "JMPX" - }, - "bytecode": { - "doc_opcode": "D9", - "tlb": "#D9", - "prefix": "D9", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } - }, - { - "mnemonic": "CALLXARGS", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DApr", - "tlb": "#DA p:uint4 r:uint4", - "prefix": "DA", - "operands": [ - { "name": "p", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "r", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [{ "type": "simple", "name": "arg" }] - }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ] - } - }, - { - "mnemonic": "CALLXARGS_VAR", - "doc": { - "category": "cont_basic", - "description": "_Calls_ continuation `c` with `0 <= p <= 15` parameters, expecting an arbitrary number of return values.", - "gas": "26", - "fift": "[p] -1 CALLXARGS" - }, - "bytecode": { - "doc_opcode": "DB0p", - "tlb": "#DB0 p:uint4", - "prefix": "DB0", - "operands": [ - { "name": "p", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [{ "type": "simple", "name": "arg" }] - }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ] - } - }, - { - "mnemonic": "JMPXARGS", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB1p", - "tlb": "#DB1 p:uint4", - "prefix": "DB1", - "operands": [ - { "name": "p", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [{ "type": "simple", "name": "arg" }] - }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } - }, - { - "mnemonic": "RETARGS", - "doc": { - "category": "cont_basic", - "description": "_Returns_ to `c0`, with `0 <= r <= 15` return values taken from the current stack.", - "gas": "26", - "fift": "[r] RETARGS" - }, - "bytecode": { - "doc_opcode": "DB2r", - "tlb": "#DB2 r:uint4", - "prefix": "DB2", - "operands": [ - { "name": "r", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [{ "type": "simple", "name": "arg" }] - } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [{ "type": "register", "index": 0 }] } - }, - { - "mnemonic": "RET", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB30", - "tlb": "#DB30", - "prefix": "DB30", - "operands": [] - }, - "value_flow": { - "doc_stack": "", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [{ "type": "register", "index": 0 }] } - }, - { - "mnemonic": "RETALT", - "doc": { - "category": "cont_basic", - "description": "_Returns_ to the continuation at `c1`.\nApproximately equivalent to `c1 PUSHCTR` `JMPX`.", - "gas": "26", - "fift": "RETALT\nRETFALSE" - }, - "bytecode": { - "doc_opcode": "DB31", - "tlb": "#DB31", - "prefix": "DB31", - "operands": [] - }, - "value_flow": { - "doc_stack": "", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [{ "type": "register", "index": 1 }] } - }, - { - "mnemonic": "BRANCH", - "doc": { - "category": "cont_basic", - "description": "Performs `RETTRUE` if integer `f!=0`, or `RETFALSE` if `f=0`.", - "gas": "26", - "fift": "BRANCH\nRETBOOL" - }, - "bytecode": { - "doc_opcode": "DB32", - "tlb": "#DB32", - "prefix": "DB32", - "operands": [] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { "type": "register", "index": 0 }, - { "type": "register", "index": 1 } - ] - } - }, - { - "mnemonic": "CALLCC", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB34", - "tlb": "#DB34", - "prefix": "DB34", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } - }, - { - "mnemonic": "JMPXDATA", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB35", - "tlb": "#DB35", - "prefix": "DB35", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } - }, - { - "mnemonic": "CALLCCARGS", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB36pr", - "tlb": "#DB36 p:uint4 r:uint4", - "prefix": "DB36", - "operands": [ - { "name": "p", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "r", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [{ "type": "simple", "name": "arg" }] - }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } - }, - { - "mnemonic": "CALLXVARARGS", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB38", - "tlb": "#DB38", - "prefix": "DB38", - "operands": [] - }, - "value_flow": { - "doc_stack": "c p r - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [{ "type": "simple", "name": "arg" }] - }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] }, - { "type": "simple", "name": "p", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ] - } - }, - { - "mnemonic": "RETVARARGS", - "doc": { - "category": "cont_basic", - "description": "Similar to `RETARGS`.", - "gas": "26", - "fift": "RETVARARGS" - }, - "bytecode": { - "doc_opcode": "DB39", - "tlb": "#DB39", - "prefix": "DB39", - "operands": [] - }, - "value_flow": { - "doc_stack": "p r - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [{ "type": "simple", "name": "arg" }] - }, - { "type": "simple", "name": "p", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ] - } - }, - { - "mnemonic": "JMPXVARARGS", - "doc": { - "category": "cont_basic", - "description": "Similar to `JMPXARGS`.", - "gas": "26", - "fift": "JMPXVARARGS" - }, - "bytecode": { - "doc_opcode": "DB3A", - "tlb": "#DB3A", - "prefix": "DB3A", - "operands": [] - }, - "value_flow": { - "doc_stack": "c p r - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [{ "type": "simple", "name": "arg" }] - }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] }, - { "type": "simple", "name": "p", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } - }, - { - "mnemonic": "CALLCCVARARGS", - "doc": { - "category": "cont_basic", - "description": "Similar to `CALLCCARGS`.", - "gas": "26", - "fift": "CALLCCVARARGS" - }, - "bytecode": { - "doc_opcode": "DB3B", - "tlb": "#DB3B", - "prefix": "DB3B", - "operands": [] - }, - "value_flow": { - "doc_stack": "c p r - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "p", - "array_entry": [{ "type": "simple", "name": "arg" }] - }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] }, - { "type": "simple", "name": "p", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } - }, - { - "mnemonic": "CALLREF", - "doc": { - "category": "cont_basic", - "description": "Equivalent to `PUSHREFCONT` `CALLX`.", - "gas": "126/51", - "fift": "[ref] CALLREF" - }, - "bytecode": { - "doc_opcode": "DB3C", - "tlb": "#DB3C c:^Cell", - "prefix": "DB3C", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] - }, - "value_flow": { - "doc_stack": "", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ] - } - }, - { - "mnemonic": "JMPREF", - "doc": { - "category": "cont_basic", - "description": "Equivalent to `PUSHREFCONT` `JMPX`.", - "gas": "126/51", - "fift": "[ref] JMPREF" - }, - "bytecode": { - "doc_opcode": "DB3D", - "tlb": "#DB3D c:^Cell", - "prefix": "DB3D", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] - }, - "value_flow": { - "doc_stack": "", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } - }, - { - "mnemonic": "JMPREFDATA", - "doc": { - "category": "cont_basic", - "description": "Equivalent to `PUSHREFCONT` `JMPXDATA`.", - "gas": "126/51", - "fift": "[ref] JMPREFDATA" - }, - "bytecode": { - "doc_opcode": "DB3E", - "tlb": "#DB3E c:^Cell", - "prefix": "DB3E", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] - }, - "value_flow": { - "doc_stack": "", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } - }, - { - "mnemonic": "RETDATA", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB3F", - "tlb": "#DB3F", - "prefix": "DB3F", - "operands": [] - }, - "value_flow": { - "doc_stack": "", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [{ "type": "register", "index": 0 }] } - }, - { - "mnemonic": "RUNVM", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB4fff", - "tlb": "#DB4 flags:(## 12)", - "prefix": "DB4", - "operands": [] - }, - "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]" - } - }, - { - "mnemonic": "RUNVMX", - "doc": { - "category": "cont_basic", - "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" - }, - "bytecode": { - "doc_opcode": "DB50", - "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]" - } - }, - { - "mnemonic": "IFRET", - "doc": { - "category": "cont_conditional", - "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:" - }, - "bytecode": { - "doc_opcode": "DC", - "tlb": "#DC", - "prefix": "DC", - "operands": [] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [{ "type": "register", "index": 0 }], - "nobranch": true - } - }, - { - "mnemonic": "IFNOTRET", - "doc": { - "category": "cont_conditional", - "description": "Performs a `RET`, but only if integer `f` is zero.", - "gas": "18", - "fift": "IFNOTRET\nIF:" - }, - "bytecode": { - "doc_opcode": "DD", - "tlb": "#DD", - "prefix": "DD", - "operands": [] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [{ "type": "register", "index": 0 }], - "nobranch": true - } - }, - { - "mnemonic": "IF", - "doc": { - "category": "cont_conditional", - "description": "Performs `EXECUTE` for `c` (i.e., _executes_ `c`), but only if integer `f` is non-zero. Otherwise simply discards both values.", - "gas": "18", - "fift": "IF", - "fift_examples": [ - { - "fift": "IF:<{ code }> <{ code }>IF", - "description": "Equivalent to `<{ code }> CONT` `IF`." - } - ] - }, - "bytecode": { - "doc_opcode": "DE", - "tlb": "#DE", - "prefix": "DE", - "operands": [] - }, - "value_flow": { - "doc_stack": "f c - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ], - "nobranch": true - } - }, - { - "mnemonic": "IFNOT", - "doc": { - "category": "cont_conditional", - "description": "Executes continuation `c`, but only if integer `f` is zero. Otherwise simply discards both values.", - "gas": "18", - "fift": "IFNOT", - "fift_examples": [ - { - "fift": "IFNOT:<{ code }> <{ code }>IFNOT", - "description": "Equivalent to `<{ code }> CONT` `IFNOT`." - } - ] - }, - "bytecode": { - "doc_opcode": "DF", - "tlb": "#DF", - "prefix": "DF", - "operands": [] - }, - "value_flow": { - "doc_stack": "f c - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ], - "nobranch": true - } - }, - { - "mnemonic": "IFJMP", - "doc": { - "category": "cont_conditional", - "description": "Jumps to `c` (similarly to `JMPX`), but only if `f` is non-zero.", - "gas": "18", - "fift": "IFJMP", - "fift_examples": [ - { - "fift": "IFJMP:<{ code }>", - "description": "Equivalent to `<{ code }> CONT` `IFJMP`." - } - ] - }, - "bytecode": { - "doc_opcode": "E0", - "tlb": "#E0", - "prefix": "E0", - "operands": [] - }, - "value_flow": { - "doc_stack": "f c - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [{ "type": "variable", "var_name": "c" }], - "nobranch": true - } - }, - { - "mnemonic": "IFNOTJMP", - "doc": { - "category": "cont_conditional", - "description": "Jumps to `c` (similarly to `JMPX`), but only if `f` is zero.", - "gas": "18", - "fift": "IFNOTJMP", - "fift_examples": [ - { - "fift": "IFNOTJMP:<{ code }>", - "description": "Equivalent to `<{ code }> CONT` `IFNOTJMP`." - } - ] - }, - "bytecode": { - "doc_opcode": "E1", - "tlb": "#E1", - "prefix": "E1", - "operands": [] - }, - "value_flow": { - "doc_stack": "f c - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [{ "type": "variable", "var_name": "c" }], - "nobranch": true - } - }, - { - "mnemonic": "IFELSE", - "doc": { - "category": "cont_conditional", - "description": "If integer `f` is non-zero, executes `c`, otherwise executes `c'`. Equivalent to `CONDSELCHK` `EXECUTE`.", - "gas": "18", - "fift": "IFELSE", - "fift_examples": [ - { - "fift": "IF:<{ code1 }>ELSE<{ code2 }>", - "description": "Equivalent to `<{ code1 }> CONT` `<{ code2 }> CONT` `IFELSE`." - } - ] - }, - "bytecode": { - "doc_opcode": "E2", - "tlb": "#E2", - "prefix": "E2", - "operands": [] - }, - "value_flow": { - "doc_stack": "f c c' - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] }, - { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - }, - { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ] - } - }, - { - "mnemonic": "IFREF", - "doc": { - "category": "cont_conditional", - "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" - }, - "bytecode": { - "doc_opcode": "E300", - "tlb": "#E300 c:^Cell", - "prefix": "E300", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ], - "nobranch": true - } - }, - { - "mnemonic": "IFNOTREF", - "doc": { - "category": "cont_conditional", - "description": "Equivalent to `PUSHREFCONT` `IFNOT`.", - "gas": "26/126/51", - "fift": "[ref] IFNOTREF" - }, - "bytecode": { - "doc_opcode": "E301", - "tlb": "#E301 c:^Cell", - "prefix": "E301", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ], - "nobranch": true - } - }, - { - "mnemonic": "IFJMPREF", - "doc": { - "category": "cont_conditional", - "description": "Equivalent to `PUSHREFCONT` `IFJMP`.", - "gas": "26/126/51", - "fift": "[ref] IFJMPREF" - }, - "bytecode": { - "doc_opcode": "E302", - "tlb": "#E302 c:^Cell", - "prefix": "E302", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [{ "type": "variable", "var_name": "c" }], - "nobranch": true - } - }, - { - "mnemonic": "IFNOTJMPREF", - "doc": { - "category": "cont_conditional", - "description": "Equivalent to `PUSHREFCONT` `IFNOTJMP`.", - "gas": "26/126/51", - "fift": "[ref] IFNOTJMPREF" - }, - "bytecode": { - "doc_opcode": "E303", - "tlb": "#E303 c:^Cell", - "prefix": "E303", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [{ "type": "variable", "var_name": "c" }], - "nobranch": true - } - }, - { - "mnemonic": "CONDSEL", - "doc": { - "category": "cont_conditional", - "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" - }, - "bytecode": { - "doc_opcode": "E304", - "tlb": "#E304", - "prefix": "E304", - "operands": [] - }, - "value_flow": { - "doc_stack": "f x y - x or y", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] }, - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "y" } - ] - }, - "outputs": { "stack": [{ "type": "simple", "name": "result" }] } - } - }, - { - "mnemonic": "CONDSELCHK", - "doc": { - "category": "cont_conditional", - "description": "Same as `CONDSEL`, but first checks whether `x` and `y` have the same type.", - "gas": "26", - "fift": "CONDSELCHK" - }, - "bytecode": { - "doc_opcode": "E305", - "tlb": "#E305", - "prefix": "E305", - "operands": [] - }, - "value_flow": { - "doc_stack": "f x y - x or y", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] }, - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "y" } - ] - }, - "outputs": { "stack": [{ "type": "simple", "name": "result" }] } - } - }, - { - "mnemonic": "IFRETALT", - "doc": { - "category": "cont_conditional", - "description": "Performs `RETALT` if integer `f!=0`.", - "gas": "26", - "fift": "IFRETALT" - }, - "bytecode": { - "doc_opcode": "E308", - "tlb": "#E308", - "prefix": "E308", - "operands": [] - }, - "value_flow": { - "doc_stack": "f -", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [{ "type": "register", "index": 1 }], - "nobranch": true - } - }, - { - "mnemonic": "IFNOTRETALT", - "doc": { - "category": "cont_conditional", - "description": "Performs `RETALT` if integer `f=0`.", - "gas": "26", - "fift": "IFNOTRETALT" - }, - "bytecode": { - "doc_opcode": "E309", - "tlb": "#E309", - "prefix": "E309", - "operands": [] - }, - "value_flow": { - "doc_stack": "f -", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [{ "type": "register", "index": 1 }], - "nobranch": true - } - }, - { - "mnemonic": "IFREFELSE", - "doc": { - "category": "cont_conditional", - "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" - }, - "bytecode": { - "doc_opcode": "E30D", - "tlb": "#E30D c:^Cell", - "prefix": "E30D", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] - }, - "value_flow": { - "doc_stack": "f c -", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] }, - { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - }, - { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ] - } - }, - { - "mnemonic": "IFELSEREF", - "doc": { - "category": "cont_conditional", - "description": "Equivalent to `PUSHREFCONT` `IFELSE`.", - "gas": "26/126/51", - "fift": "[ref] IFELSEREF" - }, - "bytecode": { - "doc_opcode": "E30E", - "tlb": "#E30E c:^Cell", - "prefix": "E30E", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] - }, - "value_flow": { - "doc_stack": "f c -", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] }, - { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - }, - { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ] - } - }, - { - "mnemonic": "IFREFELSEREF", - "doc": { - "category": "cont_conditional", - "description": "Equivalent to `PUSHREFCONT` `PUSHREFCONT` `IFELSE`.", - "gas": "126/51", - "fift": "[ref] [ref] IFREFELSEREF" - }, - "bytecode": { - "doc_opcode": "E30F", - "tlb": "#E30F c1:^Cell c2:^Cell", - "prefix": "E30F", - "operands": [ - { "name": "c1", "loader": "ref", "loader_args": {} }, - { "name": "c2", "loader": "ref", "loader_args": {} } - ] - }, - "value_flow": { - "doc_stack": "f -", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c1", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - }, - { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ] - } - }, - { - "mnemonic": "IFBITJMP", - "doc": { - "category": "cont_conditional", - "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" - }, - "bytecode": { - "doc_opcode": "E39_n", - "tlb": "#E39_ n:uint5", - "prefix": "E39_", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 5 } } - ] - }, - "value_flow": { - "doc_stack": "x c - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } - }, - { - "mnemonic": "IFNBITJMP", - "doc": { - "category": "cont_conditional", - "description": "Jumps to `c` if bit `0 <= n <= 31` is not set in integer `x`.", - "gas": "26", - "fift": "[n] IFNBITJMP" - }, - "bytecode": { - "doc_opcode": "E3B_n", - "tlb": "#E3B_ n:uint5", - "prefix": "E3B_", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 5 } } - ] - }, - "value_flow": { - "doc_stack": "x c - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } - }, - { - "mnemonic": "IFBITJMPREF", - "doc": { - "category": "cont_conditional", - "description": "Performs a `JMPREF` if bit `0 <= n <= 31` is set in integer `x`.", - "gas": "126/51", - "fift": "[ref] [n] IFBITJMPREF" - }, - "bytecode": { - "doc_opcode": "E3D_n", - "tlb": "#E3D_ n:uint5 c:^Cell", - "prefix": "E3D_", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 5 } }, - { "name": "c", "loader": "ref", "loader_args": {} } - ] - }, - "value_flow": { - "doc_stack": "x - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } - }, - { - "mnemonic": "IFNBITJMPREF", - "doc": { - "category": "cont_conditional", - "description": "Performs a `JMPREF` if bit `0 <= n <= 31` is not set in integer `x`.", - "gas": "126/51", - "fift": "[ref] [n] IFNBITJMPREF" - }, - "bytecode": { - "doc_opcode": "E3F_n", - "tlb": "#E3F_ n:uint5 c:^Cell", - "prefix": "E3F_", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 5 } }, - { "name": "c", "loader": "ref", "loader_args": {} } - ] - }, - "value_flow": { - "doc_stack": "x - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }] } - }, - { - "mnemonic": "REPEAT", - "doc": { - "category": "cont_loops", - "description": "Executes continuation `c` `n` times, if integer `n` is non-negative. If `n>=2^31` or `n<-2^31`, generates a range check exception.\nNotice that a `RET` inside the code of `c` works as a `continue`, not as a `break`. One should use either alternative (experimental) loops or alternative `RETALT` (along with a `SETEXITALT` before the loop) to `break` out of a loop.", - "gas": "18", - "fift": "REPEAT", - "fift_examples": [ - { - "fift": "REPEAT:<{ code }> <{ code }>REPEAT", - "description": "Equivalent to `<{ code }> CONT` `REPEAT`." - } - ] - }, - "bytecode": { - "doc_opcode": "E4", - "tlb": "#E4", - "prefix": "E4", - "operands": [] - }, - "value_flow": { - "doc_stack": "n c - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "special", - "name": "repeat", - "args": { - "count": "n", - "body": { "type": "variable", "var_name": "c" }, - "after": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ], - "nobranch": true - } - }, - { - "mnemonic": "REPEATEND", - "doc": { - "category": "cont_loops", - "description": "Similar to `REPEAT`, but it is applied to the current continuation `cc`.", - "gas": "18", - "fift": "REPEATEND\nREPEAT:" - }, - "bytecode": { - "doc_opcode": "E5", - "tlb": "#E5", - "prefix": "E5", - "operands": [] - }, - "value_flow": { - "doc_stack": "n - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "special", - "name": "repeat", - "args": { - "count": "n", - "body": { "type": "cc" }, - "after": { "type": "register", "index": 0 } - } - } - ], - "nobranch": true - } - }, - { - "mnemonic": "UNTIL", - "doc": { - "category": "cont_loops", - "description": "Executes continuation `c`, then pops an integer `x` from the resulting stack. If `x` is zero, performs another iteration of this loop. The actual implementation of this primitive involves an extraordinary continuation `ec_until` with its arguments set to the body of the loop (continuation `c`) and the original current continuation `cc`. This extraordinary continuation is then saved into the savelist of `c` as `c.c0` and the modified `c` is then executed. The other loop primitives are implemented similarly with the aid of suitable extraordinary continuations.", - "gas": "18", - "fift": "UNTIL", - "fift_examples": [ - { - "fift": "UNTIL:<{ code }> <{ code }>UNTIL", - "description": "Equivalent to `<{ code }> CONT` `UNTIL`." - } - ] - }, - "bytecode": { - "doc_opcode": "E6", - "tlb": "#E6", - "prefix": "E6", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "special", - "name": "until", - "args": { - "body": { "type": "variable", "var_name": "c" }, - "after": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - } - } - ] - } - }, - { - "mnemonic": "UNTILEND", - "doc": { - "category": "cont_loops", - "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:" - }, - "bytecode": { - "doc_opcode": "E7", - "tlb": "#E7", - "prefix": "E7", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "cc", - "save": { - "c0": { - "type": "special", - "name": "until", - "args": { - "body": { "type": "cc" }, - "after": { "type": "register", "index": 0 } - } - } - } - } - ] - } - }, - { - "mnemonic": "WHILE", - "doc": { - "category": "cont_loops", - "description": "Executes `c'` and pops an integer `x` from the resulting stack. If `x` is zero, exists the loop and transfers control to the original `cc`. If `x` is non-zero, executes `c`, and then begins a new iteration.", - "gas": "18", - "fift": "WHILE", - "fift_examples": [ - { - "fift": "WHILE:<{ cond }>DO<{ code }>", - "description": "Equivalent to `<{ cond }> CONT` `<{ code }> CONT` `WHILE`." - } - ] - }, - "bytecode": { - "doc_opcode": "E8", - "tlb": "#E8", - "prefix": "E8", - "operands": [] - }, - "value_flow": { - "doc_stack": "c' c - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "c2", "value_types": ["Continuation"] }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "special", - "name": "while", - "args": { - "cond": { "type": "variable", "var_name": "c2" }, - "body": { "type": "variable", "var_name": "c" }, - "after": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - } - } - ] - } - }, - { - "mnemonic": "WHILEEND", - "doc": { - "category": "cont_loops", - "description": "Similar to `WHILE`, but uses the current continuation `cc` as the loop body.", - "gas": "18", - "fift": "WHILEEND" - }, - "bytecode": { - "doc_opcode": "E9", - "tlb": "#E9", - "prefix": "E9", - "operands": [] - }, - "value_flow": { - "doc_stack": "c' - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "special", - "name": "while", - "args": { - "cond": { "type": "variable", "var_name": "c2" }, - "body": { "type": "cc" }, - "after": { "type": "register", "index": 0 } - } - } - } - } - ] - } - }, - { - "mnemonic": "AGAIN", - "doc": { - "category": "cont_loops", - "description": "Similar to `REPEAT`, but executes `c` infinitely many times. A `RET` only begins a new iteration of the infinite loop, which can be exited only by an exception, or a `RETALT` (or an explicit `JMPX`).", - "gas": "18", - "fift": "AGAIN", - "fift_examples": [ - { - "fift": "AGAIN:<{ code }> <{ code }>AGAIN", - "description": "Equivalent to `<{ code }> CONT` `AGAIN`." - } - ] - }, - "bytecode": { - "doc_opcode": "EA", - "tlb": "#EA", - "prefix": "EA", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "special", - "name": "again", - "args": { "body": { "type": "variable", "var_name": "c" } } - } - ] - } - }, - { - "mnemonic": "AGAINEND", - "doc": { - "category": "cont_loops", - "description": "Similar to `AGAIN`, but performed with respect to the current continuation `cc`.", - "gas": "18", - "fift": "AGAINEND\nAGAIN:" - }, - "bytecode": { - "doc_opcode": "EB", - "tlb": "#EB", - "prefix": "EB", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "special", - "name": "again", - "args": { "body": { "type": "cc" } } - } - ] - } - }, - { - "mnemonic": "REPEATBRK", - "doc": { - "category": "cont_loops", - "description": "Similar to `REPEAT`, but also sets `c1` to the original `cc` after saving the old value of `c1` into the savelist of the original `cc`. In this way `RETALT` could be used to break out of the loop body.", - "gas": "26", - "fift": "REPEATBRK", - "fift_examples": [ - { - "fift": "REPEATBRK:<{ code }> <{ code }>REPEATBRK", - "description": "Equivalent to `<{ code }> CONT` `REPEATBRK`." - } - ] - }, - "bytecode": { - "doc_opcode": "E314", - "tlb": "#E314", - "prefix": "E314", - "operands": [] - }, - "value_flow": { - "doc_stack": "n c -", - "inputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "special", - "name": "repeat", - "args": { - "count": "n", - "body": { - "type": "variable", - "var_name": "c", - "save": { - "c1": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 } - } - } - } - }, - "after": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 } - } - } - } - } - ], - "nobranch": true - } - }, - { - "mnemonic": "REPEATENDBRK", - "doc": { - "category": "cont_loops", - "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" - }, - "bytecode": { - "doc_opcode": "E315", - "tlb": "#E315", - "prefix": "E315", - "operands": [] - }, - "value_flow": { - "doc_stack": "n -", - "inputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "special", - "name": "repeat", - "args": { - "count": "n", - "body": { - "type": "cc", - "save": { "c1": { "type": "register", "index": 0 } } - }, - "after": { "type": "register", "index": 0 } - } - } - ], - "nobranch": true - } - }, - { - "mnemonic": "UNTILBRK", - "doc": { - "category": "cont_loops", - "description": "Similar to `UNTIL`, but also modifies `c1` in the same way as `REPEATBRK`.", - "gas": "26", - "fift": "UNTILBRK", - "fift_examples": [ - { - "fift": "UNTILBRK:<{ code }>", - "description": "Equivalent to `<{ code }> CONT` `UNTILBRK`." - } - ] - }, - "bytecode": { - "doc_opcode": "E316", - "tlb": "#E316", - "prefix": "E316", - "operands": [] - }, - "value_flow": { - "doc_stack": "c -", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "special", - "name": "until", - "args": { - "body": { - "type": "variable", - "var_name": "c", - "save": { - "c1": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 } - } - } - } - }, - "after": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 } - } - } - } - }, - "c1": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 } - } - } - } - } - ] - } - }, - { - "mnemonic": "UNTILENDBRK", - "doc": { - "category": "cont_loops", - "description": "Equivalent to `SAMEALTSAVE` `UNTILEND`.", - "gas": "26", - "fift": "UNTILENDBRK\nUNTILBRK:" - }, - "bytecode": { - "doc_opcode": "E317", - "tlb": "#E317", - "prefix": "E317", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "cc", - "save": { - "c0": { - "type": "special", - "name": "until", - "args": { - "body": { - "type": "cc", - "save": { "c1": { "type": "register", "index": 0 } } - }, - "after": { "type": "register", "index": 0 } - } - }, - "c1": { "type": "register", "index": 0 } - } - } - ] - } - }, - { - "mnemonic": "WHILEBRK", - "doc": { - "category": "cont_loops", - "description": "Similar to `WHILE`, but also modifies `c1` in the same way as `REPEATBRK`.", - "gas": "26", - "fift": "WHILEBRK", - "fift_examples": [ - { - "fift": "WHILEBRK:<{ cond }>DO<{ code }>", - "description": "Equivalent to `<{ cond }> CONT` `<{ code }> CONT` `WHILEBRK`." - } - ] - }, - "bytecode": { - "doc_opcode": "E318", - "tlb": "#E318", - "prefix": "E318", - "operands": [] - }, - "value_flow": { - "doc_stack": "c' c -", - "inputs": { - "stack": [ - { "type": "simple", "name": "c2", "value_types": ["Continuation"] }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "special", - "name": "while", - "args": { - "cond": { "type": "variable", "var_name": "c2" }, - "body": { "type": "variable", "var_name": "c" }, - "after": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 } - } - } - } - } - } - } - ] - } - }, - { - "mnemonic": "WHILEENDBRK", - "doc": { - "category": "cont_loops", - "description": "Equivalent to `SAMEALTSAVE` `WHILEEND`.", - "gas": "26", - "fift": "WHILEENDBRK" - }, - "bytecode": { - "doc_opcode": "E319", - "tlb": "#E319", - "prefix": "E319", - "operands": [] - }, - "value_flow": { - "doc_stack": "c -", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "AGAINBRK", - "doc": { - "category": "cont_loops", - "description": "Similar to `AGAIN`, but also modifies `c1` in the same way as `REPEATBRK`.", - "gas": "26", - "fift": "AGAINBRK", - "fift_examples": [ - { - "fift": "AGAINBRK:<{ code }>", - "description": "Equivalent to `<{ code }> CONT` `AGAINBRK`." - } - ] - }, - "bytecode": { - "doc_opcode": "E31A", - "tlb": "#E31A", - "prefix": "E31A", - "operands": [] - }, - "value_flow": { - "doc_stack": "c -", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "AGAINENDBRK", - "doc": { - "category": "cont_loops", - "description": "Equivalent to `SAMEALTSAVE` `AGAINEND`.", - "gas": "26", - "fift": "AGAINENDBRK\nAGAINBRK:" - }, - "bytecode": { - "doc_opcode": "E31B", - "tlb": "#E31B", - "prefix": "E31B", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SETCONTARGS_N", - "doc": { - "category": "cont_stack", - "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\u0432\u0402\u045c", - "fift": "[r] [n] SETCONTARGS" - }, - "bytecode": { - "doc_opcode": "ECrn", - "tlb": "#EC r:uint4 n:uint4", - "prefix": "EC", - "operands": [ - { "name": "r", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "x_1 x_2...x_r c - c'", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "r", - "array_entry": [{ "type": "simple", "name": "x" }] - }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] - } - } - }, - { - "mnemonic": "RETURNARGS", - "doc": { - "category": "cont_stack", - "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\u0432\u0402\u045c", - "fift": "[p] RETURNARGS" - }, - "bytecode": { - "doc_opcode": "ED0p", - "tlb": "#ED0 p:uint4", - "prefix": "ED0", - "operands": [ - { "name": "p", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { "doc_stack": "-" } - }, - { - "mnemonic": "RETURNVARARGS", - "doc": { - "category": "cont_stack", - "description": "Similar to `RETURNARGS`, but with Integer `0 <= p <= 255` taken from the stack.", - "gas": "26+s\u0432\u0402\u045c", - "fift": "RETURNVARARGS" - }, - "bytecode": { - "doc_opcode": "ED10", - "tlb": "#ED10", - "prefix": "ED10", - "operands": [] - }, - "value_flow": { "doc_stack": "p -" } - }, - { - "mnemonic": "SETCONTVARARGS", - "doc": { - "category": "cont_stack", - "description": "Similar to `SETCONTARGS`, but with `0 <= r <= 255` and `-1 <= n <= 255` taken from the stack.", - "gas": "26+s\u0432\u0402\u045c", - "fift": "SETCONTVARARGS" - }, - "bytecode": { - "doc_opcode": "ED11", - "tlb": "#ED11", - "prefix": "ED11", - "operands": [] - }, - "value_flow": { - "doc_stack": "x_1 x_2...x_r c r n - c'", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "r", - "array_entry": [{ "type": "simple", "name": "x" }] - }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] - } - } - }, - { - "mnemonic": "SETNUMVARARGS", - "doc": { - "category": "cont_stack", - "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" - }, - "bytecode": { - "doc_opcode": "ED12", - "tlb": "#ED12", - "prefix": "ED12", - "operands": [] - }, - "value_flow": { - "doc_stack": "c n - c'", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] - } - } - }, - { - "mnemonic": "BLESS", - "doc": { - "category": "cont_create", - "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" - }, - "bytecode": { - "doc_opcode": "ED1E", - "tlb": "#ED1E", - "prefix": "ED1E", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - c", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - } - } - }, - { - "mnemonic": "BLESSVARARGS", - "doc": { - "category": "cont_create", - "description": "Equivalent to `ROT` `BLESS` `ROTREV` `SETCONTVARARGS`.", - "gas": "26+s\u0432\u0402\u045c", - "fift": "BLESSVARARGS" - }, - "bytecode": { - "doc_opcode": "ED1F", - "tlb": "#ED1F", - "prefix": "ED1F", - "operands": [] - }, - "value_flow": { - "doc_stack": "x_1...x_r s r n - c", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "r", - "array_entry": [{ "type": "simple", "name": "x" }] - }, - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - } - } - }, - { - "mnemonic": "BLESSARGS", - "doc": { - "category": "cont_create", - "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" - }, - "bytecode": { - "doc_opcode": "EErn", - "tlb": "#EE r:uint4 n:uint4", - "prefix": "EE", - "operands": [ - { "name": "r", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "x_1...x_r s - c", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "r", - "array_entry": [{ "type": "simple", "name": "x" }] - }, - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - } - } - }, - { - "mnemonic": "PUSHCTR", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "ED4i", - "tlb": "#ED4 i:uint4", - "prefix": "ED4", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "- x", - "inputs": { "stack": [] }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } - } - }, - { - "mnemonic": "POPCTR", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "ED5i", - "tlb": "#ED5 i:uint4", - "prefix": "ED5", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "x - ", - "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SETCONTCTR", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "ED6i", - "tlb": "#ED6 i:uint4", - "prefix": "ED6", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "x c - c'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] - } - } - }, - { - "mnemonic": "SETRETCTR", - "doc": { - "category": "cont_registers", - "description": "Equivalent to `c0 PUSHCTR` `c[i] SETCONTCTR` `c0 POPCTR`.", - "gas": "26", - "fift": "c[i] SETRETCTR" - }, - "bytecode": { - "doc_opcode": "ED7i", - "tlb": "#ED7 i:uint4", - "prefix": "ED7", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "x - ", - "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SETALTCTR", - "doc": { - "category": "cont_registers", - "description": "Equivalent to `c1 PUSHCTR` `c[i] SETCONTCTR` `c0 POPCTR`.", - "gas": "26", - "fift": "c[i] SETALTCTR" - }, - "bytecode": { - "doc_opcode": "ED8i", - "tlb": "#ED8 i:uint4", - "prefix": "ED8", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "x - ", - "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "POPSAVE", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "ED9i", - "tlb": "#ED9 i:uint4", - "prefix": "ED9", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "x -", - "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SAVE", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "EDAi", - "tlb": "#EDA i:uint4", - "prefix": "EDA", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SAVEALT", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "EDBi", - "tlb": "#EDB i:uint4", - "prefix": "EDB", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SAVEBOTH", - "doc": { - "category": "cont_registers", - "description": "Equivalent to `DUP` `c[i] SAVE` `c[i] SAVEALT`.", - "gas": "26", - "fift": "c[i] SAVEBOTH\nc[i] SAVEBOTHCTR" - }, - "bytecode": { - "doc_opcode": "EDCi", - "tlb": "#EDC i:uint4", - "prefix": "EDC", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "PUSHCTRX", - "doc": { - "category": "cont_registers", - "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 \u0432\u0402\u045aexotic'' 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" - }, - "bytecode": { - "doc_opcode": "EDE0", - "tlb": "#EDE0", - "prefix": "EDE0", - "operands": [] - }, - "value_flow": { - "doc_stack": "i - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "i", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } - } - }, - { - "mnemonic": "POPCTRX", - "doc": { - "category": "cont_registers", - "description": "Similar to `c[i] POPCTR`, but with `0 <= i <= 255` from the stack.", - "gas": "26", - "fift": "POPCTRX" - }, - "bytecode": { - "doc_opcode": "EDE1", - "tlb": "#EDE1", - "prefix": "EDE1", - "operands": [] - }, - "value_flow": { - "doc_stack": "x i - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "i", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SETCONTCTRX", - "doc": { - "category": "cont_registers", - "description": "Similar to `c[i] SETCONTCTR`, but with `0 <= i <= 255` from the stack.", - "gas": "26", - "fift": "SETCONTCTRX" - }, - "bytecode": { - "doc_opcode": "EDE2", - "tlb": "#EDE2", - "prefix": "EDE2", - "operands": [] - }, - "value_flow": { - "doc_stack": "x c i - c'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] - } - } - }, - { - "mnemonic": "COMPOS", - "doc": { - "category": "cont_registers", - "description": "Computes the composition `compose0(c, c\u0432\u0402\u2122)`, which has the meaning of \u0432\u0402\u045aperform `c`, and, if successful, perform `c'`'' (if `c` is a boolean circuit) or simply \u0432\u0402\u045aperform `c`, then `c'`''. Equivalent to `SWAP` `c0 SETCONT`.", - "gas": "26", - "fift": "COMPOS\nBOOLAND" - }, - "bytecode": { - "doc_opcode": "EDF0", - "tlb": "#EDF0", - "prefix": "EDF0", - "operands": [] - }, - "value_flow": { - "doc_stack": "c c' - c''", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] }, - { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c3", "value_types": ["Continuation"] } - ] - } - } - }, - { - "mnemonic": "COMPOSALT", - "doc": { - "category": "cont_registers", - "description": "Computes the alternative composition `compose1(c, c\u0432\u0402\u2122)`, which has the meaning of \u0432\u0402\u045aperform `c`, and, if not successful, perform `c'`'' (if `c` is a boolean circuit). Equivalent to `SWAP` `c1 SETCONT`.", - "gas": "26", - "fift": "COMPOSALT\nBOOLOR" - }, - "bytecode": { - "doc_opcode": "EDF1", - "tlb": "#EDF1", - "prefix": "EDF1", - "operands": [] - }, - "value_flow": { - "doc_stack": "c c' - c''", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] }, - { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c3", "value_types": ["Continuation"] } - ] - } - } - }, - { - "mnemonic": "COMPOSBOTH", - "doc": { - "category": "cont_registers", - "description": "Computes composition `compose1(compose0(c, c\u0432\u0402\u2122), c\u0432\u0402\u2122)`, which has the meaning of \u0432\u0402\u045acompute boolean circuit `c`, then compute `c'`, regardless of the result of `c`''.", - "gas": "26", - "fift": "COMPOSBOTH" - }, - "bytecode": { - "doc_opcode": "EDF2", - "tlb": "#EDF2", - "prefix": "EDF2", - "operands": [] - }, - "value_flow": { - "doc_stack": "c c' - c''", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] }, - { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c3", "value_types": ["Continuation"] } - ] - } - } - }, - { - "mnemonic": "ATEXIT", - "doc": { - "category": "cont_registers", - "description": "Sets `c0` to `compose0(c, c0)`. In other words, `c` will be executed before exiting current subroutine.", - "gas": "26", - "fift": "ATEXIT", - "fift_examples": [ - { - "fift": "ATEXIT:<{ code }> <{ code }>ATEXIT", - "description": "Equivalent to `<{ code }> CONT` `ATEXIT`." - } - ] - }, - "bytecode": { - "doc_opcode": "EDF3", - "tlb": "#EDF3", - "prefix": "EDF3", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "ATEXITALT", - "doc": { - "category": "cont_registers", - "description": "Sets `c1` to `compose1(c, c1)`. In other words, `c` will be executed before exiting current subroutine by its alternative return path.", - "gas": "26", - "fift": "ATEXITALT", - "fift_examples": [ - { - "fift": "ATEXITALT:<{ code }> <{ code }>ATEXITALT", - "description": "Equivalent to `<{ code }> CONT` `ATEXITALT`." - } - ] - }, - "bytecode": { - "doc_opcode": "EDF4", - "tlb": "#EDF4", - "prefix": "EDF4", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SETEXITALT", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "EDF5", - "tlb": "#EDF5", - "prefix": "EDF5", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "THENRET", - "doc": { - "category": "cont_registers", - "description": "Computes `compose0(c, c0)`.", - "gas": "26", - "fift": "THENRET" - }, - "bytecode": { - "doc_opcode": "EDF6", - "tlb": "#EDF6", - "prefix": "EDF6", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - c'", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] - } - } - }, - { - "mnemonic": "THENRETALT", - "doc": { - "category": "cont_registers", - "description": "Computes `compose0(c, c1)`", - "gas": "26", - "fift": "THENRETALT" - }, - "bytecode": { - "doc_opcode": "EDF7", - "tlb": "#EDF7", - "prefix": "EDF7", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - c'", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] - } - } - }, - { - "mnemonic": "INVERT", - "doc": { - "category": "cont_registers", - "description": "Interchanges `c0` and `c1`.", - "gas": "26", - "fift": "INVERT" - }, - "bytecode": { - "doc_opcode": "EDF8", - "tlb": "#EDF8", - "prefix": "EDF8", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "BOOLEVAL", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "EDF9", - "tlb": "#EDF9", - "prefix": "EDF9", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "special", - "name": "pushint", - "args": { - "next": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 } - } - }, - "value": -1 - } - }, - "c1": { - "type": "special", - "name": "pushint", - "args": { - "next": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 } - } - }, - "value": 0 - } - } - } - } - ] - } - }, - { - "mnemonic": "SAMEALT", - "doc": { - "category": "cont_registers", - "description": "Sets `c1` to `c0`. Equivalent to `c0 PUSHCTR` `c1 POPCTR`.", - "gas": "26", - "fift": "SAMEALT" - }, - "bytecode": { - "doc_opcode": "EDFA", - "tlb": "#EDFA", - "prefix": "EDFA", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SAMEALTSAVE", - "doc": { - "category": "cont_registers", - "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" - }, - "bytecode": { - "doc_opcode": "EDFB", - "tlb": "#EDFB", - "prefix": "EDFB", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "CALLDICT", - "doc": { - "category": "cont_dict", - "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" - }, - "bytecode": { - "doc_opcode": "F0nn", - "tlb": "#F0 n:uint8", - "prefix": "F0", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "- nn", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "register", - "index": 3, - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ] - } - }, - { - "mnemonic": "CALLDICT_LONG", - "doc": { - "category": "cont_dict", - "description": "For `0 <= n < 2^14`, an encoding of `[n] CALL` for larger values of `n`.", - "gas": "", - "fift": "[n] CALL\n[n] CALLDICT" - }, - "bytecode": { - "doc_opcode": "F12_n", - "tlb": "#F12_ n:uint14", - "prefix": "F12_", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 14 } } - ] - }, - "value_flow": { - "doc_stack": "- n", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "register", - "index": 3, - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ] - } - }, - { - "mnemonic": "JMPDICT", - "doc": { - "category": "cont_dict", - "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" - }, - "bytecode": { - "doc_opcode": "F16_n", - "tlb": "#F16_ n:uint14", - "prefix": "F16_", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 14 } } - ] - }, - "value_flow": { - "doc_stack": " - n", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - } - }, - "control_flow": { "branches": [{ "type": "register", "index": 3 }] } - }, - { - "mnemonic": "PREPAREDICT", - "doc": { - "category": "cont_dict", - "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" - }, - "bytecode": { - "doc_opcode": "F1A_n", - "tlb": "#F1A_ n:uint14", - "prefix": "F1A_", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 14 } } - ] - }, - "value_flow": { - "doc_stack": " - n c", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] - } - } - }, - { - "mnemonic": "THROW_SHORT", - "doc": { - "category": "exceptions", - "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" - }, - "bytecode": { - "doc_opcode": "F22_n", - "tlb": "#F22_ n:uint6", - "prefix": "F22_", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 6 } } - ] - }, - "value_flow": { - "doc_stack": " - 0 n", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "THROWIF_SHORT", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= n <= 63` with parameter zero only if integer `f!=0`.", - "gas": "26/76", - "fift": "[n] THROWIF" - }, - "bytecode": { - "doc_opcode": "F26_n", - "tlb": "#F26_ n:uint6", - "prefix": "F26_", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 6 } } - ] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "THROWIFNOT_SHORT", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= n <= 63` with parameter zero only if integer `f=0`.", - "gas": "26/76", - "fift": "[n] THROWIFNOT" - }, - "bytecode": { - "doc_opcode": "F2A_n", - "tlb": "#F2A_ n:uint6", - "prefix": "F2A_", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 6 } } - ] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "THROW", - "doc": { - "category": "exceptions", - "description": "For `0 <= n < 2^11`, an encoding of `[n] THROW` for larger values of `n`.", - "gas": "84", - "fift": "[n] THROW" - }, - "bytecode": { - "doc_opcode": "F2C4_n", - "tlb": "#F2C4_ n:uint11", - "prefix": "F2C4_", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } - ] - }, - "value_flow": { - "doc_stack": "- 0 nn", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "THROWARG", - "doc": { - "category": "exceptions", - "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" - }, - "bytecode": { - "doc_opcode": "F2CC_n", - "tlb": "#F2CC_ n:uint11", - "prefix": "F2CC_", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } - ] - }, - "value_flow": { - "doc_stack": "x - x nn", - "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "THROWIF", - "doc": { - "category": "exceptions", - "description": "For `0 <= n < 2^11`, an encoding of `[n] THROWIF` for larger values of `n`.", - "gas": "34/84", - "fift": "[n] THROWIF" - }, - "bytecode": { - "doc_opcode": "F2D4_n", - "tlb": "#F2D4_ n:uint11", - "prefix": "F2D4_", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } - ] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "THROWARGIF", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= nn < 2^11` with parameter `x` only if integer `f!=0`.", - "gas": "34/84", - "fift": "[n] THROWARGIF" - }, - "bytecode": { - "doc_opcode": "F2DC_n", - "tlb": "#F2DC_ n:uint11", - "prefix": "F2DC_", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } - ] - }, - "value_flow": { - "doc_stack": "x f - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "THROWIFNOT", - "doc": { - "category": "exceptions", - "description": "For `0 <= n < 2^11`, an encoding of `[n] THROWIFNOT` for larger values of `n`.", - "gas": "34/84", - "fift": "[n] THROWIFNOT" - }, - "bytecode": { - "doc_opcode": "F2E4_n", - "tlb": "#F2E4_ n:uint11", - "prefix": "F2E4_", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } - ] - }, - "value_flow": { - "doc_stack": "f - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "THROWARGIFNOT", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= n < 2^11` with parameter `x` only if integer `f=0`.", - "gas": "34/84", - "fift": "[n] THROWARGIFNOT" - }, - "bytecode": { - "doc_opcode": "F2EC_n", - "tlb": "#F2EC_ n:uint11", - "prefix": "F2EC_", - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } - ] - }, - "value_flow": { - "doc_stack": "x f - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "THROWANY", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= n < 2^16` with parameter zero.\nApproximately equivalent to `ZERO` `SWAP` `THROWARGANY`.", - "gas": "76", - "fift": "THROWANY" - }, - "bytecode": { - "doc_opcode": "F2F0", - "tlb": "#F2F0", - "prefix": "F2F0", - "operands": [] - }, - "value_flow": { - "doc_stack": "n - 0 n", - "inputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "THROWARGANY", - "doc": { - "category": "exceptions", - "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" - }, - "bytecode": { - "doc_opcode": "F2F1", - "tlb": "#F2F1", - "prefix": "F2F1", - "operands": [] - }, - "value_flow": { - "doc_stack": "x n - x n", - "inputs": { - "stack": [ - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "THROWANYIF", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= n < 2^16` with parameter zero only if `f!=0`.", - "gas": "26/76", - "fift": "THROWANYIF" - }, - "bytecode": { - "doc_opcode": "F2F2", - "tlb": "#F2F2", - "prefix": "F2F2", - "operands": [] - }, - "value_flow": { - "doc_stack": "n f - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] }, - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "THROWARGANYIF", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= n<2^16` with parameter `x` only if `f!=0`.", - "gas": "26/76", - "fift": "THROWARGANYIF" - }, - "bytecode": { - "doc_opcode": "F2F3", - "tlb": "#F2F3", - "prefix": "F2F3", - "operands": [] - }, - "value_flow": { - "doc_stack": "x n f - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "n", "value_types": ["Integer"] }, - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "THROWANYIFNOT", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= n<2^16` with parameter zero only if `f=0`.", - "gas": "26/76", - "fift": "THROWANYIFNOT" - }, - "bytecode": { - "doc_opcode": "F2F4", - "tlb": "#F2F4", - "prefix": "F2F4", - "operands": [] - }, - "value_flow": { - "doc_stack": "n f - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] }, - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "THROWARGANYIFNOT", - "doc": { - "category": "exceptions", - "description": "Throws exception `0 <= n<2^16` with parameter `x` only if `f=0`.", - "gas": "26/76", - "fift": "THROWARGANYIFNOT" - }, - "bytecode": { - "doc_opcode": "F2F5", - "tlb": "#F2F5", - "prefix": "F2F5", - "operands": [] - }, - "value_flow": { - "doc_stack": "x n f - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "n", "value_types": ["Integer"] }, - { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "TRY", - "doc": { - "category": "exceptions", - "description": "Sets `c2` to `c'`, first saving the old value of `c2` both into the savelist of `c'` and into the savelist of the current continuation, which is stored into `c.c0` and `c'.c0`. Then runs `c` similarly to `EXECUTE`. If `c` does not throw any exceptions, the original value of `c2` is automatically restored on return from `c`. If an exception occurs, the execution is transferred to `c'`, but the original value of `c2` is restored in the process, so that `c'` can re-throw the exception by `THROWANY` if it cannot handle it by itself.", - "gas": "26", - "fift": "TRY", - "fift_examples": [ - { - "fift": "TRY:<{ code1 }>CATCH<{ code2 }>", - "description": "Equivalent to `<{ code1 }> CONT` `<{ code2 }> CONT` `TRY`." - } - ] - }, - "bytecode": { - "doc_opcode": "F2FF", - "tlb": "#F2FF", - "prefix": "F2FF", - "operands": [] - }, - "value_flow": { - "doc_stack": "c c' - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Continuation"] }, - { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 }, - "c2": { "type": "register", "index": 2 } - } - }, - "c2": { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 }, - "c2": { "type": "register", "index": 2 } - } - }, - "c2": { "type": "register", "index": 2 } - } - } - } - } - ] - } - }, - { - "mnemonic": "TRYARGS", - "doc": { - "category": "exceptions", - "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" - }, - "bytecode": { - "doc_opcode": "F3pr", - "tlb": "#F3 p:uint4 r:uint4", - "prefix": "F3", - "operands": [ - { "name": "p", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "r", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "c c' - ", - "inputs": { - "stack": [ - { - "type": "array", - "name": "args", - "length_var": "r", - "array_entry": [{ "type": "simple", "name": "arg" }] - }, - { "type": "simple", "name": "c", "value_types": ["Continuation"] }, - { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 }, - "c2": { "type": "register", "index": 2 } - } - }, - "c2": { - "type": "variable", - "var_name": "c2", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 }, - "c1": { "type": "register", "index": 1 }, - "c2": { "type": "register", "index": 2 } - } - }, - "c2": { "type": "register", "index": 2 } - } - } - } - } - ] - } - }, - { - "mnemonic": "STDICT", - "doc": { - "category": "dict_serial", - "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" - }, - "bytecode": { - "doc_opcode": "F400", - "tlb": "#F400", - "prefix": "F400", - "operands": [] - }, - "value_flow": { - "doc_stack": "D b - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "SKIPDICT", - "doc": { - "category": "dict_serial", - "description": "Equivalent to `LDDICT` `NIP`.", - "gas": "26", - "fift": "SKIPDICT\nSKIPOPTREF" - }, - "bytecode": { - "doc_opcode": "F401", - "tlb": "#F401", - "prefix": "F401", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDDICTS", - "doc": { - "category": "dict_serial", - "description": "Loads (parses) a (_Slice_-represented) dictionary `s'` from _Slice_ `s`, and returns the remainder of `s` as `s''`.\nThis is a \u0432\u0402\u045asplit function'' for all `HashmapE(n,X)` dictionary types.", - "gas": "26", - "fift": "LDDICTS" - }, - "bytecode": { - "doc_opcode": "F402", - "tlb": "#F402", - "prefix": "F402", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - s' s''", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] }, - { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "PLDDICTS", - "doc": { - "category": "dict_serial", - "description": "Preloads a (_Slice_-represented) dictionary `s'` from _Slice_ `s`.\nApproximately equivalent to `LDDICTS` `DROP`.", - "gas": "26", - "fift": "PLDDICTS" - }, - "bytecode": { - "doc_opcode": "F403", - "tlb": "#F403", - "prefix": "F403", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDDICT", - "doc": { - "category": "dict_serial", - "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" - }, - "bytecode": { - "doc_opcode": "F404", - "tlb": "#F404", - "prefix": "F404", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - D s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "PLDDICT", - "doc": { - "category": "dict_serial", - "description": "Preloads a dictionary `D` from _Slice_ `s`.\nApproximately equivalent to `LDDICT` `DROP`.", - "gas": "26", - "fift": "PLDDICT\nPLDOPTREF" - }, - "bytecode": { - "doc_opcode": "F405", - "tlb": "#F405", - "prefix": "F405", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - D", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] } - ] - } - } - }, - { - "mnemonic": "LDDICTQ", - "doc": { - "category": "dict_serial", - "description": "A quiet version of `LDDICT`.", - "gas": "26", - "fift": "LDDICTQ" - }, - "bytecode": { - "doc_opcode": "F406", - "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"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Integer"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PLDDICTQ", - "doc": { - "category": "dict_serial", - "description": "A quiet version of `PLDDICT`.", - "gas": "26", - "fift": "PLDDICTQ" - }, - "bytecode": { - "doc_opcode": "F407", - "tlb": "#F407", - "prefix": "F407", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - D -1 or 0", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTGET", - "doc": { - "category": "dict_get", - "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" - }, - "bytecode": { - "doc_opcode": "F40A", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTGETREF", - "doc": { - "category": "dict_get", - "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" - }, - "bytecode": { - "doc_opcode": "F40B", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIGET", - "doc": { - "category": "dict_get", - "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" - }, - "bytecode": { - "doc_opcode": "F40C", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIGETREF", - "doc": { - "category": "dict_get", - "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" - }, - "bytecode": { - "doc_opcode": "F40D", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUGET", - "doc": { - "category": "dict_get", - "description": "Similar to `DICTIGET`, but with _unsigned_ (big-endian) `n`-bit _Integer_ `i` used as a key.", - "gas": "", - "fift": "DICTUGET" - }, - "bytecode": { - "doc_opcode": "F40E", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUGETREF", - "doc": { - "category": "dict_get", - "description": "Similar to `DICTIGETREF`, but with an unsigned `n`-bit _Integer_ key `i`.", - "gas": "", - "fift": "DICTUGETREF" - }, - "bytecode": { - "doc_opcode": "F40F", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTSET", - "doc": { - "category": "dict_set", - "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" - }, - "bytecode": { - "doc_opcode": "F412", - "tlb": "#F412", - "prefix": "F412", - "operands": [] - }, - "value_flow": { - "doc_stack": "x k D n - D'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "DICTSETREF", - "doc": { - "category": "dict_set", - "description": "Similar to `DICTSET`, but with the value set to a reference to _Cell_ `c`.", - "gas": "", - "fift": "DICTSETREF" - }, - "bytecode": { - "doc_opcode": "F413", - "tlb": "#F413", - "prefix": "F413", - "operands": [] - }, - "value_flow": { - "doc_stack": "c k D n - D'", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "DICTISET", - "doc": { - "category": "dict_set", - "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" - }, - "bytecode": { - "doc_opcode": "F414", - "tlb": "#F414", - "prefix": "F414", - "operands": [] - }, - "value_flow": { - "doc_stack": "x i D n - D'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "DICTISETREF", - "doc": { - "category": "dict_set", - "description": "Similar to `DICTSETREF`, but with the key a signed `n`-bit integer as in `DICTISET`.", - "gas": "", - "fift": "DICTISETREF" - }, - "bytecode": { - "doc_opcode": "F415", - "tlb": "#F415", - "prefix": "F415", - "operands": [] - }, - "value_flow": { - "doc_stack": "c i D n - D'", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "DICTUSET", - "doc": { - "category": "dict_set", - "description": "Similar to `DICTISET`, but with `i` an _unsigned_ `n`-bit integer.", - "gas": "", - "fift": "DICTUSET" - }, - "bytecode": { - "doc_opcode": "F416", - "tlb": "#F416", - "prefix": "F416", - "operands": [] - }, - "value_flow": { - "doc_stack": "x i D n - D'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "DICTUSETREF", - "doc": { - "category": "dict_set", - "description": "Similar to `DICTISETREF`, but with `i` unsigned.", - "gas": "", - "fift": "DICTUSETREF" - }, - "bytecode": { - "doc_opcode": "F417", - "tlb": "#F417", - "prefix": "F417", - "operands": [] - }, - "value_flow": { - "doc_stack": "c i D n - D'", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "DICTSETGET", - "doc": { - "category": "dict_set", - "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" - }, - "bytecode": { - "doc_opcode": "F41A", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTSETGETREF", - "doc": { - "category": "dict_set", - "description": "Combines `DICTSETREF` with `DICTGETREF` similarly to `DICTSETGET`.", - "gas": "", - "fift": "DICTSETGETREF" - }, - "bytecode": { - "doc_opcode": "F41B", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "c2", "value_types": ["Cell"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTISETGET", - "doc": { - "category": "dict_set", - "description": "`DICTISETGET`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTISETGET" - }, - "bytecode": { - "doc_opcode": "F41C", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTISETGETREF", - "doc": { - "category": "dict_set", - "description": "`DICTISETGETREF`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTISETGETREF" - }, - "bytecode": { - "doc_opcode": "F41D", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "c2", "value_types": ["Cell"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUSETGET", - "doc": { - "category": "dict_set", - "description": "`DICTISETGET`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUSETGET" - }, - "bytecode": { - "doc_opcode": "F41E", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUSETGETREF", - "doc": { - "category": "dict_set", - "description": "`DICTISETGETREF`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUSETGETREF" - }, - "bytecode": { - "doc_opcode": "F41F", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "c2", "value_types": ["Cell"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTREPLACE", - "doc": { - "category": "dict_set", - "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" - }, - "bytecode": { - "doc_opcode": "F422", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTREPLACEREF", - "doc": { - "category": "dict_set", - "description": "A _Replace_ counterpart of `DICTSETREF`.", - "gas": "", - "fift": "DICTREPLACEREF" - }, - "bytecode": { - "doc_opcode": "F423", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIREPLACE", - "doc": { - "category": "dict_set", - "description": "`DICTREPLACE`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIREPLACE" - }, - "bytecode": { - "doc_opcode": "F424", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIREPLACEREF", - "doc": { - "category": "dict_set", - "description": "`DICTREPLACEREF`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIREPLACEREF" - }, - "bytecode": { - "doc_opcode": "F425", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUREPLACE", - "doc": { - "category": "dict_set", - "description": "`DICTREPLACE`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUREPLACE" - }, - "bytecode": { - "doc_opcode": "F426", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUREPLACEREF", - "doc": { - "category": "dict_set", - "description": "`DICTREPLACEREF`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUREPLACEREF" - }, - "bytecode": { - "doc_opcode": "F427", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTREPLACEGET", - "doc": { - "category": "dict_set", - "description": "A _Replace_ counterpart of `DICTSETGET`: on success, also returns the old value associated with the key in question.", - "gas": "", - "fift": "DICTREPLACEGET" - }, - "bytecode": { - "doc_opcode": "F42A", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTREPLACEGETREF", - "doc": { - "category": "dict_set", - "description": "A _Replace_ counterpart of `DICTSETGETREF`.", - "gas": "", - "fift": "DICTREPLACEGETREF" - }, - "bytecode": { - "doc_opcode": "F42B", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "c2", "value_types": ["Cell"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIREPLACEGET", - "doc": { - "category": "dict_set", - "description": "`DICTREPLACEGET`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIREPLACEGET" - }, - "bytecode": { - "doc_opcode": "F42C", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIREPLACEGETREF", - "doc": { - "category": "dict_set", - "description": "`DICTREPLACEGETREF`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIREPLACEGETREF" - }, - "bytecode": { - "doc_opcode": "F42D", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "c2", "value_types": ["Cell"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUREPLACEGET", - "doc": { - "category": "dict_set", - "description": "`DICTREPLACEGET`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUREPLACEGET" - }, - "bytecode": { - "doc_opcode": "F42E", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUREPLACEGETREF", - "doc": { - "category": "dict_set", - "description": "`DICTREPLACEGETREF`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUREPLACEGETREF" - }, - "bytecode": { - "doc_opcode": "F42F", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "c2", "value_types": ["Cell"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTADD", - "doc": { - "category": "dict_set", - "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" - }, - "bytecode": { - "doc_opcode": "F432", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTADDREF", - "doc": { - "category": "dict_set", - "description": "An _Add_ counterpart of `DICTSETREF`.", - "gas": "", - "fift": "DICTADDREF" - }, - "bytecode": { - "doc_opcode": "F433", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIADD", - "doc": { - "category": "dict_set", - "description": "`DICTADD`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIADD" - }, - "bytecode": { - "doc_opcode": "F434", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIADDREF", - "doc": { - "category": "dict_set", - "description": "`DICTADDREF`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIADDREF" - }, - "bytecode": { - "doc_opcode": "F435", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUADD", - "doc": { - "category": "dict_set", - "description": "`DICTADD`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUADD" - }, - "bytecode": { - "doc_opcode": "F436", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUADDREF", - "doc": { - "category": "dict_set", - "description": "`DICTADDREF`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUADDREF" - }, - "bytecode": { - "doc_opcode": "F437", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTADDGET", - "doc": { - "category": "dict_set", - "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" - }, - "bytecode": { - "doc_opcode": "F43A", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTADDGETREF", - "doc": { - "category": "dict_set", - "description": "An _Add_ counterpart of `DICTSETGETREF`.", - "gas": "", - "fift": "DICTADDGETREF" - }, - "bytecode": { - "doc_opcode": "F43B", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] }, - { "type": "simple", "name": "c2", "value_types": ["Cell"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIADDGET", - "doc": { - "category": "dict_set", - "description": "`DICTADDGET`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIADDGET" - }, - "bytecode": { - "doc_opcode": "F43C", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIADDGETREF", - "doc": { - "category": "dict_set", - "description": "`DICTADDGETREF`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIADDGETREF" - }, - "bytecode": { - "doc_opcode": "F43D", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] }, - { "type": "simple", "name": "c2", "value_types": ["Cell"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUADDGET", - "doc": { - "category": "dict_set", - "description": "`DICTADDGET`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUADDGET" - }, - "bytecode": { - "doc_opcode": "F43E", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUADDGETREF", - "doc": { - "category": "dict_set", - "description": "`DICTADDGETREF`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUADDGETREF" - }, - "bytecode": { - "doc_opcode": "F43F", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] }, - { "type": "simple", "name": "c2", "value_types": ["Cell"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTSETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTSETB" - }, - "bytecode": { - "doc_opcode": "F441", - "tlb": "#F441", - "prefix": "F441", - "operands": [] - }, - "value_flow": { - "doc_stack": "b k D n - D'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "DICTISETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTISETB" - }, - "bytecode": { - "doc_opcode": "F442", - "tlb": "#F442", - "prefix": "F442", - "operands": [] - }, - "value_flow": { - "doc_stack": "b i D n - D'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "DICTUSETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTUSETB" - }, - "bytecode": { - "doc_opcode": "F443", - "tlb": "#F443", - "prefix": "F443", - "operands": [] - }, - "value_flow": { - "doc_stack": "b i D n - D'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "DICTSETGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTSETGETB" - }, - "bytecode": { - "doc_opcode": "F445", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTISETGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTISETGETB" - }, - "bytecode": { - "doc_opcode": "F446", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUSETGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTUSETGETB" - }, - "bytecode": { - "doc_opcode": "F447", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTREPLACEB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTREPLACEB" - }, - "bytecode": { - "doc_opcode": "F449", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIREPLACEB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTIREPLACEB" - }, - "bytecode": { - "doc_opcode": "F44A", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUREPLACEB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTUREPLACEB" - }, - "bytecode": { - "doc_opcode": "F44B", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTREPLACEGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTREPLACEGETB" - }, - "bytecode": { - "doc_opcode": "F44D", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIREPLACEGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTIREPLACEGETB" - }, - "bytecode": { - "doc_opcode": "F44E", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUREPLACEGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTUREPLACEGETB" - }, - "bytecode": { - "doc_opcode": "F44F", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTADDB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTADDB" - }, - "bytecode": { - "doc_opcode": "F451", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIADDB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTIADDB" - }, - "bytecode": { - "doc_opcode": "F452", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUADDB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTUADDB" - }, - "bytecode": { - "doc_opcode": "F453", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTADDGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTADDGETB" - }, - "bytecode": { - "doc_opcode": "F455", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIADDGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTIADDGETB" - }, - "bytecode": { - "doc_opcode": "F456", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUADDGETB", - "doc": { - "category": "dict_set_builder", - "description": "", - "gas": "", - "fift": "DICTUADDGETB" - }, - "bytecode": { - "doc_opcode": "F457", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice"] }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTDEL", - "doc": { - "category": "dict_delete", - "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" - }, - "bytecode": { - "doc_opcode": "F459", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIDEL", - "doc": { - "category": "dict_delete", - "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` (\u0432\u0402\u045akey not found, dictionary unmodified'').", - "gas": "", - "fift": "DICTIDEL" - }, - "bytecode": { - "doc_opcode": "F45A", - "tlb": "#F45A", - "prefix": "F45A", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - D' ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUDEL", - "doc": { - "category": "dict_delete", - "description": "Similar to `DICTIDEL`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUDEL" - }, - "bytecode": { - "doc_opcode": "F45B", - "tlb": "#F45B", - "prefix": "F45B", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - D' ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTDELGET", - "doc": { - "category": "dict_delete", - "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" - }, - "bytecode": { - "doc_opcode": "F462", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "x", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTDELGETREF", - "doc": { - "category": "dict_delete", - "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" - }, - "bytecode": { - "doc_opcode": "F463", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "c", "value_types": ["Cell"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIDELGET", - "doc": { - "category": "dict_delete", - "description": "`DICTDELGET`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIDELGET" - }, - "bytecode": { - "doc_opcode": "F464", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "x", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIDELGETREF", - "doc": { - "category": "dict_delete", - "description": "`DICTDELGETREF`, but with `i` a signed `n`-bit integer.", - "gas": "", - "fift": "DICTIDELGETREF" - }, - "bytecode": { - "doc_opcode": "F465", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "c", "value_types": ["Cell"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUDELGET", - "doc": { - "category": "dict_delete", - "description": "`DICTDELGET`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUDELGET" - }, - "bytecode": { - "doc_opcode": "F466", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "x", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUDELGETREF", - "doc": { - "category": "dict_delete", - "description": "`DICTDELGETREF`, but with `i` an unsigned `n`-bit integer.", - "gas": "", - "fift": "DICTUDELGETREF" - }, - "bytecode": { - "doc_opcode": "F467", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "c", "value_types": ["Cell"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTGETOPTREF", - "doc": { - "category": "dict_mayberef", - "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" - }, - "bytecode": { - "doc_opcode": "F469", - "tlb": "#F469", - "prefix": "F469", - "operands": [] - }, - "value_flow": { - "doc_stack": "k D n - c^?", - "inputs": { - "stack": [ - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] } - ] - } - } - }, - { - "mnemonic": "DICTIGETOPTREF", - "doc": { - "category": "dict_mayberef", - "description": "`DICTGETOPTREF`, but with `i` a signed `n`-bit integer. If the key `i` is out of range, also returns _Null_.", - "gas": "", - "fift": "DICTIGETOPTREF" - }, - "bytecode": { - "doc_opcode": "F46A", - "tlb": "#F46A", - "prefix": "F46A", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - c^?", - "inputs": { - "stack": [ - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] } - ] - } - } - }, - { - "mnemonic": "DICTUGETOPTREF", - "doc": { - "category": "dict_mayberef", - "description": "`DICTGETOPTREF`, but with `i` an unsigned `n`-bit integer. If the key `i` is out of range, also returns _Null_.", - "gas": "", - "fift": "DICTUGETOPTREF" - }, - "bytecode": { - "doc_opcode": "F46B", - "tlb": "#F46B", - "prefix": "F46B", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - c^?", - "inputs": { - "stack": [ - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] } - ] - } - } - }, - { - "mnemonic": "DICTSETGETOPTREF", - "doc": { - "category": "dict_mayberef", - "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" - }, - "bytecode": { - "doc_opcode": "F46D", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "c2", "value_types": ["Cell", "Null"] } - ] - } - } - }, - { - "mnemonic": "DICTISETGETOPTREF", - "doc": { - "category": "dict_mayberef", - "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" - }, - "bytecode": { - "doc_opcode": "F46E", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "c2", "value_types": ["Cell", "Null"] } - ] - } - } - }, - { - "mnemonic": "DICTUSETGETOPTREF", - "doc": { - "category": "dict_mayberef", - "description": "Similar to primitive `DICTSETGETOPTREF`, but using unsigned `n`-bit _Integer_ `i` as a key.", - "gas": "", - "fift": "DICTUSETGETOPTREF" - }, - "bytecode": { - "doc_opcode": "F46F", - "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"] }, - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "c2", "value_types": ["Cell", "Null"] } - ] - } - } - }, - { - "mnemonic": "PFXDICTSET", - "doc": { - "category": "dict_prefix", - "description": "", - "gas": "", - "fift": "PFXDICTSET" - }, - "bytecode": { - "doc_opcode": "F470", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PFXDICTREPLACE", - "doc": { - "category": "dict_prefix", - "description": "", - "gas": "", - "fift": "PFXDICTREPLACE" - }, - "bytecode": { - "doc_opcode": "F471", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PFXDICTADD", - "doc": { - "category": "dict_prefix", - "description": "", - "gas": "", - "fift": "PFXDICTADD" - }, - "bytecode": { - "doc_opcode": "F472", - "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"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PFXDICTDEL", - "doc": { - "category": "dict_prefix", - "description": "", - "gas": "", - "fift": "PFXDICTDEL" - }, - "bytecode": { - "doc_opcode": "F473", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTGETNEXT", - "doc": { - "category": "dict_next", - "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" - }, - "bytecode": { - "doc_opcode": "F474", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "k2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTGETNEXTEQ", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETNEXT`, but computes the minimal key `k'` that is lexicographically greater than or equal to `k`.", - "gas": "", - "fift": "DICTGETNEXTEQ" - }, - "bytecode": { - "doc_opcode": "F475", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "k2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTGETPREV", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETNEXT`, but computes the maximal key `k'` lexicographically smaller than `k`.", - "gas": "", - "fift": "DICTGETPREV" - }, - "bytecode": { - "doc_opcode": "F476", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "k2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTGETPREVEQ", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETPREV`, but computes the maximal key `k'` lexicographically smaller than or equal to `k`.", - "gas": "", - "fift": "DICTGETPREVEQ" - }, - "bytecode": { - "doc_opcode": "F477", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "k2", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIGETNEXT", - "doc": { - "category": "dict_next", - "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" - }, - "bytecode": { - "doc_opcode": "F478", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i2", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIGETNEXTEQ", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETNEXTEQ`, but interprets keys as signed `n`-bit integers.", - "gas": "", - "fift": "DICTIGETNEXTEQ" - }, - "bytecode": { - "doc_opcode": "F479", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i2", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIGETPREV", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETPREV`, but interprets keys as signed `n`-bit integers.", - "gas": "", - "fift": "DICTIGETPREV" - }, - "bytecode": { - "doc_opcode": "F47A", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i2", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIGETPREVEQ", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETPREVEQ`, but interprets keys as signed `n`-bit integers.", - "gas": "", - "fift": "DICTIGETPREVEQ" - }, - "bytecode": { - "doc_opcode": "F47B", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i2", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUGETNEXT", - "doc": { - "category": "dict_next", - "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" - }, - "bytecode": { - "doc_opcode": "F47C", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i2", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUGETNEXTEQ", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETNEXTEQ`, but interprets keys as unsigned `n`-bit integers.", - "gas": "", - "fift": "DICTUGETNEXTEQ" - }, - "bytecode": { - "doc_opcode": "F47D", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i2", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUGETPREV", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETPREV`, but interprets keys as unsigned `n`-bit integers.", - "gas": "", - "fift": "DICTUGETPREV" - }, - "bytecode": { - "doc_opcode": "F47E", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i2", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUGETPREVEQ", - "doc": { - "category": "dict_next", - "description": "Similar to `DICTGETPREVEQ`, but interprets keys a unsigned `n`-bit integers.", - "gas": "", - "fift": "DICTUGETPREVEQ" - }, - "bytecode": { - "doc_opcode": "F47F", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x2", - "value_types": ["Slice"] - }, - { - "type": "simple", - "name": "i2", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTMIN", - "doc": { - "category": "dict_min", - "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" - }, - "bytecode": { - "doc_opcode": "F482", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTMINREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTMIN`, but returns the only reference in the value as a _Cell_ `c`.", - "gas": "", - "fift": "DICTMINREF" - }, - "bytecode": { - "doc_opcode": "F483", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIMIN", - "doc": { - "category": "dict_min", - "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" - }, - "bytecode": { - "doc_opcode": "F484", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIMINREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTIMIN`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTIMINREF" - }, - "bytecode": { - "doc_opcode": "F485", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUMIN", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTMIN`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", - "gas": "", - "fift": "DICTUMIN" - }, - "bytecode": { - "doc_opcode": "F486", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUMINREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTUMIN`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTUMINREF" - }, - "bytecode": { - "doc_opcode": "F487", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTMAX", - "doc": { - "category": "dict_min", - "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" - }, - "bytecode": { - "doc_opcode": "F48A", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTMAXREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTMAX`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTMAXREF" - }, - "bytecode": { - "doc_opcode": "F48B", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIMAX", - "doc": { - "category": "dict_min", - "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" - }, - "bytecode": { - "doc_opcode": "F48C", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIMAXREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTIMAX`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTIMAXREF" - }, - "bytecode": { - "doc_opcode": "F48D", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUMAX", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTMAX`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", - "gas": "", - "fift": "DICTUMAX" - }, - "bytecode": { - "doc_opcode": "F48E", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUMAXREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTUMAX`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTUMAXREF" - }, - "bytecode": { - "doc_opcode": "F48F", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTREMMIN", - "doc": { - "category": "dict_min", - "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" - }, - "bytecode": { - "doc_opcode": "F492", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTREMMINREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTREMMIN`, but returns the only reference in the value as a _Cell_ `c`.", - "gas": "", - "fift": "DICTREMMINREF" - }, - "bytecode": { - "doc_opcode": "F493", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIREMMIN", - "doc": { - "category": "dict_min", - "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" - }, - "bytecode": { - "doc_opcode": "F494", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIREMMINREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTIREMMIN`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTIREMMINREF" - }, - "bytecode": { - "doc_opcode": "F495", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUREMMIN", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTREMMIN`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", - "gas": "", - "fift": "DICTUREMMIN" - }, - "bytecode": { - "doc_opcode": "F496", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUREMMINREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTUREMMIN`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTUREMMINREF" - }, - "bytecode": { - "doc_opcode": "F497", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTREMMAX", - "doc": { - "category": "dict_min", - "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" - }, - "bytecode": { - "doc_opcode": "F49A", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTREMMAXREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTREMMAX`, but returns the only reference in the value as a _Cell_ `c`.", - "gas": "", - "fift": "DICTREMMAXREF" - }, - "bytecode": { - "doc_opcode": "F49B", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIREMMAX", - "doc": { - "category": "dict_min", - "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" - }, - "bytecode": { - "doc_opcode": "F49C", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIREMMAXREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTIREMMAX`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTIREMMAXREF" - }, - "bytecode": { - "doc_opcode": "F49D", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUREMMAX", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTREMMAX`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", - "gas": "", - "fift": "DICTUREMMAX" - }, - "bytecode": { - "doc_opcode": "F49E", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTUREMMAXREF", - "doc": { - "category": "dict_min", - "description": "Similar to `DICTUREMMAX`, but returns the only reference in the value.", - "gas": "", - "fift": "DICTUREMMAXREF" - }, - "bytecode": { - "doc_opcode": "F49F", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { - "type": "simple", - "name": "D", - "value_types": ["Slice", "Null"] - } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "D2", - "value_types": ["Slice", "Null"] - }, - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { - "type": "simple", - "name": "i", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DICTIGETJMP", - "doc": { - "category": "dict_special", - "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" - }, - "bytecode": { - "doc_opcode": "F4A0", - "tlb": "#F4A0", - "prefix": "F4A0", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }] } - }, - { - "mnemonic": "DICTUGETJMP", - "doc": { - "category": "dict_special", - "description": "Similar to `DICTIGETJMP`, but performs `DICTUGET` instead of `DICTIGET`.", - "gas": "", - "fift": "DICTUGETJMP" - }, - "bytecode": { - "doc_opcode": "F4A1", - "tlb": "#F4A1", - "prefix": "F4A1", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }] } - }, - { - "mnemonic": "DICTIGETEXEC", - "doc": { - "category": "dict_special", - "description": "Similar to `DICTIGETJMP`, but with `EXECUTE` instead of `JMPX`.", - "gas": "", - "fift": "DICTIGETEXEC" - }, - "bytecode": { - "doc_opcode": "F4A2", - "tlb": "#F4A2", - "prefix": "F4A2", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "x", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ] - } - }, - { - "mnemonic": "DICTUGETEXEC", - "doc": { - "category": "dict_special", - "description": "Similar to `DICTUGETJMP`, but with `EXECUTE` instead of `JMPX`.", - "gas": "", - "fift": "DICTUGETEXEC" - }, - "bytecode": { - "doc_opcode": "F4A3", - "tlb": "#F4A3", - "prefix": "F4A3", - "operands": [] - }, - "value_flow": { - "doc_stack": "i D n - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "i", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "x", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ] - } - }, - { - "mnemonic": "DICTPUSHCONST", - "doc": { - "category": "dict_special", - "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" - }, - "bytecode": { - "doc_opcode": "F4A6_n", - "tlb": "#F4A6_ d:^Cell n:uint10", - "prefix": "F4A6_", - "operands": [ - { "name": "d", "loader": "ref", "loader_args": {} }, - { "name": "n", "loader": "uint", "loader_args": { "size": 10 } } - ] - }, - "value_flow": { - "doc_stack": " - D n", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PFXDICTGETQ", - "doc": { - "category": "dict_special", - "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" - }, - "bytecode": { - "doc_opcode": "F4A8", - "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"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PFXDICTGET", - "doc": { - "category": "dict_special", - "description": "Similar to `PFXDICTGET`, but throws a cell deserialization failure exception on failure.", - "gas": "", - "fift": "PFXDICTGET" - }, - "bytecode": { - "doc_opcode": "F4A9", - "tlb": "#F4A9", - "prefix": "F4A9", - "operands": [] - }, - "value_flow": { - "doc_stack": "s D n - s' x s''", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] }, - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "PFXDICTGETJMP", - "doc": { - "category": "dict_special", - "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" - }, - "bytecode": { - "doc_opcode": "F4AA", - "tlb": "#F4AA", - "prefix": "F4AA", - "operands": [] - }, - "value_flow": { "doc_stack": "s D n - s' s'' or s" }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }] } - }, - { - "mnemonic": "PFXDICTGETEXEC", - "doc": { - "category": "dict_special", - "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" - }, - "bytecode": { - "doc_opcode": "F4AB", - "tlb": "#F4AB", - "prefix": "F4AB", - "operands": [] - }, - "value_flow": { - "doc_stack": "s D n - s' s''", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] }, - { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] - } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "x", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ] - } - }, - { - "mnemonic": "PFXDICTCONSTGETJMP", - "doc": { - "category": "dict_special", - "description": "Combines `[n] DICTPUSHCONST` for `0 <= n <= 1023` with `PFXDICTGETJMP`.", - "gas": "", - "fift": "[ref] [n] PFXDICTCONSTGETJMP\n[ref] [n] PFXDICTSWITCH" - }, - "bytecode": { - "doc_opcode": "F4AE_n", - "tlb": "#F4AE_ d:^Cell n:uint10", - "prefix": "F4AE_", - "operands": [ - { "name": "d", "loader": "ref", "loader_args": {} }, - { "name": "n", "loader": "uint", "loader_args": { "size": 10 } } - ] - }, - "value_flow": { "doc_stack": "s - s' s'' or s" }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }] } - }, - { - "mnemonic": "DICTIGETJMPZ", - "doc": { - "category": "dict_special", - "description": "A variant of `DICTIGETJMP` that returns index `i` on failure.", - "gas": "", - "fift": "DICTIGETJMPZ" - }, - "bytecode": { - "doc_opcode": "F4BC", - "tlb": "#F4BC", - "prefix": "F4BC", - "operands": [] - }, - "value_flow": { "doc_stack": "i D n - i or nothing" }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }] } - }, - { - "mnemonic": "DICTUGETJMPZ", - "doc": { - "category": "dict_special", - "description": "A variant of `DICTUGETJMP` that returns index `i` on failure.", - "gas": "", - "fift": "DICTUGETJMPZ" - }, - "bytecode": { - "doc_opcode": "F4BD", - "tlb": "#F4BD", - "prefix": "F4BD", - "operands": [] - }, - "value_flow": { "doc_stack": "i D n - i or nothing" }, - "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }] } - }, - { - "mnemonic": "DICTIGETEXECZ", - "doc": { - "category": "dict_special", - "description": "A variant of `DICTIGETEXEC` that returns index `i` on failure.", - "gas": "", - "fift": "DICTIGETEXECZ" - }, - "bytecode": { - "doc_opcode": "F4BE", - "tlb": "#F4BE", - "prefix": "F4BE", - "operands": [] - }, - "value_flow": { "doc_stack": "i D n - i or nothing" }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "x", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ] - } - }, - { - "mnemonic": "DICTUGETEXECZ", - "doc": { - "category": "dict_special", - "description": "A variant of `DICTUGETEXEC` that returns index `i` on failure.", - "gas": "", - "fift": "DICTUGETEXECZ" - }, - "bytecode": { - "doc_opcode": "F4BF", - "tlb": "#F4BF", - "prefix": "F4BF", - "operands": [] - }, - "value_flow": { "doc_stack": "i D n - i or nothing" }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "x", - "save": { - "c0": { - "type": "cc", - "save": { "c0": { "type": "register", "index": 0 } } - } - } - } - ] - } - }, - { - "mnemonic": "SUBDICTGET", - "doc": { - "category": "dict_sub", - "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" - }, - "bytecode": { - "doc_opcode": "F4B1", - "tlb": "#F4B1", - "prefix": "F4B1", - "operands": [] - }, - "value_flow": { - "doc_stack": "k l D n - D'", - "inputs": { - "stack": [ - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } - ] - } - } - }, - { - "mnemonic": "SUBDICTIGET", - "doc": { - "category": "dict_sub", - "description": "Variant of `SUBDICTGET` with the prefix represented by a signed big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 257`.", - "gas": "", - "fift": "SUBDICTIGET" - }, - "bytecode": { - "doc_opcode": "F4B2", - "tlb": "#F4B2", - "prefix": "F4B2", - "operands": [] - }, - "value_flow": { - "doc_stack": "x l D n - D'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } - ] - } - } - }, - { - "mnemonic": "SUBDICTUGET", - "doc": { - "category": "dict_sub", - "description": "Variant of `SUBDICTGET` with the prefix represented by an unsigned big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 256`.", - "gas": "", - "fift": "SUBDICTUGET" - }, - "bytecode": { - "doc_opcode": "F4B3", - "tlb": "#F4B3", - "prefix": "F4B3", - "operands": [] - }, - "value_flow": { - "doc_stack": "x l D n - D'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } - ] - } - } - }, - { - "mnemonic": "SUBDICTRPGET", - "doc": { - "category": "dict_sub", - "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" - }, - "bytecode": { - "doc_opcode": "F4B5", - "tlb": "#F4B5", - "prefix": "F4B5", - "operands": [] - }, - "value_flow": { - "doc_stack": "k l D n - D'", - "inputs": { - "stack": [ - { "type": "simple", "name": "k", "value_types": ["Slice"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } - ] - } - } - }, - { - "mnemonic": "SUBDICTIRPGET", - "doc": { - "category": "dict_sub", - "description": "Variant of `SUBDICTRPGET` with the prefix represented by a signed big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 257`.", - "gas": "", - "fift": "SUBDICTIRPGET" - }, - "bytecode": { - "doc_opcode": "F4B6", - "tlb": "#F4B6", - "prefix": "F4B6", - "operands": [] - }, - "value_flow": { - "doc_stack": "x l D n - D'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } - ] - } - } - }, - { - "mnemonic": "SUBDICTURPGET", - "doc": { - "category": "dict_sub", - "description": "Variant of `SUBDICTRPGET` with the prefix represented by an unsigned big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 256`.", - "gas": "", - "fift": "SUBDICTURPGET" - }, - "bytecode": { - "doc_opcode": "F4B7", - "tlb": "#F4B7", - "prefix": "F4B7", - "operands": [] - }, - "value_flow": { - "doc_stack": "x l D n - D'", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "l", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } - ] - } - } - }, - { - "mnemonic": "ACCEPT", - "doc": { - "category": "app_gas", - "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" - }, - "bytecode": { - "doc_opcode": "F800", - "tlb": "#F800", - "prefix": "F800", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SETGASLIMIT", - "doc": { - "category": "app_gas", - "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" - }, - "bytecode": { - "doc_opcode": "F801", - "tlb": "#F801", - "prefix": "F801", - "operands": [] - }, - "value_flow": { - "doc_stack": "g - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "g", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "GASCONSUMED", - "doc": { - "category": "app_gas", - "description": "Returns gas consumed by VM so far (including this instruction).", - "gas": "26", - "fift": "GASCONSUMED" - }, - "bytecode": { - "doc_opcode": "F802", - "tlb": "#F802", - "prefix": "F802", - "operands": [] - }, - "value_flow": { - "doc_stack": "- g_c", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "g_c", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "COMMIT", - "doc": { - "category": "app_gas", - "description": "Commits the current state of registers `c4` (\u0432\u0402\u045apersistent data'') and `c5` (\u0432\u0402\u045aactions'') so that the current execution is considered \u0432\u0402\u045asuccessful'' with the saved values even if an exception is thrown later.", - "gas": "26", - "fift": "COMMIT" - }, - "bytecode": { - "doc_opcode": "F80F", - "tlb": "#F80F", - "prefix": "F80F", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "RANDU256", - "doc": { - "category": "app_rnd", - "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" - }, - "bytecode": { - "doc_opcode": "F810", - "tlb": "#F810", - "prefix": "F810", - "operands": [] - }, - "value_flow": { - "doc_stack": "- x", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RAND", - "doc": { - "category": "app_rnd", - "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" - }, - "bytecode": { - "doc_opcode": "F811", - "tlb": "#F811", - "prefix": "F811", - "operands": [] - }, - "value_flow": { - "doc_stack": "y - z", - "inputs": { - "stack": [ - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SETRAND", - "doc": { - "category": "app_rnd", - "description": "Sets the random seed to unsigned 256-bit _Integer_ `x`.", - "gas": "26+|c7|+|c1_1|", - "fift": "SETRAND" - }, - "bytecode": { - "doc_opcode": "F814", - "tlb": "#F814", - "prefix": "F814", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "ADDRAND", - "doc": { - "category": "app_rnd", - "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" - }, - "bytecode": { - "doc_opcode": "F815", - "tlb": "#F815", - "prefix": "F815", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "GETPARAM", - "doc": { - "category": "app_config", - "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" - }, - "bytecode": { - "doc_opcode": "F82i", - "tlb": "#F82 i:uint4", - "prefix": "F82", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": " - x", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "CONFIGDICT", - "doc": { - "category": "app_config", - "description": "Returns the global configuration dictionary along with its key length (32).\nEquivalent to `CONFIGROOT` `32 PUSHINT`.", - "gas": "26", - "fift": "CONFIGDICT" - }, - "bytecode": { - "doc_opcode": "F830", - "tlb": "#F830", - "prefix": "F830", - "operands": [] - }, - "value_flow": { - "doc_stack": " - D 32", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice", "Null"] }, - { "type": "const", "value": 32, "value_type": "Integer" } - ] - } - } - }, - { - "mnemonic": "CONFIGPARAM", - "doc": { - "category": "app_config", - "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" - }, - "bytecode": { - "doc_opcode": "F832", - "tlb": "#F832", - "prefix": "F832", - "operands": [] - }, - "value_flow": { - "doc_stack": "i - c -1 or 0", - "inputs": { - "stack": [ - { "type": "simple", "name": "i", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "CONFIGOPTPARAM", - "doc": { - "category": "app_config", - "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" - }, - "bytecode": { - "doc_opcode": "F833", - "tlb": "#F833", - "prefix": "F833", - "operands": [] - }, - "value_flow": { - "doc_stack": "i - c^?", - "inputs": { - "stack": [ - { "type": "simple", "name": "i", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] } - ] - } - } - }, - { - "mnemonic": "PREVMCBLOCKS", - "doc": { - "category": "app_config", - "description": "Retrives `last_mc_blocks` part of PrevBlocksInfo from c7 (parameter 13).", - "gas": "", - "fift": "PREVMCBLOCKS" - }, - "bytecode": { - "doc_opcode": "F83400", - "tlb": "#F83400", - "prefix": "F83400", - "operands": [] - }, - "value_flow": { - "doc_stack": "- t", - "inputs": { "stack": [] }, - "outputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] - } - } - }, - { - "mnemonic": "PREVKEYBLOCK", - "doc": { - "category": "app_config", - "description": "Retrives `prev_key_block` part of PrevBlocksInfo from c7 (parameter 13).", - "gas": "", - "fift": "PREVKEYBLOCK" - }, - "bytecode": { - "doc_opcode": "F83401", - "tlb": "#F83401", - "prefix": "F83401", - "operands": [] - }, - "value_flow": { - "doc_stack": "- t", - "inputs": { "stack": [] }, - "outputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] - } - } - }, - { - "mnemonic": "GLOBALID", - "doc": { - "category": "app_config", - "description": "Retrieves `global_id` from 19 network config.", - "gas": "", - "fift": "GLOBALID" - }, - "bytecode": { - "doc_opcode": "F835", - "tlb": "#F835", - "prefix": "F835", - "operands": [] - }, - "value_flow": { - "doc_stack": "- i", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "i", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "GETGLOBVAR", - "doc": { - "category": "app_global", - "description": "Returns the `k`-th global variable for `0 <= k < 255`.\nEquivalent to `c7 PUSHCTR` `SWAP` `INDEXVARQ`.", - "gas": "26", - "fift": "GETGLOBVAR" - }, - "bytecode": { - "doc_opcode": "F840", - "tlb": "#F840", - "prefix": "F840", - "operands": [] - }, - "value_flow": { - "doc_stack": "k - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "k", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } - } - }, - { - "mnemonic": "GETGLOB", - "doc": { - "category": "app_global", - "description": "Returns the `k`-th global variable for `1 <= k <= 31`.\nEquivalent to `c7 PUSHCTR` `[k] INDEXQ`.", - "gas": "26", - "fift": "[k] GETGLOB" - }, - "bytecode": { - "doc_opcode": "F85_k", - "tlb": "#F85_ k:(## 5) {1 <= k}", - "prefix": "F85_", - "operands_range_check": { "length": 5, "from": 1, "to": 31 }, - "operands": [ - { "name": "k", "loader": "uint", "loader_args": { "size": 5 } } - ] - }, - "value_flow": { - "doc_stack": " - x", - "inputs": { "stack": [] }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } - } - }, - { - "mnemonic": "SETGLOBVAR", - "doc": { - "category": "app_global", - "description": "Assigns `x` to the `k`-th global variable for `0 <= k < 255`.\nEquivalent to `c7 PUSHCTR` `ROTREV` `SETINDEXVARQ` `c7 POPCTR`.", - "gas": "26+|c7\u0432\u0402\u2122|", - "fift": "SETGLOBVAR" - }, - "bytecode": { - "doc_opcode": "F860", - "tlb": "#F860", - "prefix": "F860", - "operands": [] - }, - "value_flow": { - "doc_stack": "x k - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "x" }, - { "type": "simple", "name": "k", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SETGLOB", - "doc": { - "category": "app_global", - "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\u0432\u0402\u2122|", - "fift": "[k] SETGLOB" - }, - "bytecode": { - "doc_opcode": "F87_k", - "tlb": "#F87_ k:(## 5) {1 <= k}", - "prefix": "F87_", - "operands_range_check": { "length": 5, "from": 1, "to": 31 }, - "operands": [ - { "name": "k", "loader": "uint", "loader_args": { "size": 5 } } - ] - }, - "value_flow": { - "doc_stack": "x - ", - "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "HASHCU", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F900", - "tlb": "#F900", - "prefix": "F900", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - x", - "inputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "HASHSU", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F901", - "tlb": "#F901", - "prefix": "F901", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SHA256U", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F902", - "tlb": "#F902", - "prefix": "F902", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "HASHEXT_SHA256", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90400", - "tlb": "#F90400", - "prefix": "F90400", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_1 ... s_n n - h", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "h", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "HASHEXT_SHA512", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90401", - "tlb": "#F90401", - "prefix": "F90401", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_1 ... s_n n - h1 h2", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "h1", "value_types": ["Integer"] }, - { "type": "simple", "name": "h2", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "HASHEXT_BLAKE2B", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90402", - "tlb": "#F90402", - "prefix": "F90402", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_1 ... s_n n - h1 h2", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "h1", "value_types": ["Integer"] }, - { "type": "simple", "name": "h2", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "HASHEXT_KECCAK256", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90403", - "tlb": "#F90403", - "prefix": "F90403", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_1 ... s_n n - h", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "h", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "HASHEXT_KECCAK512", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90404", - "tlb": "#F90404", - "prefix": "F90404", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_1 ... s_n n - h1 h2", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "h1", "value_types": ["Integer"] }, - { "type": "simple", "name": "h2", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "HASHEXTR_SHA256", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90500", - "tlb": "#F90500", - "prefix": "F90500", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_n ... s_1 n - h", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "h", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "HASHEXTR_SHA512", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90501", - "tlb": "#F90501", - "prefix": "F90501", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_n ... s_1 n - h1 h2", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "h1", "value_types": ["Integer"] }, - { "type": "simple", "name": "h2", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "HASHEXTR_BLAKE2B", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90502", - "tlb": "#F90502", - "prefix": "F90502", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_n ... s_1 n - h1 h2", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "h1", "value_types": ["Integer"] }, - { "type": "simple", "name": "h2", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "HASHEXTR_KECCAK256", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90503", - "tlb": "#F90503", - "prefix": "F90503", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_n ... s_1 n - h", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "h", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "HASHEXTR_KECCAK512", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90504", - "tlb": "#F90504", - "prefix": "F90504", - "operands": [] - }, - "value_flow": { - "doc_stack": "s_n ... s_1 n - h1 h2", - "inputs": { - "stack": [ - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "h1", "value_types": ["Integer"] }, - { "type": "simple", "name": "h2", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "HASHEXTA_SHA256", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90600", - "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"] }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "HASHEXTA_SHA512", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90601", - "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"] }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "HASHEXTA_BLAKE2B", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90602", - "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"] }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "HASHEXTA_KECCAK256", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90603", - "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"] }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "HASHEXTA_KECCAK512", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90604", - "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"] }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "HASHEXTAR_SHA256", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90700", - "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"] }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "HASHEXTAR_SHA512", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90701", - "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"] }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "HASHEXTAR_BLAKE2B", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90702", - "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"] }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "HASHEXTAR_KECCAK256", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90703", - "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"] }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "HASHEXTAR_KECCAK512", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F90704", - "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"] }, - { - "type": "array", - "name": "input_parts", - "length_var": "n", - "array_entry": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice", "Builder"] - } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "CHKSIGNU", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F910", - "tlb": "#F910", - "prefix": "F910", - "operands": [] - }, - "value_flow": { - "doc_stack": "h s k - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "h", "value_types": ["Integer"] }, - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "k", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "CHKSIGNS", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F911", - "tlb": "#F911", - "prefix": "F911", - "operands": [] - }, - "value_flow": { - "doc_stack": "d s k - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "d", "value_types": ["Slice"] }, - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "k", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "ECRECOVER", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F912", - "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"] }, - { "type": "simple", "name": "v", "value_types": ["Integer"] }, - { "type": "simple", "name": "r", "value_types": ["Integer"] }, - { "type": "simple", "name": "s", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "h", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "x1", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "x2", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "P256_CHKSIGNU", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F914", - "tlb": "#F914", - "prefix": "F914", - "operands": [] - }, - "value_flow": { - "doc_stack": "h sig k - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "d", "value_types": ["Slice"] }, - { "type": "simple", "name": "sig", "value_types": ["Slice"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "P256_CHKSIGNS", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F915", - "tlb": "#F915", - "prefix": "F915", - "operands": [] - }, - "value_flow": { - "doc_stack": "d sig k - ?", - "inputs": { - "stack": [ - { "type": "simple", "name": "d", "value_types": ["Slice"] }, - { "type": "simple", "name": "sig", "value_types": ["Slice"] }, - { "type": "simple", "name": "k", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RIST255_FROMHASH", - "doc": { - "category": "app_crypto", - "description": "Deterministically generates a valid point `x` from a 512-bit hash (given as two 256-bit integers).", - "gas": "626", - "fift": "RIST255_FROMHASH" - }, - "bytecode": { - "doc_opcode": "F920", - "tlb": "#F920", - "prefix": "F920", - "operands": [] - }, - "value_flow": { - "doc_stack": "h1 h2 - x", - "inputs": { - "stack": [ - { "type": "simple", "name": "h1", "value_types": ["Integer"] }, - { "type": "simple", "name": "h2", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RIST255_VALIDATE", - "doc": { - "category": "app_crypto", - "description": "Checks that integer `x` is a valid representation of some curve point. Throws range_chk on error.", - "gas": "226", - "fift": "RIST255_VALIDATE" - }, - "bytecode": { - "doc_opcode": "F921", - "tlb": "#F921", - "prefix": "F921", - "operands": [] - }, - "value_flow": { - "doc_stack": "x -", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "RIST255_ADD", - "doc": { - "category": "app_crypto", - "description": "Addition of two points on a curve.", - "gas": "626", - "fift": "RIST255_ADD" - }, - "bytecode": { - "doc_opcode": "F922", - "tlb": "#F922", - "prefix": "F922", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x+y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RIST255_SUB", - "doc": { - "category": "app_crypto", - "description": "Subtraction of two points on curve.", - "gas": "626", - "fift": "RIST255_SUB" - }, - "bytecode": { - "doc_opcode": "F923", - "tlb": "#F923", - "prefix": "F923", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x-y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RIST255_MUL", - "doc": { - "category": "app_crypto", - "description": "Multiplies point `x` by a scalar `n`. Any `n` is valid, including negative.", - "gas": "2026", - "fift": "RIST255_MUL" - }, - "bytecode": { - "doc_opcode": "F924", - "tlb": "#F924", - "prefix": "F924", - "operands": [] - }, - "value_flow": { - "doc_stack": "x n - x*n", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RIST255_MULBASE", - "doc": { - "category": "app_crypto", - "description": "Multiplies the generator point `g` by a scalar `n`. Any `n` is valid, including negative.", - "gas": "776", - "fift": "RIST255_MULBASE" - }, - "bytecode": { - "doc_opcode": "F925", - "tlb": "#F925", - "prefix": "F925", - "operands": [] - }, - "value_flow": { - "doc_stack": "n - g*n", - "inputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RIST255_PUSHL", - "doc": { - "category": "app_crypto", - "description": "Pushes integer l=2^252+27742317777372353535851937790883648493, which is the order of the group.", - "gas": "26", - "fift": "RIST255_PUSHL" - }, - "bytecode": { - "doc_opcode": "F926", - "tlb": "#F926", - "prefix": "F926", - "operands": [] - }, - "value_flow": { - "doc_stack": "- l", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RIST255_QVALIDATE", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "B7F921", - "tlb": "#B7F921", - "prefix": "B7F921", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - 0 or -1", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RIST255_QADD", - "doc": { - "category": "app_crypto", - "description": "Addition of two points on a curve. Returns -1 on success and 0 on failure.", - "gas": "634", - "fift": "RIST255_QADD" - }, - "bytecode": { - "doc_opcode": "B7F922", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RIST255_QSUB", - "doc": { - "category": "app_crypto", - "description": "Subtraction of two points on curve. Returns -1 on success and 0 on failure.", - "gas": "634", - "fift": "RIST255_QSUB" - }, - "bytecode": { - "doc_opcode": "B7F923", - "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"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RIST255_QMUL", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "B7F924", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "RIST255_QMULBASE", - "doc": { - "category": "app_crypto", - "description": "Multiplies the generator point `g` by a scalar `n`. Any `n` is valid, including negative.", - "gas": "784", - "fift": "RIST255_QMULBASE" - }, - "bytecode": { - "doc_opcode": "B7F925", - "tlb": "#B7F925", - "prefix": "B7F925", - "operands": [] - }, - "value_flow": { - "doc_stack": "n - 0 or g*n -1", - "inputs": { - "stack": [ - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "result", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BLS_VERIFY", - "doc": { - "category": "app_crypto", - "description": "Checks BLS signature, return true on success, false otherwise.", - "gas": "61034", - "fift": "BLS_VERIFY" - }, - "bytecode": { - "doc_opcode": "F93000", - "tlb": "#F93000", - "prefix": "F93000", - "operands": [] - }, - "value_flow": { - "doc_stack": "pk msg sgn - bool", - "inputs": { - "stack": [ - { "type": "simple", "name": "pk", "value_types": ["Slice"] }, - { "type": "simple", "name": "msg", "value_types": ["Slice"] }, - { "type": "simple", "name": "sgn", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BLS_AGGREGATE", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F93001", - "tlb": "#F93001", - "prefix": "F93001", - "operands": [] - }, - "value_flow": { - "doc_stack": "sig_1 ... sig_n n - sig", - "inputs": { - "stack": [ - { - "type": "array", - "name": "signatures", - "length_var": "n", - "array_entry": [ - { "type": "simple", "name": "sig", "value_types": ["Slice"] } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "BLS_FASTAGGREGATEVERIFY", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F93002", - "tlb": "#F93002", - "prefix": "F93002", - "operands": [] - }, - "value_flow": { - "doc_stack": "pk_1 ... pk_n n msg sig - bool", - "inputs": { - "stack": [ - { - "type": "array", - "name": "public_keys", - "length_var": "n", - "array_entry": [ - { "type": "simple", "name": "pk", "value_types": ["Slice"] } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] }, - { "type": "simple", "name": "msg", "value_types": ["Slice"] }, - { "type": "simple", "name": "sig", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BLS_AGGREGATEVERIFY", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F93003", - "tlb": "#F93003", - "prefix": "F93003", - "operands": [] - }, - "value_flow": { - "doc_stack": "pk_1 msg_1 ... pk_n msg_n n sgn - bool", - "inputs": { - "stack": [ - { - "type": "array", - "name": "key_message_pairs", - "length_var": "n", - "array_entry": [ - { "type": "simple", "name": "pk", "value_types": ["Slice"] }, - { "type": "simple", "name": "msg", "value_types": ["Slice"] } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] }, - { "type": "simple", "name": "sgn", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BLS_G1_ADD", - "doc": { - "category": "app_crypto", - "description": "Addition on G1.", - "gas": "3934", - "fift": "BLS_G1_ADD" - }, - "bytecode": { - "doc_opcode": "F93010", - "tlb": "#F93010", - "prefix": "F93010", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x+y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "BLS_G1_SUB", - "doc": { - "category": "app_crypto", - "description": "Subtraction on G1.", - "gas": "3934", - "fift": "BLS_G1_SUB" - }, - "bytecode": { - "doc_opcode": "F93011", - "tlb": "#F93011", - "prefix": "F93011", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x-y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "BLS_G1_NEG", - "doc": { - "category": "app_crypto", - "description": "Negation on G1.", - "gas": "784", - "fift": "BLS_G1_NEG" - }, - "bytecode": { - "doc_opcode": "F93012", - "tlb": "#F93012", - "prefix": "F93012", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - -x", - "inputs": { - "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "BLS_G1_MUL", - "doc": { - "category": "app_crypto", - "description": "Multiplies G1 point `x` by scalar `s`. Any `s` is valid, including negative.", - "gas": "5234", - "fift": "BLS_G1_MUL" - }, - "bytecode": { - "doc_opcode": "F93013", - "tlb": "#F93013", - "prefix": "F93013", - "operands": [] - }, - "value_flow": { - "doc_stack": "x s - x*s", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "s", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "BLS_G1_MULTIEXP", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F93014", - "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": [ - { - "type": "array", - "name": "components", - "length_var": "n", - "array_entry": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "s", "value_types": ["Integer"] } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "BLS_G1_ZERO", - "doc": { - "category": "app_crypto", - "description": "Pushes zero point in G1.", - "gas": "34", - "fift": "BLS_G1_ZERO" - }, - "bytecode": { - "doc_opcode": "F93015", - "tlb": "#F93015", - "prefix": "F93015", - "operands": [] - }, - "value_flow": { - "doc_stack": "- zero", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "zero", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "BLS_MAP_TO_G1", - "doc": { - "category": "app_crypto", - "description": "Converts FP element `f` to a G1 point.", - "gas": "2384", - "fift": "BLS_MAP_TO_G1" - }, - "bytecode": { - "doc_opcode": "F93016", - "tlb": "#F93016", - "prefix": "F93016", - "operands": [] - }, - "value_flow": { - "doc_stack": "f - x", - "inputs": { - "stack": [{ "type": "simple", "name": "f", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] - } - } - }, - { - "mnemonic": "BLS_G1_INGROUP", - "doc": { - "category": "app_crypto", - "description": "Checks that slice `x` represents a valid element of G1.", - "gas": "2984", - "fift": "BLS_G1_INGROUP" - }, - "bytecode": { - "doc_opcode": "F93017", - "tlb": "#F93017", - "prefix": "F93017", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - bool", - "inputs": { - "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BLS_G1_ISZERO", - "doc": { - "category": "app_crypto", - "description": "Checks that G1 point `x` is equal to zero.", - "gas": "34", - "fift": "BLS_G1_ISZERO" - }, - "bytecode": { - "doc_opcode": "F93018", - "tlb": "#F93018", - "prefix": "F93018", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - bool", - "inputs": { - "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BLS_G2_ADD", - "doc": { - "category": "app_crypto", - "description": "Addition on G2.", - "gas": "6134", - "fift": "BLS_G2_ADD" - }, - "bytecode": { - "doc_opcode": "F93020", - "tlb": "#F93020", - "prefix": "F93020", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x+y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "BLS_G2_SUB", - "doc": { - "category": "app_crypto", - "description": "Subtraction on G2.", - "gas": "6134", - "fift": "BLS_G2_SUB" - }, - "bytecode": { - "doc_opcode": "F93021", - "tlb": "#F93021", - "prefix": "F93021", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - x-y", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "BLS_G2_NEG", - "doc": { - "category": "app_crypto", - "description": "Negation on G2.", - "gas": "1584", - "fift": "BLS_G2_NEG" - }, - "bytecode": { - "doc_opcode": "F93022", - "tlb": "#F93022", - "prefix": "F93022", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - -x", - "inputs": { - "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "BLS_G2_MUL", - "doc": { - "category": "app_crypto", - "description": "Multiplies G2 point `x` by scalar `s`. Any `s` is valid, including negative.", - "gas": "10584", - "fift": "BLS_G2_MUL" - }, - "bytecode": { - "doc_opcode": "F93023", - "tlb": "#F93023", - "prefix": "F93023", - "operands": [] - }, - "value_flow": { - "doc_stack": "x s - x*s", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "s", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "BLS_G2_MULTIEXP", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F93024", - "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": [ - { - "type": "array", - "name": "components", - "length_var": "n", - "array_entry": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "s", "value_types": ["Integer"] } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "BLS_G2_ZERO", - "doc": { - "category": "app_crypto", - "description": "Pushes zero point in G2.", - "gas": "34", - "fift": "BLS_G2_ZERO" - }, - "bytecode": { - "doc_opcode": "F93025", - "tlb": "#F93025", - "prefix": "F93025", - "operands": [] - }, - "value_flow": { - "doc_stack": "- zero", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "zero", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "BLS_MAP_TO_G2", - "doc": { - "category": "app_crypto", - "description": "Converts FP2 element `f` to a G2 point.", - "gas": "7984", - "fift": "BLS_MAP_TO_G2" - }, - "bytecode": { - "doc_opcode": "F93026", - "tlb": "#F93026", - "prefix": "F93026", - "operands": [] - }, - "value_flow": { - "doc_stack": "f - x", - "inputs": { - "stack": [{ "type": "simple", "name": "f", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] - } - } - }, - { - "mnemonic": "BLS_G2_INGROUP", - "doc": { - "category": "app_crypto", - "description": "Checks that slice `x` represents a valid element of G2.", - "gas": "4284", - "fift": "BLS_G2_INGROUP" - }, - "bytecode": { - "doc_opcode": "F93027", - "tlb": "#F93027", - "prefix": "F93027", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - bool", - "inputs": { - "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BLS_G2_ISZERO", - "doc": { - "category": "app_crypto", - "description": "Checks that G2 point `x` is equal to zero.", - "gas": "34", - "fift": "BLS_G2_ISZERO" - }, - "bytecode": { - "doc_opcode": "F93028", - "tlb": "#F93028", - "prefix": "F93028", - "operands": [] - }, - "value_flow": { - "doc_stack": "x - bool", - "inputs": { - "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BLS_PAIRING", - "doc": { - "category": "app_crypto", - "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" - }, - "bytecode": { - "doc_opcode": "F93030", - "tlb": "#F93030", - "prefix": "F93030", - "operands": [] - }, - "value_flow": { - "doc_stack": "x_1 y_1 ... x_n y_n n - bool", - "inputs": { - "stack": [ - { - "type": "array", - "name": "components", - "length_var": "n", - "array_entry": [ - { "type": "simple", "name": "x", "value_types": ["Slice"] }, - { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] - }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "BLS_PUSHR", - "doc": { - "category": "app_crypto", - "description": "Pushes the order of G1 and G2 (approx. `2^255`).", - "gas": "34", - "fift": "BLS_PUSHR" - }, - "bytecode": { - "doc_opcode": "F93031", - "tlb": "#F93031", - "prefix": "F93031", - "operands": [] - }, - "value_flow": { - "doc_stack": "- r", - "inputs": { "stack": [] }, - "outputs": { - "stack": [ - { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "CDATASIZEQ", - "doc": { - "category": "app_misc", - "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" - }, - "bytecode": { - "doc_opcode": "F940", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "CDATASIZE", - "doc": { - "category": "app_misc", - "description": "A non-quiet version of `CDATASIZEQ` that throws a cell overflow exception (8) on failure.", - "gas": "", - "fift": "CDATASIZE" - }, - "bytecode": { - "doc_opcode": "F941", - "tlb": "#F941", - "prefix": "F941", - "operands": [] - }, - "value_flow": { - "doc_stack": "c n - x y z", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDATASIZEQ", - "doc": { - "category": "app_misc", - "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" - }, - "bytecode": { - "doc_opcode": "F942", - "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"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "z", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SDATASIZE", - "doc": { - "category": "app_misc", - "description": "A non-quiet version of `SDATASIZEQ` that throws a cell overflow exception (8) on failure.", - "gas": "", - "fift": "SDATASIZE" - }, - "bytecode": { - "doc_opcode": "F943", - "tlb": "#F943", - "prefix": "F943", - "operands": [] - }, - "value_flow": { - "doc_stack": "s n - x y z", - "inputs": { - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] }, - { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] }, - { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "LDGRAMS", - "doc": { - "category": "app_currency", - "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" - }, - "bytecode": { - "doc_opcode": "FA00", - "tlb": "#FA00", - "prefix": "FA00", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDVARINT16", - "doc": { - "category": "app_currency", - "description": "Similar to `LDVARUINT16`, but loads a _signed_ _Integer_ `x`.\nApproximately equivalent to `4 LDU` `SWAP` `3 LSHIFT#` `LDIX`.", - "gas": "26", - "fift": "LDVARINT16" - }, - "bytecode": { - "doc_opcode": "FA01", - "tlb": "#FA01", - "prefix": "FA01", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "STGRAMS", - "doc": { - "category": "app_currency", - "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" - }, - "bytecode": { - "doc_opcode": "FA02", - "tlb": "#FA02", - "prefix": "FA02", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STVARINT16", - "doc": { - "category": "app_currency", - "description": "Similar to `STVARUINT16`, but serializes a _signed_ _Integer_ `x` in the range `-2^119...2^119-1`.", - "gas": "26", - "fift": "STVARINT16" - }, - "bytecode": { - "doc_opcode": "FA03", - "tlb": "#FA03", - "prefix": "FA03", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "LDVARUINT32", - "doc": { - "category": "app_currency", - "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" - }, - "bytecode": { - "doc_opcode": "FA04", - "tlb": "#FA04", - "prefix": "FA04", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDVARINT32", - "doc": { - "category": "app_currency", - "description": "Similar to `LDVARUINT32`, but loads a _signed_ _Integer_ `x`.\nApproximately equivalent to `5 LDU` `SWAP` `3 LSHIFT#` `LDIX`.", - "gas": "26", - "fift": "LDVARINT32" - }, - "bytecode": { - "doc_opcode": "FA05", - "tlb": "#FA05", - "prefix": "FA05", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "STVARUINT32", - "doc": { - "category": "app_currency", - "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" - }, - "bytecode": { - "doc_opcode": "FA06", - "tlb": "#FA06", - "prefix": "FA06", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "STVARINT32", - "doc": { - "category": "app_currency", - "description": "Similar to `STVARUINT32`, but serializes a _signed_ _Integer_ `x` in the range `-2^247...2^247-1`.", - "gas": "26", - "fift": "STVARINT32" - }, - "bytecode": { - "doc_opcode": "FA07", - "tlb": "#FA07", - "prefix": "FA07", - "operands": [] - }, - "value_flow": { - "doc_stack": "b x - b'", - "inputs": { - "stack": [ - { "type": "simple", "name": "b", "value_types": ["Builder"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] - } - } - }, - { - "mnemonic": "LDMSGADDR", - "doc": { - "category": "app_addr", - "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" - }, - "bytecode": { - "doc_opcode": "FA40", - "tlb": "#FA40", - "prefix": "FA40", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - s' s''", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "s2", "value_types": ["Slice"] }, - { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "LDMSGADDRQ", - "doc": { - "category": "app_addr", - "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" - }, - "bytecode": { - "doc_opcode": "FA41", - "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"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { - "value": 0, - "stack": [ - { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] - }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - }, - { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "PARSEMSGADDR", - "doc": { - "category": "app_addr", - "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" - }, - "bytecode": { - "doc_opcode": "FA42", - "tlb": "#FA42", - "prefix": "FA42", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - t", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] - } - } - }, - { - "mnemonic": "PARSEMSGADDRQ", - "doc": { - "category": "app_addr", - "description": "A quiet version of `PARSEMSGADDR`: returns a zero on error instead of throwing an exception.", - "gas": "26", - "fift": "PARSEMSGADDRQ" - }, - "bytecode": { - "doc_opcode": "FA43", - "tlb": "#FA43", - "prefix": "FA43", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - t -1 or 0", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { "type": "simple", "name": "t", "value_types": ["Tuple"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "REWRITESTDADDR", - "doc": { - "category": "app_addr", - "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" - }, - "bytecode": { - "doc_opcode": "FA44", - "tlb": "#FA44", - "prefix": "FA44", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x y", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "REWRITESTDADDRQ", - "doc": { - "category": "app_addr", - "description": "A quiet version of primitive `REWRITESTDADDR`.", - "gas": "26", - "fift": "REWRITESTDADDRQ" - }, - "bytecode": { - "doc_opcode": "FA45", - "tlb": "#FA45", - "prefix": "FA45", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x y -1 or 0", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "y", - "value_types": ["Integer"] - } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "REWRITEVARADDR", - "doc": { - "category": "app_addr", - "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" - }, - "bytecode": { - "doc_opcode": "FA46", - "tlb": "#FA46", - "prefix": "FA46", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] - } - } - }, - { - "mnemonic": "REWRITEVARADDRQ", - "doc": { - "category": "app_addr", - "description": "A quiet version of primitive `REWRITEVARADDR`.", - "gas": "26", - "fift": "REWRITEVARADDRQ" - }, - "bytecode": { - "doc_opcode": "FA47", - "tlb": "#FA47", - "prefix": "FA47", - "operands": [] - }, - "value_flow": { - "doc_stack": "s - x s' -1 or 0", - "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] - }, - "outputs": { - "stack": [ - { - "type": "conditional", - "name": "status", - "match": [ - { "value": 0, "stack": [] }, - { - "value": -1, - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { "type": "simple", "name": "s'", "value_types": ["Slice"] } - ] - } - ] - }, - { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "SENDRAWMSG", - "doc": { - "category": "app_actions", - "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" - }, - "bytecode": { - "doc_opcode": "FB00", - "tlb": "#FB00", - "prefix": "FB00", - "operands": [] - }, - "value_flow": { - "doc_stack": "c x - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "RAWRESERVE", - "doc": { - "category": "app_actions", - "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" - }, - "bytecode": { - "doc_opcode": "FB02", - "tlb": "#FB02", - "prefix": "FB02", - "operands": [] - }, - "value_flow": { - "doc_stack": "x y - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "RAWRESERVEX", - "doc": { - "category": "app_actions", - "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" - }, - "bytecode": { - "doc_opcode": "FB03", - "tlb": "#FB03", - "prefix": "FB03", - "operands": [] - }, - "value_flow": { - "doc_stack": "x D y - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "x", "value_types": ["Integer"] }, - { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, - { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SETCODE", - "doc": { - "category": "app_actions", - "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" - }, - "bytecode": { - "doc_opcode": "FB04", - "tlb": "#FB04", - "prefix": "FB04", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SETLIBCODE", - "doc": { - "category": "app_actions", - "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" - }, - "bytecode": { - "doc_opcode": "FB06", - "tlb": "#FB06", - "prefix": "FB06", - "operands": [] - }, - "value_flow": { - "doc_stack": "c x - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "CHANGELIB", - "doc": { - "category": "app_actions", - "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" - }, - "bytecode": { - "doc_opcode": "FB07", - "tlb": "#FB07", - "prefix": "FB07", - "operands": [] - }, - "value_flow": { - "doc_stack": "h x - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "h", "value_types": ["Integer"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SENDMSG", - "doc": { - "category": "app_actions", - "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" - }, - "bytecode": { - "doc_opcode": "FB08", - "tlb": "#FB08", - "prefix": "FB08", - "operands": [] - }, - "value_flow": { - "doc_stack": "c x - fee", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Cell"] }, - { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] - }, - "outputs": { - "stack": [ - { "type": "simple", "name": "fee", "value_types": ["Integer"] } - ] - } - } - }, - { - "mnemonic": "DUMPSTK", - "doc": { - "category": "debug", - "description": "Dumps the stack (at most the top 255 values) and shows the total stack depth.", - "gas": "26", - "fift": "DUMPSTK" - }, - "bytecode": { "doc_opcode": "FE00", "tlb": "#FE00", "prefix": "FE00" }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "DEBUG", - "doc": { - "category": "debug", - "description": "", - "gas": "26", - "fift": "{nn} DEBUG" - }, - "bytecode": { - "doc_opcode": "FEnn", - "tlb": "#FE nn:(#<= 239)", - "prefix": "FE", - "operands_range_check": { "length": 8, "from": 1, "to": 19 }, - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "STRDUMP", - "doc": { - "category": "debug", - "description": "", - "gas": "26", - "fift": "STRDUMP" - }, - "bytecode": { "doc_opcode": "FE14", "tlb": "#FE14", "prefix": "FE14" }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "DEBUG", - "doc": { - "category": "debug", - "description": "", - "gas": "26", - "fift": "{nn} DEBUG" - }, - "bytecode": { - "doc_opcode": "FEnn", - "tlb": "#FE nn:(#<= 239)", - "prefix": "FE", - "operands_range_check": { "length": 8, "from": 21, "to": 31 }, - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "DUMP", - "doc": { - "category": "debug", - "description": "Dumps `s[i]`.", - "gas": "26", - "fift": "s[i] DUMP" - }, - "bytecode": { - "doc_opcode": "FE2i", - "tlb": "#FE2 i:uint4", - "prefix": "FE2", - "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "DEBUG", - "doc": { - "category": "debug", - "description": "", - "gas": "26", - "fift": "{nn} DEBUG" - }, - "bytecode": { - "doc_opcode": "FEnn", - "tlb": "#FE nn:(#<= 239)", - "prefix": "FE", - "operands_range_check": { "length": 8, "from": 48, "to": 239 }, - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "DEBUGSTR", - "doc": { - "category": "debug", - "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" - }, - "bytecode": { - "doc_opcode": "FEFnssss", - "tlb": "#FEF n:(## 4) ssss:((n * 8 + 8) * Bit)", - "prefix": "FEF", - "operands": [ - { - "name": "s", - "loader": "subslice", - "loader_args": { "bits_length_var_size": 4, "bits_padding": 8 } - } - ] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SETCP", - "doc": { - "category": "codepage", - "description": "Selects TVM codepage `0 <= nn < 240`. If the codepage is not supported, throws an invalid opcode exception.", - "gas": "26", - "fift": "[nn] SETCP" - }, - "bytecode": { - "doc_opcode": "FFnn", - "tlb": "#FF nn:(#<= 239)", - "prefix": "FF", - "operands_range_check": { "length": 8, "from": 0, "to": 239 }, - "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } - ] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SETCP_SPECIAL", - "doc": { - "category": "codepage", - "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" - }, - "bytecode": { - "doc_opcode": "FFFz", - "tlb": "#FFF z:(## 4) {1 <= z}", - "prefix": "FFF", - "operands_range_check": { "length": 4, "from": 1, "to": 15 }, - "operands": [ - { "name": "z", "loader": "uint", "loader_args": { "size": 4 } } - ] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - } - }, - { - "mnemonic": "SETCPX", - "doc": { - "category": "codepage", - "description": "Selects codepage `c` with `-2^15 <= c < 2^15` passed in the top of the stack.", - "gas": "26", - "fift": "SETCPX" - }, - "bytecode": { - "doc_opcode": "FFF0", - "tlb": "#FFF0", - "prefix": "FFF0", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { "type": "simple", "name": "c", "value_types": ["Integer"] } - ] - }, - "outputs": { "stack": [] } - } - } - ], - "aliases": [ - { - "mnemonic": "SWAP", - "alias_of": "XCHG_0I", - "doc_fift": "SWAP", - "doc_stack": "x y - y x", - "description": "Same as `s1 XCHG0`.", - "operands": { "i": 1 } - }, - { - "mnemonic": "DUP", - "alias_of": "PUSH", - "doc_fift": "DUP", - "doc_stack": "x - x x", - "description": "Same as `s0 PUSH`.", - "operands": { "i": 0 } - }, - { - "mnemonic": "OVER", - "alias_of": "PUSH", - "doc_fift": "OVER", - "doc_stack": "x y - x y x", - "description": "Same as `s1 PUSH`.", - "operands": { "i": 1 } - }, - { - "mnemonic": "DROP", - "alias_of": "POP", - "doc_fift": "DROP", - "doc_stack": "x -", - "description": "Same as `s0 POP`, discards the top-of-stack value.", - "operands": { "i": 0 } - }, - { - "mnemonic": "NIP", - "alias_of": "POP", - "doc_fift": "NIP", - "doc_stack": "x y - y", - "description": "Same as `s1 POP`.", - "operands": { "i": 1 } - }, - { - "mnemonic": "ROT2", - "alias_of": "BLKSWAP", - "doc_fift": "ROT2\n2ROT", - "doc_stack": "a b c d e f - c d e f a b", - "description": "Rotates the three topmost pairs of stack entries.", - "operands": { "i": 1, "j": 3 } - }, - { - "mnemonic": "ROLL", - "alias_of": "BLKSWAP", - "doc_fift": "[i+1] ROLL", - "doc_stack": "", - "description": "Rotates the top `i+1` stack entries.\nEquivalent to `1 [i+1] BLKSWAP`.", - "operands": { "i": 0 } - }, - { - "mnemonic": "ROLLREV", - "alias_of": "BLKSWAP", - "doc_fift": "[i+1] -ROLL\n[i+1] ROLLREV", - "doc_stack": "", - "description": "Rotates the top `i+1` stack entries in the other direction.\nEquivalent to `[i+1] 1 BLKSWAP`.", - "operands": {} - }, - { - "mnemonic": "NIL", - "alias_of": "TUPLE", - "doc_fift": "NIL", - "doc_stack": "- t", - "description": "Pushes the only _Tuple_ `t=()` of length zero.", - "operands": { "n": 0 } - }, - { - "mnemonic": "SINGLE", - "alias_of": "TUPLE", - "doc_fift": "SINGLE", - "doc_stack": "x - t", - "description": "Creates a singleton `t:=(x)`, i.e., a _Tuple_ of length one.", - "operands": { "n": 1 } - }, - { - "mnemonic": "PAIR", - "alias_of": "TUPLE", - "doc_fift": "PAIR\nCONS", - "doc_stack": "x y - t", - "description": "Creates pair `t:=(x,y)`.", - "operands": { "n": 2 } - }, - { - "mnemonic": "TRIPLE", - "alias_of": "TUPLE", - "doc_fift": "TRIPLE", - "doc_stack": "x y z - t", - "description": "Creates triple `t:=(x,y,z)`.", - "operands": { "n": 3 } - }, - { - "mnemonic": "FIRST", - "alias_of": "INDEX", - "doc_fift": "FIRST\nCAR", - "doc_stack": "t - x", - "description": "Returns the first element of a _Tuple_.", - "operands": { "k": 0 } - }, - { - "mnemonic": "SECOND", - "alias_of": "INDEX", - "doc_fift": "SECOND\nCDR", - "doc_stack": "t - y", - "description": "Returns the second element of a _Tuple_.", - "operands": { "k": 1 } - }, - { - "mnemonic": "THIRD", - "alias_of": "INDEX", - "doc_fift": "THIRD", - "doc_stack": "t - z", - "description": "Returns the third element of a _Tuple_.", - "operands": { "k": 2 } - }, - { - "mnemonic": "UNSINGLE", - "alias_of": "UNTUPLE", - "doc_fift": "UNSINGLE", - "doc_stack": "t - x", - "description": "Unpacks a singleton `t=(x)`.", - "operands": { "n": 1 } - }, - { - "mnemonic": "UNPAIR", - "alias_of": "UNTUPLE", - "doc_fift": "UNPAIR\nUNCONS", - "doc_stack": "t - x y", - "description": "Unpacks a pair `t=(x,y)`.", - "operands": { "n": 2 } - }, - { - "mnemonic": "UNTRIPLE", - "alias_of": "UNTUPLE", - "doc_fift": "UNTRIPLE", - "doc_stack": "t - x y z", - "description": "Unpacks a triple `t=(x,y,z)`.", - "operands": { "n": 3 } - }, - { - "mnemonic": "CHKTUPLE", - "alias_of": "UNPACKFIRST", - "doc_fift": "CHKTUPLE", - "doc_stack": "t -", - "description": "Checks whether `t` is a _Tuple_. If not, throws a type check exception.", - "operands": { "k": 0 } - }, - { - "mnemonic": "SETFIRST", - "alias_of": "SETINDEX", - "doc_fift": "SETFIRST", - "doc_stack": "t x - t'", - "description": "Sets the first component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { "k": 0 } - }, - { - "mnemonic": "SETSECOND", - "alias_of": "SETINDEX", - "doc_fift": "SETSECOND", - "doc_stack": "t x - t'", - "description": "Sets the second component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { "k": 1 } - }, - { - "mnemonic": "SETTHIRD", - "alias_of": "SETINDEX", - "doc_fift": "SETTHIRD", - "doc_stack": "t x - t'", - "description": "Sets the third component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { "k": 2 } - }, - { - "mnemonic": "FIRSTQ", - "alias_of": "INDEXQ", - "doc_fift": "FIRSTQ\nCARQ", - "doc_stack": "t - x", - "description": "Returns the first element of a _Tuple_.", - "operands": { "k": 0 } - }, - { - "mnemonic": "SECONDQ", - "alias_of": "INDEXQ", - "doc_fift": "SECONDQ\nCDRQ", - "doc_stack": "t - y", - "description": "Returns the second element of a _Tuple_.", - "operands": { "k": 1 } - }, - { - "mnemonic": "THIRDQ", - "alias_of": "INDEXQ", - "doc_fift": "THIRDQ", - "doc_stack": "t - z", - "description": "Returns the third element of a _Tuple_.", - "operands": { "k": 2 } - }, - { - "mnemonic": "SETFIRSTQ", - "alias_of": "SETINDEXQ", - "doc_fift": "SETFIRSTQ", - "doc_stack": "t x - t'", - "description": "Sets the first component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { "k": 0 } - }, - { - "mnemonic": "SETSECONDQ", - "alias_of": "SETINDEXQ", - "doc_fift": "SETSECONDQ", - "doc_stack": "t x - t'", - "description": "Sets the second component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { "k": 1 } - }, - { - "mnemonic": "SETTHIRDQ", - "alias_of": "SETINDEXQ", - "doc_fift": "SETTHIRDQ", - "doc_stack": "t x - t'", - "description": "Sets the third component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", - "operands": { "k": 2 } - }, - { - "mnemonic": "CADR", - "alias_of": "INDEX2", - "doc_fift": "CADR", - "doc_stack": "t - x", - "description": "Recovers `x=(t_2)_1`.", - "operands": { "i": 1, "j": 0 } - }, - { - "mnemonic": "CDDR", - "alias_of": "INDEX2", - "doc_fift": "CDDR", - "doc_stack": "t - x", - "description": "Recovers `x=(t_2)_2`.", - "operands": { "i": 1, "j": 1 } - }, - { - "mnemonic": "CADDR", - "alias_of": "INDEX3", - "doc_fift": "CADDR", - "doc_stack": "t - x", - "description": "Recovers `x=t_2_2_1`.", - "operands": { "i": 1, "j": 1, "k": 0 } - }, - { - "mnemonic": "CDDDR", - "alias_of": "INDEX3", - "doc_fift": "CDDDR", - "doc_stack": "t - x", - "description": "Recovers `x=t_2_2_2`.", - "operands": { "i": 1, "j": 1, "k": 1 } - }, - { - "mnemonic": "ZERO", - "alias_of": "PUSHINT_4", - "doc_fift": "ZERO\nFALSE", - "doc_stack": "- 0", - "description": "", - "operands": { "i": 0 } - }, - { - "mnemonic": "ONE", - "alias_of": "PUSHINT_4", - "doc_fift": "ONE", - "doc_stack": "- 1", - "description": "", - "operands": { "i": 1 } - }, - { - "mnemonic": "TWO", - "alias_of": "PUSHINT_4", - "doc_fift": "TWO", - "doc_stack": "- 2", - "description": "", - "operands": { "i": 2 } - }, - { - "mnemonic": "TEN", - "alias_of": "PUSHINT_4", - "doc_fift": "TEN", - "doc_stack": "- 10", - "description": "", - "operands": { "i": 10 } - }, - { - "mnemonic": "TRUE", - "alias_of": "PUSHINT_4", - "doc_fift": "TRUE", - "doc_stack": "- -1", - "description": "", - "operands": { "i": 15 } - }, - { - "mnemonic": "CHKBOOL", - "alias_of": "FITS", - "doc_fift": "CHKBOOL", - "doc_stack": "x - x", - "description": "Checks whether `x` is a \u0432\u0402\u045aboolean value'' (i.e., either 0 or -1).", - "operands": { "c": 0 } - }, - { - "mnemonic": "CHKBIT", - "alias_of": "UFITS", - "doc_fift": "CHKBIT", - "doc_stack": "x - x", - "description": "Checks whether `x` is a binary digit (i.e., zero or one).", - "operands": { "c": 0 } - }, - { - "mnemonic": "ISZERO", - "alias_of": "EQINT", - "doc_fift": "ISZERO", - "doc_stack": "x - x=0", - "description": "Checks whether an integer is zero. Corresponds to Forth's `0=`.", - "operands": { "y": 0 } - }, - { - "mnemonic": "ISNEG", - "alias_of": "LESSINT", - "doc_fift": "ISNEG", - "doc_stack": "x - x<0", - "description": "Checks whether an integer is negative. Corresponds to Forth's `0<`.", - "operands": { "y": 0 } - }, - { - "mnemonic": "ISNPOS", - "alias_of": "LESSINT", - "doc_fift": "ISNPOS", - "doc_stack": "x - x<=0", - "description": "Checks whether an integer is non-positive.", - "operands": { "y": 1 } - }, - { - "mnemonic": "ISPOS", - "alias_of": "GTINT", - "doc_fift": "ISPOS", - "doc_stack": "x - x>0", - "description": "Checks whether an integer is positive. Corresponds to Forth's `0>`.", - "operands": { "y": 0 } - }, - { - "mnemonic": "ISNNEG", - "alias_of": "GTINT", - "doc_fift": "ISNNEG", - "doc_stack": "x - x >=0", - "description": "Checks whether an integer is non-negative.", - "operands": { "y": -1 } - }, - { - "mnemonic": "STZERO", - "alias_of": "STSLICECONST", - "doc_fift": "STZERO", - "doc_stack": "b - b'", - "description": "Stores one binary zero.", - "operands": { "x": 0, "y": 0, "sss": "0" } - }, - { - "mnemonic": "STONE", - "alias_of": "STSLICECONST", - "doc_fift": "STONE", - "doc_stack": "b - b'", - "description": "Stores one binary one.", - "operands": { "x": 0, "y": 0, "sss": "1" } - }, - { - "mnemonic": "PLDREF", - "alias_of": "PLDREFIDX", - "doc_fift": "PLDREF", - "doc_stack": "s - c", - "description": "Preloads the first cell reference of a _Slice_.", - "operands": { "n": 0 } - }, - { - "mnemonic": "SETNUMARGS", - "alias_of": "SETCONTARGS_N", - "doc_fift": "[n] SETNUMARGS", - "doc_stack": "c - c'", - "description": "Sets `c.nargs` to `n` plus the current depth of `c`'s stack, where `0 <= n <= 14`. If `c.nargs` is already set to a non-negative value, does nothing.", - "operands": { "r": 0 } - }, - { - "mnemonic": "SETCONTARGS", - "alias_of": "SETCONTARGS_N", - "doc_fift": "[r] -1 SETCONTARGS", - "doc_stack": "x_1 x_2...x_r c - c'", - "description": "Pushes `0 <= r <= 15` values `x_1...x_r` into the stack of (a copy of) the continuation `c`, starting with `x_1`. If the final depth of `c`'s stack turns out to be greater than `c.nargs`, a stack overflow exception is generated.", - "operands": { "n": -1 } - }, - { - "mnemonic": "BLESSNUMARGS", - "alias_of": "BLESSARGS", - "doc_fift": "[n] BLESSNUMARGS", - "doc_stack": "s - c", - "description": "Also transforms a _Slice_ `s` into a _Continuation_ `c`, but sets `c.nargs` to `0 <= n <= 14`.", - "operands": { "r": 0 } - }, - { - "mnemonic": "PUSHROOT", - "alias_of": "PUSHCTR", - "doc_fift": "c4 PUSHCTR\nc4 PUSH", - "doc_stack": "- x", - "description": "Pushes the \u0432\u0402\u045aglobal data root'' cell reference, thus enabling access to persistent smart-contract data.", - "operands": { "i": 4 } - }, - { - "mnemonic": "POPROOT", - "alias_of": "POPCTR", - "doc_fift": "c4 POPCTR\nc4 POP", - "doc_stack": "x -", - "description": "Sets the \u0432\u0402\u045aglobal data root'' cell reference, thus allowing modification of persistent smart-contract data.", - "operands": { "i": 4 } - }, - { - "mnemonic": "NEWDICT", - "alias_of": "NULL", - "doc_fift": "NEWDICT", - "doc_stack": " - D", - "description": "Returns a new empty dictionary.\nIt is an alternative mnemonics for `PUSHNULL`.", - "operands": {} - }, - { - "mnemonic": "DICTEMPTY", - "alias_of": "ISNULL", - "doc_fift": "DICTEMPTY", - "doc_stack": "D - ?", - "description": "Checks whether dictionary `D` is empty, and returns `-1` or `0` accordingly.\nIt is an alternative mnemonics for `ISNULL`.", - "operands": {} - }, - { - "mnemonic": "STDICTS", - "alias_of": "STSLICE", - "doc_fift": "STDICTS\n", - "doc_stack": "s b - b'", - "description": "Stores a _Slice_-represented dictionary `s` into _Builder_ `b`.\nIt is actually a synonym for `STSLICE`.", - "operands": {} - }, - { - "mnemonic": "NOW", - "alias_of": "GETPARAM", - "doc_fift": "NOW", - "doc_stack": " - x", - "description": "Returns the current Unix time as an _Integer_. If it is impossible to recover the requested value starting from `c7`, throws a type checking or range checking exception as appropriate.\nEquivalent to `3 GETPARAM`.", - "operands": { "i": 3 } - }, - { - "mnemonic": "BLOCKLT", - "alias_of": "GETPARAM", - "doc_fift": "BLOCKLT", - "doc_stack": " - x", - "description": "Returns the starting logical time of the current block.\nEquivalent to `4 GETPARAM`.", - "operands": { "i": 4 } - }, - { - "mnemonic": "LTIME", - "alias_of": "GETPARAM", - "doc_fift": "LTIME", - "doc_stack": " - x", - "description": "Returns the logical time of the current transaction.\nEquivalent to `5 GETPARAM`.", - "operands": { "i": 5 } - }, - { - "mnemonic": "RANDSEED", - "alias_of": "GETPARAM", - "doc_fift": "RANDSEED", - "doc_stack": " - x", - "description": "Returns the current random seed as an unsigned 256-bit _Integer_.\nEquivalent to `6 GETPARAM`.", - "operands": { "i": 6 } - }, - { - "mnemonic": "BALANCE", - "alias_of": "GETPARAM", - "doc_fift": "BALANCE", - "doc_stack": " - t", - "description": "Returns the remaining balance of the smart contract as a _Tuple_ consisting of an _Integer_ (the remaining Gram balance in nanograms) and a _Maybe Cell_ (a dictionary with 32-bit keys representing the balance of \u0432\u0402\u045aextra currencies'').\nEquivalent to `7 GETPARAM`.\nNote that `RAW` primitives such as `SENDRAWMSG` do not update this field.", - "operands": { "i": 7 } - }, - { - "mnemonic": "MYADDR", - "alias_of": "GETPARAM", - "doc_fift": "MYADDR", - "doc_stack": " - s", - "description": "Returns the internal address of the current smart contract as a _Slice_ with a `MsgAddressInt`. If necessary, it can be parsed further using primitives such as `PARSEMSGADDR` or `REWRITESTDADDR`.\nEquivalent to `8 GETPARAM`.", - "operands": { "i": 8 } - }, - { - "mnemonic": "CONFIGROOT", - "alias_of": "GETPARAM", - "doc_fift": "CONFIGROOT", - "doc_stack": " - D", - "description": "Returns the _Maybe Cell_ `D` with the current global configuration dictionary. Equivalent to `9 GETPARAM `.", - "operands": { "i": 9 } - }, - { - "mnemonic": "MYCODE", - "alias_of": "GETPARAM", - "doc_fift": "MYCODE", - "doc_stack": " - c", - "description": "Retrieves code of smart-contract from c7. Equivalent to `10 GETPARAM `.", - "operands": { "i": 10 } - }, - { - "mnemonic": "INCOMINGVALUE", - "alias_of": "GETPARAM", - "doc_fift": "INCOMINGVALUE", - "doc_stack": " - t", - "description": "Retrieves value of incoming message from c7. Equivalent to `11 GETPARAM `.", - "operands": { "i": 11 } - }, - { - "mnemonic": "STORAGEFEES", - "alias_of": "GETPARAM", - "doc_fift": "STORAGEFEES", - "doc_stack": " - i", - "description": "Retrieves value of storage phase fees from c7. Equivalent to `12 GETPARAM `.", - "operands": { "i": 12 } - }, - { - "mnemonic": "PREVBLOCKSINFOTUPLE", - "alias_of": "GETPARAM", - "doc_fift": "PREVBLOCKSINFOTUPLE", - "doc_stack": " - t", - "description": "Retrives PrevBlocksInfo: `[last_mc_blocks, prev_key_block]` from c7. Equivalent to `13 GETPARAM `.", - "operands": { "i": 13 } - }, - { - "mnemonic": "SETCP0", - "alias_of": "SETCP", - "doc_fift": "SETCP0", - "doc_stack": "-", - "description": "Selects TVM (test) codepage zero as described in this document.", - "operands": { "n": 0 } - } - ] -} +{ + "$schema": "./schema.json", + "instructions": [ + { + "mnemonic": "NOP", + "doc": { + "category": "stack_basic", + "description": "Does nothing.", + "gas": "18", + "fift": "NOP", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "00", + "tlb": "#00", + "prefix": "00", + "operands": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "XCHG_0I", + "doc": { + "category": "stack_basic", + "description": "Interchanges `s0` with `s[i]`, `1 <= i <= 15`.", + "gas": "18", + "fift": "s[i] XCHG0", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "0i", + "tlb": "#0 i:(## 4) {1 <= i}", + "prefix": "0", + "operands_range_check": { "length": 4, "from": 1, "to": 15 }, + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "XCHG_IJ", + "doc": { + "category": "stack_basic", + "description": "Interchanges `s[i]` with `s[j]`, `1 <= i < j <= 15`.", + "gas": "26", + "fift": "s[i] s[j] XCHG", + "fift_examples": [] + }, + "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 }, + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "XCHG_0I_LONG", + "doc": { + "category": "stack_basic", + "description": "Interchanges `s0` with `s[ii]`, `0 <= ii <= 255`.", + "gas": "26", + "fift": "s0 [ii] s() XCHG", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "11ii", + "tlb": "#11 ii:uint8", + "prefix": "11", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "XCHG_1I", + "doc": { + "category": "stack_basic", + "description": "Interchanges `s1` with `s[i]`, `2 <= i <= 15`.", + "gas": "18", + "fift": "s1 s[i] XCHG", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "1i", + "tlb": "#1 i:(## 4) {2 <= i}", + "prefix": "1", + "operands_range_check": { "length": 4, "from": 2, "to": 15 }, + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSH", + "doc": { + "category": "stack_basic", + "description": "Pushes a copy of the old `s[i]` into the stack.", + "gas": "18", + "fift": "s[i] PUSH", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "2i", + "tlb": "#2 i:uint4", + "prefix": "2", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "POP", + "doc": { + "category": "stack_basic", + "description": "Pops the old `s0` value into the old `s[i]`.", + "gas": "18", + "fift": "s[i] POP", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "3i", + "tlb": "#3 i:uint4", + "prefix": "3", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "XCHG3", + "doc": { + "category": "stack_complex", + "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": [] + }, + "bytecode": { + "doc_opcode": "4ijk", + "tlb": "#4 i:uint4 j:uint4 k:uint4", + "prefix": "4", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "XCHG2", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s1 s[i] XCHG` `s[j] XCHG0`.", + "gas": "26", + "fift": "s[i] s[j] XCHG2", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "50ij", + "tlb": "#50 i:uint4 j:uint4", + "prefix": "50", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "XCPU", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s[i] XCHG0` `s[j] PUSH`.", + "gas": "26", + "fift": "s[i] s[j] XCPU", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "51ij", + "tlb": "#51 i:uint4 j:uint4", + "prefix": "51", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUXC", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s[i] PUSH` `SWAP` `s[j] XCHG0`.", + "gas": "26", + "fift": "s[i] s[j-1] PUXC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "52ij", + "tlb": "#52 i:uint4 j:uint4", + "prefix": "52", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSH2", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s[i] PUSH` `s[j+1] PUSH`.", + "gas": "26", + "fift": "s[i] s[j] PUSH2", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "53ij", + "tlb": "#53 i:uint4 j:uint4", + "prefix": "53", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "XCHG3_ALT", + "doc": { + "category": "stack_complex", + "description": "Long form of `XCHG3`.", + "gas": "34", + "fift": "s[i] s[j] s[k] XCHG3_l", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "540ijk", + "tlb": "#540 i:uint4 j:uint4 k:uint4", + "prefix": "540", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "XC2PU", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s[i] s[j] XCHG2` `s[k] PUSH`.", + "gas": "34", + "fift": "s[i] s[j] s[k] XC2PU", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "541ijk", + "tlb": "#541 i:uint4 j:uint4 k:uint4", + "prefix": "541", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "XCPUXC", + "doc": { + "category": "stack_complex", + "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": [] + }, + "bytecode": { + "doc_opcode": "542ijk", + "tlb": "#542 i:uint4 j:uint4 k:uint4", + "prefix": "542", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "XCPU2", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s[i] XCHG0` `s[j] s[k] PUSH2`.", + "gas": "34", + "fift": "s[i] s[j] s[k] XCPU2", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "543ijk", + "tlb": "#543 i:uint4 j:uint4 k:uint4", + "prefix": "543", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUXC2", + "doc": { + "category": "stack_complex", + "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": [] + }, + "bytecode": { + "doc_opcode": "544ijk", + "tlb": "#544 i:uint4 j:uint4 k:uint4", + "prefix": "544", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUXCPU", + "doc": { + "category": "stack_complex", + "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": [] + }, + "bytecode": { + "doc_opcode": "545ijk", + "tlb": "#545 i:uint4 j:uint4 k:uint4", + "prefix": "545", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PU2XC", + "doc": { + "category": "stack_complex", + "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": [] + }, + "bytecode": { + "doc_opcode": "546ijk", + "tlb": "#546 i:uint4 j:uint4 k:uint4", + "prefix": "546", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSH3", + "doc": { + "category": "stack_complex", + "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": [] + }, + "bytecode": { + "doc_opcode": "547ijk", + "tlb": "#547 i:uint4 j:uint4 k:uint4", + "prefix": "547", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLKSWAP", + "doc": { + "category": "stack_complex", + "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": [] + }, + "bytecode": { + "doc_opcode": "55ij", + "tlb": "#55 i:uint4 j:uint4", + "prefix": "55", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSH_LONG", + "doc": { + "category": "stack_complex", + "description": "Pushes a copy of the old `s[ii]` into the stack.\n`0 <= ii <= 255`", + "gas": "26", + "fift": "[ii] s() PUSH", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "56ii", + "tlb": "#56 ii:uint8", + "prefix": "56", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "POP_LONG", + "doc": { + "category": "stack_complex", + "description": "Pops the old `s0` value into the old `s[ii]`.\n`0 <= ii <= 255`", + "gas": "26", + "fift": "[ii] s() POP", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "57ii", + "tlb": "#57 ii:uint8", + "prefix": "57", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ROT", + "doc": { + "category": "stack_complex", + "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": [] + }, + "value_flow": { + "doc_stack": "a b c - b c a", + "inputs": {}, + "outputs": {} + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ROTREV", + "doc": { + "category": "stack_complex", + "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": [] + }, + "value_flow": { + "doc_stack": "a b c - c a b", + "inputs": {}, + "outputs": {} + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SWAP2", + "doc": { + "category": "stack_complex", + "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": [] + }, + "value_flow": { + "doc_stack": "a b c d - c d a b", + "inputs": {}, + "outputs": {} + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DROP2", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `DROP` `DROP`.", + "gas": "18", + "fift": "DROP2\n2DROP", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "5B", + "tlb": "#5B", + "prefix": "5B", + "operands": [] + }, + "value_flow": { "doc_stack": "a b - ", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DUP2", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s1 s0 PUSH2`.", + "gas": "18", + "fift": "DUP2\n2DUP", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "5C", + "tlb": "#5C", + "prefix": "5C", + "operands": [] + }, + "value_flow": { + "doc_stack": "a b - a b a b", + "inputs": {}, + "outputs": {} + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "OVER2", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `s3 s2 PUSH2`.", + "gas": "18", + "fift": "OVER2\n2OVER", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "5D", + "tlb": "#5D", + "prefix": "5D", + "operands": [] + }, + "value_flow": { + "doc_stack": "a b c d - a b c d a b", + "inputs": {}, + "outputs": {} + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "REVERSE", + "doc": { + "category": "stack_complex", + "description": "Reverses the order of `s[j+i+1] … s[j]`.", + "gas": "26", + "fift": "[i+2] [j] REVERSE", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "5Eij", + "tlb": "#5E i:uint4 j:uint4", + "prefix": "5E", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLKDROP", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `DROP` performed `i` times.", + "gas": "26", + "fift": "[i] BLKDROP", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "5F0i", + "tlb": "#5F0 i:uint4", + "prefix": "5F0", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLKPUSH", + "doc": { + "category": "stack_complex", + "description": "Equivalent to `PUSH s(j)` performed `i` times.\n`1 <= i <= 15`, `0 <= j <= 15`.", + "gas": "26", + "fift": "[i] [j] BLKPUSH", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "5Fij", + "tlb": "#5F i:(## 4) j:uint4 {1 <= i}", + "prefix": "5F", + "operands_range_check": { "length": 4, "from": 1, "to": 15 }, + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PICK", + "doc": { + "category": "stack_complex", + "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": [] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ROLLX", + "doc": { + "category": "stack_complex", + "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": [] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "-ROLLX", + "doc": { + "category": "stack_complex", + "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": [] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLKSWX", + "doc": { + "category": "stack_complex", + "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": [] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "REVX", + "doc": { + "category": "stack_complex", + "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": [] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DROPX", + "doc": { + "category": "stack_complex", + "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": [] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "TUCK", + "doc": { + "category": "stack_complex", + "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": [] + }, + "value_flow": { "doc_stack": "a b - b a b", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "XCHGX", + "doc": { + "category": "stack_complex", + "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": [] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DEPTH", + "doc": { + "category": "stack_complex", + "description": "Pushes the current depth of the stack.", + "gas": "18", + "fift": "DEPTH", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "68", + "tlb": "#68", + "prefix": "68", + "operands": [] + }, + "value_flow": { + "doc_stack": "- depth", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "depth", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "CHKDEPTH", + "doc": { + "category": "stack_complex", + "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": [] + }, + "value_flow": { + "doc_stack": "i -", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ONLYTOPX", + "doc": { + "category": "stack_complex", + "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": [] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ONLYX", + "doc": { + "category": "stack_complex", + "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": [] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLKDROP2", + "doc": { + "category": "stack_complex", + "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": [] + }, + "bytecode": { + "doc_opcode": "6Cij", + "tlb": "#6C i:(## 4) j:uint4 {1 <= i}", + "prefix": "6C", + "operands_range_check": { "length": 4, "from": 1, "to": 15 }, + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "NULL", + "doc": { + "category": "tuple", + "description": "Pushes the only value of type _Null_.", + "gas": "18", + "fift": "NULL\nPUSHNULL", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "6D", + "tlb": "#6D", + "prefix": "6D", + "operands": [] + }, + "value_flow": { + "doc_stack": " - null", + "inputs": { "stack": [] }, + "outputs": { + "stack": [{ "type": "const", "value": null, "value_type": "Null" }] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ISNULL", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "x - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "TUPLE", + "doc": { + "category": "tuple", + "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": [] + }, + "bytecode": { + "doc_opcode": "6F0n", + "tlb": "#6F0 n:uint4", + "prefix": "6F0", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "x_1 ... x_n - t", + "inputs": { + "stack": [ + { + "type": "array", + "name": "tuple_elements", + "length_var": "n", + "array_entry": [{ "type": "simple", "name": "x" }] + } + ] + }, + "outputs": { + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "INDEX", + "doc": { + "category": "tuple", + "description": "Returns the `k`-th element of a _Tuple_ `t`.\n`0 <= k <= 15`.", + "gas": "26", + "fift": "[k] INDEX", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "6F1k", + "tlb": "#6F1 k:uint4", + "prefix": "6F1", + "operands": [ + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "t - x", + "inputs": { + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + }, + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "UNTUPLE", + "doc": { + "category": "tuple", + "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": [] + }, + "bytecode": { + "doc_opcode": "6F2n", + "tlb": "#6F2 n:uint4", + "prefix": "6F2", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "t - x_1 ... x_n", + "inputs": { + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + }, + "outputs": { + "stack": [ + { + "type": "array", + "name": "tuple_elements", + "length_var": "n", + "array_entry": [{ "type": "simple", "name": "x" }] + } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "UNPACKFIRST", + "doc": { + "category": "tuple", + "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": [] + }, + "bytecode": { + "doc_opcode": "6F5k", + "tlb": "#6F5 k:uint4", + "prefix": "6F5", + "operands": [ + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "t x - t'", + "inputs": { + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] }, + { "type": "simple", "name": "x" } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "t2", "value_types": ["Tuple"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "INDEXQ", + "doc": { + "category": "tuple", + "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": [] + }, + "bytecode": { + "doc_opcode": "6F6k", + "tlb": "#6F6 k:uint4", + "prefix": "6F6", + "operands": [ + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "t - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] } + ] + }, + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETINDEXQ", + "doc": { + "category": "tuple", + "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": [] + }, + "bytecode": { + "doc_opcode": "6F7k", + "tlb": "#6F7 k:uint4", + "prefix": "6F7", + "operands": [ + { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "t x - t'", + "inputs": { + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] }, + { "type": "simple", "name": "x" } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "t2", "value_types": ["Tuple", "Null"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "TUPLEVAR", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "x_1 ... x_n n - t", + "inputs": { + "stack": [ + { + "type": "array", + "name": "tuple_elements", + "length_var": "n", + "array_entry": [{ "type": "simple", "name": "x" }] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "INDEXVAR", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "t k - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] }, + { "type": "simple", "name": "k", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "UNTUPLEVAR", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "t n - x_1 ... x_n", + "inputs": { + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "array", + "name": "tuple_elements", + "length_var": "n", + "array_entry": [{ "type": "simple", "name": "x" }] + } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "UNPACKFIRSTVAR", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "t n - x_1 ... x_n", + "inputs": { + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "array", + "name": "tuple_elements", + "length_var": "n", + "array_entry": [{ "type": "simple", "name": "x" }] + } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "EXPLODEVAR", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "t n - x_1 ... x_m m", + "inputs": { + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "array", + "name": "tuple_elements", + "length_var": "m", + "array_entry": [{ "type": "simple", "name": "x" }] + }, + { "type": "simple", "name": "m", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETINDEXVAR", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "t x k - t'", + "inputs": { + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] }, + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "k", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "t2", "value_types": ["Tuple"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "INDEXVARQ", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "t k - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] }, + { "type": "simple", "name": "k", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETINDEXVARQ", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "t x k - t'", + "inputs": { + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] }, + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "k", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "t2", "value_types": ["Tuple", "Null"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "TLEN", + "doc": { + "category": "tuple", + "description": "Returns the length of a _Tuple_.", + "gas": "26", + "fift": "TLEN", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "6F88", + "tlb": "#6F88", + "prefix": "6F88", + "operands": [] + }, + "value_flow": { + "doc_stack": "t - n", + "inputs": { + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QTLEN", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "t - n or -1", + "inputs": { + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ISTUPLE", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "t - ?", + "inputs": { + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LAST", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "t - x", + "inputs": { + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + }, + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "TPUSH", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "t x - t'", + "inputs": { + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] }, + { "type": "simple", "name": "x" } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "t2", "value_types": ["Tuple"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "TPOP", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "t - t' x", + "inputs": { + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "t2", "value_types": ["Tuple"] }, + { "type": "simple", "name": "x" } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "NULLSWAPIF", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "x - x or null x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "x", + "match": [{ "value": 0, "stack": [] }], + "else": [{ "type": "const", "value": null, "value_type": "Null" }] + }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "NULLSWAPIFNOT", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "x - x or null x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "x", + "match": [ + { + "value": 0, + "stack": [ + { "type": "const", "value": null, "value_type": "Null" } + ] + } + ], + "else": [] + }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "NULLROTRIF", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "x y - x y or null x y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "y", + "match": [{ "value": 0, "stack": [] }], + "else": [{ "type": "const", "value": null, "value_type": "Null" }] + }, + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "NULLROTRIFNOT", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "x y - x y or null x y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "y", + "match": [ + { + "value": 0, + "stack": [ + { "type": "const", "value": null, "value_type": "Null" } + ] + } + ], + "else": [] + }, + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "NULLSWAPIF2", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "x - x or null null x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "x", + "match": [{ "value": 0, "stack": [] }], + "else": [ + { "type": "const", "value": null, "value_type": "Null" }, + { "type": "const", "value": null, "value_type": "Null" } + ] + }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "NULLSWAPIFNOT2", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "x - x or null null x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "x", + "match": [ + { + "value": 0, + "stack": [ + { "type": "const", "value": null, "value_type": "Null" }, + { "type": "const", "value": null, "value_type": "Null" } + ] + } + ], + "else": [] + }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "NULLROTRIF2", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "x y - x y or null null x y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "y", + "match": [{ "value": 0, "stack": [] }], + "else": [ + { "type": "const", "value": null, "value_type": "Null" }, + { "type": "const", "value": null, "value_type": "Null" } + ] + }, + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "NULLROTRIFNOT2", + "doc": { + "category": "tuple", + "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": [] + }, + "value_flow": { + "doc_stack": "x y - x y or null null x y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "y", + "match": [ + { + "value": 0, + "stack": [ + { "type": "const", "value": null, "value_type": "Null" }, + { "type": "const", "value": null, "value_type": "Null" } + ] + } + ], + "else": [] + }, + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "INDEX2", + "doc": { + "category": "tuple", + "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": [] + }, + "bytecode": { + "doc_opcode": "6FBij", + "tlb": "#6FB i:uint2 j:uint2", + "prefix": "6FB", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 2 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 2 } } + ] + }, + "value_flow": { + "doc_stack": "t - x", + "inputs": { + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + }, + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "INDEX3", + "doc": { + "category": "tuple", + "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": [] + }, + "bytecode": { + "doc_opcode": "6FE_ijk", + "tlb": "#6FE_ i:uint2 j:uint2 k:uint2", + "prefix": "6FE_", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 2 } }, + { "name": "j", "loader": "uint", "loader_args": { "size": 2 } }, + { "name": "k", "loader": "uint", "loader_args": { "size": 2 } } + ] + }, + "value_flow": { + "doc_stack": "t - x", + "inputs": { + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + }, + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHINT_4", + "doc": { + "category": "const_int", + "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": [] + }, + "bytecode": { + "doc_opcode": "7i", + "tlb": "#7 i:uint4", + "prefix": "7", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "- x", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHINT_8", + "doc": { + "category": "const_int", + "description": "Pushes integer `xx`. `-128 <= xx <= 127`.", + "gas": "26", + "fift": "[xx] PUSHINT\n[xx] INT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "80xx", + "tlb": "#80 xx:int8", + "prefix": "80", + "operands": [ + { "name": "x", "loader": "int", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "- xx", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHINT_16", + "doc": { + "category": "const_int", + "description": "Pushes integer `xxxx`. `-2^15 <= xx < 2^15`.", + "gas": "34", + "fift": "[xxxx] PUSHINT\n[xxxx] INT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "81xxxx", + "tlb": "#81 xxxx:int16", + "prefix": "81", + "operands": [ + { "name": "x", "loader": "int", "loader_args": { "size": 16 } } + ] + }, + "value_flow": { + "doc_stack": "- xxxx", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHINT_LONG", + "doc": { + "category": "const_int", + "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": [] + }, + "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", "loader": "pushint_long", "loader_args": {} } + ] + }, + "value_flow": { + "doc_stack": "- xxx", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHPOW2", + "doc": { + "category": "const_int", + "description": "(Quietly) pushes `2^(xx+1)` for `0 <= xx <= 255`.\n`2^256` is a `NaN`.", + "gas": "26", + "fift": "[xx+1] PUSHPOW2", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "83xx", + "tlb": "#83 xx:uint8", + "prefix": "83", + "operands_range_check": { "length": 8, "from": 0, "to": 254 }, + "operands": [ + { "name": "x", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "- 2^(xx+1)", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHNAN", + "doc": { + "category": "const_int", + "description": "Pushes a `NaN`.", + "gas": "26", + "fift": "PUSHNAN", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "83FF", + "tlb": "#83FF", + "prefix": "83FF", + "operands": [] + }, + "value_flow": { + "doc_stack": "- NaN", + "inputs": { "stack": [] }, + "outputs": { + "stack": [{ "type": "const", "value_type": "Integer", "value": null }] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHPOW2DEC", + "doc": { + "category": "const_int", + "description": "Pushes `2^(xx+1)-1` for `0 <= xx <= 255`.", + "gas": "26", + "fift": "[xx+1] PUSHPOW2DEC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "84xx", + "tlb": "#84 xx:uint8", + "prefix": "84", + "operands": [ + { "name": "x", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "- 2^(xx+1)-1", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHNEGPOW2", + "doc": { + "category": "const_int", + "description": "Pushes `-2^(xx+1)` for `0 <= xx <= 255`.", + "gas": "26", + "fift": "[xx+1] PUSHNEGPOW2", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "85xx", + "tlb": "#85 xx:uint8", + "prefix": "85", + "operands": [ + { "name": "x", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "- -2^(xx+1)", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHREF", + "doc": { + "category": "const_data", + "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": [] + }, + "bytecode": { + "doc_opcode": "88", + "tlb": "#88 c:^Cell", + "prefix": "88", + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + }, + "value_flow": { + "doc_stack": "- c", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Cell"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHREFSLICE", + "doc": { + "category": "const_data", + "description": "Similar to `PUSHREF`, but converts the cell into a _Slice_.", + "gas": "118/43", + "fift": "[ref] PUSHREFSLICE", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "89", + "tlb": "#89 c:^Cell", + "prefix": "89", + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + }, + "value_flow": { + "doc_stack": "- s", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHREFCONT", + "doc": { + "category": "const_data", + "description": "Similar to `PUSHREFSLICE`, but makes a simple ordinary _Continuation_ out of the cell.", + "gas": "118/43", + "fift": "[ref] PUSHREFCONT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "8A", + "tlb": "#8A c:^Cell", + "prefix": "8A", + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + }, + "value_flow": { + "doc_stack": "- cont", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Continuation"] + } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHSLICE", + "doc": { + "category": "const_data", + "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": [] + }, + "bytecode": { + "doc_opcode": "8Bxsss", + "tlb": "#8B x:(## 4) sss:((8 * x + 4) * Bit)", + "prefix": "8B", + "operands": [ + { + "name": "s", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 4, + "bits_padding": 4, + "completion_tag": true + } + } + ] + }, + "value_flow": { + "doc_stack": "- s", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHSLICE_REFS", + "doc": { + "category": "const_data", + "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": [] + }, + "bytecode": { + "doc_opcode": "8Crxxssss", + "tlb": "#8C r:(## 2) xx:(## 5) c:((r + 1) * ^Cell) ssss:((8 * xx + 1) * Bit)", + "prefix": "8C", + "operands": [ + { + "name": "slice", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 5, + "bits_padding": 1, + "refs_length_var_size": 2, + "refs_add": 1, + "completion_tag": true + } + } + ] + }, + "value_flow": { + "doc_stack": "- s", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHSLICE_LONG", + "doc": { + "category": "const_data", + "description": "Pushes the slice `slice` into the stack.\n_Details:_ Pushes the subslice of `cc.code` consisting of `0 <= r <= 4` references and up to `8xx+6` bits of data, with `0 <= xx <= 127`.\nA completion tag is assumed.", + "gas": "28", + "fift": "[slice] PUSHSLICE\n[slice] SLICE", + "fift_examples": [ + { + "fift": "x{} PUSHSLICE x{ABCD1234} PUSHSLICE b{01101} PUSHSLICE", + "description": "Examples of `PUSHSLICE`. `x{}` is an empty slice. `x{...}` is a hexadecimal literal. `b{...}` is a binary literal. More on slice literals [here](https://github.com/Piterden/TON-docs/blob/master/Fift.%20A%20Brief%20Introduction.md#user-content-51-slice-literals). Note that the assembler can replace `PUSHSLICE` with `PUSHREFSLICE` in certain situations (e.g. if there’s not enough space in the current continuation)." + }, + { + "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)." + } + ] + }, + "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 }, + "operands": [ + { + "name": "slice", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 7, + "bits_padding": 6, + "refs_length_var_size": 3, + "completion_tag": true, + "refs_add": 0 + } + } + ] + }, + "value_flow": { + "doc_stack": "- s", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHCONT", + "doc": { + "category": "const_data", + "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": [] + }, + "bytecode": { + "doc_opcode": "8F_rxxcccc", + "tlb": "#8F_ r:(## 2) xx:(## 7) c:(r * ^Cell) ssss:((8 * xx) * Bit)", + "prefix": "8F_", + "operands": [ + { + "name": "s", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 7, + "bits_padding": 0, + "refs_length_var_size": 2, + "refs_add": 0, + "completion_tag": false + } + } + ] + }, + "value_flow": { + "doc_stack": "- c", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Continuation"] + } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHCONT_SHORT", + "doc": { + "category": "const_data", + "description": "Pushes a continuation made from `builder`.\n_Details:_ Pushes an `x`-byte continuation for `0 <= x <= 15`.", + "gas": "18", + "fift": "[builder] PUSHCONT\n[builder] CONT", + "fift_examples": [ + { + "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)." + } + ] + }, + "bytecode": { + "doc_opcode": "9xccc", + "tlb": "#9 x:(## 4) ssss:((8 * x) * Bit)", + "prefix": "9", + "operands": [ + { + "name": "s", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 4, + "bits_padding": 0, + "completion_tag": false + } + } + ] + }, + "value_flow": { + "doc_stack": "- c", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ADD", + "doc": { + "category": "arithm_basic", + "description": "", + "gas": "18", + "fift": "ADD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A0", + "tlb": "#A0", + "prefix": "A0", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x+y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SUB", + "doc": { + "category": "arithm_basic", + "description": "", + "gas": "18", + "fift": "SUB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A1", + "tlb": "#A1", + "prefix": "A1", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x-y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SUBR", + "doc": { + "category": "arithm_basic", + "description": "Equivalent to `SWAP` `SUB`.", + "gas": "18", + "fift": "SUBR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A2", + "tlb": "#A2", + "prefix": "A2", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - y-x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "NEGATE", + "doc": { + "category": "arithm_basic", + "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": [] + }, + "value_flow": { + "doc_stack": "x - -x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "INC", + "doc": { + "category": "arithm_basic", + "description": "Equivalent to `1 ADDCONST`.", + "gas": "18", + "fift": "INC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A4", + "tlb": "#A4", + "prefix": "A4", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - x+1", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DEC", + "doc": { + "category": "arithm_basic", + "description": "Equivalent to `-1 ADDCONST`.", + "gas": "18", + "fift": "DEC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A5", + "tlb": "#A5", + "prefix": "A5", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - x-1", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ADDCONST", + "doc": { + "category": "arithm_basic", + "description": "`-128 <= cc <= 127`.", + "gas": "26", + "fift": "[cc] ADDCONST\n[cc] ADDINT\n[-cc] SUBCONST\n[-cc] SUBINT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A6cc", + "tlb": "#A6 cc:int8", + "prefix": "A6", + "operands": [ + { "name": "c", "loader": "int", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - x+cc", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULCONST", + "doc": { + "category": "arithm_basic", + "description": "`-128 <= cc <= 127`.", + "gas": "26", + "fift": "[cc] MULCONST\n[cc] MULINT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A7cc", + "tlb": "#A7 cc:int8", + "prefix": "A7", + "operands": [ + { "name": "c", "loader": "int", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - x*cc", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MUL", + "doc": { + "category": "arithm_basic", + "description": "", + "gas": "18", + "fift": "MUL", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A8", + "tlb": "#A8", + "prefix": "A8", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x*y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ADDDIVMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "ADDDIVMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A900", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ADDDIVMODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "ADDDIVMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A901", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ADDDIVMODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "ADDDIVMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A902", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DIV", + "doc": { + "category": "arithm_div", + "description": "`q=floor(x/y)`, `r=x-y*q`", + "gas": "26", + "fift": "DIV", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A904", + "tlb": "#A904", + "prefix": "A904", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DIVR", + "doc": { + "category": "arithm_div", + "description": "`q’=round(x/y)`, `r’=x-y*q’`", + "gas": "26", + "fift": "DIVR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A905", + "tlb": "#A905", + "prefix": "A905", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q’", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DIVC", + "doc": { + "category": "arithm_div", + "description": "`q’’=ceil(x/y)`, `r’’=x-y*q’’`", + "gas": "26", + "fift": "DIVC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A906", + "tlb": "#A906", + "prefix": "A906", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q''", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A908", + "tlb": "#A908", + "prefix": "A908", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - r", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A909", + "tlb": "#A909", + "prefix": "A909", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - r", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A90A", + "tlb": "#A90A", + "prefix": "A90A", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - r", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DIVMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "DIVMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A90C", + "tlb": "#A90C", + "prefix": "A90C", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q r", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DIVMODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "DIVMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A90D", + "tlb": "#A90D", + "prefix": "A90D", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q' r'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DIVMODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "DIVMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A90E", + "tlb": "#A90E", + "prefix": "A90E", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q'' r''", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ADDRSHIFTMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "ADDRSHIFTMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A920", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ADDRSHIFTMODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "ADDRSHIFTMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A921", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ADDRSHIFTMODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "ADDRSHIFTMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A922", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RSHIFTR_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "RSHIFTR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A925", + "tlb": "#A925", + "prefix": "A925", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - round(x/2^y)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RSHIFTC_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "RSHIFTC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A926", + "tlb": "#A926", + "prefix": "A926", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - ceil(x/2^y)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MODPOW2_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MODPOW2", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A928", + "tlb": "#A928", + "prefix": "A928", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x mod 2^y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MODPOW2R_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MODPOW2R", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A929", + "tlb": "#A929", + "prefix": "A929", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x mod 2^y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MODPOW2C_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MODPOW2C", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A92A", + "tlb": "#A92A", + "prefix": "A92A", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x mod 2^y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RSHIFTMOD_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "RSHIFTMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A92C", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RSHIFTMODR_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "RSHIFTMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A92D", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RSHIFTMODC_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "RSHIFTMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A92E", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ADDRSHIFTMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] ADDRSHIFT#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A930tt", + "tlb": "#A930 tt:uint8", + "prefix": "A930", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ADDRSHIFTRMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] ADDRSHIFTR#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A931tt", + "tlb": "#A931 tt:uint8", + "prefix": "A931", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ADDRSHIFTCMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] ADDRSHIFTC#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A932tt", + "tlb": "#A932 tt:uint8", + "prefix": "A932", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RSHIFTR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] RSHIFTR#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A935tt", + "tlb": "#A935 tt:uint8", + "prefix": "A935", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - round(x/2^(tt+1))", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RSHIFTC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] RSHIFTC#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A936tt", + "tlb": "#A936 tt:uint8", + "prefix": "A936", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - ceil(x/2^(tt+1))", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MODPOW2", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MODPOW2#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A938tt", + "tlb": "#A938 tt:uint8", + "prefix": "A938", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - x mod 2^(tt+1)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MODPOW2R", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MODPOW2R#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A939tt", + "tlb": "#A939 tt:uint8", + "prefix": "A939", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - x mod 2^(tt+1)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MODPOW2C", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MODPOW2C#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A93Att", + "tlb": "#A93A tt:uint8", + "prefix": "A93A", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - x mod 2^(tt+1)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RSHIFTMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] RSHIFT#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A93Ctt", + "tlb": "#A93C tt:uint8", + "prefix": "A93C", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RSHIFTRMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] RSHIFTR#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A93Dtt", + "tlb": "#A93D tt:uint8", + "prefix": "A93D", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RSHIFTCMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] RSHIFTC#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A93Ett", + "tlb": "#A93E tt:uint8", + "prefix": "A93E", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULADDDIVMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULADDDIVMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A980", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULADDDIVMODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULADDDIVMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A981", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULADDDIVMODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULADDDIVMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A982", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULDIV", + "doc": { + "category": "arithm_div", + "description": "`q=floor(x*y/z)`", + "gas": "26", + "fift": "MULDIV", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A984", + "tlb": "#A984", + "prefix": "A984", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULDIVR", + "doc": { + "category": "arithm_div", + "description": "`q'=round(x*y/z)`", + "gas": "26", + "fift": "MULDIVR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A985", + "tlb": "#A985", + "prefix": "A985", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULDIVC", + "doc": { + "category": "arithm_div", + "description": "`q'=ceil(x*y/z)`", + "gas": "26", + "fift": "MULDIVC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A986", + "tlb": "#A986", + "prefix": "A986", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A988", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULMODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A989", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULMODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A98A", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULDIVMOD", + "doc": { + "category": "arithm_div", + "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": [] + }, + "value_flow": { + "doc_stack": "x y z - q r", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULDIVMODR", + "doc": { + "category": "arithm_div", + "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": [] + }, + "value_flow": { + "doc_stack": "x y z - q r", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULDIVMODC", + "doc": { + "category": "arithm_div", + "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": [] + }, + "value_flow": { + "doc_stack": "x y z - q r", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULADDRSHIFTMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULADDRSHIFTMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9A0", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULADDRSHIFTRMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULADDRSHIFTRMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9A1", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULADDRSHIFTCMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULADDRSHIFTCMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9A2", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULRSHIFT_VAR", + "doc": { + "category": "arithm_div", + "description": "`0 <= z <= 256`", + "gas": "26", + "fift": "MULRSHIFT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9A4", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULRSHIFTR_VAR", + "doc": { + "category": "arithm_div", + "description": "`0 <= z <= 256`", + "gas": "26", + "fift": "MULRSHIFTR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9A5", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULRSHIFTC_VAR", + "doc": { + "category": "arithm_div", + "description": "`0 <= z <= 256`", + "gas": "26", + "fift": "MULRSHIFTC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9A6", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULMODPOW2_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULMODPOW2_VAR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9A8", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULMODPOW2R_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULMODPOW2R_VAR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9A9", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULMODPOW2C_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULMODPOW2C_VAR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9AA", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULRSHIFTMOD_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULRSHIFTMOD_VAR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9AC", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULRSHIFTRMOD_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULRSHIFTRMOD_VAR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9AD", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULRSHIFTCMOD_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "MULRSHIFTCMOD_VAR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9AE", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULADDRSHIFTMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULADDRSHIFT#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9B0tt", + "tlb": "#A9B0 tt:uint8", + "prefix": "A9B0", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULADDRSHIFTRMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULADDRSHIFTR#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9B1tt", + "tlb": "#A9B1 tt:uint8", + "prefix": "A9B1", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULADDRSHIFTCMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULADDRSHIFTC#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9B2tt", + "tlb": "#A9B2 tt:uint8", + "prefix": "A9B2", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULRSHIFT", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULRSHIFT#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9B4tt", + "tlb": "#A9B4 tt:uint8", + "prefix": "A9B4", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - floor(x*y/2^(tt+1))", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULRSHIFTR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULRSHIFTR#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9B5tt", + "tlb": "#A9B5 tt:uint8", + "prefix": "A9B5", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - round(x*y/2^(tt+1))", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULRSHIFTC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULRSHIFTC#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9B6tt", + "tlb": "#A9B6 tt:uint8", + "prefix": "A9B6", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - ceil(x*y/2^(tt+1))", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULMODPOW2", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULMODPOW2#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9B8tt", + "tlb": "#A9B8 tt:uint8", + "prefix": "A9B8", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - x*y mod 2^(tt+1)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULMODPOW2R", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULMODPOW2R#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9B9tt", + "tlb": "#A9B9 tt:uint8", + "prefix": "A9B9", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - x*y mod 2^(tt+1)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULMODPOW2C", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] MULMODPOW2C#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9BAtt", + "tlb": "#A9BA tt:uint8", + "prefix": "A9BA", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - x*y mod 2^(tt+1)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULRSHIFTMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "MULRSHIFT#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9BC", + "tlb": "#A9BC", + "prefix": "A9BC", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULRSHIFTRMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "MULRSHIFTR#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9BD", + "tlb": "#A9BD", + "prefix": "A9BD", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MULRSHIFTCMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "MULRSHIFTC#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9BE", + "tlb": "#A9BE", + "prefix": "A9BE", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTADDDIVMOD_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTADDDIVMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9C0", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTADDDIVMODR_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTADDDIVMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9C1", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTADDDIVMODC_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTADDDIVMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9C2", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTDIV_VAR", + "doc": { + "category": "arithm_div", + "description": "`0 <= z <= 256`", + "gas": "26", + "fift": "LSHIFTDIV", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9C4", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTDIVR_VAR", + "doc": { + "category": "arithm_div", + "description": "`0 <= z <= 256`", + "gas": "26", + "fift": "LSHIFTDIVR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9C5", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTDIVC_VAR", + "doc": { + "category": "arithm_div", + "description": "`0 <= z <= 256`", + "gas": "26", + "fift": "LSHIFTDIVC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9C6", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTMOD_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9C8", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTMODR_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9C9", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTMODC_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9CA", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTDIVMOD_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTDIVMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9CC", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTDIVMODR_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTDIVMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9CD", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTDIVMODC_VAR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "LSHIFTDIVMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9CE", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTADDDIVMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#ADDDIVMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9D0tt", + "tlb": "#A9D0 tt:uint8", + "prefix": "A9D0", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTADDDIVMODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#ADDDIVMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9D1tt", + "tlb": "#A9D1 tt:uint8", + "prefix": "A9D1", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTADDDIVMODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#ADDDIVMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9D2tt", + "tlb": "#A9D2 tt:uint8", + "prefix": "A9D2", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTDIV", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#DIV", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9D4tt", + "tlb": "#A9D4 tt:uint8", + "prefix": "A9D4", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - floor(2^(tt+1)*x/y)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTDIVR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#DIVR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9D5tt", + "tlb": "#A9D5 tt:uint8", + "prefix": "A9D5", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - round(2^(tt+1)*x/y)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTDIVC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "26", + "fift": "[tt+1] LSHIFT#DIVC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9D6tt", + "tlb": "#A9D6 tt:uint8", + "prefix": "A9D6", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - ceil(2^(tt+1)*x/y)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9D8tt", + "tlb": "#A9D8 tt:uint8", + "prefix": "A9D8", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - 2^(tt+1)*x mod y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTMODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#MODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9D9tt", + "tlb": "#A9D9 tt:uint8", + "prefix": "A9D9", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - 2^(tt+1)*x mod y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTMODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#MODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9DAtt", + "tlb": "#A9DA tt:uint8", + "prefix": "A9DA", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - 2^(tt+1)*x mod y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTDIVMOD", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#DIVMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9DCtt", + "tlb": "#A9DC tt:uint8", + "prefix": "A9DC", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTDIVMODR", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#DIVMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9DDtt", + "tlb": "#A9DD tt:uint8", + "prefix": "A9DD", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFTDIVMODC", + "doc": { + "category": "arithm_div", + "description": "", + "gas": "34", + "fift": "[tt+1] LSHIFT#DIVMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A9DEtt", + "tlb": "#A9DE tt:uint8", + "prefix": "A9DE", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFT", + "doc": { + "category": "arithm_logical", + "description": "`0 <= cc <= 255`", + "gas": "26", + "fift": "[cc+1] LSHIFT#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "AAcc", + "tlb": "#AA cc:uint8", + "prefix": "AA", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - x*2^(cc+1)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RSHIFT", + "doc": { + "category": "arithm_logical", + "description": "`0 <= cc <= 255`", + "gas": "18", + "fift": "[cc+1] RSHIFT#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "ABcc", + "tlb": "#AB cc:uint8", + "prefix": "AB", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - floor(x/2^(cc+1))", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LSHIFT_VAR", + "doc": { + "category": "arithm_logical", + "description": "`0 <= y <= 1023`", + "gas": "18", + "fift": "LSHIFT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "AC", + "tlb": "#AC", + "prefix": "AC", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x*2^y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RSHIFT_VAR", + "doc": { + "category": "arithm_logical", + "description": "`0 <= y <= 1023`", + "gas": "18", + "fift": "RSHIFT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "AD", + "tlb": "#AD", + "prefix": "AD", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - floor(x/2^y)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "POW2", + "doc": { + "category": "arithm_logical", + "description": "`0 <= y <= 1023`\nEquivalent to `ONE` `SWAP` `LSHIFT`.", + "gas": "18", + "fift": "POW2", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "AE", + "tlb": "#AE", + "prefix": "AE", + "operands": [] + }, + "value_flow": { + "doc_stack": "y - 2^y", + "inputs": { + "stack": [ + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "AND", + "doc": { + "category": "arithm_logical", + "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": [] + }, + "value_flow": { + "doc_stack": "x y - x&y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "OR", + "doc": { + "category": "arithm_logical", + "description": "Bitwise or of two integers.", + "gas": "18", + "fift": "OR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B1", + "tlb": "#B1", + "prefix": "B1", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x|y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "XOR", + "doc": { + "category": "arithm_logical", + "description": "Bitwise xor of two integers.", + "gas": "18", + "fift": "XOR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B2", + "tlb": "#B2", + "prefix": "B2", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x xor y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "NOT", + "doc": { + "category": "arithm_logical", + "description": "Bitwise not of an integer.", + "gas": "26", + "fift": "NOT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B3", + "tlb": "#B3", + "prefix": "B3", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - ~x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "FITS", + "doc": { + "category": "arithm_logical", + "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": [] + }, + "bytecode": { + "doc_opcode": "B4cc", + "tlb": "#B4 cc:uint8", + "prefix": "B4", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "UFITS", + "doc": { + "category": "arithm_logical", + "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": [] + }, + "bytecode": { + "doc_opcode": "B5cc", + "tlb": "#B5 cc:uint8", + "prefix": "B5", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "FITSX", + "doc": { + "category": "arithm_logical", + "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": [] + }, + "value_flow": { + "doc_stack": "x c - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "UFITSX", + "doc": { + "category": "arithm_logical", + "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": [] + }, + "value_flow": { + "doc_stack": "x c - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BITSIZE", + "doc": { + "category": "arithm_logical", + "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": [] + }, + "value_flow": { + "doc_stack": "x - c", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "UBITSIZE", + "doc": { + "category": "arithm_logical", + "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": [] + }, + "value_flow": { + "doc_stack": "x - c", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MIN", + "doc": { + "category": "arithm_logical", + "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": [] + }, + "value_flow": { + "doc_stack": "x y - x or y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MAX", + "doc": { + "category": "arithm_logical", + "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": [] + }, + "value_flow": { + "doc_stack": "x y - x or y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "MINMAX", + "doc": { + "category": "arithm_logical", + "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": [] + }, + "value_flow": { + "doc_stack": "x y - x y or y x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "r1", "value_types": ["Integer"] }, + { "type": "simple", "name": "r2", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ABS", + "doc": { + "category": "arithm_logical", + "description": "Computes the absolute value of an integer `x`.", + "gas": "26", + "fift": "ABS", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B60B", + "tlb": "#B60B", + "prefix": "B60B", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - |x|", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QADD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QADD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A0", + "tlb": "#B7A0", + "prefix": "B7A0", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x+y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QSUB", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QSUB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A1", + "tlb": "#B7A1", + "prefix": "B7A1", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x-y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QSUBR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QSUBR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A2", + "tlb": "#B7A2", + "prefix": "B7A2", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - y-x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QNEGATE", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QNEGATE", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A3", + "tlb": "#B7A3", + "prefix": "B7A3", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - -x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QINC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QINC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A4", + "tlb": "#B7A4", + "prefix": "B7A4", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - x+1", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QDEC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QDEC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A5", + "tlb": "#B7A5", + "prefix": "B7A5", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - x-1", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMUL", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QMUL", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A8", + "tlb": "#B7A8", + "prefix": "B7A8", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x*y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QADDDIVMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QADDDIVMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A900", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QADDDIVMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QADDDIVMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A901", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QADDDIVMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QADDDIVMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A902", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QDIV", + "doc": { + "category": "arithm_quiet", + "description": "Division returns `NaN` if `y=0`.", + "gas": "34", + "fift": "QDIV", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A904", + "tlb": "#B7A904", + "prefix": "B7A904", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QDIVR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QDIVR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A905", + "tlb": "#B7A905", + "prefix": "B7A905", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q’", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QDIVC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QDIVC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A906", + "tlb": "#B7A906", + "prefix": "B7A906", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q''", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A908", + "tlb": "#B7A908", + "prefix": "B7A908", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - r", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A909", + "tlb": "#B7A909", + "prefix": "B7A909", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - r", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A90A", + "tlb": "#B7A90A", + "prefix": "B7A90A", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - r", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QDIVMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QDIVMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A90C", + "tlb": "#B7A90C", + "prefix": "B7A90C", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q r", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QDIVMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QDIVMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A90D", + "tlb": "#B7A90D", + "prefix": "B7A90D", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q' r'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QDIVMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QDIVMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A90E", + "tlb": "#B7A90E", + "prefix": "B7A90E", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - q'' r''", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QADDRSHIFTMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QADDRSHIFTMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A920", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QADDRSHIFTMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QADDRSHIFTMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A921", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QADDRSHIFTMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QADDRSHIFTMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A922", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QRSHIFTR_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QRSHIFTR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A925", + "tlb": "#B7A925", + "prefix": "B7A925", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - round(x/2^y)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QRSHIFTC_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QRSHIFTC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A926", + "tlb": "#B7A926", + "prefix": "B7A926", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - ceil(x/2^y)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMODPOW2_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMODPOW2", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A928", + "tlb": "#B7A928", + "prefix": "B7A928", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x mod 2^y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMODPOW2R_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMODPOW2R", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A929", + "tlb": "#B7A929", + "prefix": "B7A929", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x mod 2^y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMODPOW2C_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMODPOW2C", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A92A", + "tlb": "#B7A92A", + "prefix": "B7A92A", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x mod 2^y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QRSHIFTMOD_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QRSHIFTMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A92C", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QRSHIFTMODR_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QRSHIFTMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A92D", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QRSHIFTMODC_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QRSHIFTMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A92E", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QADDRSHIFTMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QADDRSHIFT#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A930tt", + "tlb": "#B7A930 tt:uint8", + "prefix": "B7A930", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QADDRSHIFTRMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QADDRSHIFTR#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A931tt", + "tlb": "#B7A931 tt:uint8", + "prefix": "B7A931", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QADDRSHIFTCMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QADDRSHIFTC#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A932tt", + "tlb": "#B7A932 tt:uint8", + "prefix": "B7A932", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QRSHIFTR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QRSHIFTR#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A935tt", + "tlb": "#B7A935 tt:uint8", + "prefix": "B7A935", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - round(x/2^(tt+1))", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QRSHIFTC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QRSHIFTC#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A936tt", + "tlb": "#B7A936 tt:uint8", + "prefix": "B7A936", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - ceil(x/2^(tt+1))", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMODPOW2", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMODPOW2#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A938tt", + "tlb": "#B7A938 tt:uint8", + "prefix": "B7A938", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - x mod 2^(tt+1)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMODPOW2R", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMODPOW2R#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A939tt", + "tlb": "#B7A939 tt:uint8", + "prefix": "B7A939", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - x mod 2^(tt+1)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMODPOW2C", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMODPOW2C#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A93Att", + "tlb": "#B7A93A tt:uint8", + "prefix": "B7A93A", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - x mod 2^(tt+1)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QRSHIFTMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QRSHIFT#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A93Ctt", + "tlb": "#A93C tt:uint8", + "prefix": "A93C", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QRSHIFTRMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QRSHIFTR#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "A93Dtt", + "tlb": "#A93D tt:uint8", + "prefix": "A93D", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QRSHIFTCMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QRSHIFTC#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A93Ett", + "tlb": "#B7A93E tt:uint8", + "prefix": "B7A93E", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULADDDIVMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULADDDIVMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A980", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULADDDIVMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULADDDIVMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A981", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULADDDIVMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULADDDIVMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A982", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULDIV", + "doc": { + "category": "arithm_quiet", + "description": "`q=floor(x*y/z)`", + "gas": "34", + "fift": "QMULDIV", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A984", + "tlb": "#B7A984", + "prefix": "B7A984", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULDIVR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULDIVR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A985", + "tlb": "#B7A985", + "prefix": "B7A985", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULDIVC", + "doc": { + "category": "arithm_quiet", + "description": "`q'=ceil(x*y/z)`", + "gas": "34", + "fift": "QMULDIVC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A986", + "tlb": "#B7A986", + "prefix": "B7A986", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A988", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A989", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A98A", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULDIVMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULDIVMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A98C", + "tlb": "#B7A98C", + "prefix": "B7A98C", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y z - q r", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULDIVMODR", + "doc": { + "category": "arithm_quiet", + "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": [] + }, + "value_flow": { + "doc_stack": "x y z - q r", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULDIVMODC", + "doc": { + "category": "arithm_quiet", + "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": [] + }, + "value_flow": { + "doc_stack": "x y z - q r", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULADDRSHIFTMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULADDRSHIFTMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9A0", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULADDRSHIFTRMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULADDRSHIFTRMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9A1", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULADDRSHIFTCMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULADDRSHIFTCMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9A2", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "q", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULRSHIFT_VAR", + "doc": { + "category": "arithm_quiet", + "description": "`0 <= z <= 256`", + "gas": "34", + "fift": "QMULRSHIFT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9A4", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULRSHIFTR_VAR", + "doc": { + "category": "arithm_quiet", + "description": "`0 <= z <= 256`", + "gas": "34", + "fift": "QMULRSHIFTR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9A5", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULRSHIFTC_VAR", + "doc": { + "category": "arithm_quiet", + "description": "`0 <= z <= 256`", + "gas": "34", + "fift": "QMULRSHIFTC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9A6", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULMODPOW2_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULMODPOW2_VAR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9A8", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULMODPOW2R_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULMODPOW2R_VAR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9A9", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULMODPOW2C_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULMODPOW2C_VAR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9AA", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULRSHIFTMOD_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULRSHIFTMOD_VAR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9AC", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULRSHIFTRMOD_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULRSHIFTRMOD_VAR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9AD", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULRSHIFTCMOD_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QMULRSHIFTCMOD_VAR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9AE", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULADDRSHIFTMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULADDRSHIFT#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9B0tt", + "tlb": "#B7A9B0 tt:uint8", + "prefix": "B7A9B0", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULADDRSHIFTRMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULADDRSHIFTR#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9B1tt", + "tlb": "#B7A9B1 tt:uint8", + "prefix": "B7A9B1", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULADDRSHIFTCMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULADDRSHIFTC#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9B2tt", + "tlb": "#B7A9B2 tt:uint8", + "prefix": "B7A9B2", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULRSHIFT", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULRSHIFT#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9B4tt", + "tlb": "#B7A9B4 tt:uint8", + "prefix": "B7A9B4", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - floor(x*y/2^(tt+1))", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULRSHIFTR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULRSHIFTR#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9B5tt", + "tlb": "#B7A9B5 tt:uint8", + "prefix": "B7A9B5", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - round(x*y/2^(tt+1))", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULRSHIFTC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULRSHIFTC#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9B6tt", + "tlb": "#B7A9B6 tt:uint8", + "prefix": "B7A9B6", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - ceil(x*y/2^(tt+1))", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULMODPOW2", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULMODPOW2#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9B8tt", + "tlb": "#B7A9B8 tt:uint8", + "prefix": "B7A9B8", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - x*y mod 2^(tt+1)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULMODPOW2R", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULMODPOW2R#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9B9tt", + "tlb": "#B7A9B9 tt:uint8", + "prefix": "B7A9B9", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - x*y mod 2^(tt+1)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULMODPOW2C", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QMULMODPOW2C#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9BAtt", + "tlb": "#B7A9BA tt:uint8", + "prefix": "B7A9BA", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - x*y mod 2^(tt+1)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULRSHIFTMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "QMULRSHIFT#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9BC", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULRSHIFTRMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "QMULRSHIFTR#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9BD", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QMULRSHIFTCMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "QMULRSHIFTC#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9BE", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTADDDIVMOD_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTADDDIVMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9C0", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTADDDIVMODR_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTADDDIVMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9C1", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTADDDIVMODC_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTADDDIVMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9C2", + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTDIV_VAR", + "doc": { + "category": "arithm_quiet", + "description": "`0 <= z <= 256`", + "gas": "34", + "fift": "QLSHIFTDIV", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9C4", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTDIVR_VAR", + "doc": { + "category": "arithm_quiet", + "description": "`0 <= z <= 256`", + "gas": "34", + "fift": "QLSHIFTDIVR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9C5", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTDIVC_VAR", + "doc": { + "category": "arithm_quiet", + "description": "`0 <= z <= 256`", + "gas": "34", + "fift": "QLSHIFTDIVC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9C6", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTMOD_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9C8", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTMODR_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9C9", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTMODC_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9CA", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTDIVMOD_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTDIVMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9CC", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTDIVMODR_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTDIVMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9CD", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTDIVMODC_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "QLSHIFTDIVMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9CE", + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTADDDIVMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#ADDDIVMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9D0tt", + "tlb": "#B7A9D0 tt:uint8", + "prefix": "B7A9D0", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTADDDIVMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#ADDDIVMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9D1tt", + "tlb": "#B7A9D1 tt:uint8", + "prefix": "B7A9D1", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTADDDIVMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#ADDDIVMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9D2tt", + "tlb": "#B7A9D2 tt:uint8", + "prefix": "B7A9D2", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "w", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTDIV", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#DIV", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9D4tt", + "tlb": "#B7A9D4 tt:uint8", + "prefix": "B7A9D4", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - floor(2^(tt+1)*x/y)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTDIVR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#DIVR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9D5tt", + "tlb": "#B7A9D5 tt:uint8", + "prefix": "B7A9D5", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - round(2^(tt+1)*x/y)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTDIVC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "34", + "fift": "[tt+1] QLSHIFT#DIVC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9D6tt", + "tlb": "#B7A9D6 tt:uint8", + "prefix": "B7A9D6", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - ceil(2^(tt+1)*x/y)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#MOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9D8tt", + "tlb": "#B7A9D8 tt:uint8", + "prefix": "B7A9D8", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - 2^(tt+1)*x mod y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] LSHIFT#MODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9D9tt", + "tlb": "#B7A9D9 tt:uint8", + "prefix": "B7A9D9", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - 2^(tt+1)*x mod y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#MODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9DAtt", + "tlb": "#B7A9DA tt:uint8", + "prefix": "B7A9DA", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x y - 2^(tt+1)*x mod y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTDIVMOD", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#DIVMOD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9DCtt", + "tlb": "#B7A9DC tt:uint8", + "prefix": "B7A9DC", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTDIVMODR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#DIVMODR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9DDtt", + "tlb": "#B7A9DD tt:uint8", + "prefix": "B7A9DD", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFTDIVMODC", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "42", + "fift": "[tt+1] QLSHIFT#DIVMODC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7A9DEtt", + "tlb": "#B7A9DE tt:uint8", + "prefix": "B7A9DE", + "operands": [ + { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "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"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFT", + "doc": { + "category": "arithm_quiet", + "description": "`0 <= cc <= 255`", + "gas": "34", + "fift": "[cc+1] QLSHIFT#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7AAcc", + "tlb": "#B7AA cc:uint8", + "prefix": "B7AA", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - x*2^(cc+1)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QRSHIFT", + "doc": { + "category": "arithm_quiet", + "description": "`0 <= cc <= 255`", + "gas": "26", + "fift": "[cc+1] RSHIFT#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7ABcc", + "tlb": "#B7AB cc:uint8", + "prefix": "B7AB", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - floor(x/2^(cc+1))", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QLSHIFT_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QLSHIFT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7AC", + "tlb": "#B7AC", + "prefix": "B7AC", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x*2^y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QRSHIFT_VAR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QRSHIFT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7AD", + "tlb": "#B7AD", + "prefix": "B7AD", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - floor(x/2^y)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QPOW2", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QPOW2", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7AE", + "tlb": "#B7AE", + "prefix": "B7AE", + "operands": [] + }, + "value_flow": { + "doc_stack": "y - 2^y", + "inputs": { + "stack": [ + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QAND", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QAND", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7B0", + "tlb": "#B7B0", + "prefix": "B7B0", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x&y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QOR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QOR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7B1", + "tlb": "#B7B1", + "prefix": "B7B1", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x|y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QXOR", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QXOR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7B2", + "tlb": "#B7B2", + "prefix": "B7B2", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x xor y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QNOT", + "doc": { + "category": "arithm_quiet", + "description": "", + "gas": "26", + "fift": "QNOT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "B7B3", + "tlb": "#B7B3", + "prefix": "B7B3", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - ~x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QFITS", + "doc": { + "category": "arithm_quiet", + "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": [] + }, + "bytecode": { + "doc_opcode": "B7B4cc", + "tlb": "#B7B4 cc:uint8", + "prefix": "B7B4", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QUFITS", + "doc": { + "category": "arithm_quiet", + "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": [] + }, + "bytecode": { + "doc_opcode": "B7B5cc", + "tlb": "#B7B5 cc:uint8", + "prefix": "B7B5", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QFITSX", + "doc": { + "category": "arithm_quiet", + "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": [] + }, + "value_flow": { + "doc_stack": "x c - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "QUFITSX", + "doc": { + "category": "arithm_quiet", + "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": [] + }, + "value_flow": { + "doc_stack": "x c - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SGN", + "doc": { + "category": "compare_int", + "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": [] + }, + "value_flow": { + "doc_stack": "x - sgn(x)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LESS", + "doc": { + "category": "compare_int", + "description": "Returns `-1` if `xy", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "NEQ", + "doc": { + "category": "compare_int", + "description": "Equivalent to `EQUAL` `NOT`.", + "gas": "18", + "fift": "NEQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "BD", + "tlb": "#BD", + "prefix": "BD", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x!=y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "GEQ", + "doc": { + "category": "compare_int", + "description": "Equivalent to `LESS` `NOT`.", + "gas": "18", + "fift": "GEQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "BE", + "tlb": "#BE", + "prefix": "BE", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x>=y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "CMP", + "doc": { + "category": "compare_int", + "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": [] + }, + "value_flow": { + "doc_stack": "x y - sgn(x-y)", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "EQINT", + "doc": { + "category": "compare_int", + "description": "Returns `-1` if `x=yy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", + "gas": "26", + "fift": "[yy] EQINT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "C0yy", + "tlb": "#C0 yy:int8", + "prefix": "C0", + "operands": [ + { "name": "y", "loader": "int", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - x=yy", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LESSINT", + "doc": { + "category": "compare_int", + "description": "Returns `-1` if `xyy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", + "gas": "26", + "fift": "[yy] GTINT\n[yy+1] GEQINT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "C2yy", + "tlb": "#C2 yy:int8", + "prefix": "C2", + "operands": [ + { "name": "y", "loader": "int", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - x>yy", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "NEQINT", + "doc": { + "category": "compare_int", + "description": "Returns `-1` if `x!=yy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", + "gas": "26", + "fift": "[yy] NEQINT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "C3yy", + "tlb": "#C3 yy:int8", + "prefix": "C3", + "operands": [ + { "name": "y", "loader": "int", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x - x!=yy", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ISNAN", + "doc": { + "category": "compare_int", + "description": "Checks whether `x` is a `NaN`.", + "gas": "18", + "fift": "ISNAN", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "C4", + "tlb": "#C4", + "prefix": "C4", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - x=NaN", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "CHKNAN", + "doc": { + "category": "compare_int", + "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": [] + }, + "value_flow": { + "doc_stack": "x - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SEMPTY", + "doc": { + "category": "compare_other", + "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": [] + }, + "value_flow": { + "doc_stack": "s - ?", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDEMPTY", + "doc": { + "category": "compare_other", + "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": [] + }, + "value_flow": { + "doc_stack": "s - ?", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SREMPTY", + "doc": { + "category": "compare_other", + "description": "Checks whether _Slice_ `s` has no references.", + "gas": "26", + "fift": "SREMPTY", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "C702", + "tlb": "#C702", + "prefix": "C702", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - ?", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDFIRST", + "doc": { + "category": "compare_other", + "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": [] + }, + "value_flow": { + "doc_stack": "s - ?", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDLEXCMP", + "doc": { + "category": "compare_other", + "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": [] + }, + "value_flow": { + "doc_stack": "s s' - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDEQ", + "doc": { + "category": "compare_other", + "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": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDPFX", + "doc": { + "category": "compare_other", + "description": "Checks whether `s` is a prefix of `s'`.", + "gas": "26", + "fift": "SDPFX", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "C708", + "tlb": "#C708", + "prefix": "C708", + "operands": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDPFXREV", + "doc": { + "category": "compare_other", + "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": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDPPFX", + "doc": { + "category": "compare_other", + "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": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDPPFXREV", + "doc": { + "category": "compare_other", + "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": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDSFX", + "doc": { + "category": "compare_other", + "description": "Checks whether `s` is a suffix of `s'`.", + "gas": "26", + "fift": "SDSFX", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "C70C", + "tlb": "#C70C", + "prefix": "C70C", + "operands": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDSFXREV", + "doc": { + "category": "compare_other", + "description": "Checks whether `s'` is a suffix of `s`.", + "gas": "26", + "fift": "SDSFXREV", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "C70D", + "tlb": "#C70D", + "prefix": "C70D", + "operands": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDPSFX", + "doc": { + "category": "compare_other", + "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": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDPSFXREV", + "doc": { + "category": "compare_other", + "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": [] + }, + "value_flow": { + "doc_stack": "s s' - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDCNTLEAD0", + "doc": { + "category": "compare_other", + "description": "Returns the number of leading zeroes in `s`.", + "gas": "26", + "fift": "SDCNTLEAD0", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "C710", + "tlb": "#C710", + "prefix": "C710", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - n", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDCNTLEAD1", + "doc": { + "category": "compare_other", + "description": "Returns the number of leading ones in `s`.", + "gas": "26", + "fift": "SDCNTLEAD1", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "C711", + "tlb": "#C711", + "prefix": "C711", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - n", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDCNTTRAIL0", + "doc": { + "category": "compare_other", + "description": "Returns the number of trailing zeroes in `s`.", + "gas": "26", + "fift": "SDCNTTRAIL0", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "C712", + "tlb": "#C712", + "prefix": "C712", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - n", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDCNTTRAIL1", + "doc": { + "category": "compare_other", + "description": "Returns the number of trailing ones in `s`.", + "gas": "26", + "fift": "SDCNTTRAIL1", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "C713", + "tlb": "#C713", + "prefix": "C713", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - n", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "NEWC", + "doc": { + "category": "cell_build", + "description": "Creates a new empty _Builder_.", + "gas": "18", + "fift": "NEWC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "C8", + "tlb": "#C8", + "prefix": "C8", + "operands": [] + }, + "value_flow": { + "doc_stack": "- b", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ENDC", + "doc": { + "category": "cell_build", + "description": "Converts a _Builder_ into an ordinary _Cell_.", + "gas": "518", + "fift": "ENDC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "C9", + "tlb": "#C9", + "prefix": "C9", + "operands": [] + }, + "value_flow": { + "doc_stack": "b - c", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STI", + "doc": { + "category": "cell_build", + "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": [] + }, + "bytecode": { + "doc_opcode": "CAcc", + "tlb": "#CA cc:uint8", + "prefix": "CA", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x b - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STU", + "doc": { + "category": "cell_build", + "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": [] + }, + "bytecode": { + "doc_opcode": "CBcc", + "tlb": "#CB cc:uint8", + "prefix": "CB", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x b - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STREF", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "c b - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STBREFR", + "doc": { + "category": "cell_build", + "description": "Equivalent to `ENDC` `SWAP` `STREF`.", + "gas": "518", + "fift": "STBREFR\nENDCST", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CD", + "tlb": "#CD", + "prefix": "CD", + "operands": [] + }, + "value_flow": { + "doc_stack": "b b'' - b", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "child", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STSLICE", + "doc": { + "category": "cell_build", + "description": "Stores _Slice_ `s` into _Builder_ `b`.", + "gas": "18", + "fift": "STSLICE", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CE", + "tlb": "#CE", + "prefix": "CE", + "operands": [] + }, + "value_flow": { + "doc_stack": "s b - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STIX", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "x b l - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STUX", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "x b l - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STIXR", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b x l - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STUXR", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b x l - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STIXQ", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "x b l - x b f or b' 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + { + "value": 1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STUXQ", + "doc": { + "category": "cell_build", + "description": "A quiet version of `STUX`.", + "gas": "26", + "fift": "STUXQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF05", + "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"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + { + "value": 1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STIXRQ", + "doc": { + "category": "cell_build", + "description": "A quiet version of `STIXR`.", + "gas": "26", + "fift": "STIXRQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF06", + "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"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + { + "value": 1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STUXRQ", + "doc": { + "category": "cell_build", + "description": "A quiet version of `STUXR`.", + "gas": "26", + "fift": "STUXRQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF07", + "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"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + { + "value": 1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STI_ALT", + "doc": { + "category": "cell_build", + "description": "A longer version of `[cc+1] STI`.", + "gas": "34", + "fift": "[cc+1] STI_l", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF08cc", + "tlb": "#CF08 cc:uint8", + "prefix": "CF08", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x b - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STU_ALT", + "doc": { + "category": "cell_build", + "description": "A longer version of `[cc+1] STU`.", + "gas": "34", + "fift": "[cc+1] STU_l", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF09cc", + "tlb": "#CF09 cc:uint8", + "prefix": "CF09", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x b - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STIR", + "doc": { + "category": "cell_build", + "description": "Equivalent to `SWAP` `[cc+1] STI`.", + "gas": "34", + "fift": "[cc+1] STIR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF0Acc", + "tlb": "#CF0A cc:uint8", + "prefix": "CF0A", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "b x - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STUR", + "doc": { + "category": "cell_build", + "description": "Equivalent to `SWAP` `[cc+1] STU`.", + "gas": "34", + "fift": "[cc+1] STUR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF0Bcc", + "tlb": "#CF0B cc:uint8", + "prefix": "CF0B", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "b x - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STIQ", + "doc": { + "category": "cell_build", + "description": "A quiet version of `STI`.", + "gas": "34", + "fift": "[cc+1] STIQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF0Ccc", + "tlb": "#CF0C cc:uint8", + "prefix": "CF0C", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x b - x b f or b' 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + { + "value": 1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STUQ", + "doc": { + "category": "cell_build", + "description": "A quiet version of `STU`.", + "gas": "34", + "fift": "[cc+1] STUQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF0Dcc", + "tlb": "#CF0D cc:uint8", + "prefix": "CF0D", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "x b - x b f or b' 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + }, + { + "value": 1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STIRQ", + "doc": { + "category": "cell_build", + "description": "A quiet version of `STIR`.", + "gas": "34", + "fift": "[cc+1] STIRQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF0Ecc", + "tlb": "#CF0E cc:uint8", + "prefix": "CF0E", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "b x - b x f or b' 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + { + "value": 1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STURQ", + "doc": { + "category": "cell_build", + "description": "A quiet version of `STUR`.", + "gas": "34", + "fift": "[cc+1] STURQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF0Fcc", + "tlb": "#CF0F cc:uint8", + "prefix": "CF0F", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "b x - b x f or b' 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + }, + { + "value": 1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STREF_ALT", + "doc": { + "category": "cell_build", + "description": "A longer version of `STREF`.", + "gas": "26", + "fift": "STREF_l", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF10", + "tlb": "#CF10", + "prefix": "CF10", + "operands": [] + }, + "value_flow": { + "doc_stack": "c b - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STBREF", + "doc": { + "category": "cell_build", + "description": "Equivalent to `SWAP` `STBREFR`.", + "gas": "526", + "fift": "STBREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF11", + "tlb": "#CF11", + "prefix": "CF11", + "operands": [] + }, + "value_flow": { + "doc_stack": "b' b - b''", + "inputs": { + "stack": [ + { "type": "simple", "name": "child", "value_types": ["Builder"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STSLICE_ALT", + "doc": { + "category": "cell_build", + "description": "A longer version of `STSLICE`.", + "gas": "26", + "fift": "STSLICE_l", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF12", + "tlb": "#CF12", + "prefix": "CF12", + "operands": [] + }, + "value_flow": { + "doc_stack": "s b - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STB", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b' b - b''", + "inputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b3", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STREFR", + "doc": { + "category": "cell_build", + "description": "Equivalent to `SWAP` `STREF`.", + "gas": "26", + "fift": "STREFR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF14", + "tlb": "#CF14", + "prefix": "CF14", + "operands": [] + }, + "value_flow": { + "doc_stack": "b c - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "c", "value_types": ["Cell"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STBREFR_ALT", + "doc": { + "category": "cell_build", + "description": "A longer encoding of `STBREFR`.", + "gas": "526", + "fift": "STBREFR_l", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF15", + "tlb": "#CF15", + "prefix": "CF15", + "operands": [] + }, + "value_flow": { + "doc_stack": "b b' - b''", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b3", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STSLICER", + "doc": { + "category": "cell_build", + "description": "Equivalent to `SWAP` `STSLICE`.", + "gas": "26", + "fift": "STSLICER", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF16", + "tlb": "#CF16", + "prefix": "CF16", + "operands": [] + }, + "value_flow": { + "doc_stack": "b s - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STBR", + "doc": { + "category": "cell_build", + "description": "Concatenates two builders.\nEquivalent to `SWAP` `STB`.", + "gas": "26", + "fift": "STBR\nBCONCAT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF17", + "tlb": "#CF17", + "prefix": "CF17", + "operands": [] + }, + "value_flow": { + "doc_stack": "b b' - b''", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b3", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STREFQ", + "doc": { + "category": "cell_build", + "description": "Quiet version of `STREF`.", + "gas": "26", + "fift": "STREFQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF18", + "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"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STBREFQ", + "doc": { + "category": "cell_build", + "description": "Quiet version of `STBREF`.", + "gas": "526", + "fift": "STBREFQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF19", + "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"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b3", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STSLICEQ", + "doc": { + "category": "cell_build", + "description": "Quiet version of `STSLICE`.", + "gas": "26", + "fift": "STSLICEQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF1A", + "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"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STBQ", + "doc": { + "category": "cell_build", + "description": "Quiet version of `STB`.", + "gas": "26", + "fift": "STBQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF1B", + "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"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b3", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STREFRQ", + "doc": { + "category": "cell_build", + "description": "Quiet version of `STREFR`.", + "gas": "26", + "fift": "STREFRQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF1C", + "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"] }, + { "type": "simple", "name": "c", "value_types": ["Cell"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { "type": "simple", "name": "c", "value_types": ["Cell"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STBREFRQ", + "doc": { + "category": "cell_build", + "description": "Quiet version of `STBREFR`.", + "gas": "526", + "fift": "STBREFRQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF1D", + "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"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b3", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STSLICERQ", + "doc": { + "category": "cell_build", + "description": "Quiet version of `STSLICER`.", + "gas": "26", + "fift": "STSLICERQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF1E", + "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"] }, + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b3", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STBRQ", + "doc": { + "category": "cell_build", + "description": "Quiet version of `STBR`.", + "gas": "26", + "fift": "STBRQ\nBCONCATQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF1F", + "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"] }, + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "b3", + "value_types": ["Builder"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "b", + "value_types": ["Builder"] + }, + { + "type": "simple", + "name": "b2", + "value_types": ["Builder"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STREFCONST", + "doc": { + "category": "cell_build", + "description": "Equivalent to `PUSHREF` `STREFR`.", + "gas": "26", + "fift": "[ref] STREFCONST", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF20", + "tlb": "#CF20 c:^Cell", + "prefix": "CF20", + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + }, + "value_flow": { + "doc_stack": "b - b’", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STREF2CONST", + "doc": { + "category": "cell_build", + "description": "Equivalent to `STREFCONST` `STREFCONST`.", + "gas": "26", + "fift": "[ref] [ref] STREF2CONST", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF21", + "tlb": "#CF21 c1:^Cell c2:^Cell", + "prefix": "CF21", + "operands": [] + }, + "value_flow": { + "doc_stack": "b - b’", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ENDXC", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b x - c", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STILE4", + "doc": { + "category": "cell_build", + "description": "Stores a little-endian signed 32-bit integer.", + "gas": "26", + "fift": "STILE4", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF28", + "tlb": "#CF28", + "prefix": "CF28", + "operands": [] + }, + "value_flow": { + "doc_stack": "x b - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STULE4", + "doc": { + "category": "cell_build", + "description": "Stores a little-endian unsigned 32-bit integer.", + "gas": "26", + "fift": "STULE4", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF29", + "tlb": "#CF29", + "prefix": "CF29", + "operands": [] + }, + "value_flow": { + "doc_stack": "x b - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STILE8", + "doc": { + "category": "cell_build", + "description": "Stores a little-endian signed 64-bit integer.", + "gas": "26", + "fift": "STILE8", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF2A", + "tlb": "#CF2A", + "prefix": "CF2A", + "operands": [] + }, + "value_flow": { + "doc_stack": "x b - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STULE8", + "doc": { + "category": "cell_build", + "description": "Stores a little-endian unsigned 64-bit integer.", + "gas": "26", + "fift": "STULE8", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF2B", + "tlb": "#CF2B", + "prefix": "CF2B", + "operands": [] + }, + "value_flow": { + "doc_stack": "x b - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BDEPTH", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BBITS", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BREFS", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b - y", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BBITREFS", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b - x y", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BREMBITS", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b - x'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x2", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BREMREFS", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b - y'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "y2", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BREMBITREFS", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b - x' y'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x2", "value_types": ["Integer"] }, + { "type": "simple", "name": "y2", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BCHKBITS", + "doc": { + "category": "cell_build", + "description": "Checks whether `cc+1` bits can be stored into `b`, where `0 <= cc <= 255`.", + "gas": "34/84", + "fift": "[cc+1] BCHKBITS#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF38cc", + "tlb": "#CF38 cc:uint8", + "prefix": "CF38", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "b -", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BCHKBITS_VAR", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b x - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BCHKREFS", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b y - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BCHKBITREFS", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b x y - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BCHKBITSQ", + "doc": { + "category": "cell_build", + "description": "Checks whether `cc+1` bits can be stored into `b`, where `0 <= cc <= 255`.", + "gas": "34", + "fift": "[cc+1] BCHKBITSQ#", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF3Ccc", + "tlb": "#CF3C cc:uint8", + "prefix": "CF3C", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "b - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BCHKBITSQ_VAR", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b x - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BCHKREFSQ", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b y - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BCHKBITREFSQ", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b x y - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STZEROES", + "doc": { + "category": "cell_build", + "description": "Stores `n` binary zeroes into _Builder_ `b`.", + "gas": "26", + "fift": "STZEROES", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF40", + "tlb": "#CF40", + "prefix": "CF40", + "operands": [] + }, + "value_flow": { + "doc_stack": "b n - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STONES", + "doc": { + "category": "cell_build", + "description": "Stores `n` binary ones into _Builder_ `b`.", + "gas": "26", + "fift": "STONES", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "CF41", + "tlb": "#CF41", + "prefix": "CF41", + "operands": [] + }, + "value_flow": { + "doc_stack": "b n - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STSAME", + "doc": { + "category": "cell_build", + "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": [] + }, + "value_flow": { + "doc_stack": "b n x - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STSLICECONST", + "doc": { + "category": "cell_build", + "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": [] + }, + "bytecode": { + "doc_opcode": "CFC0_xysss", + "tlb": "#CFC0_ x:(## 2) y:(## 3) c:(x * ^Cell) sss:((8 * y + 2) * Bit)", + "prefix": "CFC0_", + "operands": [ + { + "name": "s", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 3, + "bits_padding": 2, + "refs_length_var_size": 2, + "completion_tag": true, + "refs_add": 0 + } + } + ] + }, + "value_flow": { + "doc_stack": "b - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "CTOS", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "c - s", + "inputs": { + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + }, + "outputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ENDS", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s - ", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDI", + "doc": { + "category": "cell_parse", + "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": [] + }, + "bytecode": { + "doc_opcode": "D2cc", + "tlb": "#D2 cc:uint8", + "prefix": "D2", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDU", + "doc": { + "category": "cell_parse", + "description": "Loads an unsigned `cc+1`-bit integer `x` from _Slice_ `s`.", + "gas": "26", + "fift": "[cc+1] LDU", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D3cc", + "tlb": "#D3 cc:uint8", + "prefix": "D3", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDREF", + "doc": { + "category": "cell_parse", + "description": "Loads a cell reference `c` from `s`.", + "gas": "18", + "fift": "LDREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D4", + "tlb": "#D4", + "prefix": "D4", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - c s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDREFRTOS", + "doc": { + "category": "cell_parse", + "description": "Equivalent to `LDREF` `SWAP` `CTOS`.", + "gas": "118/43", + "fift": "LDREFRTOS", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D5", + "tlb": "#D5", + "prefix": "D5", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - s' s''", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] }, + { "type": "simple", "name": "s3", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDSLICE", + "doc": { + "category": "cell_parse", + "description": "Cuts the next `cc+1` bits of `s` into a separate _Slice_ `s''`.", + "gas": "26", + "fift": "[cc+1] LDSLICE", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D6cc", + "tlb": "#D6 cc:uint8", + "prefix": "D6", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "s - s'' s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s3", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDIX", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l - x s'", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDUX", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l - x s'", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDIX", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDUX", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDIXQ", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l - x s' -1 or s 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDUXQ", + "doc": { + "category": "cell_parse", + "description": "Quiet version of `LDUX`.", + "gas": "26", + "fift": "LDUXQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D705", + "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"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDIXQ", + "doc": { + "category": "cell_parse", + "description": "Quiet version of `PLDIX`.", + "gas": "26", + "fift": "PLDIXQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D706", + "tlb": "#D706", + "prefix": "D706", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - x -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDUXQ", + "doc": { + "category": "cell_parse", + "description": "Quiet version of `PLDUX`.", + "gas": "26", + "fift": "PLDUXQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D707", + "tlb": "#D707", + "prefix": "D707", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - x -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDI_ALT", + "doc": { + "category": "cell_parse", + "description": "A longer encoding for `LDI`.", + "gas": "34", + "fift": "[cc+1] LDI_l", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D708cc", + "tlb": "#D708 cc:uint8", + "prefix": "D708", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDU_ALT", + "doc": { + "category": "cell_parse", + "description": "A longer encoding for `LDU`.", + "gas": "34", + "fift": "[cc+1] LDU_l", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D709cc", + "tlb": "#D709 cc:uint8", + "prefix": "D709", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDI", + "doc": { + "category": "cell_parse", + "description": "Preloads a signed `cc+1`-bit integer from _Slice_ `s`.", + "gas": "34", + "fift": "[cc+1] PLDI", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D70Acc", + "tlb": "#D70A cc:uint8", + "prefix": "D70A", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDU", + "doc": { + "category": "cell_parse", + "description": "Preloads an unsigned `cc+1`-bit integer from `s`.", + "gas": "34", + "fift": "[cc+1] PLDU", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D70Bcc", + "tlb": "#D70B cc:uint8", + "prefix": "D70B", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDIQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `LDI`.", + "gas": "34", + "fift": "[cc+1] LDIQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D70Ccc", + "tlb": "#D70C cc:uint8", + "prefix": "D70C", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "s - x s' -1 or s 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDUQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `LDU`.", + "gas": "34", + "fift": "[cc+1] LDUQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D70Dcc", + "tlb": "#D70D cc:uint8", + "prefix": "D70D", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "s - x s' -1 or s 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDIQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `PLDI`.", + "gas": "34", + "fift": "[cc+1] PLDIQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D70Ecc", + "tlb": "#D70E cc:uint8", + "prefix": "D70E", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "s - x -1 or 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDUQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `PLDU`.", + "gas": "34", + "fift": "[cc+1] PLDUQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D70Fcc", + "tlb": "#D70F cc:uint8", + "prefix": "D70F", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "s - x -1 or 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDUZ", + "doc": { + "category": "cell_parse", + "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": [] + }, + "bytecode": { + "doc_opcode": "D714_c", + "tlb": "#D714_ c:uint3", + "prefix": "D714_", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 3 } } + ] + }, + "value_flow": { + "doc_stack": "s - s x", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDSLICEX", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l - s'' s'", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s3", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDSLICEX", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l - s''", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s3", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDSLICEXQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `LDSLICEX`.", + "gas": "26", + "fift": "LDSLICEXQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D71A", + "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"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDSLICEXQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `LDSLICEXQ`.", + "gas": "26", + "fift": "PLDSLICEXQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D71B", + "tlb": "#D71B", + "prefix": "D71B", + "operands": [] + }, + "value_flow": { + "doc_stack": "s l - s' -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDSLICE_ALT", + "doc": { + "category": "cell_parse", + "description": "A longer encoding for `LDSLICE`.", + "gas": "34", + "fift": "[cc+1] LDSLICE_l", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D71Ccc", + "tlb": "#D71C cc:uint8", + "prefix": "D71C", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "s - s'' s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s3", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDSLICE", + "doc": { + "category": "cell_parse", + "description": "Returns the first `0 < cc+1 <= 256` bits of `s` as `s''`.", + "gas": "34", + "fift": "[cc+1] PLDSLICE", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D71Dcc", + "tlb": "#D71D cc:uint8", + "prefix": "D71D", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "s - s''", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s3", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDSLICEQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `LDSLICE`.", + "gas": "34", + "fift": "[cc+1] LDSLICEQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D71Ecc", + "tlb": "#D71E cc:uint8", + "prefix": "D71E", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "s - s'' s' -1 or s 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "s3", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDSLICEQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `PLDSLICE`.", + "gas": "34", + "fift": "[cc+1] PLDSLICEQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D71Fcc", + "tlb": "#D71F cc:uint8", + "prefix": "D71F", + "operands": [ + { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "s - s'' -1 or 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "s3", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDCUTFIRST", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l - s'", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDSKIPFIRST", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l - s'", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDCUTLAST", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l - s'", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDSKIPLAST", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l - s'", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDSUBSTR", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l l' - s'", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "l2", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDBEGINSX", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s s' - s''", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s3", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDBEGINSXQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `SDBEGINSX`.", + "gas": "26", + "fift": "SDBEGINSXQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D727", + "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"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "s3", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDBEGINS", + "doc": { + "category": "cell_parse", + "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": [] + }, + "bytecode": { + "doc_opcode": "D72A_xsss", + "tlb": "#D72A_ x:(## 7) sss:((8 * x + 3) * Bit)", + "prefix": "D72A_", + "operands": [ + { + "name": "s", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 7, + "bits_padding": 3, + "completion_tag": true + } + } + ] + }, + "value_flow": { + "doc_stack": "s - s''", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s3", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDBEGINSQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `SDBEGINS`.", + "gas": "31", + "fift": "[slice] SDBEGINSQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D72E_xsss", + "tlb": "#D72E_ x:(## 7) sss:((8 * x + 3) * Bit)", + "prefix": "D72E_", + "operands": [ + { + "name": "s", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 7, + "bits_padding": 3, + "completion_tag": true + } + } + ] + }, + "value_flow": { + "doc_stack": "s - s'' -1 or s 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "s3", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SCUTFIRST", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l r - s'", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SSKIPFIRST", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l r - s'", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SCUTLAST", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l r - s'", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SSKIPLAST", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l r - s'", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SUBSLICE", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l r l' r' - s'", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] }, + { "type": "simple", "name": "l2", "value_types": ["Integer"] }, + { "type": "simple", "name": "r2", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SPLIT", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l r - s' s''", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] }, + { "type": "simple", "name": "s3", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SPLITQ", + "doc": { + "category": "cell_parse", + "description": "A quiet version of `SPLIT`.", + "gas": "26", + "fift": "SPLITQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D737", + "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"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "s3", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "XCTOS", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "c - s ?", + "inputs": { + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "flag", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "XLOAD", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "c - c'", + "inputs": { + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + }, + "outputs": { + "stack": [{ "type": "simple", "name": "c2", "value_types": ["Cell"] }] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "XLOADQ", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "c - c' -1 or c 0", + "inputs": { + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "c2", "value_types": ["Cell"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SCHKBITS", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SCHKREFS", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s r - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SCHKBITREFS", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l r - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SCHKBITSQ", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SCHKREFSQ", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s r - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SCHKBITREFSQ", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s l r - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDREFVAR", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s n - c", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SBITS", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s - l", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "l", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SREFS", + "doc": { + "category": "cell_parse", + "description": "Returns the number of references in _Slice_ `s`.", + "gas": "26", + "fift": "SREFS", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D74A", + "tlb": "#D74A", + "prefix": "D74A", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - r", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SBITREFS", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s - l r", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDREFIDX", + "doc": { + "category": "cell_parse", + "description": "Returns the `n`-th cell reference of _Slice_ `s`, where `0 <= n <= 3`.", + "gas": "26", + "fift": "[n] PLDREFIDX", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D74E_n", + "tlb": "#D74E_ n:uint2", + "prefix": "D74E_", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 2 } } + ] + }, + "value_flow": { + "doc_stack": "s - c", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDILE4", + "doc": { + "category": "cell_parse", + "description": "Loads a little-endian signed 32-bit integer.", + "gas": "26", + "fift": "LDILE4", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D750", + "tlb": "#D750", + "prefix": "D750", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDULE4", + "doc": { + "category": "cell_parse", + "description": "Loads a little-endian unsigned 32-bit integer.", + "gas": "26", + "fift": "LDULE4", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D751", + "tlb": "#D751", + "prefix": "D751", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDILE8", + "doc": { + "category": "cell_parse", + "description": "Loads a little-endian signed 64-bit integer.", + "gas": "26", + "fift": "LDILE8", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D752", + "tlb": "#D752", + "prefix": "D752", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDULE8", + "doc": { + "category": "cell_parse", + "description": "Loads a little-endian unsigned 64-bit integer.", + "gas": "26", + "fift": "LDULE8", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D753", + "tlb": "#D753", + "prefix": "D753", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDILE4", + "doc": { + "category": "cell_parse", + "description": "Preloads a little-endian signed 32-bit integer.", + "gas": "26", + "fift": "PLDILE4", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D754", + "tlb": "#D754", + "prefix": "D754", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDULE4", + "doc": { + "category": "cell_parse", + "description": "Preloads a little-endian unsigned 32-bit integer.", + "gas": "26", + "fift": "PLDULE4", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D755", + "tlb": "#D755", + "prefix": "D755", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDILE8", + "doc": { + "category": "cell_parse", + "description": "Preloads a little-endian signed 64-bit integer.", + "gas": "26", + "fift": "PLDILE8", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D756", + "tlb": "#D756", + "prefix": "D756", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDULE8", + "doc": { + "category": "cell_parse", + "description": "Preloads a little-endian unsigned 64-bit integer.", + "gas": "26", + "fift": "PLDULE8", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D757", + "tlb": "#D757", + "prefix": "D757", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDILE4Q", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s - x s' -1 or s 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDULE4Q", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s - x s' -1 or s 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDILE8Q", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s - x s' -1 or s 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDULE8Q", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s - x s' -1 or s 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDILE4Q", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s - x -1 or 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDULE4Q", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s - x -1 or 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDILE8Q", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s - x -1 or 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDULE8Q", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s - x -1 or 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDZEROES", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s - n s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDONES", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s - n s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDSAME", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s x - n s'", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDEPTH", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "CDEPTH", + "doc": { + "category": "cell_parse", + "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": [] + }, + "value_flow": { + "doc_stack": "c - x", + "inputs": { + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "EXECUTE", + "doc": { + "category": "cont_basic", + "description": "_Calls_, or _executes_, continuation `c`.", + "gas": "18", + "fift": "EXECUTE\nCALLX", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "D8", + "tlb": "#D8", + "prefix": "D8", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "JMPX", + "doc": { + "category": "cont_basic", + "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": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "c" }], + "nobranch": false + } + }, + { + "mnemonic": "CALLXARGS", + "doc": { + "category": "cont_basic", + "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": [] + }, + "bytecode": { + "doc_opcode": "DApr", + "tlb": "#DA p:uint4 r:uint4", + "prefix": "DA", + "operands": [ + { "name": "p", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "r", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [{ "type": "simple", "name": "arg" }] + }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "CALLXARGS_VAR", + "doc": { + "category": "cont_basic", + "description": "_Calls_ continuation `c` with `0 <= p <= 15` parameters, expecting an arbitrary number of return values.", + "gas": "26", + "fift": "[p] -1 CALLXARGS", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "DB0p", + "tlb": "#DB0 p:uint4", + "prefix": "DB0", + "operands": [ + { "name": "p", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [{ "type": "simple", "name": "arg" }] + }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "JMPXARGS", + "doc": { + "category": "cont_basic", + "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": [] + }, + "bytecode": { + "doc_opcode": "DB1p", + "tlb": "#DB1 p:uint4", + "prefix": "DB1", + "operands": [ + { "name": "p", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [{ "type": "simple", "name": "arg" }] + }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "c" }], + "nobranch": false + } + }, + { + "mnemonic": "RETARGS", + "doc": { + "category": "cont_basic", + "description": "_Returns_ to `c0`, with `0 <= r <= 15` return values taken from the current stack.", + "gas": "26", + "fift": "[r] RETARGS", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "DB2r", + "tlb": "#DB2 r:uint4", + "prefix": "DB2", + "operands": [ + { "name": "r", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [{ "type": "simple", "name": "arg" }] + } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "register", "index": 0 }], + "nobranch": false + } + }, + { + "mnemonic": "RET", + "doc": { + "category": "cont_basic", + "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": [] + }, + "value_flow": { + "doc_stack": "", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "register", "index": 0 }], + "nobranch": false + } + }, + { + "mnemonic": "RETALT", + "doc": { + "category": "cont_basic", + "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": [] + }, + "value_flow": { + "doc_stack": "", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "register", "index": 1 }], + "nobranch": false + } + }, + { + "mnemonic": "BRANCH", + "doc": { + "category": "cont_basic", + "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": [] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { "type": "register", "index": 0 }, + { "type": "register", "index": 1 } + ], + "nobranch": false + } + }, + { + "mnemonic": "CALLCC", + "doc": { + "category": "cont_basic", + "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": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "c" }], + "nobranch": false + } + }, + { + "mnemonic": "JMPXDATA", + "doc": { + "category": "cont_basic", + "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": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "c" }], + "nobranch": false + } + }, + { + "mnemonic": "CALLCCARGS", + "doc": { + "category": "cont_basic", + "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": [] + }, + "bytecode": { + "doc_opcode": "DB36pr", + "tlb": "#DB36 p:uint4 r:uint4", + "prefix": "DB36", + "operands": [ + { "name": "p", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "r", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [{ "type": "simple", "name": "arg" }] + }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "c" }], + "nobranch": false + } + }, + { + "mnemonic": "CALLXVARARGS", + "doc": { + "category": "cont_basic", + "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": [] + }, + "value_flow": { + "doc_stack": "c p r - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [{ "type": "simple", "name": "arg" }] + }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "p", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "RETVARARGS", + "doc": { + "category": "cont_basic", + "description": "Similar to `RETARGS`.", + "gas": "26", + "fift": "RETVARARGS", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "DB39", + "tlb": "#DB39", + "prefix": "DB39", + "operands": [] + }, + "value_flow": { + "doc_stack": "p r - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [{ "type": "simple", "name": "arg" }] + }, + { "type": "simple", "name": "p", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "JMPXVARARGS", + "doc": { + "category": "cont_basic", + "description": "Similar to `JMPXARGS`.", + "gas": "26", + "fift": "JMPXVARARGS", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "DB3A", + "tlb": "#DB3A", + "prefix": "DB3A", + "operands": [] + }, + "value_flow": { + "doc_stack": "c p r - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [{ "type": "simple", "name": "arg" }] + }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "p", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "c" }], + "nobranch": false + } + }, + { + "mnemonic": "CALLCCVARARGS", + "doc": { + "category": "cont_basic", + "description": "Similar to `CALLCCARGS`.", + "gas": "26", + "fift": "CALLCCVARARGS", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "DB3B", + "tlb": "#DB3B", + "prefix": "DB3B", + "operands": [] + }, + "value_flow": { + "doc_stack": "c p r - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "p", + "array_entry": [{ "type": "simple", "name": "arg" }] + }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "p", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "c" }], + "nobranch": false + } + }, + { + "mnemonic": "CALLREF", + "doc": { + "category": "cont_basic", + "description": "Equivalent to `PUSHREFCONT` `CALLX`.", + "gas": "126/51", + "fift": "[ref] CALLREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "DB3C", + "tlb": "#DB3C c:^Cell", + "prefix": "DB3C", + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + }, + "value_flow": { + "doc_stack": "", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "JMPREF", + "doc": { + "category": "cont_basic", + "description": "Equivalent to `PUSHREFCONT` `JMPX`.", + "gas": "126/51", + "fift": "[ref] JMPREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "DB3D", + "tlb": "#DB3D c:^Cell", + "prefix": "DB3D", + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + }, + "value_flow": { + "doc_stack": "", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "c" }], + "nobranch": false + } + }, + { + "mnemonic": "JMPREFDATA", + "doc": { + "category": "cont_basic", + "description": "Equivalent to `PUSHREFCONT` `JMPXDATA`.", + "gas": "126/51", + "fift": "[ref] JMPREFDATA", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "DB3E", + "tlb": "#DB3E c:^Cell", + "prefix": "DB3E", + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + }, + "value_flow": { + "doc_stack": "", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "c" }], + "nobranch": false + } + }, + { + "mnemonic": "RETDATA", + "doc": { + "category": "cont_basic", + "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": [] + }, + "value_flow": { + "doc_stack": "", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "register", "index": 0 }], + "nobranch": false + } + }, + { + "mnemonic": "RUNVM", + "doc": { + "category": "cont_basic", + "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": [] + }, + "bytecode": { + "doc_opcode": "DB4fff", + "tlb": "#DB4 flags:(## 12)", + "prefix": "DB4", + "operands": [] + }, + "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": {}, + "outputs": {} + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RUNVMX", + "doc": { + "category": "cont_basic", + "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": [] + }, + "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": {}, + "outputs": {} + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "IFRET", + "doc": { + "category": "cont_conditional", + "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": [] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "register", "index": 0 }], + "nobranch": true + } + }, + { + "mnemonic": "IFNOTRET", + "doc": { + "category": "cont_conditional", + "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": [] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "register", "index": 0 }], + "nobranch": true + } + }, + { + "mnemonic": "IF", + "doc": { + "category": "cont_conditional", + "description": "Performs `EXECUTE` for `c` (i.e., _executes_ `c`), but only if integer `f` is non-zero. Otherwise simply discards both values.", + "gas": "18", + "fift": "IF", + "fift_examples": [ + { + "fift": "IF:<{ code }> <{ code }>IF", + "description": "Equivalent to `<{ code }> CONT` `IF`." + } + ] + }, + "bytecode": { + "doc_opcode": "DE", + "tlb": "#DE", + "prefix": "DE", + "operands": [] + }, + "value_flow": { + "doc_stack": "f c - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": true + } + }, + { + "mnemonic": "IFNOT", + "doc": { + "category": "cont_conditional", + "description": "Executes continuation `c`, but only if integer `f` is zero. Otherwise simply discards both values.", + "gas": "18", + "fift": "IFNOT", + "fift_examples": [ + { + "fift": "IFNOT:<{ code }> <{ code }>IFNOT", + "description": "Equivalent to `<{ code }> CONT` `IFNOT`." + } + ] + }, + "bytecode": { + "doc_opcode": "DF", + "tlb": "#DF", + "prefix": "DF", + "operands": [] + }, + "value_flow": { + "doc_stack": "f c - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": true + } + }, + { + "mnemonic": "IFJMP", + "doc": { + "category": "cont_conditional", + "description": "Jumps to `c` (similarly to `JMPX`), but only if `f` is non-zero.", + "gas": "18", + "fift": "IFJMP", + "fift_examples": [ + { + "fift": "IFJMP:<{ code }>", + "description": "Equivalent to `<{ code }> CONT` `IFJMP`." + } + ] + }, + "bytecode": { + "doc_opcode": "E0", + "tlb": "#E0", + "prefix": "E0", + "operands": [] + }, + "value_flow": { + "doc_stack": "f c - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "c" }], + "nobranch": true + } + }, + { + "mnemonic": "IFNOTJMP", + "doc": { + "category": "cont_conditional", + "description": "Jumps to `c` (similarly to `JMPX`), but only if `f` is zero.", + "gas": "18", + "fift": "IFNOTJMP", + "fift_examples": [ + { + "fift": "IFNOTJMP:<{ code }>", + "description": "Equivalent to `<{ code }> CONT` `IFNOTJMP`." + } + ] + }, + "bytecode": { + "doc_opcode": "E1", + "tlb": "#E1", + "prefix": "E1", + "operands": [] + }, + "value_flow": { + "doc_stack": "f c - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "c" }], + "nobranch": true + } + }, + { + "mnemonic": "IFELSE", + "doc": { + "category": "cont_conditional", + "description": "If integer `f` is non-zero, executes `c`, otherwise executes `c'`. Equivalent to `CONDSELCHK` `EXECUTE`.", + "gas": "18", + "fift": "IFELSE", + "fift_examples": [ + { + "fift": "IF:<{ code1 }>ELSE<{ code2 }>", + "description": "Equivalent to `<{ code1 }> CONT` `<{ code2 }> CONT` `IFELSE`." + } + ] + }, + "bytecode": { + "doc_opcode": "E2", + "tlb": "#E2", + "prefix": "E2", + "operands": [] + }, + "value_flow": { + "doc_stack": "f c c' - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + }, + { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "IFREF", + "doc": { + "category": "cont_conditional", + "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": [] + }, + "bytecode": { + "doc_opcode": "E300", + "tlb": "#E300 c:^Cell", + "prefix": "E300", + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": true + } + }, + { + "mnemonic": "IFNOTREF", + "doc": { + "category": "cont_conditional", + "description": "Equivalent to `PUSHREFCONT` `IFNOT`.", + "gas": "26/126/51", + "fift": "[ref] IFNOTREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "E301", + "tlb": "#E301 c:^Cell", + "prefix": "E301", + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": true + } + }, + { + "mnemonic": "IFJMPREF", + "doc": { + "category": "cont_conditional", + "description": "Equivalent to `PUSHREFCONT` `IFJMP`.", + "gas": "26/126/51", + "fift": "[ref] IFJMPREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "E302", + "tlb": "#E302 c:^Cell", + "prefix": "E302", + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "c" }], + "nobranch": true + } + }, + { + "mnemonic": "IFNOTJMPREF", + "doc": { + "category": "cont_conditional", + "description": "Equivalent to `PUSHREFCONT` `IFNOTJMP`.", + "gas": "26/126/51", + "fift": "[ref] IFNOTJMPREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "E303", + "tlb": "#E303 c:^Cell", + "prefix": "E303", + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "c" }], + "nobranch": true + } + }, + { + "mnemonic": "CONDSEL", + "doc": { + "category": "cont_conditional", + "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": [] + }, + "value_flow": { + "doc_stack": "f x y - x or y", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y" } + ] + }, + "outputs": { "stack": [{ "type": "simple", "name": "result" }] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "CONDSELCHK", + "doc": { + "category": "cont_conditional", + "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": [] + }, + "value_flow": { + "doc_stack": "f x y - x or y", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "y" } + ] + }, + "outputs": { "stack": [{ "type": "simple", "name": "result" }] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "IFRETALT", + "doc": { + "category": "cont_conditional", + "description": "Performs `RETALT` if integer `f!=0`.", + "gas": "26", + "fift": "IFRETALT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "E308", + "tlb": "#E308", + "prefix": "E308", + "operands": [] + }, + "value_flow": { + "doc_stack": "f -", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "register", "index": 1 }], + "nobranch": true + } + }, + { + "mnemonic": "IFNOTRETALT", + "doc": { + "category": "cont_conditional", + "description": "Performs `RETALT` if integer `f=0`.", + "gas": "26", + "fift": "IFNOTRETALT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "E309", + "tlb": "#E309", + "prefix": "E309", + "operands": [] + }, + "value_flow": { + "doc_stack": "f -", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "register", "index": 1 }], + "nobranch": true + } + }, + { + "mnemonic": "IFREFELSE", + "doc": { + "category": "cont_conditional", + "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": [] + }, + "bytecode": { + "doc_opcode": "E30D", + "tlb": "#E30D c:^Cell", + "prefix": "E30D", + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + }, + "value_flow": { + "doc_stack": "f c -", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + }, + { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "IFELSEREF", + "doc": { + "category": "cont_conditional", + "description": "Equivalent to `PUSHREFCONT` `IFELSE`.", + "gas": "26/126/51", + "fift": "[ref] IFELSEREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "E30E", + "tlb": "#E30E c:^Cell", + "prefix": "E30E", + "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + }, + "value_flow": { + "doc_stack": "f c -", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] }, + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + }, + { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "IFREFELSEREF", + "doc": { + "category": "cont_conditional", + "description": "Equivalent to `PUSHREFCONT` `PUSHREFCONT` `IFELSE`.", + "gas": "126/51", + "fift": "[ref] [ref] IFREFELSEREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "E30F", + "tlb": "#E30F c1:^Cell c2:^Cell", + "prefix": "E30F", + "operands": [ + { "name": "c1", "loader": "ref", "loader_args": {} }, + { "name": "c2", "loader": "ref", "loader_args": {} } + ] + }, + "value_flow": { + "doc_stack": "f -", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c1", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + }, + { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "IFBITJMP", + "doc": { + "category": "cont_conditional", + "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": [] + }, + "bytecode": { + "doc_opcode": "E39_n", + "tlb": "#E39_ n:uint5", + "prefix": "E39_", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 5 } } + ] + }, + "value_flow": { + "doc_stack": "x c - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "c" }], + "nobranch": false + } + }, + { + "mnemonic": "IFNBITJMP", + "doc": { + "category": "cont_conditional", + "description": "Jumps to `c` if bit `0 <= n <= 31` is not set in integer `x`.", + "gas": "26", + "fift": "[n] IFNBITJMP", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "E3B_n", + "tlb": "#E3B_ n:uint5", + "prefix": "E3B_", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 5 } } + ] + }, + "value_flow": { + "doc_stack": "x c - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "c" }], + "nobranch": false + } + }, + { + "mnemonic": "IFBITJMPREF", + "doc": { + "category": "cont_conditional", + "description": "Performs a `JMPREF` if bit `0 <= n <= 31` is set in integer `x`.", + "gas": "126/51", + "fift": "[ref] [n] IFBITJMPREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "E3D_n", + "tlb": "#E3D_ n:uint5 c:^Cell", + "prefix": "E3D_", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 5 } }, + { "name": "c", "loader": "ref", "loader_args": {} } + ] + }, + "value_flow": { + "doc_stack": "x - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "c" }], + "nobranch": false + } + }, + { + "mnemonic": "IFNBITJMPREF", + "doc": { + "category": "cont_conditional", + "description": "Performs a `JMPREF` if bit `0 <= n <= 31` is not set in integer `x`.", + "gas": "126/51", + "fift": "[ref] [n] IFNBITJMPREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "E3F_n", + "tlb": "#E3F_ n:uint5 c:^Cell", + "prefix": "E3F_", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 5 } }, + { "name": "c", "loader": "ref", "loader_args": {} } + ] + }, + "value_flow": { + "doc_stack": "x - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "c" }], + "nobranch": false + } + }, + { + "mnemonic": "REPEAT", + "doc": { + "category": "cont_loops", + "description": "Executes continuation `c` `n` times, if integer `n` is non-negative. If `n>=2^31` or `n<-2^31`, generates a range check exception.\nNotice that a `RET` inside the code of `c` works as a `continue`, not as a `break`. One should use either alternative (experimental) loops or alternative `RETALT` (along with a `SETEXITALT` before the loop) to `break` out of a loop.", + "gas": "18", + "fift": "REPEAT", + "fift_examples": [ + { + "fift": "REPEAT:<{ code }> <{ code }>REPEAT", + "description": "Equivalent to `<{ code }> CONT` `REPEAT`." + } + ] + }, + "bytecode": { + "doc_opcode": "E4", + "tlb": "#E4", + "prefix": "E4", + "operands": [] + }, + "value_flow": { + "doc_stack": "n c - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "special", + "name": "repeat", + "args": { + "count": "n", + "body": { "type": "variable", "var_name": "c" }, + "after": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": true + } + }, + { + "mnemonic": "REPEATEND", + "doc": { + "category": "cont_loops", + "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": [] + }, + "value_flow": { + "doc_stack": "n - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "special", + "name": "repeat", + "args": { + "count": "n", + "body": { "type": "cc" }, + "after": { "type": "register", "index": 0 } + } + } + ], + "nobranch": true + } + }, + { + "mnemonic": "UNTIL", + "doc": { + "category": "cont_loops", + "description": "Executes continuation `c`, then pops an integer `x` from the resulting stack. If `x` is zero, performs another iteration of this loop. The actual implementation of this primitive involves an extraordinary continuation `ec_until` with its arguments set to the body of the loop (continuation `c`) and the original current continuation `cc`. This extraordinary continuation is then saved into the savelist of `c` as `c.c0` and the modified `c` is then executed. The other loop primitives are implemented similarly with the aid of suitable extraordinary continuations.", + "gas": "18", + "fift": "UNTIL", + "fift_examples": [ + { + "fift": "UNTIL:<{ code }> <{ code }>UNTIL", + "description": "Equivalent to `<{ code }> CONT` `UNTIL`." + } + ] + }, + "bytecode": { + "doc_opcode": "E6", + "tlb": "#E6", + "prefix": "E6", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "special", + "name": "until", + "args": { + "body": { "type": "variable", "var_name": "c" }, + "after": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "UNTILEND", + "doc": { + "category": "cont_loops", + "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": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "cc", + "save": { + "c0": { + "type": "special", + "name": "until", + "args": { + "body": { "type": "cc" }, + "after": { "type": "register", "index": 0 } + } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "WHILE", + "doc": { + "category": "cont_loops", + "description": "Executes `c'` and pops an integer `x` from the resulting stack. If `x` is zero, exists the loop and transfers control to the original `cc`. If `x` is non-zero, executes `c`, and then begins a new iteration.", + "gas": "18", + "fift": "WHILE", + "fift_examples": [ + { + "fift": "WHILE:<{ cond }>DO<{ code }>", + "description": "Equivalent to `<{ cond }> CONT` `<{ code }> CONT` `WHILE`." + } + ] + }, + "bytecode": { + "doc_opcode": "E8", + "tlb": "#E8", + "prefix": "E8", + "operands": [] + }, + "value_flow": { + "doc_stack": "c' c - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "c2", "value_types": ["Continuation"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "special", + "name": "while", + "args": { + "cond": { "type": "variable", "var_name": "c2" }, + "body": { "type": "variable", "var_name": "c" }, + "after": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "WHILEEND", + "doc": { + "category": "cont_loops", + "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": [] + }, + "value_flow": { + "doc_stack": "c' - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "special", + "name": "while", + "args": { + "cond": { "type": "variable", "var_name": "c2" }, + "body": { "type": "cc" }, + "after": { "type": "register", "index": 0 } + } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "AGAIN", + "doc": { + "category": "cont_loops", + "description": "Similar to `REPEAT`, but executes `c` infinitely many times. A `RET` only begins a new iteration of the infinite loop, which can be exited only by an exception, or a `RETALT` (or an explicit `JMPX`).", + "gas": "18", + "fift": "AGAIN", + "fift_examples": [ + { + "fift": "AGAIN:<{ code }> <{ code }>AGAIN", + "description": "Equivalent to `<{ code }> CONT` `AGAIN`." + } + ] + }, + "bytecode": { + "doc_opcode": "EA", + "tlb": "#EA", + "prefix": "EA", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "special", + "name": "again", + "args": { "body": { "type": "variable", "var_name": "c" } } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "AGAINEND", + "doc": { + "category": "cont_loops", + "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": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "special", + "name": "again", + "args": { "body": { "type": "cc" } } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "REPEATBRK", + "doc": { + "category": "cont_loops", + "description": "Similar to `REPEAT`, but also sets `c1` to the original `cc` after saving the old value of `c1` into the savelist of the original `cc`. In this way `RETALT` could be used to break out of the loop body.", + "gas": "26", + "fift": "REPEATBRK", + "fift_examples": [ + { + "fift": "REPEATBRK:<{ code }> <{ code }>REPEATBRK", + "description": "Equivalent to `<{ code }> CONT` `REPEATBRK`." + } + ] + }, + "bytecode": { + "doc_opcode": "E314", + "tlb": "#E314", + "prefix": "E314", + "operands": [] + }, + "value_flow": { + "doc_stack": "n c -", + "inputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "special", + "name": "repeat", + "args": { + "count": "n", + "body": { + "type": "variable", + "var_name": "c", + "save": { + "c1": { + "type": "cc", + "save": { + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 } + } + } + } + }, + "after": { + "type": "cc", + "save": { + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 } + } + } + } + } + ], + "nobranch": true + } + }, + { + "mnemonic": "REPEATENDBRK", + "doc": { + "category": "cont_loops", + "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": [] + }, + "value_flow": { + "doc_stack": "n -", + "inputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "special", + "name": "repeat", + "args": { + "count": "n", + "body": { + "type": "cc", + "save": { "c1": { "type": "register", "index": 0 } } + }, + "after": { "type": "register", "index": 0 } + } + } + ], + "nobranch": true + } + }, + { + "mnemonic": "UNTILBRK", + "doc": { + "category": "cont_loops", + "description": "Similar to `UNTIL`, but also modifies `c1` in the same way as `REPEATBRK`.", + "gas": "26", + "fift": "UNTILBRK", + "fift_examples": [ + { + "fift": "UNTILBRK:<{ code }>", + "description": "Equivalent to `<{ code }> CONT` `UNTILBRK`." + } + ] + }, + "bytecode": { + "doc_opcode": "E316", + "tlb": "#E316", + "prefix": "E316", + "operands": [] + }, + "value_flow": { + "doc_stack": "c -", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "special", + "name": "until", + "args": { + "body": { + "type": "variable", + "var_name": "c", + "save": { + "c1": { + "type": "cc", + "save": { + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 } + } + } + } + }, + "after": { + "type": "cc", + "save": { + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 } + } + } + } + }, + "c1": { + "type": "cc", + "save": { + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 } + } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "UNTILENDBRK", + "doc": { + "category": "cont_loops", + "description": "Equivalent to `SAMEALTSAVE` `UNTILEND`.", + "gas": "26", + "fift": "UNTILENDBRK\nUNTILBRK:", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "E317", + "tlb": "#E317", + "prefix": "E317", + "operands": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "cc", + "save": { + "c0": { + "type": "special", + "name": "until", + "args": { + "body": { + "type": "cc", + "save": { "c1": { "type": "register", "index": 0 } } + }, + "after": { "type": "register", "index": 0 } + } + }, + "c1": { "type": "register", "index": 0 } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "WHILEBRK", + "doc": { + "category": "cont_loops", + "description": "Similar to `WHILE`, but also modifies `c1` in the same way as `REPEATBRK`.", + "gas": "26", + "fift": "WHILEBRK", + "fift_examples": [ + { + "fift": "WHILEBRK:<{ cond }>DO<{ code }>", + "description": "Equivalent to `<{ cond }> CONT` `<{ code }> CONT` `WHILEBRK`." + } + ] + }, + "bytecode": { + "doc_opcode": "E318", + "tlb": "#E318", + "prefix": "E318", + "operands": [] + }, + "value_flow": { + "doc_stack": "c' c -", + "inputs": { + "stack": [ + { "type": "simple", "name": "c2", "value_types": ["Continuation"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "special", + "name": "while", + "args": { + "cond": { "type": "variable", "var_name": "c2" }, + "body": { "type": "variable", "var_name": "c" }, + "after": { + "type": "cc", + "save": { + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 } + } + } + } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "WHILEENDBRK", + "doc": { + "category": "cont_loops", + "description": "Equivalent to `SAMEALTSAVE` `WHILEEND`.", + "gas": "26", + "fift": "WHILEENDBRK", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "E319", + "tlb": "#E319", + "prefix": "E319", + "operands": [] + }, + "value_flow": { + "doc_stack": "c -", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "AGAINBRK", + "doc": { + "category": "cont_loops", + "description": "Similar to `AGAIN`, but also modifies `c1` in the same way as `REPEATBRK`.", + "gas": "26", + "fift": "AGAINBRK", + "fift_examples": [ + { + "fift": "AGAINBRK:<{ code }>", + "description": "Equivalent to `<{ code }> CONT` `AGAINBRK`." + } + ] + }, + "bytecode": { + "doc_opcode": "E31A", + "tlb": "#E31A", + "prefix": "E31A", + "operands": [] + }, + "value_flow": { + "doc_stack": "c -", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "AGAINENDBRK", + "doc": { + "category": "cont_loops", + "description": "Equivalent to `SAMEALTSAVE` `AGAINEND`.", + "gas": "26", + "fift": "AGAINENDBRK\nAGAINBRK:", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "E31B", + "tlb": "#E31B", + "prefix": "E31B", + "operands": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETCONTARGS_N", + "doc": { + "category": "cont_stack", + "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": [] + }, + "bytecode": { + "doc_opcode": "ECrn", + "tlb": "#EC r:uint4 n:uint4", + "prefix": "EC", + "operands": [ + { "name": "r", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "x_1 x_2...x_r c - c'", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "r", + "array_entry": [{ "type": "simple", "name": "x" }] + }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RETURNARGS", + "doc": { + "category": "cont_stack", + "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": [] + }, + "bytecode": { + "doc_opcode": "ED0p", + "tlb": "#ED0 p:uint4", + "prefix": "ED0", + "operands": [ + { "name": "p", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { "doc_stack": "-", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RETURNVARARGS", + "doc": { + "category": "cont_stack", + "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": [] + }, + "value_flow": { "doc_stack": "p -", "inputs": {}, "outputs": {} }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETCONTVARARGS", + "doc": { + "category": "cont_stack", + "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": [] + }, + "value_flow": { + "doc_stack": "x_1 x_2...x_r c r n - c'", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "r", + "array_entry": [{ "type": "simple", "name": "x" }] + }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETNUMVARARGS", + "doc": { + "category": "cont_stack", + "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": [] + }, + "value_flow": { + "doc_stack": "c n - c'", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLESS", + "doc": { + "category": "cont_create", + "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": [] + }, + "value_flow": { + "doc_stack": "s - c", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLESSVARARGS", + "doc": { + "category": "cont_create", + "description": "Equivalent to `ROT` `BLESS` `ROTREV` `SETCONTVARARGS`.", + "gas": "26+s”", + "fift": "BLESSVARARGS", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "ED1F", + "tlb": "#ED1F", + "prefix": "ED1F", + "operands": [] + }, + "value_flow": { + "doc_stack": "x_1...x_r s r n - c", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "r", + "array_entry": [{ "type": "simple", "name": "x" }] + }, + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLESSARGS", + "doc": { + "category": "cont_create", + "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": [] + }, + "bytecode": { + "doc_opcode": "EErn", + "tlb": "#EE r:uint4 n:uint4", + "prefix": "EE", + "operands": [ + { "name": "r", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "x_1...x_r s - c", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "r", + "array_entry": [{ "type": "simple", "name": "x" }] + }, + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHCTR", + "doc": { + "category": "cont_registers", + "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": [] + }, + "bytecode": { + "doc_opcode": "ED4i", + "tlb": "#ED4 i:uint4", + "prefix": "ED4", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "- x", + "inputs": { "stack": [] }, + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "POPCTR", + "doc": { + "category": "cont_registers", + "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": [] + }, + "bytecode": { + "doc_opcode": "ED5i", + "tlb": "#ED5 i:uint4", + "prefix": "ED5", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "x - ", + "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETCONTCTR", + "doc": { + "category": "cont_registers", + "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": [] + }, + "bytecode": { + "doc_opcode": "ED6i", + "tlb": "#ED6 i:uint4", + "prefix": "ED6", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "x c - c'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETRETCTR", + "doc": { + "category": "cont_registers", + "description": "Equivalent to `c0 PUSHCTR` `c[i] SETCONTCTR` `c0 POPCTR`.", + "gas": "26", + "fift": "c[i] SETRETCTR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "ED7i", + "tlb": "#ED7 i:uint4", + "prefix": "ED7", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "x - ", + "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETALTCTR", + "doc": { + "category": "cont_registers", + "description": "Equivalent to `c1 PUSHCTR` `c[i] SETCONTCTR` `c0 POPCTR`.", + "gas": "26", + "fift": "c[i] SETALTCTR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "ED8i", + "tlb": "#ED8 i:uint4", + "prefix": "ED8", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "x - ", + "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "POPSAVE", + "doc": { + "category": "cont_registers", + "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": [] + }, + "bytecode": { + "doc_opcode": "ED9i", + "tlb": "#ED9 i:uint4", + "prefix": "ED9", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "x -", + "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SAVE", + "doc": { + "category": "cont_registers", + "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": [] + }, + "bytecode": { + "doc_opcode": "EDAi", + "tlb": "#EDA i:uint4", + "prefix": "EDA", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SAVEALT", + "doc": { + "category": "cont_registers", + "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": [] + }, + "bytecode": { + "doc_opcode": "EDBi", + "tlb": "#EDB i:uint4", + "prefix": "EDB", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SAVEBOTH", + "doc": { + "category": "cont_registers", + "description": "Equivalent to `DUP` `c[i] SAVE` `c[i] SAVEALT`.", + "gas": "26", + "fift": "c[i] SAVEBOTH\nc[i] SAVEBOTHCTR", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "EDCi", + "tlb": "#EDC i:uint4", + "prefix": "EDC", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PUSHCTRX", + "doc": { + "category": "cont_registers", + "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": [] + }, + "value_flow": { + "doc_stack": "i - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "POPCTRX", + "doc": { + "category": "cont_registers", + "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": [] + }, + "value_flow": { + "doc_stack": "x i - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "i", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETCONTCTRX", + "doc": { + "category": "cont_registers", + "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": [] + }, + "value_flow": { + "doc_stack": "x c i - c'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "COMPOS", + "doc": { + "category": "cont_registers", + "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": [] + }, + "value_flow": { + "doc_stack": "c c' - c''", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c3", "value_types": ["Continuation"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "COMPOSALT", + "doc": { + "category": "cont_registers", + "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": [] + }, + "value_flow": { + "doc_stack": "c c' - c''", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c3", "value_types": ["Continuation"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "COMPOSBOTH", + "doc": { + "category": "cont_registers", + "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": [] + }, + "value_flow": { + "doc_stack": "c c' - c''", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c3", "value_types": ["Continuation"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ATEXIT", + "doc": { + "category": "cont_registers", + "description": "Sets `c0` to `compose0(c, c0)`. In other words, `c` will be executed before exiting current subroutine.", + "gas": "26", + "fift": "ATEXIT", + "fift_examples": [ + { + "fift": "ATEXIT:<{ code }> <{ code }>ATEXIT", + "description": "Equivalent to `<{ code }> CONT` `ATEXIT`." + } + ] + }, + "bytecode": { + "doc_opcode": "EDF3", + "tlb": "#EDF3", + "prefix": "EDF3", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ATEXITALT", + "doc": { + "category": "cont_registers", + "description": "Sets `c1` to `compose1(c, c1)`. In other words, `c` will be executed before exiting current subroutine by its alternative return path.", + "gas": "26", + "fift": "ATEXITALT", + "fift_examples": [ + { + "fift": "ATEXITALT:<{ code }> <{ code }>ATEXITALT", + "description": "Equivalent to `<{ code }> CONT` `ATEXITALT`." + } + ] + }, + "bytecode": { + "doc_opcode": "EDF4", + "tlb": "#EDF4", + "prefix": "EDF4", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETEXITALT", + "doc": { + "category": "cont_registers", + "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": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "THENRET", + "doc": { + "category": "cont_registers", + "description": "Computes `compose0(c, c0)`.", + "gas": "26", + "fift": "THENRET", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "EDF6", + "tlb": "#EDF6", + "prefix": "EDF6", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - c'", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "THENRETALT", + "doc": { + "category": "cont_registers", + "description": "Computes `compose0(c, c1)`", + "gas": "26", + "fift": "THENRETALT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "EDF7", + "tlb": "#EDF7", + "prefix": "EDF7", + "operands": [] + }, + "value_flow": { + "doc_stack": "c - c'", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "INVERT", + "doc": { + "category": "cont_registers", + "description": "Interchanges `c0` and `c1`.", + "gas": "26", + "fift": "INVERT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "EDF8", + "tlb": "#EDF8", + "prefix": "EDF8", + "operands": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BOOLEVAL", + "doc": { + "category": "cont_registers", + "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": [] + }, + "value_flow": { + "doc_stack": "c - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "special", + "name": "pushint", + "args": { + "next": { + "type": "cc", + "save": { + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 } + } + }, + "value": -1 + } + }, + "c1": { + "type": "special", + "name": "pushint", + "args": { + "next": { + "type": "cc", + "save": { + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 } + } + }, + "value": 0 + } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "SAMEALT", + "doc": { + "category": "cont_registers", + "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": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SAMEALTSAVE", + "doc": { + "category": "cont_registers", + "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": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "CALLDICT", + "doc": { + "category": "cont_dict", + "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": [] + }, + "bytecode": { + "doc_opcode": "F0nn", + "tlb": "#F0 n:uint8", + "prefix": "F0", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "- nn", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { + "branches": [ + { + "type": "register", + "index": 3, + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "CALLDICT_LONG", + "doc": { + "category": "cont_dict", + "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": [] + }, + "bytecode": { + "doc_opcode": "F12_n", + "tlb": "#F12_ n:uint14", + "prefix": "F12_", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 14 } } + ] + }, + "value_flow": { + "doc_stack": "- n", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { + "branches": [ + { + "type": "register", + "index": 3, + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "JMPDICT", + "doc": { + "category": "cont_dict", + "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": [] + }, + "bytecode": { + "doc_opcode": "F16_n", + "tlb": "#F16_ n:uint14", + "prefix": "F16_", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 14 } } + ] + }, + "value_flow": { + "doc_stack": " - n", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { + "branches": [{ "type": "register", "index": 3 }], + "nobranch": false + } + }, + { + "mnemonic": "PREPAREDICT", + "doc": { + "category": "cont_dict", + "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": [] + }, + "bytecode": { + "doc_opcode": "F1A_n", + "tlb": "#F1A_ n:uint14", + "prefix": "F1A_", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 14 } } + ] + }, + "value_flow": { + "doc_stack": " - n c", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "THROW_SHORT", + "doc": { + "category": "exceptions", + "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": [] + }, + "bytecode": { + "doc_opcode": "F22_n", + "tlb": "#F22_ n:uint6", + "prefix": "F22_", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 6 } } + ] + }, + "value_flow": { + "doc_stack": " - 0 n", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "THROWIF_SHORT", + "doc": { + "category": "exceptions", + "description": "Throws exception `0 <= n <= 63` with parameter zero only if integer `f!=0`.", + "gas": "26/76", + "fift": "[n] THROWIF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F26_n", + "tlb": "#F26_ n:uint6", + "prefix": "F26_", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 6 } } + ] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "THROWIFNOT_SHORT", + "doc": { + "category": "exceptions", + "description": "Throws exception `0 <= n <= 63` with parameter zero only if integer `f=0`.", + "gas": "26/76", + "fift": "[n] THROWIFNOT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F2A_n", + "tlb": "#F2A_ n:uint6", + "prefix": "F2A_", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 6 } } + ] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "THROW", + "doc": { + "category": "exceptions", + "description": "For `0 <= n < 2^11`, an encoding of `[n] THROW` for larger values of `n`.", + "gas": "84", + "fift": "[n] THROW", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F2C4_n", + "tlb": "#F2C4_ n:uint11", + "prefix": "F2C4_", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } + ] + }, + "value_flow": { + "doc_stack": "- 0 nn", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "THROWARG", + "doc": { + "category": "exceptions", + "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": [] + }, + "bytecode": { + "doc_opcode": "F2CC_n", + "tlb": "#F2CC_ n:uint11", + "prefix": "F2CC_", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } + ] + }, + "value_flow": { + "doc_stack": "x - x nn", + "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "THROWIF", + "doc": { + "category": "exceptions", + "description": "For `0 <= n < 2^11`, an encoding of `[n] THROWIF` for larger values of `n`.", + "gas": "34/84", + "fift": "[n] THROWIF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F2D4_n", + "tlb": "#F2D4_ n:uint11", + "prefix": "F2D4_", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } + ] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "THROWARGIF", + "doc": { + "category": "exceptions", + "description": "Throws exception `0 <= nn < 2^11` with parameter `x` only if integer `f!=0`.", + "gas": "34/84", + "fift": "[n] THROWARGIF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F2DC_n", + "tlb": "#F2DC_ n:uint11", + "prefix": "F2DC_", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } + ] + }, + "value_flow": { + "doc_stack": "x f - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "THROWIFNOT", + "doc": { + "category": "exceptions", + "description": "For `0 <= n < 2^11`, an encoding of `[n] THROWIFNOT` for larger values of `n`.", + "gas": "34/84", + "fift": "[n] THROWIFNOT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F2E4_n", + "tlb": "#F2E4_ n:uint11", + "prefix": "F2E4_", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } + ] + }, + "value_flow": { + "doc_stack": "f - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "THROWARGIFNOT", + "doc": { + "category": "exceptions", + "description": "Throws exception `0 <= n < 2^11` with parameter `x` only if integer `f=0`.", + "gas": "34/84", + "fift": "[n] THROWARGIFNOT", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F2EC_n", + "tlb": "#F2EC_ n:uint11", + "prefix": "F2EC_", + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } + ] + }, + "value_flow": { + "doc_stack": "x f - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "THROWANY", + "doc": { + "category": "exceptions", + "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": [] + }, + "value_flow": { + "doc_stack": "n - 0 n", + "inputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "THROWARGANY", + "doc": { + "category": "exceptions", + "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": [] + }, + "value_flow": { + "doc_stack": "x n - x n", + "inputs": { + "stack": [ + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "THROWANYIF", + "doc": { + "category": "exceptions", + "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": [] + }, + "value_flow": { + "doc_stack": "n f - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "THROWARGANYIF", + "doc": { + "category": "exceptions", + "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": [] + }, + "value_flow": { + "doc_stack": "x n f - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "THROWANYIFNOT", + "doc": { + "category": "exceptions", + "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": [] + }, + "value_flow": { + "doc_stack": "n f - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "THROWARGANYIFNOT", + "doc": { + "category": "exceptions", + "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": [] + }, + "value_flow": { + "doc_stack": "x n f - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "f", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "TRY", + "doc": { + "category": "exceptions", + "description": "Sets `c2` to `c'`, first saving the old value of `c2` both into the savelist of `c'` and into the savelist of the current continuation, which is stored into `c.c0` and `c'.c0`. Then runs `c` similarly to `EXECUTE`. If `c` does not throw any exceptions, the original value of `c2` is automatically restored on return from `c`. If an exception occurs, the execution is transferred to `c'`, but the original value of `c2` is restored in the process, so that `c'` can re-throw the exception by `THROWANY` if it cannot handle it by itself.", + "gas": "26", + "fift": "TRY", + "fift_examples": [ + { + "fift": "TRY:<{ code1 }>CATCH<{ code2 }>", + "description": "Equivalent to `<{ code1 }> CONT` `<{ code2 }> CONT` `TRY`." + } + ] + }, + "bytecode": { + "doc_opcode": "F2FF", + "tlb": "#F2FF", + "prefix": "F2FF", + "operands": [] + }, + "value_flow": { + "doc_stack": "c c' - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 }, + "c2": { "type": "register", "index": 2 } + } + }, + "c2": { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 }, + "c2": { "type": "register", "index": 2 } + } + }, + "c2": { "type": "register", "index": 2 } + } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "TRYARGS", + "doc": { + "category": "exceptions", + "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": [] + }, + "bytecode": { + "doc_opcode": "F3pr", + "tlb": "#F3 p:uint4 r:uint4", + "prefix": "F3", + "operands": [ + { "name": "p", "loader": "uint", "loader_args": { "size": 4 } }, + { "name": "r", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "c c' - ", + "inputs": { + "stack": [ + { + "type": "array", + "name": "args", + "length_var": "r", + "array_entry": [{ "type": "simple", "name": "arg" }] + }, + { "type": "simple", "name": "c", "value_types": ["Continuation"] }, + { "type": "simple", "name": "c2", "value_types": ["Continuation"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 }, + "c2": { "type": "register", "index": 2 } + } + }, + "c2": { + "type": "variable", + "var_name": "c2", + "save": { + "c0": { + "type": "cc", + "save": { + "c0": { "type": "register", "index": 0 }, + "c1": { "type": "register", "index": 1 }, + "c2": { "type": "register", "index": 2 } + } + }, + "c2": { "type": "register", "index": 2 } + } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "STDICT", + "doc": { + "category": "dict_serial", + "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": [] + }, + "value_flow": { + "doc_stack": "D b - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "b", "value_types": ["Builder"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SKIPDICT", + "doc": { + "category": "dict_serial", + "description": "Equivalent to `LDDICT` `NIP`.", + "gas": "26", + "fift": "SKIPDICT\nSKIPOPTREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F401", + "tlb": "#F401", + "prefix": "F401", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDDICTS", + "doc": { + "category": "dict_serial", + "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": [] + }, + "value_flow": { + "doc_stack": "s - s' s''", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] }, + { "type": "simple", "name": "s3", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDDICTS", + "doc": { + "category": "dict_serial", + "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": [] + }, + "value_flow": { + "doc_stack": "s - s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDDICT", + "doc": { + "category": "dict_serial", + "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": [] + }, + "value_flow": { + "doc_stack": "s - D s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDDICT", + "doc": { + "category": "dict_serial", + "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": [] + }, + "value_flow": { + "doc_stack": "s - D", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDDICTQ", + "doc": { + "category": "dict_serial", + "description": "A quiet version of `LDDICT`.", + "gas": "26", + "fift": "LDDICTQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F406", + "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"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "s", + "value_types": ["Integer"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PLDDICTQ", + "doc": { + "category": "dict_serial", + "description": "A quiet version of `PLDDICT`.", + "gas": "26", + "fift": "PLDDICTQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F407", + "tlb": "#F407", + "prefix": "F407", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - D -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTGET", + "doc": { + "category": "dict_get", + "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": [] + }, + "value_flow": { + "doc_stack": "k D n - x -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTGETREF", + "doc": { + "category": "dict_get", + "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": [] + }, + "value_flow": { + "doc_stack": "k D n - c -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "k", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIGET", + "doc": { + "category": "dict_get", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - x -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIGETREF", + "doc": { + "category": "dict_get", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - c -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUGET", + "doc": { + "category": "dict_get", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - x -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUGETREF", + "doc": { + "category": "dict_get", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - c -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTSET", + "doc": { + "category": "dict_set", + "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": [] + }, + "value_flow": { + "doc_stack": "x k D n - D'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTSETREF", + "doc": { + "category": "dict_set", + "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": [] + }, + "value_flow": { + "doc_stack": "c k D n - D'", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTISET", + "doc": { + "category": "dict_set", + "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": [] + }, + "value_flow": { + "doc_stack": "x i D n - D'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTISETREF", + "doc": { + "category": "dict_set", + "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": [] + }, + "value_flow": { + "doc_stack": "c i D n - D'", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUSET", + "doc": { + "category": "dict_set", + "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": [] + }, + "value_flow": { + "doc_stack": "x i D n - D'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUSETREF", + "doc": { + "category": "dict_set", + "description": "Similar to `DICTISETREF`, but with `i` unsigned.", + "gas": "", + "fift": "DICTUSETREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F417", + "tlb": "#F417", + "prefix": "F417", + "operands": [] + }, + "value_flow": { + "doc_stack": "c i D n - D'", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTSETGET", + "doc": { + "category": "dict_set", + "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": [] + }, + "value_flow": { + "doc_stack": "x k D n - D' y -1 or D' 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTSETGETREF", + "doc": { + "category": "dict_set", + "description": "Combines `DICTSETREF` with `DICTGETREF` similarly to `DICTSETGET`.", + "gas": "", + "fift": "DICTSETGETREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F41B", + "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"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "c2", "value_types": ["Cell"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTISETGET", + "doc": { + "category": "dict_set", + "description": "`DICTISETGET`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTISETGET", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F41C", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTISETGETREF", + "doc": { + "category": "dict_set", + "description": "`DICTISETGETREF`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTISETGETREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F41D", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "c2", "value_types": ["Cell"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUSETGET", + "doc": { + "category": "dict_set", + "description": "`DICTISETGET`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUSETGET", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F41E", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUSETGETREF", + "doc": { + "category": "dict_set", + "description": "`DICTISETGETREF`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUSETGETREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F41F", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "c2", "value_types": ["Cell"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTREPLACE", + "doc": { + "category": "dict_set", + "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": [] + }, + "value_flow": { + "doc_stack": "x k D n - D' -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTREPLACEREF", + "doc": { + "category": "dict_set", + "description": "A _Replace_ counterpart of `DICTSETREF`.", + "gas": "", + "fift": "DICTREPLACEREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F423", + "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"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIREPLACE", + "doc": { + "category": "dict_set", + "description": "`DICTREPLACE`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIREPLACE", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F424", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIREPLACEREF", + "doc": { + "category": "dict_set", + "description": "`DICTREPLACEREF`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIREPLACEREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F425", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUREPLACE", + "doc": { + "category": "dict_set", + "description": "`DICTREPLACE`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUREPLACE", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F426", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUREPLACEREF", + "doc": { + "category": "dict_set", + "description": "`DICTREPLACEREF`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUREPLACEREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F427", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTREPLACEGET", + "doc": { + "category": "dict_set", + "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": [] + }, + "value_flow": { + "doc_stack": "x k D n - D' y -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTREPLACEGETREF", + "doc": { + "category": "dict_set", + "description": "A _Replace_ counterpart of `DICTSETGETREF`.", + "gas": "", + "fift": "DICTREPLACEGETREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F42B", + "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"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "c2", "value_types": ["Cell"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIREPLACEGET", + "doc": { + "category": "dict_set", + "description": "`DICTREPLACEGET`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIREPLACEGET", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F42C", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIREPLACEGETREF", + "doc": { + "category": "dict_set", + "description": "`DICTREPLACEGETREF`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIREPLACEGETREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F42D", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "c2", "value_types": ["Cell"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUREPLACEGET", + "doc": { + "category": "dict_set", + "description": "`DICTREPLACEGET`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUREPLACEGET", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F42E", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUREPLACEGETREF", + "doc": { + "category": "dict_set", + "description": "`DICTREPLACEGETREF`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUREPLACEGETREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F42F", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "c2", "value_types": ["Cell"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTADD", + "doc": { + "category": "dict_set", + "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": [] + }, + "value_flow": { + "doc_stack": "x k D n - D' -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTADDREF", + "doc": { + "category": "dict_set", + "description": "An _Add_ counterpart of `DICTSETREF`.", + "gas": "", + "fift": "DICTADDREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F433", + "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"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIADD", + "doc": { + "category": "dict_set", + "description": "`DICTADD`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIADD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F434", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIADDREF", + "doc": { + "category": "dict_set", + "description": "`DICTADDREF`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIADDREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F435", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUADD", + "doc": { + "category": "dict_set", + "description": "`DICTADD`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUADD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F436", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUADDREF", + "doc": { + "category": "dict_set", + "description": "`DICTADDREF`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUADDREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F437", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTADDGET", + "doc": { + "category": "dict_set", + "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": [] + }, + "value_flow": { + "doc_stack": "x k D n - D' -1 or D y 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTADDGETREF", + "doc": { + "category": "dict_set", + "description": "An _Add_ counterpart of `DICTSETGETREF`.", + "gas": "", + "fift": "DICTADDGETREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F43B", + "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"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "c2", "value_types": ["Cell"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIADDGET", + "doc": { + "category": "dict_set", + "description": "`DICTADDGET`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIADDGET", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F43C", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIADDGETREF", + "doc": { + "category": "dict_set", + "description": "`DICTADDGETREF`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIADDGETREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F43D", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "c2", "value_types": ["Cell"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUADDGET", + "doc": { + "category": "dict_set", + "description": "`DICTADDGET`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUADDGET", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F43E", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUADDGETREF", + "doc": { + "category": "dict_set", + "description": "`DICTADDGETREF`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUADDGETREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F43F", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "c2", "value_types": ["Cell"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTSETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTSETB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F441", + "tlb": "#F441", + "prefix": "F441", + "operands": [] + }, + "value_flow": { + "doc_stack": "b k D n - D'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTISETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTISETB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F442", + "tlb": "#F442", + "prefix": "F442", + "operands": [] + }, + "value_flow": { + "doc_stack": "b i D n - D'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUSETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTUSETB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F443", + "tlb": "#F443", + "prefix": "F443", + "operands": [] + }, + "value_flow": { + "doc_stack": "b i D n - D'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTSETGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTSETGETB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F445", + "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"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTISETGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTISETGETB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F446", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUSETGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTUSETGETB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F447", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTREPLACEB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTREPLACEB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F449", + "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"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIREPLACEB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTIREPLACEB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F44A", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUREPLACEB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTUREPLACEB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F44B", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTREPLACEGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTREPLACEGETB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F44D", + "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"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIREPLACEGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTIREPLACEGETB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F44E", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUREPLACEGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTUREPLACEGETB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F44F", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTADDB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTADDB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F451", + "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"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIADDB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTIADDB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F452", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUADDB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTUADDB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F453", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTADDGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTADDGETB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F455", + "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"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIADDGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTIADDGETB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F456", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUADDGETB", + "doc": { + "category": "dict_set_builder", + "description": "", + "gas": "", + "fift": "DICTUADDGETB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F457", + "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"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTDEL", + "doc": { + "category": "dict_delete", + "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": [] + }, + "value_flow": { + "doc_stack": "k D n - D' -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIDEL", + "doc": { + "category": "dict_delete", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - D' ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUDEL", + "doc": { + "category": "dict_delete", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - D' ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTDELGET", + "doc": { + "category": "dict_delete", + "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": [] + }, + "value_flow": { + "doc_stack": "k D n - D' x -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "x", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTDELGETREF", + "doc": { + "category": "dict_delete", + "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": [] + }, + "value_flow": { + "doc_stack": "k D n - D' c -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "c", "value_types": ["Cell"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIDELGET", + "doc": { + "category": "dict_delete", + "description": "`DICTDELGET`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIDELGET", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F464", + "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"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "x", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIDELGETREF", + "doc": { + "category": "dict_delete", + "description": "`DICTDELGETREF`, but with `i` a signed `n`-bit integer.", + "gas": "", + "fift": "DICTIDELGETREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F465", + "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"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "c", "value_types": ["Cell"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUDELGET", + "doc": { + "category": "dict_delete", + "description": "`DICTDELGET`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUDELGET", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F466", + "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"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "x", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUDELGETREF", + "doc": { + "category": "dict_delete", + "description": "`DICTDELGETREF`, but with `i` an unsigned `n`-bit integer.", + "gas": "", + "fift": "DICTUDELGETREF", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F467", + "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"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "c", "value_types": ["Cell"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTGETOPTREF", + "doc": { + "category": "dict_mayberef", + "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": [] + }, + "value_flow": { + "doc_stack": "k D n - c^?", + "inputs": { + "stack": [ + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIGETOPTREF", + "doc": { + "category": "dict_mayberef", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - c^?", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUGETOPTREF", + "doc": { + "category": "dict_mayberef", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - c^?", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTSETGETOPTREF", + "doc": { + "category": "dict_mayberef", + "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": [] + }, + "value_flow": { + "doc_stack": "c^? k D n - D' ~c^?", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "c2", "value_types": ["Cell", "Null"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTISETGETOPTREF", + "doc": { + "category": "dict_mayberef", + "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": [] + }, + "value_flow": { + "doc_stack": "c^? i D n - D' ~c^?", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "c2", "value_types": ["Cell", "Null"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUSETGETOPTREF", + "doc": { + "category": "dict_mayberef", + "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": [] + }, + "value_flow": { + "doc_stack": "c^? i D n - D' ~c^?", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] }, + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "c2", "value_types": ["Cell", "Null"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PFXDICTSET", + "doc": { + "category": "dict_prefix", + "description": "", + "gas": "", + "fift": "PFXDICTSET", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F470", + "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"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PFXDICTREPLACE", + "doc": { + "category": "dict_prefix", + "description": "", + "gas": "", + "fift": "PFXDICTREPLACE", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F471", + "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"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PFXDICTADD", + "doc": { + "category": "dict_prefix", + "description": "", + "gas": "", + "fift": "PFXDICTADD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F472", + "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"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PFXDICTDEL", + "doc": { + "category": "dict_prefix", + "description": "", + "gas": "", + "fift": "PFXDICTDEL", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F473", + "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"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTGETNEXT", + "doc": { + "category": "dict_next", + "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": [] + }, + "value_flow": { + "doc_stack": "k D n - x' k' -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "k2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTGETNEXTEQ", + "doc": { + "category": "dict_next", + "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": [] + }, + "value_flow": { + "doc_stack": "k D n - x' k' -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "k2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTGETPREV", + "doc": { + "category": "dict_next", + "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": [] + }, + "value_flow": { + "doc_stack": "k D n - x' k' -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "k2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTGETPREVEQ", + "doc": { + "category": "dict_next", + "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": [] + }, + "value_flow": { + "doc_stack": "k D n - x' k' -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "k2", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIGETNEXT", + "doc": { + "category": "dict_next", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - x' i' -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i2", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIGETNEXTEQ", + "doc": { + "category": "dict_next", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - x' i' -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i2", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIGETPREV", + "doc": { + "category": "dict_next", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - x' i' -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i2", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIGETPREVEQ", + "doc": { + "category": "dict_next", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - x' i' -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i2", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUGETNEXT", + "doc": { + "category": "dict_next", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - x' i' -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i2", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUGETNEXTEQ", + "doc": { + "category": "dict_next", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - x' i' -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i2", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUGETPREV", + "doc": { + "category": "dict_next", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - x' i' -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i2", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUGETPREVEQ", + "doc": { + "category": "dict_next", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - x' i' -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x2", + "value_types": ["Slice"] + }, + { + "type": "simple", + "name": "i2", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTMIN", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - x k -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTMINREF", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - c k -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIMIN", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - x i -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIMINREF", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - c i -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUMIN", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - x i -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUMINREF", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - c i -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTMAX", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - x k -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTMAXREF", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - c k -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIMAX", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - x i -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIMAXREF", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - c i -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUMAX", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - x i -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUMAXREF", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - c i -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTREMMIN", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - D' x k -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTREMMINREF", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - D' c k -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIREMMIN", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - D' x i -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIREMMINREF", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - D' c i -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUREMMIN", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - D' x i -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUREMMINREF", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - D' c i -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTREMMAX", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - D' x k -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTREMMAXREF", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - D' c k -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIREMMAX", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - D' x i -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIREMMAXREF", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - D' c i -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUREMMAX", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - D' x i -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTUREMMAXREF", + "doc": { + "category": "dict_min", + "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": [] + }, + "value_flow": { + "doc_stack": "D n - D' c i -1 or D 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { + "type": "simple", + "name": "D", + "value_types": ["Slice", "Null"] + } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "D2", + "value_types": ["Slice", "Null"] + }, + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { + "type": "simple", + "name": "i", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DICTIGETJMP", + "doc": { + "category": "dict_special", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "x" }], + "nobranch": false + } + }, + { + "mnemonic": "DICTUGETJMP", + "doc": { + "category": "dict_special", + "description": "Similar to `DICTIGETJMP`, but performs `DICTUGET` instead of `DICTIGET`.", + "gas": "", + "fift": "DICTUGETJMP", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F4A1", + "tlb": "#F4A1", + "prefix": "F4A1", + "operands": [] + }, + "value_flow": { + "doc_stack": "i D n - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "x" }], + "nobranch": false + } + }, + { + "mnemonic": "DICTIGETEXEC", + "doc": { + "category": "dict_special", + "description": "Similar to `DICTIGETJMP`, but with `EXECUTE` instead of `JMPX`.", + "gas": "", + "fift": "DICTIGETEXEC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F4A2", + "tlb": "#F4A2", + "prefix": "F4A2", + "operands": [] + }, + "value_flow": { + "doc_stack": "i D n - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "x", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "DICTUGETEXEC", + "doc": { + "category": "dict_special", + "description": "Similar to `DICTUGETJMP`, but with `EXECUTE` instead of `JMPX`.", + "gas": "", + "fift": "DICTUGETEXEC", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F4A3", + "tlb": "#F4A3", + "prefix": "F4A3", + "operands": [] + }, + "value_flow": { + "doc_stack": "i D n - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "x", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "DICTPUSHCONST", + "doc": { + "category": "dict_special", + "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": [] + }, + "bytecode": { + "doc_opcode": "F4A6_n", + "tlb": "#F4A6_ d:^Cell n:uint10", + "prefix": "F4A6_", + "operands": [ + { "name": "d", "loader": "ref", "loader_args": {} }, + { "name": "n", "loader": "uint", "loader_args": { "size": 10 } } + ] + }, + "value_flow": { + "doc_stack": " - D n", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PFXDICTGETQ", + "doc": { + "category": "dict_special", + "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": [] + }, + "value_flow": { + "doc_stack": "s D n - s' x s'' -1 or s 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "s3", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PFXDICTGET", + "doc": { + "category": "dict_special", + "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": [] + }, + "value_flow": { + "doc_stack": "s D n - s' x s''", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] }, + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "s3", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PFXDICTGETJMP", + "doc": { + "category": "dict_special", + "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": [] + }, + "value_flow": { + "doc_stack": "s D n - s' s'' or s", + "inputs": {}, + "outputs": {} + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "x" }], + "nobranch": false + } + }, + { + "mnemonic": "PFXDICTGETEXEC", + "doc": { + "category": "dict_special", + "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": [] + }, + "value_flow": { + "doc_stack": "s D n - s' s''", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] }, + { "type": "simple", "name": "s3", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "x", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "PFXDICTCONSTGETJMP", + "doc": { + "category": "dict_special", + "description": "Combines `[n] DICTPUSHCONST` for `0 <= n <= 1023` with `PFXDICTGETJMP`.", + "gas": "", + "fift": "[ref] [n] PFXDICTCONSTGETJMP\n[ref] [n] PFXDICTSWITCH", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F4AE_n", + "tlb": "#F4AE_ d:^Cell n:uint10", + "prefix": "F4AE_", + "operands": [ + { "name": "d", "loader": "ref", "loader_args": {} }, + { "name": "n", "loader": "uint", "loader_args": { "size": 10 } } + ] + }, + "value_flow": { + "doc_stack": "s - s' s'' or s", + "inputs": {}, + "outputs": {} + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "x" }], + "nobranch": false + } + }, + { + "mnemonic": "DICTIGETJMPZ", + "doc": { + "category": "dict_special", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - i or nothing", + "inputs": {}, + "outputs": {} + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "x" }], + "nobranch": false + } + }, + { + "mnemonic": "DICTUGETJMPZ", + "doc": { + "category": "dict_special", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - i or nothing", + "inputs": {}, + "outputs": {} + }, + "control_flow": { + "branches": [{ "type": "variable", "var_name": "x" }], + "nobranch": false + } + }, + { + "mnemonic": "DICTIGETEXECZ", + "doc": { + "category": "dict_special", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - i or nothing", + "inputs": {}, + "outputs": {} + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "x", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "DICTUGETEXECZ", + "doc": { + "category": "dict_special", + "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": [] + }, + "value_flow": { + "doc_stack": "i D n - i or nothing", + "inputs": {}, + "outputs": {} + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "x", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } + } + } + ], + "nobranch": false + } + }, + { + "mnemonic": "SUBDICTGET", + "doc": { + "category": "dict_sub", + "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": [] + }, + "value_flow": { + "doc_stack": "k l D n - D'", + "inputs": { + "stack": [ + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SUBDICTIGET", + "doc": { + "category": "dict_sub", + "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": [] + }, + "value_flow": { + "doc_stack": "x l D n - D'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SUBDICTUGET", + "doc": { + "category": "dict_sub", + "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": [] + }, + "value_flow": { + "doc_stack": "x l D n - D'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SUBDICTRPGET", + "doc": { + "category": "dict_sub", + "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": [] + }, + "value_flow": { + "doc_stack": "k l D n - D'", + "inputs": { + "stack": [ + { "type": "simple", "name": "k", "value_types": ["Slice"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SUBDICTIRPGET", + "doc": { + "category": "dict_sub", + "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": [] + }, + "value_flow": { + "doc_stack": "x l D n - D'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SUBDICTURPGET", + "doc": { + "category": "dict_sub", + "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": [] + }, + "value_flow": { + "doc_stack": "x l D n - D'", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "l", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ACCEPT", + "doc": { + "category": "app_gas", + "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": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETGASLIMIT", + "doc": { + "category": "app_gas", + "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": [] + }, + "value_flow": { + "doc_stack": "g - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "g", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "GASCONSUMED", + "doc": { + "category": "app_gas", + "description": "Returns gas consumed by VM so far (including this instruction).", + "gas": "26", + "fift": "GASCONSUMED", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F802", + "tlb": "#F802", + "prefix": "F802", + "operands": [] + }, + "value_flow": { + "doc_stack": "- g_c", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "g_c", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "COMMIT", + "doc": { + "category": "app_gas", + "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": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RANDU256", + "doc": { + "category": "app_rnd", + "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": [] + }, + "value_flow": { + "doc_stack": "- x", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RAND", + "doc": { + "category": "app_rnd", + "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": [] + }, + "value_flow": { + "doc_stack": "y - z", + "inputs": { + "stack": [ + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETRAND", + "doc": { + "category": "app_rnd", + "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": [] + }, + "value_flow": { + "doc_stack": "x - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ADDRAND", + "doc": { + "category": "app_rnd", + "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": [] + }, + "value_flow": { + "doc_stack": "x - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "GETPARAM", + "doc": { + "category": "app_config", + "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": [] + }, + "bytecode": { + "doc_opcode": "F82i", + "tlb": "#F82 i:uint4", + "prefix": "F82", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": " - x", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "CONFIGDICT", + "doc": { + "category": "app_config", + "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": [] + }, + "value_flow": { + "doc_stack": " - D 32", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice", "Null"] }, + { "type": "const", "value": 32, "value_type": "Integer" } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "CONFIGPARAM", + "doc": { + "category": "app_config", + "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": [] + }, + "value_flow": { + "doc_stack": "i - c -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "CONFIGOPTPARAM", + "doc": { + "category": "app_config", + "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": [] + }, + "value_flow": { + "doc_stack": "i - c^?", + "inputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PREVMCBLOCKS", + "doc": { + "category": "app_config", + "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": [] + }, + "value_flow": { + "doc_stack": "- t", + "inputs": { "stack": [] }, + "outputs": { + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PREVKEYBLOCK", + "doc": { + "category": "app_config", + "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": [] + }, + "value_flow": { + "doc_stack": "- t", + "inputs": { "stack": [] }, + "outputs": { + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "GLOBALID", + "doc": { + "category": "app_config", + "description": "Retrieves `global_id` from 19 network config.", + "gas": "", + "fift": "GLOBALID", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F835", + "tlb": "#F835", + "prefix": "F835", + "operands": [] + }, + "value_flow": { + "doc_stack": "- i", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "i", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "GETGLOBVAR", + "doc": { + "category": "app_global", + "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": [] + }, + "value_flow": { + "doc_stack": "k - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "k", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "GETGLOB", + "doc": { + "category": "app_global", + "description": "Returns the `k`-th global variable for `1 <= k <= 31`.\nEquivalent to `c7 PUSHCTR` `[k] INDEXQ`.", + "gas": "26", + "fift": "[k] GETGLOB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F85_k", + "tlb": "#F85_ k:(## 5) {1 <= k}", + "prefix": "F85_", + "operands_range_check": { "length": 5, "from": 1, "to": 31 }, + "operands": [ + { "name": "k", "loader": "uint", "loader_args": { "size": 5 } } + ] + }, + "value_flow": { + "doc_stack": " - x", + "inputs": { "stack": [] }, + "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETGLOBVAR", + "doc": { + "category": "app_global", + "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": [] + }, + "value_flow": { + "doc_stack": "x k - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "x" }, + { "type": "simple", "name": "k", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETGLOB", + "doc": { + "category": "app_global", + "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": [] + }, + "bytecode": { + "doc_opcode": "F87_k", + "tlb": "#F87_ k:(## 5) {1 <= k}", + "prefix": "F87_", + "operands_range_check": { "length": 5, "from": 1, "to": 31 }, + "operands": [ + { "name": "k", "loader": "uint", "loader_args": { "size": 5 } } + ] + }, + "value_flow": { + "doc_stack": "x - ", + "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHCU", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "c - x", + "inputs": { + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHSU", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SHA256U", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "s - x", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXT_SHA256", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "s_1 ... s_n n - h", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "h", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXT_SHA512", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "s_1 ... s_n n - h1 h2", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "h1", "value_types": ["Integer"] }, + { "type": "simple", "name": "h2", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXT_BLAKE2B", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "s_1 ... s_n n - h1 h2", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "h1", "value_types": ["Integer"] }, + { "type": "simple", "name": "h2", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXT_KECCAK256", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "s_1 ... s_n n - h", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "h", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXT_KECCAK512", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "s_1 ... s_n n - h1 h2", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "h1", "value_types": ["Integer"] }, + { "type": "simple", "name": "h2", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXTR_SHA256", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "s_n ... s_1 n - h", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "h", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXTR_SHA512", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "s_n ... s_1 n - h1 h2", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "h1", "value_types": ["Integer"] }, + { "type": "simple", "name": "h2", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXTR_BLAKE2B", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "s_n ... s_1 n - h1 h2", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "h1", "value_types": ["Integer"] }, + { "type": "simple", "name": "h2", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXTR_KECCAK256", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "s_n ... s_1 n - h", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "h", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXTR_KECCAK512", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "s_n ... s_1 n - h1 h2", + "inputs": { + "stack": [ + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "h1", "value_types": ["Integer"] }, + { "type": "simple", "name": "h2", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXTA_SHA256", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "b s_1 ... s_n n - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXTA_SHA512", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "b s_1 ... s_n n - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXTA_BLAKE2B", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "b s_1 ... s_n n - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXTA_KECCAK256", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "b s_1 ... s_n n - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXTA_KECCAK512", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "b s_1 ... s_n n - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXTAR_SHA256", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "b s_1 ... s_n n - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXTAR_SHA512", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "b s_n ... s_1 n - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXTAR_BLAKE2B", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "b s_n ... s_1 n - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXTAR_KECCAK256", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "b s_n ... s_1 n - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "HASHEXTAR_KECCAK512", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "b s_n ... s_1 n - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { + "type": "array", + "name": "input_parts", + "length_var": "n", + "array_entry": [ + { + "type": "simple", + "name": "s", + "value_types": ["Slice", "Builder"] + } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "CHKSIGNU", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "h s k - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "h", "value_types": ["Integer"] }, + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "CHKSIGNS", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "d s k - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "d", "value_types": ["Slice"] }, + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "ECRECOVER", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "hash v r s - 0 or h x1 x2 -1", + "inputs": { + "stack": [ + { "type": "simple", "name": "hash", "value_types": ["Integer"] }, + { "type": "simple", "name": "v", "value_types": ["Integer"] }, + { "type": "simple", "name": "r", "value_types": ["Integer"] }, + { "type": "simple", "name": "s", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "h", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "x1", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "x2", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "P256_CHKSIGNU", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "h sig k - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "d", "value_types": ["Slice"] }, + { "type": "simple", "name": "sig", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "P256_CHKSIGNS", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "d sig k - ?", + "inputs": { + "stack": [ + { "type": "simple", "name": "d", "value_types": ["Slice"] }, + { "type": "simple", "name": "sig", "value_types": ["Slice"] }, + { "type": "simple", "name": "k", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RIST255_FROMHASH", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "h1 h2 - x", + "inputs": { + "stack": [ + { "type": "simple", "name": "h1", "value_types": ["Integer"] }, + { "type": "simple", "name": "h2", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RIST255_VALIDATE", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "x -", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RIST255_ADD", + "doc": { + "category": "app_crypto", + "description": "Addition of two points on a curve.", + "gas": "626", + "fift": "RIST255_ADD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F922", + "tlb": "#F922", + "prefix": "F922", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x+y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RIST255_SUB", + "doc": { + "category": "app_crypto", + "description": "Subtraction of two points on curve.", + "gas": "626", + "fift": "RIST255_SUB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F923", + "tlb": "#F923", + "prefix": "F923", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x-y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RIST255_MUL", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "x n - x*n", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RIST255_MULBASE", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "n - g*n", + "inputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RIST255_PUSHL", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "- l", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RIST255_QVALIDATE", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "x - 0 or -1", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RIST255_QADD", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "x y - 0 or x+y -1", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RIST255_QSUB", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "x y - 0 or x-y -1", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RIST255_QMUL", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "x n - 0 or x*n -1", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RIST255_QMULBASE", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "n - 0 or g*n -1", + "inputs": { + "stack": [ + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "result", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_VERIFY", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "pk msg sgn - bool", + "inputs": { + "stack": [ + { "type": "simple", "name": "pk", "value_types": ["Slice"] }, + { "type": "simple", "name": "msg", "value_types": ["Slice"] }, + { "type": "simple", "name": "sgn", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_AGGREGATE", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "sig_1 ... sig_n n - sig", + "inputs": { + "stack": [ + { + "type": "array", + "name": "signatures", + "length_var": "n", + "array_entry": [ + { "type": "simple", "name": "sig", "value_types": ["Slice"] } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_FASTAGGREGATEVERIFY", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "pk_1 ... pk_n n msg sig - bool", + "inputs": { + "stack": [ + { + "type": "array", + "name": "public_keys", + "length_var": "n", + "array_entry": [ + { "type": "simple", "name": "pk", "value_types": ["Slice"] } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "msg", "value_types": ["Slice"] }, + { "type": "simple", "name": "sig", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_AGGREGATEVERIFY", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "pk_1 msg_1 ... pk_n msg_n n sgn - bool", + "inputs": { + "stack": [ + { + "type": "array", + "name": "key_message_pairs", + "length_var": "n", + "array_entry": [ + { "type": "simple", "name": "pk", "value_types": ["Slice"] }, + { "type": "simple", "name": "msg", "value_types": ["Slice"] } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] }, + { "type": "simple", "name": "sgn", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_G1_ADD", + "doc": { + "category": "app_crypto", + "description": "Addition on G1.", + "gas": "3934", + "fift": "BLS_G1_ADD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F93010", + "tlb": "#F93010", + "prefix": "F93010", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x+y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_G1_SUB", + "doc": { + "category": "app_crypto", + "description": "Subtraction on G1.", + "gas": "3934", + "fift": "BLS_G1_SUB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F93011", + "tlb": "#F93011", + "prefix": "F93011", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x-y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_G1_NEG", + "doc": { + "category": "app_crypto", + "description": "Negation on G1.", + "gas": "784", + "fift": "BLS_G1_NEG", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F93012", + "tlb": "#F93012", + "prefix": "F93012", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - -x", + "inputs": { + "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_G1_MUL", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "x s - x*s", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "s", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_G1_MULTIEXP", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "x_1 s_1 ... x_n s_n n - x_1*s_1+...+x_n*s_n", + "inputs": { + "stack": [ + { + "type": "array", + "name": "components", + "length_var": "n", + "array_entry": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "s", "value_types": ["Integer"] } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_G1_ZERO", + "doc": { + "category": "app_crypto", + "description": "Pushes zero point in G1.", + "gas": "34", + "fift": "BLS_G1_ZERO", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F93015", + "tlb": "#F93015", + "prefix": "F93015", + "operands": [] + }, + "value_flow": { + "doc_stack": "- zero", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "zero", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_MAP_TO_G1", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "f - x", + "inputs": { + "stack": [{ "type": "simple", "name": "f", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_G1_INGROUP", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "x - bool", + "inputs": { + "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_G1_ISZERO", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "x - bool", + "inputs": { + "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_G2_ADD", + "doc": { + "category": "app_crypto", + "description": "Addition on G2.", + "gas": "6134", + "fift": "BLS_G2_ADD", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F93020", + "tlb": "#F93020", + "prefix": "F93020", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x+y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_G2_SUB", + "doc": { + "category": "app_crypto", + "description": "Subtraction on G2.", + "gas": "6134", + "fift": "BLS_G2_SUB", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F93021", + "tlb": "#F93021", + "prefix": "F93021", + "operands": [] + }, + "value_flow": { + "doc_stack": "x y - x-y", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_G2_NEG", + "doc": { + "category": "app_crypto", + "description": "Negation on G2.", + "gas": "1584", + "fift": "BLS_G2_NEG", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F93022", + "tlb": "#F93022", + "prefix": "F93022", + "operands": [] + }, + "value_flow": { + "doc_stack": "x - -x", + "inputs": { + "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_G2_MUL", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "x s - x*s", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "s", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_G2_MULTIEXP", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "x_1 s_1 ... x_n s_n n - x_1*s_1+...+x_n*s_n", + "inputs": { + "stack": [ + { + "type": "array", + "name": "components", + "length_var": "n", + "array_entry": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "s", "value_types": ["Integer"] } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_G2_ZERO", + "doc": { + "category": "app_crypto", + "description": "Pushes zero point in G2.", + "gas": "34", + "fift": "BLS_G2_ZERO", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "F93025", + "tlb": "#F93025", + "prefix": "F93025", + "operands": [] + }, + "value_flow": { + "doc_stack": "- zero", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "zero", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_MAP_TO_G2", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "f - x", + "inputs": { + "stack": [{ "type": "simple", "name": "f", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_G2_INGROUP", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "x - bool", + "inputs": { + "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_G2_ISZERO", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "x - bool", + "inputs": { + "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_PAIRING", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "x_1 y_1 ... x_n y_n n - bool", + "inputs": { + "stack": [ + { + "type": "array", + "name": "components", + "length_var": "n", + "array_entry": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] }, + { "type": "simple", "name": "y", "value_types": ["Slice"] } + ] + }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "BLS_PUSHR", + "doc": { + "category": "app_crypto", + "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": [] + }, + "value_flow": { + "doc_stack": "- r", + "inputs": { "stack": [] }, + "outputs": { + "stack": [ + { "type": "simple", "name": "result", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "CDATASIZEQ", + "doc": { + "category": "app_misc", + "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": [] + }, + "value_flow": { + "doc_stack": "c n - x y z -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "CDATASIZE", + "doc": { + "category": "app_misc", + "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": [] + }, + "value_flow": { + "doc_stack": "c n - x y z", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDATASIZEQ", + "doc": { + "category": "app_misc", + "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": [] + }, + "value_flow": { + "doc_stack": "s n - x y z -1 or 0", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "z", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SDATASIZE", + "doc": { + "category": "app_misc", + "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": [] + }, + "value_flow": { + "doc_stack": "s n - x y z", + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] }, + { "type": "simple", "name": "n", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] }, + { "type": "simple", "name": "z", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDGRAMS", + "doc": { + "category": "app_currency", + "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": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDVARINT16", + "doc": { + "category": "app_currency", + "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": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STGRAMS", + "doc": { + "category": "app_currency", + "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": [] + }, + "value_flow": { + "doc_stack": "b x - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STVARINT16", + "doc": { + "category": "app_currency", + "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": [] + }, + "value_flow": { + "doc_stack": "b x - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDVARUINT32", + "doc": { + "category": "app_currency", + "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": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDVARINT32", + "doc": { + "category": "app_currency", + "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": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STVARUINT32", + "doc": { + "category": "app_currency", + "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": [] + }, + "value_flow": { + "doc_stack": "b x - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STVARINT32", + "doc": { + "category": "app_currency", + "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": [] + }, + "value_flow": { + "doc_stack": "b x - b'", + "inputs": { + "stack": [ + { "type": "simple", "name": "b", "value_types": ["Builder"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "b2", "value_types": ["Builder"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDMSGADDR", + "doc": { + "category": "app_addr", + "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": [] + }, + "value_flow": { + "doc_stack": "s - s' s''", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "s2", "value_types": ["Slice"] }, + { "type": "simple", "name": "s3", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "LDMSGADDRQ", + "doc": { + "category": "app_addr", + "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": [] + }, + "value_flow": { + "doc_stack": "s - s' s'' -1 or s 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { + "value": 0, + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ] + }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "s2", + "value_types": ["Slice"] + }, + { "type": "simple", "name": "s3", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PARSEMSGADDR", + "doc": { + "category": "app_addr", + "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": [] + }, + "value_flow": { + "doc_stack": "s - t", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "PARSEMSGADDRQ", + "doc": { + "category": "app_addr", + "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": [] + }, + "value_flow": { + "doc_stack": "s - t -1 or 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "REWRITESTDADDR", + "doc": { + "category": "app_addr", + "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": [] + }, + "value_flow": { + "doc_stack": "s - x y", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "REWRITESTDADDRQ", + "doc": { + "category": "app_addr", + "description": "A quiet version of primitive `REWRITESTDADDR`.", + "gas": "26", + "fift": "REWRITESTDADDRQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "FA45", + "tlb": "#FA45", + "prefix": "FA45", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x y -1 or 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { + "type": "simple", + "name": "y", + "value_types": ["Integer"] + } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "REWRITEVARADDR", + "doc": { + "category": "app_addr", + "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": [] + }, + "value_flow": { + "doc_stack": "s - x s'", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "REWRITEVARADDRQ", + "doc": { + "category": "app_addr", + "description": "A quiet version of primitive `REWRITEVARADDR`.", + "gas": "26", + "fift": "REWRITEVARADDRQ", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "FA47", + "tlb": "#FA47", + "prefix": "FA47", + "operands": [] + }, + "value_flow": { + "doc_stack": "s - x s' -1 or 0", + "inputs": { + "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + }, + "outputs": { + "stack": [ + { + "type": "conditional", + "name": "status", + "match": [ + { "value": 0, "stack": [] }, + { + "value": -1, + "stack": [ + { + "type": "simple", + "name": "x", + "value_types": ["Integer"] + }, + { "type": "simple", "name": "s'", "value_types": ["Slice"] } + ] + } + ] + }, + { "type": "simple", "name": "status", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SENDRAWMSG", + "doc": { + "category": "app_actions", + "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": [] + }, + "value_flow": { + "doc_stack": "c x - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RAWRESERVE", + "doc": { + "category": "app_actions", + "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": [] + }, + "value_flow": { + "doc_stack": "x y - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "RAWRESERVEX", + "doc": { + "category": "app_actions", + "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": [] + }, + "value_flow": { + "doc_stack": "x D y - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, + { "type": "simple", "name": "y", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETCODE", + "doc": { + "category": "app_actions", + "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": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETLIBCODE", + "doc": { + "category": "app_actions", + "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": [] + }, + "value_flow": { + "doc_stack": "c x - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "CHANGELIB", + "doc": { + "category": "app_actions", + "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": [] + }, + "value_flow": { + "doc_stack": "h x - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "h", "value_types": ["Integer"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SENDMSG", + "doc": { + "category": "app_actions", + "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": [] + }, + "value_flow": { + "doc_stack": "c x - fee", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Cell"] }, + { "type": "simple", "name": "x", "value_types": ["Integer"] } + ] + }, + "outputs": { + "stack": [ + { "type": "simple", "name": "fee", "value_types": ["Integer"] } + ] + } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DUMPSTK", + "doc": { + "category": "debug", + "description": "Dumps the stack (at most the top 255 values) and shows the total stack depth.", + "gas": "26", + "fift": "DUMPSTK", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "FE00", + "tlb": "#FE00", + "prefix": "FE00", + "operands": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DEBUG", + "doc": { + "category": "debug", + "description": "", + "gas": "26", + "fift": "{nn} DEBUG", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "FEnn", + "tlb": "#FE nn:(#<= 239)", + "prefix": "FE", + "operands_range_check": { "length": 8, "from": 1, "to": 19 }, + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "STRDUMP", + "doc": { + "category": "debug", + "description": "", + "gas": "26", + "fift": "STRDUMP", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "FE14", + "tlb": "#FE14", + "prefix": "FE14", + "operands": [] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DEBUG", + "doc": { + "category": "debug", + "description": "", + "gas": "26", + "fift": "{nn} DEBUG", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "FEnn", + "tlb": "#FE nn:(#<= 239)", + "prefix": "FE", + "operands_range_check": { "length": 8, "from": 21, "to": 31 }, + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DUMP", + "doc": { + "category": "debug", + "description": "Dumps `s[i]`.", + "gas": "26", + "fift": "s[i] DUMP", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "FE2i", + "tlb": "#FE2 i:uint4", + "prefix": "FE2", + "operands": [ + { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DEBUG", + "doc": { + "category": "debug", + "description": "", + "gas": "26", + "fift": "{nn} DEBUG", + "fift_examples": [] + }, + "bytecode": { + "doc_opcode": "FEnn", + "tlb": "#FE nn:(#<= 239)", + "prefix": "FE", + "operands_range_check": { "length": 8, "from": 48, "to": 239 }, + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "DEBUGSTR", + "doc": { + "category": "debug", + "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": [] + }, + "bytecode": { + "doc_opcode": "FEFnssss", + "tlb": "#FEF n:(## 4) ssss:((n * 8 + 8) * Bit)", + "prefix": "FEF", + "operands": [ + { + "name": "s", + "loader": "subslice", + "loader_args": { + "bits_length_var_size": 4, + "bits_padding": 8, + "completion_tag": false + } + } + ] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETCP", + "doc": { + "category": "codepage", + "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": [] + }, + "bytecode": { + "doc_opcode": "FFnn", + "tlb": "#FF nn:(#<= 239)", + "prefix": "FF", + "operands_range_check": { "length": 8, "from": 0, "to": 239 }, + "operands": [ + { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } + ] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETCP_SPECIAL", + "doc": { + "category": "codepage", + "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": [] + }, + "bytecode": { + "doc_opcode": "FFFz", + "tlb": "#FFF z:(## 4) {1 <= z}", + "prefix": "FFF", + "operands_range_check": { "length": 4, "from": 1, "to": 15 }, + "operands": [ + { "name": "z", "loader": "uint", "loader_args": { "size": 4 } } + ] + }, + "value_flow": { + "doc_stack": "-", + "inputs": { "stack": [] }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + }, + { + "mnemonic": "SETCPX", + "doc": { + "category": "codepage", + "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": [] + }, + "value_flow": { + "doc_stack": "c - ", + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Integer"] } + ] + }, + "outputs": { "stack": [] } + }, + "control_flow": { "branches": [], "nobranch": true } + } + ], + "aliases": [ + { + "mnemonic": "SWAP", + "alias_of": "XCHG_0I", + "doc_fift": "SWAP", + "doc_stack": "x y - y x", + "description": "Same as `s1 XCHG0`.", + "operands": { "i": 1 } + }, + { + "mnemonic": "DUP", + "alias_of": "PUSH", + "doc_fift": "DUP", + "doc_stack": "x - x x", + "description": "Same as `s0 PUSH`.", + "operands": { "i": 0 } + }, + { + "mnemonic": "OVER", + "alias_of": "PUSH", + "doc_fift": "OVER", + "doc_stack": "x y - x y x", + "description": "Same as `s1 PUSH`.", + "operands": { "i": 1 } + }, + { + "mnemonic": "DROP", + "alias_of": "POP", + "doc_fift": "DROP", + "doc_stack": "x -", + "description": "Same as `s0 POP`, discards the top-of-stack value.", + "operands": { "i": 0 } + }, + { + "mnemonic": "NIP", + "alias_of": "POP", + "doc_fift": "NIP", + "doc_stack": "x y - y", + "description": "Same as `s1 POP`.", + "operands": { "i": 1 } + }, + { + "mnemonic": "ROT2", + "alias_of": "BLKSWAP", + "doc_fift": "ROT2\n2ROT", + "doc_stack": "a b c d e f - c d e f a b", + "description": "Rotates the three topmost pairs of stack entries.", + "operands": { "i": 1, "j": 3 } + }, + { + "mnemonic": "ROLL", + "alias_of": "BLKSWAP", + "doc_fift": "[i+1] ROLL", + "doc_stack": "", + "description": "Rotates the top `i+1` stack entries.\nEquivalent to `1 [i+1] BLKSWAP`.", + "operands": { "i": 0 } + }, + { + "mnemonic": "ROLLREV", + "alias_of": "BLKSWAP", + "doc_fift": "[i+1] -ROLL\n[i+1] ROLLREV", + "doc_stack": "", + "description": "Rotates the top `i+1` stack entries in the other direction.\nEquivalent to `[i+1] 1 BLKSWAP`.", + "operands": {} + }, + { + "mnemonic": "NIL", + "alias_of": "TUPLE", + "doc_fift": "NIL", + "doc_stack": "- t", + "description": "Pushes the only _Tuple_ `t=()` of length zero.", + "operands": { "n": 0 } + }, + { + "mnemonic": "SINGLE", + "alias_of": "TUPLE", + "doc_fift": "SINGLE", + "doc_stack": "x - t", + "description": "Creates a singleton `t:=(x)`, i.e., a _Tuple_ of length one.", + "operands": { "n": 1 } + }, + { + "mnemonic": "PAIR", + "alias_of": "TUPLE", + "doc_fift": "PAIR\nCONS", + "doc_stack": "x y - t", + "description": "Creates pair `t:=(x,y)`.", + "operands": { "n": 2 } + }, + { + "mnemonic": "TRIPLE", + "alias_of": "TUPLE", + "doc_fift": "TRIPLE", + "doc_stack": "x y z - t", + "description": "Creates triple `t:=(x,y,z)`.", + "operands": { "n": 3 } + }, + { + "mnemonic": "FIRST", + "alias_of": "INDEX", + "doc_fift": "FIRST\nCAR", + "doc_stack": "t - x", + "description": "Returns the first element of a _Tuple_.", + "operands": { "k": 0 } + }, + { + "mnemonic": "SECOND", + "alias_of": "INDEX", + "doc_fift": "SECOND\nCDR", + "doc_stack": "t - y", + "description": "Returns the second element of a _Tuple_.", + "operands": { "k": 1 } + }, + { + "mnemonic": "THIRD", + "alias_of": "INDEX", + "doc_fift": "THIRD", + "doc_stack": "t - z", + "description": "Returns the third element of a _Tuple_.", + "operands": { "k": 2 } + }, + { + "mnemonic": "UNSINGLE", + "alias_of": "UNTUPLE", + "doc_fift": "UNSINGLE", + "doc_stack": "t - x", + "description": "Unpacks a singleton `t=(x)`.", + "operands": { "n": 1 } + }, + { + "mnemonic": "UNPAIR", + "alias_of": "UNTUPLE", + "doc_fift": "UNPAIR\nUNCONS", + "doc_stack": "t - x y", + "description": "Unpacks a pair `t=(x,y)`.", + "operands": { "n": 2 } + }, + { + "mnemonic": "UNTRIPLE", + "alias_of": "UNTUPLE", + "doc_fift": "UNTRIPLE", + "doc_stack": "t - x y z", + "description": "Unpacks a triple `t=(x,y,z)`.", + "operands": { "n": 3 } + }, + { + "mnemonic": "CHKTUPLE", + "alias_of": "UNPACKFIRST", + "doc_fift": "CHKTUPLE", + "doc_stack": "t -", + "description": "Checks whether `t` is a _Tuple_. If not, throws a type check exception.", + "operands": { "k": 0 } + }, + { + "mnemonic": "SETFIRST", + "alias_of": "SETINDEX", + "doc_fift": "SETFIRST", + "doc_stack": "t x - t'", + "description": "Sets the first component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", + "operands": { "k": 0 } + }, + { + "mnemonic": "SETSECOND", + "alias_of": "SETINDEX", + "doc_fift": "SETSECOND", + "doc_stack": "t x - t'", + "description": "Sets the second component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", + "operands": { "k": 1 } + }, + { + "mnemonic": "SETTHIRD", + "alias_of": "SETINDEX", + "doc_fift": "SETTHIRD", + "doc_stack": "t x - t'", + "description": "Sets the third component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", + "operands": { "k": 2 } + }, + { + "mnemonic": "FIRSTQ", + "alias_of": "INDEXQ", + "doc_fift": "FIRSTQ\nCARQ", + "doc_stack": "t - x", + "description": "Returns the first element of a _Tuple_.", + "operands": { "k": 0 } + }, + { + "mnemonic": "SECONDQ", + "alias_of": "INDEXQ", + "doc_fift": "SECONDQ\nCDRQ", + "doc_stack": "t - y", + "description": "Returns the second element of a _Tuple_.", + "operands": { "k": 1 } + }, + { + "mnemonic": "THIRDQ", + "alias_of": "INDEXQ", + "doc_fift": "THIRDQ", + "doc_stack": "t - z", + "description": "Returns the third element of a _Tuple_.", + "operands": { "k": 2 } + }, + { + "mnemonic": "SETFIRSTQ", + "alias_of": "SETINDEXQ", + "doc_fift": "SETFIRSTQ", + "doc_stack": "t x - t'", + "description": "Sets the first component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", + "operands": { "k": 0 } + }, + { + "mnemonic": "SETSECONDQ", + "alias_of": "SETINDEXQ", + "doc_fift": "SETSECONDQ", + "doc_stack": "t x - t'", + "description": "Sets the second component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", + "operands": { "k": 1 } + }, + { + "mnemonic": "SETTHIRDQ", + "alias_of": "SETINDEXQ", + "doc_fift": "SETTHIRDQ", + "doc_stack": "t x - t'", + "description": "Sets the third component of _Tuple_ `t` to `x` and returns the resulting _Tuple_ `t'`.", + "operands": { "k": 2 } + }, + { + "mnemonic": "CADR", + "alias_of": "INDEX2", + "doc_fift": "CADR", + "doc_stack": "t - x", + "description": "Recovers `x=(t_2)_1`.", + "operands": { "i": 1, "j": 0 } + }, + { + "mnemonic": "CDDR", + "alias_of": "INDEX2", + "doc_fift": "CDDR", + "doc_stack": "t - x", + "description": "Recovers `x=(t_2)_2`.", + "operands": { "i": 1, "j": 1 } + }, + { + "mnemonic": "CADDR", + "alias_of": "INDEX3", + "doc_fift": "CADDR", + "doc_stack": "t - x", + "description": "Recovers `x=t_2_2_1`.", + "operands": { "i": 1, "j": 1, "k": 0 } + }, + { + "mnemonic": "CDDDR", + "alias_of": "INDEX3", + "doc_fift": "CDDDR", + "doc_stack": "t - x", + "description": "Recovers `x=t_2_2_2`.", + "operands": { "i": 1, "j": 1, "k": 1 } + }, + { + "mnemonic": "ZERO", + "alias_of": "PUSHINT_4", + "doc_fift": "ZERO\nFALSE", + "doc_stack": "- 0", + "description": "", + "operands": { "i": 0 } + }, + { + "mnemonic": "ONE", + "alias_of": "PUSHINT_4", + "doc_fift": "ONE", + "doc_stack": "- 1", + "description": "", + "operands": { "i": 1 } + }, + { + "mnemonic": "TWO", + "alias_of": "PUSHINT_4", + "doc_fift": "TWO", + "doc_stack": "- 2", + "description": "", + "operands": { "i": 2 } + }, + { + "mnemonic": "TEN", + "alias_of": "PUSHINT_4", + "doc_fift": "TEN", + "doc_stack": "- 10", + "description": "", + "operands": { "i": 10 } + }, + { + "mnemonic": "TRUE", + "alias_of": "PUSHINT_4", + "doc_fift": "TRUE", + "doc_stack": "- -1", + "description": "", + "operands": { "i": 15 } + }, + { + "mnemonic": "CHKBOOL", + "alias_of": "FITS", + "doc_fift": "CHKBOOL", + "doc_stack": "x - x", + "description": "Checks whether `x` is a “boolean value'' (i.e., either 0 or -1).", + "operands": { "c": 0 } + }, + { + "mnemonic": "CHKBIT", + "alias_of": "UFITS", + "doc_fift": "CHKBIT", + "doc_stack": "x - x", + "description": "Checks whether `x` is a binary digit (i.e., zero or one).", + "operands": { "c": 0 } + }, + { + "mnemonic": "ISZERO", + "alias_of": "EQINT", + "doc_fift": "ISZERO", + "doc_stack": "x - x=0", + "description": "Checks whether an integer is zero. Corresponds to Forth's `0=`.", + "operands": { "y": 0 } + }, + { + "mnemonic": "ISNEG", + "alias_of": "LESSINT", + "doc_fift": "ISNEG", + "doc_stack": "x - x<0", + "description": "Checks whether an integer is negative. Corresponds to Forth's `0<`.", + "operands": { "y": 0 } + }, + { + "mnemonic": "ISNPOS", + "alias_of": "LESSINT", + "doc_fift": "ISNPOS", + "doc_stack": "x - x<=0", + "description": "Checks whether an integer is non-positive.", + "operands": { "y": 1 } + }, + { + "mnemonic": "ISPOS", + "alias_of": "GTINT", + "doc_fift": "ISPOS", + "doc_stack": "x - x>0", + "description": "Checks whether an integer is positive. Corresponds to Forth's `0>`.", + "operands": { "y": 0 } + }, + { + "mnemonic": "ISNNEG", + "alias_of": "GTINT", + "doc_fift": "ISNNEG", + "doc_stack": "x - x >=0", + "description": "Checks whether an integer is non-negative.", + "operands": { "y": -1 } + }, + { + "mnemonic": "STZERO", + "alias_of": "STSLICECONST", + "doc_fift": "STZERO", + "doc_stack": "b - b'", + "description": "Stores one binary zero.", + "operands": { "x": 0, "y": 0, "sss": "0" } + }, + { + "mnemonic": "STONE", + "alias_of": "STSLICECONST", + "doc_fift": "STONE", + "doc_stack": "b - b'", + "description": "Stores one binary one.", + "operands": { "x": 0, "y": 0, "sss": "1" } + }, + { + "mnemonic": "PLDREF", + "alias_of": "PLDREFIDX", + "doc_fift": "PLDREF", + "doc_stack": "s - c", + "description": "Preloads the first cell reference of a _Slice_.", + "operands": { "n": 0 } + }, + { + "mnemonic": "SETNUMARGS", + "alias_of": "SETCONTARGS_N", + "doc_fift": "[n] SETNUMARGS", + "doc_stack": "c - c'", + "description": "Sets `c.nargs` to `n` plus the current depth of `c`'s stack, where `0 <= n <= 14`. If `c.nargs` is already set to a non-negative value, does nothing.", + "operands": { "r": 0 } + }, + { + "mnemonic": "SETCONTARGS", + "alias_of": "SETCONTARGS_N", + "doc_fift": "[r] -1 SETCONTARGS", + "doc_stack": "x_1 x_2...x_r c - c'", + "description": "Pushes `0 <= r <= 15` values `x_1...x_r` into the stack of (a copy of) the continuation `c`, starting with `x_1`. If the final depth of `c`'s stack turns out to be greater than `c.nargs`, a stack overflow exception is generated.", + "operands": { "n": -1 } + }, + { + "mnemonic": "BLESSNUMARGS", + "alias_of": "BLESSARGS", + "doc_fift": "[n] BLESSNUMARGS", + "doc_stack": "s - c", + "description": "Also transforms a _Slice_ `s` into a _Continuation_ `c`, but sets `c.nargs` to `0 <= n <= 14`.", + "operands": { "r": 0 } + }, + { + "mnemonic": "PUSHROOT", + "alias_of": "PUSHCTR", + "doc_fift": "c4 PUSHCTR\nc4 PUSH", + "doc_stack": "- x", + "description": "Pushes the “global data root'' cell reference, thus enabling access to persistent smart-contract data.", + "operands": { "i": 4 } + }, + { + "mnemonic": "POPROOT", + "alias_of": "POPCTR", + "doc_fift": "c4 POPCTR\nc4 POP", + "doc_stack": "x -", + "description": "Sets the “global data root'' cell reference, thus allowing modification of persistent smart-contract data.", + "operands": { "i": 4 } + }, + { + "mnemonic": "NEWDICT", + "alias_of": "NULL", + "doc_fift": "NEWDICT", + "doc_stack": " - D", + "description": "Returns a new empty dictionary.\nIt is an alternative mnemonics for `PUSHNULL`.", + "operands": {} + }, + { + "mnemonic": "DICTEMPTY", + "alias_of": "ISNULL", + "doc_fift": "DICTEMPTY", + "doc_stack": "D - ?", + "description": "Checks whether dictionary `D` is empty, and returns `-1` or `0` accordingly.\nIt is an alternative mnemonics for `ISNULL`.", + "operands": {} + }, + { + "mnemonic": "STDICTS", + "alias_of": "STSLICE", + "doc_fift": "STDICTS\n", + "doc_stack": "s b - b'", + "description": "Stores a _Slice_-represented dictionary `s` into _Builder_ `b`.\nIt is actually a synonym for `STSLICE`.", + "operands": {} + }, + { + "mnemonic": "NOW", + "alias_of": "GETPARAM", + "doc_fift": "NOW", + "doc_stack": " - x", + "description": "Returns the current Unix time as an _Integer_. If it is impossible to recover the requested value starting from `c7`, throws a type checking or range checking exception as appropriate.\nEquivalent to `3 GETPARAM`.", + "operands": { "i": 3 } + }, + { + "mnemonic": "BLOCKLT", + "alias_of": "GETPARAM", + "doc_fift": "BLOCKLT", + "doc_stack": " - x", + "description": "Returns the starting logical time of the current block.\nEquivalent to `4 GETPARAM`.", + "operands": { "i": 4 } + }, + { + "mnemonic": "LTIME", + "alias_of": "GETPARAM", + "doc_fift": "LTIME", + "doc_stack": " - x", + "description": "Returns the logical time of the current transaction.\nEquivalent to `5 GETPARAM`.", + "operands": { "i": 5 } + }, + { + "mnemonic": "RANDSEED", + "alias_of": "GETPARAM", + "doc_fift": "RANDSEED", + "doc_stack": " - x", + "description": "Returns the current random seed as an unsigned 256-bit _Integer_.\nEquivalent to `6 GETPARAM`.", + "operands": { "i": 6 } + }, + { + "mnemonic": "BALANCE", + "alias_of": "GETPARAM", + "doc_fift": "BALANCE", + "doc_stack": " - t", + "description": "Returns the remaining balance of the smart contract as a _Tuple_ consisting of an _Integer_ (the remaining Gram balance in nanograms) and a _Maybe Cell_ (a dictionary with 32-bit keys representing the balance of “extra currencies'').\nEquivalent to `7 GETPARAM`.\nNote that `RAW` primitives such as `SENDRAWMSG` do not update this field.", + "operands": { "i": 7 } + }, + { + "mnemonic": "MYADDR", + "alias_of": "GETPARAM", + "doc_fift": "MYADDR", + "doc_stack": " - s", + "description": "Returns the internal address of the current smart contract as a _Slice_ with a `MsgAddressInt`. If necessary, it can be parsed further using primitives such as `PARSEMSGADDR` or `REWRITESTDADDR`.\nEquivalent to `8 GETPARAM`.", + "operands": { "i": 8 } + }, + { + "mnemonic": "CONFIGROOT", + "alias_of": "GETPARAM", + "doc_fift": "CONFIGROOT", + "doc_stack": " - D", + "description": "Returns the _Maybe Cell_ `D` with the current global configuration dictionary. Equivalent to `9 GETPARAM `.", + "operands": { "i": 9 } + }, + { + "mnemonic": "MYCODE", + "alias_of": "GETPARAM", + "doc_fift": "MYCODE", + "doc_stack": " - c", + "description": "Retrieves code of smart-contract from c7. Equivalent to `10 GETPARAM `.", + "operands": { "i": 10 } + }, + { + "mnemonic": "INCOMINGVALUE", + "alias_of": "GETPARAM", + "doc_fift": "INCOMINGVALUE", + "doc_stack": " - t", + "description": "Retrieves value of incoming message from c7. Equivalent to `11 GETPARAM `.", + "operands": { "i": 11 } + }, + { + "mnemonic": "STORAGEFEES", + "alias_of": "GETPARAM", + "doc_fift": "STORAGEFEES", + "doc_stack": " - i", + "description": "Retrieves value of storage phase fees from c7. Equivalent to `12 GETPARAM `.", + "operands": { "i": 12 } + }, + { + "mnemonic": "PREVBLOCKSINFOTUPLE", + "alias_of": "GETPARAM", + "doc_fift": "PREVBLOCKSINFOTUPLE", + "doc_stack": " - t", + "description": "Retrives PrevBlocksInfo: `[last_mc_blocks, prev_key_block]` from c7. Equivalent to `13 GETPARAM `.", + "operands": { "i": 13 } + }, + { + "mnemonic": "SETCP0", + "alias_of": "SETCP", + "doc_fift": "SETCP0", + "doc_stack": "-", + "description": "Selects TVM (test) codepage zero as described in this document.", + "operands": { "n": 0 } + } + ] +} diff --git a/schema.json b/schema.json index 0fa4091..18a3a01 100644 --- a/schema.json +++ b/schema.json @@ -65,10 +65,7 @@ "stack": { "$ref": "#/definitions/stack" } - }, - "required": [ - "stack" - ] + } }, "stack": { "type": "array", @@ -520,7 +517,11 @@ } }, "required": [ - "category" + "category", + "description", + "gas", + "fift", + "fift_examples" ] }, "bytecode": { @@ -627,7 +628,8 @@ }, "required": [ "name", - "loader" + "loader", + "loader_args" ], "examples": [ { @@ -666,7 +668,9 @@ }, "required": [ "prefix", - "tlb" + "tlb", + "operands", + "doc_opcode" ] }, "value_flow": { @@ -674,6 +678,7 @@ "title": "Value flow of instruction", "description": "Information related to usage of stack and registers by instruction.", "additionalProperties": false, + "required": ["doc_stack", "inputs", "outputs"], "properties": { "doc_stack": { "type": "string", @@ -698,18 +703,17 @@ "title": "Control flow of instruction", "description": "Information related to current cc modification by instruction", "additionalProperties": false, + "required": ["branches", "nobranch"], "properties": { "branches": { "type": "array", "title": "Possible branches of an instruction", "description": "Array of current continuation possible values after current instruction execution", - "default": [], "items": { "$ref": "#/definitions/continuation" }, "additionalItems": false }, "nobranch": { "type": "boolean", - "default": false, "title": "No branch possibility", "description": "Can this instruction not perform any of specified branches in certain cases (do not modify cc)?" } @@ -719,7 +723,9 @@ "required": [ "mnemonic", "doc", - "bytecode" + "bytecode", + "value_flow", + "control_flow" ] } }, From 434d8ca679e8b5e98f74ff736a0eee5f7aa11438 Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Mon, 26 Feb 2024 23:00:24 +0700 Subject: [PATCH 06/27] Make fift_examples field required --- schema.json | 1 + 1 file changed, 1 insertion(+) diff --git a/schema.json b/schema.json index 18a3a01..40c4c74 100644 --- a/schema.json +++ b/schema.json @@ -497,6 +497,7 @@ "items": { "type": "object", "additionalProperties": false, + "required": ["fift", "description"], "properties": { "fift": { "type": "string", From 2bccac9f447bb77d2a043ad79216567c6dfd2ca0 Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Tue, 27 Feb 2024 21:24:06 +0700 Subject: [PATCH 07/27] Operand upgrade: refactor types, add hints for int ranges and cell properties --- README.md | 105 +-- cp0.json | 2124 +++++++++++++++++++++++++++++++++++++++++++-------- schema.json | 250 ++++-- 3 files changed, 2038 insertions(+), 441 deletions(-) diff --git a/README.md b/README.md index 3f7ed1c..7ac8007 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Based on [instructions.csv](https://github.com/ton-community/ton-docs/blob/main/ | JSON key | Status | Description | ------------ | ----------- | ----------- | doc | ✅ Implemented | Provides human-readable information about instructions. Can be useful to provide integrated docs to user, for example, in disassembler. -| bytecode | ✅ Implemented | Describes instruction encoding. It contains information to determine, which instruction we are currently decoding and how to parse its operands. +| bytecode | ✅ Implemented | Describes instruction encoding. It contains information to build assemblers and disassemblers. | value_flow | ✅ Implemented | Describes how instruction changes current stack. This part of specification allows to analyze how instructions interact with each other, so it becomes possible to implement high-level tools such as decompilers. | control_flow | ✅ Implemented | Describes code flow (operations with cc register). It helps to reconstruct a control flow graph. This part mainly contains semantics of cont_* category instructions. For example, both JMPX and CALLX transfers execution to continuation on stack, but only CALLX returns and JMPX is not. | aliases | ✅ Implemented | Specifies instruction aliases. Can be used to provide to user information about special cases (for example, SWAP is a special case of XCHG_0i with i = 1). @@ -138,97 +138,108 @@ However, nothing can stop you from just copying `cp0.json` (and `schema.json` if | Key | Description | | --- | ----------- | | mnemonic | How instruction is named in [original TVM implementation](https://github.com/ton-blockchain/ton/blob/master/crypto/vm). Not necessarily unique (currently only DEBUG is not unique). Required. -| doc | Free-form human-friendly information which should be used for documentation purposes only. +| doc | Free-form human-friendly information which should be used for documentation purposes only. Required. | doc.category | Category of instruction (examples: cont_loops, stack_basic, dict_get). Required. -| doc.description | Free-form markdown description of instruction. Optional. -| doc.gas | Free-form description of gas amount used by instruction. Optional. -| doc.fift | Free-form fift usage description. Optional. -| doc.fift_examples | Optional array of usage examples in Fift. Each array element is object with `fift` and `description` keys. -| bytecode | 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). -| bytecode.doc_opcode | Free-form bytecode format description. Optional. +| doc.description | Free-form markdown description of instruction. Required. +| doc.gas | Free-form description of gas amount used by instruction. Required. +| doc.fift | Free-form fift usage description. Required. +| doc.fift_examples | Array of usage examples in Fift. Each array element is object with `fift` and `description` keys. Required. +| bytecode | 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). Required. +| bytecode.doc_opcode | Free-form bytecode format description. Required. | bytecode.tlb | TL-b bytecode format description. Required. | bytecode.prefix | Prefix to determine next instruction to parse. It is a hex bitstring as in TL-b (suffixed with `_` if bit length is not divisible by 4, trailing `'1' + '0' * x` must be removed). Required. | bytecode.operands_range_check | In TVM, it is possible for instructions to have overlapping prefixes, so to determine actual instruction it is required to read next `length` bits after prefix as uint `i` and check `from <= i <= to`. Optional, there is no operands check in case of absence. -| bytecode.operands | Describes how to parse operands. Order of objects in this array represents the actual order of operands in instruction. Optional, no operands in case of absence. +| bytecode.operands | Describes how to parse operands. Order of objects in this array represents the actual order of operands in instruction. Required. | bytecode.operands[i].name | Operand variable name. Allowed chars are `a-zA-Z0-9_`, must not begin with digit or underscore and must not end with underscore. Required. -| bytecode.operands[i].loader | Loader function for operand. Must be one of `int`, `uint`, `ref`, `pushint_long`, `subslice`. Loaders are described below. Required. -| bytecode.operands[i].loader_args | Arguments for loader function, specified below. Optional, no arguments in case of absence. -| value_flow | Information related to usage of stack and registers by instruction. Optional. -| value_flow.doc_stack | 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). Optional. -| value_flow.inputs | Incoming values constraints. Input is unconstrained if absent. -| value_flow.inputs.stack | Defines how current stack is used by instruction. Instruction must not operate on stack entries other than defined here. Required. +| bytecode.operands[i].type | Type of operand. Must be one of `int`, `uint`, `ref`, `pushint_long`, `subslice`. Types are described below. Required. +| bytecode.operands[i].* | Additional options for types, specified below. +| value_flow | Information related to usage of stack and registers by instruction. Required. +| value_flow.doc_stack | 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). Required. +| value_flow.inputs | Incoming values constraints. Required. +| value_flow.inputs.stack | Defines how current stack is used by instruction. Instruction must not operate on stack entries other than defined here. Optional, input stack is unconstrained if absent. | value_flow.inputs.stack[i] | Stack entry or group of stack entries. | value_flow.inputs.stack[i].type | Type of stack entry. Can be one of "simple", "const", "conditional", "array". Required. | value_flow.inputs.stack[i].* | Properties for stack entries of each type are described below. -| value_flow.outputs | Outgoing values constraints. Output is unconstrained if absent. Identical to value_flow.inputs. -| control_flow | Information related to current cc modification by instruction. Optional. -| control_flow.branches | Array of possible branches of an instruction. Specifies all possible values of cc after instruction execution. Empty by default (no branches can be taken by instruction). Each branch described by a `Continuation` object described below. -| control_flow.nobranch | Can this instruction not perform any of specified branches in certain cases (do not modify cc)? False by default. +| value_flow.outputs | Outgoing values constraints. Required. Identical to value_flow.inputs. +| control_flow | Information related to current cc modification by instruction. Required. +| control_flow.branches | Array of possible branches of an instruction. Specifies all possible values of cc after instruction execution. Required. Each branch described by a `Continuation` object described below. +| control_flow.nobranch | Can this instruction not perform any of specified branches in certain cases (do not modify cc)? Required. If instruction has no control flow, nobranch is true and branches are empty. -### Loaders Specification and Examples +### Operand Types Specification and Examples #### uint ```json { "name": "i", - "loader": "uint", - "loader_args": { - "size": 4 - } + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 } ``` -Loads unsigned `size`-bit int from bytecode. Argument `size` of type `integer` is required. +Type of unsigned `size`-bit integer. Arguments `size`, `min_value`, `max_value` of type `number` are required. #### int ```json { "name": "i", - "loader": "int", - "loader_args": { - "size": 4 - } + "type": "int", + "size": 4, + "min_value": -8, + "max_value": 7 } ``` -Loads signed `size`-bit int from bytecode. Argument `size` of type `integer` is required. +Type of signed `size`-bit integer. Arguments `size`, `min_value`, `max_value` of type `number` are required. #### ref ```json { "name": "c", - "loader": "ref" + "type": "ref", + "decode_hint": { + "type": "continuation" + } } ``` -Loads a single reference from bytecode. Unlike `subslice` with `refs_add = 1`, should dereference instead of returning empty cell with a single reference. No arguments are required. +Type of a single reference. Unlike `subslice` with `refs_add = 1`, should dereference instead of returning empty cell with a single reference. `decode_hint` is a (non-guarantee) hint for decoders for specific types of slices. `decode_hint.type` is `"plain" | "continuation" | "dictionary"`. For `dictionary` type there is `decode_hint.size_var` field, which specifies variable which stores dictionary key length. #### pushint_long ```json { "name": "x", - "loader": "pushint_long" + "type": "pushint_long" } ``` -Special loader which currently is used only in `PUSHINT_LONG` instruction. Loads 5-bit uint `size` and then loads and returns integer of bit size `8 * size + 19`. No arguments are required. +Special type which currently is used only in `PUSHINT_LONG` instruction. Consists of 5-bit uint `size` and integer of bit size `8 * size + 19`. #### subslice ```json { "name": "slice", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 5, - "bits_padding": 1, - "refs_length_var_size": 2, - "refs_add": 1, - "completion_tag": true - } + "type": "subslice", + "bits_length_var_size": 5, + "refs_length_var_size": 2, + "bits_padding": 1, + "refs_add": 1, + "completion_tag": true, + "max_bits": 248, + "min_bits": 0, + "max_refs": 4, + "min_refs": 1, + "decode_hint": { "type": "plain" } } ``` _TLB notation: `r:(## 2) xx:(## 5) c:((r + 1) * ^Cell) ssss:((8 * xx + 1) * Bit)`_ -Loads `r` uint of size `refs_length_var_size` (if present), `x` uint of size `bits_length_var_size` (if present). Then loads subslice of bit length `x * 8 + bits_padding` and ref count `r + refs_add`. If `completion_tag` argument with value `true` is passed, remove completion tag from bitstring (trailing `'1' + '0' * x`). +Loads `r` uint of size `refs_length_var_size` (if present), `x` uint of size `bits_length_var_size`. Then loads subslice of bit length `x * 8 + bits_padding` and ref count `r + refs_add`. If `completion_tag` argument with value `true` is passed, remove completion tag from bitstring (trailing `'1' + '0' * x`). | Argument | Description | -------- | ----------- -| bits_length_var_size | Size of bit length operand. Optional, assuming this part of bit length is 0 if absent. -| bits_padding | Constant integer value to add to length of bitstring to load. Optional, assuming 0 if absent. -| refs_length_var_size | Size of ref count operand. Optional, assuming this part of ref count is 0 if absent. +| bits_length_var_size | Size of bit length operand. Required. +| bits_padding | Constant integer value to add to length of bitstring to load. Required. +| refs_length_var_size | Size of ref count operand. Optional, assuming no refs if absent. | refs_add | Constant integer value to add to ref count. Optional, assuming 0 if absent. -| completion_tag | Boolean flag, tells to remove trailing `'1' + '0' * x` from bitstring if true. Optional, assuming false if absent. +| completion_tag | Boolean flag, tells to remove trailing `'1' + '0' * x` from bitstring if true. Required. +| max_bits | Hint for maximum bits available to store for this operand. Required. +| min_bits | Hint for minimum bits available to store for this operand. Required. +| max_refs | Hint for maximum refs available to store for this operand. Required. +| min_refs | Hint for minimum refs available to store for this operand. Required. +| decode_hint | Hint for decoders for specific types of slices. Required. `decode_hint.type` is `"plain" | "continuation" | "dictionary"`. For `dictionary` type there is `decode_hint.size_var` field, which specifies variable which stores dictionary key length. ### Stack Entry Specification and Examples diff --git a/cp0.json b/cp0.json index 9c7d606..1321ffe 100644 --- a/cp0.json +++ b/cp0.json @@ -38,7 +38,13 @@ "prefix": "0", "operands_range_check": { "length": 4, "from": 1, "to": 15 }, "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 1, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -59,8 +65,20 @@ "prefix": "10", "operands_range_check": { "length": 4, "from": 1, "to": 15 }, "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 1, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -80,7 +98,13 @@ "tlb": "#11 ii:uint8", "prefix": "11", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "i", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -101,7 +125,13 @@ "prefix": "1", "operands_range_check": { "length": 4, "from": 2, "to": 15 }, "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 2, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -121,7 +151,13 @@ "tlb": "#2 i:uint4", "prefix": "2", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -141,7 +177,13 @@ "tlb": "#3 i:uint4", "prefix": "3", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -161,9 +203,27 @@ "tlb": "#4 i:uint4 j:uint4 k:uint4", "prefix": "4", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "k", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -183,8 +243,20 @@ "tlb": "#50 i:uint4 j:uint4", "prefix": "50", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -204,8 +276,20 @@ "tlb": "#51 i:uint4 j:uint4", "prefix": "51", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -225,8 +309,20 @@ "tlb": "#52 i:uint4 j:uint4", "prefix": "52", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -246,8 +342,20 @@ "tlb": "#53 i:uint4 j:uint4", "prefix": "53", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -267,9 +375,27 @@ "tlb": "#540 i:uint4 j:uint4 k:uint4", "prefix": "540", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "k", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -289,9 +415,27 @@ "tlb": "#541 i:uint4 j:uint4 k:uint4", "prefix": "541", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "k", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -311,9 +455,27 @@ "tlb": "#542 i:uint4 j:uint4 k:uint4", "prefix": "542", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "k", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -333,9 +495,27 @@ "tlb": "#543 i:uint4 j:uint4 k:uint4", "prefix": "543", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "k", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -355,9 +535,27 @@ "tlb": "#544 i:uint4 j:uint4 k:uint4", "prefix": "544", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "k", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -377,9 +575,27 @@ "tlb": "#545 i:uint4 j:uint4 k:uint4", "prefix": "545", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "k", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -399,9 +615,27 @@ "tlb": "#546 i:uint4 j:uint4 k:uint4", "prefix": "546", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "k", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -421,9 +655,27 @@ "tlb": "#547 i:uint4 j:uint4 k:uint4", "prefix": "547", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "k", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -443,8 +695,20 @@ "tlb": "#55 i:uint4 j:uint4", "prefix": "55", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -464,7 +728,13 @@ "tlb": "#56 ii:uint8", "prefix": "56", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "i", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -484,7 +754,13 @@ "tlb": "#57 ii:uint8", "prefix": "57", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "i", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -632,8 +908,20 @@ "tlb": "#5E i:uint4 j:uint4", "prefix": "5E", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -653,7 +941,13 @@ "tlb": "#5F0 i:uint4", "prefix": "5F0", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -674,8 +968,20 @@ "prefix": "5F", "operands_range_check": { "length": 4, "from": 1, "to": 15 }, "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 1, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -928,8 +1234,20 @@ "prefix": "6C", "operands_range_check": { "length": 4, "from": 1, "to": 15 }, "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 1, + "max_value": 15 + }, + { + "name": "j", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, @@ -1003,7 +1321,13 @@ "tlb": "#6F0 n:uint4", "prefix": "6F0", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "n", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -1038,7 +1362,13 @@ "tlb": "#6F1 k:uint4", "prefix": "6F1", "operands": [ - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "k", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -1064,7 +1394,13 @@ "tlb": "#6F2 n:uint4", "prefix": "6F2", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "n", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -1099,7 +1435,13 @@ "tlb": "#6F3 k:uint4", "prefix": "6F3", "operands": [ - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "k", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -1134,7 +1476,13 @@ "tlb": "#6F4 n:uint4", "prefix": "6F4", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "n", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -1170,7 +1518,13 @@ "tlb": "#6F5 k:uint4", "prefix": "6F5", "operands": [ - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "k", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -1203,7 +1557,13 @@ "tlb": "#6F6 k:uint4", "prefix": "6F6", "operands": [ - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "k", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -1231,7 +1591,13 @@ "tlb": "#6F7 k:uint4", "prefix": "6F7", "operands": [ - { "name": "k", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "k", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -2025,8 +2391,20 @@ "tlb": "#6FB i:uint2 j:uint2", "prefix": "6FB", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 2 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 2 } } + { + "name": "i", + "type": "uint", + "size": 2, + "min_value": 0, + "max_value": 3 + }, + { + "name": "j", + "type": "uint", + "size": 2, + "min_value": 0, + "max_value": 3 + } ] }, "value_flow": { @@ -2052,9 +2430,27 @@ "tlb": "#6FE_ i:uint2 j:uint2 k:uint2", "prefix": "6FE_", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 2 } }, - { "name": "j", "loader": "uint", "loader_args": { "size": 2 } }, - { "name": "k", "loader": "uint", "loader_args": { "size": 2 } } + { + "name": "i", + "type": "uint", + "size": 2, + "min_value": 0, + "max_value": 3 + }, + { + "name": "j", + "type": "uint", + "size": 2, + "min_value": 0, + "max_value": 3 + }, + { + "name": "k", + "type": "uint", + "size": 2, + "min_value": 0, + "max_value": 3 + } ] }, "value_flow": { @@ -2080,7 +2476,13 @@ "tlb": "#7 i:uint4", "prefix": "7", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -2108,7 +2510,13 @@ "tlb": "#80 xx:int8", "prefix": "80", "operands": [ - { "name": "x", "loader": "int", "loader_args": { "size": 8 } } + { + "name": "x", + "type": "int", + "size": 8, + "min_value": -128, + "max_value": 127 + } ] }, "value_flow": { @@ -2136,7 +2544,13 @@ "tlb": "#81 xxxx:int16", "prefix": "81", "operands": [ - { "name": "x", "loader": "int", "loader_args": { "size": 16 } } + { + "name": "x", + "type": "int", + "size": 16, + "min_value": -32768, + "max_value": 32767 + } ] }, "value_flow": { @@ -2165,7 +2579,10 @@ "prefix": "82", "operands_range_check": { "length": 5, "from": 0, "to": 30 }, "operands": [ - { "name": "x", "loader": "pushint_long", "loader_args": {} } + { + "name": "x", + "type": "pushint_long" + } ] }, "value_flow": { @@ -2194,7 +2611,13 @@ "prefix": "83", "operands_range_check": { "length": 8, "from": 0, "to": 254 }, "operands": [ - { "name": "x", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "x", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 254 + } ] }, "value_flow": { @@ -2246,7 +2669,13 @@ "tlb": "#84 xx:uint8", "prefix": "84", "operands": [ - { "name": "x", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "x", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -2274,7 +2703,13 @@ "tlb": "#85 xx:uint8", "prefix": "85", "operands": [ - { "name": "x", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "x", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -2301,7 +2736,9 @@ "doc_opcode": "88", "tlb": "#88 c:^Cell", "prefix": "88", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + "operands": [ + { "name": "c", "type": "ref", "decode_hint": { "type": "plain" } } + ] }, "value_flow": { "doc_stack": "- c", @@ -2327,7 +2764,9 @@ "doc_opcode": "89", "tlb": "#89 c:^Cell", "prefix": "89", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + "operands": [ + { "name": "c", "type": "ref", "decode_hint": { "type": "plain" } } + ] }, "value_flow": { "doc_stack": "- s", @@ -2353,7 +2792,13 @@ "doc_opcode": "8A", "tlb": "#8A c:^Cell", "prefix": "8A", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + "operands": [ + { + "name": "c", + "type": "ref", + "decode_hint": { "type": "continuation" } + } + ] }, "value_flow": { "doc_stack": "- cont", @@ -2386,12 +2831,15 @@ "operands": [ { "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 4, - "bits_padding": 4, - "completion_tag": true - } + "type": "subslice", + "bits_length_var_size": 4, + "bits_padding": 4, + "completion_tag": true, + "max_bits": 123, + "min_bits": 0, + "max_refs": 0, + "min_refs": 0, + "decode_hint": { "type": "plain" } } ] }, @@ -2422,14 +2870,17 @@ "operands": [ { "name": "slice", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 5, - "bits_padding": 1, - "refs_length_var_size": 2, - "refs_add": 1, - "completion_tag": true - } + "type": "subslice", + "bits_length_var_size": 5, + "refs_length_var_size": 2, + "bits_padding": 1, + "refs_add": 1, + "completion_tag": true, + "max_bits": 248, + "min_bits": 0, + "max_refs": 4, + "min_refs": 1, + "decode_hint": { "type": "plain" } } ] }, @@ -2470,14 +2921,17 @@ "operands": [ { "name": "slice", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 7, - "bits_padding": 6, - "refs_length_var_size": 3, - "completion_tag": true, - "refs_add": 0 - } + "type": "subslice", + "bits_length_var_size": 7, + "refs_length_var_size": 3, + "bits_padding": 6, + "refs_add": 0, + "completion_tag": true, + "max_bits": 1021, + "min_bits": 0, + "max_refs": 4, + "min_refs": 0, + "decode_hint": { "type": "plain" } } ] }, @@ -2508,14 +2962,17 @@ "operands": [ { "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 7, - "bits_padding": 0, - "refs_length_var_size": 2, - "refs_add": 0, - "completion_tag": false - } + "type": "subslice", + "bits_length_var_size": 7, + "refs_length_var_size": 2, + "bits_padding": 0, + "refs_add": 0, + "completion_tag": false, + "max_bits": 1016, + "min_bits": 0, + "max_refs": 3, + "min_refs": 0, + "decode_hint": { "type": "plain" } } ] }, @@ -2555,12 +3012,15 @@ "operands": [ { "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 4, - "bits_padding": 0, - "completion_tag": false - } + "type": "subslice", + "bits_length_var_size": 4, + "bits_padding": 0, + "completion_tag": false, + "max_bits": 120, + "min_bits": 0, + "max_refs": 0, + "min_refs": 0, + "decode_hint": { "type": "plain" } } ] }, @@ -2772,7 +3232,13 @@ "tlb": "#A6 cc:int8", "prefix": "A6", "operands": [ - { "name": "c", "loader": "int", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "int", + "size": 8, + "min_value": -128, + "max_value": 127 + } ] }, "value_flow": { @@ -2804,7 +3270,13 @@ "tlb": "#A7 cc:int8", "prefix": "A7", "operands": [ - { "name": "c", "loader": "int", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "int", + "size": 8, + "min_value": -128, + "max_value": 127 + } ] }, "value_flow": { @@ -3598,7 +4070,13 @@ "tlb": "#A930 tt:uint8", "prefix": "A930", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -3632,7 +4110,13 @@ "tlb": "#A931 tt:uint8", "prefix": "A931", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -3666,7 +4150,13 @@ "tlb": "#A932 tt:uint8", "prefix": "A932", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -3700,7 +4190,13 @@ "tlb": "#A935 tt:uint8", "prefix": "A935", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -3732,7 +4228,13 @@ "tlb": "#A936 tt:uint8", "prefix": "A936", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -3764,7 +4266,13 @@ "tlb": "#A938 tt:uint8", "prefix": "A938", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -3796,7 +4304,13 @@ "tlb": "#A939 tt:uint8", "prefix": "A939", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -3828,7 +4342,13 @@ "tlb": "#A93A tt:uint8", "prefix": "A93A", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -3860,7 +4380,13 @@ "tlb": "#A93C tt:uint8", "prefix": "A93C", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -3893,7 +4419,13 @@ "tlb": "#A93D tt:uint8", "prefix": "A93D", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -3926,7 +4458,13 @@ "tlb": "#A93E tt:uint8", "prefix": "A93E", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -4742,7 +5280,13 @@ "tlb": "#A9B0 tt:uint8", "prefix": "A9B0", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -4776,7 +5320,13 @@ "tlb": "#A9B1 tt:uint8", "prefix": "A9B1", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -4810,7 +5360,13 @@ "tlb": "#A9B2 tt:uint8", "prefix": "A9B2", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -4844,7 +5400,13 @@ "tlb": "#A9B4 tt:uint8", "prefix": "A9B4", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -4877,7 +5439,13 @@ "tlb": "#A9B5 tt:uint8", "prefix": "A9B5", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -4910,7 +5478,13 @@ "tlb": "#A9B6 tt:uint8", "prefix": "A9B6", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -4943,7 +5517,13 @@ "tlb": "#A9B8 tt:uint8", "prefix": "A9B8", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -4976,7 +5556,13 @@ "tlb": "#A9B9 tt:uint8", "prefix": "A9B9", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -5009,7 +5595,13 @@ "tlb": "#A9BA tt:uint8", "prefix": "A9BA", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -5522,7 +6114,13 @@ "tlb": "#A9D0 tt:uint8", "prefix": "A9D0", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -5556,7 +6154,13 @@ "tlb": "#A9D1 tt:uint8", "prefix": "A9D1", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -5590,7 +6194,13 @@ "tlb": "#A9D2 tt:uint8", "prefix": "A9D2", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -5624,7 +6234,13 @@ "tlb": "#A9D4 tt:uint8", "prefix": "A9D4", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -5657,7 +6273,13 @@ "tlb": "#A9D5 tt:uint8", "prefix": "A9D5", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -5690,7 +6312,13 @@ "tlb": "#A9D6 tt:uint8", "prefix": "A9D6", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -5723,7 +6351,13 @@ "tlb": "#A9D8 tt:uint8", "prefix": "A9D8", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -5756,7 +6390,13 @@ "tlb": "#A9D9 tt:uint8", "prefix": "A9D9", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -5789,7 +6429,13 @@ "tlb": "#A9DA tt:uint8", "prefix": "A9DA", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -5822,7 +6468,13 @@ "tlb": "#A9DC tt:uint8", "prefix": "A9DC", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -5855,7 +6507,13 @@ "tlb": "#A9DD tt:uint8", "prefix": "A9DD", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -5888,7 +6546,13 @@ "tlb": "#A9DE tt:uint8", "prefix": "A9DE", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -5921,7 +6585,13 @@ "tlb": "#AA cc:uint8", "prefix": "AA", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -5953,7 +6623,13 @@ "tlb": "#AB cc:uint8", "prefix": "AB", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -6200,7 +6876,13 @@ "tlb": "#B4 cc:uint8", "prefix": "B4", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -6232,7 +6914,13 @@ "tlb": "#B5 cc:uint8", "prefix": "B5", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -7455,7 +8143,13 @@ "tlb": "#B7A930 tt:uint8", "prefix": "B7A930", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -7489,7 +8183,13 @@ "tlb": "#B7A931 tt:uint8", "prefix": "B7A931", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -7523,7 +8223,13 @@ "tlb": "#B7A932 tt:uint8", "prefix": "B7A932", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -7557,7 +8263,13 @@ "tlb": "#B7A935 tt:uint8", "prefix": "B7A935", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -7589,7 +8301,13 @@ "tlb": "#B7A936 tt:uint8", "prefix": "B7A936", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -7621,7 +8339,13 @@ "tlb": "#B7A938 tt:uint8", "prefix": "B7A938", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -7653,7 +8377,13 @@ "tlb": "#B7A939 tt:uint8", "prefix": "B7A939", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -7685,7 +8415,13 @@ "tlb": "#B7A93A tt:uint8", "prefix": "B7A93A", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -7717,7 +8453,13 @@ "tlb": "#A93C tt:uint8", "prefix": "A93C", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -7750,7 +8492,13 @@ "tlb": "#A93D tt:uint8", "prefix": "A93D", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -7783,7 +8531,13 @@ "tlb": "#B7A93E tt:uint8", "prefix": "B7A93E", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -8598,7 +9352,13 @@ "tlb": "#B7A9B0 tt:uint8", "prefix": "B7A9B0", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -8632,7 +9392,13 @@ "tlb": "#B7A9B1 tt:uint8", "prefix": "B7A9B1", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -8666,7 +9432,13 @@ "tlb": "#B7A9B2 tt:uint8", "prefix": "B7A9B2", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -8700,7 +9472,13 @@ "tlb": "#B7A9B4 tt:uint8", "prefix": "B7A9B4", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -8733,7 +9511,13 @@ "tlb": "#B7A9B5 tt:uint8", "prefix": "B7A9B5", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -8766,7 +9550,13 @@ "tlb": "#B7A9B6 tt:uint8", "prefix": "B7A9B6", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -8799,7 +9589,13 @@ "tlb": "#B7A9B8 tt:uint8", "prefix": "B7A9B8", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -8832,7 +9628,13 @@ "tlb": "#B7A9B9 tt:uint8", "prefix": "B7A9B9", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -8865,7 +9667,13 @@ "tlb": "#B7A9BA tt:uint8", "prefix": "B7A9BA", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -9378,7 +10186,13 @@ "tlb": "#B7A9D0 tt:uint8", "prefix": "B7A9D0", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -9412,7 +10226,13 @@ "tlb": "#B7A9D1 tt:uint8", "prefix": "B7A9D1", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -9446,7 +10266,13 @@ "tlb": "#B7A9D2 tt:uint8", "prefix": "B7A9D2", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -9480,7 +10306,13 @@ "tlb": "#B7A9D4 tt:uint8", "prefix": "B7A9D4", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -9513,7 +10345,13 @@ "tlb": "#B7A9D5 tt:uint8", "prefix": "B7A9D5", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -9546,7 +10384,13 @@ "tlb": "#B7A9D6 tt:uint8", "prefix": "B7A9D6", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -9579,7 +10423,13 @@ "tlb": "#B7A9D8 tt:uint8", "prefix": "B7A9D8", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -9612,7 +10462,13 @@ "tlb": "#B7A9D9 tt:uint8", "prefix": "B7A9D9", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -9645,7 +10501,13 @@ "tlb": "#B7A9DA tt:uint8", "prefix": "B7A9DA", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -9678,7 +10540,13 @@ "tlb": "#B7A9DC tt:uint8", "prefix": "B7A9DC", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -9711,7 +10579,13 @@ "tlb": "#B7A9DD tt:uint8", "prefix": "B7A9DD", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -9744,7 +10618,13 @@ "tlb": "#B7A9DE tt:uint8", "prefix": "B7A9DE", "operands": [ - { "name": "t", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -9777,7 +10657,13 @@ "tlb": "#B7AA cc:uint8", "prefix": "B7AA", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -9809,7 +10695,13 @@ "tlb": "#B7AB cc:uint8", "prefix": "B7AB", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -10056,7 +10948,13 @@ "tlb": "#B7B4 cc:uint8", "prefix": "B7B4", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -10088,7 +10986,13 @@ "tlb": "#B7B5 cc:uint8", "prefix": "B7B5", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -10429,7 +11333,13 @@ "tlb": "#C0 yy:int8", "prefix": "C0", "operands": [ - { "name": "y", "loader": "int", "loader_args": { "size": 8 } } + { + "name": "y", + "type": "int", + "size": 8, + "min_value": -128, + "max_value": 127 + } ] }, "value_flow": { @@ -10461,7 +11371,13 @@ "tlb": "#C1 yy:int8", "prefix": "C1", "operands": [ - { "name": "y", "loader": "int", "loader_args": { "size": 8 } } + { + "name": "y", + "type": "int", + "size": 8, + "min_value": -128, + "max_value": 127 + } ] }, "value_flow": { @@ -10493,7 +11409,13 @@ "tlb": "#C2 yy:int8", "prefix": "C2", "operands": [ - { "name": "y", "loader": "int", "loader_args": { "size": 8 } } + { + "name": "y", + "type": "int", + "size": 8, + "min_value": -128, + "max_value": 127 + } ] }, "value_flow": { @@ -10525,7 +11447,13 @@ "tlb": "#C3 yy:int8", "prefix": "C3", "operands": [ - { "name": "y", "loader": "int", "loader_args": { "size": 8 } } + { + "name": "y", + "type": "int", + "size": 8, + "min_value": -128, + "max_value": 127 + } ] }, "value_flow": { @@ -11201,7 +12129,13 @@ "tlb": "#CA cc:uint8", "prefix": "CA", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -11234,7 +12168,13 @@ "tlb": "#CB cc:uint8", "prefix": "CB", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -11800,7 +12740,13 @@ "tlb": "#CF08 cc:uint8", "prefix": "CF08", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -11833,7 +12779,13 @@ "tlb": "#CF09 cc:uint8", "prefix": "CF09", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -11866,7 +12818,13 @@ "tlb": "#CF0A cc:uint8", "prefix": "CF0A", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -11899,7 +12857,13 @@ "tlb": "#CF0B cc:uint8", "prefix": "CF0B", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -11932,7 +12896,13 @@ "tlb": "#CF0C cc:uint8", "prefix": "CF0C", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -12011,7 +12981,13 @@ "tlb": "#CF0D cc:uint8", "prefix": "CF0D", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -12090,7 +13066,13 @@ "tlb": "#CF0E cc:uint8", "prefix": "CF0E", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -12169,7 +13151,13 @@ "tlb": "#CF0F cc:uint8", "prefix": "CF0F", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -12975,7 +13963,9 @@ "doc_opcode": "CF20", "tlb": "#CF20 c:^Cell", "prefix": "CF20", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + "operands": [ + { "name": "c", "type": "ref", "decode_hint": { "type": "plain" } } + ] }, "value_flow": { "doc_stack": "b - b’", @@ -13401,7 +14391,13 @@ "tlb": "#CF38 cc:uint8", "prefix": "CF38", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -13511,7 +14507,13 @@ "tlb": "#CF3C cc:uint8", "prefix": "CF3C", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -13733,14 +14735,17 @@ "operands": [ { "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 3, - "bits_padding": 2, - "refs_length_var_size": 2, - "completion_tag": true, - "refs_add": 0 - } + "type": "subslice", + "bits_length_var_size": 3, + "refs_length_var_size": 2, + "bits_padding": 2, + "refs_add": 0, + "completion_tag": true, + "max_bits": 57, + "min_bits": 0, + "max_refs": 3, + "min_refs": 0, + "decode_hint": { "type": "plain" } } ] }, @@ -13823,7 +14828,13 @@ "tlb": "#D2 cc:uint8", "prefix": "D2", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -13854,7 +14865,13 @@ "tlb": "#D3 cc:uint8", "prefix": "D3", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -13943,7 +14960,13 @@ "tlb": "#D6 cc:uint8", "prefix": "D6", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -14304,7 +15327,13 @@ "tlb": "#D708 cc:uint8", "prefix": "D708", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -14335,7 +15364,13 @@ "tlb": "#D709 cc:uint8", "prefix": "D709", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -14366,7 +15401,13 @@ "tlb": "#D70A cc:uint8", "prefix": "D70A", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -14396,7 +15437,13 @@ "tlb": "#D70B cc:uint8", "prefix": "D70B", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -14426,7 +15473,13 @@ "tlb": "#D70C cc:uint8", "prefix": "D70C", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -14479,7 +15532,13 @@ "tlb": "#D70D cc:uint8", "prefix": "D70D", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -14532,7 +15591,13 @@ "tlb": "#D70E cc:uint8", "prefix": "D70E", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -14579,7 +15644,13 @@ "tlb": "#D70F cc:uint8", "prefix": "D70F", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -14626,7 +15697,13 @@ "tlb": "#D714_ c:uint3", "prefix": "D714_", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 3 } } + { + "name": "c", + "type": "uint", + "size": 3, + "min_value": 0, + "max_value": 7 + } ] }, "value_flow": { @@ -14818,7 +15895,13 @@ "tlb": "#D71C cc:uint8", "prefix": "D71C", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -14849,7 +15932,13 @@ "tlb": "#D71D cc:uint8", "prefix": "D71D", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -14879,7 +15968,13 @@ "tlb": "#D71E cc:uint8", "prefix": "D71E", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -14932,7 +16027,13 @@ "tlb": "#D71F cc:uint8", "prefix": "D71F", "operands": [ - { "name": "c", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -15213,12 +16314,15 @@ "operands": [ { "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 7, - "bits_padding": 3, - "completion_tag": true - } + "type": "subslice", + "bits_length_var_size": 7, + "bits_padding": 3, + "completion_tag": true, + "max_bits": 1018, + "min_bits": 0, + "max_refs": 0, + "min_refs": 0, + "decode_hint": { "type": "plain" } } ] }, @@ -15251,12 +16355,15 @@ "operands": [ { "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 7, - "bits_padding": 3, - "completion_tag": true - } + "type": "subslice", + "bits_length_var_size": 7, + "bits_padding": 3, + "completion_tag": true, + "max_bits": 1018, + "min_bits": 0, + "max_refs": 0, + "min_refs": 0, + "decode_hint": { "type": "plain" } } ] }, @@ -15946,7 +17053,13 @@ "tlb": "#D74E_ n:uint2", "prefix": "D74E_", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 2 } } + { + "name": "n", + "type": "uint", + "size": 2, + "min_value": 0, + "max_value": 3 + } ] }, "value_flow": { @@ -16801,8 +17914,20 @@ "tlb": "#DA p:uint4 r:uint4", "prefix": "DA", "operands": [ - { "name": "p", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "r", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "p", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "r", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -16850,7 +17975,13 @@ "tlb": "#DB0 p:uint4", "prefix": "DB0", "operands": [ - { "name": "p", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "p", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -16898,7 +18029,13 @@ "tlb": "#DB1 p:uint4", "prefix": "DB1", "operands": [ - { "name": "p", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "p", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -16935,7 +18072,13 @@ "tlb": "#DB2 r:uint4", "prefix": "DB2", "operands": [ - { "name": "r", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "r", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -17111,8 +18254,20 @@ "tlb": "#DB36 p:uint4 r:uint4", "prefix": "DB36", "operands": [ - { "name": "p", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "r", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "p", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "r", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -17317,7 +18472,13 @@ "doc_opcode": "DB3C", "tlb": "#DB3C c:^Cell", "prefix": "DB3C", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + "operands": [ + { + "name": "c", + "type": "ref", + "decode_hint": { "type": "continuation" } + } + ] }, "value_flow": { "doc_stack": "", @@ -17353,7 +18514,13 @@ "doc_opcode": "DB3D", "tlb": "#DB3D c:^Cell", "prefix": "DB3D", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + "operands": [ + { + "name": "c", + "type": "ref", + "decode_hint": { "type": "continuation" } + } + ] }, "value_flow": { "doc_stack": "", @@ -17378,7 +18545,13 @@ "doc_opcode": "DB3E", "tlb": "#DB3E c:^Cell", "prefix": "DB3E", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + "operands": [ + { + "name": "c", + "type": "ref", + "decode_hint": { "type": "continuation" } + } + ] }, "value_flow": { "doc_stack": "", @@ -17749,7 +18922,13 @@ "doc_opcode": "E300", "tlb": "#E300 c:^Cell", "prefix": "E300", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + "operands": [ + { + "name": "c", + "type": "ref", + "decode_hint": { "type": "continuation" } + } + ] }, "value_flow": { "doc_stack": "f - ", @@ -17789,7 +18968,13 @@ "doc_opcode": "E301", "tlb": "#E301 c:^Cell", "prefix": "E301", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + "operands": [ + { + "name": "c", + "type": "ref", + "decode_hint": { "type": "continuation" } + } + ] }, "value_flow": { "doc_stack": "f - ", @@ -17829,7 +19014,13 @@ "doc_opcode": "E302", "tlb": "#E302 c:^Cell", "prefix": "E302", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + "operands": [ + { + "name": "c", + "type": "ref", + "decode_hint": { "type": "continuation" } + } + ] }, "value_flow": { "doc_stack": "f - ", @@ -17858,7 +19049,13 @@ "doc_opcode": "E303", "tlb": "#E303 c:^Cell", "prefix": "E303", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + "operands": [ + { + "name": "c", + "type": "ref", + "decode_hint": { "type": "continuation" } + } + ] }, "value_flow": { "doc_stack": "f - ", @@ -18001,7 +19198,13 @@ "doc_opcode": "E30D", "tlb": "#E30D c:^Cell", "prefix": "E30D", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + "operands": [ + { + "name": "c", + "type": "ref", + "decode_hint": { "type": "continuation" } + } + ] }, "value_flow": { "doc_stack": "f c -", @@ -18052,7 +19255,13 @@ "doc_opcode": "E30E", "tlb": "#E30E c:^Cell", "prefix": "E30E", - "operands": [{ "name": "c", "loader": "ref", "loader_args": {} }] + "operands": [ + { + "name": "c", + "type": "ref", + "decode_hint": { "type": "continuation" } + } + ] }, "value_flow": { "doc_stack": "f c -", @@ -18104,8 +19313,16 @@ "tlb": "#E30F c1:^Cell c2:^Cell", "prefix": "E30F", "operands": [ - { "name": "c1", "loader": "ref", "loader_args": {} }, - { "name": "c2", "loader": "ref", "loader_args": {} } + { + "name": "c1", + "type": "ref", + "decode_hint": { "type": "continuation" } + }, + { + "name": "c2", + "type": "ref", + "decode_hint": { "type": "continuation" } + } ] }, "value_flow": { @@ -18157,7 +19374,13 @@ "tlb": "#E39_ n:uint5", "prefix": "E39_", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 5 } } + { + "name": "n", + "type": "uint", + "size": 5, + "min_value": 0, + "max_value": 31 + } ] }, "value_flow": { @@ -18193,7 +19416,13 @@ "tlb": "#E3B_ n:uint5", "prefix": "E3B_", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 5 } } + { + "name": "n", + "type": "uint", + "size": 5, + "min_value": 0, + "max_value": 31 + } ] }, "value_flow": { @@ -18229,8 +19458,18 @@ "tlb": "#E3D_ n:uint5 c:^Cell", "prefix": "E3D_", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 5 } }, - { "name": "c", "loader": "ref", "loader_args": {} } + { + "name": "n", + "type": "uint", + "size": 5, + "min_value": 0, + "max_value": 31 + }, + { + "name": "c", + "type": "ref", + "decode_hint": { "type": "continuation" } + } ] }, "value_flow": { @@ -18265,8 +19504,18 @@ "tlb": "#E3F_ n:uint5 c:^Cell", "prefix": "E3F_", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 5 } }, - { "name": "c", "loader": "ref", "loader_args": {} } + { + "name": "n", + "type": "uint", + "size": 5, + "min_value": 0, + "max_value": 31 + }, + { + "name": "c", + "type": "ref", + "decode_hint": { "type": "continuation" } + } ] }, "value_flow": { @@ -19007,8 +20256,20 @@ "tlb": "#EC r:uint4 n:uint4", "prefix": "EC", "operands": [ - { "name": "r", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "r", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "n", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -19046,7 +20307,13 @@ "tlb": "#ED0 p:uint4", "prefix": "ED0", "operands": [ - { "name": "p", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "p", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { "doc_stack": "-", "inputs": {}, "outputs": {} }, @@ -19219,8 +20486,20 @@ "tlb": "#EE r:uint4 n:uint4", "prefix": "EE", "operands": [ - { "name": "r", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "n", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "r", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "n", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -19258,7 +20537,13 @@ "tlb": "#ED4 i:uint4", "prefix": "ED4", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -19282,7 +20567,13 @@ "tlb": "#ED5 i:uint4", "prefix": "ED5", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -19306,7 +20597,13 @@ "tlb": "#ED6 i:uint4", "prefix": "ED6", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -19339,7 +20636,13 @@ "tlb": "#ED7 i:uint4", "prefix": "ED7", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -19363,7 +20666,13 @@ "tlb": "#ED8 i:uint4", "prefix": "ED8", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -19387,7 +20696,13 @@ "tlb": "#ED9 i:uint4", "prefix": "ED9", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -19411,7 +20726,13 @@ "tlb": "#EDA i:uint4", "prefix": "EDA", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -19435,7 +20756,13 @@ "tlb": "#EDB i:uint4", "prefix": "EDB", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -19459,7 +20786,13 @@ "tlb": "#EDC i:uint4", "prefix": "EDC", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -19943,7 +21276,13 @@ "tlb": "#F0 n:uint8", "prefix": "F0", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "n", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } ] }, "value_flow": { @@ -19985,7 +21324,13 @@ "tlb": "#F12_ n:uint14", "prefix": "F12_", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 14 } } + { + "name": "n", + "type": "uint", + "size": 14, + "min_value": 0, + "max_value": 16383 + } ] }, "value_flow": { @@ -20027,7 +21372,13 @@ "tlb": "#F16_ n:uint14", "prefix": "F16_", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 14 } } + { + "name": "n", + "type": "uint", + "size": 14, + "min_value": 0, + "max_value": 16383 + } ] }, "value_flow": { @@ -20058,7 +21409,13 @@ "tlb": "#F1A_ n:uint14", "prefix": "F1A_", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 14 } } + { + "name": "n", + "type": "uint", + "size": 14, + "min_value": 0, + "max_value": 16383 + } ] }, "value_flow": { @@ -20087,7 +21444,13 @@ "tlb": "#F22_ n:uint6", "prefix": "F22_", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 6 } } + { + "name": "n", + "type": "uint", + "size": 6, + "min_value": 0, + "max_value": 63 + } ] }, "value_flow": { @@ -20111,7 +21474,13 @@ "tlb": "#F26_ n:uint6", "prefix": "F26_", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 6 } } + { + "name": "n", + "type": "uint", + "size": 6, + "min_value": 0, + "max_value": 63 + } ] }, "value_flow": { @@ -20139,7 +21508,13 @@ "tlb": "#F2A_ n:uint6", "prefix": "F2A_", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 6 } } + { + "name": "n", + "type": "uint", + "size": 6, + "min_value": 0, + "max_value": 63 + } ] }, "value_flow": { @@ -20167,7 +21542,13 @@ "tlb": "#F2C4_ n:uint11", "prefix": "F2C4_", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } + { + "name": "n", + "type": "uint", + "size": 11, + "min_value": 0, + "max_value": 2047 + } ] }, "value_flow": { @@ -20191,7 +21572,13 @@ "tlb": "#F2CC_ n:uint11", "prefix": "F2CC_", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } + { + "name": "n", + "type": "uint", + "size": 11, + "min_value": 0, + "max_value": 2047 + } ] }, "value_flow": { @@ -20215,7 +21602,13 @@ "tlb": "#F2D4_ n:uint11", "prefix": "F2D4_", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } + { + "name": "n", + "type": "uint", + "size": 11, + "min_value": 0, + "max_value": 2047 + } ] }, "value_flow": { @@ -20243,7 +21636,13 @@ "tlb": "#F2DC_ n:uint11", "prefix": "F2DC_", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } + { + "name": "n", + "type": "uint", + "size": 11, + "min_value": 0, + "max_value": 2047 + } ] }, "value_flow": { @@ -20272,7 +21671,13 @@ "tlb": "#F2E4_ n:uint11", "prefix": "F2E4_", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } + { + "name": "n", + "type": "uint", + "size": 11, + "min_value": 0, + "max_value": 2047 + } ] }, "value_flow": { @@ -20300,7 +21705,13 @@ "tlb": "#F2EC_ n:uint11", "prefix": "F2EC_", "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 11 } } + { + "name": "n", + "type": "uint", + "size": 11, + "min_value": 0, + "max_value": 2047 + } ] }, "value_flow": { @@ -20557,8 +21968,20 @@ "tlb": "#F3 p:uint4 r:uint4", "prefix": "F3", "operands": [ - { "name": "p", "loader": "uint", "loader_args": { "size": 4 } }, - { "name": "r", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "p", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + }, + { + "name": "r", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -26975,8 +28398,18 @@ "tlb": "#F4A6_ d:^Cell n:uint10", "prefix": "F4A6_", "operands": [ - { "name": "d", "loader": "ref", "loader_args": {} }, - { "name": "n", "loader": "uint", "loader_args": { "size": 10 } } + { + "name": "d", + "type": "ref", + "decode_hint": { "type": "dictionary", "size_var": "n" } + }, + { + "name": "n", + "type": "uint", + "size": 10, + "min_value": 0, + "max_value": 1023 + } ] }, "value_flow": { @@ -27167,8 +28600,18 @@ "tlb": "#F4AE_ d:^Cell n:uint10", "prefix": "F4AE_", "operands": [ - { "name": "d", "loader": "ref", "loader_args": {} }, - { "name": "n", "loader": "uint", "loader_args": { "size": 10 } } + { + "name": "d", + "type": "ref", + "decode_hint": { "type": "dictionary", "size_var": "n" } + }, + { + "name": "n", + "type": "uint", + "size": 10, + "min_value": 0, + "max_value": 1023 + } ] }, "value_flow": { @@ -27719,7 +29162,13 @@ "tlb": "#F82 i:uint4", "prefix": "F82", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -27948,7 +29397,13 @@ "prefix": "F85_", "operands_range_check": { "length": 5, "from": 1, "to": 31 }, "operands": [ - { "name": "k", "loader": "uint", "loader_args": { "size": 5 } } + { + "name": "k", + "type": "uint", + "size": 5, + "min_value": 1, + "max_value": 31 + } ] }, "value_flow": { @@ -28000,7 +29455,13 @@ "prefix": "F87_", "operands_range_check": { "length": 5, "from": 1, "to": 31 }, "operands": [ - { "name": "k", "loader": "uint", "loader_args": { "size": 5 } } + { + "name": "k", + "type": "uint", + "size": 5, + "min_value": 1, + "max_value": 31 + } ] }, "value_flow": { @@ -31267,7 +32728,13 @@ "prefix": "FE", "operands_range_check": { "length": 8, "from": 1, "to": 19 }, "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "n", + "type": "uint", + "size": 8, + "min_value": 1, + "max_value": 19 + } ] }, "value_flow": { @@ -31314,7 +32781,13 @@ "prefix": "FE", "operands_range_check": { "length": 8, "from": 21, "to": 31 }, "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "n", + "type": "uint", + "size": 8, + "min_value": 21, + "max_value": 31 + } ] }, "value_flow": { @@ -31338,7 +32811,13 @@ "tlb": "#FE2 i:uint4", "prefix": "FE2", "operands": [ - { "name": "i", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "i", + "type": "uint", + "size": 4, + "min_value": 0, + "max_value": 15 + } ] }, "value_flow": { @@ -31363,7 +32842,13 @@ "prefix": "FE", "operands_range_check": { "length": 8, "from": 48, "to": 239 }, "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "n", + "type": "uint", + "size": 8, + "min_value": 48, + "max_value": 239 + } ] }, "value_flow": { @@ -31389,12 +32874,15 @@ "operands": [ { "name": "s", - "loader": "subslice", - "loader_args": { - "bits_length_var_size": 4, - "bits_padding": 8, - "completion_tag": false - } + "type": "subslice", + "bits_length_var_size": 4, + "bits_padding": 8, + "completion_tag": false, + "max_bits": 128, + "min_bits": 8, + "max_refs": 0, + "min_refs": 0, + "decode_hint": { "type": "plain" } } ] }, @@ -31420,7 +32908,13 @@ "prefix": "FF", "operands_range_check": { "length": 8, "from": 0, "to": 239 }, "operands": [ - { "name": "n", "loader": "uint", "loader_args": { "size": 8 } } + { + "name": "n", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 239 + } ] }, "value_flow": { @@ -31445,7 +32939,13 @@ "prefix": "FFF", "operands_range_check": { "length": 4, "from": 1, "to": 15 }, "operands": [ - { "name": "z", "loader": "uint", "loader_args": { "size": 4 } } + { + "name": "z", + "type": "uint", + "size": 4, + "min_value": 1, + "max_value": 15 + } ] }, "value_flow": { diff --git a/schema.json b/schema.json index 40c4c74..3be92ba 100644 --- a/schema.json +++ b/schema.json @@ -144,10 +144,7 @@ "type": { "const": "simple" }, - "name": { - "type": "string", - "title": "Variable to pass" - }, + "name": { "$ref": "#/definitions/var_name" }, "value_types": { "title": "Possible value types", "type": "array", @@ -207,10 +204,7 @@ "type": { "const": "conditional" }, - "name": { - "type": "string", - "title": "Variable to match" - }, + "name": { "$ref": "#/definitions/var_name", "title": "Variable to match" }, "match": { "type": "array", "additionalItems": false, @@ -253,13 +247,10 @@ "type": { "const": "array" }, - "name": { - "title": "Variable name", - "type": "string" - }, + "name": { "$ref": "#/definitions/var_name" }, "length_var": { "title": "Variable which contains array length", - "type": "string" + "$ref": "#/definitions/var_name" }, "array_entry": { "allOf": [{ "$ref": "#/definitions/stack" }], @@ -270,6 +261,163 @@ } ] }, + "var_name": { + "type": "string", + "title": "Variable name", + "description": "Allowed chars are `a-zA-Z0-9_`, must not begin with digit or underscore and must not end with underscore.", + "markdownDescription": "Allowed chars are `a-zA-Z0-9_`, must not begin with digit or underscore and must not end with underscore." + }, + "decode_hint": { + "title": "Hint for disassembler to parse operand data", + "oneOf": [ + { + "type": "object", + "additionalProperties": false, + "required": ["type"], + "properties": { + "type": { "const": "plain" } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": ["type"], + "properties": { + "type": { "const": "continuation" } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": ["type", "size_var"], + "properties": { + "type": { "const": "dictionary" }, + "size_var": { "$ref": "#/definitions/var_name" } + } + } + ] + }, + "operand": { + "title": "Operand", + "description": "Static instruction parameter serialized to bytecode.", + "oneOf": [ + { + "type": "object", + "additionalProperties": false, + "required": ["name", "type", "size", "max_value", "min_value"], + "properties": { + "name": { "$ref": "#/definitions/var_name" }, + "type": { "const": "uint" }, + "size": { + "type": "number", + "title": "Integer size, bits" + }, + "max_value": { + "type": "number", + "title": "Maximum integer value" + }, + "min_value": { + "type": "number", + "title": "Minimum integer value" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": ["name", "type", "size", "max_value", "min_value"], + "properties": { + "name": { "$ref": "#/definitions/var_name" }, + "type": { "const": "int" }, + "size": { + "type": "number", + "title": "Integer size, bits" + }, + "max_value": { + "type": "number", + "title": "Maximum integer value" + }, + "min_value": { + "type": "number", + "title": "Minimum integer value" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": ["name", "type"], + "properties": { + "name": { "$ref": "#/definitions/var_name" }, + "type": { "const": "pushint_long" } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": ["name", "type", "decode_hint"], + "properties": { + "name": { "$ref": "#/definitions/var_name" }, + "type": { "const": "ref" }, + "decode_hint": { "$ref": "#/definitions/decode_hint" } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": ["name", "type", "bits_length_var_size", "bits_padding", "completion_tag", "decode_hint", "max_bits", "min_bits", "max_refs", "min_refs"], + "properties": { + "name": { "$ref": "#/definitions/var_name" }, + "type": { "const": "subslice" }, + "bits_length_var_size": { + "type": "number", + "title": "Size of bit length operand" + }, + "bits_padding": { + "type": "number", + "title": "Constant integer value to add to length of bitstring to load." + }, + "refs_length_var_size": { + "type": "number", + "title": "Size of ref count operand", + "description": "Optional, no refs in this operand in case of absence." + }, + "refs_add": { + "type": "number", + "title": "Constant integer value to add to ref count", + "default": 0 + }, + "completion_tag": { + "type": "boolean", + "title": "Completion tag flag", + "description": "Determines completion tag presense: trailing `'1' + '0' * x` in bitstring", + "markdownDescription": "Determines completion tag presense: trailing `'1' + '0' * x` in bitstring" + }, + "max_bits": { + "type": "number", + "title": "Max bit size", + "description": "Hint for maximum bits available to store for this operand" + }, + "min_bits": { + "type": "number", + "title": "Min bit size", + "description": "Hint for minimum bits available to store for this operand" + }, + "max_refs": { + "type": "number", + "title": "Max ref size", + "description": "Hint for maximum refs available to store for this operand" + }, + "min_refs": { + "type": "number", + "title": "Min ref size", + "description": "Hint for minimum refs available to store for this operand" + }, + "decode_hint": { "$ref": "#/definitions/decode_hint" } + } + } + ] + }, "continuation": { "title": "Continuation", "description": "Description of a continuation with static savelist", @@ -294,7 +442,7 @@ ], "properties": { "type": { "const": "variable" }, - "var_name": { "type": "string", "title": "Continuation variable name" }, + "var_name": { "$ref": "#/definitions/var_name", "title": "Continuation variable name" }, "save": { "$ref": "#/definitions/savelist" } } }, @@ -393,7 +541,7 @@ "required": ["count", "body", "after"], "additionalProperties": false, "properties": { - "count": { "type": "string", "title": "Variable name" }, + "count": { "$ref": "#/definitions/var_name", "title": "Variable name" }, "body": { "$ref": "#/definitions/continuation" }, "after": { "$ref": "#/definitions/continuation" } } @@ -599,72 +747,10 @@ "operands": { "type": "array", "title": "Instruction operands", - "description": "Describes how to parse operands. Order of objects in this array represents the actual order of operands in instruction. Optional, no operands in case of absence.", + "description": "Describes how to parse operands. Order of objects in this array represents the actual order of operands in instruction.", "default": [], - "items": { - "type": "object", - "additionalProperties": false, - "properties": { - "name": { - "type": "string", - "title": "Operand variable name", - "description": "Allowed chars are `a-zA-Z0-9_`, must not begin with digit or underscore and must not end with underscore.", - "markdownDescription": "Allowed chars are `a-zA-Z0-9_`, must not begin with digit or underscore and must not end with underscore." - }, - "loader": { - "enum": [ - "int", - "uint", - "ref", - "pushint_long", - "subslice" - ], - "title": "Loader function for operand" - }, - "loader_args": { - "type": "object", - "title": "Arguments for loader function. Optional, no arguments in case of absence.", - "default": {} - } - }, - "required": [ - "name", - "loader", - "loader_args" - ], - "examples": [ - { - "name": "x", - "loader": "pushint_long", - "loader_args": {} - }, - { - "name": "r", - "loader": "uint", - "loader_args": { - "size": 2 - } - }, - { - "name": "x", - "loader": "uint", - "loader_args": { - "size": 5 - } - }, - { - "name": "slice", - "loader": "subslice", - "loader_args": { - "bits_length_var": "x", - "bits_padding": 1, - "refs_length_var": "r", - "refs_add": 1, - "completion_tag": true - } - } - ] - } + "additionalItems": false, + "items": { "$ref": "#/definitions/operand" } } }, "required": [ @@ -690,12 +776,12 @@ "inputs": { "$ref": "#/definitions/values", "title": "Instruction inputs", - "description": "Incoming values constraints. Input is unconstrained if absent." + "description": "Incoming values constraints." }, "outputs": { "$ref": "#/definitions/values", "title": "Instruction outputs", - "description": "Outgoing values constraints. Output is unconstrained if absent." + "description": "Outgoing values constraints." } } }, From 4970a318b4e3b380832e9f8691aea82c7e318bbf Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Wed, 28 Feb 2024 15:15:30 +0700 Subject: [PATCH 08/27] Add since_version field --- README.md | 1 + cp0.json | 887 ++++++++++++++++++++++++++++++++++++++++++++++++++++ schema.json | 8 +- 3 files changed, 895 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7ac8007..af480d1 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,7 @@ However, nothing can stop you from just copying `cp0.json` (and `schema.json` if | Key | Description | | --- | ----------- | | mnemonic | How instruction is named in [original TVM implementation](https://github.com/ton-blockchain/ton/blob/master/crypto/vm). Not necessarily unique (currently only DEBUG is not unique). Required. +| since_version | Global version (ConfigParam 8) which enables this instruction. Version 9999 means that instruction has no global version and currently unavailable in mainnet. | doc | Free-form human-friendly information which should be used for documentation purposes only. Required. | doc.category | Category of instruction (examples: cont_loops, stack_basic, dict_get). Required. | doc.description | Free-form markdown description of instruction. Required. diff --git a/cp0.json b/cp0.json index 1321ffe..1c82b3c 100644 --- a/cp0.json +++ b/cp0.json @@ -3,6 +3,7 @@ "instructions": [ { "mnemonic": "NOP", + "since_version": 0, "doc": { "category": "stack_basic", "description": "Does nothing.", @@ -25,6 +26,7 @@ }, { "mnemonic": "XCHG_0I", + "since_version": 0, "doc": { "category": "stack_basic", "description": "Interchanges `s0` with `s[i]`, `1 <= i <= 15`.", @@ -52,6 +54,7 @@ }, { "mnemonic": "XCHG_IJ", + "since_version": 0, "doc": { "category": "stack_basic", "description": "Interchanges `s[i]` with `s[j]`, `1 <= i < j <= 15`.", @@ -86,6 +89,7 @@ }, { "mnemonic": "XCHG_0I_LONG", + "since_version": 0, "doc": { "category": "stack_basic", "description": "Interchanges `s0` with `s[ii]`, `0 <= ii <= 255`.", @@ -112,6 +116,7 @@ }, { "mnemonic": "XCHG_1I", + "since_version": 0, "doc": { "category": "stack_basic", "description": "Interchanges `s1` with `s[i]`, `2 <= i <= 15`.", @@ -139,6 +144,7 @@ }, { "mnemonic": "PUSH", + "since_version": 0, "doc": { "category": "stack_basic", "description": "Pushes a copy of the old `s[i]` into the stack.", @@ -165,6 +171,7 @@ }, { "mnemonic": "POP", + "since_version": 0, "doc": { "category": "stack_basic", "description": "Pops the old `s0` value into the old `s[i]`.", @@ -191,6 +198,7 @@ }, { "mnemonic": "XCHG3", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `s2 s[i] XCHG` `s1 s[j] XCHG` `s[k] XCHG0`.", @@ -231,6 +239,7 @@ }, { "mnemonic": "XCHG2", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `s1 s[i] XCHG` `s[j] XCHG0`.", @@ -264,6 +273,7 @@ }, { "mnemonic": "XCPU", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `s[i] XCHG0` `s[j] PUSH`.", @@ -297,6 +307,7 @@ }, { "mnemonic": "PUXC", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `s[i] PUSH` `SWAP` `s[j] XCHG0`.", @@ -330,6 +341,7 @@ }, { "mnemonic": "PUSH2", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `s[i] PUSH` `s[j+1] PUSH`.", @@ -363,6 +375,7 @@ }, { "mnemonic": "XCHG3_ALT", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Long form of `XCHG3`.", @@ -403,6 +416,7 @@ }, { "mnemonic": "XC2PU", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `s[i] s[j] XCHG2` `s[k] PUSH`.", @@ -443,6 +457,7 @@ }, { "mnemonic": "XCPUXC", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `s1 s[i] XCHG` `s[j] s[k-1] PUXC`.", @@ -483,6 +498,7 @@ }, { "mnemonic": "XCPU2", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `s[i] XCHG0` `s[j] s[k] PUSH2`.", @@ -523,6 +539,7 @@ }, { "mnemonic": "PUXC2", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `s[i] PUSH` `s2 XCHG0` `s[j] s[k] XCHG2`.", @@ -563,6 +580,7 @@ }, { "mnemonic": "PUXCPU", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `s[i] s[j-1] PUXC` `s[k] PUSH`.", @@ -603,6 +621,7 @@ }, { "mnemonic": "PU2XC", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `s[i] PUSH` `SWAP` `s[j] s[k-1] PUXC`.", @@ -643,6 +662,7 @@ }, { "mnemonic": "PUSH3", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `s[i] PUSH` `s[j+1] s[k+1] PUSH2`.", @@ -683,6 +703,7 @@ }, { "mnemonic": "BLKSWAP", + "since_version": 0, "doc": { "category": "stack_complex", "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`.", @@ -716,6 +737,7 @@ }, { "mnemonic": "PUSH_LONG", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Pushes a copy of the old `s[ii]` into the stack.\n`0 <= ii <= 255`", @@ -742,6 +764,7 @@ }, { "mnemonic": "POP_LONG", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Pops the old `s0` value into the old `s[ii]`.\n`0 <= ii <= 255`", @@ -768,6 +791,7 @@ }, { "mnemonic": "ROT", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `1 2 BLKSWAP` or to `s2 s1 XCHG2`.", @@ -790,6 +814,7 @@ }, { "mnemonic": "ROTREV", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `2 1 BLKSWAP` or to `s2 s2 XCHG2`.", @@ -812,6 +837,7 @@ }, { "mnemonic": "SWAP2", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `2 2 BLKSWAP` or to `s3 s2 XCHG2`.", @@ -834,6 +860,7 @@ }, { "mnemonic": "DROP2", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `DROP` `DROP`.", @@ -852,6 +879,7 @@ }, { "mnemonic": "DUP2", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `s1 s0 PUSH2`.", @@ -874,6 +902,7 @@ }, { "mnemonic": "OVER2", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `s3 s2 PUSH2`.", @@ -896,6 +925,7 @@ }, { "mnemonic": "REVERSE", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Reverses the order of `s[j+i+1] … s[j]`.", @@ -929,6 +959,7 @@ }, { "mnemonic": "BLKDROP", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `DROP` performed `i` times.", @@ -955,6 +986,7 @@ }, { "mnemonic": "BLKPUSH", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `PUSH s(j)` performed `i` times.\n`1 <= i <= 15`, `0 <= j <= 15`.", @@ -989,6 +1021,7 @@ }, { "mnemonic": "PICK", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Pops integer `i` from the stack, then performs `s[i] PUSH`.", @@ -1007,6 +1040,7 @@ }, { "mnemonic": "ROLLX", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Pops integer `i` from the stack, then performs `1 [i] BLKSWAP`.", @@ -1025,6 +1059,7 @@ }, { "mnemonic": "-ROLLX", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Pops integer `i` from the stack, then performs `[i] 1 BLKSWAP`.", @@ -1043,6 +1078,7 @@ }, { "mnemonic": "BLKSWX", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Pops integers `i`,`j` from the stack, then performs `[i] [j] BLKSWAP`.", @@ -1061,6 +1097,7 @@ }, { "mnemonic": "REVX", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Pops integers `i`,`j` from the stack, then performs `[i] [j] REVERSE`.", @@ -1079,6 +1116,7 @@ }, { "mnemonic": "DROPX", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Pops integer `i` from the stack, then performs `[i] BLKDROP`.", @@ -1097,6 +1135,7 @@ }, { "mnemonic": "TUCK", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Equivalent to `SWAP` `OVER` or to `s1 s1 XCPU`.", @@ -1115,6 +1154,7 @@ }, { "mnemonic": "XCHGX", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Pops integer `i` from the stack, then performs `s[i] XCHG`.", @@ -1133,6 +1173,7 @@ }, { "mnemonic": "DEPTH", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Pushes the current depth of the stack.", @@ -1159,6 +1200,7 @@ }, { "mnemonic": "CHKDEPTH", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Pops integer `i` from the stack, then checks whether there are at least `i` elements, generating a stack underflow exception otherwise.", @@ -1185,6 +1227,7 @@ }, { "mnemonic": "ONLYTOPX", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Pops integer `i` from the stack, then removes all but the top `i` elements.", @@ -1203,6 +1246,7 @@ }, { "mnemonic": "ONLYX", + "since_version": 0, "doc": { "category": "stack_complex", "description": "Pops integer `i` from the stack, then leaves only the bottom `i` elements. Approximately equivalent to `DEPTH` `SWAP` `SUB` `DROPX`.", @@ -1221,6 +1265,7 @@ }, { "mnemonic": "BLKDROP2", + "since_version": 0, "doc": { "category": "stack_complex", "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`.", @@ -1255,6 +1300,7 @@ }, { "mnemonic": "NULL", + "since_version": 0, "doc": { "category": "tuple", "description": "Pushes the only value of type _Null_.", @@ -1279,6 +1325,7 @@ }, { "mnemonic": "ISNULL", + "since_version": 0, "doc": { "category": "tuple", "description": "Checks whether `x` is a _Null_, and returns `-1` or `0` accordingly.", @@ -1309,6 +1356,7 @@ }, { "mnemonic": "TUPLE", + "since_version": 0, "doc": { "category": "tuple", "description": "Creates a new _Tuple_ `t=(x_1, … ,x_n)` containing `n` values `x_1`,..., `x_n`.\n`0 <= n <= 15`", @@ -1350,6 +1398,7 @@ }, { "mnemonic": "INDEX", + "since_version": 0, "doc": { "category": "tuple", "description": "Returns the `k`-th element of a _Tuple_ `t`.\n`0 <= k <= 15`.", @@ -1382,6 +1431,7 @@ }, { "mnemonic": "UNTUPLE", + "since_version": 0, "doc": { "category": "tuple", "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.", @@ -1423,6 +1473,7 @@ }, { "mnemonic": "UNPACKFIRST", + "since_version": 0, "doc": { "category": "tuple", "description": "Unpacks first `0 <= k <= 15` elements of a _Tuple_ `t`.\nIf `|t|= |t|`, throws a range check exception.", @@ -1545,6 +1598,7 @@ }, { "mnemonic": "INDEXQ", + "since_version": 0, "doc": { "category": "tuple", "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`.", @@ -1579,6 +1633,7 @@ }, { "mnemonic": "SETINDEXQ", + "since_version": 0, "doc": { "category": "tuple", "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).", @@ -1618,6 +1673,7 @@ }, { "mnemonic": "TUPLEVAR", + "since_version": 0, "doc": { "category": "tuple", "description": "Creates a new _Tuple_ `t` of length `n` similarly to `TUPLE`, but with `0 <= n <= 255` taken from the stack.", @@ -1652,6 +1708,7 @@ }, { "mnemonic": "INDEXVAR", + "since_version": 0, "doc": { "category": "tuple", "description": "Similar to `k INDEX`, but with `0 <= k <= 254` taken from the stack.", @@ -1679,6 +1736,7 @@ }, { "mnemonic": "UNTUPLEVAR", + "since_version": 0, "doc": { "category": "tuple", "description": "Similar to `n UNTUPLE`, but with `0 <= n <= 255` taken from the stack.", @@ -1715,6 +1773,7 @@ }, { "mnemonic": "UNPACKFIRSTVAR", + "since_version": 0, "doc": { "category": "tuple", "description": "Similar to `n UNPACKFIRST`, but with `0 <= n <= 255` taken from the stack.", @@ -1751,6 +1810,7 @@ }, { "mnemonic": "EXPLODEVAR", + "since_version": 0, "doc": { "category": "tuple", "description": "Similar to `n EXPLODE`, but with `0 <= n <= 255` taken from the stack.", @@ -1788,6 +1848,7 @@ }, { "mnemonic": "SETINDEXVAR", + "since_version": 0, "doc": { "category": "tuple", "description": "Similar to `k SETINDEX`, but with `0 <= k <= 254` taken from the stack.", @@ -1820,6 +1881,7 @@ }, { "mnemonic": "INDEXVARQ", + "since_version": 0, "doc": { "category": "tuple", "description": "Similar to `n INDEXQ`, but with `0 <= k <= 254` taken from the stack.", @@ -1847,6 +1909,7 @@ }, { "mnemonic": "SETINDEXVARQ", + "since_version": 0, "doc": { "category": "tuple", "description": "Similar to `k SETINDEXQ`, but with `0 <= k <= 254` taken from the stack.", @@ -1879,6 +1942,7 @@ }, { "mnemonic": "TLEN", + "since_version": 0, "doc": { "category": "tuple", "description": "Returns the length of a _Tuple_.", @@ -1907,6 +1971,7 @@ }, { "mnemonic": "QTLEN", + "since_version": 0, "doc": { "category": "tuple", "description": "Similar to `TLEN`, but returns `-1` if `t` is not a _Tuple_.", @@ -1935,6 +2000,7 @@ }, { "mnemonic": "ISTUPLE", + "since_version": 0, "doc": { "category": "tuple", "description": "Returns `-1` or `0` depending on whether `t` is a _Tuple_.", @@ -1963,6 +2029,7 @@ }, { "mnemonic": "LAST", + "since_version": 0, "doc": { "category": "tuple", "description": "Returns the last element of a non-empty _Tuple_ `t`.", @@ -1987,6 +2054,7 @@ }, { "mnemonic": "TPUSH", + "since_version": 0, "doc": { "category": "tuple", "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.", @@ -2018,6 +2086,7 @@ }, { "mnemonic": "TPOP", + "since_version": 0, "doc": { "category": "tuple", "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`.", @@ -2047,6 +2116,7 @@ }, { "mnemonic": "NULLSWAPIF", + "since_version": 0, "doc": { "category": "tuple", "description": "Pushes a _Null_ under the topmost _Integer_ `x`, but only if `x!=0`.", @@ -2083,6 +2153,7 @@ }, { "mnemonic": "NULLSWAPIFNOT", + "since_version": 0, "doc": { "category": "tuple", "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`.", @@ -2126,6 +2197,7 @@ }, { "mnemonic": "NULLROTRIF", + "since_version": 0, "doc": { "category": "tuple", "description": "Pushes a _Null_ under the second stack entry from the top, but only if the topmost _Integer_ `y` is non-zero.", @@ -2164,6 +2236,7 @@ }, { "mnemonic": "NULLROTRIFNOT", + "since_version": 0, "doc": { "category": "tuple", "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`.", @@ -2209,6 +2282,7 @@ }, { "mnemonic": "NULLSWAPIF2", + "since_version": 0, "doc": { "category": "tuple", "description": "Pushes two nulls under the topmost _Integer_ `x`, but only if `x!=0`.\nEquivalent to `NULLSWAPIF` `NULLSWAPIF`.", @@ -2248,6 +2322,7 @@ }, { "mnemonic": "NULLSWAPIFNOT2", + "since_version": 0, "doc": { "category": "tuple", "description": "Pushes two nulls under the topmost _Integer_ `x`, but only if `x=0`.\nEquivalent to `NULLSWAPIFNOT` `NULLSWAPIFNOT`.", @@ -2292,6 +2367,7 @@ }, { "mnemonic": "NULLROTRIF2", + "since_version": 0, "doc": { "category": "tuple", "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`.", @@ -2333,6 +2409,7 @@ }, { "mnemonic": "NULLROTRIFNOT2", + "since_version": 0, "doc": { "category": "tuple", "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`.", @@ -2379,6 +2456,7 @@ }, { "mnemonic": "INDEX2", + "since_version": 0, "doc": { "category": "tuple", "description": "Recovers `x=(t_{i+1})_{j+1}` for `0 <= i,j <= 3`.\nEquivalent to `[i] INDEX` `[j] INDEX`.", @@ -2418,6 +2496,7 @@ }, { "mnemonic": "INDEX3", + "since_version": 0, "doc": { "category": "tuple", "description": "Recovers `x=t_{i+1}_{j+1}_{k+1}`.\n`0 <= i,j,k <= 3`\nEquivalent to `[i] [j] INDEX2` `[k] INDEX`.", @@ -2464,6 +2543,7 @@ }, { "mnemonic": "PUSHINT_4", + "since_version": 0, "doc": { "category": "const_int", "description": "Pushes integer `x` into the stack. `-5 <= x <= 10`.\nHere `i` equals four lower-order bits of `x` (`i=x mod 16`).", @@ -2498,6 +2578,7 @@ }, { "mnemonic": "PUSHINT_8", + "since_version": 0, "doc": { "category": "const_int", "description": "Pushes integer `xx`. `-128 <= xx <= 127`.", @@ -2532,6 +2613,7 @@ }, { "mnemonic": "PUSHINT_16", + "since_version": 0, "doc": { "category": "const_int", "description": "Pushes integer `xxxx`. `-2^15 <= xx < 2^15`.", @@ -2566,6 +2648,7 @@ }, { "mnemonic": "PUSHINT_LONG", + "since_version": 0, "doc": { "category": "const_int", "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.", @@ -2598,6 +2681,7 @@ }, { "mnemonic": "PUSHPOW2", + "since_version": 0, "doc": { "category": "const_int", "description": "(Quietly) pushes `2^(xx+1)` for `0 <= xx <= 255`.\n`2^256` is a `NaN`.", @@ -2633,6 +2717,7 @@ }, { "mnemonic": "PUSHNAN", + "since_version": 0, "doc": { "category": "const_int", "description": "Pushes a `NaN`.", @@ -2657,6 +2742,7 @@ }, { "mnemonic": "PUSHPOW2DEC", + "since_version": 0, "doc": { "category": "const_int", "description": "Pushes `2^(xx+1)-1` for `0 <= xx <= 255`.", @@ -2691,6 +2777,7 @@ }, { "mnemonic": "PUSHNEGPOW2", + "since_version": 0, "doc": { "category": "const_int", "description": "Pushes `-2^(xx+1)` for `0 <= xx <= 255`.", @@ -2725,6 +2812,7 @@ }, { "mnemonic": "PUSHREF", + "since_version": 0, "doc": { "category": "const_data", "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).", @@ -2753,6 +2841,7 @@ }, { "mnemonic": "PUSHREFSLICE", + "since_version": 0, "doc": { "category": "const_data", "description": "Similar to `PUSHREF`, but converts the cell into a _Slice_.", @@ -2781,6 +2870,7 @@ }, { "mnemonic": "PUSHREFCONT", + "since_version": 0, "doc": { "category": "const_data", "description": "Similar to `PUSHREFSLICE`, but makes a simple ordinary _Continuation_ out of the cell.", @@ -2817,6 +2907,7 @@ }, { "mnemonic": "PUSHSLICE", + "since_version": 0, "doc": { "category": "const_data", "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.", @@ -2856,6 +2947,7 @@ }, { "mnemonic": "PUSHSLICE_REFS", + "since_version": 0, "doc": { "category": "const_data", "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.", @@ -2897,6 +2989,7 @@ }, { "mnemonic": "PUSHSLICE_LONG", + "since_version": 0, "doc": { "category": "const_data", "description": "Pushes the slice `slice` into the stack.\n_Details:_ Pushes the subslice of `cc.code` consisting of `0 <= r <= 4` references and up to `8xx+6` bits of data, with `0 <= xx <= 127`.\nA completion tag is assumed.", @@ -2948,6 +3041,7 @@ }, { "mnemonic": "PUSHCONT", + "since_version": 0, "doc": { "category": "const_data", "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`.", @@ -2993,6 +3087,7 @@ }, { "mnemonic": "PUSHCONT_SHORT", + "since_version": 0, "doc": { "category": "const_data", "description": "Pushes a continuation made from `builder`.\n_Details:_ Pushes an `x`-byte continuation for `0 <= x <= 15`.", @@ -3037,6 +3132,7 @@ }, { "mnemonic": "ADD", + "since_version": 0, "doc": { "category": "arithm_basic", "description": "", @@ -3068,6 +3164,7 @@ }, { "mnemonic": "SUB", + "since_version": 0, "doc": { "category": "arithm_basic", "description": "", @@ -3099,6 +3196,7 @@ }, { "mnemonic": "SUBR", + "since_version": 0, "doc": { "category": "arithm_basic", "description": "Equivalent to `SWAP` `SUB`.", @@ -3130,6 +3228,7 @@ }, { "mnemonic": "NEGATE", + "since_version": 0, "doc": { "category": "arithm_basic", "description": "Equivalent to `-1 MULCONST` or to `ZERO SUBR`.\nNotice that it triggers an integer overflow exception if `x=-2^256`.", @@ -3160,6 +3259,7 @@ }, { "mnemonic": "INC", + "since_version": 0, "doc": { "category": "arithm_basic", "description": "Equivalent to `1 ADDCONST`.", @@ -3190,6 +3290,7 @@ }, { "mnemonic": "DEC", + "since_version": 0, "doc": { "category": "arithm_basic", "description": "Equivalent to `-1 ADDCONST`.", @@ -3220,6 +3321,7 @@ }, { "mnemonic": "ADDCONST", + "since_version": 0, "doc": { "category": "arithm_basic", "description": "`-128 <= cc <= 127`.", @@ -3258,6 +3360,7 @@ }, { "mnemonic": "MULCONST", + "since_version": 0, "doc": { "category": "arithm_basic", "description": "`-128 <= cc <= 127`.", @@ -3296,6 +3399,7 @@ }, { "mnemonic": "MUL", + "since_version": 0, "doc": { "category": "arithm_basic", "description": "", @@ -3327,6 +3431,7 @@ }, { "mnemonic": "ADDDIVMOD", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -3360,6 +3465,7 @@ }, { "mnemonic": "ADDDIVMODR", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -3393,6 +3499,7 @@ }, { "mnemonic": "ADDDIVMODC", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -3426,6 +3533,7 @@ }, { "mnemonic": "DIV", + "since_version": 0, "doc": { "category": "arithm_div", "description": "`q=floor(x/y)`, `r=x-y*q`", @@ -3457,6 +3565,7 @@ }, { "mnemonic": "DIVR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "`q’=round(x/y)`, `r’=x-y*q’`", @@ -3488,6 +3597,7 @@ }, { "mnemonic": "DIVC", + "since_version": 0, "doc": { "category": "arithm_div", "description": "`q’’=ceil(x/y)`, `r’’=x-y*q’’`", @@ -3519,6 +3629,7 @@ }, { "mnemonic": "MOD", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -3550,6 +3661,7 @@ }, { "mnemonic": "MODR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -3581,6 +3693,7 @@ }, { "mnemonic": "MODC", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -3612,6 +3725,7 @@ }, { "mnemonic": "DIVMOD", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -3644,6 +3758,7 @@ }, { "mnemonic": "DIVMODR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -3676,6 +3791,7 @@ }, { "mnemonic": "DIVMODC", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -3708,6 +3824,7 @@ }, { "mnemonic": "ADDRSHIFTMOD", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -3741,6 +3858,7 @@ }, { "mnemonic": "ADDRSHIFTMODR", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -3774,6 +3892,7 @@ }, { "mnemonic": "ADDRSHIFTMODC", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -3807,6 +3926,7 @@ }, { "mnemonic": "RSHIFTR_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -3838,6 +3958,7 @@ }, { "mnemonic": "RSHIFTC_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -3869,6 +3990,7 @@ }, { "mnemonic": "MODPOW2_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -3900,6 +4022,7 @@ }, { "mnemonic": "MODPOW2R_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -3931,6 +4054,7 @@ }, { "mnemonic": "MODPOW2C_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -3962,6 +4086,7 @@ }, { "mnemonic": "RSHIFTMOD_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -3994,6 +4119,7 @@ }, { "mnemonic": "RSHIFTMODR_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -4026,6 +4152,7 @@ }, { "mnemonic": "RSHIFTMODC_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -4058,6 +4185,7 @@ }, { "mnemonic": "ADDRSHIFTMOD", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -4098,6 +4226,7 @@ }, { "mnemonic": "ADDRSHIFTRMOD", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -4138,6 +4267,7 @@ }, { "mnemonic": "ADDRSHIFTCMOD", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -4178,6 +4308,7 @@ }, { "mnemonic": "RSHIFTR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -4216,6 +4347,7 @@ }, { "mnemonic": "RSHIFTC", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -4254,6 +4386,7 @@ }, { "mnemonic": "MODPOW2", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -4292,6 +4425,7 @@ }, { "mnemonic": "MODPOW2R", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -4330,6 +4464,7 @@ }, { "mnemonic": "MODPOW2C", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -4368,6 +4503,7 @@ }, { "mnemonic": "RSHIFTMOD", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -4407,6 +4543,7 @@ }, { "mnemonic": "RSHIFTRMOD", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -4446,6 +4583,7 @@ }, { "mnemonic": "RSHIFTCMOD", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -4485,6 +4623,7 @@ }, { "mnemonic": "MULADDDIVMOD", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -4519,6 +4658,7 @@ }, { "mnemonic": "MULADDDIVMODR", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -4553,6 +4693,7 @@ }, { "mnemonic": "MULADDDIVMODC", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -4587,6 +4728,7 @@ }, { "mnemonic": "MULDIV", + "since_version": 0, "doc": { "category": "arithm_div", "description": "`q=floor(x*y/z)`", @@ -4619,6 +4761,7 @@ }, { "mnemonic": "MULDIVR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "`q'=round(x*y/z)`", @@ -4651,6 +4794,7 @@ }, { "mnemonic": "MULDIVC", + "since_version": 0, "doc": { "category": "arithm_div", "description": "`q'=ceil(x*y/z)`", @@ -4683,6 +4827,7 @@ }, { "mnemonic": "MULMOD", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -4715,6 +4860,7 @@ }, { "mnemonic": "MULMODR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -4747,6 +4893,7 @@ }, { "mnemonic": "MULMODC", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -4779,6 +4926,7 @@ }, { "mnemonic": "MULDIVMOD", + "since_version": 0, "doc": { "category": "arithm_div", "description": "`q=floor(x*y/z)`, `r=x*y-z*q`", @@ -4812,6 +4960,7 @@ }, { "mnemonic": "MULDIVMODR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "`q=round(x*y/z)`, `r=x*y-z*q`", @@ -4845,6 +4994,7 @@ }, { "mnemonic": "MULDIVMODC", + "since_version": 0, "doc": { "category": "arithm_div", "description": "`q=ceil(x*y/z)`, `r=x*y-z*q`", @@ -4878,6 +5028,7 @@ }, { "mnemonic": "MULADDRSHIFTMOD", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -4912,6 +5063,7 @@ }, { "mnemonic": "MULADDRSHIFTRMOD", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -4946,6 +5098,7 @@ }, { "mnemonic": "MULADDRSHIFTCMOD", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -4980,6 +5133,7 @@ }, { "mnemonic": "MULRSHIFT_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "`0 <= z <= 256`", @@ -5012,6 +5166,7 @@ }, { "mnemonic": "MULRSHIFTR_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "`0 <= z <= 256`", @@ -5044,6 +5199,7 @@ }, { "mnemonic": "MULRSHIFTC_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "`0 <= z <= 256`", @@ -5076,6 +5232,7 @@ }, { "mnemonic": "MULMODPOW2_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -5108,6 +5265,7 @@ }, { "mnemonic": "MULMODPOW2R_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -5140,6 +5298,7 @@ }, { "mnemonic": "MULMODPOW2C_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -5172,6 +5331,7 @@ }, { "mnemonic": "MULRSHIFTMOD_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -5204,6 +5364,7 @@ }, { "mnemonic": "MULRSHIFTRMOD_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -5236,6 +5397,7 @@ }, { "mnemonic": "MULRSHIFTCMOD_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -5268,6 +5430,7 @@ }, { "mnemonic": "MULADDRSHIFTMOD", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -5308,6 +5471,7 @@ }, { "mnemonic": "MULADDRSHIFTRMOD", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -5348,6 +5512,7 @@ }, { "mnemonic": "MULADDRSHIFTCMOD", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -5388,6 +5553,7 @@ }, { "mnemonic": "MULRSHIFT", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -5427,6 +5593,7 @@ }, { "mnemonic": "MULRSHIFTR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -5466,6 +5633,7 @@ }, { "mnemonic": "MULRSHIFTC", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -5505,6 +5673,7 @@ }, { "mnemonic": "MULMODPOW2", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -5544,6 +5713,7 @@ }, { "mnemonic": "MULMODPOW2R", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -5583,6 +5753,7 @@ }, { "mnemonic": "MULMODPOW2C", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -5622,6 +5793,7 @@ }, { "mnemonic": "MULRSHIFTMOD", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -5653,6 +5825,7 @@ }, { "mnemonic": "MULRSHIFTRMOD", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -5684,6 +5857,7 @@ }, { "mnemonic": "MULRSHIFTCMOD", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -5715,6 +5889,7 @@ }, { "mnemonic": "LSHIFTADDDIVMOD_VAR", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -5748,6 +5923,7 @@ }, { "mnemonic": "LSHIFTADDDIVMODR_VAR", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -5781,6 +5957,7 @@ }, { "mnemonic": "LSHIFTADDDIVMODC_VAR", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -5814,6 +5991,7 @@ }, { "mnemonic": "LSHIFTDIV_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "`0 <= z <= 256`", @@ -5846,6 +6024,7 @@ }, { "mnemonic": "LSHIFTDIVR_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "`0 <= z <= 256`", @@ -5878,6 +6057,7 @@ }, { "mnemonic": "LSHIFTDIVC_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "`0 <= z <= 256`", @@ -5910,6 +6090,7 @@ }, { "mnemonic": "LSHIFTMOD_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -5942,6 +6123,7 @@ }, { "mnemonic": "LSHIFTMODR_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -5974,6 +6156,7 @@ }, { "mnemonic": "LSHIFTMODC_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -6006,6 +6189,7 @@ }, { "mnemonic": "LSHIFTDIVMOD_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -6038,6 +6222,7 @@ }, { "mnemonic": "LSHIFTDIVMODR_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -6070,6 +6255,7 @@ }, { "mnemonic": "LSHIFTDIVMODC_VAR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -6102,6 +6288,7 @@ }, { "mnemonic": "LSHIFTADDDIVMOD", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -6142,6 +6329,7 @@ }, { "mnemonic": "LSHIFTADDDIVMODR", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -6182,6 +6370,7 @@ }, { "mnemonic": "LSHIFTADDDIVMODC", + "since_version": 4, "doc": { "category": "arithm_div", "description": "", @@ -6222,6 +6411,7 @@ }, { "mnemonic": "LSHIFTDIV", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -6261,6 +6451,7 @@ }, { "mnemonic": "LSHIFTDIVR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -6300,6 +6491,7 @@ }, { "mnemonic": "LSHIFTDIVC", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -6339,6 +6531,7 @@ }, { "mnemonic": "LSHIFTMOD", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -6378,6 +6571,7 @@ }, { "mnemonic": "LSHIFTMODR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -6417,6 +6611,7 @@ }, { "mnemonic": "LSHIFTMODC", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -6456,6 +6651,7 @@ }, { "mnemonic": "LSHIFTDIVMOD", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -6495,6 +6691,7 @@ }, { "mnemonic": "LSHIFTDIVMODR", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -6534,6 +6731,7 @@ }, { "mnemonic": "LSHIFTDIVMODC", + "since_version": 0, "doc": { "category": "arithm_div", "description": "", @@ -6573,6 +6771,7 @@ }, { "mnemonic": "LSHIFT", + "since_version": 0, "doc": { "category": "arithm_logical", "description": "`0 <= cc <= 255`", @@ -6611,6 +6810,7 @@ }, { "mnemonic": "RSHIFT", + "since_version": 0, "doc": { "category": "arithm_logical", "description": "`0 <= cc <= 255`", @@ -6649,6 +6849,7 @@ }, { "mnemonic": "LSHIFT_VAR", + "since_version": 0, "doc": { "category": "arithm_logical", "description": "`0 <= y <= 1023`", @@ -6680,6 +6881,7 @@ }, { "mnemonic": "RSHIFT_VAR", + "since_version": 0, "doc": { "category": "arithm_logical", "description": "`0 <= y <= 1023`", @@ -6711,6 +6913,7 @@ }, { "mnemonic": "POW2", + "since_version": 0, "doc": { "category": "arithm_logical", "description": "`0 <= y <= 1023`\nEquivalent to `ONE` `SWAP` `LSHIFT`.", @@ -6741,6 +6944,7 @@ }, { "mnemonic": "AND", + "since_version": 0, "doc": { "category": "arithm_logical", "description": "Bitwise and of two signed integers `x` and `y`, sign-extended to infinity.", @@ -6772,6 +6976,7 @@ }, { "mnemonic": "OR", + "since_version": 0, "doc": { "category": "arithm_logical", "description": "Bitwise or of two integers.", @@ -6803,6 +7008,7 @@ }, { "mnemonic": "XOR", + "since_version": 0, "doc": { "category": "arithm_logical", "description": "Bitwise xor of two integers.", @@ -6834,6 +7040,7 @@ }, { "mnemonic": "NOT", + "since_version": 0, "doc": { "category": "arithm_logical", "description": "Bitwise not of an integer.", @@ -6864,6 +7071,7 @@ }, { "mnemonic": "FITS", + "since_version": 0, "doc": { "category": "arithm_logical", "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).", @@ -6902,6 +7110,7 @@ }, { "mnemonic": "UFITS", + "since_version": 0, "doc": { "category": "arithm_logical", "description": "Checks whether `x` is a `cc+1`-bit unsigned integer for `0 <= cc <= 255` (i.e., whether `0 <= x < 2^(cc+1)`).", @@ -6940,6 +7149,7 @@ }, { "mnemonic": "FITSX", + "since_version": 0, "doc": { "category": "arithm_logical", "description": "Checks whether `x` is a `c`-bit signed integer for `0 <= c <= 1023`.", @@ -6971,6 +7181,7 @@ }, { "mnemonic": "UFITSX", + "since_version": 0, "doc": { "category": "arithm_logical", "description": "Checks whether `x` is a `c`-bit unsigned integer for `0 <= c <= 1023`.", @@ -7002,6 +7213,7 @@ }, { "mnemonic": "BITSIZE", + "since_version": 0, "doc": { "category": "arithm_logical", "description": "Computes smallest `c >= 0` such that `x` fits into a `c`-bit signed integer (`-2^(c-1) <= c < 2^(c-1)`).", @@ -7032,6 +7244,7 @@ }, { "mnemonic": "UBITSIZE", + "since_version": 0, "doc": { "category": "arithm_logical", "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.", @@ -7062,6 +7275,7 @@ }, { "mnemonic": "MIN", + "since_version": 0, "doc": { "category": "arithm_logical", "description": "Computes the minimum of two integers `x` and `y`.", @@ -7093,6 +7307,7 @@ }, { "mnemonic": "MAX", + "since_version": 0, "doc": { "category": "arithm_logical", "description": "Computes the maximum of two integers `x` and `y`.", @@ -7124,6 +7339,7 @@ }, { "mnemonic": "MINMAX", + "since_version": 0, "doc": { "category": "arithm_logical", "description": "Sorts two integers. Quiet version of this operation returns two `NaN`s if any of the arguments are `NaN`s.", @@ -7156,6 +7372,7 @@ }, { "mnemonic": "ABS", + "since_version": 0, "doc": { "category": "arithm_logical", "description": "Computes the absolute value of an integer `x`.", @@ -7186,6 +7403,7 @@ }, { "mnemonic": "QADD", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7217,6 +7435,7 @@ }, { "mnemonic": "QSUB", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7248,6 +7467,7 @@ }, { "mnemonic": "QSUBR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7279,6 +7499,7 @@ }, { "mnemonic": "QNEGATE", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7309,6 +7530,7 @@ }, { "mnemonic": "QINC", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7339,6 +7561,7 @@ }, { "mnemonic": "QDEC", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7369,6 +7592,7 @@ }, { "mnemonic": "QMUL", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7400,6 +7624,7 @@ }, { "mnemonic": "QADDDIVMOD", + "since_version": 4, "doc": { "category": "arithm_quiet", "description": "", @@ -7433,6 +7658,7 @@ }, { "mnemonic": "QADDDIVMODR", + "since_version": 4, "doc": { "category": "arithm_quiet", "description": "", @@ -7466,6 +7692,7 @@ }, { "mnemonic": "QADDDIVMODC", + "since_version": 4, "doc": { "category": "arithm_quiet", "description": "", @@ -7499,6 +7726,7 @@ }, { "mnemonic": "QDIV", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "Division returns `NaN` if `y=0`.", @@ -7530,6 +7758,7 @@ }, { "mnemonic": "QDIVR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7561,6 +7790,7 @@ }, { "mnemonic": "QDIVC", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7592,6 +7822,7 @@ }, { "mnemonic": "QMOD", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7623,6 +7854,7 @@ }, { "mnemonic": "QMODR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7654,6 +7886,7 @@ }, { "mnemonic": "QMODC", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7685,6 +7918,7 @@ }, { "mnemonic": "QDIVMOD", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7717,6 +7951,7 @@ }, { "mnemonic": "QDIVMODR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7749,6 +7984,7 @@ }, { "mnemonic": "QDIVMODC", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7781,6 +8017,7 @@ }, { "mnemonic": "QADDRSHIFTMOD", + "since_version": 4, "doc": { "category": "arithm_quiet", "description": "", @@ -7814,6 +8051,7 @@ }, { "mnemonic": "QADDRSHIFTMODR", + "since_version": 4, "doc": { "category": "arithm_quiet", "description": "", @@ -7847,6 +8085,7 @@ }, { "mnemonic": "QADDRSHIFTMODC", + "since_version": 4, "doc": { "category": "arithm_quiet", "description": "", @@ -7880,6 +8119,7 @@ }, { "mnemonic": "QRSHIFTR_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7911,6 +8151,7 @@ }, { "mnemonic": "QRSHIFTC_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7942,6 +8183,7 @@ }, { "mnemonic": "QMODPOW2_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -7973,6 +8215,7 @@ }, { "mnemonic": "QMODPOW2R_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -8004,6 +8247,7 @@ }, { "mnemonic": "QMODPOW2C_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -8035,6 +8279,7 @@ }, { "mnemonic": "QRSHIFTMOD_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -8067,6 +8312,7 @@ }, { "mnemonic": "QRSHIFTMODR_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -8099,6 +8345,7 @@ }, { "mnemonic": "QRSHIFTMODC_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -8131,6 +8378,7 @@ }, { "mnemonic": "QADDRSHIFTMOD", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -8171,6 +8419,7 @@ }, { "mnemonic": "QADDRSHIFTRMOD", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -8211,6 +8460,7 @@ }, { "mnemonic": "QADDRSHIFTCMOD", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -8251,6 +8501,7 @@ }, { "mnemonic": "QRSHIFTR", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -8289,6 +8540,7 @@ }, { "mnemonic": "QRSHIFTC", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -8327,6 +8579,7 @@ }, { "mnemonic": "QMODPOW2", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -8365,6 +8618,7 @@ }, { "mnemonic": "QMODPOW2R", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -8403,6 +8657,7 @@ }, { "mnemonic": "QMODPOW2C", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -8441,6 +8696,7 @@ }, { "mnemonic": "QRSHIFTMOD", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -8480,6 +8736,7 @@ }, { "mnemonic": "QRSHIFTRMOD", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -8519,6 +8776,7 @@ }, { "mnemonic": "QRSHIFTCMOD", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -8558,6 +8816,7 @@ }, { "mnemonic": "QMULADDDIVMOD", + "since_version": 4, "doc": { "category": "arithm_quiet", "description": "", @@ -8592,6 +8851,7 @@ }, { "mnemonic": "QMULADDDIVMODR", + "since_version": 4, "doc": { "category": "arithm_quiet", "description": "", @@ -8626,6 +8886,7 @@ }, { "mnemonic": "QMULADDDIVMODC", + "since_version": 4, "doc": { "category": "arithm_quiet", "description": "", @@ -8660,6 +8921,7 @@ }, { "mnemonic": "QMULDIV", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "`q=floor(x*y/z)`", @@ -8692,6 +8954,7 @@ }, { "mnemonic": "QMULDIVR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -8724,6 +8987,7 @@ }, { "mnemonic": "QMULDIVC", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "`q'=ceil(x*y/z)`", @@ -8756,6 +9020,7 @@ }, { "mnemonic": "QMULMOD", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -8788,6 +9053,7 @@ }, { "mnemonic": "QMULMODR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -8820,6 +9086,7 @@ }, { "mnemonic": "QMULMODC", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -8852,6 +9119,7 @@ }, { "mnemonic": "QMULDIVMOD", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -8884,6 +9152,7 @@ }, { "mnemonic": "QMULDIVMODR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "`q=round(x*y/z)`, `r=x*y-z*q`", @@ -8917,6 +9186,7 @@ }, { "mnemonic": "QMULDIVMODC", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "`q=ceil(x*y/z)`, `r=x*y-z*q`", @@ -8950,6 +9220,7 @@ }, { "mnemonic": "QMULADDRSHIFTMOD", + "since_version": 4, "doc": { "category": "arithm_quiet", "description": "", @@ -8984,6 +9255,7 @@ }, { "mnemonic": "QMULADDRSHIFTRMOD", + "since_version": 4, "doc": { "category": "arithm_quiet", "description": "", @@ -9018,6 +9290,7 @@ }, { "mnemonic": "QMULADDRSHIFTCMOD", + "since_version": 4, "doc": { "category": "arithm_quiet", "description": "", @@ -9052,6 +9325,7 @@ }, { "mnemonic": "QMULRSHIFT_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "`0 <= z <= 256`", @@ -9084,6 +9358,7 @@ }, { "mnemonic": "QMULRSHIFTR_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "`0 <= z <= 256`", @@ -9116,6 +9391,7 @@ }, { "mnemonic": "QMULRSHIFTC_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "`0 <= z <= 256`", @@ -9148,6 +9424,7 @@ }, { "mnemonic": "QMULMODPOW2_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -9180,6 +9457,7 @@ }, { "mnemonic": "QMULMODPOW2R_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -9212,6 +9490,7 @@ }, { "mnemonic": "QMULMODPOW2C_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -9244,6 +9523,7 @@ }, { "mnemonic": "QMULRSHIFTMOD_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -9276,6 +9556,7 @@ }, { "mnemonic": "QMULRSHIFTRMOD_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -9308,6 +9589,7 @@ }, { "mnemonic": "QMULRSHIFTCMOD_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -9340,6 +9622,7 @@ }, { "mnemonic": "QMULADDRSHIFTMOD", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -9380,6 +9663,7 @@ }, { "mnemonic": "QMULADDRSHIFTRMOD", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -9420,6 +9704,7 @@ }, { "mnemonic": "QMULADDRSHIFTCMOD", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -9460,6 +9745,7 @@ }, { "mnemonic": "QMULRSHIFT", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -9499,6 +9785,7 @@ }, { "mnemonic": "QMULRSHIFTR", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -9538,6 +9825,7 @@ }, { "mnemonic": "QMULRSHIFTC", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -9577,6 +9865,7 @@ }, { "mnemonic": "QMULMODPOW2", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -9616,6 +9905,7 @@ }, { "mnemonic": "QMULMODPOW2R", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -9655,6 +9945,7 @@ }, { "mnemonic": "QMULMODPOW2C", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -9694,6 +9985,7 @@ }, { "mnemonic": "QMULRSHIFTMOD", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -9725,6 +10017,7 @@ }, { "mnemonic": "QMULRSHIFTRMOD", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -9756,6 +10049,7 @@ }, { "mnemonic": "QMULRSHIFTCMOD", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -9787,6 +10081,7 @@ }, { "mnemonic": "QLSHIFTADDDIVMOD_VAR", + "since_version": 4, "doc": { "category": "arithm_quiet", "description": "", @@ -9820,6 +10115,7 @@ }, { "mnemonic": "QLSHIFTADDDIVMODR_VAR", + "since_version": 4, "doc": { "category": "arithm_quiet", "description": "", @@ -9853,6 +10149,7 @@ }, { "mnemonic": "QLSHIFTADDDIVMODC_VAR", + "since_version": 4, "doc": { "category": "arithm_quiet", "description": "", @@ -9886,6 +10183,7 @@ }, { "mnemonic": "QLSHIFTDIV_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "`0 <= z <= 256`", @@ -9918,6 +10216,7 @@ }, { "mnemonic": "QLSHIFTDIVR_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "`0 <= z <= 256`", @@ -9950,6 +10249,7 @@ }, { "mnemonic": "QLSHIFTDIVC_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "`0 <= z <= 256`", @@ -9982,6 +10282,7 @@ }, { "mnemonic": "QLSHIFTMOD_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -10014,6 +10315,7 @@ }, { "mnemonic": "QLSHIFTMODR_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -10046,6 +10348,7 @@ }, { "mnemonic": "QLSHIFTMODC_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -10078,6 +10381,7 @@ }, { "mnemonic": "QLSHIFTDIVMOD_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -10110,6 +10414,7 @@ }, { "mnemonic": "QLSHIFTDIVMODR_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -10142,6 +10447,7 @@ }, { "mnemonic": "QLSHIFTDIVMODC_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -10174,6 +10480,7 @@ }, { "mnemonic": "QLSHIFTADDDIVMOD", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -10214,6 +10521,7 @@ }, { "mnemonic": "QLSHIFTADDDIVMODR", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -10254,6 +10562,7 @@ }, { "mnemonic": "QLSHIFTADDDIVMODC", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -10294,6 +10603,7 @@ }, { "mnemonic": "QLSHIFTDIV", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -10333,6 +10643,7 @@ }, { "mnemonic": "QLSHIFTDIVR", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -10372,6 +10683,7 @@ }, { "mnemonic": "QLSHIFTDIVC", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -10411,6 +10723,7 @@ }, { "mnemonic": "QLSHIFTMOD", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -10450,6 +10763,7 @@ }, { "mnemonic": "QLSHIFTMODR", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -10489,6 +10803,7 @@ }, { "mnemonic": "QLSHIFTMODC", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -10528,6 +10843,7 @@ }, { "mnemonic": "QLSHIFTDIVMOD", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -10567,6 +10883,7 @@ }, { "mnemonic": "QLSHIFTDIVMODR", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -10606,6 +10923,7 @@ }, { "mnemonic": "QLSHIFTDIVMODC", + "since_version": 9999, "doc": { "category": "arithm_quiet", "description": "", @@ -10645,6 +10963,7 @@ }, { "mnemonic": "QLSHIFT", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "`0 <= cc <= 255`", @@ -10683,6 +11002,7 @@ }, { "mnemonic": "QRSHIFT", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "`0 <= cc <= 255`", @@ -10721,6 +11041,7 @@ }, { "mnemonic": "QLSHIFT_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -10752,6 +11073,7 @@ }, { "mnemonic": "QRSHIFT_VAR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -10783,6 +11105,7 @@ }, { "mnemonic": "QPOW2", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -10813,6 +11136,7 @@ }, { "mnemonic": "QAND", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -10844,6 +11168,7 @@ }, { "mnemonic": "QOR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -10875,6 +11200,7 @@ }, { "mnemonic": "QXOR", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -10906,6 +11232,7 @@ }, { "mnemonic": "QNOT", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "", @@ -10936,6 +11263,7 @@ }, { "mnemonic": "QFITS", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "Replaces `x` with a `NaN` if x is not a `cc+1`-bit signed integer, leaves it intact otherwise.", @@ -10974,6 +11302,7 @@ }, { "mnemonic": "QUFITS", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "Replaces `x` with a `NaN` if x is not a `cc+1`-bit unsigned integer, leaves it intact otherwise.", @@ -11012,6 +11341,7 @@ }, { "mnemonic": "QFITSX", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "Replaces `x` with a `NaN` if x is not a c-bit signed integer, leaves it intact otherwise.", @@ -11043,6 +11373,7 @@ }, { "mnemonic": "QUFITSX", + "since_version": 0, "doc": { "category": "arithm_quiet", "description": "Replaces `x` with a `NaN` if x is not a c-bit unsigned integer, leaves it intact otherwise.", @@ -11074,6 +11405,7 @@ }, { "mnemonic": "SGN", + "since_version": 0, "doc": { "category": "compare_int", "description": "Computes the sign of an integer `x`:\n`-1` if `x<0`, `0` if `x=0`, `1` if `x>0`.", @@ -11104,6 +11436,7 @@ }, { "mnemonic": "LESS", + "since_version": 0, "doc": { "category": "compare_int", "description": "Returns `-1` if `xy`.\nNo integer overflow can occur here unless `x` or `y` is a `NaN`.", @@ -11321,6 +11660,7 @@ }, { "mnemonic": "EQINT", + "since_version": 0, "doc": { "category": "compare_int", "description": "Returns `-1` if `x=yy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", @@ -11359,6 +11699,7 @@ }, { "mnemonic": "LESSINT", + "since_version": 0, "doc": { "category": "compare_int", "description": "Returns `-1` if `xyy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", @@ -11435,6 +11777,7 @@ }, { "mnemonic": "NEQINT", + "since_version": 0, "doc": { "category": "compare_int", "description": "Returns `-1` if `x!=yy`, `0` otherwise.\n`-2^7 <= yy < 2^7`.", @@ -11473,6 +11816,7 @@ }, { "mnemonic": "ISNAN", + "since_version": 0, "doc": { "category": "compare_int", "description": "Checks whether `x` is a `NaN`.", @@ -11503,6 +11847,7 @@ }, { "mnemonic": "CHKNAN", + "since_version": 0, "doc": { "category": "compare_int", "description": "Throws an arithmetic overflow exception if `x` is a `NaN`.", @@ -11533,6 +11878,7 @@ }, { "mnemonic": "SEMPTY", + "since_version": 0, "doc": { "category": "compare_other", "description": "Checks whether a _Slice_ `s` is empty (i.e., contains no bits of data and no cell references).", @@ -11561,6 +11907,7 @@ }, { "mnemonic": "SDEMPTY", + "since_version": 0, "doc": { "category": "compare_other", "description": "Checks whether _Slice_ `s` has no bits of data.", @@ -11589,6 +11936,7 @@ }, { "mnemonic": "SREMPTY", + "since_version": 0, "doc": { "category": "compare_other", "description": "Checks whether _Slice_ `s` has no references.", @@ -11617,6 +11965,7 @@ }, { "mnemonic": "SDFIRST", + "since_version": 0, "doc": { "category": "compare_other", "description": "Checks whether the first bit of _Slice_ `s` is a one.", @@ -11645,6 +11994,7 @@ }, { "mnemonic": "SDLEXCMP", + "since_version": 0, "doc": { "category": "compare_other", "description": "Compares the data of `s` lexicographically with the data of `s'`, returning `-1`, 0, or 1 depending on the result.", @@ -11676,6 +12026,7 @@ }, { "mnemonic": "SDEQ", + "since_version": 0, "doc": { "category": "compare_other", "description": "Checks whether the data parts of `s` and `s'` coincide, equivalent to `SDLEXCMP` `ISZERO`.", @@ -11707,6 +12058,7 @@ }, { "mnemonic": "SDPFX", + "since_version": 0, "doc": { "category": "compare_other", "description": "Checks whether `s` is a prefix of `s'`.", @@ -11738,6 +12090,7 @@ }, { "mnemonic": "SDPFXREV", + "since_version": 0, "doc": { "category": "compare_other", "description": "Checks whether `s'` is a prefix of `s`, equivalent to `SWAP` `SDPFX`.", @@ -11769,6 +12122,7 @@ }, { "mnemonic": "SDPPFX", + "since_version": 0, "doc": { "category": "compare_other", "description": "Checks whether `s` is a proper prefix of `s'` (i.e., a prefix distinct from `s'`).", @@ -11800,6 +12154,7 @@ }, { "mnemonic": "SDPPFXREV", + "since_version": 0, "doc": { "category": "compare_other", "description": "Checks whether `s'` is a proper prefix of `s`.", @@ -11827,6 +12182,7 @@ }, { "mnemonic": "SDSFX", + "since_version": 0, "doc": { "category": "compare_other", "description": "Checks whether `s` is a suffix of `s'`.", @@ -11858,6 +12214,7 @@ }, { "mnemonic": "SDSFXREV", + "since_version": 0, "doc": { "category": "compare_other", "description": "Checks whether `s'` is a suffix of `s`.", @@ -11889,6 +12246,7 @@ }, { "mnemonic": "SDPSFX", + "since_version": 0, "doc": { "category": "compare_other", "description": "Checks whether `s` is a proper suffix of `s'`.", @@ -11920,6 +12278,7 @@ }, { "mnemonic": "SDPSFXREV", + "since_version": 0, "doc": { "category": "compare_other", "description": "Checks whether `s'` is a proper suffix of `s`.", @@ -11951,6 +12310,7 @@ }, { "mnemonic": "SDCNTLEAD0", + "since_version": 0, "doc": { "category": "compare_other", "description": "Returns the number of leading zeroes in `s`.", @@ -11979,6 +12339,7 @@ }, { "mnemonic": "SDCNTLEAD1", + "since_version": 0, "doc": { "category": "compare_other", "description": "Returns the number of leading ones in `s`.", @@ -12007,6 +12368,7 @@ }, { "mnemonic": "SDCNTTRAIL0", + "since_version": 0, "doc": { "category": "compare_other", "description": "Returns the number of trailing zeroes in `s`.", @@ -12035,6 +12397,7 @@ }, { "mnemonic": "SDCNTTRAIL1", + "since_version": 0, "doc": { "category": "compare_other", "description": "Returns the number of trailing ones in `s`.", @@ -12063,6 +12426,7 @@ }, { "mnemonic": "NEWC", + "since_version": 0, "doc": { "category": "cell_build", "description": "Creates a new empty _Builder_.", @@ -12089,6 +12453,7 @@ }, { "mnemonic": "ENDC", + "since_version": 0, "doc": { "category": "cell_build", "description": "Converts a _Builder_ into an ordinary _Cell_.", @@ -12117,6 +12482,7 @@ }, { "mnemonic": "STI", + "since_version": 0, "doc": { "category": "cell_build", "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.", @@ -12156,6 +12522,7 @@ }, { "mnemonic": "STU", + "since_version": 0, "doc": { "category": "cell_build", "description": "Stores an unsigned `cc+1`-bit integer `x` into _Builder_ `b`. In all other respects it is similar to `STI`.", @@ -12195,6 +12562,7 @@ }, { "mnemonic": "STREF", + "since_version": 0, "doc": { "category": "cell_build", "description": "Stores a reference to _Cell_ `c` into _Builder_ `b`.", @@ -12226,6 +12594,7 @@ }, { "mnemonic": "STBREFR", + "since_version": 0, "doc": { "category": "cell_build", "description": "Equivalent to `ENDC` `SWAP` `STREF`.", @@ -12257,6 +12626,7 @@ }, { "mnemonic": "STSLICE", + "since_version": 0, "doc": { "category": "cell_build", "description": "Stores _Slice_ `s` into _Builder_ `b`.", @@ -12288,6 +12658,7 @@ }, { "mnemonic": "STIX", + "since_version": 0, "doc": { "category": "cell_build", "description": "Stores a signed `l`-bit integer `x` into `b` for `0 <= l <= 257`.", @@ -12320,6 +12691,7 @@ }, { "mnemonic": "STUX", + "since_version": 0, "doc": { "category": "cell_build", "description": "Stores an unsigned `l`-bit integer `x` into `b` for `0 <= l <= 256`.", @@ -12352,6 +12724,7 @@ }, { "mnemonic": "STIXR", + "since_version": 0, "doc": { "category": "cell_build", "description": "Similar to `STIX`, but with arguments in a different order.", @@ -12384,6 +12757,7 @@ }, { "mnemonic": "STUXR", + "since_version": 0, "doc": { "category": "cell_build", "description": "Similar to `STUX`, but with arguments in a different order.", @@ -12416,6 +12790,7 @@ }, { "mnemonic": "STIXQ", + "since_version": 0, "doc": { "category": "cell_build", "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.", @@ -12494,6 +12869,7 @@ }, { "mnemonic": "STUXQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "A quiet version of `STUX`.", @@ -12572,6 +12948,7 @@ }, { "mnemonic": "STIXRQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "A quiet version of `STIXR`.", @@ -12650,6 +13027,7 @@ }, { "mnemonic": "STUXRQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "A quiet version of `STUXR`.", @@ -12728,6 +13106,7 @@ }, { "mnemonic": "STI_ALT", + "since_version": 0, "doc": { "category": "cell_build", "description": "A longer version of `[cc+1] STI`.", @@ -12767,6 +13146,7 @@ }, { "mnemonic": "STU_ALT", + "since_version": 0, "doc": { "category": "cell_build", "description": "A longer version of `[cc+1] STU`.", @@ -12806,6 +13186,7 @@ }, { "mnemonic": "STIR", + "since_version": 0, "doc": { "category": "cell_build", "description": "Equivalent to `SWAP` `[cc+1] STI`.", @@ -12845,6 +13226,7 @@ }, { "mnemonic": "STUR", + "since_version": 0, "doc": { "category": "cell_build", "description": "Equivalent to `SWAP` `[cc+1] STU`.", @@ -12884,6 +13266,7 @@ }, { "mnemonic": "STIQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "A quiet version of `STI`.", @@ -12969,6 +13352,7 @@ }, { "mnemonic": "STUQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "A quiet version of `STU`.", @@ -13054,6 +13438,7 @@ }, { "mnemonic": "STIRQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "A quiet version of `STIR`.", @@ -13139,6 +13524,7 @@ }, { "mnemonic": "STURQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "A quiet version of `STUR`.", @@ -13224,6 +13610,7 @@ }, { "mnemonic": "STREF_ALT", + "since_version": 0, "doc": { "category": "cell_build", "description": "A longer version of `STREF`.", @@ -13255,6 +13642,7 @@ }, { "mnemonic": "STBREF", + "since_version": 0, "doc": { "category": "cell_build", "description": "Equivalent to `SWAP` `STBREFR`.", @@ -13286,6 +13674,7 @@ }, { "mnemonic": "STSLICE_ALT", + "since_version": 0, "doc": { "category": "cell_build", "description": "A longer version of `STSLICE`.", @@ -13317,6 +13706,7 @@ }, { "mnemonic": "STB", + "since_version": 0, "doc": { "category": "cell_build", "description": "Appends all data from _Builder_ `b'` to _Builder_ `b`.", @@ -13348,6 +13738,7 @@ }, { "mnemonic": "STREFR", + "since_version": 0, "doc": { "category": "cell_build", "description": "Equivalent to `SWAP` `STREF`.", @@ -13379,6 +13770,7 @@ }, { "mnemonic": "STBREFR_ALT", + "since_version": 0, "doc": { "category": "cell_build", "description": "A longer encoding of `STBREFR`.", @@ -13410,6 +13802,7 @@ }, { "mnemonic": "STSLICER", + "since_version": 0, "doc": { "category": "cell_build", "description": "Equivalent to `SWAP` `STSLICE`.", @@ -13441,6 +13834,7 @@ }, { "mnemonic": "STBR", + "since_version": 0, "doc": { "category": "cell_build", "description": "Concatenates two builders.\nEquivalent to `SWAP` `STB`.", @@ -13472,6 +13866,7 @@ }, { "mnemonic": "STREFQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "Quiet version of `STREF`.", @@ -13530,6 +13925,7 @@ }, { "mnemonic": "STBREFQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "Quiet version of `STBREF`.", @@ -13592,6 +13988,7 @@ }, { "mnemonic": "STSLICEQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "Quiet version of `STSLICE`.", @@ -13650,6 +14047,7 @@ }, { "mnemonic": "STBQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "Quiet version of `STB`.", @@ -13712,6 +14110,7 @@ }, { "mnemonic": "STREFRQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "Quiet version of `STREFR`.", @@ -13770,6 +14169,7 @@ }, { "mnemonic": "STBREFRQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "Quiet version of `STBREFR`.", @@ -13832,6 +14232,7 @@ }, { "mnemonic": "STSLICERQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "Quiet version of `STSLICER`.", @@ -13890,6 +14291,7 @@ }, { "mnemonic": "STBRQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "Quiet version of `STBR`.", @@ -13952,6 +14354,7 @@ }, { "mnemonic": "STREFCONST", + "since_version": 0, "doc": { "category": "cell_build", "description": "Equivalent to `PUSHREF` `STREFR`.", @@ -13984,6 +14387,7 @@ }, { "mnemonic": "STREF2CONST", + "since_version": 0, "doc": { "category": "cell_build", "description": "Equivalent to `STREFCONST` `STREFCONST`.", @@ -14014,6 +14418,7 @@ }, { "mnemonic": "ENDXC", + "since_version": 0, "doc": { "category": "cell_build", "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.", @@ -14043,6 +14448,7 @@ }, { "mnemonic": "STILE4", + "since_version": 0, "doc": { "category": "cell_build", "description": "Stores a little-endian signed 32-bit integer.", @@ -14074,6 +14480,7 @@ }, { "mnemonic": "STULE4", + "since_version": 0, "doc": { "category": "cell_build", "description": "Stores a little-endian unsigned 32-bit integer.", @@ -14105,6 +14512,7 @@ }, { "mnemonic": "STILE8", + "since_version": 0, "doc": { "category": "cell_build", "description": "Stores a little-endian signed 64-bit integer.", @@ -14136,6 +14544,7 @@ }, { "mnemonic": "STULE8", + "since_version": 0, "doc": { "category": "cell_build", "description": "Stores a little-endian unsigned 64-bit integer.", @@ -14167,6 +14576,7 @@ }, { "mnemonic": "BDEPTH", + "since_version": 0, "doc": { "category": "cell_build", "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`.", @@ -14197,6 +14607,7 @@ }, { "mnemonic": "BBITS", + "since_version": 0, "doc": { "category": "cell_build", "description": "Returns the number of data bits already stored in _Builder_ `b`.", @@ -14227,6 +14638,7 @@ }, { "mnemonic": "BREFS", + "since_version": 0, "doc": { "category": "cell_build", "description": "Returns the number of cell references already stored in `b`.", @@ -14257,6 +14669,7 @@ }, { "mnemonic": "BBITREFS", + "since_version": 0, "doc": { "category": "cell_build", "description": "Returns the numbers of both data bits and cell references in `b`.", @@ -14288,6 +14701,7 @@ }, { "mnemonic": "BREMBITS", + "since_version": 0, "doc": { "category": "cell_build", "description": "Returns the number of data bits that can still be stored in `b`.", @@ -14318,6 +14732,7 @@ }, { "mnemonic": "BREMREFS", + "since_version": 0, "doc": { "category": "cell_build", "description": "Returns the number of references that can still be stored in `b`.", @@ -14348,6 +14763,7 @@ }, { "mnemonic": "BREMBITREFS", + "since_version": 0, "doc": { "category": "cell_build", "description": "Returns the numbers of both data bits and references that can still be stored in `b`.", @@ -14379,6 +14795,7 @@ }, { "mnemonic": "BCHKBITS", + "since_version": 0, "doc": { "category": "cell_build", "description": "Checks whether `cc+1` bits can be stored into `b`, where `0 <= cc <= 255`.", @@ -14413,6 +14830,7 @@ }, { "mnemonic": "BCHKBITS_VAR", + "since_version": 0, "doc": { "category": "cell_build", "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.", @@ -14440,6 +14858,7 @@ }, { "mnemonic": "BCHKREFS", + "since_version": 0, "doc": { "category": "cell_build", "description": "Checks whether `y` references can be stored into `b`, `0 <= y <= 7`.", @@ -14467,6 +14886,7 @@ }, { "mnemonic": "BCHKBITREFS", + "since_version": 0, "doc": { "category": "cell_build", "description": "Checks whether `x` bits and `y` references can be stored into `b`, `0 <= x <= 1023`, `0 <= y <= 7`.", @@ -14495,6 +14915,7 @@ }, { "mnemonic": "BCHKBITSQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "Checks whether `cc+1` bits can be stored into `b`, where `0 <= cc <= 255`.", @@ -14533,6 +14954,7 @@ }, { "mnemonic": "BCHKBITSQ_VAR", + "since_version": 0, "doc": { "category": "cell_build", "description": "Checks whether `x` bits can be stored into `b`, `0 <= x <= 1023`.", @@ -14564,6 +14986,7 @@ }, { "mnemonic": "BCHKREFSQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "Checks whether `y` references can be stored into `b`, `0 <= y <= 7`.", @@ -14595,6 +15018,7 @@ }, { "mnemonic": "BCHKBITREFSQ", + "since_version": 0, "doc": { "category": "cell_build", "description": "Checks whether `x` bits and `y` references can be stored into `b`, `0 <= x <= 1023`, `0 <= y <= 7`.", @@ -14627,6 +15051,7 @@ }, { "mnemonic": "STZEROES", + "since_version": 0, "doc": { "category": "cell_build", "description": "Stores `n` binary zeroes into _Builder_ `b`.", @@ -14658,6 +15083,7 @@ }, { "mnemonic": "STONES", + "since_version": 0, "doc": { "category": "cell_build", "description": "Stores `n` binary ones into _Builder_ `b`.", @@ -14689,6 +15115,7 @@ }, { "mnemonic": "STSAME", + "since_version": 0, "doc": { "category": "cell_build", "description": "Stores `n` binary `x`es (`0 <= x <= 1`) into _Builder_ `b`.", @@ -14721,6 +15148,7 @@ }, { "mnemonic": "STSLICECONST", + "since_version": 0, "doc": { "category": "cell_build", "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.", @@ -14766,6 +15194,7 @@ }, { "mnemonic": "CTOS", + "since_version": 0, "doc": { "category": "cell_parse", "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.", @@ -14792,6 +15221,7 @@ }, { "mnemonic": "ENDS", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Removes a _Slice_ `s` from the stack, and throws an exception if it is not empty.", @@ -14816,6 +15246,7 @@ }, { "mnemonic": "LDI", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Loads (i.e., parses) a signed `cc+1`-bit integer `x` from _Slice_ `s`, and returns the remainder of `s` as `s'`.", @@ -14853,6 +15284,7 @@ }, { "mnemonic": "LDU", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Loads an unsigned `cc+1`-bit integer `x` from _Slice_ `s`.", @@ -14890,6 +15322,7 @@ }, { "mnemonic": "LDREF", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Loads a cell reference `c` from `s`.", @@ -14919,6 +15352,7 @@ }, { "mnemonic": "LDREFRTOS", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Equivalent to `LDREF` `SWAP` `CTOS`.", @@ -14948,6 +15382,7 @@ }, { "mnemonic": "LDSLICE", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Cuts the next `cc+1` bits of `s` into a separate _Slice_ `s''`.", @@ -14985,6 +15420,7 @@ }, { "mnemonic": "LDIX", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Loads a signed `l`-bit (`0 <= l <= 257`) integer `x` from _Slice_ `s`, and returns the remainder of `s` as `s'`.", @@ -15017,6 +15453,7 @@ }, { "mnemonic": "LDUX", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Loads an unsigned `l`-bit integer `x` from (the first `l` bits of) `s`, with `0 <= l <= 256`.", @@ -15049,6 +15486,7 @@ }, { "mnemonic": "PLDIX", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Preloads a signed `l`-bit integer from _Slice_ `s`, for `0 <= l <= 257`.", @@ -15080,6 +15518,7 @@ }, { "mnemonic": "PLDUX", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Preloads an unsigned `l`-bit integer from `s`, for `0 <= l <= 256`.", @@ -15111,6 +15550,7 @@ }, { "mnemonic": "LDIXQ", + "since_version": 0, "doc": { "category": "cell_parse", "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.", @@ -15165,6 +15605,7 @@ }, { "mnemonic": "LDUXQ", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Quiet version of `LDUX`.", @@ -15219,6 +15660,7 @@ }, { "mnemonic": "PLDIXQ", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Quiet version of `PLDIX`.", @@ -15267,6 +15709,7 @@ }, { "mnemonic": "PLDUXQ", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Quiet version of `PLDUX`.", @@ -15315,6 +15758,7 @@ }, { "mnemonic": "LDI_ALT", + "since_version": 0, "doc": { "category": "cell_parse", "description": "A longer encoding for `LDI`.", @@ -15352,6 +15796,7 @@ }, { "mnemonic": "LDU_ALT", + "since_version": 0, "doc": { "category": "cell_parse", "description": "A longer encoding for `LDU`.", @@ -15389,6 +15834,7 @@ }, { "mnemonic": "PLDI", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Preloads a signed `cc+1`-bit integer from _Slice_ `s`.", @@ -15425,6 +15871,7 @@ }, { "mnemonic": "PLDU", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Preloads an unsigned `cc+1`-bit integer from `s`.", @@ -15461,6 +15908,7 @@ }, { "mnemonic": "LDIQ", + "since_version": 0, "doc": { "category": "cell_parse", "description": "A quiet version of `LDI`.", @@ -15520,6 +15968,7 @@ }, { "mnemonic": "LDUQ", + "since_version": 0, "doc": { "category": "cell_parse", "description": "A quiet version of `LDU`.", @@ -15579,6 +16028,7 @@ }, { "mnemonic": "PLDIQ", + "since_version": 0, "doc": { "category": "cell_parse", "description": "A quiet version of `PLDI`.", @@ -15632,6 +16082,7 @@ }, { "mnemonic": "PLDUQ", + "since_version": 0, "doc": { "category": "cell_parse", "description": "A quiet version of `PLDU`.", @@ -15685,6 +16136,7 @@ }, { "mnemonic": "PLDUZ", + "since_version": 0, "doc": { "category": "cell_parse", "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.", @@ -15722,6 +16174,7 @@ }, { "mnemonic": "LDSLICEX", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Loads the first `0 <= l <= 1023` bits from _Slice_ `s` into a separate _Slice_ `s''`, returning the remainder of `s` as `s'`.", @@ -15754,6 +16207,7 @@ }, { "mnemonic": "PLDSLICEX", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns the first `0 <= l <= 1023` bits of `s` as `s''`.", @@ -15785,6 +16239,7 @@ }, { "mnemonic": "LDSLICEXQ", + "since_version": 0, "doc": { "category": "cell_parse", "description": "A quiet version of `LDSLICEX`.", @@ -15839,6 +16294,7 @@ }, { "mnemonic": "PLDSLICEXQ", + "since_version": 0, "doc": { "category": "cell_parse", "description": "A quiet version of `LDSLICEXQ`.", @@ -15883,6 +16339,7 @@ }, { "mnemonic": "LDSLICE_ALT", + "since_version": 0, "doc": { "category": "cell_parse", "description": "A longer encoding for `LDSLICE`.", @@ -15920,6 +16377,7 @@ }, { "mnemonic": "PLDSLICE", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns the first `0 < cc+1 <= 256` bits of `s` as `s''`.", @@ -15956,6 +16414,7 @@ }, { "mnemonic": "LDSLICEQ", + "since_version": 0, "doc": { "category": "cell_parse", "description": "A quiet version of `LDSLICE`.", @@ -16015,6 +16474,7 @@ }, { "mnemonic": "PLDSLICEQ", + "since_version": 0, "doc": { "category": "cell_parse", "description": "A quiet version of `PLDSLICE`.", @@ -16064,6 +16524,7 @@ }, { "mnemonic": "SDCUTFIRST", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns the first `0 <= l <= 1023` bits of `s`. It is equivalent to `PLDSLICEX`.", @@ -16095,6 +16556,7 @@ }, { "mnemonic": "SDSKIPFIRST", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns all but the first `0 <= l <= 1023` bits of `s`. It is equivalent to `LDSLICEX` `NIP`.", @@ -16126,6 +16588,7 @@ }, { "mnemonic": "SDCUTLAST", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns the last `0 <= l <= 1023` bits of `s`.", @@ -16157,6 +16620,7 @@ }, { "mnemonic": "SDSKIPLAST", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns all but the last `0 <= l <= 1023` bits of `s`.", @@ -16188,6 +16652,7 @@ }, { "mnemonic": "SDSUBSTR", + "since_version": 0, "doc": { "category": "cell_parse", "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`.", @@ -16220,6 +16685,7 @@ }, { "mnemonic": "SDBEGINSX", + "since_version": 0, "doc": { "category": "cell_parse", "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`.", @@ -16251,6 +16717,7 @@ }, { "mnemonic": "SDBEGINSXQ", + "since_version": 0, "doc": { "category": "cell_parse", "description": "A quiet version of `SDBEGINSX`.", @@ -16300,6 +16767,7 @@ }, { "mnemonic": "SDBEGINS", + "since_version": 0, "doc": { "category": "cell_parse", "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.", @@ -16341,6 +16809,7 @@ }, { "mnemonic": "SDBEGINSQ", + "since_version": 0, "doc": { "category": "cell_parse", "description": "A quiet version of `SDBEGINS`.", @@ -16400,6 +16869,7 @@ }, { "mnemonic": "SCUTFIRST", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns the first `0 <= l <= 1023` bits and first `0 <= r <= 4` references of `s`.", @@ -16432,6 +16902,7 @@ }, { "mnemonic": "SSKIPFIRST", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns all but the first `l` bits of `s` and `r` references of `s`.", @@ -16464,6 +16935,7 @@ }, { "mnemonic": "SCUTLAST", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns the last `0 <= l <= 1023` data bits and last `0 <= r <= 4` references of `s`.", @@ -16496,6 +16968,7 @@ }, { "mnemonic": "SSKIPLAST", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns all but the last `l` bits of `s` and `r` references of `s`.", @@ -16528,6 +17001,7 @@ }, { "mnemonic": "SUBSLICE", + "since_version": 0, "doc": { "category": "cell_parse", "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.", @@ -16562,6 +17036,7 @@ }, { "mnemonic": "SPLIT", + "since_version": 0, "doc": { "category": "cell_parse", "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''`.", @@ -16595,6 +17070,7 @@ }, { "mnemonic": "SPLITQ", + "since_version": 0, "doc": { "category": "cell_parse", "description": "A quiet version of `SPLIT`.", @@ -16650,6 +17126,7 @@ }, { "mnemonic": "XCTOS", + "since_version": 0, "doc": { "category": "cell_parse", "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`.", @@ -16679,6 +17156,7 @@ }, { "mnemonic": "XLOAD", + "since_version": 0, "doc": { "category": "cell_parse", "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.", @@ -16705,6 +17183,7 @@ }, { "mnemonic": "XLOADQ", + "since_version": 0, "doc": { "category": "cell_parse", "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.", @@ -16751,6 +17230,7 @@ }, { "mnemonic": "SCHKBITS", + "since_version": 0, "doc": { "category": "cell_parse", "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.", @@ -16778,6 +17258,7 @@ }, { "mnemonic": "SCHKREFS", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Checks whether there are at least `r` references in _Slice_ `s`.", @@ -16805,6 +17286,7 @@ }, { "mnemonic": "SCHKBITREFS", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Checks whether there are at least `l` data bits and `r` references in _Slice_ `s`.", @@ -16833,6 +17315,7 @@ }, { "mnemonic": "SCHKBITSQ", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Checks whether there are at least `l` data bits in _Slice_ `s`.", @@ -16864,6 +17347,7 @@ }, { "mnemonic": "SCHKREFSQ", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Checks whether there are at least `r` references in _Slice_ `s`.", @@ -16895,6 +17379,7 @@ }, { "mnemonic": "SCHKBITREFSQ", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Checks whether there are at least `l` data bits and `r` references in _Slice_ `s`.", @@ -16927,6 +17412,7 @@ }, { "mnemonic": "PLDREFVAR", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns the `n`-th cell reference of _Slice_ `s` for `0 <= n <= 3`.", @@ -16956,6 +17442,7 @@ }, { "mnemonic": "SBITS", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns the number of data bits in _Slice_ `s`.", @@ -16984,6 +17471,7 @@ }, { "mnemonic": "SREFS", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns the number of references in _Slice_ `s`.", @@ -17012,6 +17500,7 @@ }, { "mnemonic": "SBITREFS", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns both the number of data bits and the number of references in `s`.", @@ -17041,6 +17530,7 @@ }, { "mnemonic": "PLDREFIDX", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns the `n`-th cell reference of _Slice_ `s`, where `0 <= n <= 3`.", @@ -17075,6 +17565,7 @@ }, { "mnemonic": "LDILE4", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Loads a little-endian signed 32-bit integer.", @@ -17104,6 +17595,7 @@ }, { "mnemonic": "LDULE4", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Loads a little-endian unsigned 32-bit integer.", @@ -17133,6 +17625,7 @@ }, { "mnemonic": "LDILE8", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Loads a little-endian signed 64-bit integer.", @@ -17162,6 +17655,7 @@ }, { "mnemonic": "LDULE8", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Loads a little-endian unsigned 64-bit integer.", @@ -17191,6 +17685,7 @@ }, { "mnemonic": "PLDILE4", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Preloads a little-endian signed 32-bit integer.", @@ -17219,6 +17714,7 @@ }, { "mnemonic": "PLDULE4", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Preloads a little-endian unsigned 32-bit integer.", @@ -17247,6 +17743,7 @@ }, { "mnemonic": "PLDILE8", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Preloads a little-endian signed 64-bit integer.", @@ -17275,6 +17772,7 @@ }, { "mnemonic": "PLDULE8", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Preloads a little-endian unsigned 64-bit integer.", @@ -17303,6 +17801,7 @@ }, { "mnemonic": "LDILE4Q", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Quietly loads a little-endian signed 32-bit integer.", @@ -17354,6 +17853,7 @@ }, { "mnemonic": "LDULE4Q", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Quietly loads a little-endian unsigned 32-bit integer.", @@ -17405,6 +17905,7 @@ }, { "mnemonic": "LDILE8Q", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Quietly loads a little-endian signed 64-bit integer.", @@ -17456,6 +17957,7 @@ }, { "mnemonic": "LDULE8Q", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Quietly loads a little-endian unsigned 64-bit integer.", @@ -17507,6 +18009,7 @@ }, { "mnemonic": "PLDILE4Q", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Quietly preloads a little-endian signed 32-bit integer.", @@ -17552,6 +18055,7 @@ }, { "mnemonic": "PLDULE4Q", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Quietly preloads a little-endian unsigned 32-bit integer.", @@ -17597,6 +18101,7 @@ }, { "mnemonic": "PLDILE8Q", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Quietly preloads a little-endian signed 64-bit integer.", @@ -17642,6 +18147,7 @@ }, { "mnemonic": "PLDULE8Q", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Quietly preloads a little-endian unsigned 64-bit integer.", @@ -17687,6 +18193,7 @@ }, { "mnemonic": "LDZEROES", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns the count `n` of leading zero bits in `s`, and removes these bits from `s`.", @@ -17716,6 +18223,7 @@ }, { "mnemonic": "LDONES", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns the count `n` of leading one bits in `s`, and removes these bits from `s`.", @@ -17745,6 +18253,7 @@ }, { "mnemonic": "LDSAME", + "since_version": 0, "doc": { "category": "cell_parse", "description": "Returns the count `n` of leading bits equal to `0 <= x <= 1` in `s`, and removes these bits from `s`.", @@ -17777,6 +18286,7 @@ }, { "mnemonic": "SDEPTH", + "since_version": 0, "doc": { "category": "cell_parse", "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`.", @@ -17805,6 +18315,7 @@ }, { "mnemonic": "CDEPTH", + "since_version": 0, "doc": { "category": "cell_parse", "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.", @@ -17833,6 +18344,7 @@ }, { "mnemonic": "EXECUTE", + "since_version": 0, "doc": { "category": "cont_basic", "description": "_Calls_, or _executes_, continuation `c`.", @@ -17873,6 +18385,7 @@ }, { "mnemonic": "JMPX", + "since_version": 0, "doc": { "category": "cont_basic", "description": "_Jumps_, or transfers control, to continuation `c`.\nThe remainder of the previous current continuation `cc` is discarded.", @@ -17902,6 +18415,7 @@ }, { "mnemonic": "CALLXARGS", + "since_version": 0, "doc": { "category": "cont_basic", "description": "_Calls_ continuation `c` with `p` parameters and expecting `r` return values\n`0 <= p <= 15`, `0 <= r <= 15`", @@ -17963,6 +18477,7 @@ }, { "mnemonic": "CALLXARGS_VAR", + "since_version": 0, "doc": { "category": "cont_basic", "description": "_Calls_ continuation `c` with `0 <= p <= 15` parameters, expecting an arbitrary number of return values.", @@ -18017,6 +18532,7 @@ }, { "mnemonic": "JMPXARGS", + "since_version": 0, "doc": { "category": "cont_basic", "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).", @@ -18060,6 +18576,7 @@ }, { "mnemonic": "RETARGS", + "since_version": 0, "doc": { "category": "cont_basic", "description": "_Returns_ to `c0`, with `0 <= r <= 15` return values taken from the current stack.", @@ -18102,6 +18619,7 @@ }, { "mnemonic": "RET", + "since_version": 0, "doc": { "category": "cont_basic", "description": "_Returns_ to the continuation at `c0`. The remainder of the current continuation `cc` is discarded.\nApproximately equivalent to `c0 PUSHCTR` `JMPX`.", @@ -18127,6 +18645,7 @@ }, { "mnemonic": "RETALT", + "since_version": 0, "doc": { "category": "cont_basic", "description": "_Returns_ to the continuation at `c1`.\nApproximately equivalent to `c1 PUSHCTR` `JMPX`.", @@ -18152,6 +18671,7 @@ }, { "mnemonic": "BRANCH", + "since_version": 0, "doc": { "category": "cont_basic", "description": "Performs `RETTRUE` if integer `f!=0`, or `RETFALSE` if `f=0`.", @@ -18184,6 +18704,7 @@ }, { "mnemonic": "CALLCC", + "since_version": 0, "doc": { "category": "cont_basic", "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`).", @@ -18213,6 +18734,7 @@ }, { "mnemonic": "JMPXDATA", + "since_version": 0, "doc": { "category": "cont_basic", "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`.", @@ -18242,6 +18764,7 @@ }, { "mnemonic": "CALLCCARGS", + "since_version": 0, "doc": { "category": "cont_basic", "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`.", @@ -18292,6 +18815,7 @@ }, { "mnemonic": "CALLXVARARGS", + "since_version": 0, "doc": { "category": "cont_basic", "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`.", @@ -18340,6 +18864,7 @@ }, { "mnemonic": "RETVARARGS", + "since_version": 0, "doc": { "category": "cont_basic", "description": "Similar to `RETARGS`.", @@ -18387,6 +18912,7 @@ }, { "mnemonic": "JMPXVARARGS", + "since_version": 0, "doc": { "category": "cont_basic", "description": "Similar to `JMPXARGS`.", @@ -18424,6 +18950,7 @@ }, { "mnemonic": "CALLCCVARARGS", + "since_version": 0, "doc": { "category": "cont_basic", "description": "Similar to `CALLCCARGS`.", @@ -18461,6 +18988,7 @@ }, { "mnemonic": "CALLREF", + "since_version": 0, "doc": { "category": "cont_basic", "description": "Equivalent to `PUSHREFCONT` `CALLX`.", @@ -18503,6 +19031,7 @@ }, { "mnemonic": "JMPREF", + "since_version": 0, "doc": { "category": "cont_basic", "description": "Equivalent to `PUSHREFCONT` `JMPX`.", @@ -18534,6 +19063,7 @@ }, { "mnemonic": "JMPREFDATA", + "since_version": 0, "doc": { "category": "cont_basic", "description": "Equivalent to `PUSHREFCONT` `JMPXDATA`.", @@ -18565,6 +19095,7 @@ }, { "mnemonic": "RETDATA", + "since_version": 0, "doc": { "category": "cont_basic", "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.", @@ -18590,6 +19121,7 @@ }, { "mnemonic": "RUNVM", + "since_version": 4, "doc": { "category": "cont_basic", "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.", @@ -18612,6 +19144,7 @@ }, { "mnemonic": "RUNVMX", + "since_version": 4, "doc": { "category": "cont_basic", "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.", @@ -18634,6 +19167,7 @@ }, { "mnemonic": "IFRET", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "Performs a `RET`, but only if integer `f` is non-zero. If `f` is a `NaN`, throws an integer overflow exception.", @@ -18663,6 +19197,7 @@ }, { "mnemonic": "IFNOTRET", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "Performs a `RET`, but only if integer `f` is zero.", @@ -18692,6 +19227,7 @@ }, { "mnemonic": "IF", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "Performs `EXECUTE` for `c` (i.e., _executes_ `c`), but only if integer `f` is non-zero. Otherwise simply discards both values.", @@ -18738,6 +19274,7 @@ }, { "mnemonic": "IFNOT", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "Executes continuation `c`, but only if integer `f` is zero. Otherwise simply discards both values.", @@ -18784,6 +19321,7 @@ }, { "mnemonic": "IFJMP", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "Jumps to `c` (similarly to `JMPX`), but only if `f` is non-zero.", @@ -18819,6 +19357,7 @@ }, { "mnemonic": "IFNOTJMP", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "Jumps to `c` (similarly to `JMPX`), but only if `f` is zero.", @@ -18854,6 +19393,7 @@ }, { "mnemonic": "IFELSE", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "If integer `f` is non-zero, executes `c`, otherwise executes `c'`. Equivalent to `CONDSELCHK` `EXECUTE`.", @@ -18911,6 +19451,7 @@ }, { "mnemonic": "IFREF", + "since_version": 0, "doc": { "category": "cont_conditional", "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.", @@ -18957,6 +19498,7 @@ }, { "mnemonic": "IFNOTREF", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "Equivalent to `PUSHREFCONT` `IFNOT`.", @@ -19003,6 +19545,7 @@ }, { "mnemonic": "IFJMPREF", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "Equivalent to `PUSHREFCONT` `IFJMP`.", @@ -19038,6 +19581,7 @@ }, { "mnemonic": "IFNOTJMPREF", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "Equivalent to `PUSHREFCONT` `IFNOTJMP`.", @@ -19073,6 +19617,7 @@ }, { "mnemonic": "CONDSEL", + "since_version": 0, "doc": { "category": "cont_conditional", "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`.", @@ -19101,6 +19646,7 @@ }, { "mnemonic": "CONDSELCHK", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "Same as `CONDSEL`, but first checks whether `x` and `y` have the same type.", @@ -19129,6 +19675,7 @@ }, { "mnemonic": "IFRETALT", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "Performs `RETALT` if integer `f!=0`.", @@ -19158,6 +19705,7 @@ }, { "mnemonic": "IFNOTRETALT", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "Performs `RETALT` if integer `f=0`.", @@ -19187,6 +19735,7 @@ }, { "mnemonic": "IFREFELSE", + "since_version": 0, "doc": { "category": "cont_conditional", "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.", @@ -19244,6 +19793,7 @@ }, { "mnemonic": "IFELSEREF", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "Equivalent to `PUSHREFCONT` `IFELSE`.", @@ -19301,6 +19851,7 @@ }, { "mnemonic": "IFREFELSEREF", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "Equivalent to `PUSHREFCONT` `PUSHREFCONT` `IFELSE`.", @@ -19362,6 +19913,7 @@ }, { "mnemonic": "IFBITJMP", + "since_version": 0, "doc": { "category": "cont_conditional", "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.", @@ -19404,6 +19956,7 @@ }, { "mnemonic": "IFNBITJMP", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "Jumps to `c` if bit `0 <= n <= 31` is not set in integer `x`.", @@ -19446,6 +19999,7 @@ }, { "mnemonic": "IFBITJMPREF", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "Performs a `JMPREF` if bit `0 <= n <= 31` is set in integer `x`.", @@ -19492,6 +20046,7 @@ }, { "mnemonic": "IFNBITJMPREF", + "since_version": 0, "doc": { "category": "cont_conditional", "description": "Performs a `JMPREF` if bit `0 <= n <= 31` is not set in integer `x`.", @@ -19538,6 +20093,7 @@ }, { "mnemonic": "REPEAT", + "since_version": 0, "doc": { "category": "cont_loops", "description": "Executes continuation `c` `n` times, if integer `n` is non-negative. If `n>=2^31` or `n<-2^31`, generates a range check exception.\nNotice that a `RET` inside the code of `c` works as a `continue`, not as a `break`. One should use either alternative (experimental) loops or alternative `RETALT` (along with a `SETEXITALT` before the loop) to `break` out of a loop.", @@ -19586,6 +20142,7 @@ }, { "mnemonic": "REPEATEND", + "since_version": 0, "doc": { "category": "cont_loops", "description": "Similar to `REPEAT`, but it is applied to the current continuation `cc`.", @@ -19625,6 +20182,7 @@ }, { "mnemonic": "UNTIL", + "since_version": 0, "doc": { "category": "cont_loops", "description": "Executes continuation `c`, then pops an integer `x` from the resulting stack. If `x` is zero, performs another iteration of this loop. The actual implementation of this primitive involves an extraordinary continuation `ec_until` with its arguments set to the body of the loop (continuation `c`) and the original current continuation `cc`. This extraordinary continuation is then saved into the savelist of `c` as `c.c0` and the modified `c` is then executed. The other loop primitives are implemented similarly with the aid of suitable extraordinary continuations.", @@ -19677,6 +20235,7 @@ }, { "mnemonic": "UNTILEND", + "since_version": 0, "doc": { "category": "cont_loops", "description": "Similar to `UNTIL`, but executes the current continuation `cc` in a loop. When the loop exit condition is satisfied, performs a `RET`.", @@ -19716,6 +20275,7 @@ }, { "mnemonic": "WHILE", + "since_version": 0, "doc": { "category": "cont_loops", "description": "Executes `c'` and pops an integer `x` from the resulting stack. If `x` is zero, exists the loop and transfers control to the original `cc`. If `x` is non-zero, executes `c`, and then begins a new iteration.", @@ -19770,6 +20330,7 @@ }, { "mnemonic": "WHILEEND", + "since_version": 0, "doc": { "category": "cont_loops", "description": "Similar to `WHILE`, but uses the current continuation `cc` as the loop body.", @@ -19815,6 +20376,7 @@ }, { "mnemonic": "AGAIN", + "since_version": 0, "doc": { "category": "cont_loops", "description": "Similar to `REPEAT`, but executes `c` infinitely many times. A `RET` only begins a new iteration of the infinite loop, which can be exited only by an exception, or a `RETALT` (or an explicit `JMPX`).", @@ -19855,6 +20417,7 @@ }, { "mnemonic": "AGAINEND", + "since_version": 0, "doc": { "category": "cont_loops", "description": "Similar to `AGAIN`, but performed with respect to the current continuation `cc`.", @@ -19886,6 +20449,7 @@ }, { "mnemonic": "REPEATBRK", + "since_version": 0, "doc": { "category": "cont_loops", "description": "Similar to `REPEAT`, but also sets `c1` to the original `cc` after saving the old value of `c1` into the savelist of the original `cc`. In this way `RETALT` could be used to break out of the loop body.", @@ -19949,6 +20513,7 @@ }, { "mnemonic": "REPEATENDBRK", + "since_version": 0, "doc": { "category": "cont_loops", "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`.", @@ -19991,6 +20556,7 @@ }, { "mnemonic": "UNTILBRK", + "since_version": 0, "doc": { "category": "cont_loops", "description": "Similar to `UNTIL`, but also modifies `c1` in the same way as `REPEATBRK`.", @@ -20065,6 +20631,7 @@ }, { "mnemonic": "UNTILENDBRK", + "since_version": 0, "doc": { "category": "cont_loops", "description": "Equivalent to `SAMEALTSAVE` `UNTILEND`.", @@ -20108,6 +20675,7 @@ }, { "mnemonic": "WHILEBRK", + "since_version": 0, "doc": { "category": "cont_loops", "description": "Similar to `WHILE`, but also modifies `c1` in the same way as `REPEATBRK`.", @@ -20165,6 +20733,7 @@ }, { "mnemonic": "WHILEENDBRK", + "since_version": 0, "doc": { "category": "cont_loops", "description": "Equivalent to `SAMEALTSAVE` `WHILEEND`.", @@ -20191,6 +20760,7 @@ }, { "mnemonic": "AGAINBRK", + "since_version": 0, "doc": { "category": "cont_loops", "description": "Similar to `AGAIN`, but also modifies `c1` in the same way as `REPEATBRK`.", @@ -20222,6 +20792,7 @@ }, { "mnemonic": "AGAINENDBRK", + "since_version": 0, "doc": { "category": "cont_loops", "description": "Equivalent to `SAMEALTSAVE` `AGAINEND`.", @@ -20244,6 +20815,7 @@ }, { "mnemonic": "SETCONTARGS_N", + "since_version": 0, "doc": { "category": "cont_stack", "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.", @@ -20295,6 +20867,7 @@ }, { "mnemonic": "RETURNARGS", + "since_version": 0, "doc": { "category": "cont_stack", "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.", @@ -20321,6 +20894,7 @@ }, { "mnemonic": "RETURNVARARGS", + "since_version": 0, "doc": { "category": "cont_stack", "description": "Similar to `RETURNARGS`, but with Integer `0 <= p <= 255` taken from the stack.", @@ -20339,6 +20913,7 @@ }, { "mnemonic": "SETCONTVARARGS", + "since_version": 0, "doc": { "category": "cont_stack", "description": "Similar to `SETCONTARGS`, but with `0 <= r <= 255` and `-1 <= n <= 255` taken from the stack.", @@ -20377,6 +20952,7 @@ }, { "mnemonic": "SETNUMVARARGS", + "since_version": 0, "doc": { "category": "cont_stack", "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.", @@ -20408,6 +20984,7 @@ }, { "mnemonic": "BLESS", + "since_version": 0, "doc": { "category": "cont_create", "description": "Transforms a _Slice_ `s` into a simple ordinary continuation `c`, with `c.code=s` and an empty stack and savelist.", @@ -20436,6 +21013,7 @@ }, { "mnemonic": "BLESSVARARGS", + "since_version": 0, "doc": { "category": "cont_create", "description": "Equivalent to `ROT` `BLESS` `ROTREV` `SETCONTVARARGS`.", @@ -20474,6 +21052,7 @@ }, { "mnemonic": "BLESSARGS", + "since_version": 0, "doc": { "category": "cont_create", "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`.", @@ -20525,6 +21104,7 @@ }, { "mnemonic": "PUSHCTR", + "since_version": 0, "doc": { "category": "cont_registers", "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.", @@ -20555,6 +21135,7 @@ }, { "mnemonic": "POPCTR", + "since_version": 0, "doc": { "category": "cont_registers", "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.", @@ -20585,6 +21166,7 @@ }, { "mnemonic": "SETCONTCTR", + "since_version": 0, "doc": { "category": "cont_registers", "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`.", @@ -20624,6 +21206,7 @@ }, { "mnemonic": "SETRETCTR", + "since_version": 0, "doc": { "category": "cont_registers", "description": "Equivalent to `c0 PUSHCTR` `c[i] SETCONTCTR` `c0 POPCTR`.", @@ -20654,6 +21237,7 @@ }, { "mnemonic": "SETALTCTR", + "since_version": 0, "doc": { "category": "cont_registers", "description": "Equivalent to `c1 PUSHCTR` `c[i] SETCONTCTR` `c0 POPCTR`.", @@ -20684,6 +21268,7 @@ }, { "mnemonic": "POPSAVE", + "since_version": 0, "doc": { "category": "cont_registers", "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`.", @@ -20714,6 +21299,7 @@ }, { "mnemonic": "SAVE", + "since_version": 0, "doc": { "category": "cont_registers", "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`.", @@ -20744,6 +21330,7 @@ }, { "mnemonic": "SAVEALT", + "since_version": 0, "doc": { "category": "cont_registers", "description": "Similar to `c[i] SAVE`, but saves the current value of `c[i]` into the savelist of `c1`, not `c0`.", @@ -20774,6 +21361,7 @@ }, { "mnemonic": "SAVEBOTH", + "since_version": 0, "doc": { "category": "cont_registers", "description": "Equivalent to `DUP` `c[i] SAVE` `c[i] SAVEALT`.", @@ -20804,6 +21392,7 @@ }, { "mnemonic": "PUSHCTRX", + "since_version": 0, "doc": { "category": "cont_registers", "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`.", @@ -20830,6 +21419,7 @@ }, { "mnemonic": "POPCTRX", + "since_version": 0, "doc": { "category": "cont_registers", "description": "Similar to `c[i] POPCTR`, but with `0 <= i <= 255` from the stack.", @@ -20857,6 +21447,7 @@ }, { "mnemonic": "SETCONTCTRX", + "since_version": 0, "doc": { "category": "cont_registers", "description": "Similar to `c[i] SETCONTCTR`, but with `0 <= i <= 255` from the stack.", @@ -20889,6 +21480,7 @@ }, { "mnemonic": "COMPOS", + "since_version": 0, "doc": { "category": "cont_registers", "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`.", @@ -20920,6 +21512,7 @@ }, { "mnemonic": "COMPOSALT", + "since_version": 0, "doc": { "category": "cont_registers", "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`.", @@ -20951,6 +21544,7 @@ }, { "mnemonic": "COMPOSBOTH", + "since_version": 0, "doc": { "category": "cont_registers", "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`''.", @@ -20982,6 +21576,7 @@ }, { "mnemonic": "ATEXIT", + "since_version": 0, "doc": { "category": "cont_registers", "description": "Sets `c0` to `compose0(c, c0)`. In other words, `c` will be executed before exiting current subroutine.", @@ -21013,6 +21608,7 @@ }, { "mnemonic": "ATEXITALT", + "since_version": 0, "doc": { "category": "cont_registers", "description": "Sets `c1` to `compose1(c, c1)`. In other words, `c` will be executed before exiting current subroutine by its alternative return path.", @@ -21044,6 +21640,7 @@ }, { "mnemonic": "SETEXITALT", + "since_version": 0, "doc": { "category": "cont_registers", "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.", @@ -21070,6 +21667,7 @@ }, { "mnemonic": "THENRET", + "since_version": 0, "doc": { "category": "cont_registers", "description": "Computes `compose0(c, c0)`.", @@ -21100,6 +21698,7 @@ }, { "mnemonic": "THENRETALT", + "since_version": 0, "doc": { "category": "cont_registers", "description": "Computes `compose0(c, c1)`", @@ -21130,6 +21729,7 @@ }, { "mnemonic": "INVERT", + "since_version": 0, "doc": { "category": "cont_registers", "description": "Interchanges `c0` and `c1`.", @@ -21152,6 +21752,7 @@ }, { "mnemonic": "BOOLEVAL", + "since_version": 0, "doc": { "category": "cont_registers", "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.", @@ -21220,6 +21821,7 @@ }, { "mnemonic": "SAMEALT", + "since_version": 0, "doc": { "category": "cont_registers", "description": "Sets `c1` to `c0`. Equivalent to `c0 PUSHCTR` `c1 POPCTR`.", @@ -21242,6 +21844,7 @@ }, { "mnemonic": "SAMEALTSAVE", + "since_version": 0, "doc": { "category": "cont_registers", "description": "Sets `c1` to `c0`, but first saves the old value of `c1` into the savelist of `c0`.\nEquivalent to `c1 SAVE` `SAMEALT`.", @@ -21264,6 +21867,7 @@ }, { "mnemonic": "CALLDICT", + "since_version": 0, "doc": { "category": "cont_dict", "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`.", @@ -21312,6 +21916,7 @@ }, { "mnemonic": "CALLDICT_LONG", + "since_version": 0, "doc": { "category": "cont_dict", "description": "For `0 <= n < 2^14`, an encoding of `[n] CALL` for larger values of `n`.", @@ -21360,6 +21965,7 @@ }, { "mnemonic": "JMPDICT", + "since_version": 0, "doc": { "category": "cont_dict", "description": "Jumps to the continuation in `c3`, pushing integer `0 <= n < 2^14` as its argument.\nApproximately equivalent to `n PUSHINT` `c3 PUSHCTR` `JMPX`.", @@ -21397,6 +22003,7 @@ }, { "mnemonic": "PREPAREDICT", + "since_version": 0, "doc": { "category": "cont_dict", "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.", @@ -21432,6 +22039,7 @@ }, { "mnemonic": "THROW_SHORT", + "since_version": 0, "doc": { "category": "exceptions", "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.", @@ -21462,6 +22070,7 @@ }, { "mnemonic": "THROWIF_SHORT", + "since_version": 0, "doc": { "category": "exceptions", "description": "Throws exception `0 <= n <= 63` with parameter zero only if integer `f!=0`.", @@ -21496,6 +22105,7 @@ }, { "mnemonic": "THROWIFNOT_SHORT", + "since_version": 0, "doc": { "category": "exceptions", "description": "Throws exception `0 <= n <= 63` with parameter zero only if integer `f=0`.", @@ -21530,6 +22140,7 @@ }, { "mnemonic": "THROW", + "since_version": 0, "doc": { "category": "exceptions", "description": "For `0 <= n < 2^11`, an encoding of `[n] THROW` for larger values of `n`.", @@ -21560,6 +22171,7 @@ }, { "mnemonic": "THROWARG", + "since_version": 0, "doc": { "category": "exceptions", "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`.", @@ -21590,6 +22202,7 @@ }, { "mnemonic": "THROWIF", + "since_version": 0, "doc": { "category": "exceptions", "description": "For `0 <= n < 2^11`, an encoding of `[n] THROWIF` for larger values of `n`.", @@ -21624,6 +22237,7 @@ }, { "mnemonic": "THROWARGIF", + "since_version": 0, "doc": { "category": "exceptions", "description": "Throws exception `0 <= nn < 2^11` with parameter `x` only if integer `f!=0`.", @@ -21659,6 +22273,7 @@ }, { "mnemonic": "THROWIFNOT", + "since_version": 0, "doc": { "category": "exceptions", "description": "For `0 <= n < 2^11`, an encoding of `[n] THROWIFNOT` for larger values of `n`.", @@ -21693,6 +22308,7 @@ }, { "mnemonic": "THROWARGIFNOT", + "since_version": 0, "doc": { "category": "exceptions", "description": "Throws exception `0 <= n < 2^11` with parameter `x` only if integer `f=0`.", @@ -21728,6 +22344,7 @@ }, { "mnemonic": "THROWANY", + "since_version": 0, "doc": { "category": "exceptions", "description": "Throws exception `0 <= n < 2^16` with parameter zero.\nApproximately equivalent to `ZERO` `SWAP` `THROWARGANY`.", @@ -21754,6 +22371,7 @@ }, { "mnemonic": "THROWARGANY", + "since_version": 0, "doc": { "category": "exceptions", "description": "Throws exception `0 <= n < 2^16` with parameter `x`, transferring control to the continuation in `c2`.\nApproximately equivalent to `c2 PUSHCTR` `2 JMPXARGS`.", @@ -21781,6 +22399,7 @@ }, { "mnemonic": "THROWANYIF", + "since_version": 0, "doc": { "category": "exceptions", "description": "Throws exception `0 <= n < 2^16` with parameter zero only if `f!=0`.", @@ -21808,6 +22427,7 @@ }, { "mnemonic": "THROWARGANYIF", + "since_version": 0, "doc": { "category": "exceptions", "description": "Throws exception `0 <= n<2^16` with parameter `x` only if `f!=0`.", @@ -21836,6 +22456,7 @@ }, { "mnemonic": "THROWANYIFNOT", + "since_version": 0, "doc": { "category": "exceptions", "description": "Throws exception `0 <= n<2^16` with parameter zero only if `f=0`.", @@ -21863,6 +22484,7 @@ }, { "mnemonic": "THROWARGANYIFNOT", + "since_version": 0, "doc": { "category": "exceptions", "description": "Throws exception `0 <= n<2^16` with parameter `x` only if `f=0`.", @@ -21891,6 +22513,7 @@ }, { "mnemonic": "TRY", + "since_version": 0, "doc": { "category": "exceptions", "description": "Sets `c2` to `c'`, first saving the old value of `c2` both into the savelist of `c'` and into the savelist of the current continuation, which is stored into `c.c0` and `c'.c0`. Then runs `c` similarly to `EXECUTE`. If `c` does not throw any exceptions, the original value of `c2` is automatically restored on return from `c`. If an exception occurs, the execution is transferred to `c'`, but the original value of `c2` is restored in the process, so that `c'` can re-throw the exception by `THROWANY` if it cannot handle it by itself.", @@ -21956,6 +22579,7 @@ }, { "mnemonic": "TRYARGS", + "since_version": 0, "doc": { "category": "exceptions", "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.", @@ -22037,6 +22661,7 @@ }, { "mnemonic": "STDICT", + "since_version": 0, "doc": { "category": "dict_serial", "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.", @@ -22068,6 +22693,7 @@ }, { "mnemonic": "SKIPDICT", + "since_version": 0, "doc": { "category": "dict_serial", "description": "Equivalent to `LDDICT` `NIP`.", @@ -22096,6 +22722,7 @@ }, { "mnemonic": "LDDICTS", + "since_version": 0, "doc": { "category": "dict_serial", "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.", @@ -22125,6 +22752,7 @@ }, { "mnemonic": "PLDDICTS", + "since_version": 0, "doc": { "category": "dict_serial", "description": "Preloads a (_Slice_-represented) dictionary `s'` from _Slice_ `s`.\nApproximately equivalent to `LDDICTS` `DROP`.", @@ -22153,6 +22781,7 @@ }, { "mnemonic": "LDDICT", + "since_version": 0, "doc": { "category": "dict_serial", "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.", @@ -22182,6 +22811,7 @@ }, { "mnemonic": "PLDDICT", + "since_version": 0, "doc": { "category": "dict_serial", "description": "Preloads a dictionary `D` from _Slice_ `s`.\nApproximately equivalent to `LDDICT` `DROP`.", @@ -22210,6 +22840,7 @@ }, { "mnemonic": "LDDICTQ", + "since_version": 0, "doc": { "category": "dict_serial", "description": "A quiet version of `LDDICT`.", @@ -22267,6 +22898,7 @@ }, { "mnemonic": "PLDDICTQ", + "since_version": 0, "doc": { "category": "dict_serial", "description": "A quiet version of `PLDDICT`.", @@ -22314,6 +22946,7 @@ }, { "mnemonic": "DICTGET", + "since_version": 0, "doc": { "category": "dict_get", "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`.", @@ -22359,6 +22992,7 @@ }, { "mnemonic": "DICTGETREF", + "since_version": 0, "doc": { "category": "dict_get", "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)`.", @@ -22404,6 +23038,7 @@ }, { "mnemonic": "DICTIGET", + "since_version": 0, "doc": { "category": "dict_get", "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.", @@ -22449,6 +23084,7 @@ }, { "mnemonic": "DICTIGETREF", + "since_version": 0, "doc": { "category": "dict_get", "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.", @@ -22494,6 +23130,7 @@ }, { "mnemonic": "DICTUGET", + "since_version": 0, "doc": { "category": "dict_get", "description": "Similar to `DICTIGET`, but with _unsigned_ (big-endian) `n`-bit _Integer_ `i` used as a key.", @@ -22539,6 +23176,7 @@ }, { "mnemonic": "DICTUGETREF", + "since_version": 0, "doc": { "category": "dict_get", "description": "Similar to `DICTIGETREF`, but with an unsigned `n`-bit _Integer_ key `i`.", @@ -22584,6 +23222,7 @@ }, { "mnemonic": "DICTSET", + "since_version": 0, "doc": { "category": "dict_set", "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'`.", @@ -22617,6 +23256,7 @@ }, { "mnemonic": "DICTSETREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "Similar to `DICTSET`, but with the value set to a reference to _Cell_ `c`.", @@ -22650,6 +23290,7 @@ }, { "mnemonic": "DICTISET", + "since_version": 0, "doc": { "category": "dict_set", "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.", @@ -22683,6 +23324,7 @@ }, { "mnemonic": "DICTISETREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "Similar to `DICTSETREF`, but with the key a signed `n`-bit integer as in `DICTISET`.", @@ -22716,6 +23358,7 @@ }, { "mnemonic": "DICTUSET", + "since_version": 0, "doc": { "category": "dict_set", "description": "Similar to `DICTISET`, but with `i` an _unsigned_ `n`-bit integer.", @@ -22749,6 +23392,7 @@ }, { "mnemonic": "DICTUSETREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "Similar to `DICTISETREF`, but with `i` unsigned.", @@ -22782,6 +23426,7 @@ }, { "mnemonic": "DICTSETGET", + "since_version": 0, "doc": { "category": "dict_set", "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.", @@ -22838,6 +23483,7 @@ }, { "mnemonic": "DICTSETGETREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "Combines `DICTSETREF` with `DICTGETREF` similarly to `DICTSETGET`.", @@ -22894,6 +23540,7 @@ }, { "mnemonic": "DICTISETGET", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTISETGET`, but with `i` a signed `n`-bit integer.", @@ -22950,6 +23597,7 @@ }, { "mnemonic": "DICTISETGETREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTISETGETREF`, but with `i` a signed `n`-bit integer.", @@ -23006,6 +23654,7 @@ }, { "mnemonic": "DICTUSETGET", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTISETGET`, but with `i` an unsigned `n`-bit integer.", @@ -23062,6 +23711,7 @@ }, { "mnemonic": "DICTUSETGETREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTISETGETREF`, but with `i` an unsigned `n`-bit integer.", @@ -23118,6 +23768,7 @@ }, { "mnemonic": "DICTREPLACE", + "since_version": 0, "doc": { "category": "dict_set", "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`.", @@ -23173,6 +23824,7 @@ }, { "mnemonic": "DICTREPLACEREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "A _Replace_ counterpart of `DICTSETREF`.", @@ -23228,6 +23880,7 @@ }, { "mnemonic": "DICTIREPLACE", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTREPLACE`, but with `i` a signed `n`-bit integer.", @@ -23283,6 +23936,7 @@ }, { "mnemonic": "DICTIREPLACEREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTREPLACEREF`, but with `i` a signed `n`-bit integer.", @@ -23338,6 +23992,7 @@ }, { "mnemonic": "DICTUREPLACE", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTREPLACE`, but with `i` an unsigned `n`-bit integer.", @@ -23393,6 +24048,7 @@ }, { "mnemonic": "DICTUREPLACEREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTREPLACEREF`, but with `i` an unsigned `n`-bit integer.", @@ -23448,6 +24104,7 @@ }, { "mnemonic": "DICTREPLACEGET", + "since_version": 0, "doc": { "category": "dict_set", "description": "A _Replace_ counterpart of `DICTSETGET`: on success, also returns the old value associated with the key in question.", @@ -23508,6 +24165,7 @@ }, { "mnemonic": "DICTREPLACEGETREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "A _Replace_ counterpart of `DICTSETGETREF`.", @@ -23568,6 +24226,7 @@ }, { "mnemonic": "DICTIREPLACEGET", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTREPLACEGET`, but with `i` a signed `n`-bit integer.", @@ -23628,6 +24287,7 @@ }, { "mnemonic": "DICTIREPLACEGETREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTREPLACEGETREF`, but with `i` a signed `n`-bit integer.", @@ -23688,6 +24348,7 @@ }, { "mnemonic": "DICTUREPLACEGET", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTREPLACEGET`, but with `i` an unsigned `n`-bit integer.", @@ -23748,6 +24409,7 @@ }, { "mnemonic": "DICTUREPLACEGETREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTREPLACEGETREF`, but with `i` an unsigned `n`-bit integer.", @@ -23808,6 +24470,7 @@ }, { "mnemonic": "DICTADD", + "since_version": 0, "doc": { "category": "dict_set", "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`.", @@ -23859,6 +24522,7 @@ }, { "mnemonic": "DICTADDREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "An _Add_ counterpart of `DICTSETREF`.", @@ -23910,6 +24574,7 @@ }, { "mnemonic": "DICTIADD", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTADD`, but with `i` a signed `n`-bit integer.", @@ -23961,6 +24626,7 @@ }, { "mnemonic": "DICTIADDREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTADDREF`, but with `i` a signed `n`-bit integer.", @@ -24012,6 +24678,7 @@ }, { "mnemonic": "DICTUADD", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTADD`, but with `i` an unsigned `n`-bit integer.", @@ -24063,6 +24730,7 @@ }, { "mnemonic": "DICTUADDREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTADDREF`, but with `i` an unsigned `n`-bit integer.", @@ -24114,6 +24782,7 @@ }, { "mnemonic": "DICTADDGET", + "since_version": 0, "doc": { "category": "dict_set", "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.", @@ -24166,6 +24835,7 @@ }, { "mnemonic": "DICTADDGETREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "An _Add_ counterpart of `DICTSETGETREF`.", @@ -24218,6 +24888,7 @@ }, { "mnemonic": "DICTIADDGET", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTADDGET`, but with `i` a signed `n`-bit integer.", @@ -24270,6 +24941,7 @@ }, { "mnemonic": "DICTIADDGETREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTADDGETREF`, but with `i` a signed `n`-bit integer.", @@ -24322,6 +24994,7 @@ }, { "mnemonic": "DICTUADDGET", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTADDGET`, but with `i` an unsigned `n`-bit integer.", @@ -24374,6 +25047,7 @@ }, { "mnemonic": "DICTUADDGETREF", + "since_version": 0, "doc": { "category": "dict_set", "description": "`DICTADDGETREF`, but with `i` an unsigned `n`-bit integer.", @@ -24426,6 +25100,7 @@ }, { "mnemonic": "DICTSETB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -24459,6 +25134,7 @@ }, { "mnemonic": "DICTISETB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -24492,6 +25168,7 @@ }, { "mnemonic": "DICTUSETB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -24525,6 +25202,7 @@ }, { "mnemonic": "DICTSETGETB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -24581,6 +25259,7 @@ }, { "mnemonic": "DICTISETGETB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -24637,6 +25316,7 @@ }, { "mnemonic": "DICTUSETGETB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -24693,6 +25373,7 @@ }, { "mnemonic": "DICTREPLACEB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -24744,6 +25425,7 @@ }, { "mnemonic": "DICTIREPLACEB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -24795,6 +25477,7 @@ }, { "mnemonic": "DICTUREPLACEB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -24846,6 +25529,7 @@ }, { "mnemonic": "DICTREPLACEGETB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -24902,6 +25586,7 @@ }, { "mnemonic": "DICTIREPLACEGETB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -24958,6 +25643,7 @@ }, { "mnemonic": "DICTUREPLACEGETB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -25014,6 +25700,7 @@ }, { "mnemonic": "DICTADDB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -25065,6 +25752,7 @@ }, { "mnemonic": "DICTIADDB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -25116,6 +25804,7 @@ }, { "mnemonic": "DICTUADDB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -25167,6 +25856,7 @@ }, { "mnemonic": "DICTADDGETB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -25219,6 +25909,7 @@ }, { "mnemonic": "DICTIADDGETB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -25271,6 +25962,7 @@ }, { "mnemonic": "DICTUADDGETB", + "since_version": 0, "doc": { "category": "dict_set_builder", "description": "", @@ -25323,6 +26015,7 @@ }, { "mnemonic": "DICTDEL", + "since_version": 0, "doc": { "category": "dict_delete", "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`.", @@ -25381,6 +26074,7 @@ }, { "mnemonic": "DICTIDEL", + "since_version": 0, "doc": { "category": "dict_delete", "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'').", @@ -25439,6 +26133,7 @@ }, { "mnemonic": "DICTUDEL", + "since_version": 0, "doc": { "category": "dict_delete", "description": "Similar to `DICTIDEL`, but with `i` an unsigned `n`-bit integer.", @@ -25497,6 +26192,7 @@ }, { "mnemonic": "DICTDELGET", + "since_version": 0, "doc": { "category": "dict_delete", "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`.", @@ -25556,6 +26252,7 @@ }, { "mnemonic": "DICTDELGETREF", + "since_version": 0, "doc": { "category": "dict_delete", "description": "Similar to `DICTDELGET`, but with `LDREF` `ENDS` applied to `x` on success, so that the value returned `c` is a _Cell_.", @@ -25615,6 +26312,7 @@ }, { "mnemonic": "DICTIDELGET", + "since_version": 0, "doc": { "category": "dict_delete", "description": "`DICTDELGET`, but with `i` a signed `n`-bit integer.", @@ -25674,6 +26372,7 @@ }, { "mnemonic": "DICTIDELGETREF", + "since_version": 0, "doc": { "category": "dict_delete", "description": "`DICTDELGETREF`, but with `i` a signed `n`-bit integer.", @@ -25733,6 +26432,7 @@ }, { "mnemonic": "DICTUDELGET", + "since_version": 0, "doc": { "category": "dict_delete", "description": "`DICTDELGET`, but with `i` an unsigned `n`-bit integer.", @@ -25792,6 +26492,7 @@ }, { "mnemonic": "DICTUDELGETREF", + "since_version": 0, "doc": { "category": "dict_delete", "description": "`DICTDELGETREF`, but with `i` an unsigned `n`-bit integer.", @@ -25851,6 +26552,7 @@ }, { "mnemonic": "DICTGETOPTREF", + "since_version": 0, "doc": { "category": "dict_mayberef", "description": "A variant of `DICTGETREF` that returns _Null_ instead of the value `c^?` if the key `k` is absent from dictionary `D`.", @@ -25883,6 +26585,7 @@ }, { "mnemonic": "DICTIGETOPTREF", + "since_version": 0, "doc": { "category": "dict_mayberef", "description": "`DICTGETOPTREF`, but with `i` a signed `n`-bit integer. If the key `i` is out of range, also returns _Null_.", @@ -25915,6 +26618,7 @@ }, { "mnemonic": "DICTUGETOPTREF", + "since_version": 0, "doc": { "category": "dict_mayberef", "description": "`DICTGETOPTREF`, but with `i` an unsigned `n`-bit integer. If the key `i` is out of range, also returns _Null_.", @@ -25947,6 +26651,7 @@ }, { "mnemonic": "DICTSETGETOPTREF", + "since_version": 0, "doc": { "category": "dict_mayberef", "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).", @@ -25985,6 +26690,7 @@ }, { "mnemonic": "DICTISETGETOPTREF", + "since_version": 0, "doc": { "category": "dict_mayberef", "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.", @@ -26023,6 +26729,7 @@ }, { "mnemonic": "DICTUSETGETOPTREF", + "since_version": 0, "doc": { "category": "dict_mayberef", "description": "Similar to primitive `DICTSETGETOPTREF`, but using unsigned `n`-bit _Integer_ `i` as a key.", @@ -26061,6 +26768,7 @@ }, { "mnemonic": "PFXDICTSET", + "since_version": 0, "doc": { "category": "dict_prefix", "description": "", @@ -26120,6 +26828,7 @@ }, { "mnemonic": "PFXDICTREPLACE", + "since_version": 0, "doc": { "category": "dict_prefix", "description": "", @@ -26179,6 +26888,7 @@ }, { "mnemonic": "PFXDICTADD", + "since_version": 0, "doc": { "category": "dict_prefix", "description": "", @@ -26238,6 +26948,7 @@ }, { "mnemonic": "PFXDICTDEL", + "since_version": 0, "doc": { "category": "dict_prefix", "description": "", @@ -26296,6 +27007,7 @@ }, { "mnemonic": "DICTGETNEXT", + "since_version": 0, "doc": { "category": "dict_next", "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_).", @@ -26346,6 +27058,7 @@ }, { "mnemonic": "DICTGETNEXTEQ", + "since_version": 0, "doc": { "category": "dict_next", "description": "Similar to `DICTGETNEXT`, but computes the minimal key `k'` that is lexicographically greater than or equal to `k`.", @@ -26396,6 +27109,7 @@ }, { "mnemonic": "DICTGETPREV", + "since_version": 0, "doc": { "category": "dict_next", "description": "Similar to `DICTGETNEXT`, but computes the maximal key `k'` lexicographically smaller than `k`.", @@ -26446,6 +27160,7 @@ }, { "mnemonic": "DICTGETPREVEQ", + "since_version": 0, "doc": { "category": "dict_next", "description": "Similar to `DICTGETPREV`, but computes the maximal key `k'` lexicographically smaller than or equal to `k`.", @@ -26496,6 +27211,7 @@ }, { "mnemonic": "DICTIGETNEXT", + "since_version": 0, "doc": { "category": "dict_next", "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).", @@ -26550,6 +27266,7 @@ }, { "mnemonic": "DICTIGETNEXTEQ", + "since_version": 0, "doc": { "category": "dict_next", "description": "Similar to `DICTGETNEXTEQ`, but interprets keys as signed `n`-bit integers.", @@ -26604,6 +27321,7 @@ }, { "mnemonic": "DICTIGETPREV", + "since_version": 0, "doc": { "category": "dict_next", "description": "Similar to `DICTGETPREV`, but interprets keys as signed `n`-bit integers.", @@ -26658,6 +27376,7 @@ }, { "mnemonic": "DICTIGETPREVEQ", + "since_version": 0, "doc": { "category": "dict_next", "description": "Similar to `DICTGETPREVEQ`, but interprets keys as signed `n`-bit integers.", @@ -26712,6 +27431,7 @@ }, { "mnemonic": "DICTUGETNEXT", + "since_version": 0, "doc": { "category": "dict_next", "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).", @@ -26766,6 +27486,7 @@ }, { "mnemonic": "DICTUGETNEXTEQ", + "since_version": 0, "doc": { "category": "dict_next", "description": "Similar to `DICTGETNEXTEQ`, but interprets keys as unsigned `n`-bit integers.", @@ -26820,6 +27541,7 @@ }, { "mnemonic": "DICTUGETPREV", + "since_version": 0, "doc": { "category": "dict_next", "description": "Similar to `DICTGETPREV`, but interprets keys as unsigned `n`-bit integers.", @@ -26874,6 +27596,7 @@ }, { "mnemonic": "DICTUGETPREVEQ", + "since_version": 0, "doc": { "category": "dict_next", "description": "Similar to `DICTGETPREVEQ`, but interprets keys a unsigned `n`-bit integers.", @@ -26928,6 +27651,7 @@ }, { "mnemonic": "DICTMIN", + "since_version": 0, "doc": { "category": "dict_min", "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`.", @@ -26973,6 +27697,7 @@ }, { "mnemonic": "DICTMINREF", + "since_version": 0, "doc": { "category": "dict_min", "description": "Similar to `DICTMIN`, but returns the only reference in the value as a _Cell_ `c`.", @@ -27018,6 +27743,7 @@ }, { "mnemonic": "DICTIMIN", + "since_version": 0, "doc": { "category": "dict_min", "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`.", @@ -27067,6 +27793,7 @@ }, { "mnemonic": "DICTIMINREF", + "since_version": 0, "doc": { "category": "dict_min", "description": "Similar to `DICTIMIN`, but returns the only reference in the value.", @@ -27116,6 +27843,7 @@ }, { "mnemonic": "DICTUMIN", + "since_version": 0, "doc": { "category": "dict_min", "description": "Similar to `DICTMIN`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", @@ -27165,6 +27893,7 @@ }, { "mnemonic": "DICTUMINREF", + "since_version": 0, "doc": { "category": "dict_min", "description": "Similar to `DICTUMIN`, but returns the only reference in the value.", @@ -27214,6 +27943,7 @@ }, { "mnemonic": "DICTMAX", + "since_version": 0, "doc": { "category": "dict_min", "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`.", @@ -27259,6 +27989,7 @@ }, { "mnemonic": "DICTMAXREF", + "since_version": 0, "doc": { "category": "dict_min", "description": "Similar to `DICTMAX`, but returns the only reference in the value.", @@ -27304,6 +28035,7 @@ }, { "mnemonic": "DICTIMAX", + "since_version": 0, "doc": { "category": "dict_min", "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`.", @@ -27353,6 +28085,7 @@ }, { "mnemonic": "DICTIMAXREF", + "since_version": 0, "doc": { "category": "dict_min", "description": "Similar to `DICTIMAX`, but returns the only reference in the value.", @@ -27402,6 +28135,7 @@ }, { "mnemonic": "DICTUMAX", + "since_version": 0, "doc": { "category": "dict_min", "description": "Similar to `DICTMAX`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", @@ -27451,6 +28185,7 @@ }, { "mnemonic": "DICTUMAXREF", + "since_version": 0, "doc": { "category": "dict_min", "description": "Similar to `DICTUMAX`, but returns the only reference in the value.", @@ -27500,6 +28235,7 @@ }, { "mnemonic": "DICTREMMIN", + "since_version": 0, "doc": { "category": "dict_min", "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'`.", @@ -27559,6 +28295,7 @@ }, { "mnemonic": "DICTREMMINREF", + "since_version": 0, "doc": { "category": "dict_min", "description": "Similar to `DICTREMMIN`, but returns the only reference in the value as a _Cell_ `c`.", @@ -27618,6 +28355,7 @@ }, { "mnemonic": "DICTIREMMIN", + "since_version": 0, "doc": { "category": "dict_min", "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`.", @@ -27681,6 +28419,7 @@ }, { "mnemonic": "DICTIREMMINREF", + "since_version": 0, "doc": { "category": "dict_min", "description": "Similar to `DICTIREMMIN`, but returns the only reference in the value.", @@ -27744,6 +28483,7 @@ }, { "mnemonic": "DICTUREMMIN", + "since_version": 0, "doc": { "category": "dict_min", "description": "Similar to `DICTREMMIN`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", @@ -27807,6 +28547,7 @@ }, { "mnemonic": "DICTUREMMINREF", + "since_version": 0, "doc": { "category": "dict_min", "description": "Similar to `DICTUREMMIN`, but returns the only reference in the value.", @@ -27870,6 +28611,7 @@ }, { "mnemonic": "DICTREMMAX", + "since_version": 0, "doc": { "category": "dict_min", "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'`.", @@ -27929,6 +28671,7 @@ }, { "mnemonic": "DICTREMMAXREF", + "since_version": 0, "doc": { "category": "dict_min", "description": "Similar to `DICTREMMAX`, but returns the only reference in the value as a _Cell_ `c`.", @@ -27988,6 +28731,7 @@ }, { "mnemonic": "DICTIREMMAX", + "since_version": 0, "doc": { "category": "dict_min", "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`.", @@ -28051,6 +28795,7 @@ }, { "mnemonic": "DICTIREMMAXREF", + "since_version": 0, "doc": { "category": "dict_min", "description": "Similar to `DICTIREMMAX`, but returns the only reference in the value.", @@ -28114,6 +28859,7 @@ }, { "mnemonic": "DICTUREMMAX", + "since_version": 0, "doc": { "category": "dict_min", "description": "Similar to `DICTREMMAX`, but returns the key as an unsigned `n`-bit _Integer_ `i`.", @@ -28177,6 +28923,7 @@ }, { "mnemonic": "DICTUREMMAXREF", + "since_version": 0, "doc": { "category": "dict_min", "description": "Similar to `DICTUREMMAX`, but returns the only reference in the value.", @@ -28240,6 +28987,7 @@ }, { "mnemonic": "DICTIGETJMP", + "since_version": 0, "doc": { "category": "dict_special", "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.", @@ -28271,6 +29019,7 @@ }, { "mnemonic": "DICTUGETJMP", + "since_version": 0, "doc": { "category": "dict_special", "description": "Similar to `DICTIGETJMP`, but performs `DICTUGET` instead of `DICTIGET`.", @@ -28302,6 +29051,7 @@ }, { "mnemonic": "DICTIGETEXEC", + "since_version": 0, "doc": { "category": "dict_special", "description": "Similar to `DICTIGETJMP`, but with `EXECUTE` instead of `JMPX`.", @@ -28344,6 +29094,7 @@ }, { "mnemonic": "DICTUGETEXEC", + "since_version": 0, "doc": { "category": "dict_special", "description": "Similar to `DICTUGETJMP`, but with `EXECUTE` instead of `JMPX`.", @@ -28386,6 +29137,7 @@ }, { "mnemonic": "DICTPUSHCONST", + "since_version": 0, "doc": { "category": "dict_special", "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.", @@ -28426,6 +29178,7 @@ }, { "mnemonic": "PFXDICTGETQ", + "since_version": 0, "doc": { "category": "dict_special", "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.", @@ -28482,6 +29235,7 @@ }, { "mnemonic": "PFXDICTGET", + "since_version": 0, "doc": { "category": "dict_special", "description": "Similar to `PFXDICTGET`, but throws a cell deserialization failure exception on failure.", @@ -28516,6 +29270,7 @@ }, { "mnemonic": "PFXDICTGETJMP", + "since_version": 0, "doc": { "category": "dict_special", "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.", @@ -28541,6 +29296,7 @@ }, { "mnemonic": "PFXDICTGETEXEC", + "since_version": 0, "doc": { "category": "dict_special", "description": "Similar to `PFXDICTGETJMP`, but `EXEC`utes the continuation found instead of jumping to it. On failure, throws a cell deserialization exception.", @@ -28588,6 +29344,7 @@ }, { "mnemonic": "PFXDICTCONSTGETJMP", + "since_version": 0, "doc": { "category": "dict_special", "description": "Combines `[n] DICTPUSHCONST` for `0 <= n <= 1023` with `PFXDICTGETJMP`.", @@ -28626,6 +29383,7 @@ }, { "mnemonic": "DICTIGETJMPZ", + "since_version": 0, "doc": { "category": "dict_special", "description": "A variant of `DICTIGETJMP` that returns index `i` on failure.", @@ -28651,6 +29409,7 @@ }, { "mnemonic": "DICTUGETJMPZ", + "since_version": 0, "doc": { "category": "dict_special", "description": "A variant of `DICTUGETJMP` that returns index `i` on failure.", @@ -28676,6 +29435,7 @@ }, { "mnemonic": "DICTIGETEXECZ", + "since_version": 0, "doc": { "category": "dict_special", "description": "A variant of `DICTIGETEXEC` that returns index `i` on failure.", @@ -28712,6 +29472,7 @@ }, { "mnemonic": "DICTUGETEXECZ", + "since_version": 0, "doc": { "category": "dict_special", "description": "A variant of `DICTUGETEXEC` that returns index `i` on failure.", @@ -28748,6 +29509,7 @@ }, { "mnemonic": "SUBDICTGET", + "since_version": 0, "doc": { "category": "dict_sub", "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'`.", @@ -28781,6 +29543,7 @@ }, { "mnemonic": "SUBDICTIGET", + "since_version": 0, "doc": { "category": "dict_sub", "description": "Variant of `SUBDICTGET` with the prefix represented by a signed big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 257`.", @@ -28814,6 +29577,7 @@ }, { "mnemonic": "SUBDICTUGET", + "since_version": 0, "doc": { "category": "dict_sub", "description": "Variant of `SUBDICTGET` with the prefix represented by an unsigned big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 256`.", @@ -28847,6 +29611,7 @@ }, { "mnemonic": "SUBDICTRPGET", + "since_version": 0, "doc": { "category": "dict_sub", "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)`.", @@ -28880,6 +29645,7 @@ }, { "mnemonic": "SUBDICTIRPGET", + "since_version": 0, "doc": { "category": "dict_sub", "description": "Variant of `SUBDICTRPGET` with the prefix represented by a signed big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 257`.", @@ -28913,6 +29679,7 @@ }, { "mnemonic": "SUBDICTURPGET", + "since_version": 0, "doc": { "category": "dict_sub", "description": "Variant of `SUBDICTRPGET` with the prefix represented by an unsigned big-endian `l`-bit _Integer_ `x`, where necessarily `l <= 256`.", @@ -28946,6 +29713,7 @@ }, { "mnemonic": "ACCEPT", + "since_version": 0, "doc": { "category": "app_gas", "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.", @@ -28968,6 +29736,7 @@ }, { "mnemonic": "SETGASLIMIT", + "since_version": 0, "doc": { "category": "app_gas", "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`.", @@ -28994,6 +29763,7 @@ }, { "mnemonic": "GASCONSUMED", + "since_version": 4, "doc": { "category": "app_gas", "description": "Returns gas consumed by VM so far (including this instruction).", @@ -29020,6 +29790,7 @@ }, { "mnemonic": "COMMIT", + "since_version": 0, "doc": { "category": "app_gas", "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.", @@ -29042,6 +29813,7 @@ }, { "mnemonic": "RANDU256", + "since_version": 0, "doc": { "category": "app_rnd", "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`.", @@ -29068,6 +29840,7 @@ }, { "mnemonic": "RAND", + "since_version": 0, "doc": { "category": "app_rnd", "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`.", @@ -29098,6 +29871,7 @@ }, { "mnemonic": "SETRAND", + "since_version": 0, "doc": { "category": "app_rnd", "description": "Sets the random seed to unsigned 256-bit _Integer_ `x`.", @@ -29124,6 +29898,7 @@ }, { "mnemonic": "ADDRAND", + "since_version": 0, "doc": { "category": "app_rnd", "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`.", @@ -29150,6 +29925,7 @@ }, { "mnemonic": "GETPARAM", + "since_version": 0, "doc": { "category": "app_config", "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.", @@ -29184,6 +29960,7 @@ }, { "mnemonic": "CONFIGDICT", + "since_version": 0, "doc": { "category": "app_config", "description": "Returns the global configuration dictionary along with its key length (32).\nEquivalent to `CONFIGROOT` `32 PUSHINT`.", @@ -29211,6 +29988,7 @@ }, { "mnemonic": "CONFIGPARAM", + "since_version": 0, "doc": { "category": "app_config", "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`.", @@ -29254,6 +30032,7 @@ }, { "mnemonic": "CONFIGOPTPARAM", + "since_version": 0, "doc": { "category": "app_config", "description": "Returns the value of the global configuration parameter with integer index `i` as a _Maybe Cell_ `c^?`.\nEquivalent to `CONFIGDICT` `DICTIGETOPTREF`.", @@ -29284,6 +30063,7 @@ }, { "mnemonic": "PREVMCBLOCKS", + "since_version": 4, "doc": { "category": "app_config", "description": "Retrives `last_mc_blocks` part of PrevBlocksInfo from c7 (parameter 13).", @@ -29308,6 +30088,7 @@ }, { "mnemonic": "PREVKEYBLOCK", + "since_version": 4, "doc": { "category": "app_config", "description": "Retrives `prev_key_block` part of PrevBlocksInfo from c7 (parameter 13).", @@ -29332,6 +30113,7 @@ }, { "mnemonic": "GLOBALID", + "since_version": 4, "doc": { "category": "app_config", "description": "Retrieves `global_id` from 19 network config.", @@ -29358,6 +30140,7 @@ }, { "mnemonic": "GETGLOBVAR", + "since_version": 0, "doc": { "category": "app_global", "description": "Returns the `k`-th global variable for `0 <= k < 255`.\nEquivalent to `c7 PUSHCTR` `SWAP` `INDEXVARQ`.", @@ -29384,6 +30167,7 @@ }, { "mnemonic": "GETGLOB", + "since_version": 0, "doc": { "category": "app_global", "description": "Returns the `k`-th global variable for `1 <= k <= 31`.\nEquivalent to `c7 PUSHCTR` `[k] INDEXQ`.", @@ -29415,6 +30199,7 @@ }, { "mnemonic": "SETGLOBVAR", + "since_version": 0, "doc": { "category": "app_global", "description": "Assigns `x` to the `k`-th global variable for `0 <= k < 255`.\nEquivalent to `c7 PUSHCTR` `ROTREV` `SETINDEXVARQ` `c7 POPCTR`.", @@ -29442,6 +30227,7 @@ }, { "mnemonic": "SETGLOB", + "since_version": 0, "doc": { "category": "app_global", "description": "Assigns `x` to the `k`-th global variable for `1 <= k <= 31`.\nEquivalent to `c7 PUSHCTR` `SWAP` `k SETINDEXQ` `c7 POPCTR`.", @@ -29473,6 +30259,7 @@ }, { "mnemonic": "HASHCU", + "since_version": 0, "doc": { "category": "app_crypto", "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.", @@ -29501,6 +30288,7 @@ }, { "mnemonic": "HASHSU", + "since_version": 0, "doc": { "category": "app_crypto", "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`.", @@ -29529,6 +30317,7 @@ }, { "mnemonic": "SHA256U", + "since_version": 0, "doc": { "category": "app_crypto", "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`.", @@ -29557,6 +30346,7 @@ }, { "mnemonic": "HASHEXT_SHA256", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", @@ -29599,6 +30389,7 @@ }, { "mnemonic": "HASHEXT_SHA512", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", @@ -29642,6 +30433,7 @@ }, { "mnemonic": "HASHEXT_BLAKE2B", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", @@ -29685,6 +30477,7 @@ }, { "mnemonic": "HASHEXT_KECCAK256", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", @@ -29727,6 +30520,7 @@ }, { "mnemonic": "HASHEXT_KECCAK512", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", @@ -29770,6 +30564,7 @@ }, { "mnemonic": "HASHEXTR_SHA256", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", @@ -29812,6 +30607,7 @@ }, { "mnemonic": "HASHEXTR_SHA512", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", @@ -29855,6 +30651,7 @@ }, { "mnemonic": "HASHEXTR_BLAKE2B", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", @@ -29898,6 +30695,7 @@ }, { "mnemonic": "HASHEXTR_KECCAK256", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", @@ -29940,6 +30738,7 @@ }, { "mnemonic": "HASHEXTR_KECCAK512", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates and returns hash of the concatenation of slices (or builders) `s_1...s_n`.", @@ -29983,6 +30782,7 @@ }, { "mnemonic": "HASHEXTA_SHA256", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", @@ -30026,6 +30826,7 @@ }, { "mnemonic": "HASHEXTA_SHA512", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", @@ -30069,6 +30870,7 @@ }, { "mnemonic": "HASHEXTA_BLAKE2B", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", @@ -30112,6 +30914,7 @@ }, { "mnemonic": "HASHEXTA_KECCAK256", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", @@ -30155,6 +30958,7 @@ }, { "mnemonic": "HASHEXTA_KECCAK512", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", @@ -30198,6 +31002,7 @@ }, { "mnemonic": "HASHEXTAR_SHA256", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", @@ -30241,6 +31046,7 @@ }, { "mnemonic": "HASHEXTAR_SHA512", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", @@ -30284,6 +31090,7 @@ }, { "mnemonic": "HASHEXTAR_BLAKE2B", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", @@ -30327,6 +31134,7 @@ }, { "mnemonic": "HASHEXTAR_KECCAK256", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", @@ -30370,6 +31178,7 @@ }, { "mnemonic": "HASHEXTAR_KECCAK512", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Calculates hash of the concatenation of slices (or builders) `s_1...s_n`. Appends the resulting hash to a builder `b`.", @@ -30413,6 +31222,7 @@ }, { "mnemonic": "CHKSIGNU", + "since_version": 0, "doc": { "category": "app_crypto", "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`.", @@ -30445,6 +31255,7 @@ }, { "mnemonic": "CHKSIGNS", + "since_version": 0, "doc": { "category": "app_crypto", "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.", @@ -30477,6 +31288,7 @@ }, { "mnemonic": "ECRECOVER", + "since_version": 4, "doc": { "category": "app_crypto", "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`.", @@ -30537,6 +31349,7 @@ }, { "mnemonic": "P256_CHKSIGNU", + "since_version": 4, "doc": { "category": "app_crypto", "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`).", @@ -30569,6 +31382,7 @@ }, { "mnemonic": "P256_CHKSIGNS", + "since_version": 4, "doc": { "category": "app_crypto", "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`).", @@ -30601,6 +31415,7 @@ }, { "mnemonic": "RIST255_FROMHASH", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Deterministically generates a valid point `x` from a 512-bit hash (given as two 256-bit integers).", @@ -30632,6 +31447,7 @@ }, { "mnemonic": "RIST255_VALIDATE", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Checks that integer `x` is a valid representation of some curve point. Throws range_chk on error.", @@ -30658,6 +31474,7 @@ }, { "mnemonic": "RIST255_ADD", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Addition of two points on a curve.", @@ -30689,6 +31506,7 @@ }, { "mnemonic": "RIST255_SUB", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Subtraction of two points on curve.", @@ -30720,6 +31538,7 @@ }, { "mnemonic": "RIST255_MUL", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Multiplies point `x` by a scalar `n`. Any `n` is valid, including negative.", @@ -30751,6 +31570,7 @@ }, { "mnemonic": "RIST255_MULBASE", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Multiplies the generator point `g` by a scalar `n`. Any `n` is valid, including negative.", @@ -30781,6 +31601,7 @@ }, { "mnemonic": "RIST255_PUSHL", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Pushes integer l=2^252+27742317777372353535851937790883648493, which is the order of the group.", @@ -30807,6 +31628,7 @@ }, { "mnemonic": "RIST255_QVALIDATE", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Checks that integer `x` is a valid representation of some curve point. Returns -1 on success and 0 on failure.", @@ -30837,6 +31659,7 @@ }, { "mnemonic": "RIST255_QADD", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Addition of two points on a curve. Returns -1 on success and 0 on failure.", @@ -30885,6 +31708,7 @@ }, { "mnemonic": "RIST255_QSUB", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Subtraction of two points on curve. Returns -1 on success and 0 on failure.", @@ -30933,6 +31757,7 @@ }, { "mnemonic": "RIST255_QMUL", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Multiplies point `x` by a scalar `n`. Any `n` is valid, including negative. Returns -1 on success and 0 on failure.", @@ -30981,6 +31806,7 @@ }, { "mnemonic": "RIST255_QMULBASE", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Multiplies the generator point `g` by a scalar `n`. Any `n` is valid, including negative.", @@ -31028,6 +31854,7 @@ }, { "mnemonic": "BLS_VERIFY", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Checks BLS signature, return true on success, false otherwise.", @@ -31060,6 +31887,7 @@ }, { "mnemonic": "BLS_AGGREGATE", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Aggregates signatures. `n>0`. Throw exception if `n=0` or if some `sig_i` is not a valid signature.", @@ -31098,6 +31926,7 @@ }, { "mnemonic": "BLS_FASTAGGREGATEVERIFY", + "since_version": 4, "doc": { "category": "app_crypto", "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`.", @@ -31138,6 +31967,7 @@ }, { "mnemonic": "BLS_AGGREGATEVERIFY", + "since_version": 4, "doc": { "category": "app_crypto", "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`.", @@ -31178,6 +32008,7 @@ }, { "mnemonic": "BLS_G1_ADD", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Addition on G1.", @@ -31209,6 +32040,7 @@ }, { "mnemonic": "BLS_G1_SUB", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Subtraction on G1.", @@ -31240,6 +32072,7 @@ }, { "mnemonic": "BLS_G1_NEG", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Negation on G1.", @@ -31268,6 +32101,7 @@ }, { "mnemonic": "BLS_G1_MUL", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Multiplies G1 point `x` by scalar `s`. Any `s` is valid, including negative.", @@ -31299,6 +32133,7 @@ }, { "mnemonic": "BLS_G1_MULTIEXP", + "since_version": 4, "doc": { "category": "app_crypto", "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.", @@ -31338,6 +32173,7 @@ }, { "mnemonic": "BLS_G1_ZERO", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Pushes zero point in G1.", @@ -31364,6 +32200,7 @@ }, { "mnemonic": "BLS_MAP_TO_G1", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Converts FP element `f` to a G1 point.", @@ -31390,6 +32227,7 @@ }, { "mnemonic": "BLS_G1_INGROUP", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Checks that slice `x` represents a valid element of G1.", @@ -31418,6 +32256,7 @@ }, { "mnemonic": "BLS_G1_ISZERO", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Checks that G1 point `x` is equal to zero.", @@ -31446,6 +32285,7 @@ }, { "mnemonic": "BLS_G2_ADD", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Addition on G2.", @@ -31477,6 +32317,7 @@ }, { "mnemonic": "BLS_G2_SUB", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Subtraction on G2.", @@ -31508,6 +32349,7 @@ }, { "mnemonic": "BLS_G2_NEG", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Negation on G2.", @@ -31536,6 +32378,7 @@ }, { "mnemonic": "BLS_G2_MUL", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Multiplies G2 point `x` by scalar `s`. Any `s` is valid, including negative.", @@ -31567,6 +32410,7 @@ }, { "mnemonic": "BLS_G2_MULTIEXP", + "since_version": 4, "doc": { "category": "app_crypto", "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.", @@ -31606,6 +32450,7 @@ }, { "mnemonic": "BLS_G2_ZERO", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Pushes zero point in G2.", @@ -31632,6 +32477,7 @@ }, { "mnemonic": "BLS_MAP_TO_G2", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Converts FP2 element `f` to a G2 point.", @@ -31658,6 +32504,7 @@ }, { "mnemonic": "BLS_G2_INGROUP", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Checks that slice `x` represents a valid element of G2.", @@ -31686,6 +32533,7 @@ }, { "mnemonic": "BLS_G2_ISZERO", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Checks that G2 point `x` is equal to zero.", @@ -31714,6 +32562,7 @@ }, { "mnemonic": "BLS_PAIRING", + "since_version": 4, "doc": { "category": "app_crypto", "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`.", @@ -31753,6 +32602,7 @@ }, { "mnemonic": "BLS_PUSHR", + "since_version": 4, "doc": { "category": "app_crypto", "description": "Pushes the order of G1 and G2 (approx. `2^255`).", @@ -31779,6 +32629,7 @@ }, { "mnemonic": "CDATASIZEQ", + "since_version": 0, "doc": { "category": "app_misc", "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`.", @@ -31837,6 +32688,7 @@ }, { "mnemonic": "CDATASIZE", + "since_version": 0, "doc": { "category": "app_misc", "description": "A non-quiet version of `CDATASIZEQ` that throws a cell overflow exception (8) on failure.", @@ -31870,6 +32722,7 @@ }, { "mnemonic": "SDATASIZEQ", + "since_version": 0, "doc": { "category": "app_misc", "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`.", @@ -31928,6 +32781,7 @@ }, { "mnemonic": "SDATASIZE", + "since_version": 0, "doc": { "category": "app_misc", "description": "A non-quiet version of `SDATASIZEQ` that throws a cell overflow exception (8) on failure.", @@ -31961,6 +32815,7 @@ }, { "mnemonic": "LDGRAMS", + "since_version": 0, "doc": { "category": "app_currency", "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`.", @@ -31990,6 +32845,7 @@ }, { "mnemonic": "LDVARINT16", + "since_version": 0, "doc": { "category": "app_currency", "description": "Similar to `LDVARUINT16`, but loads a _signed_ _Integer_ `x`.\nApproximately equivalent to `4 LDU` `SWAP` `3 LSHIFT#` `LDIX`.", @@ -32019,6 +32875,7 @@ }, { "mnemonic": "STGRAMS", + "since_version": 0, "doc": { "category": "app_currency", "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.", @@ -32050,6 +32907,7 @@ }, { "mnemonic": "STVARINT16", + "since_version": 0, "doc": { "category": "app_currency", "description": "Similar to `STVARUINT16`, but serializes a _signed_ _Integer_ `x` in the range `-2^119...2^119-1`.", @@ -32081,6 +32939,7 @@ }, { "mnemonic": "LDVARUINT32", + "since_version": 0, "doc": { "category": "app_currency", "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`.", @@ -32110,6 +32969,7 @@ }, { "mnemonic": "LDVARINT32", + "since_version": 0, "doc": { "category": "app_currency", "description": "Similar to `LDVARUINT32`, but loads a _signed_ _Integer_ `x`.\nApproximately equivalent to `5 LDU` `SWAP` `3 LSHIFT#` `LDIX`.", @@ -32139,6 +32999,7 @@ }, { "mnemonic": "STVARUINT32", + "since_version": 0, "doc": { "category": "app_currency", "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.", @@ -32170,6 +33031,7 @@ }, { "mnemonic": "STVARINT32", + "since_version": 0, "doc": { "category": "app_currency", "description": "Similar to `STVARUINT32`, but serializes a _signed_ _Integer_ `x` in the range `-2^247...2^247-1`.", @@ -32201,6 +33063,7 @@ }, { "mnemonic": "LDMSGADDR", + "since_version": 0, "doc": { "category": "app_addr", "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.", @@ -32230,6 +33093,7 @@ }, { "mnemonic": "LDMSGADDRQ", + "since_version": 0, "doc": { "category": "app_addr", "description": "A quiet version of `LDMSGADDR`: on success, pushes an extra `-1`; on failure, pushes the original `s` and a zero.", @@ -32281,6 +33145,7 @@ }, { "mnemonic": "PARSEMSGADDR", + "since_version": 0, "doc": { "category": "app_addr", "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.", @@ -32307,6 +33172,7 @@ }, { "mnemonic": "PARSEMSGADDRQ", + "since_version": 0, "doc": { "category": "app_addr", "description": "A quiet version of `PARSEMSGADDR`: returns a zero on error instead of throwing an exception.", @@ -32348,6 +33214,7 @@ }, { "mnemonic": "REWRITESTDADDR", + "since_version": 0, "doc": { "category": "app_addr", "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.", @@ -32377,6 +33244,7 @@ }, { "mnemonic": "REWRITESTDADDRQ", + "since_version": 0, "doc": { "category": "app_addr", "description": "A quiet version of primitive `REWRITESTDADDR`.", @@ -32427,6 +33295,7 @@ }, { "mnemonic": "REWRITEVARADDR", + "since_version": 0, "doc": { "category": "app_addr", "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`).", @@ -32456,6 +33325,7 @@ }, { "mnemonic": "REWRITEVARADDRQ", + "since_version": 0, "doc": { "category": "app_addr", "description": "A quiet version of primitive `REWRITEVARADDR`.", @@ -32502,6 +33372,7 @@ }, { "mnemonic": "SENDRAWMSG", + "since_version": 0, "doc": { "category": "app_actions", "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`.", @@ -32529,6 +33400,7 @@ }, { "mnemonic": "RAWRESERVE", + "since_version": 0, "doc": { "category": "app_actions", "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`.", @@ -32556,6 +33428,7 @@ }, { "mnemonic": "RAWRESERVEX", + "since_version": 0, "doc": { "category": "app_actions", "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.", @@ -32584,6 +33457,7 @@ }, { "mnemonic": "SETCODE", + "since_version": 0, "doc": { "category": "app_actions", "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.", @@ -32608,6 +33482,7 @@ }, { "mnemonic": "SETLIBCODE", + "since_version": 0, "doc": { "category": "app_actions", "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.", @@ -32635,6 +33510,7 @@ }, { "mnemonic": "CHANGELIB", + "since_version": 0, "doc": { "category": "app_actions", "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.", @@ -32662,6 +33538,7 @@ }, { "mnemonic": "SENDMSG", + "since_version": 4, "doc": { "category": "app_actions", "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).", @@ -32693,6 +33570,7 @@ }, { "mnemonic": "DUMPSTK", + "since_version": 0, "doc": { "category": "debug", "description": "Dumps the stack (at most the top 255 values) and shows the total stack depth.", @@ -32715,6 +33593,7 @@ }, { "mnemonic": "DEBUG", + "since_version": 0, "doc": { "category": "debug", "description": "", @@ -32746,6 +33625,7 @@ }, { "mnemonic": "STRDUMP", + "since_version": 0, "doc": { "category": "debug", "description": "", @@ -32768,6 +33648,7 @@ }, { "mnemonic": "DEBUG", + "since_version": 0, "doc": { "category": "debug", "description": "", @@ -32799,6 +33680,7 @@ }, { "mnemonic": "DUMP", + "since_version": 0, "doc": { "category": "debug", "description": "Dumps `s[i]`.", @@ -32829,6 +33711,7 @@ }, { "mnemonic": "DEBUG", + "since_version": 0, "doc": { "category": "debug", "description": "", @@ -32860,6 +33743,7 @@ }, { "mnemonic": "DEBUGSTR", + "since_version": 0, "doc": { "category": "debug", "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.", @@ -32895,6 +33779,7 @@ }, { "mnemonic": "SETCP", + "since_version": 0, "doc": { "category": "codepage", "description": "Selects TVM codepage `0 <= nn < 240`. If the codepage is not supported, throws an invalid opcode exception.", @@ -32926,6 +33811,7 @@ }, { "mnemonic": "SETCP_SPECIAL", + "since_version": 0, "doc": { "category": "codepage", "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.", @@ -32957,6 +33843,7 @@ }, { "mnemonic": "SETCPX", + "since_version": 0, "doc": { "category": "codepage", "description": "Selects codepage `c` with `-2^15 <= c < 2^15` passed in the top of the stack.", diff --git a/schema.json b/schema.json index 3be92ba..7003d79 100644 --- a/schema.json +++ b/schema.json @@ -598,6 +598,11 @@ "PLDULE4" ] }, + "since_version": { + "type": "number", + "title": "Since global version", + "description": "Global version (ConfigParam 8) which enables this instruction. Version 9999 means that instruction has no global version and currently unavailable in mainnet." + }, "doc": { "type": "object", "title": "Documentation", @@ -812,7 +817,8 @@ "doc", "bytecode", "value_flow", - "control_flow" + "control_flow", + "since_version" ] } }, From 9ff8af49ffc766761b1b245887fe724e56f8be58 Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Wed, 28 Feb 2024 16:26:41 +0700 Subject: [PATCH 09/27] Move debug instructions to aliases of DEBUG --- cp0.json | 178 +++++++++++-------------------------------------------- 1 file changed, 34 insertions(+), 144 deletions(-) diff --git a/cp0.json b/cp0.json index 1c82b3c..9a2e4c0 100644 --- a/cp0.json +++ b/cp0.json @@ -33568,29 +33568,6 @@ }, "control_flow": { "branches": [], "nobranch": true } }, - { - "mnemonic": "DUMPSTK", - "since_version": 0, - "doc": { - "category": "debug", - "description": "Dumps the stack (at most the top 255 values) and shows the total stack depth.", - "gas": "26", - "fift": "DUMPSTK", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FE00", - "tlb": "#FE00", - "prefix": "FE00", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [], "nobranch": true } - }, { "mnemonic": "DEBUG", "since_version": 0, @@ -33598,139 +33575,28 @@ "category": "debug", "description": "", "gas": "26", - "fift": "{nn} DEBUG", + "fift": "{i*16+j} DEBUG", "fift_examples": [] }, "bytecode": { - "doc_opcode": "FEnn", - "tlb": "#FE nn:(#<= 239)", + "doc_opcode": "FEij", + "tlb": "#FE i:(#<= 14) j:(## 4)", "prefix": "FE", - "operands_range_check": { "length": 8, "from": 1, "to": 19 }, - "operands": [ - { - "name": "n", - "type": "uint", - "size": 8, - "min_value": 1, - "max_value": 19 - } - ] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [], "nobranch": true } - }, - { - "mnemonic": "STRDUMP", - "since_version": 0, - "doc": { - "category": "debug", - "description": "", - "gas": "26", - "fift": "STRDUMP", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FE14", - "tlb": "#FE14", - "prefix": "FE14", - "operands": [] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [], "nobranch": true } - }, - { - "mnemonic": "DEBUG", - "since_version": 0, - "doc": { - "category": "debug", - "description": "", - "gas": "26", - "fift": "{nn} DEBUG", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FEnn", - "tlb": "#FE nn:(#<= 239)", - "prefix": "FE", - "operands_range_check": { "length": 8, "from": 21, "to": 31 }, - "operands": [ - { - "name": "n", - "type": "uint", - "size": 8, - "min_value": 21, - "max_value": 31 - } - ] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [], "nobranch": true } - }, - { - "mnemonic": "DUMP", - "since_version": 0, - "doc": { - "category": "debug", - "description": "Dumps `s[i]`.", - "gas": "26", - "fift": "s[i] DUMP", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FE2i", - "tlb": "#FE2 i:uint4", - "prefix": "FE2", + "operands_range_check": { "length": 4, "from": 0, "to": 14 }, "operands": [ { "name": "i", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 - } - ] - }, - "value_flow": { - "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } - }, - "control_flow": { "branches": [], "nobranch": true } - }, - { - "mnemonic": "DEBUG", - "since_version": 0, - "doc": { - "category": "debug", - "description": "", - "gas": "26", - "fift": "{nn} DEBUG", - "fift_examples": [] - }, - "bytecode": { - "doc_opcode": "FEnn", - "tlb": "#FE nn:(#<= 239)", - "prefix": "FE", - "operands_range_check": { "length": 8, "from": 48, "to": 239 }, - "operands": [ + "max_value": 14 + }, { - "name": "n", + "name": "j", "type": "uint", - "size": 8, - "min_value": 48, - "max_value": 239 + "size": 4, + "min_value": 0, + "max_value": 15 } ] }, @@ -34398,6 +34264,30 @@ "description": "Retrives PrevBlocksInfo: `[last_mc_blocks, prev_key_block]` from c7. Equivalent to `13 GETPARAM `.", "operands": { "i": 13 } }, + { + "mnemonic": "DUMPSTK", + "alias_of": "DEBUG", + "doc_fift": "DUMPSTK", + "doc_stack": "-", + "description": "Dumps the stack (at most the top 255 values) and shows the total stack depth. Does nothing on production versions of TVM.", + "operands": { "i": 0, "j": 0 } + }, + { + "mnemonic": "STRDUMP", + "alias_of": "DEBUG", + "doc_fift": "STRDUMP", + "doc_stack": "-", + "description": "Dumps slice with length divisible by 8 from top of stack as a string. Does nothing on production versions of TVM.", + "operands": { "i": 0, "j": 0 } + }, + { + "mnemonic": "DUMP", + "alias_of": "DEBUG", + "doc_fift": "s[j] DUMP", + "doc_stack": "-", + "description": "Dumps slice with length divisible by 8 from top of stack as a string. Does nothing on production versions of TVM.", + "operands": { "i": 2 } + }, { "mnemonic": "SETCP0", "alias_of": "SETCP", From 3c1468912c5090901af8436c8ffdbe4a5b81947c Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Thu, 29 Feb 2024 16:53:43 +0700 Subject: [PATCH 10/27] Prototype of registers flow --- cp0.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cp0.json b/cp0.json index 9a2e4c0..5ac81a7 100644 --- a/cp0.json +++ b/cp0.json @@ -21128,7 +21128,7 @@ }, "value_flow": { "doc_stack": "- x", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [{ "type": "variable", "var_name": "i" }] }, "outputs": { "stack": [{ "type": "simple", "name": "x" }] } }, "control_flow": { "branches": [], "nobranch": true } @@ -21160,7 +21160,7 @@ "value_flow": { "doc_stack": "x - ", "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [{ "type": "variable", "var_name": "i" }] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -21230,8 +21230,8 @@ }, "value_flow": { "doc_stack": "x - ", - "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, - "outputs": { "stack": [] } + "inputs": { "stack": [{ "type": "simple", "name": "x" }], "registers": [{ "type": "constant", "index": 0 }] }, + "outputs": { "stack": [], "registers": [{ "type": "constant", "index": 0 }] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -21261,8 +21261,8 @@ }, "value_flow": { "doc_stack": "x - ", - "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, - "outputs": { "stack": [] } + "inputs": { "stack": [{ "type": "simple", "name": "x" }], "registers": [{ "type": "constant", "index": 1 }] }, + "outputs": { "stack": [], "registers": [{ "type": "constant", "index": 1 }] } }, "control_flow": { "branches": [], "nobranch": true } }, From cb38131f1ef3cf9630ebd49cacbd6e19f287ca9e Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Thu, 29 Feb 2024 20:17:30 +0700 Subject: [PATCH 11/27] Fix SETALTCTR documentation --- cp0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cp0.json b/cp0.json index 5ac81a7..e308783 100644 --- a/cp0.json +++ b/cp0.json @@ -21240,7 +21240,7 @@ "since_version": 0, "doc": { "category": "cont_registers", - "description": "Equivalent to `c1 PUSHCTR` `c[i] SETCONTCTR` `c0 POPCTR`.", + "description": "Equivalent to `c1 PUSHCTR` `c[i] SETCONTCTR` `c1 POPCTR`.", "gas": "26", "fift": "c[i] SETALTCTR", "fift_examples": [] From 783cfe9a21f75e3d3d90ec98042dd0c27e3f7eee Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Fri, 1 Mar 2024 10:58:46 +0700 Subject: [PATCH 12/27] work on regs --- cp0.json | 51 ++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 42 insertions(+), 9 deletions(-) diff --git a/cp0.json b/cp0.json index e308783..94c1c62 100644 --- a/cp0.json +++ b/cp0.json @@ -21128,7 +21128,10 @@ }, "value_flow": { "doc_stack": "- x", - "inputs": { "stack": [], "registers": [{ "type": "variable", "var_name": "i" }] }, + "inputs": { + "stack": [], + "registers": [{ "type": "variable", "var_name": "i" }] + }, "outputs": { "stack": [{ "type": "simple", "name": "x" }] } }, "control_flow": { "branches": [], "nobranch": true } @@ -21160,7 +21163,10 @@ "value_flow": { "doc_stack": "x - ", "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, - "outputs": { "stack": [], "registers": [{ "type": "variable", "var_name": "i" }] } + "outputs": { + "stack": [], + "registers": [{ "type": "variable", "var_name": "i" }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -21230,8 +21236,14 @@ }, "value_flow": { "doc_stack": "x - ", - "inputs": { "stack": [{ "type": "simple", "name": "x" }], "registers": [{ "type": "constant", "index": 0 }] }, - "outputs": { "stack": [], "registers": [{ "type": "constant", "index": 0 }] } + "inputs": { + "stack": [{ "type": "simple", "name": "x" }], + "registers": [{ "type": "constant", "index": 0 }] + }, + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 0 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -21261,8 +21273,14 @@ }, "value_flow": { "doc_stack": "x - ", - "inputs": { "stack": [{ "type": "simple", "name": "x" }], "registers": [{ "type": "constant", "index": 1 }] }, - "outputs": { "stack": [], "registers": [{ "type": "constant", "index": 1 }] } + "inputs": { + "stack": [{ "type": "simple", "name": "x" }], + "registers": [{ "type": "constant", "index": 1 }] + }, + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 1 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -21292,8 +21310,17 @@ }, "value_flow": { "doc_stack": "x -", - "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, - "outputs": { "stack": [] } + "inputs": { + "stack": [{ "type": "simple", "name": "x" }], + "registers": [ + { "type": "variable", "var_name": "i" }, + { "type": "constant", "index": 0 } + ] + }, + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 0 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -21323,7 +21350,13 @@ }, "value_flow": { "doc_stack": "", - "inputs": { "stack": [] }, + "inputs": { + "stack": [], + "registers": [ + { "type": "variable", "var_name": "i" }, + { "type": "constant", "index": 0 } + ] + }, "outputs": { "stack": [] } }, "control_flow": { "branches": [], "nobranch": true } From 7c25a8e0685c4ec53b15e08a88b418978a54d906 Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Fri, 1 Mar 2024 11:09:55 +0700 Subject: [PATCH 13/27] Fix SAVEBOTH description --- cp0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cp0.json b/cp0.json index 94c1c62..6ac6346 100644 --- a/cp0.json +++ b/cp0.json @@ -21397,7 +21397,7 @@ "since_version": 0, "doc": { "category": "cont_registers", - "description": "Equivalent to `DUP` `c[i] SAVE` `c[i] SAVEALT`.", + "description": "Equivalent to `c[i] SAVE` `c[i] SAVEALT`.", "gas": "26", "fift": "c[i] SAVEBOTH\nc[i] SAVEBOTHCTR", "fift_examples": [] From 3ad23d8cda50310a713710bb359700ac81e20336 Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Fri, 1 Mar 2024 11:32:24 +0700 Subject: [PATCH 14/27] Fix nobranch for THROW variants (they are always exit points) --- cp0.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cp0.json b/cp0.json index 6ac6346..ed26c5a 100644 --- a/cp0.json +++ b/cp0.json @@ -22099,7 +22099,7 @@ "inputs": { "stack": [] }, "outputs": { "stack": [] } }, - "control_flow": { "branches": [], "nobranch": true } + "control_flow": { "branches": [], "nobranch": false } }, { "mnemonic": "THROWIF_SHORT", @@ -22200,7 +22200,7 @@ "inputs": { "stack": [] }, "outputs": { "stack": [] } }, - "control_flow": { "branches": [], "nobranch": true } + "control_flow": { "branches": [], "nobranch": false } }, { "mnemonic": "THROWARG", @@ -22231,7 +22231,7 @@ "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, "outputs": { "stack": [] } }, - "control_flow": { "branches": [], "nobranch": true } + "control_flow": { "branches": [], "nobranch": false } }, { "mnemonic": "THROWIF", @@ -22400,7 +22400,7 @@ }, "outputs": { "stack": [] } }, - "control_flow": { "branches": [], "nobranch": true } + "control_flow": { "branches": [], "nobranch": false } }, { "mnemonic": "THROWARGANY", @@ -22428,7 +22428,7 @@ }, "outputs": { "stack": [] } }, - "control_flow": { "branches": [], "nobranch": true } + "control_flow": { "branches": [], "nobranch": false } }, { "mnemonic": "THROWANYIF", From 445b9d60db647d8d9343c7b0428d967a47ac582e Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Fri, 1 Mar 2024 13:40:55 +0700 Subject: [PATCH 15/27] Implement registers --- README.md | 38 +++++++ cp0.json | 296 +++++++++++++++++++++++++++++++++++++++++----------- schema.json | 42 ++++++++ 3 files changed, 313 insertions(+), 63 deletions(-) diff --git a/README.md b/README.md index af480d1..d219e66 100644 --- a/README.md +++ b/README.md @@ -157,6 +157,10 @@ However, nothing can stop you from just copying `cp0.json` (and `schema.json` if | value_flow | Information related to usage of stack and registers by instruction. Required. | value_flow.doc_stack | 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). Required. | value_flow.inputs | Incoming values constraints. Required. +| value_flow.inputs.registers | Defines how registers is used by instruction. Instruction must not operate on registers other than defined here. Required. +| value_flow.inputs.registers[i] | Register which is access by instruction. +| value_flow.inputs.registers[i].type | Type of register: "constant", "variable", "special". Required. +| value_flow.inputs.registers[i].* | Properties for registers of each type are described below. | value_flow.inputs.stack | Defines how current stack is used by instruction. Instruction must not operate on stack entries other than defined here. Optional, input stack is unconstrained if absent. | value_flow.inputs.stack[i] | Stack entry or group of stack entries. | value_flow.inputs.stack[i].type | Type of stack entry. Can be one of "simple", "const", "conditional", "array". Required. @@ -350,6 +354,40 @@ Specifies a bunch of stack entries with length from variable `length_var`, usual 1. Each variable name is unique across `operands`, `value_flow`, and `control_flow` sections of each instruction. Assumed that variables are immutable, so if variable `x` is defined both in inputs and outputs, it goes to output without any modification. 2. Value flow describes only `cc` stack usage before the actual jump or call. Subsequent continuations may have a separate stack, so this will be defined in control flow section of this spec. +### Register Specification and Examples +#### constant +```json +{ + "type": "constant", + "index": 0 +} +``` +Represents `c{index}` register. + +#### variable +```json +{ + "type": "variable", + "var_name": "i" +} +``` +Represents `c{{var_name}}` register. Its number is taken from variable `var_name`, defined in stack inputs or operands. + +#### special +```json +{ + "type": "special", + "name": "gas" +} +``` +```json +{ + "type": "special", + "name": "cstate" +} +``` +Represents gas registers (used by app_gas instructions) and cstate (used by COMMIT instruction). + ### Continuations Specification and Examples Each object represents a continuation, which can be constructed in several ways: * from a variable (operand or stack) diff --git a/cp0.json b/cp0.json index ed26c5a..5560742 100644 --- a/cp0.json +++ b/cp0.json @@ -21357,7 +21357,10 @@ { "type": "constant", "index": 0 } ] }, - "outputs": { "stack": [] } + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 0 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -21387,8 +21390,17 @@ }, "value_flow": { "doc_stack": "", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { + "stack": [], + "registers": [ + { "type": "variable", "var_name": "i" }, + { "type": "constant", "index": 1 } + ] + }, + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 1 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -21418,8 +21430,21 @@ }, "value_flow": { "doc_stack": "", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { + "stack": [], + "registers": [ + { "type": "variable", "var_name": "i" }, + { "type": "constant", "index": 0 }, + { "type": "constant", "index": 1 } + ] + }, + "outputs": { + "stack": [], + "registers": [ + { "type": "constant", "index": 0 }, + { "type": "constant", "index": 1 } + ] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -21444,7 +21469,8 @@ "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "variable", "var_name": "i" }] }, "outputs": { "stack": [{ "type": "simple", "name": "x" }] } }, @@ -21474,7 +21500,10 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] } ] }, - "outputs": { "stack": [] } + "outputs": { + "stack": [], + "registers": [{ "type": "variable", "var_name": "i" }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -21633,9 +21662,13 @@ "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [{ "type": "constant", "index": 0 }] }, - "outputs": { "stack": [] } + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 0 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -21665,9 +21698,13 @@ "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [{ "type": "constant", "index": 1 }] }, - "outputs": { "stack": [] } + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 1 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -21692,9 +21729,16 @@ "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ], + "registers": [ + { "type": "constant", "index": 0 }, + { "type": "constant", "index": 1 } ] }, - "outputs": { "stack": [] } + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 1 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -21719,7 +21763,8 @@ "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [{ "type": "constant", "index": 0 }] }, "outputs": { "stack": [ @@ -21750,7 +21795,8 @@ "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [{ "type": "constant", "index": 1 }] }, "outputs": { "stack": [ @@ -21778,8 +21824,20 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { + "stack": [], + "registers": [ + { "type": "constant", "index": 0 }, + { "type": "constant", "index": 1 } + ] + }, + "outputs": { + "stack": [], + "registers": [ + { "type": "constant", "index": 0 }, + { "type": "constant", "index": 1 } + ] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -21870,8 +21928,14 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 0 }] + }, + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 1 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -21893,8 +21957,20 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { + "stack": [], + "registers": [ + { "type": "constant", "index": 0 }, + { "type": "constant", "index": 1 } + ] + }, + "outputs": { + "stack": [], + "registers": [ + { "type": "constant", "index": 0 }, + { "type": "constant", "index": 1 } + ] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -22060,7 +22136,10 @@ }, "value_flow": { "doc_stack": " - n c", - "inputs": { "stack": [] }, + "inputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 3 }] + }, "outputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] }, @@ -29762,8 +29841,14 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { + "stack": [], + "registers": [{ "type": "special", "name": "gas" }] + }, + "outputs": { + "stack": [], + "registers": [{ "type": "special", "name": "gas" }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -29788,9 +29873,13 @@ "inputs": { "stack": [ { "type": "simple", "name": "g", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "special", "name": "gas" }] }, - "outputs": { "stack": [] } + "outputs": { + "stack": [], + "registers": [{ "type": "special", "name": "gas" }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -29816,7 +29905,8 @@ "outputs": { "stack": [ { "type": "simple", "name": "g_c", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "special", "name": "gas" }] } }, "control_flow": { "branches": [], "nobranch": true } @@ -29839,8 +29929,17 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { + "stack": [], + "registers": [ + { "type": "constant", "index": 4 }, + { "type": "constant", "index": 5 } + ] + }, + "outputs": { + "stack": [], + "registers": [{ "type": "special", "name": "cstate" }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -29862,11 +29961,15 @@ }, "value_flow": { "doc_stack": "- x", - "inputs": { "stack": [] }, + "inputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 7 }] + }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "constant", "index": 7 }] } }, "control_flow": { "branches": [], "nobranch": true } @@ -29892,12 +29995,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "constant", "index": 7 }] }, "outputs": { "stack": [ { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "constant", "index": 7 }] } }, "control_flow": { "branches": [], "nobranch": true } @@ -29923,9 +30028,13 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "constant", "index": 7 }] }, - "outputs": { "stack": [] } + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 7 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -29950,9 +30059,13 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "constant", "index": 7 }] }, - "outputs": { "stack": [] } + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 7 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -29982,7 +30095,10 @@ }, "value_flow": { "doc_stack": " - x", - "inputs": { "stack": [] }, + "inputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 7 }] + }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } @@ -30009,7 +30125,10 @@ }, "value_flow": { "doc_stack": " - D 32", - "inputs": { "stack": [] }, + "inputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 7 }] + }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice", "Null"] }, @@ -30040,7 +30159,8 @@ "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "constant", "index": 7 }] }, "outputs": { "stack": [ @@ -30084,7 +30204,8 @@ "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "constant", "index": 7 }] }, "outputs": { "stack": [ @@ -30112,7 +30233,10 @@ }, "value_flow": { "doc_stack": "- t", - "inputs": { "stack": [] }, + "inputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 7 }] + }, "outputs": { "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] } @@ -30137,7 +30261,10 @@ }, "value_flow": { "doc_stack": "- t", - "inputs": { "stack": [] }, + "inputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 7 }] + }, "outputs": { "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] } @@ -30162,7 +30289,10 @@ }, "value_flow": { "doc_stack": "- i", - "inputs": { "stack": [] }, + "inputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 7 }] + }, "outputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] } @@ -30192,7 +30322,8 @@ "inputs": { "stack": [ { "type": "simple", "name": "k", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "constant", "index": 7 }] }, "outputs": { "stack": [{ "type": "simple", "name": "x" }] } }, @@ -30225,7 +30356,10 @@ }, "value_flow": { "doc_stack": " - x", - "inputs": { "stack": [] }, + "inputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 7 }] + }, "outputs": { "stack": [{ "type": "simple", "name": "x" }] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30252,9 +30386,13 @@ "stack": [ { "type": "simple", "name": "x" }, { "type": "simple", "name": "k", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "constant", "index": 7 }] }, - "outputs": { "stack": [] } + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 7 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -30285,8 +30423,14 @@ }, "value_flow": { "doc_stack": "x - ", - "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, - "outputs": { "stack": [] } + "inputs": { + "stack": [{ "type": "simple", "name": "x" }], + "registers": [{ "type": "constant", "index": 7 }] + }, + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 7 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -33425,9 +33569,13 @@ "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "constant", "index": 5 }] }, - "outputs": { "stack": [] } + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 5 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -33453,9 +33601,13 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "constant", "index": 5 }] }, - "outputs": { "stack": [] } + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 5 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -33482,9 +33634,13 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "constant", "index": 5 }] }, - "outputs": { "stack": [] } + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 5 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -33507,9 +33663,13 @@ "value_flow": { "doc_stack": "c - ", "inputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], + "registers": [{ "type": "constant", "index": 5 }] }, - "outputs": { "stack": [] } + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 5 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -33535,9 +33695,13 @@ "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "constant", "index": 5 }] }, - "outputs": { "stack": [] } + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 5 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -33563,9 +33727,13 @@ "stack": [ { "type": "simple", "name": "h", "value_types": ["Integer"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "constant", "index": 5 }] }, - "outputs": { "stack": [] } + "outputs": { + "stack": [], + "registers": [{ "type": "constant", "index": 5 }] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -33591,12 +33759,14 @@ "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "constant", "index": 5 }] }, "outputs": { "stack": [ { "type": "simple", "name": "fee", "value_types": ["Integer"] } - ] + ], + "registers": [{ "type": "constant", "index": 5 }] } }, "control_flow": { "branches": [], "nobranch": true } diff --git a/schema.json b/schema.json index 7003d79..452e748 100644 --- a/schema.json +++ b/schema.json @@ -61,12 +61,54 @@ "values": { "type": "object", "additionalProperties": false, + "required": ["registers"], "properties": { "stack": { "$ref": "#/definitions/stack" + }, + "registers": { + "type": "array", + "title": "Register values", + "items": { + "$ref": "#/definitions/register_flow" + }, + "additionalItems": false } } }, + "register_flow": { + "title": "Register", + "description": "Represents read/write access to a register", + "oneOf": [ + { + "type": "object", + "additionalProperties": false, + "required": ["type", "index"], + "properties": { + "type": { "const": "constant" }, + "index": { "type": "number" } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": ["type", "var_name"], + "properties": { + "type": { "const": "variable" }, + "var_name": { "$ref": "#/definitions/var_name" } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": ["type", "name"], + "properties": { + "type": { "const": "special" }, + "name": { "enum": ["gas", "cstate"] } + } + } + ] + }, "stack": { "type": "array", "title": "Stack values", From 43f41e7eac2ede7f84fb2cc4b4e7de5b6dcaa759 Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Fri, 1 Mar 2024 14:08:32 +0700 Subject: [PATCH 16/27] Fill empty register flow for all instructions --- cp0.json | 5171 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 3503 insertions(+), 1668 deletions(-) diff --git a/cp0.json b/cp0.json index 5560742..f6991d5 100644 --- a/cp0.json +++ b/cp0.json @@ -19,8 +19,8 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { "stack": [], "registers": [] }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -49,7 +49,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -84,7 +88,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -111,7 +119,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -139,7 +151,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -166,7 +182,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -193,7 +213,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -234,7 +258,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -268,7 +296,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -302,7 +334,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -336,7 +372,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -370,7 +410,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -411,7 +455,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -452,7 +500,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -493,7 +545,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -534,7 +590,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -575,7 +635,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -616,7 +680,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -657,7 +725,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -698,7 +770,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -732,7 +808,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -759,7 +839,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -786,7 +870,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -807,8 +895,8 @@ }, "value_flow": { "doc_stack": "a b c - b c a", - "inputs": {}, - "outputs": {} + "inputs": { "registers": [] }, + "outputs": { "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -830,8 +918,8 @@ }, "value_flow": { "doc_stack": "a b c - c a b", - "inputs": {}, - "outputs": {} + "inputs": { "registers": [] }, + "outputs": { "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -853,8 +941,8 @@ }, "value_flow": { "doc_stack": "a b c d - c d a b", - "inputs": {}, - "outputs": {} + "inputs": { "registers": [] }, + "outputs": { "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -874,7 +962,11 @@ "prefix": "5B", "operands": [] }, - "value_flow": { "doc_stack": "a b - ", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "a b - ", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -895,8 +987,8 @@ }, "value_flow": { "doc_stack": "a b - a b a b", - "inputs": {}, - "outputs": {} + "inputs": { "registers": [] }, + "outputs": { "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -918,8 +1010,8 @@ }, "value_flow": { "doc_stack": "a b c d - a b c d a b", - "inputs": {}, - "outputs": {} + "inputs": { "registers": [] }, + "outputs": { "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -954,7 +1046,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -981,7 +1077,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -1016,7 +1116,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -1035,7 +1139,11 @@ "prefix": "60", "operands": [] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -1054,7 +1162,11 @@ "prefix": "61", "operands": [] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -1073,7 +1185,11 @@ "prefix": "62", "operands": [] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -1092,7 +1208,11 @@ "prefix": "63", "operands": [] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -1111,7 +1231,11 @@ "prefix": "64", "operands": [] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -1130,7 +1254,11 @@ "prefix": "65", "operands": [] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -1149,7 +1277,11 @@ "prefix": "66", "operands": [] }, - "value_flow": { "doc_stack": "a b - b a b", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "a b - b a b", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -1168,7 +1300,11 @@ "prefix": "67", "operands": [] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -1189,11 +1325,12 @@ }, "value_flow": { "doc_stack": "- depth", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "depth", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -1219,9 +1356,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -1241,7 +1379,11 @@ "prefix": "6A", "operands": [] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -1260,7 +1402,11 @@ "prefix": "6B", "operands": [] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -1295,7 +1441,11 @@ } ] }, - "value_flow": { "doc_stack": "", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -1316,9 +1466,10 @@ }, "value_flow": { "doc_stack": " - null", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { - "stack": [{ "type": "const", "value": null, "value_type": "Null" }] + "stack": [{ "type": "const", "value": null, "value_type": "Null" }], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -1344,12 +1495,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -1388,10 +1541,14 @@ "length_var": "n", "array_entry": [{ "type": "simple", "name": "x" }] } - ] + ], + "registers": [] }, "outputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] } + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -1423,9 +1580,15 @@ "value_flow": { "doc_stack": "t - x", "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] } + ], + "registers": [] }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + "outputs": { + "stack": [{ "type": "simple", "name": "x" }], + "registers": [] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -1456,7 +1619,10 @@ "value_flow": { "doc_stack": "t - x_1 ... x_n", "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -1466,7 +1632,8 @@ "length_var": "n", "array_entry": [{ "type": "simple", "name": "x" }] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -1498,7 +1665,10 @@ "value_flow": { "doc_stack": "t - x_1 ... x_k", "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -1508,7 +1678,8 @@ "length_var": "k", "array_entry": [{ "type": "simple", "name": "x" }] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -1540,7 +1711,10 @@ "value_flow": { "doc_stack": "t - x_1 ... x_m m", "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -1551,7 +1725,8 @@ "array_entry": [{ "type": "simple", "name": "x" }] }, { "type": "simple", "name": "m", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -1586,12 +1761,14 @@ "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] }, { "type": "simple", "name": "x" } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "t2", "value_types": ["Tuple"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -1625,9 +1802,13 @@ "inputs": { "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + "outputs": { + "stack": [{ "type": "simple", "name": "x" }], + "registers": [] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -1636,8 +1817,8 @@ "since_version": 0, "doc": { "category": "tuple", - "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’|", + "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": [] }, @@ -1661,12 +1842,14 @@ "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] }, { "type": "simple", "name": "x" } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "t2", "value_types": ["Tuple", "Null"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -1698,10 +1881,14 @@ "array_entry": [{ "type": "simple", "name": "x" }] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] } + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -1728,9 +1915,13 @@ "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] }, { "type": "simple", "name": "k", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + "outputs": { + "stack": [{ "type": "simple", "name": "x" }], + "registers": [] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -1756,7 +1947,8 @@ "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -1766,7 +1958,8 @@ "length_var": "n", "array_entry": [{ "type": "simple", "name": "x" }] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -1793,7 +1986,8 @@ "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -1803,7 +1997,8 @@ "length_var": "n", "array_entry": [{ "type": "simple", "name": "x" }] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -1830,7 +2025,8 @@ "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -1841,7 +2037,8 @@ "array_entry": [{ "type": "simple", "name": "x" }] }, { "type": "simple", "name": "m", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -1852,7 +2049,7 @@ "doc": { "category": "tuple", "description": "Similar to `k SETINDEX`, but with `0 <= k <= 254` taken from the stack.", - "gas": "26+|t’|", + "gas": "26+|t╨▓╨ВтДв|", "fift": "SETINDEXVAR", "fift_examples": [] }, @@ -1869,12 +2066,14 @@ { "type": "simple", "name": "t", "value_types": ["Tuple"] }, { "type": "simple", "name": "x" }, { "type": "simple", "name": "k", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "t2", "value_types": ["Tuple"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -1901,9 +2100,13 @@ "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] }, { "type": "simple", "name": "k", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + "outputs": { + "stack": [{ "type": "simple", "name": "x" }], + "registers": [] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -1930,12 +2133,14 @@ { "type": "simple", "name": "t", "value_types": ["Tuple", "Null"] }, { "type": "simple", "name": "x" }, { "type": "simple", "name": "k", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "t2", "value_types": ["Tuple", "Null"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -1959,12 +2164,16 @@ "value_flow": { "doc_stack": "t - n", "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -1988,12 +2197,16 @@ "value_flow": { "doc_stack": "t - n or -1", "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2017,12 +2230,16 @@ "value_flow": { "doc_stack": "t - ?", "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2046,9 +2263,15 @@ "value_flow": { "doc_stack": "t - x", "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] } + ], + "registers": [] }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + "outputs": { + "stack": [{ "type": "simple", "name": "x" }], + "registers": [] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -2074,12 +2297,14 @@ "stack": [ { "type": "simple", "name": "t", "value_types": ["Tuple"] }, { "type": "simple", "name": "x" } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "t2", "value_types": ["Tuple"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2103,13 +2328,17 @@ "value_flow": { "doc_stack": "t - t' x", "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "t2", "value_types": ["Tuple"] }, { "type": "simple", "name": "x" } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2135,7 +2364,8 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -2146,7 +2376,8 @@ "else": [{ "type": "const", "value": null, "value_type": "Null" }] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2172,7 +2403,8 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -2190,7 +2422,8 @@ "else": [] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2217,7 +2450,8 @@ "stack": [ { "type": "simple", "name": "x" }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -2229,7 +2463,8 @@ }, { "type": "simple", "name": "x" }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2256,7 +2491,8 @@ "stack": [ { "type": "simple", "name": "x" }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -2275,7 +2511,8 @@ }, { "type": "simple", "name": "x" }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2301,7 +2538,8 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -2315,7 +2553,8 @@ ] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2341,7 +2580,8 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -2360,7 +2600,8 @@ "else": [] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2387,7 +2628,8 @@ "stack": [ { "type": "simple", "name": "x" }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -2402,7 +2644,8 @@ }, { "type": "simple", "name": "x" }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2429,7 +2672,8 @@ "stack": [ { "type": "simple", "name": "x" }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -2449,7 +2693,8 @@ }, { "type": "simple", "name": "x" }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2488,9 +2733,15 @@ "value_flow": { "doc_stack": "t - x", "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] } + ], + "registers": [] }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + "outputs": { + "stack": [{ "type": "simple", "name": "x" }], + "registers": [] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -2535,9 +2786,15 @@ "value_flow": { "doc_stack": "t - x", "inputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] } + ], + "registers": [] }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + "outputs": { + "stack": [{ "type": "simple", "name": "x" }], + "registers": [] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -2567,11 +2824,12 @@ }, "value_flow": { "doc_stack": "- x", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2602,11 +2860,12 @@ }, "value_flow": { "doc_stack": "- xx", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2637,11 +2896,12 @@ }, "value_flow": { "doc_stack": "- xxxx", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2661,20 +2921,16 @@ "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": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2706,11 +2962,12 @@ }, "value_flow": { "doc_stack": "- 2^(xx+1)", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2733,9 +2990,12 @@ }, "value_flow": { "doc_stack": "- NaN", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { - "stack": [{ "type": "const", "value_type": "Integer", "value": null }] + "stack": [ + { "type": "const", "value_type": "Integer", "value": null } + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2766,11 +3026,12 @@ }, "value_flow": { "doc_stack": "- 2^(xx+1)-1", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2801,11 +3062,12 @@ }, "value_flow": { "doc_stack": "- -2^(xx+1)", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2830,11 +3092,12 @@ }, "value_flow": { "doc_stack": "- c", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Cell"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2859,11 +3122,12 @@ }, "value_flow": { "doc_stack": "- s", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2892,7 +3156,7 @@ }, "value_flow": { "doc_stack": "- cont", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { @@ -2900,7 +3164,8 @@ "name": "result", "value_types": ["Continuation"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2936,11 +3201,12 @@ }, "value_flow": { "doc_stack": "- s", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -2978,11 +3244,12 @@ }, "value_flow": { "doc_stack": "- s", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3030,11 +3297,12 @@ }, "value_flow": { "doc_stack": "- s", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3072,7 +3340,7 @@ }, "value_flow": { "doc_stack": "- c", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { @@ -3080,7 +3348,8 @@ "name": "result", "value_types": ["Continuation"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3121,11 +3390,12 @@ }, "value_flow": { "doc_stack": "- c", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3152,12 +3422,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3184,12 +3456,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3216,12 +3490,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3247,12 +3523,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3278,12 +3556,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3309,12 +3589,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3348,12 +3630,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3387,12 +3671,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3419,12 +3705,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3452,13 +3740,15 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3486,13 +3776,15 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3520,13 +3812,15 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3553,12 +3847,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3585,12 +3881,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3617,12 +3915,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3649,12 +3949,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3681,12 +3983,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3713,12 +4017,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3745,13 +4051,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3778,13 +4086,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3811,13 +4121,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3845,13 +4157,15 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3879,13 +4193,15 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3913,13 +4229,15 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3946,12 +4264,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -3978,12 +4298,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4010,12 +4332,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4042,12 +4366,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4074,12 +4400,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4106,13 +4434,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4139,13 +4469,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4172,13 +4504,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4213,13 +4547,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4254,13 +4590,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4295,13 +4633,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4335,12 +4675,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4374,12 +4716,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4413,12 +4757,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4452,12 +4798,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4491,12 +4839,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4530,13 +4880,15 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4570,13 +4922,15 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4610,13 +4964,15 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4645,13 +5001,15 @@ { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4680,13 +5038,15 @@ { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4715,13 +5075,15 @@ { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4749,12 +5111,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4782,12 +5146,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4815,12 +5181,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4848,12 +5216,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4881,12 +5251,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4914,12 +5286,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4947,13 +5321,15 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -4981,13 +5357,15 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5015,13 +5393,15 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5050,13 +5430,15 @@ { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5085,13 +5467,15 @@ { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5120,13 +5504,15 @@ { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5154,12 +5540,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5187,12 +5575,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5220,12 +5610,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5253,12 +5645,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5286,12 +5680,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5319,12 +5715,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5352,12 +5750,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5385,12 +5785,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5418,12 +5820,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5459,12 +5863,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5500,12 +5906,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5541,12 +5949,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5581,12 +5991,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5621,12 +6033,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5661,12 +6075,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5701,12 +6117,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5741,12 +6159,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5781,12 +6201,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5813,12 +6235,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5845,12 +6269,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5877,12 +6303,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5911,12 +6339,14 @@ { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5945,12 +6375,14 @@ { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -5979,12 +6411,14 @@ { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6012,12 +6446,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6045,12 +6481,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6078,12 +6516,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6111,12 +6551,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6144,12 +6586,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6177,12 +6621,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6210,12 +6656,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6243,12 +6691,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6276,12 +6726,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6317,12 +6769,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6358,12 +6812,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6399,12 +6855,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6439,12 +6897,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6479,12 +6939,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6519,12 +6981,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6559,12 +7023,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6599,12 +7065,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6639,12 +7107,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6679,12 +7149,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6719,12 +7191,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6759,12 +7233,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6798,12 +7274,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6837,12 +7315,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6869,12 +7349,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6901,12 +7383,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6932,12 +7416,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6964,12 +7450,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -6996,12 +7484,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7028,12 +7518,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7059,12 +7551,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7098,12 +7592,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7137,12 +7633,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7169,12 +7667,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "c", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7201,12 +7701,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "c", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7232,12 +7734,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7263,12 +7767,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7295,12 +7801,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7327,12 +7835,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7359,13 +7869,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "r1", "value_types": ["Integer"] }, { "type": "simple", "name": "r2", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7391,12 +7903,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7423,12 +7937,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7455,12 +7971,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7487,12 +8005,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7518,12 +8038,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7549,12 +8071,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7580,12 +8104,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7612,12 +8138,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7645,13 +8173,15 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7679,13 +8209,15 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7713,13 +8245,15 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7746,12 +8280,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7778,12 +8314,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7810,12 +8348,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7842,12 +8382,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7874,12 +8416,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7906,12 +8450,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7938,13 +8484,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -7971,13 +8519,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8004,13 +8554,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8038,13 +8590,15 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8072,13 +8626,15 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8106,13 +8662,15 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8139,12 +8697,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8171,12 +8731,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8203,12 +8765,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8235,12 +8799,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8267,12 +8833,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8299,13 +8867,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8332,13 +8902,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8365,13 +8937,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8406,13 +8980,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8447,13 +9023,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8488,13 +9066,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8528,12 +9108,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8567,12 +9149,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8606,12 +9190,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8645,12 +9231,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8684,12 +9272,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8723,13 +9313,15 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8763,13 +9355,15 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8803,13 +9397,15 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8838,13 +9434,15 @@ { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8873,13 +9471,15 @@ { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8908,13 +9508,15 @@ { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8942,12 +9544,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -8975,12 +9579,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9008,12 +9614,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9041,12 +9649,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9074,12 +9684,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9107,12 +9719,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9139,13 +9753,15 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9173,13 +9789,15 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9207,13 +9825,15 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9242,13 +9862,15 @@ { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9277,13 +9899,15 @@ { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9312,13 +9936,15 @@ { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "q", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9346,12 +9972,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9379,12 +10007,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9412,12 +10042,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9445,12 +10077,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9478,12 +10112,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9511,12 +10147,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9544,12 +10182,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9577,12 +10217,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9610,12 +10252,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9651,12 +10295,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9692,12 +10338,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9733,12 +10381,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9773,12 +10423,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9813,12 +10465,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9853,12 +10507,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9893,12 +10549,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9933,12 +10591,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -9973,12 +10633,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10005,12 +10667,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10037,12 +10701,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10069,12 +10735,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10103,12 +10771,14 @@ { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10137,12 +10807,14 @@ { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10171,12 +10843,14 @@ { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10204,12 +10878,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10237,12 +10913,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10270,12 +10948,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10303,12 +10983,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10336,12 +11018,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10369,12 +11053,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10402,12 +11088,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10435,12 +11123,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10468,12 +11158,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10509,12 +11201,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10550,12 +11244,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10591,12 +11287,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "w", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10631,12 +11329,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10671,12 +11371,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10711,12 +11413,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10751,12 +11455,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10791,12 +11497,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10831,12 +11539,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10871,12 +11581,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10911,12 +11623,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10951,12 +11665,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -10990,12 +11706,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11029,12 +11747,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11061,12 +11781,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11093,12 +11815,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11124,12 +11848,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11156,12 +11882,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11188,12 +11916,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11220,12 +11950,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11251,12 +11983,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11290,12 +12024,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11329,12 +12065,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11361,12 +12099,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "c", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11393,12 +12133,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "c", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11424,12 +12166,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11456,12 +12200,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11488,12 +12234,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11520,12 +12268,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11552,12 +12302,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11584,12 +12336,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11616,12 +12370,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11648,12 +12404,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11687,12 +12445,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11726,12 +12486,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11765,12 +12527,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11804,12 +12568,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11835,12 +12601,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11866,12 +12634,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11895,12 +12665,16 @@ "value_flow": { "doc_stack": "s - ?", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11924,12 +12698,16 @@ "value_flow": { "doc_stack": "s - ?", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11953,12 +12731,16 @@ "value_flow": { "doc_stack": "s - ?", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -11982,12 +12764,16 @@ "value_flow": { "doc_stack": "s - ?", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12014,12 +12800,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12046,12 +12834,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12078,12 +12868,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12110,12 +12902,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12142,12 +12936,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12174,9 +12970,10 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -12202,12 +12999,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12234,12 +13033,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12266,12 +13067,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12298,12 +13101,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12327,12 +13132,16 @@ "value_flow": { "doc_stack": "s - n", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12356,12 +13165,16 @@ "value_flow": { "doc_stack": "s - n", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12385,12 +13198,16 @@ "value_flow": { "doc_stack": "s - n", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12414,12 +13231,16 @@ "value_flow": { "doc_stack": "s - n", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12442,11 +13263,12 @@ }, "value_flow": { "doc_stack": "- b", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12472,10 +13294,12 @@ "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12510,12 +13334,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12550,12 +13376,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12582,12 +13410,14 @@ "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12614,12 +13444,14 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "child", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12646,12 +13478,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12679,12 +13513,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12712,12 +13548,14 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12745,12 +13583,14 @@ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12778,12 +13618,14 @@ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12811,7 +13653,8 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -12862,7 +13705,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12890,7 +13734,8 @@ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -12941,7 +13786,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -12969,7 +13815,8 @@ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -13020,7 +13867,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13048,7 +13896,8 @@ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -13099,7 +13948,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13134,12 +13984,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13174,12 +14026,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13214,12 +14068,14 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13254,12 +14110,14 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13294,7 +14152,8 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -13345,7 +14204,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13380,7 +14240,8 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -13431,7 +14292,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13466,7 +14328,8 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -13517,7 +14380,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13552,7 +14416,8 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -13603,7 +14468,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13630,12 +14496,14 @@ "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13662,12 +14530,14 @@ "stack": [ { "type": "simple", "name": "child", "value_types": ["Builder"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13694,12 +14564,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13726,12 +14598,14 @@ "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b3", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13758,12 +14632,14 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "c", "value_types": ["Cell"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13790,12 +14666,14 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b3", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13822,12 +14700,14 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13854,12 +14734,14 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b3", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13886,7 +14768,8 @@ "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -13918,7 +14801,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -13945,7 +14829,8 @@ "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -13981,7 +14866,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14008,7 +14894,8 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -14040,7 +14927,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14067,7 +14955,8 @@ "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -14103,7 +14992,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14130,7 +15020,8 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "c", "value_types": ["Cell"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -14162,7 +15053,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14189,7 +15081,8 @@ "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -14225,7 +15118,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14252,7 +15146,8 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -14284,7 +15179,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14311,7 +15207,8 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -14347,7 +15244,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14371,16 +15269,18 @@ ] }, "value_flow": { - "doc_stack": "b - b’", + "doc_stack": "b - b╨▓╨ВтДв", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14402,16 +15302,18 @@ "operands": [] }, "value_flow": { - "doc_stack": "b - b’", + "doc_stack": "b - b╨▓╨ВтДв", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14438,10 +15340,12 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14468,12 +15372,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14500,12 +15406,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14532,12 +15440,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14564,12 +15474,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14595,12 +15507,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14626,12 +15540,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14657,12 +15573,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14688,13 +15606,15 @@ "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14720,12 +15640,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x2", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14751,12 +15673,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "y2", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14782,13 +15706,15 @@ "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x2", "value_types": ["Integer"] }, { "type": "simple", "name": "y2", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14822,9 +15748,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -14850,9 +15777,10 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -14878,9 +15806,10 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -14907,9 +15836,10 @@ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -14942,12 +15872,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -14974,12 +15906,14 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15006,12 +15940,14 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15039,12 +15975,14 @@ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15071,12 +16009,14 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15103,12 +16043,14 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15136,12 +16078,14 @@ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15182,12 +16126,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15211,10 +16157,14 @@ "value_flow": { "doc_stack": "c - s", "inputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], + "registers": [] }, "outputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15238,9 +16188,12 @@ "value_flow": { "doc_stack": "s - ", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -15271,13 +16224,17 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15309,13 +16266,17 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15339,13 +16300,17 @@ "value_flow": { "doc_stack": "s - c s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15369,13 +16334,17 @@ "value_flow": { "doc_stack": "s - s' s''", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] }, { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15407,13 +16376,17 @@ "value_flow": { "doc_stack": "s - s'' s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s3", "value_types": ["Slice"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15440,13 +16413,15 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15473,13 +16448,15 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15506,12 +16483,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15538,12 +16517,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15570,7 +16551,8 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -15598,7 +16580,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15625,7 +16608,8 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -15653,7 +16637,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15680,7 +16665,8 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -15702,7 +16688,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15729,7 +16716,8 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -15751,7 +16739,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15783,13 +16772,17 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15821,13 +16814,17 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15859,12 +16856,16 @@ "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15896,12 +16897,16 @@ "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15933,7 +16938,10 @@ "value_flow": { "doc_stack": "s - x s' -1 or s 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -15961,7 +16969,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -15993,7 +17002,10 @@ "value_flow": { "doc_stack": "s - x s' -1 or s 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -16021,7 +17033,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16053,7 +17066,10 @@ "value_flow": { "doc_stack": "s - x -1 or 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -16075,7 +17091,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16107,7 +17124,10 @@ "value_flow": { "doc_stack": "s - x -1 or 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -16129,7 +17149,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16161,13 +17182,17 @@ "value_flow": { "doc_stack": "s - s x", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16194,13 +17219,15 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s3", "value_types": ["Slice"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16227,12 +17254,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16259,7 +17288,8 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -16287,7 +17317,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16314,7 +17345,8 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -16332,7 +17364,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16364,13 +17397,17 @@ "value_flow": { "doc_stack": "s - s'' s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s3", "value_types": ["Slice"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16402,12 +17439,16 @@ "value_flow": { "doc_stack": "s - s''", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16439,7 +17480,10 @@ "value_flow": { "doc_stack": "s - s'' s' -1 or s 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -16467,7 +17511,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16499,7 +17544,10 @@ "value_flow": { "doc_stack": "s - s'' -1 or 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -16517,7 +17565,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16544,12 +17593,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16576,12 +17627,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16608,12 +17661,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16640,12 +17695,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16673,12 +17730,14 @@ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] }, { "type": "simple", "name": "l2", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16705,12 +17764,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16737,7 +17798,8 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -16760,7 +17822,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16797,12 +17860,16 @@ "value_flow": { "doc_stack": "s - s''", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16839,7 +17906,10 @@ "value_flow": { "doc_stack": "s - s'' -1 or s 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -16862,7 +17932,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16890,12 +17961,14 @@ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16923,12 +17996,14 @@ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16956,12 +18031,14 @@ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -16989,12 +18066,14 @@ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17024,12 +18103,14 @@ { "type": "simple", "name": "r", "value_types": ["Integer"] }, { "type": "simple", "name": "l2", "value_types": ["Integer"] }, { "type": "simple", "name": "r2", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17057,13 +18138,15 @@ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] }, { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17091,7 +18174,8 @@ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -17119,7 +18203,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17143,13 +18228,15 @@ "value_flow": { "doc_stack": "c - s ?", "inputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "flag", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17173,10 +18260,14 @@ "value_flow": { "doc_stack": "c - c'", "inputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], + "registers": [] }, "outputs": { - "stack": [{ "type": "simple", "name": "c2", "value_types": ["Cell"] }] + "stack": [ + { "type": "simple", "name": "c2", "value_types": ["Cell"] } + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17200,7 +18291,8 @@ "value_flow": { "doc_stack": "c - c' -1 or c 0", "inputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], + "registers": [] }, "outputs": { "stack": [ @@ -17223,7 +18315,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17250,9 +18343,10 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -17278,9 +18372,10 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -17307,9 +18402,10 @@ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -17335,12 +18431,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17367,12 +18465,14 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17400,12 +18500,14 @@ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "l", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17432,10 +18534,12 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17459,12 +18563,16 @@ "value_flow": { "doc_stack": "s - l", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "l", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17488,12 +18596,16 @@ "value_flow": { "doc_stack": "s - r", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17517,13 +18629,17 @@ "value_flow": { "doc_stack": "s - l r", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "l", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17555,10 +18671,14 @@ "value_flow": { "doc_stack": "s - c", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17582,13 +18702,17 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17612,13 +18736,17 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17642,13 +18770,17 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17672,13 +18804,17 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17702,12 +18838,16 @@ "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17731,12 +18871,16 @@ "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17760,12 +18904,16 @@ "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17789,12 +18937,16 @@ "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17818,7 +18970,10 @@ "value_flow": { "doc_stack": "s - x s' -1 or s 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -17846,7 +19001,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17870,7 +19026,10 @@ "value_flow": { "doc_stack": "s - x s' -1 or s 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -17898,7 +19057,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17922,7 +19082,10 @@ "value_flow": { "doc_stack": "s - x s' -1 or s 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -17950,7 +19113,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -17974,7 +19138,10 @@ "value_flow": { "doc_stack": "s - x s' -1 or s 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -18002,7 +19169,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -18026,7 +19194,10 @@ "value_flow": { "doc_stack": "s - x -1 or 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -18048,7 +19219,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -18072,7 +19244,10 @@ "value_flow": { "doc_stack": "s - x -1 or 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -18094,7 +19269,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -18118,7 +19294,10 @@ "value_flow": { "doc_stack": "s - x -1 or 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -18140,7 +19319,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -18164,7 +19344,10 @@ "value_flow": { "doc_stack": "s - x -1 or 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -18186,7 +19369,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -18210,13 +19394,17 @@ "value_flow": { "doc_stack": "s - n s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -18240,13 +19428,17 @@ "value_flow": { "doc_stack": "s - n s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -18273,13 +19465,15 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -18303,12 +19497,16 @@ "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -18332,12 +19530,14 @@ "value_flow": { "doc_stack": "c - x", "inputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -18363,9 +19563,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -18404,9 +19605,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }], @@ -18455,9 +19657,10 @@ "array_entry": [{ "type": "simple", "name": "arg" }] }, { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -18510,9 +19713,10 @@ "array_entry": [{ "type": "simple", "name": "arg" }] }, { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -18565,9 +19769,10 @@ "array_entry": [{ "type": "simple", "name": "arg" }] }, { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }], @@ -18608,9 +19813,10 @@ "length_var": "p", "array_entry": [{ "type": "simple", "name": "arg" }] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "register", "index": 0 }], @@ -18635,8 +19841,8 @@ }, "value_flow": { "doc_stack": "", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { "stack": [], "registers": [] }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "register", "index": 0 }], @@ -18661,8 +19867,8 @@ }, "value_flow": { "doc_stack": "", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { "stack": [], "registers": [] }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "register", "index": 1 }], @@ -18690,9 +19896,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -18723,9 +19930,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }], @@ -18753,9 +19961,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }], @@ -18804,9 +20013,10 @@ "array_entry": [{ "type": "simple", "name": "arg" }] }, { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }], @@ -18842,9 +20052,10 @@ { "type": "simple", "name": "c", "value_types": ["Continuation"] }, { "type": "simple", "name": "p", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -18890,9 +20101,10 @@ }, { "type": "simple", "name": "p", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -18939,9 +20151,10 @@ { "type": "simple", "name": "c", "value_types": ["Continuation"] }, { "type": "simple", "name": "p", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }], @@ -18977,9 +20190,10 @@ { "type": "simple", "name": "c", "value_types": ["Continuation"] }, { "type": "simple", "name": "p", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }], @@ -19010,8 +20224,8 @@ }, "value_flow": { "doc_stack": "", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { "stack": [], "registers": [] }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -19053,8 +20267,8 @@ }, "value_flow": { "doc_stack": "", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { "stack": [], "registers": [] }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }], @@ -19085,8 +20299,8 @@ }, "value_flow": { "doc_stack": "", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { "stack": [], "registers": [] }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }], @@ -19111,8 +20325,8 @@ }, "value_flow": { "doc_stack": "", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { "stack": [], "registers": [] }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "register", "index": 0 }], @@ -19137,8 +20351,8 @@ }, "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": {}, - "outputs": {} + "inputs": { "registers": [] }, + "outputs": { "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -19160,8 +20374,8 @@ }, "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": {}, - "outputs": {} + "inputs": { "registers": [] }, + "outputs": { "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -19186,9 +20400,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "register", "index": 0 }], @@ -19216,9 +20431,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "register", "index": 0 }], @@ -19252,9 +20468,10 @@ "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] }, { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -19299,9 +20516,10 @@ "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] }, { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -19346,9 +20564,10 @@ "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] }, { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }], @@ -19382,9 +20601,10 @@ "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] }, { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }], @@ -19419,9 +20639,10 @@ { "type": "simple", "name": "f", "value_types": ["Integer"] }, { "type": "simple", "name": "c", "value_types": ["Continuation"] }, { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -19476,9 +20697,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -19523,9 +20745,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -19570,9 +20793,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }], @@ -19606,9 +20830,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "c" }], @@ -19638,9 +20863,13 @@ { "type": "simple", "name": "f", "value_types": ["Integer"] }, { "type": "simple", "name": "x" }, { "type": "simple", "name": "y" } - ] + ], + "registers": [] }, - "outputs": { "stack": [{ "type": "simple", "name": "result" }] } + "outputs": { + "stack": [{ "type": "simple", "name": "result" }], + "registers": [] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -19667,9 +20896,13 @@ { "type": "simple", "name": "f", "value_types": ["Integer"] }, { "type": "simple", "name": "x" }, { "type": "simple", "name": "y" } - ] + ], + "registers": [] }, - "outputs": { "stack": [{ "type": "simple", "name": "result" }] } + "outputs": { + "stack": [{ "type": "simple", "name": "result" }], + "registers": [] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -19694,9 +20927,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "register", "index": 1 }], @@ -19724,9 +20958,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "register", "index": 1 }], @@ -19761,9 +20996,10 @@ "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] }, { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -19819,9 +21055,10 @@ "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] }, { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -19881,9 +21118,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -19941,12 +21179,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { @@ -19984,12 +21224,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { @@ -20031,12 +21273,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { @@ -20078,12 +21322,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { @@ -20118,9 +21364,10 @@ "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] }, { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -20161,9 +21408,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -20206,9 +21454,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -20251,8 +21500,8 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { "stack": [], "registers": [] }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -20300,9 +21549,10 @@ "stack": [ { "type": "simple", "name": "c2", "value_types": ["Continuation"] }, { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -20349,9 +21599,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -20400,9 +21651,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -20433,8 +21685,8 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { "stack": [], "registers": [] }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -20474,9 +21726,10 @@ "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] }, { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -20532,9 +21785,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -20580,9 +21834,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -20647,8 +21902,8 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { "stack": [], "registers": [] }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -20700,9 +21955,10 @@ "stack": [ { "type": "simple", "name": "c2", "value_types": ["Continuation"] }, { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -20752,9 +22008,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -20784,9 +22041,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -20808,8 +22066,8 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { "stack": [], "registers": [] }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -20819,7 +22077,7 @@ "doc": { "category": "cont_stack", "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”", + "gas": "26+s╨▓╨В╤Ь", "fift": "[r] [n] SETCONTARGS", "fift_examples": [] }, @@ -20855,12 +22113,14 @@ "array_entry": [{ "type": "simple", "name": "x" }] }, { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -20871,7 +22131,7 @@ "doc": { "category": "cont_stack", "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”", + "gas": "26+s╨▓╨В╤Ь", "fift": "[p] RETURNARGS", "fift_examples": [] }, @@ -20889,7 +22149,11 @@ } ] }, - "value_flow": { "doc_stack": "-", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "-", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -20898,7 +22162,7 @@ "doc": { "category": "cont_stack", "description": "Similar to `RETURNARGS`, but with Integer `0 <= p <= 255` taken from the stack.", - "gas": "26+s”", + "gas": "26+s╨▓╨В╤Ь", "fift": "RETURNVARARGS", "fift_examples": [] }, @@ -20908,7 +22172,11 @@ "prefix": "ED10", "operands": [] }, - "value_flow": { "doc_stack": "p -", "inputs": {}, "outputs": {} }, + "value_flow": { + "doc_stack": "p -", + "inputs": { "registers": [] }, + "outputs": { "registers": [] } + }, "control_flow": { "branches": [], "nobranch": true } }, { @@ -20917,7 +22185,7 @@ "doc": { "category": "cont_stack", "description": "Similar to `SETCONTARGS`, but with `0 <= r <= 255` and `-1 <= n <= 255` taken from the stack.", - "gas": "26+s”", + "gas": "26+s╨▓╨В╤Ь", "fift": "SETCONTVARARGS", "fift_examples": [] }, @@ -20940,12 +22208,14 @@ { "type": "simple", "name": "c", "value_types": ["Continuation"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -20972,12 +22242,14 @@ "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -21001,12 +22273,16 @@ "value_flow": { "doc_stack": "s - c", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -21040,12 +22316,14 @@ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -21092,12 +22370,14 @@ "array_entry": [{ "type": "simple", "name": "x" }] }, { "type": "simple", "name": "s", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -21132,7 +22412,10 @@ "stack": [], "registers": [{ "type": "variable", "var_name": "i" }] }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + "outputs": { + "stack": [{ "type": "simple", "name": "x" }], + "registers": [] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -21162,7 +22445,10 @@ }, "value_flow": { "doc_stack": "x - ", - "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, + "inputs": { + "stack": [{ "type": "simple", "name": "x" }], + "registers": [] + }, "outputs": { "stack": [], "registers": [{ "type": "variable", "var_name": "i" }] @@ -21200,12 +22486,14 @@ "stack": [ { "type": "simple", "name": "x" }, { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -21472,7 +22760,10 @@ ], "registers": [{ "type": "variable", "var_name": "i" }] }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + "outputs": { + "stack": [{ "type": "simple", "name": "x" }], + "registers": [] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -21498,7 +22789,8 @@ "stack": [ { "type": "simple", "name": "x" }, { "type": "simple", "name": "i", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [], @@ -21530,12 +22822,14 @@ { "type": "simple", "name": "x" }, { "type": "simple", "name": "c", "value_types": ["Continuation"] }, { "type": "simple", "name": "i", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -21562,12 +22856,14 @@ "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] }, { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c3", "value_types": ["Continuation"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -21594,12 +22890,14 @@ "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] }, { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c3", "value_types": ["Continuation"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -21626,12 +22924,14 @@ "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] }, { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c3", "value_types": ["Continuation"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -21769,7 +23069,8 @@ "outputs": { "stack": [ { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -21801,7 +23102,8 @@ "outputs": { "stack": [ { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -21862,12 +23164,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { @@ -22000,11 +23304,12 @@ }, "value_flow": { "doc_stack": "- nn", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { @@ -22049,11 +23354,12 @@ }, "value_flow": { "doc_stack": "- n", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { @@ -22098,11 +23404,12 @@ }, "value_flow": { "doc_stack": " - n", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { @@ -22144,7 +23451,8 @@ "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] }, { "type": "simple", "name": "c", "value_types": ["Continuation"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -22175,8 +23483,8 @@ }, "value_flow": { "doc_stack": " - 0 n", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { "stack": [], "registers": [] }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": false } }, @@ -22209,9 +23517,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -22244,9 +23553,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -22276,8 +23586,8 @@ }, "value_flow": { "doc_stack": "- 0 nn", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { "stack": [], "registers": [] }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": false } }, @@ -22307,8 +23617,11 @@ }, "value_flow": { "doc_stack": "x - x nn", - "inputs": { "stack": [{ "type": "simple", "name": "x" }] }, - "outputs": { "stack": [] } + "inputs": { + "stack": [{ "type": "simple", "name": "x" }], + "registers": [] + }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": false } }, @@ -22341,9 +23654,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -22377,9 +23691,10 @@ "stack": [ { "type": "simple", "name": "x" }, { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -22412,9 +23727,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -22448,9 +23764,10 @@ "stack": [ { "type": "simple", "name": "x" }, { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -22475,9 +23792,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": false } }, @@ -22503,9 +23821,10 @@ "stack": [ { "type": "simple", "name": "x" }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": false } }, @@ -22531,9 +23850,10 @@ "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] }, { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -22560,9 +23880,10 @@ { "type": "simple", "name": "x" }, { "type": "simple", "name": "n", "value_types": ["Integer"] }, { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -22588,9 +23909,10 @@ "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] }, { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -22617,9 +23939,10 @@ { "type": "simple", "name": "x" }, { "type": "simple", "name": "n", "value_types": ["Integer"] }, { "type": "simple", "name": "f", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -22650,9 +23973,10 @@ "stack": [ { "type": "simple", "name": "c", "value_types": ["Continuation"] }, { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -22732,9 +24056,10 @@ }, { "type": "simple", "name": "c", "value_types": ["Continuation"] }, { "type": "simple", "name": "c2", "value_types": ["Continuation"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -22793,12 +24118,14 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "b", "value_types": ["Builder"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -22822,12 +24149,16 @@ "value_flow": { "doc_stack": "s - s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -22851,13 +24182,17 @@ "value_flow": { "doc_stack": "s - s' s''", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] }, { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -22881,12 +24216,16 @@ "value_flow": { "doc_stack": "s - s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -22910,13 +24249,17 @@ "value_flow": { "doc_stack": "s - D s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -22940,12 +24283,16 @@ "value_flow": { "doc_stack": "s - D", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -22971,7 +24318,8 @@ "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -23003,7 +24351,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23029,7 +24378,8 @@ "inputs": { "stack": [ { "type": "simple", "name": "s", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -23051,7 +24401,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23079,7 +24430,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -23097,7 +24449,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23125,7 +24478,8 @@ { "type": "simple", "name": "k", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -23143,7 +24497,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23171,7 +24526,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -23189,7 +24545,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23217,7 +24574,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -23235,7 +24593,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23263,7 +24622,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -23281,7 +24641,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23309,7 +24670,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Cell", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -23327,7 +24689,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23356,12 +24719,14 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23390,12 +24755,14 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23424,12 +24791,14 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23458,12 +24827,14 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23492,12 +24863,14 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23526,12 +24899,14 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23560,7 +24935,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -23588,7 +24964,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23617,7 +24994,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -23645,7 +25023,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23674,7 +25053,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -23702,7 +25082,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23731,7 +25112,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -23759,7 +25141,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23788,7 +25171,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -23816,7 +25200,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23845,7 +25230,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -23873,7 +25259,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23902,7 +25289,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -23929,7 +25317,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -23958,7 +25347,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -23985,7 +25375,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24014,7 +25405,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24041,7 +25433,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24070,7 +25463,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24097,7 +25491,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24126,7 +25521,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24153,7 +25549,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24182,7 +25579,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24209,7 +25607,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24238,7 +25637,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24270,7 +25670,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24299,7 +25700,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24331,7 +25733,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24360,7 +25763,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24392,7 +25796,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24421,7 +25826,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24453,7 +25859,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24482,7 +25889,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24514,7 +25922,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24543,7 +25952,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24575,7 +25985,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24604,7 +26015,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24627,7 +26039,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24656,7 +26069,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24679,7 +26093,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24708,7 +26123,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24731,7 +26147,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24760,7 +26177,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24783,7 +26201,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24812,7 +26231,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24835,7 +26255,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24864,7 +26285,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24887,7 +26309,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24916,7 +26339,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24940,7 +26364,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -24969,7 +26394,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -24993,7 +26419,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25022,7 +26449,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -25046,7 +26474,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25075,7 +26504,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -25099,7 +26529,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25128,7 +26559,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -25152,7 +26584,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25181,7 +26614,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -25205,7 +26639,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25234,12 +26669,14 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25268,12 +26705,14 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25302,12 +26741,14 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25336,7 +26777,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -25364,7 +26806,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25393,7 +26836,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -25421,7 +26865,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25450,7 +26895,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -25478,7 +26924,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25507,7 +26954,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -25530,7 +26978,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25559,7 +27008,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -25582,7 +27032,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25611,7 +27062,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -25634,7 +27086,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25663,7 +27116,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -25691,7 +27145,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25720,7 +27175,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -25748,7 +27204,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25777,7 +27234,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -25805,7 +27263,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25834,7 +27293,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -25857,7 +27317,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25886,7 +27347,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -25909,7 +27371,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25938,7 +27401,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -25961,7 +27425,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -25990,7 +27455,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -26014,7 +27480,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26043,7 +27510,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -26067,7 +27535,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26096,7 +27565,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -26120,7 +27590,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26148,7 +27619,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -26179,7 +27651,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26207,7 +27680,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -26238,7 +27712,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26266,7 +27741,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -26297,7 +27773,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26325,7 +27802,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -26357,7 +27835,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26385,7 +27864,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -26417,7 +27897,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26445,7 +27926,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -26477,7 +27959,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26505,7 +27988,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -26537,7 +28021,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26565,7 +28050,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -26597,7 +28083,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26625,7 +28112,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -26657,7 +28145,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26685,12 +28174,14 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26718,12 +28209,14 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26751,12 +28244,14 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26785,7 +28280,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -26795,7 +28291,8 @@ "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "c2", "value_types": ["Cell", "Null"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26824,7 +28321,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -26834,7 +28332,8 @@ "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "c2", "value_types": ["Cell", "Null"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26863,7 +28362,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -26873,7 +28373,8 @@ "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "c2", "value_types": ["Cell", "Null"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26902,7 +28403,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -26933,7 +28435,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -26962,7 +28465,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -26993,7 +28497,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27022,7 +28527,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27053,7 +28559,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27081,7 +28588,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27112,7 +28620,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27140,7 +28649,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27163,7 +28673,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27191,7 +28702,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27214,7 +28726,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27242,7 +28755,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27265,7 +28779,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27293,7 +28808,8 @@ { "type": "simple", "name": "k", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27316,7 +28832,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27344,7 +28861,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27371,7 +28889,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27399,7 +28918,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27426,7 +28946,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27454,7 +28975,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27481,7 +29003,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27509,7 +29032,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27536,7 +29060,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27564,7 +29089,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27591,7 +29117,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27619,7 +29146,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27646,7 +29174,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27674,7 +29203,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27701,7 +29231,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27729,7 +29260,8 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27756,7 +29288,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27783,7 +29316,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27802,7 +29336,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27829,7 +29364,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27848,7 +29384,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27875,7 +29412,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27898,7 +29436,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27925,7 +29464,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27948,7 +29488,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -27975,7 +29516,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -27998,7 +29540,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28025,7 +29568,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -28048,7 +29592,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28075,7 +29620,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -28094,7 +29640,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28121,7 +29668,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -28140,7 +29688,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28167,7 +29716,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -28190,7 +29740,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28217,7 +29768,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -28240,7 +29792,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28267,7 +29820,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -28290,7 +29844,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28317,7 +29872,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -28340,7 +29896,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28367,7 +29924,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -28400,7 +29958,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28427,7 +29986,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -28460,7 +30020,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28487,7 +30048,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -28524,7 +30086,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28551,7 +30114,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -28588,7 +30152,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28615,7 +30180,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -28652,7 +30218,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28679,7 +30246,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -28716,7 +30284,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28743,7 +30312,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -28776,7 +30346,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28803,7 +30374,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -28836,7 +30408,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28863,7 +30436,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -28900,7 +30474,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28927,7 +30502,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -28964,7 +30540,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -28991,7 +30568,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -29028,7 +30606,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -29055,7 +30634,8 @@ "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -29092,7 +30672,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -29120,9 +30701,10 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }], @@ -29152,9 +30734,10 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }], @@ -29184,9 +30767,10 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -29227,9 +30811,10 @@ { "type": "simple", "name": "i", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [ @@ -29278,12 +30863,13 @@ }, "value_flow": { "doc_stack": " - D n", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -29311,7 +30897,8 @@ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -29340,7 +30927,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -29368,14 +30956,16 @@ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] }, { "type": "simple", "name": "x", "value_types": ["Slice"] }, { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -29398,8 +30988,8 @@ }, "value_flow": { "doc_stack": "s D n - s' s'' or s", - "inputs": {}, - "outputs": {} + "inputs": { "registers": [] }, + "outputs": { "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }], @@ -29429,13 +31019,15 @@ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] }, { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { @@ -29485,8 +31077,8 @@ }, "value_flow": { "doc_stack": "s - s' s'' or s", - "inputs": {}, - "outputs": {} + "inputs": { "registers": [] }, + "outputs": { "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }], @@ -29511,8 +31103,8 @@ }, "value_flow": { "doc_stack": "i D n - i or nothing", - "inputs": {}, - "outputs": {} + "inputs": { "registers": [] }, + "outputs": { "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }], @@ -29537,8 +31129,8 @@ }, "value_flow": { "doc_stack": "i D n - i or nothing", - "inputs": {}, - "outputs": {} + "inputs": { "registers": [] }, + "outputs": { "registers": [] } }, "control_flow": { "branches": [{ "type": "variable", "var_name": "x" }], @@ -29563,8 +31155,8 @@ }, "value_flow": { "doc_stack": "i D n - i or nothing", - "inputs": {}, - "outputs": {} + "inputs": { "registers": [] }, + "outputs": { "registers": [] } }, "control_flow": { "branches": [ @@ -29600,8 +31192,8 @@ }, "value_flow": { "doc_stack": "i D n - i or nothing", - "inputs": {}, - "outputs": {} + "inputs": { "registers": [] }, + "outputs": { "registers": [] } }, "control_flow": { "branches": [ @@ -29643,12 +31235,14 @@ { "type": "simple", "name": "l", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -29677,12 +31271,14 @@ { "type": "simple", "name": "l", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -29711,12 +31307,14 @@ { "type": "simple", "name": "l", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -29745,12 +31343,14 @@ { "type": "simple", "name": "l", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -29779,12 +31379,14 @@ { "type": "simple", "name": "l", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -29813,12 +31415,14 @@ { "type": "simple", "name": "l", "value_types": ["Integer"] }, { "type": "simple", "name": "D", "value_types": ["Slice", "Null"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "D2", "value_types": ["Slice", "Null"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -29901,7 +31505,7 @@ }, "value_flow": { "doc_stack": "- g_c", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "g_c", "value_types": ["Integer"] } @@ -30102,7 +31706,8 @@ "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30133,7 +31738,8 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice", "Null"] }, { "type": "const", "value": 32, "value_type": "Integer" } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30178,7 +31784,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30210,7 +31817,8 @@ "outputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell", "Null"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30238,7 +31846,10 @@ "registers": [{ "type": "constant", "index": 7 }] }, "outputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] } + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30266,7 +31877,10 @@ "registers": [{ "type": "constant", "index": 7 }] }, "outputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] } + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30296,7 +31910,8 @@ "outputs": { "stack": [ { "type": "simple", "name": "i", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30325,7 +31940,10 @@ ], "registers": [{ "type": "constant", "index": 7 }] }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + "outputs": { + "stack": [{ "type": "simple", "name": "x" }], + "registers": [] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -30360,7 +31978,10 @@ "stack": [], "registers": [{ "type": "constant", "index": 7 }] }, - "outputs": { "stack": [{ "type": "simple", "name": "x" }] } + "outputs": { + "stack": [{ "type": "simple", "name": "x" }], + "registers": [] + } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -30402,7 +32023,7 @@ "doc": { "category": "app_global", "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’|", + "gas": "26+|c7╨▓╨ВтДв|", "fift": "[k] SETGLOB", "fift_examples": [] }, @@ -30453,12 +32074,14 @@ "value_flow": { "doc_stack": "c - x", "inputs": { - "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }] + "stack": [{ "type": "simple", "name": "c", "value_types": ["Cell"] }], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30482,12 +32105,16 @@ "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30511,12 +32138,16 @@ "value_flow": { "doc_stack": "s - x", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30554,12 +32185,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "h", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30597,13 +32230,15 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "h1", "value_types": ["Integer"] }, { "type": "simple", "name": "h2", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30641,13 +32276,15 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "h1", "value_types": ["Integer"] }, { "type": "simple", "name": "h2", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30685,12 +32322,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "h", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30728,13 +32367,15 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "h1", "value_types": ["Integer"] }, { "type": "simple", "name": "h2", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30772,12 +32413,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "h", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30815,13 +32458,15 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "h1", "value_types": ["Integer"] }, { "type": "simple", "name": "h2", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30859,13 +32504,15 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "h1", "value_types": ["Integer"] }, { "type": "simple", "name": "h2", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30903,12 +32550,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "h", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30946,13 +32595,15 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "h1", "value_types": ["Integer"] }, { "type": "simple", "name": "h2", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -30991,12 +32642,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31035,12 +32688,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31079,12 +32734,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31123,12 +32780,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31167,12 +32826,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31211,12 +32872,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31255,12 +32918,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31299,12 +32964,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31343,12 +33010,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31387,12 +33056,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31420,12 +33091,14 @@ { "type": "simple", "name": "h", "value_types": ["Integer"] }, { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "k", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31453,12 +33126,14 @@ { "type": "simple", "name": "d", "value_types": ["Slice"] }, { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "k", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31487,7 +33162,8 @@ { "type": "simple", "name": "v", "value_types": ["Integer"] }, { "type": "simple", "name": "r", "value_types": ["Integer"] }, { "type": "simple", "name": "s", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -31519,7 +33195,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31547,12 +33224,14 @@ { "type": "simple", "name": "d", "value_types": ["Slice"] }, { "type": "simple", "name": "sig", "value_types": ["Slice"] }, { "type": "simple", "name": "k", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31580,12 +33259,14 @@ { "type": "simple", "name": "d", "value_types": ["Slice"] }, { "type": "simple", "name": "sig", "value_types": ["Slice"] }, { "type": "simple", "name": "k", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31612,12 +33293,14 @@ "stack": [ { "type": "simple", "name": "h1", "value_types": ["Integer"] }, { "type": "simple", "name": "h2", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31643,9 +33326,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -31671,12 +33355,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31703,12 +33389,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31735,12 +33423,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31766,12 +33456,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31794,11 +33486,12 @@ }, "value_flow": { "doc_stack": "- l", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31824,12 +33517,14 @@ "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31856,7 +33551,8 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -31878,7 +33574,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31905,7 +33602,8 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -31927,7 +33625,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -31954,7 +33653,8 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -31976,7 +33676,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32002,7 +33703,8 @@ "inputs": { "stack": [ { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -32024,7 +33726,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32052,12 +33755,14 @@ { "type": "simple", "name": "pk", "value_types": ["Slice"] }, { "type": "simple", "name": "msg", "value_types": ["Slice"] }, { "type": "simple", "name": "sgn", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32091,12 +33796,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32132,12 +33839,14 @@ { "type": "simple", "name": "n", "value_types": ["Integer"] }, { "type": "simple", "name": "msg", "value_types": ["Slice"] }, { "type": "simple", "name": "sig", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32173,12 +33882,14 @@ }, { "type": "simple", "name": "n", "value_types": ["Integer"] }, { "type": "simple", "name": "sgn", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32205,12 +33916,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32237,12 +33950,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32266,12 +33981,16 @@ "value_flow": { "doc_stack": "x - -x", "inputs": { - "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32298,12 +34017,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, { "type": "simple", "name": "s", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32338,12 +34059,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32366,11 +34089,12 @@ }, "value_flow": { "doc_stack": "- zero", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "zero", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32394,10 +34118,16 @@ "value_flow": { "doc_stack": "f - x", "inputs": { - "stack": [{ "type": "simple", "name": "f", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { - "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] } + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32421,12 +34151,16 @@ "value_flow": { "doc_stack": "x - bool", "inputs": { - "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32450,12 +34184,16 @@ "value_flow": { "doc_stack": "x - bool", "inputs": { - "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32482,12 +34220,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32514,12 +34254,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, { "type": "simple", "name": "y", "value_types": ["Slice"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32543,12 +34285,16 @@ "value_flow": { "doc_stack": "x - -x", "inputs": { - "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32575,12 +34321,14 @@ "stack": [ { "type": "simple", "name": "x", "value_types": ["Slice"] }, { "type": "simple", "name": "s", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32615,12 +34363,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32643,11 +34393,12 @@ }, "value_flow": { "doc_stack": "- zero", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "zero", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32671,10 +34422,16 @@ "value_flow": { "doc_stack": "f - x", "inputs": { - "stack": [{ "type": "simple", "name": "f", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "f", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { - "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] } + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32698,12 +34455,16 @@ "value_flow": { "doc_stack": "x - bool", "inputs": { - "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32727,12 +34488,16 @@ "value_flow": { "doc_stack": "x - bool", "inputs": { - "stack": [{ "type": "simple", "name": "x", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32767,12 +34532,14 @@ ] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32795,11 +34562,12 @@ }, "value_flow": { "doc_stack": "- r", - "inputs": { "stack": [] }, + "inputs": { "stack": [], "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "result", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32826,7 +34594,8 @@ "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -32858,7 +34627,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32885,14 +34655,16 @@ "stack": [ { "type": "simple", "name": "c", "value_types": ["Cell"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32919,7 +34691,8 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ @@ -32951,7 +34724,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -32978,14 +34752,16 @@ "stack": [ { "type": "simple", "name": "s", "value_types": ["Slice"] }, { "type": "simple", "name": "n", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] }, { "type": "simple", "name": "z", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -33009,13 +34785,17 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -33039,13 +34819,17 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -33072,12 +34856,14 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -33104,12 +34890,14 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -33133,13 +34921,17 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -33163,13 +34955,17 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -33196,12 +34992,14 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -33228,12 +35026,14 @@ "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] }, { "type": "simple", "name": "x", "value_types": ["Integer"] } - ] + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "b2", "value_types": ["Builder"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -33257,13 +35057,17 @@ "value_flow": { "doc_stack": "s - s' s''", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "s2", "value_types": ["Slice"] }, { "type": "simple", "name": "s3", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -33287,7 +35091,10 @@ "value_flow": { "doc_stack": "s - s' s'' -1 or s 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -33315,7 +35122,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -33339,10 +35147,16 @@ "value_flow": { "doc_stack": "s - t", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { - "stack": [{ "type": "simple", "name": "t", "value_types": ["Tuple"] }] + "stack": [ + { "type": "simple", "name": "t", "value_types": ["Tuple"] } + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -33366,7 +35180,10 @@ "value_flow": { "doc_stack": "s - t -1 or 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -33384,7 +35201,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -33408,13 +35226,17 @@ "value_flow": { "doc_stack": "s - x y", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "y", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -33438,7 +35260,10 @@ "value_flow": { "doc_stack": "s - x y -1 or 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -33465,7 +35290,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -33489,13 +35315,17 @@ "value_flow": { "doc_stack": "s - x s'", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, { "type": "simple", "name": "s2", "value_types": ["Slice"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -33519,7 +35349,10 @@ "value_flow": { "doc_stack": "s - x s' -1 or 0", "inputs": { - "stack": [{ "type": "simple", "name": "s", "value_types": ["Slice"] }] + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, "outputs": { "stack": [ @@ -33542,7 +35375,8 @@ ] }, { "type": "simple", "name": "status", "value_types": ["Integer"] } - ] + ], + "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } @@ -33805,8 +35639,8 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { "stack": [], "registers": [] }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -33841,8 +35675,8 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { "stack": [], "registers": [] }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -33873,8 +35707,8 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { "stack": [], "registers": [] }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -33905,8 +35739,8 @@ }, "value_flow": { "doc_stack": "-", - "inputs": { "stack": [] }, - "outputs": { "stack": [] } + "inputs": { "stack": [], "registers": [] }, + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } }, @@ -33931,9 +35765,10 @@ "inputs": { "stack": [ { "type": "simple", "name": "c", "value_types": ["Integer"] } - ] + ], + "registers": [] }, - "outputs": { "stack": [] } + "outputs": { "stack": [], "registers": [] } }, "control_flow": { "branches": [], "nobranch": true } } From fd2ec0f18834223cde24f0ac0fc405dbaf454cdc Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Thu, 7 Mar 2024 11:44:39 +0700 Subject: [PATCH 17/27] Fix STREF2CONST operands --- cp0.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cp0.json b/cp0.json index f6991d5..6cc9ffe 100644 --- a/cp0.json +++ b/cp0.json @@ -15299,7 +15299,10 @@ "doc_opcode": "CF21", "tlb": "#CF21 c1:^Cell c2:^Cell", "prefix": "CF21", - "operands": [] + "operands": [ + { "name": "c1", "type": "ref", "decode_hint": { "type": "plain" } }, + { "name": "c2", "type": "ref", "decode_hint": { "type": "plain" } } + ] }, "value_flow": { "doc_stack": "b - b╨▓╨ВтДв", From 9680ac4379dd26cb1352ab72a497c238d755faf8 Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Thu, 7 Mar 2024 11:48:07 +0700 Subject: [PATCH 18/27] Fix RUNVM operands --- cp0.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/cp0.json b/cp0.json index 6cc9ffe..20ab80c 100644 --- a/cp0.json +++ b/cp0.json @@ -20350,7 +20350,15 @@ "doc_opcode": "DB4fff", "tlb": "#DB4 flags:(## 12)", "prefix": "DB4", - "operands": [] + "operands": [ + { + "name": "flags", + "type": "uint", + "size": 12, + "min_value": 0, + "max_value": 4095 + } + ] }, "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]", From 2bc31d1e13cdf85b9e90b2241810f1a6cfd0bba0 Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Thu, 7 Mar 2024 11:51:56 +0700 Subject: [PATCH 19/27] Fix GASCONSUMED opcode --- cp0.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cp0.json b/cp0.json index 20ab80c..99e22de 100644 --- a/cp0.json +++ b/cp0.json @@ -31509,9 +31509,9 @@ "fift_examples": [] }, "bytecode": { - "doc_opcode": "F802", - "tlb": "#F802", - "prefix": "F802", + "doc_opcode": "F807", + "tlb": "#F807", + "prefix": "F807", "operands": [] }, "value_flow": { From 49ac8d653e7f89bc4421aee3a2c5df8aa4135e40 Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Thu, 7 Mar 2024 14:04:26 +0700 Subject: [PATCH 20/27] Fix MULRSHIFTMOD operands --- cp0.json | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/cp0.json b/cp0.json index 99e22de..1dec230 100644 --- a/cp0.json +++ b/cp0.json @@ -6227,7 +6227,15 @@ "doc_opcode": "A9BC", "tlb": "#A9BC", "prefix": "A9BC", - "operands": [] + "operands": [ + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } + ] }, "value_flow": { "doc_stack": "x y - q=floor(x*y/2^(tt+1)) r=xy-q*2^(tt+1)", @@ -6261,7 +6269,15 @@ "doc_opcode": "A9BD", "tlb": "#A9BD", "prefix": "A9BD", - "operands": [] + "operands": [ + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } + ] }, "value_flow": { "doc_stack": "x y - q=round(x*y/2^(tt+1)) r=xy-q*2^(tt+1)", @@ -6295,7 +6311,15 @@ "doc_opcode": "A9BE", "tlb": "#A9BE", "prefix": "A9BE", - "operands": [] + "operands": [ + { + "name": "t", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255 + } + ] }, "value_flow": { "doc_stack": "x y - q=ceil(x*y/2^(tt+1)) r=xy-q*2^(tt+1)", From e3c22229ef66973e692a99f44946378196fa3f0c Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Fri, 8 Mar 2024 13:45:32 +0700 Subject: [PATCH 21/27] Replace decode_hint with display_hints --- cp0.json | 145 +++++++++++++++++++++++----------------------------- schema.json | 55 +++++++++++++++----- 2 files changed, 106 insertions(+), 94 deletions(-) diff --git a/cp0.json b/cp0.json index 1dec230..a93ca7d 100644 --- a/cp0.json +++ b/cp0.json @@ -782,7 +782,7 @@ "since_version": 0, "doc": { "category": "stack_complex", - "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`.", + "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": [] @@ -1020,7 +1020,7 @@ "since_version": 0, "doc": { "category": "stack_complex", - "description": "Reverses the order of `s[j+i+1] … s[j]`.", + "description": "Reverses the order of `s[j+i+1] ... s[j]`.", "gas": "26", "fift": "[i+2] [j] REVERSE", "fift_examples": [] @@ -1512,7 +1512,7 @@ "since_version": 0, "doc": { "category": "tuple", - "description": "Creates a new _Tuple_ `t=(x_1, … ,x_n)` containing `n` values `x_1`,..., `x_n`.\n`0 <= n <= 15`", + "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": [] @@ -1817,8 +1817,8 @@ "since_version": 0, "doc": { "category": "tuple", - "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╨▓╨ВтДв|", + "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": [] }, @@ -2049,7 +2049,7 @@ "doc": { "category": "tuple", "description": "Similar to `k SETINDEX`, but with `0 <= k <= 254` taken from the stack.", - "gas": "26+|t╨▓╨ВтДв|", + "gas": "26+|t'|", "fift": "SETINDEXVAR", "fift_examples": [] }, @@ -2116,7 +2116,7 @@ "doc": { "category": "tuple", "description": "Similar to `k SETINDEXQ`, but with `0 <= k <= 254` taken from the stack.", - "gas": "26+|t’|", + "gas": "26+|t'|", "fift": "SETINDEXVARQ", "fift_examples": [] }, @@ -2281,7 +2281,7 @@ "doc": { "category": "tuple", "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’|", + "gas": "26+|t'|", "fift": "TPUSH\nCOMMA", "fift_examples": [] }, @@ -2315,7 +2315,7 @@ "doc": { "category": "tuple", "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’|", + "gas": "26+|t'|", "fift": "TPOP", "fift_examples": [] }, @@ -3086,9 +3086,7 @@ "doc_opcode": "88", "tlb": "#88 c:^Cell", "prefix": "88", - "operands": [ - { "name": "c", "type": "ref", "decode_hint": { "type": "plain" } } - ] + "operands": [{ "name": "c", "type": "ref" }] }, "value_flow": { "doc_stack": "- c", @@ -3116,9 +3114,7 @@ "doc_opcode": "89", "tlb": "#89 c:^Cell", "prefix": "89", - "operands": [ - { "name": "c", "type": "ref", "decode_hint": { "type": "plain" } } - ] + "operands": [{ "name": "c", "type": "ref" }] }, "value_flow": { "doc_stack": "- s", @@ -3150,7 +3146,7 @@ { "name": "c", "type": "ref", - "decode_hint": { "type": "continuation" } + "display_hints": [{ "type": "continuation" }] } ] }, @@ -3194,8 +3190,7 @@ "max_bits": 123, "min_bits": 0, "max_refs": 0, - "min_refs": 0, - "decode_hint": { "type": "plain" } + "min_refs": 0 } ] }, @@ -3237,8 +3232,7 @@ "max_bits": 248, "min_bits": 0, "max_refs": 4, - "min_refs": 1, - "decode_hint": { "type": "plain" } + "min_refs": 1 } ] }, @@ -3265,7 +3259,7 @@ "fift_examples": [ { "fift": "x{} PUSHSLICE x{ABCD1234} PUSHSLICE b{01101} PUSHSLICE", - "description": "Examples of `PUSHSLICE`. `x{}` is an empty slice. `x{...}` is a hexadecimal literal. `b{...}` is a binary literal. More on slice literals [here](https://github.com/Piterden/TON-docs/blob/master/Fift.%20A%20Brief%20Introduction.md#user-content-51-slice-literals). Note that the assembler can replace `PUSHSLICE` with `PUSHREFSLICE` in certain situations (e.g. if there’s not enough space in the current continuation)." + "description": "Examples of `PUSHSLICE`. `x{}` is an empty slice. `x{...}` is a hexadecimal literal. `b{...}` is a binary literal. More on slice literals [here](https://github.com/Piterden/TON-docs/blob/master/Fift.%20A%20Brief%20Introduction.md#user-content-51-slice-literals). Note that the assembler can replace `PUSHSLICE` with `PUSHREFSLICE` in certain situations (e.g. if there's not enough space in the current continuation)." }, { "fift": " PUSHREF PUSHREFSLICE", @@ -3290,8 +3284,7 @@ "max_bits": 1021, "min_bits": 0, "max_refs": 4, - "min_refs": 0, - "decode_hint": { "type": "plain" } + "min_refs": 0 } ] }, @@ -3333,8 +3326,7 @@ "max_bits": 1016, "min_bits": 0, "max_refs": 3, - "min_refs": 0, - "decode_hint": { "type": "plain" } + "min_refs": 0 } ] }, @@ -3365,7 +3357,7 @@ "fift_examples": [ { "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)." + "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)." } ] }, @@ -3383,8 +3375,7 @@ "max_bits": 120, "min_bits": 0, "max_refs": 0, - "min_refs": 0, - "decode_hint": { "type": "plain" } + "min_refs": 0 } ] }, @@ -3864,7 +3855,7 @@ "since_version": 0, "doc": { "category": "arithm_div", - "description": "`q’=round(x/y)`, `r’=x-y*q’`", + "description": "`q'=round(x/y)`, `r'=x-y*q'`", "gas": "26", "fift": "DIVR", "fift_examples": [] @@ -3876,7 +3867,7 @@ "operands": [] }, "value_flow": { - "doc_stack": "x y - q’", + "doc_stack": "x y - q'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -3898,7 +3889,7 @@ "since_version": 0, "doc": { "category": "arithm_div", - "description": "`q’’=ceil(x/y)`, `r’’=x-y*q’’`", + "description": "`q''=ceil(x/y)`, `r''=x-y*q''`", "gas": "26", "fift": "DIVC", "fift_examples": [] @@ -8333,7 +8324,7 @@ "operands": [] }, "value_flow": { - "doc_stack": "x y - q’", + "doc_stack": "x y - q'", "inputs": { "stack": [ { "type": "simple", "name": "x", "value_types": ["Integer"] }, @@ -15288,12 +15279,10 @@ "doc_opcode": "CF20", "tlb": "#CF20 c:^Cell", "prefix": "CF20", - "operands": [ - { "name": "c", "type": "ref", "decode_hint": { "type": "plain" } } - ] + "operands": [{ "name": "c", "type": "ref" }] }, "value_flow": { - "doc_stack": "b - b╨▓╨ВтДв", + "doc_stack": "b - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } @@ -15324,12 +15313,12 @@ "tlb": "#CF21 c1:^Cell c2:^Cell", "prefix": "CF21", "operands": [ - { "name": "c1", "type": "ref", "decode_hint": { "type": "plain" } }, - { "name": "c2", "type": "ref", "decode_hint": { "type": "plain" } } + { "name": "c1", "type": "ref" }, + { "name": "c2", "type": "ref" } ] }, "value_flow": { - "doc_stack": "b - b╨▓╨ВтДв", + "doc_stack": "b - b'", "inputs": { "stack": [ { "type": "simple", "name": "b", "value_types": ["Builder"] } @@ -16143,8 +16132,7 @@ "max_bits": 57, "min_bits": 0, "max_refs": 3, - "min_refs": 0, - "decode_hint": { "type": "plain" } + "min_refs": 0 } ] }, @@ -17879,8 +17867,7 @@ "max_bits": 1018, "min_bits": 0, "max_refs": 0, - "min_refs": 0, - "decode_hint": { "type": "plain" } + "min_refs": 0 } ] }, @@ -17925,8 +17912,7 @@ "max_bits": 1018, "min_bits": 0, "max_refs": 0, - "min_refs": 0, - "decode_hint": { "type": "plain" } + "min_refs": 0 } ] }, @@ -20245,7 +20231,7 @@ { "name": "c", "type": "ref", - "decode_hint": { "type": "continuation" } + "display_hints": [{ "type": "continuation" }] } ] }, @@ -20288,7 +20274,7 @@ { "name": "c", "type": "ref", - "decode_hint": { "type": "continuation" } + "display_hints": [{ "type": "continuation" }] } ] }, @@ -20320,7 +20306,7 @@ { "name": "c", "type": "ref", - "decode_hint": { "type": "continuation" } + "display_hints": [{ "type": "continuation" }] } ] }, @@ -20723,7 +20709,7 @@ { "name": "c", "type": "ref", - "decode_hint": { "type": "continuation" } + "display_hints": [{ "type": "continuation" }] } ] }, @@ -20771,7 +20757,7 @@ { "name": "c", "type": "ref", - "decode_hint": { "type": "continuation" } + "display_hints": [{ "type": "continuation" }] } ] }, @@ -20819,7 +20805,7 @@ { "name": "c", "type": "ref", - "decode_hint": { "type": "continuation" } + "display_hints": [{ "type": "continuation" }] } ] }, @@ -20856,7 +20842,7 @@ { "name": "c", "type": "ref", - "decode_hint": { "type": "continuation" } + "display_hints": [{ "type": "continuation" }] } ] }, @@ -21021,7 +21007,7 @@ { "name": "c", "type": "ref", - "decode_hint": { "type": "continuation" } + "display_hints": [{ "type": "continuation" }] } ] }, @@ -21080,7 +21066,7 @@ { "name": "c", "type": "ref", - "decode_hint": { "type": "continuation" } + "display_hints": [{ "type": "continuation" }] } ] }, @@ -21139,12 +21125,12 @@ { "name": "c1", "type": "ref", - "decode_hint": { "type": "continuation" } + "display_hints": [{ "type": "continuation" }] }, { "name": "c2", "type": "ref", - "decode_hint": { "type": "continuation" } + "display_hints": [{ "type": "continuation" }] } ] }, @@ -21299,7 +21285,7 @@ { "name": "c", "type": "ref", - "decode_hint": { "type": "continuation" } + "display_hints": [{ "type": "continuation" }] } ] }, @@ -21348,7 +21334,7 @@ { "name": "c", "type": "ref", - "decode_hint": { "type": "continuation" } + "display_hints": [{ "type": "continuation" }] } ] }, @@ -22112,7 +22098,7 @@ "doc": { "category": "cont_stack", "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╨▓╨В╤Ь", + "gas": "26+s''", "fift": "[r] [n] SETCONTARGS", "fift_examples": [] }, @@ -22166,7 +22152,7 @@ "doc": { "category": "cont_stack", "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╨▓╨В╤Ь", + "gas": "26+s''", "fift": "[p] RETURNARGS", "fift_examples": [] }, @@ -22197,7 +22183,7 @@ "doc": { "category": "cont_stack", "description": "Similar to `RETURNARGS`, but with Integer `0 <= p <= 255` taken from the stack.", - "gas": "26+s╨▓╨В╤Ь", + "gas": "26+s''", "fift": "RETURNVARARGS", "fift_examples": [] }, @@ -22220,7 +22206,7 @@ "doc": { "category": "cont_stack", "description": "Similar to `SETCONTARGS`, but with `0 <= r <= 255` and `-1 <= n <= 255` taken from the stack.", - "gas": "26+s╨▓╨В╤Ь", + "gas": "26+s''", "fift": "SETCONTVARARGS", "fift_examples": [] }, @@ -22328,7 +22314,7 @@ "doc": { "category": "cont_create", "description": "Equivalent to `ROT` `BLESS` `ROTREV` `SETCONTVARARGS`.", - "gas": "26+s”", + "gas": "26+s''", "fift": "BLESSVARARGS", "fift_examples": [] }, @@ -22776,7 +22762,7 @@ "since_version": 0, "doc": { "category": "cont_registers", - "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`.", + "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": [] @@ -22874,7 +22860,7 @@ "since_version": 0, "doc": { "category": "cont_registers", - "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`.", + "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": [] @@ -22908,7 +22894,7 @@ "since_version": 0, "doc": { "category": "cont_registers", - "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`.", + "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": [] @@ -22942,7 +22928,7 @@ "since_version": 0, "doc": { "category": "cont_registers", - "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`''.", + "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": [] @@ -24203,7 +24189,7 @@ "since_version": 0, "doc": { "category": "dict_serial", - "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.", + "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": [] @@ -27697,7 +27683,7 @@ "since_version": 0, "doc": { "category": "dict_delete", - "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'').", + "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": [] @@ -30885,7 +30871,7 @@ { "name": "d", "type": "ref", - "decode_hint": { "type": "dictionary", "size_var": "n" } + "display_hints": [{ "type": "dictionary", "size_var": "n" }] }, { "name": "n", @@ -31099,7 +31085,7 @@ { "name": "d", "type": "ref", - "decode_hint": { "type": "dictionary", "size_var": "n" } + "display_hints": [{ "type": "dictionary", "size_var": "n" }] }, { "name": "n", @@ -31555,7 +31541,7 @@ "since_version": 0, "doc": { "category": "app_gas", - "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.", + "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": [] @@ -32026,7 +32012,7 @@ "doc": { "category": "app_global", "description": "Assigns `x` to the `k`-th global variable for `0 <= k < 255`.\nEquivalent to `c7 PUSHCTR` `ROTREV` `SETINDEXVARQ` `c7 POPCTR`.", - "gas": "26+|c7’|", + "gas": "26+|c7'|", "fift": "SETGLOBVAR", "fift_examples": [] }, @@ -32058,7 +32044,7 @@ "doc": { "category": "app_global", "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╨▓╨ВтДв|", + "gas": "26+|c7'|", "fift": "[k] SETGLOB", "fift_examples": [] }, @@ -35703,8 +35689,7 @@ "max_bits": 128, "min_bits": 8, "max_refs": 0, - "min_refs": 0, - "decode_hint": { "type": "plain" } + "min_refs": 0 } ] }, @@ -36110,7 +36095,7 @@ "alias_of": "FITS", "doc_fift": "CHKBOOL", "doc_stack": "x - x", - "description": "Checks whether `x` is a “boolean value'' (i.e., either 0 or -1).", + "description": "Checks whether `x` is a ''boolean value'' (i.e., either 0 or -1).", "operands": { "c": 0 } }, { @@ -36214,7 +36199,7 @@ "alias_of": "PUSHCTR", "doc_fift": "c4 PUSHCTR\nc4 PUSH", "doc_stack": "- x", - "description": "Pushes the “global data root'' cell reference, thus enabling access to persistent smart-contract data.", + "description": "Pushes the ''global data root'' cell reference, thus enabling access to persistent smart-contract data.", "operands": { "i": 4 } }, { @@ -36222,7 +36207,7 @@ "alias_of": "POPCTR", "doc_fift": "c4 POPCTR\nc4 POP", "doc_stack": "x -", - "description": "Sets the “global data root'' cell reference, thus allowing modification of persistent smart-contract data.", + "description": "Sets the ''global data root'' cell reference, thus allowing modification of persistent smart-contract data.", "operands": { "i": 4 } }, { @@ -36286,7 +36271,7 @@ "alias_of": "GETPARAM", "doc_fift": "BALANCE", "doc_stack": " - t", - "description": "Returns the remaining balance of the smart contract as a _Tuple_ consisting of an _Integer_ (the remaining Gram balance in nanograms) and a _Maybe Cell_ (a dictionary with 32-bit keys representing the balance of “extra currencies'').\nEquivalent to `7 GETPARAM`.\nNote that `RAW` primitives such as `SENDRAWMSG` do not update this field.", + "description": "Returns the remaining balance of the smart contract as a _Tuple_ consisting of an _Integer_ (the remaining Gram balance in nanograms) and a _Maybe Cell_ (a dictionary with 32-bit keys representing the balance of ''extra currencies'').\nEquivalent to `7 GETPARAM`.\nNote that `RAW` primitives such as `SENDRAWMSG` do not update this field.", "operands": { "i": 7 } }, { diff --git a/schema.json b/schema.json index 452e748..d8a6fb6 100644 --- a/schema.json +++ b/schema.json @@ -309,15 +309,34 @@ "description": "Allowed chars are `a-zA-Z0-9_`, must not begin with digit or underscore and must not end with underscore.", "markdownDescription": "Allowed chars are `a-zA-Z0-9_`, must not begin with digit or underscore and must not end with underscore." }, - "decode_hint": { - "title": "Hint for disassembler to parse operand data", + "display_hint": { + "title": "Display Hint", + "description": "Hint for converting operands between raw values and Asm.fif display format", "oneOf": [ { "type": "object", "additionalProperties": false, "required": ["type"], "properties": { - "type": { "const": "plain" } + "type": { "const": "continuation" } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": ["type", "size_var"], + "properties": { + "type": { "const": "dictionary" }, + "size_var": { "$ref": "#/definitions/var_name" } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": ["type", "value"], + "properties": { + "type": { "const": "add" }, + "value": { "type": "number" } } }, { @@ -325,20 +344,26 @@ "additionalProperties": false, "required": ["type"], "properties": { - "type": { "const": "continuation" } + "type": { "const": "stack" } } }, { "type": "object", "additionalProperties": false, - "required": ["type", "size_var"], + "required": ["type"], "properties": { - "type": { "const": "dictionary" }, - "size_var": { "$ref": "#/definitions/var_name" } + "type": { "const": "register" } } } ] }, + "display_hints": { + "type": "array", + "additionalItems": false, + "title": "Display Hints", + "description": "Set of hints to convert between Asm.fif representation and raw bytecode", + "items": { "$ref": "#/definitions/display_hint" } + }, "operand": { "title": "Operand", "description": "Static instruction parameter serialized to bytecode.", @@ -346,10 +371,11 @@ { "type": "object", "additionalProperties": false, - "required": ["name", "type", "size", "max_value", "min_value"], + "required": ["name", "type", "display_hints", "size", "max_value", "min_value"], "properties": { "name": { "$ref": "#/definitions/var_name" }, "type": { "const": "uint" }, + "display_hints": { "$ref": "#/definitions/display_hints" }, "size": { "type": "number", "title": "Integer size, bits" @@ -367,10 +393,11 @@ { "type": "object", "additionalProperties": false, - "required": ["name", "type", "size", "max_value", "min_value"], + "required": ["name", "type", "display_hints", "size", "max_value", "min_value"], "properties": { "name": { "$ref": "#/definitions/var_name" }, "type": { "const": "int" }, + "display_hints": { "$ref": "#/definitions/display_hints" }, "size": { "type": "number", "title": "Integer size, bits" @@ -397,20 +424,21 @@ { "type": "object", "additionalProperties": false, - "required": ["name", "type", "decode_hint"], + "required": ["name", "type", "display_hints"], "properties": { "name": { "$ref": "#/definitions/var_name" }, "type": { "const": "ref" }, - "decode_hint": { "$ref": "#/definitions/decode_hint" } + "display_hints": { "$ref": "#/definitions/display_hints" } } }, { "type": "object", "additionalProperties": false, - "required": ["name", "type", "bits_length_var_size", "bits_padding", "completion_tag", "decode_hint", "max_bits", "min_bits", "max_refs", "min_refs"], + "required": ["name", "type", "display_hints", "bits_length_var_size", "bits_padding", "completion_tag", "max_bits", "min_bits", "max_refs", "min_refs"], "properties": { "name": { "$ref": "#/definitions/var_name" }, "type": { "const": "subslice" }, + "display_hints": { "$ref": "#/definitions/display_hints" }, "bits_length_var_size": { "type": "number", "title": "Size of bit length operand" @@ -454,8 +482,7 @@ "type": "number", "title": "Min ref size", "description": "Hint for minimum refs available to store for this operand" - }, - "decode_hint": { "$ref": "#/definitions/decode_hint" } + } } } ] From 425087dbc4bf200e250f6f949a7a0bae785cbf05 Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Fri, 8 Mar 2024 13:48:29 +0700 Subject: [PATCH 22/27] Add empty display_hints to each instruction --- cp0.json | 737 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 490 insertions(+), 247 deletions(-) diff --git a/cp0.json b/cp0.json index a93ca7d..28ccd9a 100644 --- a/cp0.json +++ b/cp0.json @@ -45,7 +45,8 @@ "type": "uint", "size": 4, "min_value": 1, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -77,14 +78,16 @@ "type": "uint", "size": 4, "min_value": 1, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -115,7 +118,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -147,7 +151,8 @@ "type": "uint", "size": 4, "min_value": 2, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -178,7 +183,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -209,7 +215,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -240,21 +247,24 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "k", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -285,14 +295,16 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -323,14 +335,16 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -361,14 +375,16 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -399,14 +415,16 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -437,21 +455,24 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "k", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -482,21 +503,24 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "k", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -527,21 +551,24 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "k", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -572,21 +599,24 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "k", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -617,21 +647,24 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "k", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -662,21 +695,24 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "k", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -707,21 +743,24 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "k", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -752,21 +791,24 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "k", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -797,14 +839,16 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -835,7 +879,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -866,7 +911,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -1035,14 +1081,16 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -1073,7 +1121,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -1105,14 +1154,16 @@ "type": "uint", "size": 4, "min_value": 1, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -1430,14 +1481,16 @@ "type": "uint", "size": 4, "min_value": 1, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -1527,7 +1580,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -1573,7 +1627,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -1612,7 +1667,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -1658,7 +1714,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -1704,7 +1761,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -1751,7 +1809,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -1793,7 +1852,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -1832,7 +1892,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -2719,14 +2780,16 @@ "type": "uint", "size": 2, "min_value": 0, - "max_value": 3 + "max_value": 3, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 2, "min_value": 0, - "max_value": 3 + "max_value": 3, + "display_hints": [] } ] }, @@ -2765,21 +2828,24 @@ "type": "uint", "size": 2, "min_value": 0, - "max_value": 3 + "max_value": 3, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 2, "min_value": 0, - "max_value": 3 + "max_value": 3, + "display_hints": [] }, { "name": "k", "type": "uint", "size": 2, "min_value": 0, - "max_value": 3 + "max_value": 3, + "display_hints": [] } ] }, @@ -2818,7 +2884,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -2854,7 +2921,8 @@ "type": "int", "size": 8, "min_value": -128, - "max_value": 127 + "max_value": 127, + "display_hints": [] } ] }, @@ -2890,7 +2958,8 @@ "type": "int", "size": 16, "min_value": -32768, - "max_value": 32767 + "max_value": 32767, + "display_hints": [] } ] }, @@ -2921,7 +2990,9 @@ "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", @@ -2956,7 +3027,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 254 + "max_value": 254, + "display_hints": [] } ] }, @@ -3020,7 +3092,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -3056,7 +3129,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -3086,7 +3160,7 @@ "doc_opcode": "88", "tlb": "#88 c:^Cell", "prefix": "88", - "operands": [{ "name": "c", "type": "ref" }] + "operands": [{ "name": "c", "type": "ref", "display_hints": [] }] }, "value_flow": { "doc_stack": "- c", @@ -3114,7 +3188,7 @@ "doc_opcode": "89", "tlb": "#89 c:^Cell", "prefix": "89", - "operands": [{ "name": "c", "type": "ref" }] + "operands": [{ "name": "c", "type": "ref", "display_hints": [] }] }, "value_flow": { "doc_stack": "- s", @@ -3190,7 +3264,8 @@ "max_bits": 123, "min_bits": 0, "max_refs": 0, - "min_refs": 0 + "min_refs": 0, + "display_hints": [] } ] }, @@ -3232,7 +3307,8 @@ "max_bits": 248, "min_bits": 0, "max_refs": 4, - "min_refs": 1 + "min_refs": 1, + "display_hints": [] } ] }, @@ -3284,7 +3360,8 @@ "max_bits": 1021, "min_bits": 0, "max_refs": 4, - "min_refs": 0 + "min_refs": 0, + "display_hints": [] } ] }, @@ -3326,7 +3403,8 @@ "max_bits": 1016, "min_bits": 0, "max_refs": 3, - "min_refs": 0 + "min_refs": 0, + "display_hints": [] } ] }, @@ -3375,7 +3453,8 @@ "max_bits": 120, "min_bits": 0, "max_refs": 0, - "min_refs": 0 + "min_refs": 0, + "display_hints": [] } ] }, @@ -3612,7 +3691,8 @@ "type": "int", "size": 8, "min_value": -128, - "max_value": 127 + "max_value": 127, + "display_hints": [] } ] }, @@ -3653,7 +3733,8 @@ "type": "int", "size": 8, "min_value": -128, - "max_value": 127 + "max_value": 127, + "display_hints": [] } ] }, @@ -4528,7 +4609,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -4571,7 +4653,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -4614,7 +4697,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -4657,7 +4741,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -4698,7 +4783,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -4739,7 +4825,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -4780,7 +4867,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -4821,7 +4909,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -4862,7 +4951,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -4904,7 +4994,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -4946,7 +5037,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -5843,7 +5935,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -5886,7 +5979,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -5929,7 +6023,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -5972,7 +6067,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -6014,7 +6110,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -6056,7 +6153,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -6098,7 +6196,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -6140,7 +6239,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -6182,7 +6282,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -6224,7 +6325,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -6266,7 +6368,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -6308,7 +6411,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -6773,7 +6877,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -6816,7 +6921,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -6859,7 +6965,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -6902,7 +7009,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -6944,7 +7052,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -6986,7 +7095,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -7028,7 +7138,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -7070,7 +7181,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -7112,7 +7224,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -7154,7 +7267,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -7196,7 +7310,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -7238,7 +7353,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -7280,7 +7396,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -7321,7 +7438,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -7598,7 +7716,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -7639,7 +7758,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -8985,7 +9105,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -9028,7 +9149,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -9071,7 +9193,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -9114,7 +9237,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -9155,7 +9279,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -9196,7 +9321,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -9237,7 +9363,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -9278,7 +9405,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -9319,7 +9447,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -9361,7 +9490,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -9403,7 +9533,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -10299,7 +10430,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -10342,7 +10474,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -10385,7 +10518,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -10428,7 +10562,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -10470,7 +10605,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -10512,7 +10648,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -10554,7 +10691,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -10596,7 +10734,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -10638,7 +10777,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -11205,7 +11345,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -11248,7 +11389,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -11291,7 +11433,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -11334,7 +11477,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -11376,7 +11520,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -11418,7 +11563,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -11460,7 +11606,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -11502,7 +11649,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -11544,7 +11692,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -11586,7 +11735,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -11628,7 +11778,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -11670,7 +11821,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -11712,7 +11864,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -11753,7 +11906,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -12030,7 +12184,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -12071,7 +12226,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -12451,7 +12607,8 @@ "type": "int", "size": 8, "min_value": -128, - "max_value": 127 + "max_value": 127, + "display_hints": [] } ] }, @@ -12492,7 +12649,8 @@ "type": "int", "size": 8, "min_value": -128, - "max_value": 127 + "max_value": 127, + "display_hints": [] } ] }, @@ -12533,7 +12691,8 @@ "type": "int", "size": 8, "min_value": -128, - "max_value": 127 + "max_value": 127, + "display_hints": [] } ] }, @@ -12574,7 +12733,8 @@ "type": "int", "size": 8, "min_value": -128, - "max_value": 127 + "max_value": 127, + "display_hints": [] } ] }, @@ -13339,7 +13499,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -13381,7 +13542,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -13989,7 +14151,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -14031,7 +14194,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -14073,7 +14237,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -14115,7 +14280,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -14157,7 +14323,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -14245,7 +14412,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -14333,7 +14501,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -14421,7 +14590,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -15279,7 +15449,7 @@ "doc_opcode": "CF20", "tlb": "#CF20 c:^Cell", "prefix": "CF20", - "operands": [{ "name": "c", "type": "ref" }] + "operands": [{ "name": "c", "type": "ref", "display_hints": [] }] }, "value_flow": { "doc_stack": "b - b'", @@ -15313,8 +15483,8 @@ "tlb": "#CF21 c1:^Cell c2:^Cell", "prefix": "CF21", "operands": [ - { "name": "c1", "type": "ref" }, - { "name": "c2", "type": "ref" } + { "name": "c1", "type": "ref", "display_hints": [] }, + { "name": "c2", "type": "ref", "display_hints": [] } ] }, "value_flow": { @@ -15755,7 +15925,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -15879,7 +16050,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -16132,7 +16304,8 @@ "max_bits": 57, "min_bits": 0, "max_refs": 3, - "min_refs": 0 + "min_refs": 0, + "display_hints": [] } ] }, @@ -16232,7 +16405,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -16274,7 +16448,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -16384,7 +16559,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -16780,7 +16956,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -16822,7 +16999,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -16864,7 +17042,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -16905,7 +17084,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -16946,7 +17126,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -17010,7 +17191,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -17074,7 +17256,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -17132,7 +17315,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -17190,7 +17374,8 @@ "type": "uint", "size": 3, "min_value": 0, - "max_value": 7 + "max_value": 7, + "display_hints": [] } ] }, @@ -17405,7 +17590,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -17447,7 +17633,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -17488,7 +17675,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -17552,7 +17740,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -17867,7 +18056,8 @@ "max_bits": 1018, "min_bits": 0, "max_refs": 0, - "min_refs": 0 + "min_refs": 0, + "display_hints": [] } ] }, @@ -17912,7 +18102,8 @@ "max_bits": 1018, "min_bits": 0, "max_refs": 0, - "min_refs": 0 + "min_refs": 0, + "display_hints": [] } ] }, @@ -18677,7 +18868,8 @@ "type": "uint", "size": 2, "min_value": 0, - "max_value": 3 + "max_value": 3, + "display_hints": [] } ] }, @@ -19648,14 +19840,16 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "r", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -19711,7 +19905,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -19767,7 +19962,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -19812,7 +20008,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -20004,14 +20201,16 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "r", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -20366,7 +20565,8 @@ "type": "uint", "size": 12, "min_value": 0, - "max_value": 4095 + "max_value": 4095, + "display_hints": [] } ] }, @@ -21190,7 +21390,8 @@ "type": "uint", "size": 5, "min_value": 0, - "max_value": 31 + "max_value": 31, + "display_hints": [] } ] }, @@ -21235,7 +21436,8 @@ "type": "uint", "size": 5, "min_value": 0, - "max_value": 31 + "max_value": 31, + "display_hints": [] } ] }, @@ -21280,7 +21482,8 @@ "type": "uint", "size": 5, "min_value": 0, - "max_value": 31 + "max_value": 31, + "display_hints": [] }, { "name": "c", @@ -21329,7 +21532,8 @@ "type": "uint", "size": 5, "min_value": 0, - "max_value": 31 + "max_value": 31, + "display_hints": [] }, { "name": "c", @@ -22112,14 +22316,16 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "n", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -22166,7 +22372,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -22369,14 +22576,16 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "n", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -22423,7 +22632,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -22460,7 +22670,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -22497,7 +22708,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -22539,7 +22751,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -22576,7 +22789,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -22613,7 +22827,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -22653,7 +22868,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -22693,7 +22909,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -22733,7 +22950,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -23319,7 +23537,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 255 + "max_value": 255, + "display_hints": [] } ] }, @@ -23369,7 +23588,8 @@ "type": "uint", "size": 14, "min_value": 0, - "max_value": 16383 + "max_value": 16383, + "display_hints": [] } ] }, @@ -23419,7 +23639,8 @@ "type": "uint", "size": 14, "min_value": 0, - "max_value": 16383 + "max_value": 16383, + "display_hints": [] } ] }, @@ -23458,7 +23679,8 @@ "type": "uint", "size": 14, "min_value": 0, - "max_value": 16383 + "max_value": 16383, + "display_hints": [] } ] }, @@ -23498,7 +23720,8 @@ "type": "uint", "size": 6, "min_value": 0, - "max_value": 63 + "max_value": 63, + "display_hints": [] } ] }, @@ -23529,7 +23752,8 @@ "type": "uint", "size": 6, "min_value": 0, - "max_value": 63 + "max_value": 63, + "display_hints": [] } ] }, @@ -23565,7 +23789,8 @@ "type": "uint", "size": 6, "min_value": 0, - "max_value": 63 + "max_value": 63, + "display_hints": [] } ] }, @@ -23601,7 +23826,8 @@ "type": "uint", "size": 11, "min_value": 0, - "max_value": 2047 + "max_value": 2047, + "display_hints": [] } ] }, @@ -23632,7 +23858,8 @@ "type": "uint", "size": 11, "min_value": 0, - "max_value": 2047 + "max_value": 2047, + "display_hints": [] } ] }, @@ -23666,7 +23893,8 @@ "type": "uint", "size": 11, "min_value": 0, - "max_value": 2047 + "max_value": 2047, + "display_hints": [] } ] }, @@ -23702,7 +23930,8 @@ "type": "uint", "size": 11, "min_value": 0, - "max_value": 2047 + "max_value": 2047, + "display_hints": [] } ] }, @@ -23739,7 +23968,8 @@ "type": "uint", "size": 11, "min_value": 0, - "max_value": 2047 + "max_value": 2047, + "display_hints": [] } ] }, @@ -23775,7 +24005,8 @@ "type": "uint", "size": 11, "min_value": 0, - "max_value": 2047 + "max_value": 2047, + "display_hints": [] } ] }, @@ -24054,14 +24285,16 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] }, { "name": "r", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -30878,7 +31111,8 @@ "type": "uint", "size": 10, "min_value": 0, - "max_value": 1023 + "max_value": 1023, + "display_hints": [] } ] }, @@ -31092,7 +31326,8 @@ "type": "uint", "size": 10, "min_value": 0, - "max_value": 1023 + "max_value": 1023, + "display_hints": [] } ] }, @@ -31714,7 +31949,8 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -31989,7 +32225,8 @@ "type": "uint", "size": 5, "min_value": 1, - "max_value": 31 + "max_value": 31, + "display_hints": [] } ] }, @@ -32059,7 +32296,8 @@ "type": "uint", "size": 5, "min_value": 1, - "max_value": 31 + "max_value": 31, + "display_hints": [] } ] }, @@ -35647,14 +35885,16 @@ "type": "uint", "size": 4, "min_value": 0, - "max_value": 14 + "max_value": 14, + "display_hints": [] }, { "name": "j", "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, @@ -35689,7 +35929,8 @@ "max_bits": 128, "min_bits": 8, "max_refs": 0, - "min_refs": 0 + "min_refs": 0, + "display_hints": [] } ] }, @@ -35721,7 +35962,8 @@ "type": "uint", "size": 8, "min_value": 0, - "max_value": 239 + "max_value": 239, + "display_hints": [] } ] }, @@ -35753,7 +35995,8 @@ "type": "uint", "size": 4, "min_value": 1, - "max_value": 15 + "max_value": 15, + "display_hints": [] } ] }, From 8d76f4889e331d3a62caf07c461556a111a1ee74 Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Fri, 8 Mar 2024 20:20:27 +0700 Subject: [PATCH 23/27] Work on stack hints --- cp0.json | 92 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/cp0.json b/cp0.json index 28ccd9a..5a9b7a3 100644 --- a/cp0.json +++ b/cp0.json @@ -46,7 +46,7 @@ "size": 4, "min_value": 1, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] } ] }, @@ -79,7 +79,7 @@ "size": 4, "min_value": 1, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "j", @@ -87,7 +87,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] } ] }, @@ -119,7 +119,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "stack" }] } ] }, @@ -152,7 +152,7 @@ "size": 4, "min_value": 2, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] } ] }, @@ -184,7 +184,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] } ] }, @@ -216,7 +216,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] } ] }, @@ -248,7 +248,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "j", @@ -256,7 +256,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "k", @@ -264,7 +264,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] } ] }, @@ -296,7 +296,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "j", @@ -304,7 +304,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] } ] }, @@ -336,7 +336,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "j", @@ -344,7 +344,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] } ] }, @@ -376,7 +376,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "j", @@ -384,7 +384,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }, { "type": "add", "value": -1 }] } ] }, @@ -416,7 +416,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "j", @@ -424,7 +424,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] } ] }, @@ -456,7 +456,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "j", @@ -464,7 +464,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "k", @@ -472,7 +472,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] } ] }, @@ -504,7 +504,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "j", @@ -512,7 +512,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "k", @@ -520,7 +520,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] } ] }, @@ -552,7 +552,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "j", @@ -560,7 +560,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "k", @@ -568,7 +568,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }, { "type": "add", "value": -1 }] } ] }, @@ -600,7 +600,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "j", @@ -608,7 +608,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "k", @@ -616,7 +616,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] } ] }, @@ -648,7 +648,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "j", @@ -656,7 +656,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }, { "type": "add", "value": -1 }] }, { "name": "k", @@ -664,7 +664,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }, { "type": "add", "value": -1 }] } ] }, @@ -696,7 +696,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "j", @@ -704,7 +704,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }, { "type": "add", "value": -1 }] }, { "name": "k", @@ -712,7 +712,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }, { "type": "add", "value": -1 }] } ] }, @@ -744,7 +744,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "j", @@ -752,7 +752,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }, { "type": "add", "value": -1 }] }, { "name": "k", @@ -760,7 +760,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }, { "type": "add", "value": -2 }] } ] }, @@ -792,7 +792,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "j", @@ -800,7 +800,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] }, { "name": "k", @@ -808,7 +808,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }] } ] }, @@ -840,7 +840,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }, { "type": "add", "value": 1 }] }, { "name": "j", @@ -848,7 +848,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "stack" }, { "type": "add", "value": 1 }] } ] }, @@ -880,7 +880,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "stack" }] } ] }, @@ -912,7 +912,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "stack" }] } ] }, From b07ee1948d7ba6610a2682bd9686b3740c551fc0 Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Fri, 8 Mar 2024 22:06:45 +0700 Subject: [PATCH 24/27] Add hints for other instructions --- cp0.json | 246 ++++++++++++++++++++++++++-------------------------- schema.json | 24 +++++ 2 files changed, 147 insertions(+), 123 deletions(-) diff --git a/cp0.json b/cp0.json index 5a9b7a3..a17d3ec 100644 --- a/cp0.json +++ b/cp0.json @@ -2885,7 +2885,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "pushint4" }] } ] }, @@ -3093,7 +3093,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -3130,7 +3130,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -4610,7 +4610,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -4654,7 +4654,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -4698,7 +4698,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -4742,7 +4742,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -4784,7 +4784,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -4826,7 +4826,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -4868,7 +4868,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -4910,7 +4910,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -4952,7 +4952,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -4995,7 +4995,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -5038,7 +5038,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -5936,7 +5936,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -5980,7 +5980,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -6024,7 +6024,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -6068,7 +6068,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -6111,7 +6111,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -6154,7 +6154,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -6197,7 +6197,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -6240,7 +6240,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -6283,7 +6283,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -6326,7 +6326,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -6369,7 +6369,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -6412,7 +6412,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -6878,7 +6878,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -6922,7 +6922,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -6966,7 +6966,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -7010,7 +7010,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -7053,7 +7053,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -7096,7 +7096,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -7139,7 +7139,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -7182,7 +7182,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -7225,7 +7225,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -7268,7 +7268,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -7311,7 +7311,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -7354,7 +7354,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -7397,7 +7397,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -7439,7 +7439,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -7717,7 +7717,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -7759,7 +7759,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -9106,7 +9106,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -9150,7 +9150,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -9194,7 +9194,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -9238,7 +9238,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -9280,7 +9280,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -9322,7 +9322,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -9364,7 +9364,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -9406,7 +9406,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -9448,7 +9448,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -9491,7 +9491,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -9534,7 +9534,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -10431,7 +10431,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -10475,7 +10475,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -10519,7 +10519,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -10563,7 +10563,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -10606,7 +10606,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -10649,7 +10649,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -10692,7 +10692,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -10735,7 +10735,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -10778,7 +10778,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -11346,12 +11346,12 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, "value_flow": { - "doc_stack": "x w z - q=floor((x*2^y+w)/z) r=(x*2^y+w)-zq", + "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"] }, @@ -11390,12 +11390,12 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, "value_flow": { - "doc_stack": "x w z - q=round((x*2^y+w)/z) r=(x*2^y+w)-zq", + "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"] }, @@ -11434,12 +11434,12 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, "value_flow": { - "doc_stack": "x w z - q=ceil((x*2^y+w)/z) r=(x*2^y+w)-zq", + "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"] }, @@ -11478,7 +11478,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -11521,7 +11521,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -11564,7 +11564,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -11607,7 +11607,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -11650,7 +11650,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -11693,7 +11693,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -11736,7 +11736,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -11779,7 +11779,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -11822,7 +11822,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -11865,7 +11865,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -11907,7 +11907,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -12185,7 +12185,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -12227,7 +12227,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -13500,7 +13500,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -13543,7 +13543,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -14152,7 +14152,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -14195,7 +14195,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -14238,7 +14238,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -14281,7 +14281,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -14324,7 +14324,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -14413,7 +14413,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -14502,7 +14502,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -14591,7 +14591,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -15926,7 +15926,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -16051,7 +16051,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -16406,7 +16406,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -16449,7 +16449,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -16560,7 +16560,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -16957,7 +16957,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -17000,7 +17000,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -17043,7 +17043,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -17085,7 +17085,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -17127,7 +17127,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -17192,7 +17192,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -17257,7 +17257,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -17316,7 +17316,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -17375,7 +17375,7 @@ "size": 3, "min_value": 0, "max_value": 7, - "display_hints": [] + "display_hints": [{ "type": "plduz" }] } ] }, @@ -17591,7 +17591,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -17634,7 +17634,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -17676,7 +17676,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -17741,7 +17741,7 @@ "size": 8, "min_value": 0, "max_value": 255, - "display_hints": [] + "display_hints": [{ "type": "add", "value": 1 }] } ] }, @@ -20210,7 +20210,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "optional_nargs" }] } ] }, @@ -22325,7 +22325,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "optional_nargs" }] } ] }, @@ -22585,7 +22585,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "optional_nargs" }] } ] }, @@ -22633,7 +22633,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "register" }] } ] }, @@ -22671,7 +22671,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "register" }] } ] }, @@ -22709,7 +22709,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "register" }] } ] }, @@ -22752,7 +22752,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "register" }] } ] }, @@ -22790,7 +22790,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "register" }] } ] }, @@ -22828,7 +22828,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "register" }] } ] }, @@ -22869,7 +22869,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "register" }] } ] }, @@ -22910,7 +22910,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "register" }] } ] }, @@ -22951,7 +22951,7 @@ "size": 4, "min_value": 0, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "register" }] } ] }, @@ -35996,7 +35996,7 @@ "size": 4, "min_value": 1, "max_value": 15, - "display_hints": [] + "display_hints": [{ "type": "add", "value": -16 }] } ] }, @@ -36099,7 +36099,7 @@ "doc_fift": "[i+1] -ROLL\n[i+1] ROLLREV", "doc_stack": "", "description": "Rotates the top `i+1` stack entries in the other direction.\nEquivalent to `[i+1] 1 BLKSWAP`.", - "operands": {} + "operands": { "j": 0 } }, { "mnemonic": "NIL", diff --git a/schema.json b/schema.json index d8a6fb6..46b0480 100644 --- a/schema.json +++ b/schema.json @@ -354,6 +354,30 @@ "properties": { "type": { "const": "register" } } + }, + { + "type": "object", + "additionalProperties": false, + "required": ["type"], + "properties": { + "type": { "const": "pushint4" } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": ["type"], + "properties": { + "type": { "const": "optional_nargs" } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": ["type"], + "properties": { + "type": { "const": "plduz" } + } } ] }, From 49202dd79fcdb13e05c790f07e181d1c8ab34414 Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Sat, 9 Mar 2024 02:34:44 +0700 Subject: [PATCH 25/27] Move doc_stack and doc_opcode to doc --- cp0.json | 9312 ++++++++++++++++++--------------------------------- schema.json | 37 +- 2 files changed, 3366 insertions(+), 5983 deletions(-) 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", From cf6772b60f3dea7e5d6e310ff2450fe9690758a2 Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Sat, 9 Mar 2024 03:14:34 +0700 Subject: [PATCH 26/27] Update README --- README.md | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index d219e66..6e9e19e 100644 --- a/README.md +++ b/README.md @@ -145,8 +145,9 @@ However, nothing can stop you from just copying `cp0.json` (and `schema.json` if | doc.gas | Free-form description of gas amount used by instruction. Required. | doc.fift | Free-form fift usage description. Required. | doc.fift_examples | Array of usage examples in Fift. Each array element is object with `fift` and `description` keys. Required. +| doc.opcode | Free-form bytecode format description. Required. +| doc.stack | 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). Required. | bytecode | 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). Required. -| bytecode.doc_opcode | Free-form bytecode format description. Required. | bytecode.tlb | TL-b bytecode format description. Required. | bytecode.prefix | Prefix to determine next instruction to parse. It is a hex bitstring as in TL-b (suffixed with `_` if bit length is not divisible by 4, trailing `'1' + '0' * x` must be removed). Required. | bytecode.operands_range_check | In TVM, it is possible for instructions to have overlapping prefixes, so to determine actual instruction it is required to read next `length` bits after prefix as uint `i` and check `from <= i <= to`. Optional, there is no operands check in case of absence. @@ -155,7 +156,6 @@ However, nothing can stop you from just copying `cp0.json` (and `schema.json` if | bytecode.operands[i].type | Type of operand. Must be one of `int`, `uint`, `ref`, `pushint_long`, `subslice`. Types are described below. Required. | bytecode.operands[i].* | Additional options for types, specified below. | value_flow | Information related to usage of stack and registers by instruction. Required. -| value_flow.doc_stack | 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). Required. | value_flow.inputs | Incoming values constraints. Required. | value_flow.inputs.registers | Defines how registers is used by instruction. Instruction must not operate on registers other than defined here. Required. | value_flow.inputs.registers[i] | Register which is access by instruction. @@ -171,6 +171,18 @@ However, nothing can stop you from just copying `cp0.json` (and `schema.json` if | control_flow.nobranch | Can this instruction not perform any of specified branches in certain cases (do not modify cc)? Required. If instruction has no control flow, nobranch is true and branches are empty. ### Operand Types Specification and Examples +`display_hints` property is available for `uint`, `int`, `ref` and `subslice` operand types. For `ref` and `subslice` there is `continuation` and `dictionary` hint types, and for `uint` there is `add`, `stack`, `register`, `pushint4`, `optional_nargs` and `plduz` hints. +| display_hints[i].type | Description +| --------------------- | ----------- +| continuation | Slice from this operand (type = ref, subslice) is a continuation. +| dictionary | Slice from this operand (type = ref, subslice) is a dictionary with key size defined in `size_var` property of a hint. +| add | Some constant must be added in order to correctly display this operand (type = uint). `[cc+1] LDU` <=> `{ "type": "add", "value": 1 }`. +| stack | This operand (type = uint) is a stack entry reference (`s0` for example). +| register | This operand (type = uint) is a register reference (`c0` for example). +| pushint4 | To display this operand (type = uint), 16 must be substracted, but only if operand value > 10. For example, 0xF displayed as -1, 0xA is 10 and 0xB is -5. +| optional_nargs | 0xF is displayed as -1, other values left untouched (type = uint). +| plduz | This operand (type = uint) is displayed as `32*(c+1)`. If value is not divisible by 32 during assembly, error should be raised. + #### uint ```json { @@ -178,10 +190,11 @@ However, nothing can stop you from just copying `cp0.json` (and `schema.json` if "type": "uint", "size": 4, "min_value": 0, - "max_value": 15 + "max_value": 15, + "display_hints": [{ "type": "stack" }, { "type": "add", "value": 1 }] } ``` -Type of unsigned `size`-bit integer. Arguments `size`, `min_value`, `max_value` of type `number` are required. +Type of unsigned `size`-bit integer with valid values in range `min_value`...`max_value`. Arguments `size`, `min_value`, `max_value` of type `number` and `display_hints` of type `array` are required. #### int ```json { @@ -189,21 +202,20 @@ Type of unsigned `size`-bit integer. Arguments `size`, `min_value`, `max_value` "type": "int", "size": 4, "min_value": -8, - "max_value": 7 + "max_value": 7, + "display_hints": [] } ``` -Type of signed `size`-bit integer. Arguments `size`, `min_value`, `max_value` of type `number` are required. +Type of signed `size`-bit integer with valid values in range `min_value`...`max_value`. Arguments `size`, `min_value`, `max_value` of type `number` and `display_hints` of type `array` are required. #### ref ```json { "name": "c", "type": "ref", - "decode_hint": { - "type": "continuation" - } + "display_hints": [{ "type": "continuation" }] } ``` -Type of a single reference. Unlike `subslice` with `refs_add = 1`, should dereference instead of returning empty cell with a single reference. `decode_hint` is a (non-guarantee) hint for decoders for specific types of slices. `decode_hint.type` is `"plain" | "continuation" | "dictionary"`. For `dictionary` type there is `decode_hint.size_var` field, which specifies variable which stores dictionary key length. +Type of a single reference. Unlike `subslice` with `refs_add = 1`, should dereference instead of returning empty cell with a single reference. #### pushint_long ```json { @@ -226,7 +238,7 @@ Special type which currently is used only in `PUSHINT_LONG` instruction. Consist "min_bits": 0, "max_refs": 4, "min_refs": 1, - "decode_hint": { "type": "plain" } + "display_hints": [] } ``` _TLB notation: `r:(## 2) xx:(## 5) c:((r + 1) * ^Cell) ssss:((8 * xx + 1) * Bit)`_ @@ -244,7 +256,7 @@ Loads `r` uint of size `refs_length_var_size` (if present), `x` uint of size `bi | min_bits | Hint for minimum bits available to store for this operand. Required. | max_refs | Hint for maximum refs available to store for this operand. Required. | min_refs | Hint for minimum refs available to store for this operand. Required. -| decode_hint | Hint for decoders for specific types of slices. Required. `decode_hint.type` is `"plain" | "continuation" | "dictionary"`. For `dictionary` type there is `decode_hint.size_var` field, which specifies variable which stores dictionary key length. +| display_hints | Set of hints for converters between Asm.fif and bytecode representations. Required. ### Stack Entry Specification and Examples From 40071f2e142dfe2c8851676178fbf7ddfe3de129 Mon Sep 17 00:00:00 2001 From: Vladimir Lebedev Date: Sat, 9 Mar 2024 03:19:06 +0700 Subject: [PATCH 27/27] Update README --- README.md | 161 +++++++++++++++++++++++++----------------------------- 1 file changed, 73 insertions(+), 88 deletions(-) diff --git a/README.md b/README.md index 6e9e19e..8a76fe4 100644 --- a/README.md +++ b/README.md @@ -36,100 +36,85 @@ However, nothing can stop you from just copying `cp0.json` (and `schema.json` if ```json [ { - "mnemonic": "LDU", - "doc": { - "category": "cell_parse", - "description": "Loads an unsigned `cc+1`-bit integer `x` from _Slice_ `s`.", - "gas": "26", - "fift": "[cc+1] LDU" - }, - "bytecode": { - "doc_opcode": "D3cc", - "tlb": "#D3 cc:uint8", - "prefix": "D3", - "operands": [ - { - "name": "c", - "loader": "uint", - "loader_args": { - "size": 8 - } - } - ] + "mnemonic": "LDU", + "since_version": 0, + "doc": { + "category": "cell_parse", + "description": "Loads an unsigned `cc+1`-bit integer `x` from _Slice_ `s`.", + "gas": "26", + "fift": "[cc+1] LDU", + "fift_examples": [], + "opcode": "D3cc", + "stack": "s - x s'" + }, + "bytecode": { + "tlb": "#D3 cc:uint8", + "prefix": "D3", + "operands": [ + { + "name": "c", + "type": "uint", + "size": 8, + "min_value": 0, + "max_value": 255, + "display_hints": [{ "type": "add", "value": 1 }] + } + ] + }, + "value_flow": { + "inputs": { + "stack": [ + { "type": "simple", "name": "s", "value_types": ["Slice"] } + ], + "registers": [] }, - "value_flow": { - "doc_stack": "s - x s'", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "s", - "value_types": ["Slice"] - } - ] - }, - "outputs": { - "stack": [ - { - "type": "simple", - "name": "x", - "value_types": ["Integer"] - }, - { - "type": "simple", - "name": "s2", - "value_types": ["Slice"] - } - ] - } + "outputs": { + "stack": [ + { "type": "simple", "name": "x", "value_types": ["Integer"] }, + { "type": "simple", "name": "s2", "value_types": ["Slice"] } + ], + "registers": [] } + }, + "control_flow": { "branches": [], "nobranch": true } }, { - "mnemonic": "EXECUTE", - "doc": { - "category": "cont_basic", - "description": "_Calls_, or _executes_, continuation `c`.", - "gas": "18", - "fift": "EXECUTE\nCALLX" + "mnemonic": "EXECUTE", + "since_version": 0, + "doc": { + "category": "cont_basic", + "description": "_Calls_, or _executes_, continuation `c`.", + "gas": "18", + "fift": "EXECUTE\nCALLX", + "fift_examples": [], + "opcode": "D8", + "stack": "c - " + }, + "bytecode": { "tlb": "#D8", "prefix": "D8", "operands": [] }, + "value_flow": { + "inputs": { + "stack": [ + { "type": "simple", "name": "c", "value_types": ["Continuation"] } + ], + "registers": [] }, - "bytecode": { - "doc_opcode": "D8", - "tlb": "#D8", - "prefix": "D8", - "operands": [] - }, - "value_flow": { - "doc_stack": "c - ", - "inputs": { - "stack": [ - { - "type": "simple", - "name": "c", - "value_types": ["Continuation"] - } - ] - }, - "outputs": { - "stack": [ - ] + "outputs": { "stack": [], "registers": [] } + }, + "control_flow": { + "branches": [ + { + "type": "variable", + "var_name": "c", + "save": { + "c0": { + "type": "cc", + "save": { "c0": { "type": "register", "index": 0 } } + } } - }, - "control_flow": { - "branches": [ - { - "type": "variable", - "var_name": "c", - "save": { - "c0": { - "type": "cc", - "save": { - "c0": { "type": "register", "index": 0 } - } - } - } - } - ] - } + } + ], + "nobranch": false + } } ] ```