|
|
researchv9-SUN3(old)
#
# @(#)awkprog 1.1 86/02/03 SMI
#
BEGIN{
flavor = "AS"
FS = " "
}
{
if (NF == 0){
printf("\n")
next
}
if ($1 == "FLAVOR"){
flavor = $2
next
}
if ($1 == "##"){
next
}
if ($9 == "" ){
$9 = 0
} else if ( $9 == "68020"){
$9 = "I20"
} else if ( $9 == "68881"){
$9 = "I81"
} else {
next
}
nop = split( $2, op, "," )
noperand = split( $5, touch, ",")
if (flavor == "C2"){
if ( nop == 2){
$2 = op[2]
}
printf( "I(\"%s\", OP_%s, SUBOP_%s, ", $1, $2, $3 )
if (touch[1] == "X"){
printf("T_X, ")
} else {
if (noperand == 1){
printf("T_ONE(%s),", $5)
} else if (noperand == 2){
printf("T_TWO(%s),", $5)
} else {
printf("T_THREE(%s),",$5)
}
}
print " {" $6 "}, " $7 ", " $8 ")"
} else if (flavor == "AS"){
if ( $2 == "PSEUDO"){
nop = split( $3, op, "," )
if ($8 == "") $8 = "0"
naccess = split( $8, access, ",")
printf( "P(\"%s\", %s, OP_%s, SUBOP_%s, %d, %d, %d, ", $1, op[1], op[2], $4, $5, $6, $7 )
if (naccess==1){
printf("A_ONE( %s )", $8 )
} else if (naccess==2){
printf("A_TWO( %s )", $8 )
} else printf("help")
print ")\n"
next
}
naccess = split( $6, access, ",")
ncode = split( $4, code, "," )
if (touch[1] == "X"){
noperand = 0
$6 = 0
}
if (op[1] == "BRANCH" ){
if ($1 ~ /b..s/ ){
op[1] = "BRNCHS"
} else if ( $1 ~ /b..l/){
op[1] = "BRNCHL"
}
if (op[2]==""){
op[2] = "BRANCH"
}
}
if (op[2] == "") op[2] = "OTHER"
if (length($3) == 1) $3 = "SUBOP_" $3
printf("I(\"%s\", %s, OP_%s, %s, ", $1, op[1], op[2], $3 )
printf("%d, ", noperand)
if (touch[1] == "X"){
printf("T_X, ")
} else {
if (noperand == 1){
printf("T_ONE(%s),", $5)
} else if (noperand == 2){
printf("T_TWO(%s),", $5)
} else {
printf("T_THREE(%s),",$5)
}
}
if (ncode==1) {
printf("A_ONE(%s), ",$4)
} else if (ncode==2){
printf("A_TWO(%s, %s), ",code[1], code[2])
} else if (ncode==3){
printf("A_TH3(%s, %s, %s), ",code[1], code[2], code[3] )
} else if (ncode==4){
printf("A_4R(%s, %s, %s, %s), ", code[1], code[2], code[3], code[4] )
} else {
printf("A_5V(%s, %s, %s, %s, %s), ", code[1], code[2], code[3], code[4], code[5] )
}
if (naccess == 1){
printf("A_ONE(%s) ", access[1] )
} else if (naccess==2){
printf("A_TWO(%s, %s) ", access[1], access[2] )
} else if (naccess==3){
printf("A_TH3(%s, %s, %s) ", access[1], access[2], access[3] )
} else if (naccess==4){
printf("A_4R(%s, %s, %s, %s) ", access[1], access[2], access[3], access[4] )
} else if (naccess==5){
printf("A_5V(%s, %s, %s, %s, %s) ", access[1], access[2], access[3], access[4], access[5] )
} else if (naccess==6){
printf("A_6X(%s, %s, %s, %s, %s, %s) ", access[1], access[2], access[3], access[4], access[5], access[6] )
} else if (naccess==7){
printf("A_SEVEN(%s, %s, %s, %s, %s, %s, %s) ", access[1], access[2], access[3], access[4], access[5], access[6], access[7] )
} else if (naccess==8){
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] )
}
printf( ", %s )\n", $9 )
} else {
print "FLAVOR IS " flavor
exit
}
next
}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.