diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-07-22 11:21:21 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-07-22 11:21:21 +0000 |
commit | c44360f62316f629441af47213a6c22ae1c3606b (patch) | |
tree | 65450d551e8bf87c9457a3a806c3fcff66b11d58 | |
parent | 6f8b0aeb3b6a7c8539dd3b4f09429ce2f459335f (diff) | |
download | ruby-c44360f62316f629441af47213a6c22ae1c3606b.tar.gz |
* vm_core.h: modify layout of rb_iseq_constant_body.
Move frequent accesssing fields to upper part.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51341 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | vm_core.h | 38 |
2 files changed, 24 insertions, 20 deletions
@@ -1,3 +1,9 @@ +Wed Jul 22 20:17:51 2015 Koichi Sasada <ko1@atdot.net> + + * vm_core.h: modify layout of rb_iseq_constant_body. + + Move frequent accesssing fields to upper part. + Wed Jul 22 19:57:47 2015 Koichi Sasada <ko1@atdot.net> * vm_core.h: remove unused declaration of @@ -251,29 +251,11 @@ struct rb_iseq_constant_body { } type; /* instruction sequence type */ int stack_max; /* for stack overflow check */ - - rb_iseq_location_t location; - - VALUE *iseq_encoded; /* encoded iseq (insn addr and operands) */ - unsigned int iseq_size; - unsigned int line_info_size; - - const VALUE mark_ary; /* Array: includes operands which should be GC marked */ - - /* insn info, must be freed */ - struct iseq_line_info_entry *line_info_table; - - ID *local_table; /* must free */ - int local_table_size; - /* sizeof(vars) + 1 */ int local_size; - union iseq_inline_storage_entry *is_entries; - int is_size; - - int callinfo_size; - rb_call_info_t *callinfo_entries; + unsigned int iseq_size; + VALUE *iseq_encoded; /* encoded iseq (insn addr and operands) */ /** * parameter information @@ -345,12 +327,28 @@ struct rb_iseq_constant_body { } *keyword; } param; + rb_iseq_location_t location; + + /* insn info, must be freed */ + struct iseq_line_info_entry *line_info_table; + + ID *local_table; /* must free */ + /* catch table */ struct iseq_catch_table *catch_table; /* for child iseq */ const struct rb_iseq_struct *parent_iseq; struct rb_iseq_struct *local_iseq; /* local_iseq->flip_cnt can be modified */ + + union iseq_inline_storage_entry *is_entries; + rb_call_info_t *callinfo_entries; + const VALUE mark_ary; /* Array: includes operands which should be GC marked */ + + int local_table_size; + int is_size; + int callinfo_size; + unsigned int line_info_size; }; struct rb_iseq_variable_body { |