IFUPLAPassImpl.mesa
Copyright c 1986 by Xerox Corporation. All rights reserved.
McCreight, May 20, 1986 6:40:51 pm PDT
Don Curry January 28, 1987 11:33:32 am PST
DIRECTORY
Commander,
IFUPLAPass,
IO,
PLAOps,
REFBit;
IFUPLAPassImpl: CEDAR PROGRAM
IMPORTS Commander, IO, PLAOps, REFBit =
BEGIN OPEN IFUPLAPass, PLAOps;
GenPasses: Commander.CommandProc = {
GenPass: PROC [name, ioTypeName: IO.ROPE] = {
pla: PLAOps.PLA ← PLAOps.NewPLA[ioTypeName, ioTypeName, name];
desc: REFBit.REFBitDesc = REFBit.Desc[pla.out];
FOR bitIndex: INT IN [0..desc.bitForm.size) DO
REFBit.Set[pla.mask, bitIndex, TRUE];
REFBit.Set[pla.data,  bitIndex, TRUE];
REFBit.Set[pla.out,  bitIndex, TRUE];
PLAOps.SetOutForBE[pla, PLAOps.GetBEForDataMask[pla]];
REFBit.Set[pla.mask, bitIndex, FALSE];
REFBit.Set[pla.data,  bitIndex, FALSE];
REFBit.Set[pla.out,  bitIndex, FALSE];
ENDLOOP;
[ ] ← PLAOps.ConvertTermListToCompleteSum[pla.termList, FALSE, FALSE, cmd.out];
[ ] ← PLAOps.FindAMinimalCover[pla.termList, 120, cmd.out];
PLAOps.WritePLAFile[pla, name, cmd.out]};
GenPass["IFUPLAPassLtDrPadIO", "IFUPLAPass.LtDrPadIO"];
GenPass["IFUPLAPassRtDrPadIO", "IFUPLAPass.RtDrPadIO"]};
Commander.Register[key:"GenPasses", proc: GenPasses];
END.