anchor.diff:     Reg#(Bool) rValid_S3 <- mkReg(False);
      Reg#(UInt#(mmbits)) rProd_S3 <- mkReg(0);
   
  -   //   add partial multiplies
  -   rule s3_stage;
  -      match { .s, .acc, .opA, .sgnBC, .expBC } = rState_S2;
  -      let valid = rValid_S2;
  -
  -      UInt#(mmbits) sfdBC = rProd_S2lsb + (rProd_S2msb << 16);
  -      rProd_S3 <= sfdBC;
  -
  -      rState_S3 <= tuple5(s,
  -			   acc,
  -			   opA,
  -			   sgnBC,
  -			   expBC);
  -      rValid_S3 <= valid;
  -   endrule
  -
      Reg#(Tuple5#(CommonState#(e,m),
   		 Bool,
   		 FloatingPoint#(e,m),
  
positive.code:       Add#(mmbits,0,48)
        );   
  
     Wire#(Tuple3#(Maybe#(FloatingPoint#(e,m)),
  		FloatingPoint#(e,m),
  		FloatingPoint#(e,m))) wOperand_S0 <- mkDWire(unpack(0));
  
     Wire#(Bool) wValid_S0 <- mkDWire(False);
  
     Reg#(Tuple7#(CommonState#(e,m),
  		Bool,
  
negative.code: 		Bit#(m5bits))) rState_S6 <- mkReg(unpack(0));
     Reg#(Bool) rValid_S6 <- mkReg(False);
  
     Reg#(Tuple7#(CommonState#(e,m),
  		Bool,
  		Bool,
  