summaryrefslogtreecommitdiff
path: root/tool/ruby_vm/views/mjit_compile_attr.inc.erb
diff options
context:
space:
mode:
Diffstat (limited to 'tool/ruby_vm/views/mjit_compile_attr.inc.erb')
-rw-r--r--tool/ruby_vm/views/mjit_compile_attr.inc.erb17
1 files changed, 17 insertions, 0 deletions
diff --git a/tool/ruby_vm/views/mjit_compile_attr.inc.erb b/tool/ruby_vm/views/mjit_compile_attr.inc.erb
new file mode 100644
index 0000000000..7b925420dd
--- /dev/null
+++ b/tool/ruby_vm/views/mjit_compile_attr.inc.erb
@@ -0,0 +1,17 @@
+static rb_snum_t
+mjit_call_attribute_sp_inc(const int insn, const VALUE *operands)
+{
+ switch (insn) {
+% (RubyVM::BareInstructions.to_a + RubyVM::OperandsUnifications.to_a).each do |insn|
+ case BIN(<%= insn.name %>): {
+% # compiler: Prepare operands which may be used by `insn.call_attribute`
+% insn.opes.each_with_index do |ope, i|
+ MAYBE_UNUSED(<%= ope.fetch(:decl) %>) = (<%= ope.fetch(:type) %>)operands[<%= i %>];
+% end
+ return <%= insn.call_attribute('sp_inc') %>;
+ }
+% end
+ default:
+ rb_bug("unexpected insn in mjit_call_attribute_sp_inc");
+ }
+}