added tuples fns to vm
parent
fa46b90197
commit
dbbc9bb2b1
|
@ -4,7 +4,7 @@ namespace factor
|
|||
{
|
||||
|
||||
/* 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())));
|
||||
|
@ -12,7 +12,12 @@ tuple *allot_tuple(cell layout_)
|
|||
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());
|
||||
|
@ -23,8 +28,13 @@ PRIMITIVE(tuple)
|
|||
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()));
|
||||
|
@ -34,4 +44,9 @@ PRIMITIVE(tuple_boa)
|
|||
dpush(t.value());
|
||||
}
|
||||
|
||||
PRIMITIVE(tuple_boa)
|
||||
{
|
||||
PRIMITIVE_GETVM()->vmprim_tuple_boa();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -231,6 +231,11 @@ struct factorvm {
|
|||
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:
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue