aboutsummaryrefslogtreecommitdiffstats
path: root/insns.def
diff options
context:
space:
mode:
authorAaron Patterson <tenderlove@ruby-lang.org>2019-10-11 17:06:41 -0700
committerAaron Patterson <tenderlove@ruby-lang.org>2019-12-05 13:37:02 -0800
commit2c8d186c6e4fd03ea57466fa6dce6bad40d09401 (patch)
tree06b3ae0ce2946092b0bb667d4df30dcf05cc5b19 /insns.def
parent38b7f947a2c76aad29a2e42f3bd0848854d96519 (diff)
downloadruby-2c8d186c6e4fd03ea57466fa6dce6bad40d09401.tar.gz
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 'insns.def')
-rw-r--r--insns.def6
1 files changed, 3 insertions, 3 deletions
diff --git a/insns.def b/insns.def
index 9bad6768f0..bd1bffbe02 100644
--- a/insns.def
+++ b/insns.def
@@ -207,7 +207,7 @@ setspecial
/* Get value of instance variable id of self. */
DEFINE_INSN
getinstancevariable
-(ID id, IC ic)
+(ID id, IVC ic)
()
(VALUE val)
/* "instance variable not initialized" warning can be hooked. */
@@ -219,7 +219,7 @@ getinstancevariable
/* Set value of instance variable id of self to val. */
DEFINE_INSN
setinstancevariable
-(ID id, IC ic)
+(ID id, IVC ic)
(VALUE val)
()
// attr bool leaf = false; /* has rb_check_frozen_internal() */
@@ -1040,7 +1040,7 @@ opt_getinlinecache
(VALUE val)
{
if (vm_ic_hit_p(ic, GET_EP())) {
- val = ic->ic_value.value;
+ val = ic->value;
JUMP(dst);
}
else {