diff options
author | Andy Wingo <wingo@pobox.com> | 2013-11-03 21:45:34 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2013-11-03 21:48:48 +0100 |
commit | d65514a2de2ef922d3613f0e35dea27a88313392 (patch) | |
tree | 7019c09ba8b323b0de16c0871a4b1b1373eb2226 /module/system/vm/disassembler.scm | |
parent | 9ae9debbd35505ef4040c1a876f7bd64434d6d14 (diff) | |
download | guile-d65514a2de2ef922d3613f0e35dea27a88313392.tar.gz |
RTL compiler supports static bitvectors
* libguile/arrays.c (scm_from_contiguous_typed_array):
* libguile/bytevectors.c (scm_uniform_array_to_bytevector): For
bitvectors, round up the length to 32-bit units, as they are stored
internally. Otherwise I think this probably does the wrong thing for
the last word on big-endian systems.
* libguile/bitvectors.c (BITVECTOR_LENGTH, BITVECTOR_BITS):
(scm_c_make_bitvector): Reorder the length and pointer words to match
the layout of bytevectors.
* module/language/cps/primitives.scm (*branching-primcall-arities*):
* module/system/vm/assembler.scm (br-if-bitvector):
* module/system/vm/disassembler.scm (code-annotation): Add bitvector
test support.
* module/system/vm/assembler.scm (<uniform-vector-backing-store>): Add
an element-size field.
(intern-constant): Adapt make-uniform-vector-backing-store call. Use
uniform-array->bytevector, as the old compiler did.
(link-data): Add bitvector cases.
Diffstat (limited to 'module/system/vm/disassembler.scm')
-rw-r--r-- | module/system/vm/disassembler.scm | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/module/system/vm/disassembler.scm b/module/system/vm/disassembler.scm index 82e0f4dc1..1683b685d 100644 --- a/module/system/vm/disassembler.scm +++ b/module/system/vm/disassembler.scm @@ -225,6 +225,7 @@ address of that offset." ((13) "vector?") ((15) "string?") ((77) "bytevector?") + ((95) "bitvector?") (else (number->string tc7))))) (if invert? (string-append "not " tag) tag)) (vector-ref labels (- (+ offset target) start)))) |