mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-16 00:30:21 +02:00
Better compiler support for bytevector ops
* module/language/cps/compile-rtl.scm (emit-rtl-sequence): Add emitters for bytevector ops. Add br-if-bytevector emitter. * module/language/cps/primitives.scm (*branching-primcall-arities*): Mark bytevector? as a branching primitive. * module/system/vm/assembler.scm (br-if-bytevector): New instruction * module/system/vm/disassembler.scm (code-annotation): Add support for bytevector?.
This commit is contained in:
parent
ecbef96687
commit
becce37b58
4 changed files with 47 additions and 2 deletions
|
@ -659,7 +659,13 @@ returned instead."
|
|||
(emit-br-if-tc7 asm slot invert? tc7 label)))
|
||||
|
||||
;; Keep in sync with tags.h. Part of Guile's ABI. Currently unused
|
||||
;; macro assemblers are commented out.
|
||||
;; macro assemblers are commented out. See also
|
||||
;; *branching-primcall-arities* in (language cps primitives), the set of
|
||||
;; macro-instructions in assembly.scm, and
|
||||
;; disassembler.scm:code-annotation.
|
||||
;;
|
||||
;; FIXME: Define all tc7 values in Scheme in one place, derived from
|
||||
;; tags.h.
|
||||
(define-tc7-macro-assembler br-if-symbol 5)
|
||||
(define-tc7-macro-assembler br-if-variable 7)
|
||||
(define-tc7-macro-assembler br-if-vector 13)
|
||||
|
@ -667,7 +673,7 @@ returned instead."
|
|||
(define-tc7-macro-assembler br-if-string 21)
|
||||
;(define-tc7-macro-assembler br-if-heap-number 23)
|
||||
;(define-tc7-macro-assembler br-if-stringbuf 39)
|
||||
;(define-tc7-macro-assembler br-if-bytevector 77)
|
||||
(define-tc7-macro-assembler br-if-bytevector 77)
|
||||
;(define-tc7-macro-assembler br-if-pointer 31)
|
||||
;(define-tc7-macro-assembler br-if-hashtable 29)
|
||||
;(define-tc7-macro-assembler br-if-fluid 37)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue