summaryrefslogtreecommitdiff
path: root/tool/ruby_vm/views/_trace_instruction.erb
diff options
context:
space:
mode:
Diffstat (limited to 'tool/ruby_vm/views/_trace_instruction.erb')
-rw-r--r--tool/ruby_vm/views/_trace_instruction.erb7
1 files changed, 6 insertions, 1 deletions
diff --git a/tool/ruby_vm/views/_trace_instruction.erb b/tool/ruby_vm/views/_trace_instruction.erb
index d604e0318b..3588207d39 100644
--- a/tool/ruby_vm/views/_trace_instruction.erb
+++ b/tool/ruby_vm/views/_trace_instruction.erb
@@ -11,6 +11,11 @@
INSN_ENTRY(<%= insn.name %>)
{
vm_trace(ec, GET_CFP());
- DISPATCH_ORIGINAL_INSN(<%= insn.jump_destination %>);
+% if insn.name =~
+% /\Atrace_opt_(plus|minus|mult|div|mod|eq|neq|lt|le|gt|ge|ltlt|and|or|aref|aset|length|size|empty_p|nil_p|succ|not|regexpmatch2)\z/
+% jump_dest = "opt_send_without_block"
+% end
+ <%= 'ADD_PC(1);' if insn.name == 'trace_opt_neq' %>
+ DISPATCH_ORIGINAL_INSN(<%= jump_dest || insn.jump_destination %>);
END_INSN(<%= insn.name %>);
}