math/big: write t*10 to multiply t by 10
The compiler has caught up. In fact the compiler is ahead; it knows about a magic multiply-by-5 instruction: // compute '0' + byte(r - t*10) in AX MOVQ t, AX LEAQ (AX)(AX*4), AX SHLQ $1, AX MOVQ r, CX SUBQ AX, CX LEAL 48(CX), AX For comparison, the shifty version compiles to: // compute '0' + byte(r - t*10) in AX MOVQ t, AX MOVQ AX, CX SHLQ $3, AX MOVQ r, DX SUBQ AX, DX SUBQ CX, DX SUBQ CX, DX LEAL 48(DX), AX Fixes #2671. Change-Id: Ifbf23dbfeb19c0bb020fa44eb2f025943969fb6b Reviewed-on: https://go-review.googlesource.com/23372 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Showing
Please register or sign in to comment