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