diff options
author | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-06-27 09:28:09 +0000 |
---|---|---|
committer | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-06-27 09:28:09 +0000 |
commit | 6b534134a78e3e43c344682c3585e1abab015216 (patch) | |
tree | d11c5c2df90dd40086ab6e189e856219b1be098a /tool/ruby_vm/views/_insn_entry.erb | |
parent | 8222d794f3ecf6cd93d537ee2f214b86975d1efc (diff) | |
download | ruby-6b534134a78e3e43c344682c3585e1abab015216.tar.gz |
give up insn attr handles_frame
I introduced this mechanism in r62051 to speed things up. Later it
was reported that the change causes problems. I searched for
workarounds but nothing seemed appropriate. I hereby officially
give it up. The idea to move ADD_PC around was a mistake.
Fixes [Bug #14809] and [Bug #14834].
Signed-off-by: Urabe, Shyouhei <shyouhei@ruby-lang.org>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63763 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'tool/ruby_vm/views/_insn_entry.erb')
-rw-r--r-- | tool/ruby_vm/views/_insn_entry.erb | 13 |
1 files changed, 1 insertions, 12 deletions
diff --git a/tool/ruby_vm/views/_insn_entry.erb b/tool/ruby_vm/views/_insn_entry.erb index 2118dece86..836ca32b6b 100644 --- a/tool/ruby_vm/views/_insn_entry.erb +++ b/tool/ruby_vm/views/_insn_entry.erb @@ -29,28 +29,17 @@ INSN_ENTRY(<%= insn.name %>) <%= pop[:name] %> = <%= insn.cast_from_VALUE pop, "TOPN(#{i})"%>; % end DEBUG_ENTER_INSN(INSN_ATTR(name)); -% if insn.handles_frame? ADD_PC(INSN_ATTR(width)); POPN(INSN_ATTR(popn)); -% end COLLECT_USAGE_INSN(INSN_ATTR(bin)); % insn.opes.each_with_index do |ope, i| COLLECT_USAGE_OPERAND(INSN_ATTR(bin), <%= i %>, <%= ope[:name] %>); % end <%= render_c_expr insn.expr -%> CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, INSN_ATTR(retn)); -% if insn.handles_frame? -% insn.rets.reverse_each do |ret| +% insn.rets.each do |ret| PUSH(<%= insn.cast_to_VALUE ret %>); % end -% else - ADJ_SP(INSN_ATTR(sp_inc)); -% insn.rets.reverse_each.with_index do |ret, i| - TOPN(<%= i %>) = <%= insn.cast_to_VALUE ret %>; -% end - ADD_PC(INSN_ATTR(width)); - PREFETCH(GET_PC()); -% end END_INSN(<%= insn.name %>); # undef INSN_ATTR # undef NAME_OF_CURRENT_INSN |