Google
 

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

(IN-PACKAGE (QUOTE LISP)) 
(EXPORT (QUOTE (SORT STABLE-SORT MERGE))) 
(%PUT (QUOTE SORT) (QUOTE %FUN-DOCUMENTATION) (QUOTE "Destructively sorts sequence.  Predicate should return non-Nil if
  Arg1 is to precede Arg2.")) 

#_(LAP #0_SORT EXPR
       (ENTRY-POINTS (2-FEW 2-FEW 2 3 4 5 6) REST)
       #0_(PREDICATE :KEY (:KEY) 0 "~S is not a sequence.")
       (CODE-START)
(LABEL 2)    (MOVE O3 NIL)
             (JRST 1)
(LABEL 3)    (MOVEI W2 1)
             (ICALL REST3)
             (JRST 1)
(LABEL 4)    (MOVEI W2 2)
             (ICALL REST4)
             (JRST 1)
(LABEL 5)    (MOVEI W2 3)
             (ICALL REST5)
             (JRST 1)
(LABEL 6)    (MOVEI W2 2)
             (ICALL RESTX)
(LABEL 1)    (ADDI Q 5)
             (MOVEM O1 -3 Q)
             (SPEC-BIND (SPECIAL 0))
             (MOVEM O2 (SPECIAL 0))
             (MOVEM O3 -2 Q)
             (MOVE O2 O3)
(LABEL 8)    (DMOVE O3 0 O2)
             (DMOVE O1 0 O4)
             (CAME O3 (CONSTANT 1))
             (JUMPN O4 8)
             (MOVEM O1 -4 Q)
             (MOVE O5 -2 Q)
             (MOVEM O5 -1 Q)
             (MOVE O2 (CONSTANT 2))
             (MOVE O1 O5)
             (CALL LISP::KEYWORD-TEST 2)
             (MOVE O1 -3 Q)
             (CALL LISP::SLISP-ARRAY-P 1)
             (JUMPE O1 10)
             (MOVE O1 -3 Q)
             (CALL LENGTH 1)
             (MOVEM O1 -1 Q)
             (MOVE O2 (CONSTANT 3))
             (CALL > 2)
             (JUMPE O1 12)
             (MOVE O5 (SPECIAL 0))
             (MOVEM O5 0 Q)
             (MOVE O3 -4 Q)
             (MOVE O1 -3 Q)
             (MOVE O2 O5)
             (CALL LISP::SORT-VECTOR 3)
             (JRST 13)
(LABEL 12)   (MOVE O1 -3 Q)
             (MOVEI N 1)
(LABEL 13)   (JRST 11)
(LABEL 10)   (MOVE O1 -3 Q)
             (CALL LISP::SLISP-VECTOR-P 1)
             (JUMPE O1 14)
             (MOVE O1 -3 Q)
             (CALL LENGTH 1)
             (MOVEM O1 -1 Q)
             (MOVE O2 (CONSTANT 3))
             (CALL > 2)
             (JUMPE O1 16)
             (MOVE O5 (SPECIAL 0))
             (MOVEM O5 0 Q)
             (MOVE O3 -4 Q)
             (MOVE O1 -3 Q)
             (MOVE O2 O5)
             (CALL LISP::SORT-SIMPLE-VECTOR 3)
             (JRST 17)
(LABEL 16)   (MOVE O1 -3 Q)
             (MOVEI N 1)
(LABEL 17)   (JRST 15)
(LABEL 14)   (MOVE O1 -3 Q)
             (CALL LISTP 1)
             (JUMPE O1 18)
             (MOVE O5 (SPECIAL 0))
             (MOVEM O5 0 Q)
             (MOVE O3 -4 Q)
             (MOVE O1 -3 Q)
             (MOVE O2 O5)
             (CALL LISP::SORT-LIST 3)
             (JRST 19)
(LABEL 18)   (MOVE O2 -3 Q)
             (MOVE O1 (CONSTANT 4))
             (CALL ERROR 2)
(LABEL 19)
(LABEL 15)
(LABEL 11)   (UNBIND 1)
             (SUBI Q 5)
             (POPJ P)
)

(%PUT (QUOTE SORT) (QUOTE %ARGS-DOCUMENTATION) (QUOTE (SEQUENCE PREDICATE &KEY ((:KEY KEYFUN) NIL)))) 
(%PUT (QUOTE SORT) (QUOTE %SOURCE-DOCUMENTATION) (CONS (QUOTE "CARMEN::SS:<CLISP.UPSALA>SORT.CLISP.8") (GET (QUOTE SORT) (QUOTE %SOURCE-DOCUMENTATION)))) 
(%PUT (QUOTE SORT-SIMPLE-VECTOR) (QUOTE %FUN-DOCUMENTATION) (QUOTE "This is an internal function.  Use SORT instead.")) 

#_(LAP #0_SORT-SIMPLE-VECTOR EXPR
       (ENTRY-POINTS (2-FEW 2-FEW 2-FEW 1 2-MANY 2-MANY 2-MANY))
       #0_(0)
       (CODE-START)
(LABEL 1)    (ADDI Q 15)
             (MOVEM O1 -14 Q)
             (MOVEM O2 -13 Q)
             (MOVEM O3 -12 Q)
             (CALL LENGTH 1)
             (CALL 1- 1)
             (MOVEM O1 -10 Q)
             (MOVE O2 (CONSTANT 0))
             (CALL LIST 2)
             (MOVEM O1 -11 Q)
             (MOVEM NIL -10 Q)
             (MOVEM NIL -9 Q)
             (MOVEM NIL -8 Q)
             (MOVEM NIL -7 Q)
             (MOVEM NIL -6 Q)
             (MOVEM NIL -5 Q)
(LABEL 7)    (MOVE O1 -11 Q)
             (MOVE O5 0 O1)
             (MOVEM O5 -4 Q)
             (MOVE O1 1 O1)
             (MOVEM O1 -11 Q)
             (MOVE O1 O5)
             (MOVEM O1 -8 Q)
             (MOVEM O1 -6 Q)
             (MOVE O1 -11 Q)
             (MOVE O5 0 O1)
             (MOVEM O5 -4 Q)
             (MOVE O1 1 O1)
             (MOVEM O1 -11 Q)
             (MOVE O1 O5)
             (MOVEM O1 -7 Q)
             (MOVEM O1 -5 Q)
             (SKIPN NIL -12 Q)
             (JRST 11)
             (MOVE O5 -12 Q)
             (MOVEM O5 -4 Q)
             (MOVE O2 -7 Q)
             (MOVE O1 -14 Q)
             (CALL LISP::%SP-SAREF1 2)
             (MOVEM O1 -10 Q)
             (MOVE O6 -4 Q)
             (FCALL 1)
             (JRST 12)
(LABEL 11)   (MOVE O2 -7 Q)
             (MOVE O1 -14 Q)
             (CALL LISP::%SP-SAREF1 2)
             (MOVEM O1 -10 Q)
(LABEL 12)   (MOVEM O1 -9 Q)
(LABEL 8)    (MOVE O2 -6 Q)
             (MOVE O1 -5 Q)
             (CALL = 2)
             (JUMPE O1 14)
             (JRST 10)
(LABEL 14)   (MOVE O2 -6 Q)
             (MOVE O1 -14 Q)
             (CALL LISP::%SP-SAREF1 2)
             (MOVEM O1 -3 Q)
             (MOVE O5 -13 Q)
             (MOVEM O5 -2 Q)
             (SKIPN NIL -12 Q)
             (JRST 18)
             (MOVE O5 -12 Q)
             (MOVEM O5 -1 Q)
             (MOVE O1 -3 Q)
             (MOVE O6 O5)
             (FCALL 1)
             (MOVEM O1 -1 Q)
             (JRST 19)
(LABEL 18)   (MOVE O5 -3 Q)
             (MOVEM O5 -1 Q)
(LABEL 19)   (MOVE O2 -9 Q)
             (MOVE O1 -1 Q)
             (MOVE O6 -2 Q)
             (FCALL 2)
             (JUMPE O1 17)
             (MOVE O3 -3 Q)
             (MOVE O1 -14 Q)
             (MOVE O2 -5 Q)
             (CALL LISP::%SP-SASET1 3)
             (MOVE O1 -5 Q)
             (CALL 1+ 1)
             (MOVEM O1 -5 Q)
             (JRST 9)
(LABEL 17)   (SKIPA)
             (JRST 20)
             (MOVE O1 -6 Q)
             (CALL 1- 1)
             (MOVEM O1 -6 Q)
             (JRST 8)
(LABEL 20)
(LABEL 9)    (MOVE O2 -6 Q)
             (MOVE O1 -5 Q)
             (CALL = 2)
             (JUMPE O1 23)
             (JRST 10)
(LABEL 23)   (MOVE O2 -5 Q)
             (MOVE O1 -14 Q)
             (CALL LISP::%SP-SAREF1 2)
             (MOVEM O1 -3 Q)
             (MOVE O5 -13 Q)
             (MOVEM O5 -2 Q)
             (SKIPN NIL -12 Q)
             (JRST 27)
             (MOVE O5 -12 Q)
             (MOVEM O5 0 Q)
             (MOVE O1 -3 Q)
             (MOVE O6 O5)
             (FCALL 1)
             (MOVE O2 O1)
             (JRST 28)
(LABEL 27)   (MOVE O2 -3 Q)
(LABEL 28)   (MOVE O1 -9 Q)
             (MOVE O6 -2 Q)
             (FCALL 2)
             (JUMPE O1 26)
             (MOVE O3 -3 Q)
             (MOVE O1 -14 Q)
             (MOVE O2 -6 Q)
             (CALL LISP::%SP-SASET1 3)
             (MOVE O1 -6 Q)
             (CALL 1- 1)
             (MOVEM O1 -6 Q)
             (JRST 8)
(LABEL 26)   (SKIPA)
             (JRST 29)
             (MOVE O1 -5 Q)
             (CALL 1+ 1)
             (MOVEM O1 -5 Q)
             (JRST 9)
(LABEL 29)
(LABEL 10)   (MOVE O3 -10 Q)
             (MOVE O1 -14 Q)
             (MOVE O2 -5 Q)
             (CALL LISP::%SP-SASET1 3)
             (MOVE O1 -5 Q)
             (CALL 1- 1)
             (MOVE O2 O1)
             (MOVE O1 -7 Q)
             (CALL < 2)
             (JUMPE O1 32)
             (MOVE O2 -11 Q)
             (MOVE O1 -7 Q)
             (CALL CONS 2)
             (MOVEM O1 -11 Q)
             (MOVE O1 -5 Q)
             (CALL 1- 1)
             (MOVEM O1 -4 Q)
             (MOVE O2 -11 Q)
             (CALL CONS 2)
             (MOVEM O1 -11 Q)
(LABEL 32)   (MOVE O1 -6 Q)
             (CALL 1+ 1)
             (MOVE O2 O1)
             (MOVE O1 -8 Q)
             (CALL > 2)
             (JUMPE O1 35)
             (MOVE O1 -6 Q)
             (CALL 1+ 1)
             (MOVEM O1 -4 Q)
             (MOVE O2 -11 Q)
             (CALL CONS 2)
             (MOVEM O1 -11 Q)
             (MOVE O2 O1)
             (MOVE O1 -8 Q)
             (CALL CONS 2)
             (MOVEM O1 -11 Q)
(LABEL 35)   (SKIPE NIL -11 Q)
             (JRST 38)
             (MOVE O1 -14 Q)
             (MOVEI N 1)
             (JRST 3)
(LABEL 38)   (JRST 7)
(LABEL 3)    (SUBI Q 15)
             (POPJ P)
)

