Annotation of researchv9/cmd/sun/as/awkprog, revision 1.1

1.1     ! root        1: #
        !             2: # @(#)awkprog 1.1 86/02/03 SMI
        !             3: #
        !             4: BEGIN{
        !             5:        flavor = "AS"
        !             6:        FS = " "
        !             7: }
        !             8: {
        !             9:        if (NF == 0){
        !            10:                printf("\n")
        !            11:                next
        !            12:        }
        !            13:        if ($1 == "FLAVOR"){
        !            14:                flavor = $2
        !            15:                next
        !            16:        }
        !            17:        if ($1 == "##"){
        !            18:                next
        !            19:        }
        !            20:        if ($9 == "" ){
        !            21:            $9 = 0
        !            22:        } else if ( $9 == "68020"){
        !            23:            $9 = "I20"
        !            24:        } else if ( $9 == "68881"){
        !            25:            $9 = "I81"
        !            26:        } else {
        !            27:                next
        !            28:        }
        !            29:        nop = split( $2, op, "," )
        !            30:        noperand = split( $5, touch, ",")
        !            31:        if (flavor == "C2"){
        !            32:                if ( nop == 2){
        !            33:                    $2 = op[2]
        !            34:                }
        !            35:                printf( "I(\"%s\", OP_%s, SUBOP_%s, ", $1, $2, $3 )
        !            36:                if (touch[1] == "X"){
        !            37:                    printf("T_X, ")
        !            38:                } else {
        !            39:                    if (noperand == 1){
        !            40:                        printf("T_ONE(%s),", $5)
        !            41:                    } else if (noperand == 2){
        !            42:                        printf("T_TWO(%s),", $5)
        !            43:                    } else {
        !            44:                        printf("T_THREE(%s),",$5)
        !            45:                    }
        !            46:                }
        !            47:                print " {" $6 "}, " $7 ", " $8 ")"
        !            48:        } else if (flavor == "AS"){
        !            49:            if ( $2 == "PSEUDO"){
        !            50:                nop = split( $3, op, "," )
        !            51:                if ($8 == "") $8 = "0"
        !            52:                naccess = split( $8, access, ",")
        !            53:                printf( "P(\"%s\", %s, OP_%s, SUBOP_%s, %d, %d, %d, ", $1, op[1], op[2], $4, $5, $6, $7 )
        !            54:                if (naccess==1){
        !            55:                    printf("A_ONE( %s )", $8 )
        !            56:                } else if (naccess==2){
        !            57:                    printf("A_TWO( %s )", $8 )
        !            58:                } else printf("help")
        !            59:                print ")\n"
        !            60:                next
        !            61:            }
        !            62:            naccess = split( $6, access, ",")
        !            63:            ncode = split( $4, code, "," )
        !            64:            if (touch[1] == "X"){
        !            65:                noperand = 0
        !            66:                $6 = 0
        !            67:            }
        !            68:            if (op[1] == "BRANCH" ){
        !            69:                if ($1 ~ /b..s/ ){
        !            70:                    op[1] = "BRNCHS"
        !            71:                } else if ( $1 ~ /b..l/){
        !            72:                    op[1] = "BRNCHL"
        !            73:                }
        !            74:                if (op[2]==""){
        !            75:                    op[2] = "BRANCH"
        !            76:                }
        !            77:            }
        !            78:            if (op[2] == "") op[2] = "OTHER"
        !            79:            if (length($3) == 1) $3 = "SUBOP_" $3
        !            80:            printf("I(\"%s\", %s, OP_%s, %s, ", $1, op[1], op[2], $3 )
        !            81:            printf("%d, ", noperand)
        !            82:            if (touch[1] == "X"){
        !            83:                printf("T_X, ")
        !            84:            } else {
        !            85:                if (noperand == 1){
        !            86:                    printf("T_ONE(%s),", $5)
        !            87:                } else if (noperand == 2){
        !            88:                    printf("T_TWO(%s),", $5)
        !            89:                } else {
        !            90:                    printf("T_THREE(%s),",$5)
        !            91:                }
        !            92:            }
        !            93:            if (ncode==1) {
        !            94:                printf("A_ONE(%s), ",$4)
        !            95:            } else if (ncode==2){
        !            96:                printf("A_TWO(%s, %s), ",code[1], code[2])
        !            97:            } else if (ncode==3){
        !            98:                printf("A_TH3(%s, %s, %s), ",code[1], code[2], code[3] )
        !            99:            } else if (ncode==4){
        !           100:                printf("A_4R(%s, %s, %s, %s), ", code[1], code[2], code[3], code[4] )
        !           101:            } else {
        !           102:                printf("A_5V(%s, %s, %s, %s, %s), ", code[1], code[2], code[3], code[4], code[5] )
        !           103:            }
        !           104:            if (naccess == 1){
        !           105:                printf("A_ONE(%s) ", access[1] )
        !           106:            } else if (naccess==2){
        !           107:                printf("A_TWO(%s, %s) ", access[1], access[2] )
        !           108:            } else if (naccess==3){
        !           109:                printf("A_TH3(%s, %s, %s) ", access[1], access[2], access[3] )
        !           110:            } else if (naccess==4){
        !           111:                printf("A_4R(%s, %s, %s, %s) ", access[1], access[2], access[3], access[4] )
        !           112:            } else if (naccess==5){
        !           113:                printf("A_5V(%s, %s, %s, %s, %s) ", access[1], access[2], access[3], access[4], access[5] )
        !           114:            } else if (naccess==6){
        !           115:                printf("A_6X(%s, %s, %s, %s, %s, %s) ", access[1], access[2], access[3], access[4], access[5], access[6] )
        !           116:            } else if (naccess==7){
        !           117:                printf("A_SEVEN(%s, %s, %s, %s, %s, %s, %s) ", access[1], access[2], access[3], access[4], access[5], access[6], access[7] )
        !           118:            } else if (naccess==8){
        !           119:                printf("A_EIGHT(%s, %s, %s, %s, %s, %s, %s, %s) ", access[1], access[2], access[3], access[4], access[5], access[6], access[7], access[8] )
        !           120:            } 
        !           121:            printf(  ", %s )\n", $9 )
        !           122:        } else {
        !           123:            print "FLAVOR IS " flavor
        !           124:            exit
        !           125:        }
        !           126:        next
        !           127: 
        !           128: }

unix.superglobalmegacorp.com

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