NEXT;
}
+VM_DEFINE_INSTRUCTION (26, long_local_ref, "long-local-ref", 2, 0, 1)
+{
+ unsigned int i = FETCH ();
+ i <<= 8;
+ i += FETCH ();
+ PUSH (LOCAL_REF (i));
+ ASSERT_BOUND (*sp);
+ NEXT;
+}
+
VM_DEFINE_INSTRUCTION (27, variable_ref, "variable-ref", 0, 0, 1)
{
SCM x = *sp;
NEXT;
}
+VM_DEFINE_INSTRUCTION (31, long_local_set, "long-local-set", 2, 1, 0)
+{
+ unsigned int i = FETCH ();
+ i <<= 8;
+ i += FETCH ();
+ LOCAL_SET (i, *sp);
+ DROP ();
+ NEXT;
+}
+
VM_DEFINE_INSTRUCTION (32, variable_set, "variable-set", 0, 1, 0)
{
VARIABLE_SET (sp[0], sp[-1]);
NEXT;
}
+VM_DEFINE_INSTRUCTION (64, make_variable, "make-variable", 0, 0, 1)
+{
+ SYNC_BEFORE_GC ();
+ /* fixme underflow */
+ PUSH (scm_cell (scm_tc7_variable, SCM_UNPACK (SCM_UNDEFINED)));
+ NEXT;
+}
+
/*
(defun renumber-ops ()