(%PUT (QUOTE SORT-SIMPLE-VECTOR) (QUOTE %ARGS-DOCUMENTATION) (QUOTE (VECTOR PRED KEY))) 
(%PUT (QUOTE SORT-SIMPLE-VECTOR) (QUOTE %SOURCE-DOCUMENTATION) (CONS (QUOTE "CARMEN::SS:<CLISP.UPSALA>SORT.CLISP.8") (GET (QUOTE SORT-SIMPLE-VECTOR) (QUOTE %SOURCE-DOCUMENTATION)))) 
(%PUT (QUOTE SORT-VECTOR) (QUOTE %FUN-DOCUMENTATION) (QUOTE "This is an internal function.  Use SORT instead.")) 

#_(LAP #0_SORT-VECTOR EXPR
       (ENTRY-POINTS (2-FEW 2-FEW 2-FEW 1 2-MANY 2-MANY 2-MANY))
       #0_(0)
       (CODE-START)
(LABEL 1)    (ADDI Q 15)
             (MOVEM O1 -14 Q)
             (MOVEM O2 -13 Q)
             (MOVEM O3 -12 Q)
             (CALL LENGTH 1)
             (CALL 1- 1)
             (MOVEM O1 -10 Q)
             (MOVE O2 (CONSTANT 0))
             (CALL LIST 2)
             (MOVEM O1 -11 Q)
             (MOVEM NIL -10 Q)
             (MOVEM NIL -9 Q)
             (MOVEM NIL -8 Q)
             (MOVEM NIL -7 Q)
             (MOVEM NIL -6 Q)
             (MOVEM NIL -5 Q)
(LABEL 7)    (MOVE O1 -11 Q)
             (MOVE O5 0 O1)
             (MOVEM O5 -4 Q)
             (MOVE O1 1 O1)
             (MOVEM O1 -11 Q)
             (MOVE O1 O5)
             (MOVEM O1 -8 Q)
             (MOVEM O1 -6 Q)
             (MOVE O1 -11 Q)
             (MOVE O5 0 O1)
             (MOVEM O5 -4 Q)
             (MOVE O1 1 O1)
             (MOVEM O1 -11 Q)
             (MOVE O1 O5)
             (MOVEM O1 -7 Q)
             (MOVEM O1 -5 Q)
             (SKIPN NIL -12 Q)
             (JRST 11)
             (MOVE O5 -12 Q)
             (MOVEM O5 -4 Q)
             (MOVE O2 -7 Q)
             (MOVE O1 -14 Q)
             (CALL AREF 2)
             (MOVEM O1 -10 Q)
             (MOVE O6 -4 Q)
             (FCALL 1)
             (JRST 12)
(LABEL 11)   (MOVE O2 -7 Q)
             (MOVE O1 -14 Q)
             (CALL AREF 2)
             (MOVEM O1 -10 Q)
(LABEL 12)   (MOVEM O1 -9 Q)
(LABEL 8)    (MOVE O2 -6 Q)
             (MOVE O1 -5 Q)
             (CALL = 2)
             (JUMPE O1 14)
             (JRST 10)
(LABEL 14)   (MOVE O2 -6 Q)
             (MOVE O1 -14 Q)
             (CALL AREF 2)
             (MOVEM O1 -3 Q)
             (MOVE O5 -13 Q)
             (MOVEM O5 -2 Q)
             (SKIPN NIL -12 Q)
             (JRST 18)
             (MOVE O5 -12 Q)
             (MOVEM O5 -1 Q)
             (MOVE O1 -3 Q)
             (MOVE O6 O5)
             (FCALL 1)
             (MOVEM O1 -1 Q)
             (JRST 19)
(LABEL 18)   (MOVE O5 -3 Q)
             (MOVEM O5 -1 Q)
(LABEL 19)   (MOVE O2 -9 Q)
             (MOVE O1 -1 Q)
             (MOVE O6 -2 Q)
             (FCALL 2)
             (JUMPE O1 17)
             (MOVE O3 -3 Q)
             (MOVE O1 -14 Q)
             (MOVE O2 -5 Q)
             (CALL LISP::%ASET 3)
             (MOVE O1 -5 Q)
             (CALL 1+ 1)
             (MOVEM O1 -5 Q)
             (JRST 9)
(LABEL 17)   (SKIPA)
             (JRST 20)
             (MOVE O1 -6 Q)
             (CALL 1- 1)
             (MOVEM O1 -6 Q)
             (JRST 8)
(LABEL 20)
(LABEL 9)    (MOVE O2 -6 Q)
             (MOVE O1 -5 Q)
             (CALL = 2)
             (JUMPE O1 23)
             (JRST 10)
(LABEL 23)   (MOVE O2 -5 Q)
             (MOVE O1 -14 Q)
             (CALL AREF 2)
             (MOVEM O1 -3 Q)
             (MOVE O5 -13 Q)
             (MOVEM O5 -2 Q)
             (SKIPN NIL -12 Q)
             (JRST 27)
             (MOVE O5 -12 Q)
             (MOVEM O5 0 Q)
             (MOVE O1 -3 Q)
             (MOVE O6 O5)
             (FCALL 1)
             (MOVE O2 O1)
             (JRST 28)
