anchor.diff:        Add#(m, b__, mmbits),
         Add#(c__, TLog#(TAdd#(1, mmbits)), TAdd#(e, 1)),
         Add#(d__, TLog#(TAdd#(1, m5bits)), TAdd#(e, 1)),
  -      Add#(1, TAdd#(1, TAdd#(m, 3)), m5bits)
  -      );
  +      Add#(1, TAdd#(1, TAdd#(m, 3)), m5bits),
  +      Add#(e__, mmbits, TMul#(2, mmbits))
  +      );   
   
      FIFO#(Tuple3#(Maybe#(FloatingPoint#(e,m)),
   		 FloatingPoint#(e,m),
  
positive.code: 
     // normalize multiplication result
     rule s4_stage;
        match { .s, .acc, .opA, .sgnBC, .expBC } <- toGet(fState_S3).get;
        let sfdBC <- toGet(fProd_S3).get;
  
        FloatingPoint#(e,m) bc = defaultValue;
        Bit#(2) guardBC = ?;
  
  
negative.code: import Pipe::*;
  import FIFO::*;
  import BUtils::*;
  import PipeMul::*;
  
  
  ////////////////////////////////////////////////////////////////////////////////
  