Annotation of researchv9/cmd/sun/as/awkprog, revision 1.1.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.