[前][次][番号順一覧][スレッド一覧]

ruby-changes:2366

From: ko1@a...
Date: 9 Nov 2007 22:04:39 +0900
Subject: [ruby-changes:2366] nobu - Ruby:r13857 (trunk): * vm.h (FRAME_MAGIC_MASK_BITS): bits of FRAME_MAGIC_MASK.

nobu	2007-11-09 22:04:22 +0900 (Fri, 09 Nov 2007)

  New Revision: 13857

  Modified files:
    trunk/ChangeLog
    trunk/insnhelper.ci
    trunk/vm.h

  Log:
    * vm.h (FRAME_MAGIC_MASK_BITS): bits of FRAME_MAGIC_MASK.
    
    * insnhelper.ci (vm_call_cfunc, vm_cfunc_flags): use shift operations.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/insnhelper.ci?r1=13857&r2=13856
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/vm.h?r1=13857&r2=13856
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13857&r2=13856

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 13856)
+++ ChangeLog	(revision 13857)
@@ -1,3 +1,9 @@
+Fri Nov  9 22:04:21 2007  Nobuyoshi Nakada  <nobu@r...>
+
+	* vm.h (FRAME_MAGIC_MASK_BITS): bits of FRAME_MAGIC_MASK.
+
+	* insnhelper.ci (vm_call_cfunc, vm_cfunc_flags): use shift operations.
+
 Fri Nov  9 21:46:28 2007  Koichi Sasada  <ko1@a...>
 
 	* eval.c (eval): should be volatile value for GC.
Index: vm.h
===================================================================
--- vm.h	(revision 13856)
+++ vm.h	(revision 13857)
@@ -236,7 +236,8 @@
 #define FRAME_MAGIC_IFUNC  0x81
 #define FRAME_MAGIC_EVAL   0x91
 #define FRAME_MAGIC_LAMBDA 0xa1
-#define FRAME_MAGIC_MASK   0xff
+#define FRAME_MAGIC_MASK_BITS   8
+#define FRAME_MAGIC_MASK   (~(~0<<FRAME_MAGIC_MASK_BITS))
 
 #define VM_FRAME_FLAG(type) ((VALUE)((type) & FRAME_MAGIC_MASK))
 
Index: insnhelper.ci
===================================================================
--- insnhelper.ci	(revision 13856)
+++ insnhelper.ci	(revision 13857)
@@ -355,7 +355,7 @@
     EXEC_EVENT_HOOK(th, RUBY_EVENT_C_CALL, recv, id, klass);
     {
 	rb_control_frame_t *cfp =
-	    vm_push_frame(th, 0, FRAME_MAGIC_CFUNC | flag * (FRAME_MAGIC_MASK + 1),
+	    vm_push_frame(th, 0, FRAME_MAGIC_CFUNC | (flag << FRAME_MAGIC_MASK_BITS),
 			  recv, (VALUE) blockptr, 0, reg_cfp->sp, 0, 1);
 
 	cfp->method_id = id;
@@ -379,7 +379,7 @@
 vm_cfunc_flags(rb_control_frame_t *cfp)
 {
     if (RUBYVM_CFUNC_FRAME_P(cfp))
-	return cfp->flag / (FRAME_MAGIC_MASK + 1);
+	return cfp->flag >> FRAME_MAGIC_MASK_BITS;
     return 0;
 }
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧]