;;;-*- Mode:LISP; Package:BENCH-TAKU; Base:10; source-optimizations:t -*- ;;; From the "Dick Gabriel" Benchmark Series. ;;; Enhancements (C) Copyright 1983, Lisp Machine, Inc. (EVAL-WHEN (EVAL COMPILE LOAD) (DEFCONST *TO-UCOMPILE* '(TAK)) (MAPC #'(LAMBDA (X) (PUTPROP X T 'COMPILER:MICROCOMPILE) (PUTPROP X T ; ':DYNAMIC ':DEPEND-ON-BEING-MICROCOMPILED)) *TO-UCOMPILE*)) ;;;BEGIN ;;;TAK (declare #-LISPM (FIXNUM (tak fixnum fixnum fixnum))) (defun tak (x y z) (cond ((not (< (THE FIXNUM y) (THE FIXNUM x))) ;xy z) (t (tak (tak (THE FIXNUM (1- x)) y z) (tak (THE FIXNUM (1- y)) z x) (tak (THE FIXNUM (1- z)) x y))))) ;(include "timer.lsp") (timer-without-interrupts nc-timit (tak 10018. 10012. 10006.)) (defconst *ucode-loaded? nil) (defun load-ucode () (apply #'compiler:ma-load *to-ucompile*) (setq *ucode-loaded? t)) (timer-without-interrupts timit (if *ucode-loaded? (do ((j 0 (1+ j))) ((= j 10.)) (tak 18. 12. 6.)) "ucode not loaded")) ;;;END