1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-09 13:30:26 +02:00

Avoid saving IP for <? fast-path

* libguile/jit.c (compile_less): Only save IP on slow-path.
This commit is contained in:
Andy Wingo 2019-06-06 14:33:43 +02:00
parent 1128dbc444
commit 12d6e43176

View file

@ -3282,13 +3282,13 @@ compile_less (scm_jit_state *j, uint16_t a, uint16_t b)
uint32_t *target; uint32_t *target;
enum scm_opcode op = fuse_conditional_branch (j, &target); enum scm_opcode op = fuse_conditional_branch (j, &target);
emit_store_current_ip (j, T0);
emit_sp_ref_scm (j, T0, a); emit_sp_ref_scm (j, T0, a);
emit_sp_ref_scm (j, T1, b); emit_sp_ref_scm (j, T1, b);
emit_andr (j, T2, T0, T1); emit_andr (j, T2, T0, T1);
fast = jit_bmsi (j->jit, T2, scm_tc2_int); fast = jit_bmsi (j->jit, T2, scm_tc2_int);
emit_store_current_ip (j, T2);
emit_call_2 (j, scm_vm_intrinsics.less_p, emit_call_2 (j, scm_vm_intrinsics.less_p,
jit_operand_gpr (JIT_OPERAND_ABI_POINTER, T0), jit_operand_gpr (JIT_OPERAND_ABI_POINTER, T0),
jit_operand_gpr (JIT_OPERAND_ABI_POINTER, T1)); jit_operand_gpr (JIT_OPERAND_ABI_POINTER, T1));