yarv-diff:98
From: ko1 atdot.net
Date: 10 Sep 2005 05:12:03 -0000
Subject: [yarv-diff:98] r254 - in trunk: . rb
Author: ko1
Date: 2005-09-10 14:12:02 +0900 (Sat, 10 Sep 2005)
New Revision: 254
Added:
trunk/vm_opts.h
Modified:
trunk/ChangeLog
trunk/rb/insns2vm.rb
trunk/test.rb
trunk/yarvcore.h
Log:
* vm_opts.h : added
* yarvcore.h, rb/insns2vm.h : use vm_opts.h
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2005-09-09 19:56:46 UTC (rev 253)
+++ trunk/ChangeLog 2005-09-10 05:12:02 UTC (rev 254)
@@ -4,6 +4,13 @@
# from Mon, 03 May 2004 01:24:19 +0900
#
+2005-09-10(Sat) 14:10:08 +0900 Koichi Sasada <ko1 atdot.net>
+
+ * vm_opts.h : added
+
+ * yarvcore.h, rb/insns2vm.h : use vm_opts.h
+
+
2005-09-10(Sat) 04:53:22 +0900 Koichi Sasada <ko1 atdot.net>
* yarvcore.h, insns.def, compile.c : add DEFINED_YIELD
Modified: trunk/rb/insns2vm.rb
===================================================================
--- trunk/rb/insns2vm.rb 2005-09-09 19:56:46 UTC (rev 253)
+++ trunk/rb/insns2vm.rb 2005-09-10 05:12:02 UTC (rev 254)
@@ -1101,6 +1101,25 @@
end
}
+optfile = nil
+if FileTest.exist?(File.join(Dir.pwd, 'vm_opts.h'))
+ optfile = File.join(Dir.pwd, 'vm_opts.h')
+elsif FileTest.exist?(File.join($srcdir, 'vm_opts.h'))
+ optfile = File.join($srcdir, 'vm_opts.h')
+end
+
+if optfile
+ open(optfile){|f|
+ f.each_line{|line|
+ if /^\#define\s+(OPT_[A-Z_]+)\s+1/ =~ line
+ $opts[$1] = true
+ elsif /IGNORE_OPTIMIZE\s+1/ =~ line
+ break
+ end
+ }
+ }
+end
+
$insns_def = File.join($srcdir, insns_def)
$opope_def = File.join($srcdir, opope_def)
$unif_def = File.join($srcdir, unif_def)
Modified: trunk/test.rb
===================================================================
--- trunk/test.rb 2005-09-09 19:56:46 UTC (rev 253)
+++ trunk/test.rb 2005-09-10 05:12:02 UTC (rev 254)
@@ -1,26 +1,12 @@
-module Enumerable_
- def collect
- ary = []
- each{|e|
- ary << e
- }
+def fib n
+ if n < 2
+ 1
+ else
+ fib(n-1) + fib(n-2)
end
end
+fib(36)
-class C
- include Enumerable
- def initialize
- @a = [1,2,3]
- end
-
- def each &b
- @a.each{|e|
- yield e
- }
- end
-end
-p C.new.collect{|n| n}
-
Added: trunk/vm_opts.h
===================================================================
--- trunk/vm_opts.h 2005-09-09 19:56:46 UTC (rev 253)
+++ trunk/vm_opts.h 2005-09-10 05:12:02 UTC (rev 254)
@@ -0,0 +1,30 @@
+/*
+ * VM optimize option
+ */
+
+#ifndef VM_OPTS_H_INCLUDED
+#define VM_OPTS_H_INCLUDED
+
+#define IGNORE_OPTIMIZE 1
+
+
+#if IGNORE_OPTIMIZE == 0
+
+/* compiler depend */
+#define OPT_DIRECT_THREADED_CODE 1
+
+/* architecture independent */
+#define OPT_BASIC_OPERATIONS 1
+#define OPT_INLINE_METHOD_CACHE 1
+
+/* architecture independent, affects generated code */
+#define OPT_OPERANDS_UNIFICATION 1
+#define OPT_INSTRUCTIONS_UNIFICATION 1
+#define OPT_UNIFY_ALL_COMBINATION 1
+
+#define OPT_STACK_CACHING 1
+
+#endif /* IGNORE_OPTIMIZE */
+
+#endif /* VM_OPTS_H_INCLUDED */
+
Modified: trunk/yarvcore.h
===================================================================
--- trunk/yarvcore.h 2005-09-09 19:56:46 UTC (rev 253)
+++ trunk/yarvcore.h 2005-09-10 05:12:02 UTC (rev 254)
@@ -7,6 +7,7 @@
#define _YARVCORE_H_INCLUDED_
#include "debug.h"
+#include "vm_opts.h"
/*****************/
/* configuration */
--
ML: yarv-diff quickml.atdot.net
Info: http://www.atdot.net/~ko1/quickml