summaryrefslogtreecommitdiff
path: root/template/optinsn.inc.tmpl
diff options
context:
space:
mode:
authorshyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-01-09 13:30:31 +0000
committershyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-01-09 13:30:31 +0000
commit55317a74f7df73bb3531ade54418c4bf6f95b30b (patch)
treee83ff5745104434e1373cafe8bb5a859a05b59c2 /template/optinsn.inc.tmpl
parentae4045f0cab0a9188124a00f55fdb804a3ec1cfd (diff)
downloadbundler-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.tmpl78
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;
-}