summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authork0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-07-25 14:55:43 +0000
committerk0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-07-25 14:55:43 +0000
commita763bc3c6be8a40e997f5d22c6ec541e9701f618 (patch)
tree466c58bd2de4a2499dbd2cdaf5d06aaa5c0b1896
parent218aa03c0f0b10152616b61939a18f3e479316ba (diff)
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
-rw-r--r--insns.def16
-rwxr-xr-xtool/ruby_vm/models/bare_instructions.rb6
-rw-r--r--tool/ruby_vm/views/_insn_entry.erb4
-rw-r--r--tool/ruby_vm/views/_mjit_compile_insn_body.erb8
-rw-r--r--tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb6
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);