]>
Cypherpunks repositories - gostls13.git/commit
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>