SysIII/usr/lib/vpm/pass0

BEGIN {lc=0;
nw=0;
FS = "	";
}
{
if(length($0)==0)next
if($1~/:/){
	nw = nw + 1;
	waitlist[nw] = substr($1,1,length($1)-1);
}
if(NF>1){
if(nw>0){
if($2=="JMP")
	prev1 = $3;
else{
prev1 = waitlist[nw];
nw = nw - 1;
print prev1 ":";
prev2="";
prev3="";
}
while(nw>0){
print "#define",waitlist[nw],prev1 > "sas_tempb";
nw = nw - 1;
}
}
if(($2=="MOV")&&(prev3==$3)&&(prev2=="MOVM"||prev2=="INC")){
print "/* redundant MOV omitted */";
next;
}
if(prev2=="JMP"||prev2=="RETURN"||prev2=="RETURNI"||prev2=="HALT"||prev2=="HALTI"){
print "/* unreachable code deleted */";
next;
}
print $0;
prev2=$2;
prev3=$3;
lc = lc + 2;
}
}