1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

rb_execution_context_t: move stack, stack_size and cfp from rb_thread_t

The goal is to reduce rb_context_t and rb_fiber_t size
by removing the need to store the entire rb_thread_t in
there.

[ruby-core:81045] Work-in-progress: soon, we will move more fields here.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
normal 2017-05-09 05:06:41 +00:00
parent 62b885b090
commit 9d09240d9e
21 changed files with 236 additions and 224 deletions

View file

@ -88,7 +88,7 @@ vm_exec_core(rb_thread_t *th, VALUE initial)
#undef RESTORE_REGS
#define RESTORE_REGS() \
{ \
VM_REG_CFP = th->cfp; \
VM_REG_CFP = th->ec.cfp; \
reg_pc = reg_cfp->pc; \
}
@ -106,7 +106,7 @@ vm_exec_core(rb_thread_t *th, VALUE initial)
return (VALUE)insns_address_table;
}
#endif
reg_cfp = th->cfp;
reg_cfp = th->ec.cfp;
reg_pc = reg_cfp->pc;
#if OPT_STACK_CACHING
@ -146,7 +146,7 @@ rb_vm_get_insns_address_table(void)
static VALUE
vm_exec_core(rb_thread_t *th, VALUE initial)
{
register rb_control_frame_t *reg_cfp = th->cfp;
register rb_control_frame_t *reg_cfp = th->ec.cfp;
while (1) {
reg_cfp = ((rb_insn_func_t) (*GET_PC()))(th, reg_cfp);