Annotation of 43BSD/sys/vax/inline/machpats.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1984, 1986 Regents of the University of California.
        !             3:  * All rights reserved.  The Berkeley software License Agreement
        !             4:  * specifies the terms and conditions for redistribution.
        !             5:  */
        !             6: 
        !             7: #ifndef lint
        !             8: static char sccsid[] = "@(#)machpats.c 7.1 (Berkeley) 6/5/86";
        !             9: #endif not lint
        !            10: 
        !            11: #include "inline.h"
        !            12: 
        !            13: /*
        !            14:  * Pattern table for special VAX instructions.
        !            15:  */
        !            16: struct pats machine_ptab[] = {
        !            17: 
        !            18: #ifdef vax
        !            19:        { 3, "_blkcpy\n",
        !            20: "      movl    (sp)+,r1\n\
        !            21:        movl    (sp)+,r3\n\
        !            22:        jbr     2f\n\
        !            23: 1:\n\
        !            24:        subl2   r0,(sp)\n\
        !            25:        movc3   r0,(r1),(r3)\n\
        !            26: 2:\n\
        !            27:        movzwl  $65535,r0\n\
        !            28:        cmpl    (sp),r0\n\
        !            29:        jgtr    1b\n\
        !            30:        movl    (sp)+,r0\n\
        !            31:        movc3   r0,(r1),(r3)\n" },
        !            32: 
        !            33:        { 3, "_bcopy\n",
        !            34: "      movl    (sp)+,r1\n\
        !            35:        movl    (sp)+,r3\n\
        !            36:        movl    (sp)+,r5\n\
        !            37:        movc3   r5,(r1),(r3)\n" },
        !            38: 
        !            39:        { 3, "_ovbcopy\n",
        !            40: "      movl    (sp)+,r3\n\
        !            41:        movl    (sp)+,r4\n\
        !            42:        movl    (sp)+,r5\n\
        !            43:        movc3   r5,(r3),(r4)\n" },
        !            44: 
        !            45:        { 2, "_blkclr\n",
        !            46: "      movl    (sp)+,r3\n\
        !            47:        jbr     2f\n\
        !            48: 1:\n\
        !            49:        subl2   r0,(sp)\n\
        !            50:        movc5   $0,(r3),$0,r0,(r3)\n\
        !            51: 2:\n\
        !            52:        movzwl  $65535,r0\n\
        !            53:        cmpl    (sp),r0\n\
        !            54:        jgtr    1b\n\
        !            55:        movl    (sp)+,r0\n\
        !            56:        movc5   $0,(r3),$0,r0,(r3)\n" },
        !            57: 
        !            58:        { 2, "_bzero\n",
        !            59: "      movl    (sp)+,r3\n\
        !            60:        movl    (sp)+,r5\n\
        !            61:        movc5   $0,(r3),$0,r5,(r3)\n" },
        !            62: 
        !            63:        { 2, "_insque\n",
        !            64: "      movl    (sp)+,r4\n\
        !            65:        movl    (sp)+,r5\n\
        !            66:        insque  (r4),(r5)\n" },
        !            67: 
        !            68:        { 1, "_remque\n",
        !            69: "      movl    (sp)+,r5\n\
        !            70:        remque  (r5),r0\n" },
        !            71: #endif vax
        !            72: 
        !            73: #ifdef mc68000
        !            74: /* someday... */
        !            75: #endif mc68000
        !            76: 
        !            77:        { 0, "", "" }
        !            78: };
        !            79: 
        !            80: #ifdef vax
        !            81: 
        !            82: struct pats vax_ptab[] = {
        !            83: 
        !            84:        { 3, "_blkcmp\n",
        !            85: "      movl    (sp)+,r1\n\
        !            86:        movl    (sp)+,r3\n\
        !            87:        jbr     2f\n\
        !            88: 1:\n\
        !            89:        subl2   r0,(sp)\n\
        !            90:        cmpc3   r0,(r1),(r3)\n\
        !            91:        bneq    3f\n\
        !            92: 2:\n\
        !            93:        movzwl  $65535,r0\n\
        !            94:        cmpl    (sp),r0\n\
        !            95:        jgtr    1b\n\
        !            96:        movl    (sp)+,r0\n\
        !            97:        cmpc3   r0,(r1),(r3)\n\
        !            98: 3:\n" },
        !            99: 
        !           100:        { 3, "_bcmp\n",
        !           101: "      movl    (sp)+,r1\n\
        !           102:        movl    (sp)+,r3\n\
        !           103:        movl    (sp)+,r5\n\
        !           104:        cmpc3   r5,(r1),(r3)\n" },
        !           105: 
        !           106:        { 3, "_llocc\n",
        !           107: "      movl    (sp)+,r4\n\
        !           108:        movl    (sp)+,r5\n\
        !           109:        movl    (sp)+,r1\n\
        !           110: 1:\n\
        !           111:        movzwl  $65535,r0\n\
        !           112:        cmpl    r5,r0\n\
        !           113:        jleq    1f\n\
        !           114:        subl2   r0,r5\n\
        !           115:        locc    r4,r0,(r1)\n\
        !           116:        jeql    1b\n\
        !           117:        addl2   r5,r0\n\
        !           118:        jbr     2f\n\
        !           119: 1:\n\
        !           120:        locc    r4,r5,(r1)\n\
        !           121: 2:\n" },
        !           122: 
        !           123:        { 3, "_locc\n",
        !           124: "      movl    (sp)+,r3\n\
        !           125:        movl    (sp)+,r4\n\
        !           126:        movl    (sp)+,r5\n\
        !           127:        locc    r3,r4,(r5)\n" },
        !           128: 
        !           129:        { 4, "_scanc\n",
        !           130: "      movl    (sp)+,r2\n\
        !           131:        movl    (sp)+,r3\n\
        !           132:        movl    (sp)+,r4\n\
        !           133:        movl    (sp)+,r5\n\
        !           134:        scanc   r2,(r3),(r4),r5\n" },
        !           135: 
        !           136:        { 3, "_skpc\n",
        !           137: "      movl    (sp)+,r3\n\
        !           138:        movl    (sp)+,r4\n\
        !           139:        movl    (sp)+,r5\n\
        !           140:        skpc    r3,r4,(r5)\n" },
        !           141: 
        !           142:        { 0, "", "" }
        !           143: };
        !           144: 
        !           145: struct pats vaxsubset_ptab[] = {
        !           146: 
        !           147:        { 3, "_blkcmp\n",
        !           148: "      movl    (sp)+,r1\n\
        !           149:        movl    (sp)+,r3\n\
        !           150:        movl    (sp)+,r0\n\
        !           151: 2:\n\
        !           152:        cmpb    (r1)+,(r3)+\n\
        !           153:        jneq    3f\n\
        !           154:        sobgtr  r0,2b\n\
        !           155: 3:\n" },
        !           156: 
        !           157:        { 3, "_bcmp\n",
        !           158: "      movl    (sp)+,r1\n\
        !           159:        movl    (sp)+,r3\n\
        !           160:        movl    (sp)+,r5\n\
        !           161:        movl    r5,r0\n\
        !           162: 2:\n\
        !           163:        cmpb    (r1)+,(r3)+\n\
        !           164:        jneq    1f\n\
        !           165:        sobgtr  r0,2b\n\
        !           166: 1:\n" },
        !           167: 
        !           168:        { 3, "_llocc\n",
        !           169: "      movl    (sp)+,r4\n\
        !           170:        movl    (sp)+,r5\n\
        !           171:        movl    (sp)+,r1\n\
        !           172:        movl    r5,r0\n\
        !           173: 2:\n\
        !           174:        cmpb    r4,(r1)+\n\
        !           175:        jeql    1f\n\
        !           176:        sobgtr  r0,2b\n\
        !           177: 1:\n" },
        !           178: 
        !           179:        { 3, "_locc\n",
        !           180: "      movl    (sp)+,r3\n\
        !           181:        movl    (sp)+,r4\n\
        !           182:        movl    (sp)+,r5\n\
        !           183:        movl    r4,r0\n\
        !           184: 2:\n\
        !           185:        cmpb    r3,(r5)+\n\
        !           186:        jeql    1f\n\
        !           187:        sobgtr  r0,2b\n\
        !           188: 1:\n" },
        !           189: 
        !           190:        { 3, "_skpc\n",
        !           191: "      movl    (sp)+,r3\n\
        !           192:        movl    (sp)+,r4\n\
        !           193:        movl    (sp)+,r5\n\
        !           194:        movl    r4,r0\n\
        !           195: 2:\n\
        !           196:        cmpb    r3,(r5)+\n\
        !           197:        jneq    1f\n\
        !           198:        sobgtr  r0,2b\n\
        !           199: 1:\n" },
        !           200: 
        !           201:        { 0, "", "" }
        !           202: };
        !           203: #endif

unix.superglobalmegacorp.com

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