From a763bc3c6be8a40e997f5d22c6ec541e9701f618 Mon Sep 17 00:00:00 2001 From: k0kubun Date: Wed, 25 Jul 2018 14:55:43 +0000 Subject: insns.def: s/handles_frame/handles_sp/ because it's more suitable to describe the current behavior now. tool/ruby_vm/models/bare_instructions.rb: ditto. tool/ruby_vm/views/_insn_entry.erb: ditto. tool/ruby_vm/views/_mjit_compile_insn_body.erb: ditto. tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- insns.def | 16 ++++++++-------- tool/ruby_vm/models/bare_instructions.rb | 6 +++--- tool/ruby_vm/views/_insn_entry.erb | 4 ++-- tool/ruby_vm/views/_mjit_compile_insn_body.erb | 8 ++++---- tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb | 6 +++--- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/insns.def b/insns.def index da5a771de0..2305d20803 100644 --- a/insns.def +++ b/insns.def @@ -43,7 +43,7 @@ * sp_inc: Used to dynamically calculate sp increase in `insn_stack_increase`. - * handles_frame: If it is true, VM deals with sp in the insn. + * handles_sp: If it is true, VM deals with sp in the insn. - Attributes can access operands, but not stack (push/pop) variables. @@ -687,7 +687,7 @@ defineclass (ID id, ISEQ class_iseq, rb_num_t flags) (VALUE cbase, VALUE super) (VALUE val) -// attr bool handles_frame = true; +// attr bool handles_sp = true; { VALUE klass = vm_find_or_create_class_by_id(id, flags, cbase, super); @@ -714,7 +714,7 @@ send (CALL_INFO ci, CALL_CACHE cc, ISEQ blockiseq) (...) (VALUE val) -// attr bool handles_frame = true; +// attr bool handles_sp = true; // attr rb_snum_t sp_inc = - (int)(ci->orig_argc + ((ci->flag & VM_CALL_ARGS_BLOCKARG) ? 1 : 0)); { struct rb_calling_info calling; @@ -768,7 +768,7 @@ opt_send_without_block (CALL_INFO ci, CALL_CACHE cc) (...) (VALUE val) -// attr bool handles_frame = true; +// attr bool handles_sp = true; // attr rb_snum_t sp_inc = -ci->orig_argc; { struct rb_calling_info calling; @@ -783,7 +783,7 @@ invokesuper (CALL_INFO ci, CALL_CACHE cc, ISEQ blockiseq) (...) (VALUE val) -// attr bool handles_frame = true; +// attr bool handles_sp = true; // attr rb_snum_t sp_inc = - (int)(ci->orig_argc + ((ci->flag & VM_CALL_ARGS_BLOCKARG) ? 1 : 0)); { struct rb_calling_info calling; @@ -801,7 +801,7 @@ invokeblock (CALL_INFO ci) (...) (VALUE val) -// attr bool handles_frame = true; +// attr bool handles_sp = true; // attr rb_snum_t sp_inc = 1 - ci->orig_argc; { struct rb_calling_info calling; @@ -828,7 +828,7 @@ leave () (VALUE val) (VALUE val) -// attr bool handles_frame = true; +// attr bool handles_sp = true; { if (OPT_CHECKED_RUN) { const VALUE *const bp = vm_base_ptr(reg_cfp); @@ -1376,7 +1376,7 @@ opt_call_c_function (rb_insn_func_t funcptr) () () -// attr bool handles_frame = true; +// attr bool handles_sp = true; { reg_cfp = (funcptr)(ec, reg_cfp); diff --git a/tool/ruby_vm/models/bare_instructions.rb b/tool/ruby_vm/models/bare_instructions.rb index 7e573240b5..d2ff1341a0 100755 --- a/tool/ruby_vm/models/bare_instructions.rb +++ b/tool/ruby_vm/models/bare_instructions.rb @@ -101,8 +101,8 @@ class RubyVM::BareInstructions }.join end - def handles_frame? - /\b(false|0)\b/ !~ @attrs['handles_frame'].expr.expr + def handles_sp? + /\b(false|0)\b/ !~ @attrs['handles_sp'].expr.expr end def inspect @@ -129,7 +129,7 @@ class RubyVM::BareInstructions generate_attribute 'rb_num_t', 'retn', rets.size generate_attribute 'rb_num_t', 'width', width generate_attribute 'rb_snum_t', 'sp_inc', rets.size - pops.size - generate_attribute 'bool', 'handles_frame', false + generate_attribute 'bool', 'handles_sp', false end def typesplit a diff --git a/tool/ruby_vm/views/_insn_entry.erb b/tool/ruby_vm/views/_insn_entry.erb index bae8eae890..e3e3ea42ea 100644 --- a/tool/ruby_vm/views/_insn_entry.erb +++ b/tool/ruby_vm/views/_insn_entry.erb @@ -30,7 +30,7 @@ INSN_ENTRY(<%= insn.name %>) % end DEBUG_ENTER_INSN(INSN_ATTR(name)); ADD_PC(INSN_ATTR(width)); -% if insn.handles_frame? +% if insn.handles_sp? POPN(INSN_ATTR(popn)); % end COLLECT_USAGE_INSN(INSN_ATTR(bin)); @@ -39,7 +39,7 @@ INSN_ENTRY(<%= insn.name %>) % end <%= render_c_expr insn.expr -%> CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn)); -% if insn.handles_frame? +% if insn.handles_sp? % insn.rets.reverse_each do |ret| PUSH(<%= insn.cast_to_VALUE ret %>); % end diff --git a/tool/ruby_vm/views/_mjit_compile_insn_body.erb b/tool/ruby_vm/views/_mjit_compile_insn_body.erb index 38fd8a9368..f054059734 100644 --- a/tool/ruby_vm/views/_mjit_compile_insn_body.erb +++ b/tool/ruby_vm/views/_mjit_compile_insn_body.erb @@ -75,13 +75,13 @@ fprintf(f, " reg_cfp->pc = original_body_iseq + %d;\n", pos); fprintf(f, " goto cancel;\n"); % else -% if insn.handles_frame? -% # If insn.handles_frame? is true, cfp->sp might be changed inside insns (like vm_caller_setup_arg_block) -% # and thus we need to use cfp->sp, even when local_stack_p is TRUE. When insn.handles_frame? is true, +% if insn.handles_sp? +% # If insn.handles_sp? is true, cfp->sp might be changed inside insns (like vm_caller_setup_arg_block) +% # and thus we need to use cfp->sp, even when local_stack_p is TRUE. When insn.handles_sp? is true, % # cfp->sp should be available too because _mjit_compile_pc_and_sp.erb sets it. fprintf(f, <%= to_cstr.call(line) %>); % else -% # If local_stack_p is TRUE and insn.handles_frame? is false, stack values are only available in local variables +% # If local_stack_p is TRUE and insn.handles_sp? is false, stack values are only available in local variables % # for stack. So we need to replace those macros if local_stack_p is TRUE here. % case line % when /\bGET_SP\(\)/ diff --git a/tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb b/tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb index da1465a685..f97d4263c6 100644 --- a/tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb +++ b/tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb @@ -13,9 +13,9 @@ % % # JIT: move sp to use or preserve stack variables if (status->local_stack_p) { -% # sp motion is optimized away for `handles_frame? #=> false` case. +% # sp motion is optimized away for `handles_sp? #=> false` case. % # Thus sp should be set properly before `goto cancel`. -% if insn.handles_frame? +% if insn.handles_sp? % # JIT-only behavior (pushing JIT's local variables to VM's stack): { rb_snum_t i, push_size; @@ -28,7 +28,7 @@ % end } else { -% if insn.handles_frame? +% if insn.handles_sp? fprintf(f, " reg_cfp->sp = (VALUE *)reg_cfp->bp + %d;\n", b->stack_size + 1 - <%= insn.pops.size %>); /* POPN(INSN_ATTR(popn)); */ % else fprintf(f, " reg_cfp->sp = (VALUE *)reg_cfp->bp + %d;\n", b->stack_size + 1); -- cgit v1.2.3