(LABEL 27)   (MOVE O2 -3 Q)
(LABEL 28)   (MOVE O1 -9 Q)
             (MOVE O6 -2 Q)
             (FCALL 2)
             (JUMPE O1 26)
             (MOVE O3 -3 Q)
             (MOVE O1 -14 Q)
             (MOVE O2 -6 Q)
             (CALL LISP::%ASET 3)
             (MOVE O1 -6 Q)
             (CALL 1- 1)
             (MOVEM O1 -6 Q)
             (JRST 8)
(LABEL 26)   (SKIPA)
             (JRST 29)
             (MOVE O1 -5 Q)
             (CALL 1+ 1)
             (MOVEM O1 -5 Q)
             (JRST 9)
(LABEL 29)
(LABEL 10)   (MOVE O3 -10 Q)
             (MOVE O1 -14 Q)
             (MOVE O2 -5 Q)
             (CALL LISP::%ASET 3)
             (MOVE O1 -5 Q)
             (CALL 1- 1)
             (MOVE O2 O1)
             (MOVE O1 -7 Q)
             (CALL < 2)
             (JUMPE O1 32)
             (MOVE O2 -11 Q)
             (MOVE O1 -7 Q)
             (CALL CONS 2)
             (MOVEM O1 -11 Q)
             (MOVE O1 -5 Q)
             (CALL 1- 1)
             (MOVEM O1 -4 Q)
             (MOVE O2 -11 Q)
             (CALL CONS 2)
             (MOVEM O1 -11 Q)
(LABEL 32)   (MOVE O1 -6 Q)
             (CALL 1+ 1)
             (MOVE O2 O1)
             (MOVE O1 -8 Q)
             (CALL > 2)
             (JUMPE O1 35)
             (MOVE O1 -6 Q)
             (CALL 1+ 1)
             (MOVEM O1 -4 Q)
             (MOVE O2 -11 Q)
             (CALL CONS 2)
             (MOVEM O1 -11 Q)
             (MOVE O2 O1)
             (MOVE O1 -8 Q)
             (CALL CONS 2)
             (MOVEM O1 -11 Q)
(LABEL 35)   (SKIPE NIL -11 Q)
             (JRST 38)
             (MOVE O1 -14 Q)
             (MOVEI N 1)
             (JRST 3)
(LABEL 38)   (JRST 7)
(LABEL 3)    (SUBI Q 15)
             (POPJ P)
)

(%PUT (QUOTE SORT-VECTOR) (QUOTE %ARGS-DOCUMENTATION) (QUOTE (VECTOR PRED KEY))) 
(%PUT (QUOTE SORT-VECTOR) (QUOTE %SOURCE-DOCUMENTATION) (CONS (QUOTE "CARMEN::SS:<CLISP.UPSALA>SORT.CLISP.8") (GET (QUOTE SORT-VECTOR) (QUOTE %SOURCE-DOCUMENTATION)))) 

#_(LAP #0_SORT-LIST EXPR
       (ENTRY-POINTS (2-FEW 2-FEW 2-FEW 1 2-MANY 2-MANY 2-MANY))
       #0_(0 1 S1 S2)
       (CODE-START)
(LABEL 1)    (ADDI Q 14)
             (MOVEM O1 -13 Q)
             (MOVEM O2 -12 Q)
             (MOVEM O3 -11 Q)
             (MOVE O5 (CONSTANT 0))
             (MOVEM O5 -10 Q)
             (MOVEM NIL -9 Q)
(LABEL 7)    (SKIPE NIL -13 Q)
             (JRST 8)
             (MOVE O1 -9 Q)
             (MOVEI N 1)
             (JRST 3)
(LABEL 8)    (MOVE O1 -10 Q)
             (CALL 1+ 1)
             (MOVEM O1 -8 Q)
             (MOVEM NIL -5 Q)
             (MOVEM NIL -4 Q)
(LABEL 14)   (SKIPE NIL -13 Q)
             (JRST 19)
             (MOVE O1 NIL)
             (MOVEM O1 -4 Q)
             (JRST 17)
(LABEL 19)   (MOVE O2 (CONSTANT 1))
             (MOVE O1 -10 Q)
             (CALL < 2)
             (JUMPE O1 22)
             (MOVE O5 -13 Q)
             (MOVEM O5 -3 Q)
             (MOVE O1 O5)
             (MOVE O1 1 O1)
             (MOVEM O1 -13 Q)
             (MOVE O2 NIL)
             (MOVE O1 O5)
             (CALL RPLACD 2)
             (MOVEM O1 -4 Q)
             (JRST 17)
(LABEL 22)   (MOVE O2 -5 Q)
             (MOVE O1 -10 Q)
             (CALL CONS 2)
             (MOVEM O1 -5 Q)
             (MOVE O1 -10 Q)
             (CALL 1- 1)
             (MOVEM O1 -10 Q)
             (MOVE O2 -5 Q)
             (MOVE O1 (CONSTANT 2))
             (CALL CONS 2)
             (MOVEM O1 -5 Q)
             (JRST 14)
(LABEL 15)   (MOVE O1 -5 Q)
             (MOVE O1 0 O1)
             (CALL 1- 1)
             (MOVEM O1 -10 Q)
             (MOVE O2 -5 Q)
             (MOVE O1 -4 Q)
             (CALL CONS 2)
             (MOVEM O1 -5 Q)
             (MOVE O2 O1)
             (MOVE O1 (CONSTANT 3))
             (CALL CONS 2)
             (MOVEM O1 -5 Q)
             (JRST 14)
(LABEL 16)   (MOVE O1 -5 Q)
             (MOVE O5 0 O1)
             (MOVEM O5 -3 Q)
             (MOVE O1 1 O1)
             (MOVEM O1 -5 Q)
             (MOVE O4 -11 Q)
             (MOVE O1 O5)
             (MOVE O2 -4 Q)
             (MOVE O3 -12 Q)
             (CALL LISP::MERGE-LISTS* 4)
             (MOVEM O1 -4 Q)
             (MOVE O1 -5 Q)
             (MOVE O5 0 O1)
             (MOVEM O5 -3 Q)
             (MOVE O1 1 O1)
             (MOVEM O1 -5 Q)
             (MOVE O1 O5)
             (MOVEM O1 -10 Q)
(LABEL 17)   (MOVE O1 -5 Q)
             (MOVE O5 0 O1)
             (MOVEM O5 -1 Q)
             (MOVE O1 1 O1)
             (MOVEM O1 -5 Q)
             (MOVEM O5 -2 Q)
             (MOVEM O5 0 Q)
             (MOVE O2 (CONSTANT 2))
             (CAME O2 0 Q)
             (JRST 25)
             (JRST 15)
(LABEL 25)   (MOVE O2 (CONSTANT 3))
             (CAME O2 0 Q)
             (JRST 26)
             (JRST 16)
(LABEL 26)   (SKIPA)
             (JRST 27)
             (MOVE O5 -4 Q)
             (MOVEM O5 -6 Q)
             (JRST 10)
(LABEL 27)   (MOVEM NIL -6 Q)
(LABEL 10)   (MOVE O4 -11 Q)
             (MOVE O1 -9 Q)
             (MOVE O2 -6 Q)
             (MOVE O3 -12 Q)
             (CALL LISP::MERGE-LISTS* 4)
             (MOVEM O1 -7 Q)
             (MOVE O1 -8 Q)
             (MOVEM O1 -10 Q)
             (MOVE O1 -7 Q)
             (MOVEM O1 -9 Q)
             (JRST 7)
(LABEL 3)    (SUBI Q 14)
             (POPJ P)
)

