diff options
author | Aaron Patterson <[email protected]> | 2019-10-11 17:06:41 -0700 |
---|---|---|
committer | Aaron Patterson <[email protected]> | 2019-12-05 13:37:02 -0800 |
commit | 2c8d186c6e4fd03ea57466fa6dce6bad40d09401 (patch) | |
tree | 06b3ae0ce2946092b0bb667d4df30dcf05cc5b19 /iseq.c | |
parent | 38b7f947a2c76aad29a2e42f3bd0848854d96519 (diff) |
Introduce an "Inline IVAR cache" struct
This commit introduces an "inline ivar cache" struct. The reason we
need this is so compaction can differentiate from an ivar cache and a
regular inline cache. Regular inline caches contain references to
`VALUE` and ivar caches just contain references to the ivar index. With
this new struct we can easily update references for inline caches (but
not inline var caches as they just contain an int)
Diffstat (limited to 'iseq.c')
-rw-r--r-- | iseq.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -1917,6 +1917,7 @@ rb_insn_operand_intern(const rb_iseq_t *iseq, break; case TS_IC: + case TS_IVC: case TS_ISE: ret = rb_sprintf("<is:%"PRIdPTRDIFF">", (union iseq_inline_storage_entry *)op - iseq->body->is_entries); break; @@ -2741,6 +2742,7 @@ iseq_data_to_ary(const rb_iseq_t *iseq) } break; case TS_IC: + case TS_IVC: case TS_ISE: { union iseq_inline_storage_entry *is = (union iseq_inline_storage_entry *)*seq; |