// set global varable static inline void _vm_setglobal(struct a2_vm* vm_p){ struct a2_obj* _k = _getvalue(vm_p, ir_gb(curr_ir)); struct a2_obj* _v = _getvalue(vm_p, ir_gc(curr_ir)); struct a2_obj* _d = _getvalue(vm_p, ir_ga(curr_ir)); *_d = *a2_set_envglobal(vm_p->env_p, _k, _v); curr_pc++; }
// set global A2_API inline void a2_setglobal(struct a2_state* state){ int top = a2_top(state)-1; struct a2_obj* v = a2_getcstack(state->env_p, top); struct a2_obj* k = a2_getcstack(state->env_p, top-1); check_key(k); a2_set_envglobal(state->env_p, k, v); a2_topset(state, top-1); }