// Hand-optimized TASM baseline: vm.io.mem
//
// RAM intrinsics โ€” Triton VM memory operations.

// read(addr) -> Field
// read_mem 1: [addr] -> [value, addr-1]
vm_io_mem__read:
    read_mem 1
    pop 1
    return

// write(addr, val)
// write_mem 1: [addr, val] -> [addr+1]
// Stack: [addr, val] with val on top -> swap, write, pop
vm_io_mem__write:
    swap 1
    write_mem 1
    pop 1
    return

// read_block(addr) -> Digest (5 fields)
// read_mem 5: [addr] -> [v4 v3 v2 v1 v0, addr-5]
vm_io_mem__read_block:
    read_mem 5
    pop 1
    return

// write_block(addr, d: Digest)
// Stack: [addr, d0, d1, d2, d3, d4] with d4 on top
// Need addr on top for write_mem 5
vm_io_mem__write_block:
    swap 5
    write_mem 5
    pop 1
    return

Neighbours