diff --git a/yjit_codegen.c b/yjit_codegen.c index 57efe6d3a8..5b95cc6ce5 100644 --- a/yjit_codegen.c +++ b/yjit_codegen.c @@ -726,7 +726,7 @@ enum { // Preconditions: // - receiver is in REG0 // - receiver has the same class as CLASS_OF(comptime_receiver) -// - ctx has not been modified since entry to the codegen of the instruction being compiled +// - no stack push or pops to ctx since the entry to the codegen of the instruction being compiled static codegen_status_t gen_get_ivar(jitstate_t *jit, ctx_t *ctx, const int max_chain_depth, VALUE comptime_receiver, ID ivar_name, bool pop_receiver, uint8_t *side_exit) { @@ -781,7 +781,7 @@ gen_get_ivar(jitstate_t *jit, ctx_t *ctx, const int max_chain_depth, VALUE compt mov(cb, out_opnd, REG1); } else { - // Compile value is *not* embeded. + // Compile time value is *not* embeded. // Guard that value is *not* embedded // See ROBJECT_IVPTR() from include/ruby/internal/core/robject.h diff --git a/yjit_core.c b/yjit_core.c index 68d4f976a3..8657f05ca3 100644 --- a/yjit_core.c +++ b/yjit_core.c @@ -137,14 +137,13 @@ Get the type of an instruction operand val_type_t ctx_get_opnd_type(const ctx_t* ctx, insn_opnd_t opnd) { - RUBY_ASSERT(opnd.idx < ctx->stack_size); - if (opnd.is_self) return ctx->self_type; if (ctx->stack_size > MAX_TEMP_TYPES) return TYPE_UNKNOWN; + RUBY_ASSERT(opnd.idx < ctx->stack_size); temp_mapping_t mapping = ctx->temp_mapping[ctx->stack_size - 1 - opnd.idx]; switch (mapping.kind)