diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-04-27 07:11:07 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-04-27 07:11:07 +0000 |
commit | 7a5708372a5d88cf30ae490b34b3680e07331eed (patch) | |
tree | afd7cb369652dea6505a217286eea5a3d50d01fc /tool | |
parent | 29c118482cf3d7e9b9cb64e4da6e1fbca97d086e (diff) | |
download | ruby-7a5708372a5d88cf30ae490b34b3680e07331eed.tar.gz |
* 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
Diffstat (limited to 'tool')
-rwxr-xr-x | tool/instruction.rb | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/tool/instruction.rb b/tool/instruction.rb index 4f7d08c369..45117950cf 100755 --- a/tool/instruction.rb +++ b/tool/instruction.rb @@ -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 |