mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 11:40:18 +02:00
JIT tracks register clobbers
* libguile/jit.c (struct scm_jit_state): Add beginnings of a little local register allocator. (reset_register_state): New helper. (clear_scratch_register_state): Use new helper. (record_gpr_clobber, record_fpr_clobber): New helpers, used when there may be cached variables in registers, called when registers are written. (set_sp_cache_gpr, set_sp_cache_fpr): New helpers, called when results are written to the stack. (emit_retval, emit_movi, emit_ldxi, DEFINE_CLOBBER_RECORDING_EMITTER_R) (DEFINE_CLOBBER_RECORDING_EMITTER_P, DEFINE_CLOBBER_RECORDING_EMITTER_R_I) (DEFINE_CLOBBER_RECORDING_EMITTER_R_R): New wrappers for Lightning API that also records register clobbers. Update callers. (save_reloadable_register_state): New helper. (restore_reloadable_register_state): Rename from ensure_register_state.
This commit is contained in:
parent
10bfd55ec3
commit
c03e2bbbb4
1 changed files with 454 additions and 255 deletions
709
libguile/jit.c
709
libguile/jit.c
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue