summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tool/ruby_vm/views/vm.inc.erb9
-rw-r--r--vm_opts.h2
2 files changed, 7 insertions, 4 deletions
diff --git a/tool/ruby_vm/views/vm.inc.erb b/tool/ruby_vm/views/vm.inc.erb
index 3c7b602859..91e0b930c0 100644
--- a/tool/ruby_vm/views/vm.inc.erb
+++ b/tool/ruby_vm/views/vm.inc.erb
@@ -25,16 +25,19 @@
<%= render 'insn_entry', locals: { insn: insn } -%>
% end
%
-% RubyVM::TraceInstructions.to_a.each do |insn|
-<%= render 'trace_instruction', locals: { insn: insn } -%>
-% end
% RubyVM::MicroJIT::ExampleInstructions.to_a.each do |insn|
INSN_ENTRY(<%= insn.name %>)
{
START_OF_ORIGINAL_INSN(<%= insn.name %>);
+#if USE_MACHINE_REGS
// assumes USE_MACHINE_REGS, aka reg_pc setup,
// aka #define SET_PC(x) (reg_cfp->pc = reg_pc = (x))
reg_pc = rb_ujit_empty_func(GET_CFP());
+#endif
END_INSN(<%= insn.name %>);
}
% end
+%
+% RubyVM::TraceInstructions.to_a.each do |insn|
+<%= render 'trace_instruction', locals: { insn: insn } -%>
+% end
diff --git a/vm_opts.h b/vm_opts.h
index b0ca81f304..a10b26039c 100644
--- a/vm_opts.h
+++ b/vm_opts.h
@@ -34,7 +34,7 @@
* 2: call (function call for each insn dispatch)
*/
#ifndef OPT_THREADED_CODE
-#define OPT_THREADED_CODE 0
+#define OPT_THREADED_CODE 2
#endif
#define OPT_DIRECT_THREADED_CODE (OPT_THREADED_CODE == 0)