You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/vocs/docs/pages/specs/openvm/isa.mdx
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,6 +35,7 @@ OpenVM depends on the following parameters, some of which are fixed and some of
35
35
|`addr_space_height`| The base 2 log of the number of writable address spaces supported. | Configurable, must satisfy `addr_space_height <= F::bits() - 2`|
36
36
|`pointer_max_bits`| The maximum number of bits in a pointer. | Configurable, must satisfy `pointer_max_bits <= F::bits() - 2`|
37
37
|`num_public_values`| The number of user public values. | Configurable. If continuation is enabled, it must equal `8` times a power of two(which is nonzero). |
38
+
|`MAX_HINT_BUFFER_WORDS_BITS`| The maximum number of bits for hint buffer word count. This determines `MAX_HINT_BUFFER_WORDS = 2^MAX_HINT_BUFFER_WORDS_BITS - 1` = 262,143 words (≈1MB), the maximum words per `HINT_BUFFER_RV32` instruction. | Fixed to 18. |
38
39
39
40
We explain these parameters in subsequent sections.
| HINT_STOREW_RV32 |`_,b,_,1,2`|`[r32{0}(b):4]_2 = next 4 bytes from hint stream`. Only valid if next 4 values in hint stream are bytes. |
431
-
| HINT_BUFFER_RV32 |`a,b,_,1,2`|`[r32{0}(b):4 * l]_2 = next 4 * l bytes from hint stream` where `l = r32{0}(a)`. Only valid if next `4 * l` values in hint stream are bytes. Very important: `l` should not be 0. The pointer address `r32{0}(b)` does not need to be a multiple of `4`. |
432
+
| HINT_BUFFER_RV32 |`a,b,_,1,2`|`[r32{0}(b):4 * l]_2 = next 4 * l bytes from hint stream` where `l = r32{0}(a)`. Only valid if next `4 * l` values in hint stream are bytes. `l` must be non-zero and <=`MAX_HINT_BUFFER_WORDS`(262,143words≈1MB).Thepointeraddress`r32{0}(b)`doesnotneedtobeamultipleof`4`.|
432
433
| REVEAL_RV32 |`a,b,c,1,3,_,g`| Pseudo-instruction for `STOREW_RV32 a,b,c,1,3,_,g` writing to the user IO address space `3`. Only valid when continuations are enabled. |
433
434
435
+
> **Note:** The `MAX_HINT_BUFFER_WORDS` bound on `HINT_BUFFER_RV32` is enforced by both the executor and AIR constraints. The SDK's `hint_buffer_chunked` function automatically splits larger reads into multiple `HINT_BUFFER_RV32` instructions.
436
+
434
437
#### Phantom Sub-Instructions
435
438
436
439
The RV32IM extension defines the following phantom sub-instructions.
0 commit comments