diff options
Diffstat (limited to 'yjit_codegen.c')
-rw-r--r-- | yjit_codegen.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/yjit_codegen.c b/yjit_codegen.c index 2e6613510f..83e6785a97 100644 --- a/yjit_codegen.c +++ b/yjit_codegen.c @@ -2048,7 +2048,8 @@ gen_equality_specialized(jitstate_t* jit, ctx_t* ctx, uint8_t *side_exit) if (FIXNUM_P(comptime_a) && FIXNUM_P(comptime_b)) { if (!assume_bop_not_redefined(jit->block, INTEGER_REDEFINED_OP_FLAG, BOP_EQ)) { - return YJIT_CANT_COMPILE; + // if overridden, emit the generic version + return false; } guard_two_fixnums(ctx, side_exit); @@ -2067,9 +2068,10 @@ gen_equality_specialized(jitstate_t* jit, ctx_t* ctx, uint8_t *side_exit) return true; } else if (CLASS_OF(comptime_a) == rb_cString && - CLASS_OF(comptime_b) == rb_cString) { + CLASS_OF(comptime_b) == rb_cString) { if (!assume_bop_not_redefined(jit->block, STRING_REDEFINED_OP_FLAG, BOP_EQ)) { - return YJIT_CANT_COMPILE; + // if overridden, emit the generic version + return false; } // Load a and b in preparation for call later |