;;;;;-*- Mode:LISP; Package:LAMBDA; Base:8; Readtable:ZL -*- ;;; ;;; (c) Copyright 1984,1985,1986 - Lisp Machine, Inc. ;;; ;;this file contains some simple microcode loops with which we can test the single ;;step logic ;has halt in middle of loop. (DEFUN UINST-JUMP-HALT-LOOP (&OPTIONAL (ONE-LOC 1000) (OTHER-LOC 100)(M-MEM-LOCN 1)) (DISABLE-LAMBDA) (WIPE-M-MEM) (ULOAD (ONE-LOC OTHER-LOC M-MEM-LOCN) 0 (LAM-IR-OP LAM-OP-ALU ;zero m-mem 1 LAM-IR-OB LAM-OB-ALU LAM-IR-M-MEM-DEST M-MEM-LOCN LAM-IR-ALUF LAM-ALU-SETZ) (LAM-IR-OP LAM-OP-JUMP ;jump to one-loc LAM-IR-JUMP-ADDR ONE-LOC LAM-IR-N 1 LAM-IR-JUMP-COND LAM-JUMP-COND-UNC) (LAM-IR-OP LAM-OP-ALU) ;null op ONE-LOC (LAM-IR-OP LAM-OP-ALU) ;null op (LAM-IR-OP LAM-OP-ALU ;increment m-mem loc LAM-IR-M-SRC M-MEM-LOCN LAM-IR-OB LAM-OB-ALU LAM-IR-M-MEM-DEST M-MEM-LOCN LAM-IR-ALUF LAM-ALU-M+1 LAM-IR-CARRY 1) (LAM-IR-OP LAM-OP-ALU) ;null op (LAM-IR-OP LAM-OP-ALU ;halt here LAM-IR-HALT 1) (LAM-IR-OP LAM-OP-JUMP LAM-IR-JUMP-ADDR OTHER-LOC LAM-IR-N 1 LAM-IR-JUMP-COND LAM-JUMP-COND-UNC) (0) OTHER-LOC (LAM-IR-OP LAM-OP-JUMP LAM-IR-JUMP-ADDR ONE-LOC LAM-IR-N 1 LAM-IR-JUMP-COND LAM-JUMP-COND-UNC) (LAM-IR-SPARE-BIT 1)) (SETUP-MACHINE-TO-START-AT ONE-LOC) '(:SINGLE-UINST-MODE T)) (DEFUN TEST-SINGLE-INST () (UINST-JUMP-HALT-LOOP) (ENABLE-LAMBDA-SINGLE-STEPPING))