-
Notifications
You must be signed in to change notification settings - Fork 0
Instruction Set
Add two numeric NIDs together and put result into dest.
add $<dest> [$]<a> [$]<b>
Subtract two numeric NIDs (b from a) and put result into dest.
sub $<dest> [$]<a> [$]<b>
div $<dest> [$]<a> [$]<b>
mul $<dest> [$]<a> [$]<b>
Shift value left by n bits and put into dest.
shiftl $<dest> [$]<value> [$]<n>
Shift value right by n bits and put into dest.
shiftr $<dest> [$]<value> [$]<n>
and $<dest> [$]<a> [$]<b>
or $<dest> [$]<a> [$]<b>
xor $<dest> [$]<a> [$]<b>
`neg $ [$]
inc $<value>
dec $<value>
Sets value to null.
clear $<value>
Convert value to an integer and put into dest.
int $<dest> [$]<value>
Convert value to a float and put into dest.
float $<dest> [$]<value>
Copy a value from source into dest.
copy $<dest> [$]<source>
Return value.
ret [$]<value>
jump :<label>
jeq :<label> [$]<a> [$]<b>
jneq :<label> [$]<a> [$]<b>
jleq :<label> [$]<a> [$]<b>
jgeq :<label> [$]<a> [$]<b>
jlt :<label> [$]<a> [$]<b>
jgt :<label> [$]<a> [$]<b>
Read a single value from the t1 t2 HARC into dest.
read $<dest> [$]<t1> [$]<t2>
Define the HARC t1 t2 as value. The value may be a constant or definition.
define [$]<t1> [$]<t2> [$]<value>
Add a dependency where a1 a2 depends upon b1 b2.
dep [$]<a1> [$]<a2> [$]<b1> [$]<b2>
Create a new NID in dest which matches the kind NID.
new $<dest> [$]<kind>
Delete the HARC t1 t2.
delete [$]<t1> [$]<t2>
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>[.]*