(%PUT (QUOTE SORT-LIST) (QUOTE %ARGS-DOCUMENTATION) (QUOTE (LIST PRED KEY))) 
(%PUT (QUOTE SORT-LIST) (QUOTE %SOURCE-DOCUMENTATION) (CONS (QUOTE "CARMEN::SS:<CLISP.UPSALA>SORT.CLISP.8") (GET (QUOTE SORT-LIST) (QUOTE %SOURCE-DOCUMENTATION)))) 
(%PUT (QUOTE STABLE-SORT) (QUOTE %FUN-DOCUMENTATION) (QUOTE "Destructively sorts Sequence.  Predicate should return non-Nil if
  Arg1 is to precede Arg2.")) 

#_(LAP #0_STABLE-SORT EXPR
       (ENTRY-POINTS (2-FEW 2-FEW 2 3 4 5 6) REST)
       #0_(PREDICATE :KEY (:KEY) "~S is not a sequence.")
       (CODE-START)
(LABEL 2)    (MOVE O3 NIL)
             (JRST 1)
(LABEL 3)    (MOVEI W2 1)
             (ICALL REST3)
             (JRST 1)
(LABEL 4)    (MOVEI W2 2)
             (ICALL REST4)
             (JRST 1)
(LABEL 5)    (MOVEI W2 3)
             (ICALL REST5)
             (JRST 1)
(LABEL 6)    (MOVEI W2 2)
             (ICALL RESTX)
(LABEL 1)    (ADDI Q 5)
             (MOVEM O1 -3 Q)
             (SPEC-BIND (SPECIAL 0))
             (MOVEM O2 (SPECIAL 0))
             (MOVEM O3 -2 Q)
             (MOVE O2 O3)
(LABEL 8)    (DMOVE O3 0 O2)
             (DMOVE O1 0 O4)
             (CAME O3 (CONSTANT 1))
             (JUMPN O4 8)
             (MOVEM O1 -4 Q)
             (MOVE O5 -2 Q)
             (MOVEM O5 -1 Q)
             (MOVE O2 (CONSTANT 2))
             (MOVE O1 O5)
             (CALL LISP::KEYWORD-TEST 2)
             (MOVE O1 -3 Q)
             (CALL LISP::SLISP-ARRAY-P 1)
             (JUMPE O1 10)
             (MOVE O5 (SPECIAL 0))
             (MOVEM O5 0 Q)
             (MOVE O3 -4 Q)
             (MOVE O1 -3 Q)
             (MOVE O2 O5)
             (CALL LISP::STABLE-SORT-SIMPLE-VECTOR 3)
             (JRST 11)
(LABEL 10)   (MOVE O1 -3 Q)
             (CALL LISP::SLISP-VECTOR-P 1)
             (JUMPE O1 12)
             (MOVE O5 (SPECIAL 0))
             (MOVEM O5 0 Q)
             (MOVE O3 -4 Q)
             (MOVE O1 -3 Q)
             (MOVE O2 O5)
             (CALL LISP::STABLE-SORT-VECTOR 3)
             (JRST 13)
(LABEL 12)   (MOVE O1 -3 Q)
             (CALL LISTP 1)
             (JUMPE O1 14)
             (MOVE O5 (SPECIAL 0))
             (MOVEM O5 0 Q)
             (MOVE O3 -4 Q)
             (MOVE O1 -3 Q)
             (MOVE O2 O5)
             (CALL LISP::SORT-LIST 3)
             (JRST 15)
(LABEL 14)   (MOVE O1 (CONSTANT 3))
             (CALL ERROR 1)
(LABEL 15)
(LABEL 13)
(LABEL 11)   (UNBIND 1)
             (SUBI Q 5)
             (POPJ P)
)

(%PUT (QUOTE STABLE-SORT) (QUOTE %ARGS-DOCUMENTATION) (QUOTE (SEQUENCE PREDICATE &KEY ((:KEY KEYFUN) NIL)))) 
(%PUT (QUOTE STABLE-SORT) (QUOTE %SOURCE-DOCUMENTATION) (CONS (QUOTE "CARMEN::SS:<CLISP.UPSALA>SORT.CLISP.8") (GET (QUOTE STABLE-SORT) (QUOTE %SOURCE-DOCUMENTATION)))) 
(%PUT (QUOTE STABLE-SORT-SIMPLE-VECTOR) (QUOTE %FUN-DOCUMENTATION) (QUOTE "This is an internal function.  Use STABLE-SORT instead.")) 

#_(LAP #0_STABLE-SORT-SIMPLE-VECTOR EXPR
       (ENTRY-POINTS (2-FEW 2-FEW 2-FEW 1 2-MANY 2-MANY 2-MANY))
       #0_(HEADER 0)
       (CODE-START)
(LABEL 1)    (ADDI Q 11)
             (MOVEM O1 -10 Q)
             (MOVEM O2 -9 Q)
             (MOVEM O3 -8 Q)
             (MOVE O2 NIL)
             (MOVE O1 (CONSTANT 0))
             (CALL CONS 2)
             (MOVEM O1 -7 Q)
             (MOVE O1 -10 Q)
             (CALL LENGTH 1)
             (MOVEM O1 -6 Q)
             (MOVE O5 (CONSTANT 1))
             (MOVEM O5 -4 Q)
             (MOVE O5 -7 Q)
             (MOVEM O5 -3 Q)
(LABEL 7)    (MOVE O2 -6 Q)
             (MOVE O1 -4 Q)
             (CALL = 2)
             (JUMPE O1 8)
             (MOVE O1 -7 Q)
             (MOVE O5 1 O1)
             (MOVEM O5 -5 Q)
             (JRST 3)
(LABEL 8)    (MOVE O1 -4 Q)
             (CALL 1+ 1)
             (MOVEM O1 -2 Q)
             (MOVE O2 -4 Q)
             (MOVE O1 -10 Q)
             (CALL LISP::%SP-SAREF1 2)
             (MOVEM O1 0 Q)
             (MOVE O2 NIL)
             (CALL CONS 2)
             (MOVE O2 O1)
             (MOVE O1 -3 Q)
             (CALL RPLACD 2)
             (MOVE O5 1 O1)
             (MOVEM O5 -1 Q)
             (MOVE O1 -2 Q)
             (MOVEM O1 -4 Q)
             (MOVE O1 O5)
             (MOVEM O1 -3 Q)
             (JRST 7)
(LABEL 3)    (MOVE O3 -8 Q)
             (MOVE O1 -5 Q)
             (MOVE O2 -9 Q)
             (CALL LISP::SORT-LIST 3)
             (MOVEM O1 -4 Q)
             (MOVE O5 (CONSTANT 1))
             (MOVEM O5 -3 Q)
(LABEL 14)   (SKIPE NIL -4 Q)
             (JRST 15)
             (MOVE O1 -10 Q)
             (MOVEI N 1)
             (JRST 10)
(LABEL 15)   (MOVE O1 -4 Q)
             (MOVE O3 0 O1)
             (MOVE O1 -10 Q)
             (MOVE O2 -3 Q)
             (CALL LISP::%SP-SASET1 3)
             (MOVE O1 -4 Q)
             (MOVE O5 1 O1)
             (MOVEM O5 -2 Q)
             (MOVE O1 -3 Q)
             (CALL 1+ 1)
             (MOVEM O1 -1 Q)
             (MOVE O1 -2 Q)
             (MOVEM O1 -4 Q)
             (MOVE O1 -1 Q)
             (MOVEM O1 -3 Q)
             (JRST 14)
(LABEL 10)   (SUBI Q 11)
             (POPJ P)
)

(%PUT (QUOTE STABLE-SORT-SIMPLE-VECTOR) (QUOTE %ARGS-DOCUMENTATION) (QUOTE (VECTOR PRED KEY))) 
(%PUT (QUOTE STABLE-SORT-SIMPLE-VECTOR) (QUOTE %SOURCE-DOCUMENTATION) (CONS (QUOTE "CARMEN::SS:<CLISP.UPSALA>SORT.CLISP.8") (GET (QUOTE STABLE-SORT-SIMPLE-VECTOR) (QUOTE %SOURCE-DOCUMENTATION)))) 
(%PUT (QUOTE STABLE-SORT-VECTOR) (QUOTE %FUN-DOCUMENTATION) (QUOTE "This is an internal function.  Use STABLE-SORT instead.")) 

#_(LAP #0_STABLE-SORT-VECTOR EXPR
       (ENTRY-POINTS (2-FEW 2-FEW 2-FEW 1 2-MANY 2-MANY 2-MANY))
       #0_(HEADER 0)
       (CODE-START)
(LABEL 1)    (ADDI Q 11)
             (MOVEM O1 -10 Q)
             (MOVEM O2 -9 Q)
             (MOVEM O3 -8 Q)
             (MOVE O2 NIL)
             (MOVE O1 (CONSTANT 0))
             (CALL CONS 2)
             (MOVEM O1 -7 Q)
             (MOVE O1 -10 Q)
             (CALL LENGTH 1)
             (MOVEM O1 -6 Q)
             (MOVE O5 (CONSTANT 1))
             (MOVEM O5 -4 Q)
             (MOVE O5 -7 Q)
             (MOVEM O5 -3 Q)
(LABEL 7)    (MOVE O2 -6 Q)
             (MOVE O1 -4 Q)
             (CALL = 2)
             (JUMPE O1 8)
             (MOVE O1 -7 Q)
             (MOVE O5 1 O1)
             (MOVEM O5 -5 Q)
             (JRST 3)
