Andy Wingo
63de1893c3
Merge remote-tracking branch 'lightening/master'
2019-05-23 10:04:52 +02:00
Andy Wingo
e9e52b6ab9
Mark a couple functions as maybe-unused.
...
* libguile/jit.c (fp_scm_operand, sp_slot_operand): Maybe unused.
2019-05-23 09:34:08 +02:00
Andy Wingo
be8ac3589e
Merge remote-tracking branch 'lightening/master'
2019-05-22 23:05:06 +02:00
Andy Wingo
3b707bb43d
Merge remote-tracking branch 'lightening/master'
2019-05-22 17:30:25 +02:00
Andy Wingo
9b4870cad3
Merge remote-tracking branch 'lightening/master'
2019-05-21 16:06:11 +02:00
Andy Wingo
ec9fa9561b
Merge remote-tracking branch 'lightening/master'
2019-05-21 15:35:15 +02:00
Andy Wingo
7bc95fde98
Merge remote-tracking branch 'lightening/master'
2019-05-21 15:30:56 +02:00
Andy Wingo
12e0063022
Merge remote-tracking branch 'lightening/master'
2019-05-21 14:21:42 +02:00
Andy Wingo
da0cc5d3e6
Bless enter_mcode as a function pointer
...
* libguile/jit.c (initialize_jit): Bless enter_mcode, to allow ARMv7
interworking.
2019-05-21 14:02:27 +02:00
Andy Wingo
2feb4cf419
Merge remote-tracking branch 'lightening/master'
2019-05-21 14:00:55 +02:00
Andy Wingo
e00936d46b
Allow jit_end to fail
...
* libguile/jit.c (emit_code): Emitting a constant table might cause us
to fail.
2019-05-21 13:36:37 +02:00
Andy Wingo
2876f054e8
Merge remote-tracking branch 'lightening/master'
2019-05-21 12:44:23 +02:00
Andy Wingo
107926f8dd
Fix allocator passed to lightening
...
* libguile/jit.c (jit_alloc_fn): On targets that need a dynamically
allocated literal pool, we will need to trace that pool, so pass a
pointerful malloc. Fixes JIT on AArch64.
2019-05-21 12:39:55 +02:00
Andy Wingo
a4875baa4e
Merge remote-tracking branch 'lightening/master'
2019-05-21 12:39:34 +02:00
Andy Wingo
03ceca9a2b
Merge remote-tracking branch 'lightening/master'
2019-05-21 12:25:14 +02:00
Andy Wingo
f81f43591f
Merge remote-tracking branch 'lightening/master'
2019-05-21 12:14:50 +02:00
Andy Wingo
66b96f9359
Merge remote-tracking branch 'lightening/master'
2019-05-20 21:36:17 +02:00
Andy Wingo
e057ea01f6
Merge remote-tracking branch 'lightening/master'
2019-05-20 15:48:27 +02:00
Andy Wingo
638846dc61
Merge from upstream lightening
2019-05-08 21:46:57 +02:00
Andy Wingo
6e9d59f34d
Merge from upstream lightening
2019-04-29 17:15:58 +02:00
Andy Wingo
7982839031
Merge from upstream lightening
2019-04-29 16:13:48 +02:00
Andy Wingo
c461126fab
Fix u64-ref JIT on 32-bit
...
* libguile/jit.c (compile_u64_ref): Fix 32-bit load path; endianness was
reversed.
2019-04-29 09:41:03 +02:00
Andy Wingo
85b3ee0ec3
Fix unneeded stack alignment.
...
* libguile/jit.c (emit_entry_trampoline): Remove unneeded alignment.
2019-04-28 18:45:10 +02:00
Andy Wingo
8f695c058a
Merge from upstream lightening
2019-04-28 18:44:13 +02:00
Andy Wingo
983af3be3b
Merge from upstream lightening
2019-04-28 16:21:22 +02:00
Andy Wingo
fb1f3ba051
Fix errors in 32-bit JIT support
...
* libguile/jit.c (compile_ursh_immediate):
(compile_ulsh_immediate): Fix immediate/register variant calling.
Happily a benefit of lightening, as type safety did this for us.
(DEFINE_CLOBBER_RECORDING_EMITTER_R_R_2): Pass JIT state.
2019-04-28 13:54:34 +02:00
Andy Wingo
334d0ba860
Adapt to lightening changes
...
* libguile/jit.c (emit_entry_trampoline): Use
jit_{enter,leave}_jit_abi.
(compile_allocate_words_immediate): Use JIT_OPERAND_ABI_WORD.
2019-04-28 13:54:34 +02:00
Andy Wingo
26bd81716b
Align stack before entering JIT code
...
* libguile/jit.c (emit_entry_trampoline): Ensure stack is aligned when
going into JIT code.
2019-04-28 13:54:34 +02:00
Andy Wingo
51618e7e83
Merge from upstream lightening
2019-04-28 13:53:16 +02:00
Andy Wingo
14e64a8b57
Ensure stack alignment in JIT code.
...
* libguile/jit.c (emit_entry_trampoline): Explicitly align stack.
2019-04-26 12:45:16 +02:00
Andy Wingo
5b45f04cc8
Merge from upstream Lightening
2019-04-26 12:41:47 +02:00
Andy Wingo
4e5329676b
Fix backtraces with call-with-values during bootstrap
...
* libguile/programs.c (scm_i_program_name): Use scm_i_primitive_name for
primitives. No functional change though.
* libguile/vm.c (DEFINE_BUILTIN): Mark builtins as primitives.
2019-04-26 11:15:49 +02:00
Andy Wingo
52248cf622
Adapt to changes in upstream lightening
...
* libguile/jit.c (emit_entry_trampoline): Adapt to change in callee-save
predicates.
2019-04-25 23:47:27 +02:00
Andy Wingo
5622396cd9
Merge from upstream lightening
2019-04-25 23:24:27 +02:00
Andy Wingo
4088915a7e
Lower default JIT threshold as JIT is cheaper now
...
* libguile/jit.c (default_jit_threshold): Lower from 50000 to 1000.
2019-04-25 18:41:03 +02:00
Andy Wingo
e9a372b020
Re-enable fixnum less-than JIT fast-path
...
* libguile/jit.c (compile_less): Re-enable fast-path for fixnums, now
that the JIT library works :)
2019-04-25 18:24:20 +02:00
Andy Wingo
f0be544463
Merge from upstream lightening
2019-04-25 18:12:42 +02:00
Andy Wingo
b0cd9c0b77
Merge from upstream lightening
2019-04-25 17:16:54 +02:00
Andy Wingo
fa6093c4ef
Merge from upstream lightening
2019-04-24 22:57:26 +02:00
Andy Wingo
0ef614ecf9
Fix a JIT bug
...
* libguile/jit.c (compile): Reset frame size as well when restarting
compilation. Fixes JIT errors.
2019-04-24 22:20:00 +02:00
Andy Wingo
9a32b4b1ad
Adapt to new lightening call API
...
* libguile/jit.c: Operands have their ABI in them. We can now have
addends on GPR and MEM operands, which can improve register
allocation. Use new jit_calli_3, etc helper APIs.
2019-04-24 16:02:33 +02:00
Andy Wingo
d75303780b
Merge from upstream lightening
2019-04-24 15:53:22 +02:00
Andy Wingo
609df9ea55
Merge from upstream lightening
2019-04-22 09:17:26 +02:00
Andy Wingo
b35662fb4e
Merge from upstream Lightening
2019-04-04 17:07:09 +02:00
Andy Wingo
cfffd5b241
Fix compilation of call-scm<-u64
...
* libguile/jit.c (compile_call_scm_from_u64): Fix to take operands from
the right place.
2019-04-04 16:35:44 +02:00
Andy Wingo
5df432b763
Fix arena expansion logic
...
* libguile/jit.c (compile): Fix logic to clear old labels.
2019-04-04 14:59:38 +02:00
Andy Wingo
891e7600f4
JIT fixes for arena overflow
...
* libguile/jit.c (compute_mcode): Move analysis outside the code
emitter, as it doesn't need to re-run on overflow.
(compile): Clear labels before emitting, as they may have changed if we
overflowed.
2019-04-04 14:32:05 +02:00
Andy Wingo
9ff21412ff
Minor JIT cleanups
...
* libguile/jit.c (fp_scm_operand): Fix assertion about register state.
(compile_call_scm_sz_u32): Fix ABI declaration for immediate.
Some whitespace cleanups as well.
2019-04-04 12:48:37 +02:00
Andy Wingo
39d1ed3c27
Merge from upstream Lightening
2019-04-04 12:11:08 +02:00
Andy Wingo
89de2cb286
More various JIT fixen
...
* libguile/jit.c (prepare_jit_state): Remove unused function.
(initialize_thread_jit_state): Since the lightening state is allocated
using GC memory, trace the JIT state.
(compute_mcode): Avoid double-compile.
2019-04-04 12:10:13 +02:00