mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
rename rb_execution_context_t::stack(_size) to vm_stack(_size).
* vm_core.h: Ruby processes run with two stacks, a machine stack and a VM stack. To make it clear, this fix renames rb_execution_context_t::stack(_size) to vm_stack(_size). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
25213719c2
commit
6881279149
9 changed files with 68 additions and 68 deletions
54
cont.c
54
cont.c
|
@ -87,8 +87,8 @@ typedef struct rb_context_struct {
|
|||
VALUE value;
|
||||
VALUE *vm_stack;
|
||||
#ifdef CAPTURE_JUST_VALID_VM_STACK
|
||||
size_t vm_stack_slen; /* length of stack (head of th->ec.stack) */
|
||||
size_t vm_stack_clen; /* length of control frames (tail of th->ec.stack) */
|
||||
size_t vm_stack_slen; /* length of stack (head of th->ec.svm_tack) */
|
||||
size_t vm_stack_clen; /* length of control frames (tail of th->ec.vm_stack) */
|
||||
#endif
|
||||
struct {
|
||||
VALUE *stack;
|
||||
|
@ -265,7 +265,7 @@ cont_free(void *ptr)
|
|||
rb_context_t *cont = ptr;
|
||||
|
||||
RUBY_FREE_ENTER("cont");
|
||||
RUBY_FREE_UNLESS_NULL(cont->saved_thread.ec.stack);
|
||||
RUBY_FREE_UNLESS_NULL(cont->saved_thread.ec.vm_stack);
|
||||
#if FIBER_USE_NATIVE
|
||||
if (cont->type == CONTINUATION_CONTEXT) {
|
||||
/* cont */
|
||||
|
@ -324,7 +324,7 @@ cont_memsize(const void *ptr)
|
|||
#ifdef CAPTURE_JUST_VALID_VM_STACK
|
||||
size_t n = (cont->vm_stack_slen + cont->vm_stack_clen);
|
||||
#else
|
||||
size_t n = cont->saved_thread.ec.stack_size;
|
||||
size_t n = cont->saved_thread.ec.vm_stack_size;
|
||||
#endif
|
||||
size += n * sizeof(*cont->vm_stack);
|
||||
}
|
||||
|
@ -346,10 +346,10 @@ fiber_verify(const rb_fiber_t *fib)
|
|||
#if VM_CHECK_MODE > 0
|
||||
switch (fib->status) {
|
||||
case FIBER_RESUMED:
|
||||
VM_ASSERT(fib->cont.saved_thread.ec.stack == NULL);
|
||||
VM_ASSERT(fib->cont.saved_thread.ec.vm_stack == NULL);
|
||||
break;
|
||||
case FIBER_SUSPENDED:
|
||||
VM_ASSERT(fib->cont.saved_thread.ec.stack != NULL);
|
||||
VM_ASSERT(fib->cont.saved_thread.ec.vm_stack != NULL);
|
||||
break;
|
||||
case FIBER_CREATED:
|
||||
case FIBER_TERMINATED:
|
||||
|
@ -531,17 +531,17 @@ cont_capture(volatile int *volatile stat)
|
|||
contval = cont->self;
|
||||
|
||||
#ifdef CAPTURE_JUST_VALID_VM_STACK
|
||||
cont->vm_stack_slen = ec->cfp->sp - ec->stack;
|
||||
cont->vm_stack_clen = ec->stack + ec->stack_size - (VALUE*)ec->cfp;
|
||||
cont->vm_stack_slen = ec->cfp->sp - ec->vm_stack;
|
||||
cont->vm_stack_clen = ec->vm_stack + ec->vm_stack_size - (VALUE*)ec->cfp;
|
||||
cont->vm_stack = ALLOC_N(VALUE, cont->vm_stack_slen + cont->vm_stack_clen);
|
||||
MEMCPY(cont->vm_stack, ec->stack, VALUE, cont->vm_stack_slen);
|
||||
MEMCPY(cont->vm_stack, ec->vm_stack, VALUE, cont->vm_stack_slen);
|
||||
MEMCPY(cont->vm_stack + cont->vm_stack_slen,
|
||||
(VALUE*)ec->cfp, VALUE, cont->vm_stack_clen);
|
||||
#else
|
||||
cont->vm_stack = ALLOC_N(VALUE, ec->stack_size);
|
||||
MEMCPY(cont->vm_stack, ec->stack, VALUE, ec->stack_size);
|
||||
cont->vm_stack = ALLOC_N(VALUE, ec->vm_stack_size);
|
||||
MEMCPY(cont->vm_stack, ec->vm_stack, VALUE, ec->vm_stack_size);
|
||||
#endif
|
||||
cont->saved_thread.ec.stack = NULL;
|
||||
cont->saved_thread.ec.vm_stack = NULL;
|
||||
|
||||
cont_save_machine_stack(th, cont);
|
||||
|
||||
|
@ -590,16 +590,16 @@ cont_restore_thread(rb_context_t *cont)
|
|||
th->fiber = sth->fiber;
|
||||
fib = th->fiber ? th->fiber : th->root_fiber;
|
||||
|
||||
if (fib && fib->cont.saved_thread.ec.stack) {
|
||||
th->ec.stack_size = fib->cont.saved_thread.ec.stack_size;
|
||||
th->ec.stack = fib->cont.saved_thread.ec.stack;
|
||||
if (fib && fib->cont.saved_thread.ec.vm_stack) {
|
||||
th->ec.vm_stack_size = fib->cont.saved_thread.ec.vm_stack_size;
|
||||
th->ec.vm_stack = fib->cont.saved_thread.ec.vm_stack;
|
||||
}
|
||||
#ifdef CAPTURE_JUST_VALID_VM_STACK
|
||||
MEMCPY(th->ec.stack, cont->vm_stack, VALUE, cont->vm_stack_slen);
|
||||
MEMCPY(th->ec.stack + sth->ec.stack_size - cont->vm_stack_clen,
|
||||
MEMCPY(th->ec.vm_stack, cont->vm_stack, VALUE, cont->vm_stack_slen);
|
||||
MEMCPY(th->ec.vm_stack + sth->ec.vm_stack_size - cont->vm_stack_clen,
|
||||
cont->vm_stack + cont->vm_stack_slen, VALUE, cont->vm_stack_clen);
|
||||
#else
|
||||
MEMCPY(th->ec.stack, cont->vm_stack, VALUE, sth->ec.stack_size);
|
||||
MEMCPY(th->ec.vm_stack, cont->vm_stack, VALUE, sth->ec.vm_stack_size);
|
||||
#endif
|
||||
|
||||
/* other members of ec */
|
||||
|
@ -617,11 +617,11 @@ cont_restore_thread(rb_context_t *cont)
|
|||
else {
|
||||
/* fiber */
|
||||
th->ec = sth->ec;
|
||||
sth->ec.stack = NULL;
|
||||
sth->ec.vm_stack = NULL;
|
||||
th->fiber = (rb_fiber_t*)cont;
|
||||
}
|
||||
|
||||
VM_ASSERT(th->ec.stack != NULL);
|
||||
VM_ASSERT(th->ec.vm_stack != NULL);
|
||||
VM_ASSERT(sth->status == THREAD_RUNNABLE);
|
||||
}
|
||||
|
||||
|
@ -1258,12 +1258,12 @@ fiber_init(VALUE fibval, VALUE proc)
|
|||
/* initialize cont */
|
||||
cont->vm_stack = 0;
|
||||
|
||||
th->ec.stack = NULL;
|
||||
th->ec.stack_size = 0;
|
||||
th->ec.vm_stack = NULL;
|
||||
th->ec.vm_stack_size = 0;
|
||||
|
||||
th->ec.stack_size = cth->vm->default_params.fiber_vm_stack_size / sizeof(VALUE);
|
||||
th->ec.stack = ALLOC_N(VALUE, th->ec.stack_size);
|
||||
th->ec.cfp = (void *)(th->ec.stack + th->ec.stack_size);
|
||||
th->ec.vm_stack_size = cth->vm->default_params.fiber_vm_stack_size / sizeof(VALUE);
|
||||
th->ec.vm_stack = ALLOC_N(VALUE, th->ec.vm_stack_size);
|
||||
th->ec.cfp = (void *)(th->ec.vm_stack + th->ec.vm_stack_size);
|
||||
|
||||
rb_vm_push_frame(th,
|
||||
NULL,
|
||||
|
@ -1272,7 +1272,7 @@ fiber_init(VALUE fibval, VALUE proc)
|
|||
VM_BLOCK_HANDLER_NONE,
|
||||
0, /* specval */
|
||||
NULL, /* pc */
|
||||
th->ec.stack, /* sp */
|
||||
th->ec.vm_stack, /* sp */
|
||||
0, /* local_size */
|
||||
0);
|
||||
|
||||
|
@ -1374,7 +1374,7 @@ fiber_current(void)
|
|||
if (th->fiber == 0) {
|
||||
rb_fiber_t *fib = root_fiber_alloc(th);
|
||||
/* Running thread object has stack management responsibility */
|
||||
fib->cont.saved_thread.ec.stack = NULL;
|
||||
fib->cont.saved_thread.ec.vm_stack = NULL;
|
||||
}
|
||||
return th->fiber;
|
||||
}
|
||||
|
|
2
eval.c
2
eval.c
|
@ -1127,7 +1127,7 @@ previous_frame(rb_thread_t *th)
|
|||
{
|
||||
rb_control_frame_t *prev_cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(th->ec.cfp);
|
||||
/* check if prev_cfp can be accessible */
|
||||
if ((void *)(th->ec.stack + th->ec.stack_size) == (void *)(prev_cfp)) {
|
||||
if ((void *)(th->ec.vm_stack + th->ec.vm_stack_size) == (void *)(prev_cfp)) {
|
||||
return 0;
|
||||
}
|
||||
return prev_cfp;
|
||||
|
|
4
thread.c
4
thread.c
|
@ -694,8 +694,8 @@ thread_start_func_2(rb_thread_t *th, VALUE *stack_start, VALUE *register_stack_s
|
|||
rb_threadptr_unlock_all_locking_mutexes(th);
|
||||
rb_check_deadlock(th->vm);
|
||||
|
||||
rb_thread_recycle_stack_release(th->ec.stack);
|
||||
th->ec.stack = NULL;
|
||||
rb_thread_recycle_stack_release(th->ec.vm_stack);
|
||||
th->ec.vm_stack = NULL;
|
||||
}
|
||||
native_mutex_lock(&th->vm->thread_destruct_lock);
|
||||
/* make sure vm->running_thread never point me after this point.*/
|
||||
|
|
32
vm.c
32
vm.c
|
@ -88,8 +88,8 @@ rb_vm_frame_block_handler(const rb_control_frame_t *cfp)
|
|||
static int
|
||||
VM_CFP_IN_HEAP_P(const rb_thread_t *th, const rb_control_frame_t *cfp)
|
||||
{
|
||||
const VALUE *start = th->ec.stack;
|
||||
const VALUE *end = (VALUE *)th->ec.stack + th->ec.stack_size;
|
||||
const VALUE *start = th->ec.vm_stack;
|
||||
const VALUE *end = (VALUE *)th->ec.vm_stack + th->ec.vm_stack_size;
|
||||
VM_ASSERT(start != NULL);
|
||||
|
||||
if (start <= (VALUE *)cfp && (VALUE *)cfp < end) {
|
||||
|
@ -103,7 +103,7 @@ VM_CFP_IN_HEAP_P(const rb_thread_t *th, const rb_control_frame_t *cfp)
|
|||
static int
|
||||
VM_EP_IN_HEAP_P(const rb_thread_t *th, const VALUE *ep)
|
||||
{
|
||||
const VALUE *start = th->ec.stack;
|
||||
const VALUE *start = th->ec.vm_stack;
|
||||
const VALUE *end = (VALUE *)th->ec.cfp;
|
||||
VM_ASSERT(start != NULL);
|
||||
|
||||
|
@ -2370,11 +2370,11 @@ rb_thread_mark(void *ptr)
|
|||
RUBY_MARK_ENTER("thread");
|
||||
|
||||
/* mark VM stack */
|
||||
if (th->ec.stack) {
|
||||
VALUE *p = th->ec.stack;
|
||||
if (th->ec.vm_stack) {
|
||||
VALUE *p = th->ec.vm_stack;
|
||||
VALUE *sp = th->ec.cfp->sp;
|
||||
rb_control_frame_t *cfp = th->ec.cfp;
|
||||
rb_control_frame_t *limit_cfp = (void *)(th->ec.stack + th->ec.stack_size);
|
||||
rb_control_frame_t *limit_cfp = (void *)(th->ec.vm_stack + th->ec.vm_stack_size);
|
||||
|
||||
rb_gc_mark_values((long)(sp - p), p);
|
||||
|
||||
|
@ -2435,9 +2435,9 @@ thread_free(void *ptr)
|
|||
rb_thread_t *th = ptr;
|
||||
RUBY_FREE_ENTER("thread");
|
||||
|
||||
if (th->ec.stack != NULL) {
|
||||
rb_thread_recycle_stack_release(th->ec.stack);
|
||||
th->ec.stack = NULL;
|
||||
if (th->ec.vm_stack != NULL) {
|
||||
rb_thread_recycle_stack_release(th->ec.vm_stack);
|
||||
th->ec.vm_stack = NULL;
|
||||
}
|
||||
|
||||
if (th->locking_mutex != Qfalse) {
|
||||
|
@ -2475,7 +2475,7 @@ thread_memsize(const void *ptr)
|
|||
size_t size = sizeof(rb_thread_t);
|
||||
|
||||
if (!th->root_fiber) {
|
||||
size += th->ec.stack_size * sizeof(VALUE);
|
||||
size += th->ec.vm_stack_size * sizeof(VALUE);
|
||||
}
|
||||
if (th->ec.local_storage) {
|
||||
size += st_memsize(th->ec.local_storage);
|
||||
|
@ -2525,18 +2525,18 @@ th_init(rb_thread_t *th, VALUE self)
|
|||
/* altstack of main thread is reallocated in another place */
|
||||
th->altstack = malloc(rb_sigaltstack_size());
|
||||
#endif
|
||||
/* th->ec.stack_size is word number.
|
||||
/* th->ec.vm_stack_size is word number.
|
||||
* th->vm->default_params.thread_vm_stack_size is byte size.
|
||||
*/
|
||||
th->ec.stack_size = th->vm->default_params.thread_vm_stack_size / sizeof(VALUE);
|
||||
th->ec.stack = thread_recycle_stack(th->ec.stack_size);
|
||||
th->ec.vm_stack_size = th->vm->default_params.thread_vm_stack_size / sizeof(VALUE);
|
||||
th->ec.vm_stack = thread_recycle_stack(th->ec.vm_stack_size);
|
||||
|
||||
th->ec.cfp = (void *)(th->ec.stack + th->ec.stack_size);
|
||||
th->ec.cfp = (void *)(th->ec.vm_stack + th->ec.vm_stack_size);
|
||||
|
||||
vm_push_frame(th, 0 /* dummy iseq */, VM_FRAME_MAGIC_DUMMY | VM_ENV_FLAG_LOCAL | VM_FRAME_FLAG_FINISH | VM_FRAME_FLAG_CFRAME /* dummy frame */,
|
||||
Qnil /* dummy self */, VM_BLOCK_HANDLER_NONE /* dummy block ptr */,
|
||||
0 /* dummy cref/me */,
|
||||
0 /* dummy pc */, th->ec.stack, 0, 0);
|
||||
0 /* dummy pc */, th->ec.vm_stack, 0, 0);
|
||||
|
||||
th->status = THREAD_RUNNABLE;
|
||||
th->last_status = Qnil;
|
||||
|
@ -3102,7 +3102,7 @@ void
|
|||
rb_vm_set_progname(VALUE filename)
|
||||
{
|
||||
rb_thread_t *th = GET_VM()->main_thread;
|
||||
rb_control_frame_t *cfp = (void *)(th->ec.stack + th->ec.stack_size);
|
||||
rb_control_frame_t *cfp = (void *)(th->ec.vm_stack + th->ec.vm_stack_size);
|
||||
--cfp;
|
||||
|
||||
rb_iseq_pathobj_set(cfp->iseq, rb_str_dup(filename), rb_iseq_realpath(cfp->iseq));
|
||||
|
|
|
@ -737,8 +737,8 @@ typedef struct rb_fiber_struct rb_fiber_t;
|
|||
|
||||
typedef struct rb_thread_context_struct {
|
||||
/* execution information */
|
||||
VALUE *stack; /* must free, must mark */
|
||||
size_t stack_size; /* size in word (byte size / sizeof(VALUE)) */
|
||||
VALUE *vm_stack; /* must free, must mark */
|
||||
size_t vm_stack_size; /* size in word (byte size / sizeof(VALUE)) */
|
||||
rb_control_frame_t *cfp;
|
||||
|
||||
struct rb_vm_tag *tag;
|
||||
|
@ -1235,7 +1235,7 @@ VALUE rb_vm_frame_block_handler(const rb_control_frame_t *cfp);
|
|||
#define RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp) ((cfp)+1)
|
||||
#define RUBY_VM_NEXT_CONTROL_FRAME(cfp) ((cfp)-1)
|
||||
#define RUBY_VM_END_CONTROL_FRAME(th) \
|
||||
((rb_control_frame_t *)((th)->ec.stack + (th)->ec.stack_size))
|
||||
((rb_control_frame_t *)((th)->ec.vm_stack + (th)->ec.vm_stack_size))
|
||||
#define RUBY_VM_VALID_CONTROL_FRAME_P(cfp, ecfp) \
|
||||
((void *)(ecfp) > (void *)(cfp))
|
||||
#define RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(th, cfp) \
|
||||
|
|
30
vm_dump.c
30
vm_dump.c
|
@ -22,14 +22,14 @@
|
|||
#define MAX_POSBUF 128
|
||||
|
||||
#define VM_CFP_CNT(th, cfp) \
|
||||
((rb_control_frame_t *)((th)->ec.stack + (th)->ec.stack_size) - \
|
||||
((rb_control_frame_t *)((th)->ec.vm_stack + (th)->ec.vm_stack_size) - \
|
||||
(rb_control_frame_t *)(cfp))
|
||||
|
||||
static void
|
||||
control_frame_dump(rb_thread_t *th, rb_control_frame_t *cfp)
|
||||
{
|
||||
ptrdiff_t pc = -1;
|
||||
ptrdiff_t ep = cfp->ep - th->ec.stack;
|
||||
ptrdiff_t ep = cfp->ep - th->ec.vm_stack;
|
||||
char ep_in_heap = ' ';
|
||||
char posbuf[MAX_POSBUF+1];
|
||||
int line = 0;
|
||||
|
@ -39,7 +39,7 @@ control_frame_dump(rb_thread_t *th, rb_control_frame_t *cfp)
|
|||
|
||||
const rb_callable_method_entry_t *me;
|
||||
|
||||
if (ep < 0 || (size_t)ep > th->ec.stack_size) {
|
||||
if (ep < 0 || (size_t)ep > th->ec.vm_stack_size) {
|
||||
ep = (ptrdiff_t)cfp->ep;
|
||||
ep_in_heap = 'p';
|
||||
}
|
||||
|
@ -112,14 +112,14 @@ control_frame_dump(rb_thread_t *th, rb_control_frame_t *cfp)
|
|||
}
|
||||
|
||||
fprintf(stderr, "c:%04"PRIdPTRDIFF" ",
|
||||
((rb_control_frame_t *)(th->ec.stack + th->ec.stack_size) - cfp));
|
||||
((rb_control_frame_t *)(th->ec.vm_stack + th->ec.vm_stack_size) - cfp));
|
||||
if (pc == -1) {
|
||||
fprintf(stderr, "p:---- ");
|
||||
}
|
||||
else {
|
||||
fprintf(stderr, "p:%04"PRIdPTRDIFF" ", pc);
|
||||
}
|
||||
fprintf(stderr, "s:%04"PRIdPTRDIFF" ", cfp->sp - th->ec.stack);
|
||||
fprintf(stderr, "s:%04"PRIdPTRDIFF" ", cfp->sp - th->ec.vm_stack);
|
||||
fprintf(stderr, ep_in_heap == ' ' ? "e:%06"PRIdPTRDIFF" " : "E:%06"PRIxPTRDIFF" ", ep % 10000);
|
||||
fprintf(stderr, "%-6s", magic);
|
||||
if (line) {
|
||||
|
@ -145,12 +145,12 @@ rb_vmdebug_stack_dump_raw(rb_thread_t *th, rb_control_frame_t *cfp)
|
|||
VALUE *p, *st, *t;
|
||||
|
||||
fprintf(stderr, "-- stack frame ------------\n");
|
||||
for (p = st = th->ec.stack; p < sp; p++) {
|
||||
for (p = st = th->ec.vm_stack; p < sp; p++) {
|
||||
fprintf(stderr, "%04ld (%p): %08"PRIxVALUE, (long)(p - st), p, *p);
|
||||
|
||||
t = (VALUE *)*p;
|
||||
if (th->ec.stack <= t && t < sp) {
|
||||
fprintf(stderr, " (= %ld)", (long)((VALUE *)GC_GUARDED_PTR_REF(t) - th->ec.stack));
|
||||
if (th->ec.vm_stack <= t && t < sp) {
|
||||
fprintf(stderr, " (= %ld)", (long)((VALUE *)GC_GUARDED_PTR_REF(t) - th->ec.vm_stack));
|
||||
}
|
||||
|
||||
if (p == ep)
|
||||
|
@ -162,7 +162,7 @@ rb_vmdebug_stack_dump_raw(rb_thread_t *th, rb_control_frame_t *cfp)
|
|||
|
||||
fprintf(stderr, "-- Control frame information "
|
||||
"-----------------------------------------------\n");
|
||||
while ((void *)cfp < (void *)(th->ec.stack + th->ec.stack_size)) {
|
||||
while ((void *)cfp < (void *)(th->ec.vm_stack + th->ec.vm_stack_size)) {
|
||||
control_frame_dump(th, cfp);
|
||||
cfp++;
|
||||
}
|
||||
|
@ -285,7 +285,7 @@ vm_stack_dump_each(rb_thread_t *th, rb_control_frame_t *cfp)
|
|||
break;
|
||||
}
|
||||
fprintf(stderr, " stack %2d: %8s (%"PRIdPTRDIFF")\n", i, StringValueCStr(rstr),
|
||||
(ptr - th->ec.stack));
|
||||
(ptr - th->ec.vm_stack));
|
||||
}
|
||||
}
|
||||
else if (VM_FRAME_FINISHED_P(cfp)) {
|
||||
|
@ -307,20 +307,20 @@ rb_vmdebug_debug_print_register(rb_thread_t *th)
|
|||
{
|
||||
rb_control_frame_t *cfp = th->ec.cfp;
|
||||
ptrdiff_t pc = -1;
|
||||
ptrdiff_t ep = cfp->ep - th->ec.stack;
|
||||
ptrdiff_t ep = cfp->ep - th->ec.vm_stack;
|
||||
ptrdiff_t cfpi;
|
||||
|
||||
if (VM_FRAME_RUBYFRAME_P(cfp)) {
|
||||
pc = cfp->pc - cfp->iseq->body->iseq_encoded;
|
||||
}
|
||||
|
||||
if (ep < 0 || (size_t)ep > th->ec.stack_size) {
|
||||
if (ep < 0 || (size_t)ep > th->ec.vm_stack_size) {
|
||||
ep = -1;
|
||||
}
|
||||
|
||||
cfpi = ((rb_control_frame_t *)(th->ec.stack + th->ec.stack_size)) - cfp;
|
||||
cfpi = ((rb_control_frame_t *)(th->ec.vm_stack + th->ec.vm_stack_size)) - cfp;
|
||||
fprintf(stderr, " [PC] %04"PRIdPTRDIFF", [SP] %04"PRIdPTRDIFF", [EP] %04"PRIdPTRDIFF", [CFP] %04"PRIdPTRDIFF"\n",
|
||||
pc, (cfp->sp - th->ec.stack), ep, cfpi);
|
||||
pc, (cfp->sp - th->ec.vm_stack), ep, cfpi);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -342,7 +342,7 @@ rb_vmdebug_debug_print_pre(rb_thread_t *th, rb_control_frame_t *cfp, const VALUE
|
|||
printf(" ");
|
||||
}
|
||||
printf("| ");
|
||||
if(0)printf("[%03ld] ", (long)(cfp->sp - th->ec.stack));
|
||||
if(0)printf("[%03ld] ", (long)(cfp->sp - th->ec.vm_stack));
|
||||
|
||||
/* printf("%3"PRIdPTRDIFF" ", VM_CFP_CNT(th, cfp)); */
|
||||
if (pc >= 0) {
|
||||
|
|
|
@ -157,7 +157,7 @@ default: \
|
|||
|
||||
#endif
|
||||
|
||||
#define VM_SP_CNT(th, sp) ((sp) - (th)->ec.stack)
|
||||
#define VM_SP_CNT(th, sp) ((sp) - (th)->ec.vm_stack)
|
||||
|
||||
#if OPT_CALL_THREADED_CODE
|
||||
#define THROW_EXCEPTION(exc) do { \
|
||||
|
|
|
@ -1516,8 +1516,8 @@ vm_base_ptr(const rb_control_frame_t *cfp)
|
|||
#if VM_DEBUG_BP_CHECK
|
||||
if (bp != cfp->bp_check) {
|
||||
fprintf(stderr, "bp_check: %ld, bp: %ld\n",
|
||||
(long)(cfp->bp_check - GET_THREAD()->ec.stack),
|
||||
(long)(bp - GET_THREAD()->ec.stack));
|
||||
(long)(cfp->bp_check - GET_THREAD()->ec.vm_stack),
|
||||
(long)(bp - GET_THREAD()->ec.vm_stack));
|
||||
rb_bug("vm_base_ptr: unreachable");
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -95,7 +95,7 @@ enum vm_regan_acttype {
|
|||
#define SET_SV(x) (*GET_SP() = (x))
|
||||
/* set current stack value as x */
|
||||
|
||||
#define GET_SP_COUNT() (VM_REG_SP - th->ec.stack)
|
||||
#define GET_SP_COUNT() (VM_REG_SP - th->ec.vm_stack)
|
||||
|
||||
/* instruction sequence C struct */
|
||||
#define GET_ISEQ() (GET_CFP()->iseq)
|
||||
|
|
Loading…
Add table
Reference in a new issue