1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-20 02:30:23 +02:00

Add untagged bitwise operations

* libguile/vm-engine.c (ulogand, ulogior, ulogsub, ulsh, ursh)
  (scm->u64/truncate): New ops.
* module/language/cps/compile-bytecode.scm (compile-function):
* module/language/cps/effects-analysis.scm:
* module/language/cps/slot-allocation.scm (compute-var-representations):
* module/language/cps/specialize-primcalls.scm (specialize-primcalls):
* module/language/cps/types.scm:
* module/language/cps/utils.scm (compute-constant-values):
* module/system/vm/assembler.scm: Wire up support for the new ops.
This commit is contained in:
Andy Wingo 2015-12-01 10:51:00 +01:00
parent eb86afcc7a
commit 3d6dd2f81c
8 changed files with 170 additions and 9 deletions

View file

@ -153,6 +153,11 @@
(emit-logior* . emit-logior)
(emit-logxor* . emit-logxor)
(emit-logsub* . emit-logsub)
(emit-ulogand* . emit-ulogand)
(emit-ulogior* . emit-ulogior)
(emit-ulogsub* . emit-ulogsub)
(emit-ursh* . emit-ursh)
(emit-ulsh* . emit-ulsh)
(emit-make-vector* . emit-make-vector)
(emit-make-vector/immediate* . emit-make-vector/immediate)
(emit-vector-length* . emit-vector-length)
@ -173,6 +178,7 @@
emit-load-f64
(emit-f64->scm* . emit-f64->scm)
(emit-scm->u64* . emit-scm->u64)
(emit-scm->u64/truncate* . emit-scm->u64/truncate)
emit-load-u64
(emit-u64->scm* . emit-u64->scm)
(emit-scm->s64* . emit-scm->s64)