(LABEL 8)    (MOVE O1 -4 Q)
             (CALL 1+ 1)
             (MOVEM O1 -2 Q)
             (MOVE O2 -4 Q)
             (MOVE O1 -10 Q)
             (CALL LISP::%SP-SAREF1 2)
             (MOVEM O1 0 Q)
             (MOVE O2 NIL)
             (CALL CONS 2)
             (MOVE O2 O1)
             (MOVE O1 -3 Q)
             (CALL RPLACD 2)
             (MOVE O5 1 O1)
             (MOVEM O5 -1 Q)
             (MOVE O1 -2 Q)
             (MOVEM O1 -4 Q)
             (MOVE O1 O5)
             (MOVEM O1 -3 Q)
             (JRST 7)
(LABEL 3)    (MOVE O3 -8 Q)
             (MOVE O1 -5 Q)
             (MOVE O2 -9 Q)
             (CALL LISP::SORT-LIST 3)
             (MOVEM O1 -4 Q)
             (MOVE O5 (CONSTANT 1))
             (MOVEM O5 -3 Q)
(LABEL 14)   (SKIPE NIL -4 Q)
             (JRST 15)
             (MOVE O1 -10 Q)
             (MOVEI N 1)
             (JRST 10)
(LABEL 15)   (MOVE O1 -4 Q)
             (MOVE O3 0 O1)
             (MOVE O1 -10 Q)
             (MOVE O2 -3 Q)
             (CALL LISP::%SP-SASET1 3)
             (MOVE O1 -4 Q)
             (MOVE O5 1 O1)
             (MOVEM O5 -2 Q)
             (MOVE O1 -3 Q)
             (CALL 1+ 1)
             (MOVEM O1 -1 Q)
             (MOVE O1 -2 Q)
             (MOVEM O1 -4 Q)
             (MOVE O1 -1 Q)
             (MOVEM O1 -3 Q)
             (JRST 14)
(LABEL 10)   (SUBI Q 11)
             (POPJ P)
)

