mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-17 01:00:20 +02:00
vector-ref and vector-set! now have opcodes
* module/language/tree-il/primitives.scm (*interesting-primitive-names*): Resolve vector-ref and vector-set!. * module/language/tree-il/compile-glil.scm (*primcall-ops*): And compile vector-ref and vector-set! to their opcodes. * libguile/vm-i-scheme.c (vector-ref, vector-set): New opcodes, placed before the bytevector ops. The renumbering shouldn't affect anyone, given that the bytevector ops were not yet used. Fix a few bugs in the bytevector ops.
This commit is contained in:
parent
e6eb246716
commit
d6f1ce3d16
3 changed files with 83 additions and 49 deletions
|
@ -81,7 +81,10 @@
|
|||
(list . list)
|
||||
(vector . vector)
|
||||
((@slot-ref . 2) . slot-ref)
|
||||
((@slot-set! . 3) . slot-set)))
|
||||
((@slot-set! . 3) . slot-set)
|
||||
((vector-ref . 2) . vector-ref)
|
||||
((vector-set! . 3) . vector-set)
|
||||
))
|
||||
|
||||
(define (make-label) (gensym ":L"))
|
||||
|
||||
|
|
|
@ -47,7 +47,9 @@
|
|||
caaar caadr cadar caddr cdaar cdadr cddar cdddr
|
||||
|
||||
caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr
|
||||
cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr))
|
||||
cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr
|
||||
|
||||
vector-ref vector-set!))
|
||||
|
||||
(define (add-interesting-primitive! name)
|
||||
(hashq-set! *interesting-primitive-vars*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue