summaryrefslogtreecommitdiff
path: root/tool/ruby_vm/views/_insn_leaf_info.erb
blob: f30366ffdac1ade81557838e35951bebcc23d161 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
MAYBE_UNUSED(static bool insn_leaf(int insn, const VALUE *opes));
static bool
insn_leaf(int insn, const VALUE *opes)
{
    switch (insn) {
% RubyVM::Instructions.each do |insn|
%   next if insn.is_a?(RubyVM::TraceInstruction) || insn.is_a?(RubyVM::ZJITInstruction)
      case <%= insn.bin %>:
        return attr_leaf_<%= insn.name %>(<%=
          insn.operands.map.with_index do |ope, i|
            "(#{ope[:type]})opes[#{i}]"
          end.join(', ')
        %>);
% end
      default:
        return false;
    }
}