]> Cypherpunks repositories - gostls13.git/commit
runtime: faster memclr on x86.
authorKeith Randall <khr@golang.org>
Fri, 7 Feb 2014 01:43:22 +0000 (17:43 -0800)
committerKeith Randall <khr@golang.org>
Fri, 7 Feb 2014 01:43:22 +0000 (17:43 -0800)
commitda7cf0ba5d5aed78f07c82508f0fa88e6dd69ea7
tree53946fc6bf0ab051d12b2804bc2d4dcb48fb401d
parentaac872e11806b7a66ab51f5efab7496a36e4f3da
runtime: faster memclr on x86.

Use explicit SSE writes instead of REP STOSQ.

benchmark               old ns/op    new ns/op    delta
BenchmarkMemclr5               22            5  -73.62%
BenchmarkMemclr16              27            5  -78.49%
BenchmarkMemclr64              28            6  -76.43%
BenchmarkMemclr256             34            8  -74.94%
BenchmarkMemclr4096           112           84  -24.73%
BenchmarkMemclr65536         1902         1920   +0.95%

LGTM=dvyukov
R=golang-codereviews, dvyukov
CC=golang-codereviews
https://golang.org/cl/60090044
src/cmd/8a/lex.c
src/cmd/8l/8.out.h
src/liblink/asm8.c
src/pkg/runtime/alg.c
src/pkg/runtime/asm_386.s
src/pkg/runtime/asm_amd64.s
src/pkg/runtime/export_test.go
src/pkg/runtime/memclr_386.s [new file with mode: 0644]
src/pkg/runtime/memclr_amd64.s [new file with mode: 0644]
src/pkg/runtime/memclr_arm.s
src/pkg/runtime/memmove_test.go