home *** CD-ROM | disk | FTP | other *** search
- #| -*-Scheme-*-
-
- $Id: inerly.scm,v 1.2 1999/01/02 06:06:43 cph Exp $
- $MC68020-Header: inerly.scm,v 1.6 88/08/31 06:00:59 GMT cph Exp $
-
- Copyright (c) 1988, 1989, 1990, 1999 Massachusetts Institute of Technology
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or (at
- your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- |#
-
- ;;; Spectrum Instruction Set Macros. Early version
- ;;; NOPs for now.
-
- (declare (usual-integrations))
-
- ;;;; Transformers and utilities
-
- (define early-instructions '())
- (define early-transformers '())
-
- (define (define-early-transformer name transformer)
- (set! early-transformers
- (cons (cons name transformer)
- early-transformers)))
-
- (define (eq-subset? s1 s2)
- (or (null? s1)
- (and (memq (car s1) s2)
- (eq-subset? (cdr s1) s2))))
-
- ;;; Instruction and addressing mode macros
-
- (syntax-table-define early-syntax-table 'DEFINE-INSTRUCTION
- (macro (opcode . patterns)
- `(SET! EARLY-INSTRUCTIONS
- (CONS
- (LIST ',opcode
- ,@(map (lambda (pattern)
- `(early-parse-rule
- ',(car pattern)
- (lambda (pat vars)
- (early-make-rule
- pat
- vars
- (scode-quote
- (instruction->instruction-sequence
- ,(parse-instruction (cadr pattern)
- (cddr pattern)
- true)))))))
- patterns))
- EARLY-INSTRUCTIONS))))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-