Added bitwise-and primop.
This commit is contained in:
parent
dd5967c433
commit
48100f3737
|
@ -68,6 +68,6 @@ EXTRA_DIST=README bench.ss benchall.ss rn100 parsing-data.ss \
|
||||||
|
|
||||||
benchall:
|
benchall:
|
||||||
date +"NOW: %Y-%m-%d %H:%M:%S" >>timelog
|
date +"NOW: %Y-%m-%d %H:%M:%S" >>timelog
|
||||||
../src/ikarus -b ../scheme/ikarus.boot --r6rs-script benchall.ss >>timelog
|
../src/ikarus -b ../scheme/ikarus.boot --r6rs-script benchall.ss 2>>timelog
|
||||||
rm -f z*.scm z*.tex
|
rm -f z*.scm z*.tex
|
||||||
|
|
||||||
|
|
|
@ -373,7 +373,7 @@ uninstall-am:
|
||||||
|
|
||||||
benchall:
|
benchall:
|
||||||
date +"NOW: %Y-%m-%d %H:%M:%S" >>timelog
|
date +"NOW: %Y-%m-%d %H:%M:%S" >>timelog
|
||||||
../src/ikarus -b ../scheme/ikarus.boot --r6rs-script benchall.ss >>timelog
|
../src/ikarus -b ../scheme/ikarus.boot --r6rs-script benchall.ss 2>>timelog
|
||||||
rm -f z*.scm z*.tex
|
rm -f z*.scm z*.tex
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env ikarus --r6rs-script
|
#!../src/ikarus -b ../scheme/ikarus.boot --r6rs-script
|
||||||
|
|
||||||
(import (ikarus))
|
(import (ikarus))
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@
|
||||||
(list 'rnrs-benchmarks name)))))])
|
(list 'rnrs-benchmarks name)))))])
|
||||||
(proc)))
|
(proc)))
|
||||||
|
|
||||||
|
(verbose-timer #t)
|
||||||
(apply
|
(apply
|
||||||
(case-lambda
|
(case-lambda
|
||||||
[(script-name bench-name)
|
[(script-name bench-name)
|
||||||
|
|
|
@ -2,14 +2,17 @@
|
||||||
|
|
||||||
(import (ikarus))
|
(import (ikarus))
|
||||||
|
|
||||||
|
;(define all-benchmarks
|
||||||
|
; '(ack array1 bibfreq boyer browse cat compiler conform cpstak ctak dderiv
|
||||||
|
; deriv destruc diviter divrec dynamic earley fft fib fibc fibfp
|
||||||
|
; fpsum gcbench gcold graphs lattice matrix maze mazefun mbrot
|
||||||
|
; nbody nboyer nqueens ntakl nucleic paraffins parsing perm9 peval
|
||||||
|
; pi pnpoly primes puzzle quicksort ray sboyer scheme simplex
|
||||||
|
; slatex string sum sum1 sumfp sumloop tail tak takl trav1 trav2
|
||||||
|
; triangl wc))
|
||||||
|
|
||||||
(define all-benchmarks
|
(define all-benchmarks
|
||||||
'(ack array1 bibfreq boyer browse cat compiler conform cpstak ctak dderiv
|
'(cat tail wc slatex))
|
||||||
deriv destruc diviter divrec dynamic earley fft fib fibc fibfp
|
|
||||||
fpsum gcbench gcold graphs lattice matrix maze mazefun mbrot
|
|
||||||
nbody nboyer nqueens ntakl nucleic paraffins parsing perm9 peval
|
|
||||||
pi pnpoly primes puzzle quicksort ray sboyer scheme simplex
|
|
||||||
slatex string sum sum1 sumfp sumloop tail tak takl trav1 trav2
|
|
||||||
triangl wc))
|
|
||||||
|
|
||||||
|
|
||||||
(define cmd
|
(define cmd
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
(set! inword #t))))
|
(set! inword #t))))
|
||||||
(wcport port)))))
|
(wcport port)))))
|
||||||
|
|
||||||
|
|
||||||
(define (go)
|
(define (go)
|
||||||
(set! inport (open-input-file "bib"))
|
(set! inport (open-input-file "bib"))
|
||||||
(set! nl 0)
|
(set! nl 0)
|
||||||
|
|
5389
benchmarks/timelog
5389
benchmarks/timelog
File diff suppressed because it is too large
Load Diff
|
@ -1 +1 @@
|
||||||
1347
|
1348
|
||||||
|
|
|
@ -1192,6 +1192,26 @@
|
||||||
[(E) (nop)]
|
[(E) (nop)]
|
||||||
[(E a . a*) (assert-fixnums a a*)])
|
[(E a . a*) (assert-fixnums a a*)])
|
||||||
|
|
||||||
|
(define-primop bitwise-and safe
|
||||||
|
[(V) (K (fxsll -1 fx-shift))]
|
||||||
|
[(V a . a*)
|
||||||
|
(cond
|
||||||
|
[(or (non-fixnum? a) (ormap non-fixnum? a*)) (interrupt)]
|
||||||
|
[else
|
||||||
|
(interrupt)
|
||||||
|
(seq*
|
||||||
|
(assert-fixnums a a*)
|
||||||
|
(let f ([a (T a)] [a* a*])
|
||||||
|
(cond
|
||||||
|
[(null? a*) a]
|
||||||
|
[else
|
||||||
|
(f (prm 'logand a (T (car a*))) (cdr a*))])))])]
|
||||||
|
[(P) (K #t)]
|
||||||
|
[(P a . a*) (seq* (assert-fixnums a a*) (K #t))]
|
||||||
|
[(E) (nop)]
|
||||||
|
[(E a . a*) (assert-fixnums a a*)])
|
||||||
|
|
||||||
|
|
||||||
(define-primop fx+ safe
|
(define-primop fx+ safe
|
||||||
[(V x y) (cogen-value-+ x y)])
|
[(V x y) (cogen-value-+ x y)])
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue