aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-03 12:35:29 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-03 12:35:29 +0000
commit6378201f8b202e493613d1c0936788ddbe708c76 (patch)
tree8f472b33224e030d81d84824b4c06a786e4a9379
parentb99c31b38f883ef5dcd74dd9f791de7f1089435e (diff)
downloadruby-6378201f8b202e493613d1c0936788ddbe708c76.tar.gz
* transcode_data.h (WORDINDEX_SHIFT_BITS): defined.
(WORDINDEX2INFO): defined. (INFO2WORDINDEX): defined. * tool/transcode-tblgen.rb: use WORDINDEX2INFO. * transcode.c: use INFO2WORDINDEX. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog10
-rw-r--r--tool/transcode-tblgen.rb4
-rw-r--r--transcode.c2
-rw-r--r--transcode_data.h3
4 files changed, 16 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index b0dd1b15e4..c40e751330 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Wed Sep 3 21:31:59 2008 Tanaka Akira <akr@fsij.org>
+
+ * transcode_data.h (WORDINDEX_SHIFT_BITS): defined.
+ (WORDINDEX2INFO): defined.
+ (INFO2WORDINDEX): defined.
+
+ * tool/transcode-tblgen.rb: use WORDINDEX2INFO.
+
+ * transcode.c: use INFO2WORDINDEX.
+
Wed Sep 3 21:19:51 2008 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
* golf_prelude.rb: suppress warning when goruby -v.
diff --git a/tool/transcode-tblgen.rb b/tool/transcode-tblgen.rb
index cbeccc35ec..75b88b0083 100644
--- a/tool/transcode-tblgen.rb
+++ b/tool/transcode-tblgen.rb
@@ -365,13 +365,13 @@ class ActionMap
size = words_code.length
words_code.insert_at_last(infos.length,
- "\#define #{infos_name} (sizeof(unsigned int)*#{size})\n" +
+ "\#define #{infos_name} WORDINDEX2INFO(#{size})\n" +
format_infos(infos) + "\n")
end
size = words_code.length
words_code.insert_at_last(NUM_ELEM_BYTELOOKUP,
- "\#define #{name} (sizeof(unsigned int)*#{size})\n" +
+ "\#define #{name} WORDINDEX2INFO(#{size})\n" +
<<"End" + "\n")
#{offsets_name},
#{infos_name},
diff --git a/transcode.c b/transcode.c
index c404b0de02..aa89f12a8e 100644
--- a/transcode.c
+++ b/transcode.c
@@ -492,7 +492,7 @@ transcode_restartable0(const unsigned char **in_pos, unsigned char **out_pos,
}
#define BYTE_ADDR(index) (tr->byte_array + (index))
-#define WORD_ADDR(index) (tr->word_array + (index)/sizeof(*tr->word_array))
+#define WORD_ADDR(index) (tr->word_array + INFO2WORDINDEX(index))
#define BL_BASE(bl) BYTE_ADDR(BYTE_LOOKUP_BASE(WORD_ADDR(bl)))
#define BL_INFO(bl) WORD_ADDR(BYTE_LOOKUP_INFO(WORD_ADDR(bl)))
#define BL_MIN_BYTE(bl) (BL_BASE(bl)[0])
diff --git a/transcode_data.h b/transcode_data.h
index 1ceb0cf473..6081aec81d 100644
--- a/transcode_data.h
+++ b/transcode_data.h
@@ -14,6 +14,9 @@
#ifndef RUBY_TRANSCODE_DATA_H
#define RUBY_TRANSCODE_DATA_H 1
+#define WORDINDEX_SHIFT_BITS 2
+#define WORDINDEX2INFO(widx) ((widx) << WORDINDEX_SHIFT_BITS)
+#define INFO2WORDINDEX(info) ((info) >> WORDINDEX_SHIFT_BITS)
#define BYTE_LOOKUP_BASE(bl) ((bl)[0])
#define BYTE_LOOKUP_INFO(bl) ((bl)[1])