DragonMicroPLAImplB.mesa
Copyright © 1984 by Xerox Corporation. All rights reserved.
Last edited by TWilliams, August 9, 1984 6:50:03 pm PDT
Last edited by Curry, August 14, 1984 9:59:51 am PDT
DIRECTORY
Dragon,
DragonFP,
DragonMicroPLA;
DragonMicroPLAImplB: CEDAR PROGRAM
IMPORTS DragonMicroPLA EXPORTS DragonMicroPLA =
BEGIN OPEN DragonMicroPLA;
FPAddPLARow: PUBLIC PROC[
fpOpType: DragonFP.FPOpType,
sigPhBArgs: SigPhBArgs,
phBArgs:  PhBArgs, m: MicroInst] = {
AddRow: PROC = {
sigPhBArgs.alpha ← mask;
phBArgs.alpha ← alpha;
AddPLARow[sigPhBArgs, phBArgs, m]};
T: BOOL = TRUE;
o: BOOL = FALSE;
alpha:  Dragon.HexByte ← 0;
mask:  SigInstByte   ← SigInstByteFalse;
SELECT fpOpType FROM
sglBiAlu => {alpha ← 100B; mask ← [T,T, T,o,T, o,o,T]; AddRow[]};
sglUnAlu => {alpha ← 110B; mask ← [T,T, T,o,T, o,o,T]; AddRow[];
      alpha ← 160B; mask ← [T,T, T,T,T, o,o,T]; AddRow[];
      alpha ← 170B; mask ← [T,T, T,T,T, T,o,T]; AddRow[]};
dblUnAlu => {alpha ← 111B; mask ← [T,T, T,o,T, o,o,T]; AddRow[];
      alpha ← 161B; mask ← [T,T, T,T,T, o,o,T]; AddRow[]};
dblBiAlu  => {alpha ← 101B; mask ← [T,T, T,o,T, o,o,T]; AddRow[]};
sglBiCom  => {alpha ← 140B; mask ← [T,T, T,T,T, o,o,T]; AddRow[]};
dblBiCom => {alpha ← 141B; mask ← [T,T, T,T,T, o,o,T]; AddRow[]};
sglUnCom => {alpha ← 150B; mask ← [T,T, T,T,T, o,o,T]; AddRow[]};
dblUnCom => {alpha ← 151B; mask ← [T,T, T,T,T, o,o,T]; AddRow[]};
sglUnCvt  => {alpha ← 173B; mask ← [T,T, T,T,T, o,T,T]; AddRow[];
      alpha ← 174B; mask ← [T,T, T,T,T, T,o,T]; AddRow[]};
dblUnCvt => {alpha ← 171B; mask ← [T,T, T,T,T, o,T,T]; AddRow[]};
sglBiMult => {alpha ← 200B; mask ← [T,T, o,o,o, o,o,T]; AddRow[]};
dblBiMult => {alpha ← 201B; mask ← [T,T, o,o,o, o,o,T]; AddRow[]};
setMode  => {alpha ← 300B; mask ← [T,T, o,o,o, o,o,o]; AddRow[]};
ENDCASE  => ERROR
};
END.