return bottom + depth - sizeof(cell);
}
-void factor_vm::set_datastack(context* ctx, array* array) {
- ctx->datastack = array_to_stack(array, ctx->datastack_seg->start);
-}
-
void factor_vm::primitive_set_datastack() {
- set_datastack(ctx, untag_check<array>(ctx->pop()));
-}
-
-void factor_vm::set_retainstack(context* ctx, array* array) {
- ctx->retainstack = array_to_stack(array, ctx->retainstack_seg->start);
+ array* arr = untag_check<array>(ctx->pop());
+ ctx->datastack = array_to_stack(arr, ctx->datastack_seg->start);
}
void factor_vm::primitive_set_retainstack() {
- set_retainstack(ctx, untag_check<array>(ctx->pop()));
+ array* arr = untag_check<array>(ctx->pop());
+ ctx->retainstack = array_to_stack(arr, ctx->retainstack_seg->start);
}
/* Used to implement call( */
cell retainstack_to_array(context* ctx);
void primitive_retainstack_for();
cell array_to_stack(array* array, cell bottom);
- void set_datastack(context* ctx, array* array);
void primitive_set_datastack();
- void set_retainstack(context* ctx, array* array);
void primitive_set_retainstack();
void primitive_check_datastack();
void primitive_load_locals();