Commit 805e56ef authored by Keith Randall's avatar Keith Randall

runtime: short-circuit bytes.Compare if src and dst are the same slice

Should only matter on ppc64 and ppc64le.

Fixes #11336

Change-Id: Id4b0ac28b573648e1aa98e87bf010f00d006b146
Reviewed-on: https://go-review.googlesource.com/13901Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarDave Cheney <dave@cheney.net>
parent d93f3b5e
......@@ -39,6 +39,9 @@ func bytes_Compare(s1, s2 []byte) int {
if len(s2) < l {
l = len(s2)
}
if l == 0 || &s1[0] == &s2[0] {
goto samebytes
}
for i := 0; i < l; i++ {
c1, c2 := s1[i], s2[i]
if c1 < c2 {
......@@ -48,6 +51,7 @@ func bytes_Compare(s1, s2 []byte) int {
return +1
}
}
samebytes:
if len(s1) < len(s2) {
return -1
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment