In these instructions, the /immediate
variants represent their
indexes or counts as immediates; otherwise these values are unboxed u64
locals.
s12:dst s12:count
¶s12:dst c12:count
¶Allocate a fresh GC-traced object consisting of count words and store it into dst.
s8:dst s8:obj s8:idx
¶s8:dst s8:obj c8:idx
¶Load the SCM
object at word offset idx from local
obj, and store it to dst.
s8:dst s8:idx s8:obj
¶s8:dst c8:idx s8:obj
¶Store the scm
local val into object obj at word
offset idx.
s8:dst s8:obj c8:tag
¶Load the first word of obj, subtract the immediate tag, and store the
resulting SCM
to dst.
s8:obj c8:tag s8:val
¶Set the first word of obj to the unpacked bits of the scm
value val plus the immediate value tag.
s8:dst s8:obj s8:idx
¶s8:dst s8:obj c8:idx
¶Load the word at offset idx from local obj, and store it to
the u64
local dst.
s8:dst s8:idx s8:obj
¶s8:dst c8:idx s8:obj
¶Store the u64
local val into object obj at word
offset idx.
s8:dst s8:obj c8:idx
¶Load the pointer at offset idx from local obj, and store it to the unboxed pointer local dst.
s8:dst c8:idx s8:obj
¶Store the unboxed pointer local val into object obj at word offset idx.
s8:dst s8:obj c8:idx
¶Compute the address of word offset idx from local obj, and store it to dst.