Skip to content

Instruction Set

Nick Pope edited this page Jun 19, 2013 · 26 revisions

Virtual Machine Instruction Set

NID Manipulations

add

Add two numeric NIDs together and put result into dest.

add $<dest> [$]<a> [$]<b>

sub

Subtract two numeric NIDs (b from a) and put result into dest.

sub $<dest> [$]<a> [$]<b>

div

div $<dest> [$]<a> [$]<b>

mul

mul $<dest> [$]<a> [$]<b>

shiftl

Shift value left by n bits and put into dest.

shiftl $<dest> [$]<value> [$]<n>

shiftr

Shift value right by n bits and put into dest.

shiftr $<dest> [$]<value> [$]<n>

and

and $<dest> [$]<a> [$]<b>

or

or $<dest> [$]<a> [$]<b>

xor

xor $<dest> [$]<a> [$]<b>

neg

`neg $ [$]

inc

inc $<value>

dec

dec $<value>

clear

Sets value to null.

clear $<value>

int

Convert value to an integer and put into dest.

int $<dest> [$]<value>

float

Convert value to a float and put into dest.

float $<dest> [$]<value>

Data

copy

Copy a value from source into dest.

copy $<dest> [$]<source>

path

Follow a path through the graph, starting at element and putting the result into dest. Elements may be repeated any number of times and are separated by dots.

path $<dest> [$]<element>[.]*

ret

Return value.

ret [$]<value>

Branching

jump

jump :<label>

jeq

jeq :<label> [$]<a> [$]<b>

jneq

jneq :<label> [$]<a> [$]<b>

jleq

jgeq

jlt

jgt

Hypergraph Access

read

write

dep

new

delete

Clone this wiki locally