]> Cypherpunks repositories - gostls13.git/commit
cmd/6g: avoid MOVSD between registers
authorRuss Cox <rsc@golang.org>
Wed, 30 May 2012 18:41:19 +0000 (14:41 -0400)
committerRuss Cox <rsc@golang.org>
Wed, 30 May 2012 18:41:19 +0000 (14:41 -0400)
commita768de8347c4aab00e48d4566274198c2e35e9bd
treed63b3ae55baa0b2285d2cb59f067a36a78754ca5
parenteb056dbea7bf2d18ef582bb637979a7c05b9b6a4
cmd/6g: avoid MOVSD between registers

MOVSD only copies the low half of the packed register pair,
while MOVAPD copies both halves.  I assume the internal
register renaming works better with the latter, since it makes
our code run 25% faster.

Before:
mandelbrot 16000
        gcc -O2 mandelbrot.c 28.44u 0.00s 28.45r
        gc mandelbrot 44.12u 0.00s 44.13r
        gc_B mandelbrot 44.17u 0.01s 44.19r

After:
mandelbrot 16000
        gcc -O2 mandelbrot.c 28.22u 0.00s 28.23r
        gc mandelbrot 32.81u 0.00s 32.82r
        gc_B mandelbrot 32.82u 0.00s 32.83r

R=ken2
CC=golang-dev
https://golang.org/cl/6248068
src/cmd/6g/peep.c