anchor.diff:      ///                                                                              ///
       ///  ... turned out to be slower than the following carry emulating code, even   ///
       ///  for 64 bit targets.                                                         ///
  +    ///                                                                              ///
  +    ///  Just like for Addition, subtraction using 16 bit limbs is faster than       ///
  +    ///  emulating a borrow in 32 bit.                                               ///
       ////////////////////////////////////////////////////////////////////////////////////
   
       ////////////////////////////////////////////////////////////////////////////////////
  
positive.code: end;
  
  class procedure BigInteger.InternalBitwise(const Left, Right: BigInteger;
    var Result: BigInteger; PlainOp, OppositeOp, InversionOp: TDyadicOperator);
  
  /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  ///  The code for the bitwise operators AND, OR and XOR does not differ much.                                     ///
  
negative.code: { TODO: InternalMultiply (basecase): use MMX instead of plain registers. Also remove trailing loop, make 4
          completely separate loop+trail parts. }
  { TODO: InternalMultiply: consider algorithm by Malenkov et al. In short, this adds columns first, instead of rows. }
  
  interface
  
  