summaryrefslogtreecommitdiff
path: root/jni/ruby/optinsn.inc
diff options
context:
space:
mode:
authorJari Vetoniemi <jari.vetoniemi@indooratlas.com>2020-03-16 18:49:26 +0900
committerJari Vetoniemi <jari.vetoniemi@indooratlas.com>2020-03-30 00:39:06 +0900
commitfcbf63e62c627deae76c1b8cb8c0876c536ed811 (patch)
tree64cb17de3f41a2b6fef2368028fbd00349946994 /jni/ruby/optinsn.inc
Fresh start
Diffstat (limited to 'jni/ruby/optinsn.inc')
-rw-r--r--jni/ruby/optinsn.inc83
1 files changed, 83 insertions, 0 deletions
diff --git a/jni/ruby/optinsn.inc b/jni/ruby/optinsn.inc
new file mode 100644
index 0000000..960a047
--- /dev/null
+++ b/jni/ruby/optinsn.inc
@@ -0,0 +1,83 @@
+/* -*-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){
+
+case BIN(getlocal):
+ if(
+ insnobj->operands[1] == INT2FIX(0)
+ ){
+ insnobj->insn_id = BIN(getlocal_OP__WC__0);
+ insnobj->operand_size = 1;
+ break;
+ }
+
+ if(
+ insnobj->operands[1] == INT2FIX(1)
+ ){
+ insnobj->insn_id = BIN(getlocal_OP__WC__1);
+ insnobj->operand_size = 1;
+ break;
+ }
+
+ break;
+case BIN(setlocal):
+ if(
+ insnobj->operands[1] == INT2FIX(0)
+ ){
+ insnobj->insn_id = BIN(setlocal_OP__WC__0);
+ insnobj->operand_size = 1;
+ break;
+ }
+
+ if(
+ insnobj->operands[1] == INT2FIX(1)
+ ){
+ insnobj->insn_id = BIN(setlocal_OP__WC__1);
+ insnobj->operand_size = 1;
+ break;
+ }
+
+ break;
+case BIN(putobject):
+ if(
+ insnobj->operands[0] == INT2FIX(0)
+ ){
+ insnobj->insn_id = BIN(putobject_OP_INT2FIX_O_0_C_);
+ insnobj->operand_size = 0;
+ break;
+ }
+
+ if(
+ insnobj->operands[0] == INT2FIX(1)
+ ){
+ insnobj->insn_id = BIN(putobject_OP_INT2FIX_O_1_C_);
+ insnobj->operand_size = 0;
+ break;
+ }
+
+ break;
+
+ default:
+ /* do nothing */;
+ break;
+ }
+#endif
+ return insnobj;
+}
+