]> Cypherpunks repositories - gostls13.git/commit
runtime: improve CALLFN macro for ppc64x
authorLynn Boger <laboger@linux.vnet.ibm.com>
Tue, 11 Sep 2018 15:42:15 +0000 (11:42 -0400)
committerLynn Boger <laboger@linux.vnet.ibm.com>
Tue, 25 Sep 2018 18:52:22 +0000 (18:52 +0000)
commite945623930d2c85b9a81476203451ca8f4092875
tree1822586386b8d2aeb2cdc7058006f88442b64b28
parente0bde68c80a3f87c6411f4ebf4b6881abf2387b4
runtime: improve CALLFN macro for ppc64x

The previous CALLFN macro was copying a single byte at a
time which is extremely inefficient on ppc64x. This changes
the macro so it copies 8 bytes at a time.

benchmark in reflect:
name                      old time/op    new time/op    delta
Call-8                       177ns ± 0%     165ns ± 0%    -6.78%  (p=1.000 n=1+1)
CallArgCopy/size=128-8       194ns ± 0%     140ns ± 0%   -27.84%  (p=1.000 n=1+1)
CallArgCopy/size=256-8       253ns ± 0%     159ns ± 0%   -37.15%  (p=1.000 n=1+1)
CallArgCopy/size=1024-8      612ns ± 0%     222ns ± 0%   -63.73%  (p=1.000 n=1+1)
CallArgCopy/size=4096-8     2.14µs ± 0%    0.53µs ± 0%   -75.01%  (p=1.000 n=1+1)
CallArgCopy/size=65536-8    33.0µs ± 0%     7.3µs ± 0%   -77.72%  (p=1.000 n=1+1)

Change-Id: I71f6ee788264e61bb072264d21b77b83592c9dca
Reviewed-on: https://go-review.googlesource.com/134635
Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
Reviewed-by: Michael Munday <mike.munday@ibm.com>
src/runtime/asm_ppc64x.s