|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.