diff options
| author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-09-03 12:35:29 +0000 |
|---|---|---|
| committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-09-03 12:35:29 +0000 |
| commit | 3009b4616f05949e202674371b3eb80b084f08f7 (patch) | |
| tree | 8f472b33224e030d81d84824b4c06a786e4a9379 | |
| parent | 6c430d154898bfb1fb459e974b2edecb2ff47c23 (diff) | |
| download | ruby-3009b4616f05949e202674371b3eb80b084f08f7.tar.gz ruby-3009b4616f05949e202674371b3eb80b084f08f7.tar.xz ruby-3009b4616f05949e202674371b3eb80b084f08f7.zip | |
* transcode_data.h (WORDINDEX_SHIFT_BITS): defined.
(WORDINDEX2INFO): defined.
(INFO2WORDINDEX): defined.
* tool/transcode-tblgen.rb: use WORDINDEX2INFO.
* transcode.c: use INFO2WORDINDEX.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 10 | ||||
| -rw-r--r-- | tool/transcode-tblgen.rb | 4 | ||||
| -rw-r--r-- | transcode.c | 2 | ||||
| -rw-r--r-- | transcode_data.h | 3 |
4 files changed, 16 insertions, 3 deletions
@@ -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 cbeccc35e..75b88b008 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 c404b0de0..aa89f12a8 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 1ceb0cf47..6081aec81 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]) |
