зеркало из https://github.com/github/ruby.git
YJIT: Float arithmetics are actually leaf
with these guards in YJIT. The previous commit was to fix "conflict" between two PRs, but I actually wanted to use it here, which is why I filed the other one.
This commit is contained in:
Родитель
2220c4cf42
Коммит
21031f0a84
|
@ -5022,7 +5022,7 @@ fn jit_rb_float_plus(
|
|||
}
|
||||
|
||||
// Save the PC and SP because the callee may allocate Float on heap
|
||||
jit_prepare_non_leaf_call(jit, asm);
|
||||
jit_prepare_call_with_gc(jit, asm);
|
||||
|
||||
asm_comment!(asm, "Float#+");
|
||||
let obj = asm.stack_opnd(0);
|
||||
|
@ -5066,7 +5066,7 @@ fn jit_rb_float_minus(
|
|||
}
|
||||
|
||||
// Save the PC and SP because the callee may allocate Float on heap
|
||||
jit_prepare_non_leaf_call(jit, asm);
|
||||
jit_prepare_call_with_gc(jit, asm);
|
||||
|
||||
asm_comment!(asm, "Float#-");
|
||||
let obj = asm.stack_opnd(0);
|
||||
|
@ -5110,7 +5110,7 @@ fn jit_rb_float_mul(
|
|||
}
|
||||
|
||||
// Save the PC and SP because the callee may allocate Float on heap
|
||||
jit_prepare_non_leaf_call(jit, asm);
|
||||
jit_prepare_call_with_gc(jit, asm);
|
||||
|
||||
asm_comment!(asm, "Float#*");
|
||||
let obj = asm.stack_opnd(0);
|
||||
|
@ -5154,7 +5154,7 @@ fn jit_rb_float_div(
|
|||
}
|
||||
|
||||
// Save the PC and SP because the callee may allocate Float on heap
|
||||
jit_prepare_non_leaf_call(jit, asm);
|
||||
jit_prepare_call_with_gc(jit, asm);
|
||||
|
||||
asm_comment!(asm, "Float#/");
|
||||
let obj = asm.stack_opnd(0);
|
||||
|
|
Загрузка…
Ссылка в новой задаче