summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2024-02-20 17:23:08 -0800
committerGitHub <noreply@github.com>2024-02-20 17:23:08 -0800
commitce4142bcb70cc345507f4479702ad3069e60565b (patch)
treed398837f9c93de0d3aa4114b6d790a7741a416cd
parent776dbbba7287a44ea789385ef41d59261459031b (diff)
YJIT: rb_str_concat_literals is not leaf (#10035)
-rw-r--r--yjit/src/codegen.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/yjit/src/codegen.rs b/yjit/src/codegen.rs
index e686a61de5..65af70bf4c 100644
--- a/yjit/src/codegen.rs
+++ b/yjit/src/codegen.rs
@@ -3064,8 +3064,8 @@ fn gen_concatstrings(
) -> Option<CodegenStatus> {
let n = jit.get_arg(0).as_usize();
- // Save the PC and SP because we are allocating
- jit_prepare_call_with_gc(jit, asm);
+ // rb_str_concat_literals may raise Encoding::CompatibilityError
+ jit_prepare_non_leaf_call(jit, asm);
let values_ptr = asm.lea(asm.ctx.sp_opnd(-(SIZEOF_VALUE_I32 * n as i32)));