[前][次][番号順一覧][スレッド一覧][生データ]

yarv-diff:20

From: ko1 atdot.net
Date: 27 Jun 2005 14:32:31 -0000
Subject: [yarv-diff:20] r175 - in trunk: . benchmark

Author: ko1
Date: 2005-06-27 23:32:31 +0900 (Mon, 27 Jun 2005)
New Revision: 175

Modified:
   trunk/ChangeLog
   trunk/benchmark/bm_whileloop.rb
   trunk/depend
   trunk/extconf.rb
   trunk/vm.h
Log:
	* depend : add gdb rule

	* vm.h : use inline assembler for x86 (to support gcc 3.4.x)



Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2005-06-27 11:09:33 UTC (rev 174)
+++ trunk/ChangeLog	2005-06-27 14:32:31 UTC (rev 175)
@@ -4,8 +4,16 @@
 #  from Mon, 03 May 2004 01:24:19 +0900
 #
 
-2005-06-27(Mon) 20:04:10 +0900
+2005-06-27(Mon) 23:31:12 +0900  Koichi Sasada  <ko1 atdot.net>
 
+	* depend : add gdb rule
+
+	* vm.h : use inline assembler for x86 (to support gcc 3.4.x)
+
+	* 
+
+2005-06-27(Mon) 20:04:10 +0900  Koichi Sasada  <ko1 atdot.net>
+
 	* yarvcore.c, compile.c, disasm.c : remove unused variables
 
 	* vm.h, insnhelper.h, debug.h : fix to reduce warning
@@ -18,7 +26,6 @@
 
 	* vm_evalbody.inc : rename to vm_evalbody.h
 
-	
 
 2005-06-27(Mon) 16:50:31 +0900  Koichi Sasada  <ko1 atdot.net>
 

Modified: trunk/benchmark/bm_whileloop.rb
===================================================================
--- trunk/benchmark/bm_whileloop.rb	2005-06-27 11:09:33 UTC (rev 174)
+++ trunk/benchmark/bm_whileloop.rb	2005-06-27 14:32:31 UTC (rev 175)
@@ -1,4 +1,4 @@
 i = 0
-while i<10000000
+while i<30000000
   i+=1
 end

Modified: trunk/depend
===================================================================
--- trunk/depend	2005-06-27 11:09:33 UTC (rev 174)
+++ trunk/depend	2005-06-27 14:32:31 UTC (rev 175)
@@ -83,3 +83,7 @@
 reconf:
 	make clean
 	$(RUBY) $(srcdir)/extconf.rb
+
+gdb: all
+	gdb --args $(RUBY) -I$(srcdir) $(srcdir)/test.rb
+

Modified: trunk/extconf.rb
===================================================================
--- trunk/extconf.rb	2005-06-27 11:09:33 UTC (rev 174)
+++ trunk/extconf.rb	2005-06-27 14:32:31 UTC (rev 175)
@@ -85,10 +85,9 @@
 
 # for GCC
 vm.asm:
-	$(CC) $(CFLAGS) -fno-crossjumping $(CPPFLAGS) -dA -S -o vm.asm.txt $(srcdir)/vm.c
+	$(CC) $(CFLAGS) -fno-crossjumping $(CPPFLAGS) -dA -S -o vm.asm.s $(srcdir)/vm.c
 vm.cpp:
 	$(CPP) $(CPPFLAGS) $(CFLAGS) $(srcdir)/vm.c > vm.cpp.txt
-
 EOS
   }
 end

Modified: trunk/vm.h
===================================================================
--- trunk/vm.h	2005-06-27 11:09:33 UTC (rev 174)
+++ trunk/vm.h	2005-06-27 14:32:31 UTC (rev 175)
@@ -95,10 +95,26 @@
 /**********************************/
 #ifdef DISPATCH_DIRECT_THREADED_CODE
 
+#define x86_dispatch(addr) \
+  asm volatile("jmp *%0;" : : "r" (addr))
+
 /* direct threaded code */
-#define TC_DISPATCH(insn)   \
+#if __GNUC__ && __i386__
+
+/* for GCC 3.4.x */
+#define TC_DISPATCH(insn) \
+  x86_dispatch(*((void **)reg_pc)); \
   goto *GET_CURRENT_INSN();
+#else
 
+#define TC_DISPATCH(insn) \
+  goto *GET_CURRENT_INSN();
+
+#endif
+
+//  goto *GET_CURRENT_INSN(); \
+//  rb_bug("dtc error");
+
 #define GET_SEQ(iseq) (iseq)->iseq_dt
 
 /**********************************/


--
ML: yarv-diff quickml.atdot.net
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]