(%PUT (QUOTE STABLE-SORT-VECTOR) (QUOTE %ARGS-DOCUMENTATION) (QUOTE (VECTOR PRED KEY))) 
(%PUT (QUOTE STABLE-SORT-VECTOR) (QUOTE %SOURCE-DOCUMENTATION) (CONS (QUOTE "CARMEN::SS:<CLISP.UPSALA>SORT.CLISP.8") (GET (QUOTE STABLE-SORT-VECTOR) (QUOTE %SOURCE-DOCUMENTATION)))) 
(%PUT (QUOTE MERGE) (QUOTE %FUN-DOCUMENTATION) (QUOTE "The sequences Sequence1 and Sequence2 are destructively merged into
  a sequence of type Result-Type using the Predicate to order the elements.")) 

#_(LAP #0_MERGE EXPR
       (ENTRY-POINTS (2-FEW 2-FEW 2-FEW 2-FEW 2 3 4) REST)
       #0_(PREDICATE :KEY IDENTITY (:KEY) LIST ARRAY "~S is not a sequence." (VECTOR ARRAY STRING) :TEST EQL VECTOR "~S is not a subtype of SEQUENCE.")
       (CODE-START)
(LABEL 2)    (MOVE O5 NIL)
             (JRST 1)
(LABEL 3)    (MOVEI W2 1)
             (ICALL REST5)
             (JRST 1)
(LABEL 4)    (MOVEI W2 4)
             (ICALL RESTX)
(LABEL 1)    (ADDI Q 12)
             (MOVEM O1 -10 Q)
             (MOVEM O2 -9 Q)
             (MOVEM O3 -8 Q)
             (SPEC-BIND (SPECIAL 0))
             (MOVEM O4 (SPECIAL 0))
             (MOVEM O5 -7 Q)
             (MOVE O2 O5)
(LABEL 6)    (DMOVE O3 0 O2)
             (DMOVE O1 0 O4)
             (CAMN O3 (CONSTANT 1))
             (JRST 5)
             (JUMPN O2 6)
             (MOVE O1 (CONSTANT 2))
(LABEL 5)    (MOVEM O1 -11 Q)
             (MOVE O5 -7 Q)
             (MOVEM O5 -6 Q)
             (MOVE O2 (CONSTANT 3))
             (MOVE O1 O5)
             (CALL LISP::KEYWORD-TEST 2)
             (MOVE O1 -10 Q)
             (CALL ATOM 1)
             (JUMPE O1 8)
             (MOVE O5 -10 Q)
             (MOVEM O5 -5 Q)
             (JRST 9)
(LABEL 8)    (MOVE O1 -10 Q)
             (MOVE O5 0 O1)
             (MOVEM O5 -5 Q)
(LABEL 9)    (MOVE O2 (CONSTANT 4))
             (CAME O2 -5 Q)
             (JRST 11)
             (MOVE O5 -9 Q)
             (MOVEM O5 -4 Q)
             (MOVE O2 (CONSTANT 4))
             (MOVE O1 O5)
             (CALL TYPEP 2)
             (JUMPE O1 13)
             (MOVE O5 -8 Q)
             (MOVEM O5 -3 Q)
             (MOVE O2 (CONSTANT 4))
             (MOVE O1 O5)
             (CALL TYPEP 2)
             (JUMPE O1 15)
             (MOVE O5 (SPECIAL 0))
             (MOVEM O5 0 Q)
             (MOVE O4 -11 Q)
             (MOVE O1 -9 Q)
             (MOVE O2 -8 Q)
             (MOVE O3 O5)
             (CALL LISP::MERGE-LISTS* 4)
             (JRST 14)
(LABEL 15)   (MOVE O2 (CONSTANT 5))
             (MOVE O1 -3 Q)
             (CALL TYPEP 2)
             (JUMPE O1 16)
             (MOVE O1 -8 Q)
             (CALL LISP::VECTOR-TO-LIST* 1)
             (MOVEM O1 -1 Q)
             (MOVE O5 (SPECIAL 0))
             (MOVEM O5 0 Q)
             (MOVE O4 -11 Q)
             (MOVE O1 -9 Q)
             (MOVE O2 -1 Q)
             (MOVE O3 O5)
             (CALL LISP::MERGE-LISTS* 4)
             (JRST 14)
(LABEL 16)   (SKIPA)
             (JRST 17)
             (MOVE O2 -8 Q)
             (MOVE O1 (CONSTANT 6))
             (CALL ERROR 2)
(LABEL 17)
(LABEL 14)   (JRST 12)
(LABEL 13)   (MOVE O2 (CONSTANT 5))
             (MOVE O1 -4 Q)
             (CALL TYPEP 2)
             (JUMPE O1 19)
             (MOVE O5 -8 Q)
             (MOVEM O5 -3 Q)
             (MOVE O2 (CONSTANT 4))
             (MOVE O1 O5)
             (CALL TYPEP 2)
             (JUMPE O1 21)
             (MOVE O1 -9 Q)
             (CALL LISP::VECTOR-TO-LIST* 1)
             (MOVEM O1 -2 Q)
             (MOVE O5 (SPECIAL 0))
             (MOVEM O5 0 Q)
             (MOVE O4 -11 Q)
             (MOVE O2 -8 Q)
             (MOVE O3 O5)
             (CALL LISP::MERGE-LISTS* 4)
             (JRST 20)
(LABEL 21)   (MOVE O2 (CONSTANT 5))
             (MOVE O1 -3 Q)
             (CALL TYPEP 2)
             (JUMPE O1 22)
             (MOVE O1 -9 Q)
             (CALL LISP::VECTOR-TO-LIST* 1)
             (MOVEM O1 -2 Q)
             (MOVE O1 -8 Q)
             (CALL LISP::VECTOR-TO-LIST* 1)
             (MOVEM O1 -1 Q)
             (MOVE O5 (SPECIAL 0))
             (MOVEM O5 0 Q)
             (MOVE O4 -11 Q)
             (MOVE O1 -2 Q)
             (MOVE O2 -1 Q)
             (MOVE O3 O5)
             (CALL LISP::MERGE-LISTS* 4)
             (JRST 20)
(LABEL 22)   (SKIPA)
             (JRST 23)
             (MOVE O2 -8 Q)
             (MOVE O1 (CONSTANT 6))
             (CALL ERROR 2)
(LABEL 23)
(LABEL 20)   (JRST 12)
(LABEL 19)   (SKIPA)
             (JRST 25)
             (MOVE O2 -9 Q)
             (MOVE O1 (CONSTANT 6))
             (CALL ERROR 2)
(LABEL 25)
(LABEL 12)   (JRST 10)
(LABEL 11)   (MOVE O4 (CONSTANT 9))
             (MOVE O1 -5 Q)
             (MOVE O2 (CONSTANT 7))
             (MOVE O3 (CONSTANT 8))
             (CALL MEMBER 4)
             (JUMPE O1 27)
             (MOVE O5 -9 Q)
             (MOVEM O5 -4 Q)
             (MOVE O2 (CONSTANT 4))
             (MOVE O1 O5)
             (CALL TYPEP 2)
             (JUMPE O1 29)
             (MOVE O5 -8 Q)
             (MOVEM O5 -3 Q)
             (MOVE O2 (CONSTANT 4))
             (MOVE O1 O5)
             (CALL TYPEP 2)
             (JUMPE O1 31)
             (MOVE O2 (CONSTANT 10))
             (MOVE O1 -9 Q)
             (CALL LISP::LIST-TO-VECTOR* 2)
             (MOVEM O1 -2 Q)
             (MOVE O2 (CONSTANT 10))
             (MOVE O1 -8 Q)
             (CALL LISP::LIST-TO-VECTOR* 2)
             (MOVEM O1 -1 Q)
             (MOVE O5 (SPECIAL 0))
             (MOVEM O5 0 Q)
             (MOVE O4 -11 Q)
             (MOVE O1 -2 Q)
             (MOVE O2 -1 Q)
             (MOVE O3 O5)
             (CALL LISP::MERGE-VECTORS* 4)
             (JRST 30)
(LABEL 31)   (MOVE O2 (CONSTANT 5))
             (MOVE O1 -3 Q)
             (CALL TYPEP 2)
             (JUMPE O1 32)
             (MOVE O2 (CONSTANT 10))
             (MOVE O1 -9 Q)
             (CALL LISP::LIST-TO-VECTOR* 2)
             (MOVEM O1 -2 Q)
             (MOVE O5 (SPECIAL 0))
             (MOVEM O5 0 Q)
             (MOVE O4 -11 Q)
             (MOVE O2 -8 Q)
             (MOVE O3 O5)
             (CALL LISP::MERGE-VECTORS* 4)
             (JRST 30)
(LABEL 32)   (SKIPA)
             (JRST 33)
             (MOVE O2 -8 Q)
             (MOVE O1 (CONSTANT 6))
             (CALL ERROR 2)
(LABEL 33)
(LABEL 30)   (JRST 28)
(LABEL 29)   (MOVE O2 (CONSTANT 5))
             (MOVE O1 -4 Q)
             (CALL TYPEP 2)
             (JUMPE O1 35)
             (MOVE O5 -8 Q)
             (MOVEM O5 -3 Q)
             (MOVE O2 (CONSTANT 4))
             (MOVE O1 O5)
             (CALL TYPEP 2)
             (JUMPE O1 37)
             (MOVE O2 (CONSTANT 10))
             (MOVE O1 -8 Q)
             (CALL LISP::LIST-TO-VECTOR* 2)
             (MOVEM O1 -1 Q)
             (MOVE O5 (SPECIAL 0))
             (MOVEM O5 0 Q)
             (MOVE O4 -11 Q)
             (MOVE O1 -9 Q)
             (MOVE O2 -1 Q)
             (MOVE O3 O5)
             (CALL LISP::MERGE-VECTORS* 4)
             (JRST 36)
(LABEL 37)   (MOVE O2 (CONSTANT 5))
             (MOVE O1 -3 Q)
             (CALL TYPEP 2)
             (JUMPE O1 38)
             (MOVE O5 (SPECIAL 0))
             (MOVEM O5 0 Q)
             (MOVE O4 -11 Q)
             (MOVE O1 -9 Q)
             (MOVE O2 -8 Q)
             (MOVE O3 O5)
             (CALL LISP::MERGE-VECTORS* 4)
             (JRST 36)
(LABEL 38)   (SKIPA)
             (JRST 39)
             (MOVE O2 -8 Q)
             (MOVE O1 (CONSTANT 6))
             (CALL ERROR 2)
(LABEL 39)
(LABEL 36)   (JRST 28)
(LABEL 35)   (SKIPA)
             (JRST 41)
             (MOVE O2 -9 Q)
             (MOVE O1 (CONSTANT 6))
             (CALL ERROR 2)
(LABEL 41)
(LABEL 28)   (JRST 10)
(LABEL 27)   (SKIPA)
             (JRST 43)
             (MOVE O2 -10 Q)
             (MOVE O1 (CONSTANT 11))
             (CALL ERROR 2)
(LABEL 43)
(LABEL 10)   (UNBIND 1)
             (SUBI Q 12)
             (POPJ P)
)

(%PUT (QUOTE MERGE) (QUOTE %ARGS-DOCUMENTATION) (QUOTE (RESULT-TYPE SEQUENCE1 SEQUENCE2 PREDICATE &KEY (KEY (FUNCTION IDENTITY))))) 
(%PUT (QUOTE MERGE) (QUOTE %SOURCE-DOCUMENTATION) (CONS (QUOTE "CARMEN::SS:<CLISP.UPSALA>SORT.CLISP.8") (GET (QUOTE MERGE) (QUOTE %SOURCE-DOCUMENTATION)))) 

#_(LAP #0_MERGE-LISTS* EXPR
       (ENTRY-POINTS (2-FEW 2-FEW 2-FEW 2-FEW 1 2-MANY 2-MANY))
       #0_(HEADER)
       (CODE-START)
(LABEL 1)    (ADDI Q 9)
             (MOVEM O1 -8 Q)
             (MOVEM O2 -7 Q)
             (MOVEM O3 -6 Q)
             (MOVEM O4 -5 Q)
             (MOVE O1 (CONSTANT 0))
             (CALL LIST 1)
             (MOVEM O1 -4 Q)
             (MOVE O5 O1)
             (MOVEM O5 -3 Q)
(LABEL 7)    (SKIPN NIL -8 Q)
             (JRST1 10)
             (SKIPE NIL -7 Q)
(LABEL 10)   (JRST 8)
             (SKIPE NIL -8 Q)
             (JRST 11)
             (MOVE O2 -7 Q)
             (MOVE O1 -3 Q)
             (CALL RPLACD 2)
             (JRST 12)
(LABEL 11)   (MOVE O2 -8 Q)
             (MOVE O1 -3 Q)
             (CALL RPLACD 2)
(LABEL 12)   (MOVE O1 -4 Q)
             (MOVE O1 1 O1)
             (MOVEI N 1)
             (JRST 3)
(LABEL 8)    (SKIPN NIL -5 Q)
             (JRST 15)
             (MOVE O5 -6 Q)
             (MOVEM O5 -2 Q)
             (MOVE O5 -5 Q)
             (MOVEM O5 -1 Q)
             (MOVE O1 -7 Q)
             (MOVE O1 0 O1)
             (MOVE O6 O5)
             (FCALL 1)
             (MOVEM O1 -1 Q)
             (MOVE O5 -5 Q)
             (MOVEM O5 0 Q)
             (MOVE O1 -8 Q)
             (MOVE O1 0 O1)
             (MOVE O6 O5)
             (FCALL 1)
             (MOVE O2 O1)
             (MOVE O1 -1 Q)
             (MOVE O6 -2 Q)
             (FCALL 2)
             (JUMPE O1 16)
             (JRST1 16)
(LABEL 15)   (MOVE O5 -6 Q)
             (MOVEM O5 -2 Q)
             (MOVE O1 -7 Q)
             (MOVE O5 0 O1)
             (MOVEM O5 -1 Q)
             (MOVE O1 -8 Q)
             (MOVE O2 0 O1)
             (MOVE O1 O5)
             (MOVE O6 -2 Q)
             (FCALL 2)
             (SKIPN NIL O1)
(LABEL 16)   (JRST 14)
             (MOVE O2 -7 Q)
             (MOVE O1 -3 Q)
             (CALL RPLACD 2)
             (MOVE O1 -3 Q)
             (MOVE O1 1 O1)
             (MOVEM O1 -3 Q)
             (MOVE O1 -7 Q)
             (MOVE O5 0 O1)
             (MOVEM O5 -2 Q)
             (MOVE O1 1 O1)
             (MOVEM O1 -7 Q)
             (JRST 13)
(LABEL 14)   (SKIPA)
             (JRST 17)
             (MOVE O2 -8 Q)
             (MOVE O1 -3 Q)
             (CALL RPLACD 2)
             (MOVE O1 -3 Q)
             (MOVE O1 1 O1)
             (MOVEM O1 -3 Q)
             (MOVE O1 -8 Q)
             (MOVE O5 0 O1)
             (MOVEM O5 -2 Q)
             (MOVE O1 1 O1)
             (MOVEM O1 -8 Q)
(LABEL 17)
(LABEL 13)   (JRST 7)
(LABEL 3)    (SUBI Q 9)
             (POPJ P)
)

