Граф коммитов

14 Коммитов

Автор SHA1 Сообщение Дата
ko1 d3f73f45d8 * insns.def: Change the operand type of setinlinecache
(OFFSET to IC).  This IC must be same as corresponding
  getinlinecache instruction's IC operand.
  This change is for a little performance improvement
  (getting IC directly) and is for the AOT compilation development.
* compile.c, iseq.c, insns.def: Change the approach to handling inline
  cahce (IC) type operand to enable the above change.
  This change also affects ISeq#to_a method.  The inline cache operand
  will be dumped by fixnum, the index of inline cache, in other words,
  inline cache identity.
* template/insns_info.inc.tmpl, tool/instruction.rb: No need to count
  inline cache size (insn_iclen()).



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-24 17:06:15 +00:00
nobu a97e80ba74 * tool/instruction.rb (make_header_prepare_stack): check stack
overflow.  [ruby-core:25714]

* tool/instruction.rb (make_footer_stack_val): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25048 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-23 02:28:08 +00:00
nobu fe1ce93f52 * compile.c, cont.c, gc.c, insns.def, iseq.c, iseq.h, process.c,
thread.c, vm.c, vm_core.h, vm_dump.c, vm_eval.c,
  vm_insnhelper.c, vm_method.c, template/insns_info.inc.tmpl,
  tool/instruction.rb: fixed types.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25030 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-21 20:58:26 +00:00
nobu c3cd2816ae * tool/instruction.rb (make_insn_operand_optimized): fixed typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-21 19:42:26 +00:00
ko1 b82db5251c * insns.def (opt_*): add IC operands.
* vm_insnhelper.h (CALL_SIMPLE_METHOD): add a version which
  use an inline cache.  USE_IC_FOR_SPECIALIZED_METHOD macro
  switchs the behaviour.  This change also removes
  CALL_SIMPLE_METHOD_IC() macro.
* tool/instruction.rb: fix elimination process to ignore
  variable "ic".



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24778 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-06 20:42:50 +00:00
nobu cb3c0b4a10 * tool/instruction.rb: executable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24732 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-02 00:30:29 +00:00
nobu 61d983df58 * tool/instruction.rb (RubyVM::InstructionsLoader#make_stackcaching_insns):
simplified.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-01 22:48:51 +00:00
ko1 20d9aefccb * 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@24085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-13 09:30:23 +00:00
nobu d06f74d736 * insns.def, tool/instruction.rb: fixed types.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-30 07:46:44 +00:00
yugui c2091e37ec * keywords, lex.c.src, opt_insn_unif.def, opt_operand.def: moved rarely changed
input files for code generators into defs/ directory.

* Makefile.in (lex.c): followed keywords and lex.c.src.

* common.mk (parser.o): followed keywords.
  (INSNS): followed opt_*.def

* tools/instruction.rb: followed opt_*.def.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-18 22:30:13 +00:00
ko1 a056546f0d * tool/instruction.rb: RubyVM is not module.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17776 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-01 11:46:48 +00:00
nobu 59432db7f7 * vm_core.h (rb_num_t): moved form vm.h.
* tool/instruction.rb (RubyVM::Instruction#sp_increase_c_expr),
  tool/instruction.rb (RubyVM::VmBodyGenerator#make_header_operands):
  omit unused variables.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-23 03:23:08 +00:00
nobu 5c1926ac82 * compile.c (iseq_set_sequence, iseq_insns_unification,
insn_data_to_s_detail): constified.

* iseq.c (insn_operand_intern, ruby_iseq_disasm_insn): ditto.

* template/{insns_info,opt_sc,optunifs}.inc.tmpl: ditto.

* tool/instruction.rb (OptUnifsIncGenerator): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-03 00:00:48 +00:00
ko1 c375b2f420 * tool/insns2vm.rb: moved from lib/vm/instruction.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-22 01:34:09 +00:00