Annotation of 43BSD/contrib/X/inline/machpats.c, revision 1.1.1.1

1.1       root        1: /* Copyright (c) 1984 Regents of the University of California */
                      2: 
                      3: #ifndef lint
                      4: static char sccsid[] = "@(#)machpats.c 1.3     (Berkeley)      8/19/84";
                      5: #endif not lint
                      6: 
                      7: #include "inline.h"
                      8: 
                      9: /*
                     10:  * Pattern table for special VAX instructions.
                     11:  */
                     12: struct pats machine_ptab[] = {
                     13: 
                     14: #ifdef vax
                     15:        { "3,_blkcpy\n",
                     16: "      movl    (sp)+,r1\n\
                     17:        movl    (sp)+,r3\n\
                     18:        jbr     2f\n\
                     19: 1:\n\
                     20:        subl2   r0,(sp)\n\
                     21:        movc3   r0,(r1),(r3)\n\
                     22: 2:\n\
                     23:        movzwl  $65535,r0\n\
                     24:        cmpl    (sp),r0\n\
                     25:        jgtr    1b\n\
                     26:        movl    (sp)+,r0\n\
                     27:        movc3   r0,(r1),(r3)\n" },
                     28: 
                     29:        { "3,_bcopy\n",
                     30: "      movl    (sp)+,r1*\n\
                     31:        movl    (sp)+,r3*\n\
                     32:        movl    (sp)+,r5$\n\
                     33:        movc3   r5,(r1),(r3)\n" },
                     34: 
                     35:        { "3,_ovbcopy\n",
                     36: "      movl    (sp)+,r3*\n\
                     37:        movl    (sp)+,r4*\n\
                     38:        movl    (sp)+,r5$\n\
                     39:        movc3   r5,(r3),(r4)\n" },
                     40: 
                     41:        { "3,_blkcmp\n",
                     42: "      movl    (sp)+,r1\n\
                     43:        movl    (sp)+,r3\n\
                     44:        jbr     2f\n\
                     45: 1:\n\
                     46:        subl2   r0,(sp)\n\
                     47:        cmpc3   r0,(r1),(r3)\n\
                     48:        bneq    3f\n\
                     49: 2:\n\
                     50:        movzwl  $65535,r0\n\
                     51:        cmpl    (sp),r0\n\
                     52:        jgtr    1b\n\
                     53:        movl    (sp)+,r0\n\
                     54:        cmpc3   r0,(r1),(r3)\n\
                     55: 3:\n" },
                     56: 
                     57:        { "3,_bcmp\n",
                     58: "      movl    (sp)+,r1*\n\
                     59:        movl    (sp)+,r3*\n\
                     60:        movl    (sp)+,r5$\n\
                     61:        cmpc3   r5,(r1),(r3)\n" },
                     62: 
                     63:        { "2,_blkclr\n",
                     64: "      movl    (sp)+,r3\n\
                     65:        jbr     2f\n\
                     66: 1:\n\
                     67:        subl2   r0,(sp)\n\
                     68:        movc5   $0,(r3),$0,r0,(r3)\n\
                     69: 2:\n\
                     70:        movzwl  $65535,r0\n\
                     71:        cmpl    (sp),r0\n\
                     72:        jgtr    1b\n\
                     73:        movl    (sp)+,r0\n\
                     74:        movc5   $0,(r3),$0,r0,(r3)\n" },
                     75: 
                     76:        { "2,_bzero\n",
                     77: "      movl    (sp)+,r3*\n\
                     78:        movl    (sp)+,r5$\n\
                     79:        movc5   $0,(r3),$0,r5,(r3)\n" },
                     80: 
                     81:        { "3,_llocc\n",
                     82: "      movl    (sp)+,r4$\n\
                     83:        movl    (sp)+,r5\n\
                     84:        movl    (sp)+,r1\n\
                     85: 1:\n\
                     86:        movzwl  $65535,r0\n\
                     87:        cmpl    r5,r0\n\
                     88:        jleq    1f\n\
                     89:        subl2   r0,r5\n\
                     90:        locc    r4,r0,(r1)\n\
                     91:        jeql    1b\n\
                     92:        addl2   r5,r0\n\
                     93:        jbr     2f\n\
                     94: 1:\n\
                     95:        locc    r4,r5,(r1)\n\
                     96: 2:\n" },
                     97: 
                     98:        { "3,_locc\n",
                     99: "      movl    (sp)+,r3$\n\
                    100:        movl    (sp)+,r4$\n\
                    101:        movl    (sp)+,r5*\n\
                    102:        locc    r3,r4,(r5)\n" },
                    103: 
                    104:        { "4,_scanc\n",
                    105: "      movl    (sp)+,r2$\n\
                    106:        movl    (sp)+,r3*\n\
                    107:        movl    (sp)+,r4*\n\
                    108:        movl    (sp)+,r5$\n\
                    109:        scanc   r2,(r3),(r4),r5\n" },
                    110: 
                    111:        { "3,_skpc\n",
                    112: "      movl    (sp)+,r3$\n\
                    113:        movl    (sp)+,r4$\n\
                    114:        movl    (sp)+,r5*\n\
                    115:        skpc    r3,r4,(r5)\n" },
                    116: 
                    117:        { "2,_insque\n",
                    118: "      movl    (sp)+,r4*\n\
                    119:        movl    (sp)+,r5*\n\
                    120:        insque  (r4),(r5)\n" },
                    121: 
                    122:        { "1,_remque\n",
                    123: "      movl    (sp)+,r5*\n\
                    124:        remque  (r5),r0\n" },
                    125: 
                    126:        { "3,_extv\n",
                    127: "      movl    (sp)+,r2*\n\
                    128:        movl    (sp)+,r3$\n\
                    129:        movl    (sp)+,r4$\n\
                    130:        extv    r3,r4,(r2),r0\n"},
                    131: 
                    132:        { "3,_extzv\n",
                    133: "      movl    (sp)+,r2*\n\
                    134:        movl    (sp)+,r3$\n\
                    135:        movl    (sp)+,r4$\n\
                    136:        extzv   r3,r4,(r2),r0\n"},
                    137: 
                    138:        { "4,_insv\n",
                    139: "      movl    (sp)+,r2*\n\
                    140:        movl    (sp)+,r3$\n\
                    141:        movl    (sp)+,r4$\n\
                    142:        movl    (sp)+,r5$\n\
                    143:        insv    r5,r3,r4,(r2)\n"},
                    144: 
                    145: #endif vax
                    146: 
                    147: #ifdef mc68000
                    148: /* someday... */
                    149: #endif mc68000
                    150: 
                    151:        { "", "" }
                    152: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.