* Added bytevector-u8-ref and bytevector-s8-ref.
This commit is contained in:
parent
db80ba43f6
commit
a11fb060f2
BIN
src/ikarus.boot
BIN
src/ikarus.boot
Binary file not shown.
|
@ -130,7 +130,8 @@
|
||||||
[bytevector? 1 pred]
|
[bytevector? 1 pred]
|
||||||
[$make-bytevector 1 value]
|
[$make-bytevector 1 value]
|
||||||
[$bytevector-length 1 value]
|
[$bytevector-length 1 value]
|
||||||
[$bytevector-ref 2 value]
|
[$bytevector-u8-ref 2 value]
|
||||||
|
[$bytevector-s8-ref 2 value]
|
||||||
[$bytevector-set! 3 effect]
|
[$bytevector-set! 3 effect]
|
||||||
;;; symbols
|
;;; symbols
|
||||||
[$make-symbol 1 value]
|
[$make-symbol 1 value]
|
||||||
|
@ -1922,7 +1923,7 @@
|
||||||
void base-rtd $unbound-object? code? $forward-ptr? bwp-object?
|
void base-rtd $unbound-object? code? $forward-ptr? bwp-object?
|
||||||
pointer-value top-level-value car cdr list* list $record
|
pointer-value top-level-value car cdr list* list $record
|
||||||
port? input-port? output-port? $bytevector-set!
|
port? input-port? output-port? $bytevector-set!
|
||||||
$bytevector-length
|
$bytevector-length $bytevector-u8-ref $bytevector-s8-ref
|
||||||
$make-bytevector $bytevector-ref bytevector?
|
$make-bytevector $bytevector-ref bytevector?
|
||||||
$make-port/input $make-port/output $make-port/both
|
$make-port/input $make-port/output $make-port/both
|
||||||
$port-handler
|
$port-handler
|
||||||
|
@ -3785,6 +3786,22 @@
|
||||||
(movb (mem (fx- disp-code-data vector-tag) ebx) ah)
|
(movb (mem (fx- disp-code-data vector-tag) ebx) ah)
|
||||||
(sarl (int (fx- 8 fx-shift)) eax)
|
(sarl (int (fx- 8 fx-shift)) eax)
|
||||||
ac)]
|
ac)]
|
||||||
|
[($bytevector-s8-ref)
|
||||||
|
(list* (movl (Simple (cadr arg*)) ebx)
|
||||||
|
(sarl (int fx-shift) ebx)
|
||||||
|
(addl (Simple (car arg*)) ebx)
|
||||||
|
(movb (mem (fx- disp-bytevector-data bytevector-tag) ebx) al)
|
||||||
|
(sall (int (* (sub1 wordsize) 8)) eax)
|
||||||
|
(sarl (int (- (* (sub1 wordsize) 8) fx-shift)) eax)
|
||||||
|
ac)]
|
||||||
|
[($bytevector-u8-ref)
|
||||||
|
(list* (movl (Simple (cadr arg*)) ebx)
|
||||||
|
(sarl (int fx-shift) ebx)
|
||||||
|
(addl (Simple (car arg*)) ebx)
|
||||||
|
(movl (int 0) eax)
|
||||||
|
(movb (mem (fx- disp-bytevector-data bytevector-tag) ebx) al)
|
||||||
|
(sall (int fx-shift) eax)
|
||||||
|
ac)]
|
||||||
[($string-ref)
|
[($string-ref)
|
||||||
(list* (movl (Simple (cadr arg*)) ebx)
|
(list* (movl (Simple (cadr arg*)) ebx)
|
||||||
(sarl (int fx-shift) ebx)
|
(sarl (int fx-shift) ebx)
|
||||||
|
@ -4125,6 +4142,7 @@
|
||||||
(sarl (int fx-shift) eax)
|
(sarl (int fx-shift) eax)
|
||||||
(addl (Simple (car arg*)) eax)
|
(addl (Simple (car arg*)) eax)
|
||||||
(movl (Simple (caddr arg*)) ebx)
|
(movl (Simple (caddr arg*)) ebx)
|
||||||
|
(sall (int (- 8 fx-shift)) ebx)
|
||||||
(movb bh (mem (fx- disp-bytevector-data bytevector-tag) eax))
|
(movb bh (mem (fx- disp-bytevector-data bytevector-tag) eax))
|
||||||
ac)]
|
ac)]
|
||||||
[($set-car!)
|
[($set-car!)
|
||||||
|
|
|
@ -273,6 +273,8 @@
|
||||||
[vector->list i r]
|
[vector->list i r]
|
||||||
[make-bytevector i]
|
[make-bytevector i]
|
||||||
[bytevector-length i]
|
[bytevector-length i]
|
||||||
|
[bytevector-s8-ref i]
|
||||||
|
[bytevector-u8-ref i]
|
||||||
|
|
||||||
[for-each i r]
|
[for-each i r]
|
||||||
[map i r]
|
[map i r]
|
||||||
|
@ -479,8 +481,8 @@
|
||||||
|
|
||||||
[$make-bytevector $bytes]
|
[$make-bytevector $bytes]
|
||||||
[$bytevector-length $bytes]
|
[$bytevector-length $bytes]
|
||||||
[$bytevector-ref $bytes]
|
|
||||||
[$bytevector-s8-ref $bytes]
|
[$bytevector-s8-ref $bytes]
|
||||||
|
[$bytevector-u8-ref $bytes]
|
||||||
[$bytevector-set! $bytes]
|
[$bytevector-set! $bytes]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,14 @@
|
||||||
[not-bytevector? '#(2837 2398 239)]
|
[not-bytevector? '#(2837 2398 239)]
|
||||||
[zero? (bytevector-length (make-bytevector 0))]
|
[zero? (bytevector-length (make-bytevector 0))]
|
||||||
[(lambda (x) (= x 100)) (bytevector-length (make-bytevector 100 -30))]
|
[(lambda (x) (= x 100)) (bytevector-length (make-bytevector 100 -30))]
|
||||||
|
[(lambda (x) (equal? x '(-127 129 -1 255)))
|
||||||
|
(let ([b1 (make-bytevector 16 -127)]
|
||||||
|
[b2 (make-bytevector 16 255)])
|
||||||
|
(list
|
||||||
|
(bytevector-s8-ref b1 0)
|
||||||
|
(bytevector-u8-ref b1 0)
|
||||||
|
(bytevector-s8-ref b2 0)
|
||||||
|
(bytevector-u8-ref b2 0)))]
|
||||||
|
|
||||||
))
|
))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue