* tool/ruby_vm/models/bare_instructions.rb (predefine_attributes):
`sp_inc` attribute which may return negative values must be
signed `rb_snum_t`, to be signed-expanded at type promotion.
* vm_insnhelper.h (ADJ_SP): removed the workaround for platforms
where rb_num_t is wider than int.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62103 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Instead of using magic numbers, let us define a series of attributes
and use them from the VM core. Proper function declarations makes
these attributes inlined in most modern compilers. On my machine
exact same binary is generated with or without this changeset.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
as it's helpful for debugging.
I'm not sure what's the good output for RubyVM::TraceInstructions, so I
left it as it is.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62068 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This was not requested :) but actually easier than the previous
so I just did it anyway.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Previous commit changed insns.def format. Now is the time for its
generators. In doing so I chose to modernize the system, not just
patch. My attempt includes
- extensive use of Onigumo regular expressions
- split from one big file (instruction.rb) into separated MVC
- partial view
Also, let me take this opportunity to kill old unused features
such as
- stack caching
- minsns / yasmdata which are never seriously used
- yarvarch document generation (moved to doc/)
- vast majority of unused arguments to insns2vm.rb
This commit generates VM source codes that cleanly compile, and
the generated binary passes tests. At least for me.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Previous commit changed insns.def format. Now is the time for its
generators. In doing so I chose to modernize the system, not just
patch. My attempt includes
- extensive use of Onigumo regular expressions
- split from one big file (instruction.rb) into separated MVC
- partial view
Also, let me take this opportunity to kill old unused features
such as
- stack caching
- minsns / yasmdata which are never seriously used
- yarvarch document generation (moved to doc/)
- vast majority of unused arguments to insns2vm.rb
This commit generates VM source codes that cleanly compile, and
the generated binary passes tests. At least for me.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61733 b2dd03c8-39d4-4d8f-98ff-823fe69b080e