(%PUT (QUOTE MERGE-LISTS*) (QUOTE %ARGS-DOCUMENTATION) (QUOTE (LIST-1 LIST-2 PRED KEY))) 
(%PUT (QUOTE MERGE-LISTS*) (QUOTE %SOURCE-DOCUMENTATION) (CONS (QUOTE "CARMEN::SS:<CLISP.UPSALA>SORT.CLISP.8") (GET (QUOTE MERGE-LISTS*) (QUOTE %SOURCE-DOCUMENTATION)))) 

#_(LAP #0_MERGE-VECTORS* EXPR
       (ENTRY-POINTS (2-FEW 2-FEW 2-FEW 2-FEW 1 2-MANY 2-MANY))
       #0_NIL
       (CODE-START)
(LABEL 1)    (ADDI Q 4)
             (MOVEM O1 -3 Q)
             (MOVEM O2 -2 Q)
             (MOVEM O3 -1 Q)
             (MOVEM O4 0 Q)
             (CALL LISP::SLISP-ARRAY-P 1)
             (JUMPN1 O1 5)
             (MOVE O1 -2 Q)
             (CALL LISP::SLISP-ARRAY-P 1)
             (SKIPN NIL O1)
(LABEL 5)    (JRST 3)
             (MOVE O4 0 Q)
             (MOVE O1 -3 Q)
             (MOVE O2 -2 Q)
             (MOVE O3 -1 Q)
             (CALL LISP::MERGE-NON-SIMPLE-VECTORS 4)
             (JRST 4)
(LABEL 3)    (MOVE O4 0 Q)
             (MOVE O1 -3 Q)
             (MOVE O2 -2 Q)
             (MOVE O3 -1 Q)
             (CALL LISP::MERGE-SIMPLE-VECTORS 4)
(LABEL 4)    (SUBI Q 4)
             (POPJ P)
)

(%PUT (QUOTE MERGE-VECTORS*) (QUOTE %ARGS-DOCUMENTATION) (QUOTE (VECTOR1 VECTOR2 PRED KEY))) 
(%PUT (QUOTE MERGE-VECTORS*) (QUOTE %SOURCE-DOCUMENTATION) (CONS (QUOTE "CARMEN::SS:<CLISP.UPSALA>SORT.CLISP.8") (GET (QUOTE MERGE-VECTORS*) (QUOTE %SOURCE-DOCUMENTATION)))) 
(%PUT (QUOTE MERGE-SIMPLE-VECTORS) (QUOTE %FUN-DOCUMENTATION) (QUOTE "Internal function.  Use MERGE instead.")) 

#_(LAP #0_MERGE-SIMPLE-VECTORS EXPR
       (ENTRY-POINTS (2-FEW 2-FEW 2-FEW 2-FEW 1 2-MANY 2-MANY))
       #0_(:ELEMENT-TYPE 0)
       (CODE-START)
(LABEL 1)    (ADDI Q 14)
             (MOVEM O1 -13 Q)
             (MOVEM O2 -12 Q)
             (MOVEM O3 -11 Q)
             (MOVEM O4 -10 Q)
             (CALL LENGTH 1)
             (MOVEM O1 -9 Q)
             (MOVE O1 -12 Q)
             (CALL LENGTH 1)
             (MOVEM O1 -8 Q)
             (MOVE O2 O1)
             (MOVE O1 -9 Q)
             (CALL + 2)
             (MOVEM O1 -7 Q)
             (MOVE O1 -13 Q)
             (CALL ARRAY-ELEMENT-TYPE 1)
             (MOVE O3 O1)
             (MOVE O1 -7 Q)
             (MOVE O2 (CONSTANT 0))
             (CALL MAKE-ARRAY 3)
             (MOVEM O1 -6 Q)
             (MOVE O5 (CONSTANT 1))
             (MOVEM O5 -5 Q)
             (MOVE O5 (CONSTANT 1))
             (MOVEM O5 -4 Q)
             (MOVE O5 (CONSTANT 1))
             (MOVEM O5 -3 Q)
(LABEL 7)    (MOVE O2 -7 Q)
             (MOVE O1 -5 Q)
             (CALL < 2)
             (JUMPN O1 8)
             (MOVE O1 -6 Q)
             (MOVEI N 1)
             (JRST 3)
(LABEL 8)    (MOVE O2 -9 Q)
             (MOVE O1 -4 Q)
             (CALL = 2)
             (JUMPE O1 11)
(LABEL 16)   (MOVE O2 -7 Q)
             (MOVE O1 -5 Q)
             (CALL = 2)
             (JUMPE O1 17)
             (JRST 12)
(LABEL 17)   (MOVE O2 -3 Q)
             (MOVE O1 -12 Q)
             (CALL LISP::%SP-SAREF1 2)
             (MOVE O3 O1)
             (MOVE O1 -6 Q)
             (MOVE O2 -5 Q)
             (CALL LISP::%SP-SASET1 3)
             (MOVE O1 -5 Q)
             (CALL 1+ 1)
             (MOVEM O1 -5 Q)
             (MOVE O1 -3 Q)
             (CALL 1+ 1)
             (MOVEM O1 -3 Q)
             (JRST 16)
(LABEL 12)   (JRST 10)
(LABEL 11)   (MOVE O2 -8 Q)
             (MOVE O1 -3 Q)
             (CALL = 2)
             (JUMPE O1 19)
(LABEL 24)   (MOVE O2 -7 Q)
             (MOVE O1 -5 Q)
             (CALL = 2)
             (JUMPE O1 25)
             (JRST 20)
(LABEL 25)   (MOVE O2 -4 Q)
             (MOVE O1 -13 Q)
             (CALL LISP::%SP-SAREF1 2)
             (MOVE O3 O1)
             (MOVE O1 -6 Q)
             (MOVE O2 -5 Q)
             (CALL LISP::%SP-SASET1 3)
             (MOVE O1 -5 Q)
             (CALL 1+ 1)
             (MOVEM O1 -5 Q)
             (MOVE O1 -4 Q)
             (CALL 1+ 1)
             (MOVEM O1 -4 Q)
             (JRST 24)
(LABEL 20)   (JRST 10)
(LABEL 19)   (SKIPN NIL -10 Q)
             (JRST 28)
             (MOVE O5 -11 Q)
             (MOVEM O5 -2 Q)
             (MOVE O5 -10 Q)
             (MOVEM O5 -1 Q)
             (MOVE O2 -3 Q)
             (MOVE O1 -12 Q)
             (CALL LISP::%SP-SAREF1 2)
             (MOVE O6 -1 Q)
             (FCALL 1)
             (MOVEM O1 -1 Q)
             (MOVE O5 -10 Q)
             (MOVEM O5 0 Q)
             (MOVE O2 -4 Q)
             (MOVE O1 -13 Q)
             (CALL LISP::%SP-SAREF1 2)
             (MOVE O6 0 Q)
             (FCALL 1)
             (MOVE O2 O1)
             (MOVE O1 -1 Q)
             (MOVE O6 -2 Q)
             (FCALL 2)
             (JUMPE O1 29)
             (JRST1 29)
(LABEL 28)   (MOVE O5 -11 Q)
             (MOVEM O5 -2 Q)
             (MOVE O2 -3 Q)
             (MOVE O1 -12 Q)
             (CALL LISP::%SP-SAREF1 2)
             (MOVEM O1 -1 Q)
             (MOVE O2 -4 Q)
             (MOVE O1 -13 Q)
             (CALL LISP::%SP-SAREF1 2)
             (MOVE O2 O1)
             (MOVE O1 -1 Q)
             (MOVE O6 -2 Q)
             (FCALL 2)
             (SKIPN NIL O1)
(LABEL 29)   (JRST 27)
             (MOVE O2 -3 Q)
             (MOVE O1 -12 Q)
             (CALL LISP::%SP-SAREF1 2)
             (MOVE O3 O1)
             (MOVE O1 -6 Q)
             (MOVE O2 -5 Q)
             (CALL LISP::%SP-SASET1 3)
             (MOVE O1 -3 Q)
             (CALL 1+ 1)
             (MOVEM O1 -3 Q)
             (JRST 10)
