This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: MS/CW-style inline assembly for GCC


Jack Lloyd <lloyd@randombit.net> writes:

> Actually pretty much all MPI math can be implemented efficiently in plain
> C.

Is this really true?  What about the simple case of unlimited-
precision addition on a processor which has a carry flag?  Do we
expect the compiler to be smart enough to turn a loop like
  c = 0;
  for (i = 0; i < len; i++)
    {
      r[i] = a[i] + b[i] + c;
      c = (int) (((long long) a[i] + (long long) b[i]) >> 32);
    }
into code which uses the "add with carry" instruction?

Sure, there is no algorithmic advantage.  But the code in assembler
will be at least twice as fast.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]