* tool/instruction.rb: fix to follow current implementation.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54794 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2016-04-27 07:11:07 +00:00
Родитель 5d2d4c936d
Коммит e5b436cd76
2 изменённых файлов: 21 добавлений и 10 удалений

Просмотреть файл

@ -1,3 +1,7 @@
Wed Apr 27 16:10:35 2016 NARUSE, Yui <naruse@ruby-lang.org>
* tool/instruction.rb: fix to follow current implementation.
Wed Apr 27 15:47:54 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ext/stringio/stringio.c (strio_s_new): warn if a block is given,

Просмотреть файл

@ -453,9 +453,9 @@ class RubyVM
pops.concat e_pops
rets.concat e_rets
defopes.concat e_defs
sp_inc += "#{insn.sp_inc}"
sp_inc << "#{insn.sp_inc}"
body += "{ /* unif: #{i} */\n" +
body << "{ /* unif: #{i} */\n" +
passed_vars.map{|rpvars|
pv = rpvars[0]
rv = rpvars[1]
@ -463,15 +463,22 @@ class RubyVM
}.join("\n") +
"\n" +
redef_vars.map{|v, type|
"#define #{v} #{v}_#{i}"
}.join("\n") + "\n" +
insn.body +
passed_vars.map{|rpvars|
"#undef #{rpvars[0][1]}"
"#{type} #{v} = #{v}_#{i};"
}.join("\n") + "\n"
if line = insn.body.instance_variable_get(:@line_no)
file = insn.body.instance_variable_get(:@file)
body << "#line #{line+1} \"#{file}\"\n"
body << insn.body
body << "\n#line __CURRENT_LINE__ \"__CURRENT_FILE__\"\n"
else
body << insn.body
end
body << redef_vars.keys.map{|v|
"#{v}_#{i} = #{v};"
}.join("\n") +
"\n" +
redef_vars.keys.map{|v|
"#undef #{v}"
passed_vars.map{|rpvars|
"#undef #{rpvars[0][1]}"
}.join("\n") +
"\n}\n"
}
@ -893,7 +900,7 @@ class RubyVM
commit insn.body
commit '#line __CURRENT_LINE__ "__CURRENT_FILE__"'
else
insn.body
commit insn.body
end
make_footer(insn)
end