1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-18 01:30:27 +02:00
guile/module/system/vm
Andy Wingo 382cc5c246 Add support for optimized unboxed abs and sqrt
Some components of this have been wired up for a while; this commit
finishes the compiler, runtime, and JIT support.

* libguile/intrinsics.h (SCM_FOR_ALL_VM_INTRINSICS):
* libguile/intrinsics.c (scm_bootstrap_intrinsics): Declare the new
  intrinsics.
* libguile/jit.c (compile_call_f64_from_f64): Define code generators for
  the new intrinsics.
* libguile/vm-engine.c (call-f64<-f64): New instruction.
* module/language/cps/effects-analysis.scm:
* module/language/cps/reify-primitives.scm (compute-known-primitives):
* module/language/cps/slot-allocation.scm (compute-var-representations):
* module/language/cps/specialize-numbers.scm (specialize-operations):
* module/language/tree-il/cps-primitives.scm (abs):
* module/system/vm/assembler.scm (system, define-f64<-f64-intrinsic):
  (sqrt, abs, fsqrt, fabs):
* module/language/cps/types.scm (fsqrt, fabs): Add new f64<-f64
  primitives.
2019-08-04 21:54:51 +02:00
..
assembler.scm Add support for optimized unboxed abs and sqrt 2019-08-04 21:54:51 +02:00
coverage.scm VM manages hook sets itself 2018-09-14 08:52:24 +02:00
debug.scm Rename gc-pointer-ref to pointer-ref 2018-01-14 13:40:05 +01:00
disassembler.scm Add bind-optionals instruction 2019-06-06 16:36:32 +02:00
dwarf.scm Rename "RTL" to "bytecode" 2013-12-02 21:31:47 +01:00
elf.scm elf: Add missing argument in 'elf-segment'. 2015-03-30 15:19:58 +02:00
frame.scm Remove push continuation hook; return hook runs before FP pop 2018-08-06 17:00:45 +02:00
inspect.scm Remove assembly language. 2013-11-08 16:45:10 +01:00
linker.scm Fix linker bug that could fail to find the shstrtab 2018-10-08 10:08:33 +02:00
loader.scm Rename objcodes?.{scm,c,h} to loader.{scm,c,h} 2013-11-19 21:45:07 +01:00
program.scm Add instrumentation to VM builtins 2018-08-17 08:50:33 +02:00
trace.scm Remove push continuation hook; return hook runs before FP pop 2018-08-06 17:00:45 +02:00
trap-state.scm No more VM objects visible to Scheme 2013-11-21 16:45:03 +01:00
traps.scm VM manages hook sets itself 2018-09-14 08:52:24 +02:00
vm.scm VM manages hook sets itself 2018-09-14 08:52:24 +02:00