David Miller <da...@davemloft.net> writes:

  From: Torbjorn Granlund <t...@gmplib.org>
  Date: Tue, 05 Mar 2013 23:27:45 +0100
  
  > David Miller <da...@davemloft.net> writes:
  > 
  >   diff --git a/mpn/sparc64/ultrasparct3/mul_1.asm 
b/mpn/sparc64/ultrasparct3/mul_1.asm
  >   index df52647..6a3f193 100644
  >   --- a/mpn/sparc64/ultrasparct3/mul_1.asm
  >   +++ b/mpn/sparc64/ultrasparct3/mul_1.asm
  >   @@ -50,8 +50,7 @@ L(top):
  >     umulxhi %o4, v0, %o4
  >     addcc   %o5, %g3, %g3
  >     stx     %g3, [rp-16]
  >   - addxc   %g0, %g2, %o5
  >   - addcc   %o5, %g1, %g1
  >   + addxccc %g2, %g1, %g1
  >     addxc   %g0, %o4, %o5
  >     brgz    n, L(top)
  >      stx    %g1, [rp-8]
  >   
  > You should keep carry alive around the loop.  Both "addxc g0" should be
  > removed.  Then you'll need to use addxccc after final_one.
  
  Yes, that's the next level of simpifying this, I'll play with that
  after my commute home.
  
This should have the right instructions.  Scheduling might be needed.
Obviously untested.

Attachment: mul_1.asm
Description: Binary data

-- 
Torbjörn
_______________________________________________
gmp-devel mailing list
gmp-devel@gmplib.org
http://gmplib.org/mailman/listinfo/gmp-devel

Reply via email to