optunifs.inc

Methods
G
Instance Public methods
generate()
# File tool/instruction.rb, line 1149
def generate
  unif_insns_each = ''
  unif_insns      = ''
  unif_insns_data = []

  insns = @insns.find_all{|insn| !insn.is_sc}
  insns.each{|insn|
    size = insn.unifs.size
    if size > 0
      insn.unifs.sort_by{|unif| -unif[1].size}.each_with_index{|unif, i|

      uni_insn, uni_insns = *unif
      uni_insns = uni_insns[1..-1]
      unif_insns_each << "static const int UNIFIED_#{insn.name}_#{i}[] = {" +
                         "  BIN(#{uni_insn.name}), #{uni_insns.size + 2}, \n  " +
                         uni_insns.map{|e| "BIN(#{e.name})"}.join(", ") + "};\n"
      }
    else

    end
    if size > 0
      unif_insns << "static const int *const UNIFIED_#{insn.name}[] = {(int *)#{size+1}, \n"
      unif_insns << (0...size).map{|e| "  UNIFIED_#{insn.name}_#{e}"}.join(",\n") + "};\n"
      unif_insns_data << "  UNIFIED_#{insn.name}"
    else
      unif_insns_data << "  0"
    end
  }
  unif_insns_data = "static const int *const *const unified_insns_data[] = {\n" +
                    unif_insns_data.join(",\n") + "};\n"
  ERB.new(vpath.read('template/optunifs.inc.tmpl')).result(binding)
end