1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 22:10:21 +02:00
guile/module/language
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
..
brainfuck Fix brainfuck comment 2013-12-02 19:03:50 +01:00
bytecode Rename "RTL" to "bytecode" 2013-12-02 21:31:47 +01:00
cps Rework VM approach to shuffling unknown numbers of args 2018-07-20 11:42:30 +02:00
ecmascript Fix tree-il code generation for ECMAscript `new' expression. 2016-10-25 23:39:30 +02:00
elisp Use make-struct/no-tail instead of make-struct 2017-09-20 22:07:18 +02:00
scheme Merge remote-tracking branch 'origin/stable-2.0' 2013-08-11 22:46:22 -04:00
tree-il Use intrinsics for top-level refs outside captured scopes 2018-05-14 16:25:50 +02:00
value Add 'for-humans?' flag to <language> specifications. 2013-01-27 10:16:40 -05:00
bytecode.scm Explode atomic box ops to new atomic instructions 2018-04-13 10:09:56 +02:00
cps.scm Add $code CPS expression type 2018-04-10 17:06:27 +02:00
tree-il.scm Use make-struct/simple in tree-il 2018-01-22 08:09:33 +01:00