diff options
author | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-09 13:30:31 +0000 |
---|---|---|
committer | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-09 13:30:31 +0000 |
commit | 55317a74f7df73bb3531ade54418c4bf6f95b30b (patch) | |
tree | e83ff5745104434e1373cafe8bb5a859a05b59c2 /template/optinsn.inc.tmpl | |
parent | ae4045f0cab0a9188124a00f55fdb804a3ec1cfd (diff) | |
download | bundler-55317a74f7df73bb3531ade54418c4bf6f95b30b.tar.gz |
delete tool/instruction.rb
Previous commit changed insns.def format. Now is the time for its
generators. In doing so I chose to modernize the system, not just
patch. My attempt includes
- extensive use of Onigumo regular expressions
- split from one big file (instruction.rb) into separated MVC
- partial view
Also, let me take this opportunity to kill old unused features
such as
- stack caching
- minsns / yasmdata which are never seriously used
- yarvarch document generation (moved to doc/)
- vast majority of unused arguments to insns2vm.rb
This commit generates VM source codes that cleanly compile, and
the generated binary passes tests. At least for me.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61733 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'template/optinsn.inc.tmpl')
-rw-r--r-- | template/optinsn.inc.tmpl | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/template/optinsn.inc.tmpl b/template/optinsn.inc.tmpl deleted file mode 100644 index b1fba6dea3..0000000000 --- a/template/optinsn.inc.tmpl +++ /dev/null @@ -1,78 +0,0 @@ -/* -*-c-*- *********************************************************/ -/*******************************************************************/ -/*******************************************************************/ -/** - This file is for threaded code. - - ---- - This file is auto generated by insns2vm.rb - DO NOT TOUCH! - - If you want to fix something, you must edit 'template/optinsn.inc.tmpl' - or tool/insns2vm.rb - */ - -static INSN * -insn_operands_unification(INSN *insnobj) -{ -#ifdef OPT_OPERANDS_UNIFICATION - /* optimize rule */ - switch(insnobj->insn_id){ -% opt_insns_map.each do |originsn, optinsns| - case BIN(<%=originsn.name%>): -% optinsns.each {|opti| - if ( -% opti.defopes.each_with_index {|opinfo, i| -% next if opinfo[1] == '*' - insnobj->operands[<%=i%>] == <%=val_as_type(opinfo)%> && -% } - 1) { -% idx = 0 -% opti.defopes.each_with_index {|opinfo, n| -% if opinfo[1] == '*' -% if idx != n - insnobj->operands[<%=idx%>] = insnobj->operands[<%=n%>]; -% end -% idx += 1 -% end -% } - insnobj->insn_id = BIN(<%=opti.name%>); - insnobj->operand_size = <%=idx%>; - break; - } -% } - break; -% end - - default: - /* do nothing */; - break; - } -#endif - return insnobj; -} - -int -rb_insn_unified_local_var_level(VALUE insn) -{ -#ifdef OPT_OPERANDS_UNIFICATION - /* optimize rule */ - switch (insn) { -% opt_insns_map.each do |originsn, optinsns| -% optinsns.each {|opti| - case BIN(<%=opti.name%>): -% opti.defopes.each {|opinfo| -% next if opinfo[1] == '*' - return <%=opinfo[1]%>; -% break -% } -% } -% end - - default: - /* do nothing */; - break; - } -#endif - return -1; -} |