Google
 

Trailing-Edge - PDP-10 Archives - clisp - clisp/upsala/macromemo.lap
There are no other files named macromemo.lap in the archive.
;;; CLC vP.U.V.1(2) compiling CARMEN::SS:<CLISP.UPSALA>MACROMEMO.CLISP.6

(IN-PACKAGE (QUOTE LISP)) 
(EXPORT (QUOTE (MEMOIZE-MACRO-CALL))) 
(%PUT (QUOTE MEMOIZE-MACRO-CALL) (QUOTE %FUN-DOCUMENTATION) (QUOTE "Replaces the call to a macro in Expression with a call to the expanded form
  with magic stuff wrapped around it.")) 

#_(LAP #0_MEMOIZE-MACRO-CALL EXPR
       (ENTRY-POINTS (2-FEW 2-FEW 1 2-MANY 2-MANY 2-MANY 2-MANY))
       #0_(*MACROEXPANSION*)
       (CODE-START)
(LABEL 1)    (ADDI Q 5)
             (MOVEM O1 -4 Q)
             (MOVEM O2 -3 Q)
             (MOVE O5 O1)
             (MOVEM O5 -1 Q)
             (MOVE O1 O2)
             (MOVE O6 O5)
             (FCALL 1)
             (MOVEM O1 -2 Q)
             (MOVE O1 -3 Q)
             (MOVE O5 0 O1)
             (MOVEM O5 -1 Q)
             (MOVE O2 (CONSTANT 0))
             (CAME O2 -1 Q)
             (JRST 3)
             (JRST 4)
(LABEL 3)    (MOVE O1 -3 Q)
             (MOVE O5 0 O1)
             (MOVEM O5 0 Q)
             (MOVE O2 1 O1)
             (MOVE O1 O5)
             (CALL CONS 2)
             (MOVE O3 O1)
             (MOVE O1 (CONSTANT 0))
             (MOVE O2 -2 Q)
             (CALL LIST 3)
             (MOVE O2 O1)
             (MOVE O1 -3 Q)
             (CALL LISP::DISPLACE 2)
(LABEL 4)    (MOVE O1 -2 Q)
             (MOVEI N 1)
             (SUBI Q 5)
             (POPJ P)
)

(%PUT (QUOTE MEMOIZE-MACRO-CALL) (QUOTE %ARGS-DOCUMENTATION) (QUOTE (EXPANDER EXPRESSION))) 
(%PUT (QUOTE MEMOIZE-MACRO-CALL) (QUOTE %SOURCE-DOCUMENTATION) (CONS (QUOTE "CARMEN::SS:<CLISP.UPSALA>MACROMEMO.CLISP.6") (GET (QUOTE MEMOIZE-MACRO-CALL) (QUOTE %SOURCE-DOCUMENTATION)))) 
(%PUT (QUOTE DISPLACE) (QUOTE %FUN-DOCUMENTATION) (QUOTE "Replaces the CAR and CDR of X with the CAR and CDR of Y, returning the
  modified X.")) 

#_(LAP #0_DISPLACE EXPR
       (ENTRY-POINTS (2-FEW 2-FEW 1 2-MANY 2-MANY 2-MANY 2-MANY))
       #0_NIL
       (CODE-START)
(LABEL 1)    (ADDI Q 2)
             (MOVEM O1 -1 Q)
             (MOVEM O2 0 Q)
             (MOVE O1 O2)
             (MOVE O2 0 O1)
             (MOVE O1 -1 Q)
             (CALL RPLACA 2)
             (MOVE O1 0 Q)
             (MOVE O2 1 O1)
             (MOVE O1 -1 Q)
             (CALL RPLACD 2)
             (SUBI Q 2)
             (POPJ P)
)

(%PUT (QUOTE DISPLACE) (QUOTE %ARGS-DOCUMENTATION) (QUOTE (X Y))) 
(%PUT (QUOTE DISPLACE) (QUOTE %SOURCE-DOCUMENTATION) (CONS (QUOTE "CARMEN::SS:<CLISP.UPSALA>MACROMEMO.CLISP.6") (GET (QUOTE DISPLACE) (QUOTE %SOURCE-DOCUMENTATION)))) 

#_(LAP #0_*MACROEXPANSION* MACRO
       (ENTRY-POINTS (2-FEW 1 2-MANY 2-MANY 2-MANY 2-MANY 2-MANY))
       #0_(3 "Macro ~S cannot be called with ~S args." *MACROEXPANSION*)
       (CODE-START)
(LABEL 1)    (ADDI Q 4)
             (MOVEM O1 -3 Q)
             (CALL LENGTH 1)
             (MOVEM O1 -2 Q)
             (MOVE O2 (CONSTANT 0))
             (CALL = 2)
             (JUMPN O1 4)
             (MOVE O1 -3 Q)
             (CALL LENGTH 1)
             (CALL 1- 1)
             (MOVE O3 O1)
             (MOVE O1 (CONSTANT 1))
             (MOVE O2 (CONSTANT 2))
             (CALL ERROR 3)
             (JRST 3)
(LABEL 4)    (SKIPA)
             (JRST 5)
             (MOVE O1 -3 Q)
             (MOVE O1 1 O1)
             (MOVE O5 0 O1)
             (MOVEM O5 -1 Q)
             (MOVE O1 -3 Q)
             (MOVE O1 1 O1)
             (MOVE O1 1 O1)
             (MOVE O5 0 O1)
             (MOVEM O5 0 Q)
             (MOVE O1 -1 Q)
             (MOVEI N 1)
(LABEL 5)
(LABEL 3)    (SUBI Q 4)
             (POPJ P)
)

(%PUT (QUOTE *MACROEXPANSION*) (QUOTE %ARGS-DOCUMENTATION) (QUOTE (EXPANSION ORIGINAL))) 
(%PUT (QUOTE *MACROEXPANSION*) (QUOTE %SOURCE-DOCUMENTATION) (CONS (QUOTE "CARMEN::SS:<CLISP.UPSALA>MACROMEMO.CLISP.6") (GET (QUOTE *MACROEXPANSION*) (QUOTE %SOURCE-DOCUMENTATION)))) 
(SETQ *MACROEXPAND-HOOK* (QUOTE MEMOIZE-MACRO-CALL))