mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
40 lines
1.2 KiB
Text
40 lines
1.2 KiB
Text
/* -*- C -*- */
|
|
|
|
%# Copyright (c) 2017 Urabe, Shyouhei. All rights reserved.
|
|
%#
|
|
%# This file is a part of the programming language Ruby. Permission is hereby
|
|
%# granted, to either redistribute and/or modify this file, provided that the
|
|
%# conditions mentioned in the file COPYING are met. Consult the file for
|
|
%# details.
|
|
<%= render 'copyright' %>
|
|
<%= render 'notice', locals: {
|
|
this_file: 'is VM main loop',
|
|
edit: __FILE__,
|
|
} -%>
|
|
|
|
#include "vm_insnhelper.h"
|
|
% RubyVM::BareInstructions.to_a.each do |insn|
|
|
<%= render 'insn_entry', locals: { insn: insn } -%>
|
|
% end
|
|
%
|
|
% RubyVM::OperandsUnifications.to_a.each do |insn|
|
|
<%= render 'insn_entry', locals: { insn: insn } -%>
|
|
% end
|
|
%
|
|
% RubyVM::InstructionsUnifications.to_a.each do |insn|
|
|
<%= 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 %>);
|
|
// 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());
|
|
END_INSN(<%= insn.name %>);
|
|
}
|
|
% end
|