1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-27 21:40:34 +02:00
guile/module/system/vm
Andy Wingo c2a8224a63 Rework VM approach to shuffling unknown numbers of args
* libguile/vm-engine.c (shuffle-down, expand-apply-argument): New
  instructions.
  (tail-call, tail-call-label, return-values): Don't reset the frame.
  The compiler should reset the frame appropriately.
  (tail-call/shuffle, tail-apply): Remove unused instructions.
* libguile/vm.c (vm_builtin_apply_code): Use new shuffle-down and
  expand-apply-argument opcodes.
  (vm_builtin_call_with_values_code): Replace tail-call/shuffle with
  shuffle-down then tail-call.
* libguile/jit.c (compile_shuffle_down, compile_expand_apply_argument):
  Add compiler stubs
  (COMPILE_X8_F12_F12): New definition.
  (compile_tail_call_shuffle, compile_tail_apply): Remove unused
  compilers.
* module/language/cps/compile-bytecode.scm (compile-function): Emit
  reset-frame before tail calls and returns.
* module/system/vm/assembler.scm (system): Remove unbound "emit-return"
  export.
* module/system/vm/disassembler.scm (code-annotation)
  (instruction-has-fallthrough?, define-stack-effect-parser): Adapt for
  opcode changes.
2018-07-20 11:42:30 +02:00
..
assembler.scm Rework VM approach to shuffling unknown numbers of args 2018-07-20 11:42:30 +02:00
coverage.scm No more VM objects visible to Scheme 2013-11-21 16:45:03 +01:00
debug.scm Rename gc-pointer-ref to pointer-ref 2018-01-14 13:40:05 +01:00
disassembler.scm Rework VM approach to shuffling unknown numbers of args 2018-07-20 11:42:30 +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 Fix stack effect/clobber parsing for calls 2017-12-27 15:46:25 +01:00
inspect.scm Remove assembly language. 2013-11-08 16:45:10 +01:00
linker.scm 64KB segment alignment 2017-03-08 22:49:24 +01:00
loader.scm Rename objcodes?.{scm,c,h} to loader.{scm,c,h} 2013-11-19 21:45:07 +01:00
program.scm Check for missing debug info in print-program 2016-09-02 21:04:20 -04:00
trace.scm frame-call-representation has #:top-frame? as keyword argument 2014-05-04 11:18:54 +02:00
trap-state.scm No more VM objects visible to Scheme 2013-11-21 16:45:03 +01:00
traps.scm 'frame-matcher' doesn't crash when the last IP is unknown. 2017-10-25 10:48:50 -07:00
vm.scm Remove default soft stack limit; add call-with-stack-overflow-handler 2014-03-12 17:18:13 +01:00