diff options
author | Andy Wingo <wingo@pobox.com> | 2018-03-30 22:11:18 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2018-03-30 22:11:18 +0200 |
commit | 1f6f282f163598baacc89ec4d38342ff17c7092a (patch) | |
tree | 8aa29e0bae2a8bf95a93e8feb5dd6b8502acde93 /libguile/vm.c | |
parent | 4d530a94bbe9be2d54216d07b002e700368d4b28 (diff) | |
download | guile-1f6f282f163598baacc89ec4d38342ff17c7092a.tar.gz |
Compile some generic arithmetic to intrinsic calls
* libguile/intrinsics.h: Rename intrinsic types added in previous
commit.
* libguile/vm-engine.c (call-scm<-scm-scm, call-scm<-scm-uimm): New
instructions.
* libguile/vm.c: Include intrinsics.h.
* module/language/bytecode.scm
* module/language/bytecode.scm (*intrinsic-codes*, *intrinsic-names*):
New internal definitions.
(intrinsic-name->index, intrinsic-index->name): New exported
definitions.
* module/system/vm/assembler.scm (encode-X8_S8_S8_S8-C32<-/shuffle):
(encode-X8_S8_S8_C8-C32<-/shuffle): New shuffling encoders.
(shuffling-encoder-name): Add case for new shuffling encoders.
(define-scm<-scm-scm-intrinsic, define-scm<-scm-uimm-intrinsic): New
helpers. Define encoders for "add", etc.
Diffstat (limited to 'libguile/vm.c')
-rw-r--r-- | libguile/vm.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libguile/vm.c b/libguile/vm.c index 0a20f11cf..2381a144e 100644 --- a/libguile/vm.c +++ b/libguile/vm.c @@ -43,6 +43,7 @@ #include "libguile/frames.h" #include "libguile/gc-inline.h" #include "libguile/instructions.h" +#include "libguile/intrinsics.h" #include "libguile/loader.h" #include "libguile/programs.h" #include "libguile/simpos.h" |