{
/* push a new tuple on the stack */
-tuple *allot_tuple(cell layout_)
+tuple *factorvm::allot_tuple(cell layout_)
{
gc_root<tuple_layout> layout(layout_);
gc_root<tuple> t(allot<tuple>(tuple_size(layout.untagged())));
return t.untagged();
}
-PRIMITIVE(tuple)
+tuple *allot_tuple(cell layout_)
+{
+ return vm->allot_tuple(layout_);
+}
+
+inline void factorvm::vmprim_tuple()
{
gc_root<tuple_layout> layout(dpop());
tuple *t = allot_tuple(layout.value());
dpush(tag<tuple>(t));
}
+PRIMITIVE(tuple)
+{
+ PRIMITIVE_GETVM()->vmprim_tuple();
+}
+
/* push a new tuple on the stack, filling its slots from the stack */
-PRIMITIVE(tuple_boa)
+inline void factorvm::vmprim_tuple_boa()
{
gc_root<tuple_layout> layout(dpop());
gc_root<tuple> t(allot_tuple(layout.value()));
dpush(t.value());
}
+PRIMITIVE(tuple_boa)
+{
+ PRIMITIVE_GETVM()->vmprim_tuple_boa();
+}
+
}
inline void vmprim_byte_array();
inline void vmprim_uninitialized_byte_array();
inline void vmprim_resize_byte_array();
+
+ //tuples
+ tuple *allot_tuple(cell layout_);
+ inline void vmprim_tuple();
+ inline void vmprim_tuple_boa();
// next method here: