1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-17 09:10:22 +02:00
guile/module/language
Andy Wingo 17bd5a8938 Add lsh, rsh instructions
* libguile/vm-engine.c (lsh, rsh, lsh/immediate, rsh/immediate): New
  instructions taking unboxed bit counts.
* module/language/cps/compile-bytecode.scm (compile-function):
* module/language/cps/effects-analysis.scm:
* module/language/cps/specialize-numbers.scm (specialize-f64-unop):
  (specialize-u64-unop): Add ability to specialize add/immediate, etc,
  and add lsh/immediate as well.
  (specialize-u64-binop, specialize-u64-shift): Move rsh/lsh
  specialization to its own procedure, given that the bit count is
  already unboxed.
  (specialize-operations): Adapt to support more /immediate
  instructions.
* module/language/cps/type-fold.scm (mul): Reify an lsh/immediate
  instead of an ash.
* module/language/cps/types.scm (compute-ash-range): Add type inferrers
  for lsh, rsh, and their immediate variants.
* module/system/vm/assembler.scm: Export emit-lsh and so on.
* module/language/tree-il/compile-cps.scm (convert): Convert "ash" on
  immediates to rsh/immediate or lsh/immediate.
2017-11-05 15:00:16 +01: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 Add lsh, rsh instructions 2017-11-05 15:00:16 +01: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 Add lsh, rsh instructions 2017-11-05 15:00:16 +01:00
value Add 'for-humans?' flag to <language> specifications. 2013-01-27 10:16:40 -05:00
bytecode.scm cache-current-module, etc use immediate primcall parameters 2017-11-05 15:00:16 +01:00
cps.scm $primcall has a "param" member 2017-11-05 15:00:16 +01:00
tree-il.scm Use make-struct/no-tail instead of make-struct 2017-09-20 22:07:18 +02:00