diff options
| author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-07-13 09:30:23 +0000 |
|---|---|---|
| committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-07-13 09:30:23 +0000 |
| commit | 321a2a0920a349bdccac0bb31e3f1ca0126acdd3 (patch) | |
| tree | 4a46ed32d9918e8fdbf3d63cdda79a6526032b5b /tool | |
| parent | 2b1ca5addb362954f5009995b37147e95d5a328f (diff) | |
| download | ruby-321a2a0920a349bdccac0bb31e3f1ca0126acdd3.tar.gz ruby-321a2a0920a349bdccac0bb31e3f1ca0126acdd3.tar.xz ruby-321a2a0920a349bdccac0bb31e3f1ca0126acdd3.zip | |
* vm_core.h, compile.c: declare struct iseq_inline_cache_entry.
Inline cache (IC) entries are no longer GC managed object.
IC entries are freed when ISeq is freed.
* iseq.c: fix mark, free, memsize functions for above change.
* insns.def: remove rb_gc_write_barrier().
* vm_insnhelper.c (vm_method_search): ditto.
* tool/instruction.rb, template/insns_info.inc.tmpl (insn_iclen):
added.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'tool')
| -rw-r--r-- | tool/instruction.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tool/instruction.rb b/tool/instruction.rb index 4e60f04f6..8d55683da 100644 --- a/tool/instruction.rb +++ b/tool/instruction.rb @@ -977,6 +977,8 @@ class RubyVM # operands info operands_info = '' operands_num_info = '' + icoperands_num_info = '' + @insns.each{|insn| opes = insn.opes operands_info << ' ' @@ -987,6 +989,12 @@ class RubyVM num = opes.size + 1 operands_num_info << " #{num},\n" + + icnum = 0 + opes.each{|e| + icnum += 1 if e[0] == 'IC' + } + icoperands_num_info << " #{icnum},\n" } # stack num |