(LABEL 27)   (SKIPA)
             (JRST 30)
             (MOVE O2 -4 Q)
             (MOVE O1 -13 Q)
             (CALL LISP::%SP-SAREF1 2)
             (MOVE O3 O1)
             (MOVE O1 -6 Q)
             (MOVE O2 -5 Q)
             (CALL LISP::%SP-SASET1 3)
             (MOVE O1 -4 Q)
             (CALL 1+ 1)
             (MOVEM O1 -4 Q)
(LABEL 30)
(LABEL 10)   (MOVE O1 -5 Q)
             (CALL 1+ 1)
             (MOVEM O1 -5 Q)
             (JRST 7)
(LABEL 3)    (SUBI Q 14)
             (POPJ P)
)

(%PUT (QUOTE MERGE-SIMPLE-VECTORS) (QUOTE %ARGS-DOCUMENTATION) (QUOTE (VECTOR-1 VECTOR-2 PRED KEY))) 
(%PUT (QUOTE MERGE-SIMPLE-VECTORS) (QUOTE %SOURCE-DOCUMENTATION) (CONS (QUOTE "CARMEN::SS:<CLISP.UPSALA>SORT.CLISP.8") (GET (QUOTE MERGE-SIMPLE-VECTORS) (QUOTE %SOURCE-DOCUMENTATION)))) 
(%PUT (QUOTE MERGE-NON-SIMPLE-VECTORS) (QUOTE %FUN-DOCUMENTATION) (QUOTE "Internal function.  Use MERGE instead.")) 

#_(LAP #0_MERGE-NON-SIMPLE-VECTORS EXPR
       (ENTRY-POINTS (2-FEW 2-FEW 2-FEW 2-FEW 1 2-MANY 2-MANY))
       #0_(:ELEMENT-TYPE 0)
       (CODE-START)
(LABEL 1)    (ADDI Q 14)
             (MOVEM O1 -13 Q)
             (MOVEM O2 -12 Q)
             (MOVEM O3 -11 Q)
             (MOVEM O4 -10 Q)
             (CALL LENGTH 1)
             (MOVEM O1 -9 Q)
             (MOVE O1 -12 Q)
             (CALL LENGTH 1)
             (MOVEM O1 -8 Q)
             (MOVE O1 -13 Q)
             (CALL LENGTH 1)
             (MOVEM O1 -6 Q)
             (MOVE O1 -12 Q)
             (CALL LENGTH 1)
             (MOVE O2 O1)
             (MOVE O1 -6 Q)
             (CALL + 2)
             (MOVEM O1 -7 Q)
             (MOVE O1 -13 Q)
             (CALL ARRAY-ELEMENT-TYPE 1)
             (MOVE O3 O1)
             (MOVE O1 -7 Q)
             (MOVE O2 (CONSTANT 0))
             (CALL MAKE-ARRAY 3)
             (MOVEM O1 -6 Q)
             (MOVE O5 (CONSTANT 1))
             (MOVEM O5 -5 Q)
             (MOVE O5 (CONSTANT 1))
             (MOVEM O5 -4 Q)
             (MOVE O5 (CONSTANT 1))
             (MOVEM O5 -3 Q)
(LABEL 7)    (MOVE O2 -7 Q)
             (MOVE O1 -5 Q)
             (CALL < 2)
             (JUMPN O1 8)
             (MOVE O1 -6 Q)
             (MOVEI N 1)
             (JRST 3)
(LABEL 8)    (MOVE O2 -9 Q)
             (MOVE O1 -4 Q)
             (CALL = 2)
             (JUMPE O1 11)
(LABEL 16)   (MOVE O2 -7 Q)
             (MOVE O1 -5 Q)
             (CALL = 2)
             (JUMPE O1 17)
             (JRST 12)
(LABEL 17)   (MOVE O2 -3 Q)
             (MOVE O1 -12 Q)
             (CALL AREF 2)
             (MOVE O3 O1)
             (MOVE O1 -6 Q)
             (MOVE O2 -5 Q)
             (CALL LISP::%ASET 3)
             (MOVE O1 -5 Q)
             (CALL 1+ 1)
             (MOVEM O1 -5 Q)
             (MOVE O1 -3 Q)
             (CALL 1+ 1)
             (MOVEM O1 -3 Q)
             (JRST 16)
(LABEL 12)   (JRST 10)
(LABEL 11)   (MOVE O2 -8 Q)
             (MOVE O1 -3 Q)
             (CALL = 2)
             (JUMPE O1 19)
(LABEL 24)   (MOVE O2 -7 Q)
             (MOVE O1 -5 Q)
             (CALL = 2)
             (JUMPE O1 25)
             (JRST 20)
(LABEL 25)   (MOVE O2 -4 Q)
             (MOVE O1 -13 Q)
             (CALL AREF 2)
             (MOVE O3 O1)
             (MOVE O1 -6 Q)
             (MOVE O2 -5 Q)
             (CALL LISP::%ASET 3)
             (MOVE O1 -5 Q)
             (CALL 1+ 1)
             (MOVEM O1 -5 Q)
             (MOVE O1 -4 Q)
             (CALL 1+ 1)
             (MOVEM O1 -4 Q)
             (JRST 24)
(LABEL 20)   (JRST 10)
(LABEL 19)   (SKIPN NIL -10 Q)
             (JRST 28)
             (MOVE O5 -11 Q)
             (MOVEM O5 -2 Q)
             (MOVE O5 -10 Q)
             (MOVEM O5 -1 Q)
             (MOVE O2 -3 Q)
             (MOVE O1 -12 Q)
             (CALL AREF 2)
             (MOVE O6 -1 Q)
             (FCALL 1)
             (MOVEM O1 -1 Q)
             (MOVE O5 -10 Q)
             (MOVEM O5 0 Q)
             (MOVE O2 -4 Q)
             (MOVE O1 -13 Q)
             (CALL AREF 2)
             (MOVE O6 0 Q)
             (FCALL 1)
             (MOVE O2 O1)
             (MOVE O1 -1 Q)
             (MOVE O6 -2 Q)
             (FCALL 2)
             (JUMPE O1 29)
             (JRST1 29)
(LABEL 28)   (MOVE O5 -11 Q)
             (MOVEM O5 -2 Q)
             (MOVE O2 -3 Q)
             (MOVE O1 -12 Q)
             (CALL AREF 2)
             (MOVEM O1 -1 Q)
             (MOVE O2 -4 Q)
             (MOVE O1 -13 Q)
             (CALL AREF 2)
             (MOVE O2 O1)
             (MOVE O1 -1 Q)
             (MOVE O6 -2 Q)
             (FCALL 2)
             (SKIPN NIL O1)
(LABEL 29)   (JRST 27)
             (MOVE O2 -3 Q)
             (MOVE O1 -12 Q)
             (CALL AREF 2)
             (MOVE O3 O1)
             (MOVE O1 -6 Q)
             (MOVE O2 -5 Q)
             (CALL LISP::%ASET 3)
             (MOVE O1 -3 Q)
             (CALL 1+ 1)
             (MOVEM O1 -3 Q)
             (JRST 10)
(LABEL 27)   (SKIPA)
             (JRST 30)
             (MOVE O2 -4 Q)
             (MOVE O1 -13 Q)
             (CALL AREF 2)
             (MOVE O3 O1)
             (MOVE O1 -6 Q)
             (MOVE O2 -5 Q)
             (CALL LISP::%ASET 3)
             (MOVE O1 -4 Q)
             (CALL 1+ 1)
             (MOVEM O1 -4 Q)
(LABEL 30)
(LABEL 10)   (MOVE O1 -5 Q)
             (CALL 1+ 1)
             (MOVEM O1 -5 Q)
             (JRST 7)
(LABEL 3)    (SUBI Q 14)
             (POPJ P)
)

(%PUT (QUOTE MERGE-NON-SIMPLE-VECTORS) (QUOTE %ARGS-DOCUMENTATION) (QUOTE (VECTOR-1 VECTOR-2 PRED KEY))) 
(%PUT (QUOTE MERGE-NON-SIMPLE-VECTORS) (QUOTE %SOURCE-DOCUMENTATION) (CONS (QUOTE "CARMEN::SS:<CLISP.UPSALA>SORT.CLISP.8") (GET (QUOTE MERGE-NON-SIMPLE-VECTORS) (QUOTE %SOURCE-DOCUMENTATION))))