1. 09 Apr, 2018 15 commits
  2. 08 Apr, 2018 2 commits
  3. 07 Apr, 2018 4 commits
  4. 06 Apr, 2018 17 commits
  5. 05 Apr, 2018 2 commits
    • Josh Bleecher Snyder's avatar
      cmd/compile: rewrite a & 1 != 1 into a & 1 == 0 on amd64 · 3f483e65
      Josh Bleecher Snyder authored
      These rules trigger 190 times during make.bash.
      
      Change-Id: I20d1688db5d8c904a7237c08635c6c9d8bd58b1c
      Reviewed-on: https://go-review.googlesource.com/105037
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarGiovanni Bajo <rasky@develer.com>
      3f483e65
    • Brian Kessler's avatar
      math/big: clean up z.div(z, x, y) calls · 7818b82f
      Brian Kessler authored
      Updates #22830
      
      Due to not checking if the output slices alias in divLarge,
      calls of the form z.div(z, x, y) caused the slice z
      to attempt to be used to store both the quotient and the
      remainder of the division.  CL 78995 applies an alias
      check to correct that error.  This CL cleans up the
      additional div calls that attempt to supply the same slice
      to hold both the quotient and remainder.
      
      Note that the call in expNN was responsible for the reported
      error in r.Exp(x, 1, m) when r was initialized to a non-zero value.
      
      The second instance in expNNMontgomery did not result in an error
      due to the size of the arguments.
      
      	// RR = 2**(2*_W*len(m)) mod m
      	RR := nat(nil).setWord(1)
      	zz := nat(nil).shl(RR, uint(2*numWords*_W))
      	_, RR = RR.div(RR, zz, m)
      
      Specifically,
      
      cap(RR) == 5 after setWord(1) due to const e = 4 in z.make(1)
      len(zz) == 2*len(m) + 1 after shifting left, numWords = len(m)
      
      Reusing the backing array for z and z2 in div was only triggered if
      cap(RR) >= len(zz) + 1 and len(m) > 1 so that divLarge was called.
      
      But, 5 < 2*len(m) + 2 if len(m) > 1, so new arrays were allocated
      and the error was never triggered in this case.
      
      Change-Id: Iedac80dbbde13216c94659e84d28f6f4be3aaf24
      Reviewed-on: https://go-review.googlesource.com/81055
      Run-TryBot: Robert Griesemer <gri@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarRobert Griesemer <gri@golang.org>
      7818b82f