go/src
Martin Möhrmann a1ca4893ff cmd/compile: add intrinsics for runtime/internal/math on 386 and amd64
Add generic, 386 and amd64 specific ops and SSA rules for multiplication
with overflow and branching based on overflow flags. Use these to intrinsify
runtime/internal/math.MulUinptr.

On amd64
  mul, overflow := math.MulUintptr(a, b)
  if overflow {
is lowered to two instructions:
  MULQ SI
  JO 0x10ee35c

No codegen tests as codegen can not currently test unexported internal runtime
functions.

amd64:
name              old time/op  new time/op  delta
MulUintptr/small  1.16ns ± 5%  0.88ns ± 6%  -24.36%  (p=0.000 n=19+20)
MulUintptr/large  10.7ns ± 1%   1.1ns ± 1%  -89.28%  (p=0.000 n=17+19)

Change-Id: If60739a86f820e5044d677276c21df90d3c7a86a
Reviewed-on: https://go-review.googlesource.com/c/141820
Run-TryBot: Martin Möhrmann <moehrmann@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
2018-10-15 19:04:09 +00:00
..
archive all: fix a bunch of misspellings 2018-10-08 03:12:03 +00:00
bufio bufio: avoid rescanning buffer multiple times in ReadSlice 2018-08-22 17:06:28 +00:00
builtin builtin: document when len and cap are constant 2018-09-18 21:52:11 +00:00
bytes bytes: vary the input alignment to Compare argument in compare_test.go 2018-10-11 04:45:18 +00:00
cmd cmd/compile: add intrinsics for runtime/internal/math on 386 and amd64 2018-10-15 19:04:09 +00:00
compress all: fix a bunch of misspellings 2018-10-06 15:40:03 +00:00
container container/heap: clarify that Remove returns the removed element 2018-08-20 18:05:11 +00:00
context context: avoid duplicate removeChild 2018-10-03 15:26:10 +00:00
crypto crypto: add AIX operating system 2018-10-10 14:55:17 +00:00
database/sql all: fix a bunch of misspellings 2018-10-08 03:12:03 +00:00
debug debug/plan9obj: simplify s[:] to s where 2018-10-13 11:24:43 +00:00
encoding encoding/base64: fix typo in decodeQuantum docs 2018-10-12 14:36:03 +00:00
errors
expvar expvar: add Map.Delete 2018-10-04 01:16:52 +00:00
flag all: use strings.ReplaceAll and bytes.ReplaceAll where applicable 2018-09-26 22:14:25 +00:00
fmt fmt: add example Sscanf 2018-10-06 19:18:34 +00:00
go runtime/internal/math: add multiplication with overflow check 2018-10-15 17:58:06 +00:00
hash hash/crc64: lazily initialize slice8Tables 2018-08-21 04:50:21 +00:00
html all: use strings.ReplaceAll and bytes.ReplaceAll where applicable 2018-09-26 22:14:25 +00:00
image jpeg: simplify 'x = x op ...' to 'x op= ...' 2018-10-13 11:18:56 +00:00
index/suffixarray
internal internal/cpu: expose ARM feature flags for FMA 2018-10-15 10:57:04 +00:00
io io: export StringWriter 2018-10-03 20:13:35 +00:00
log
math all: fix a bunch of misspellings 2018-10-06 15:40:03 +00:00
mime mime: add AIX operating system 2018-10-10 15:19:38 +00:00
net net/http: flesh out Transport's HTTP/1 CONNECT+bidi support to match HTTP/2 2018-10-12 15:00:32 +00:00
os os: make UserHomeDir return "/" on iOS 2018-10-12 14:25:13 +00:00
path path/filepath: add AIX operating system 2018-10-11 14:46:37 +00:00
plugin plugin: remove unused func 2018-08-22 16:29:03 +00:00
reflect reflect: add an example for Kind 2018-10-03 22:38:53 +00:00
regexp regexp: add partial Deprecation comment to Copy 2018-10-12 17:48:44 +00:00
runtime cmd/compile: add intrinsics for runtime/internal/math on 386 and amd64 2018-10-15 19:04:09 +00:00
sort
strconv strconv: add example for QuoteRuneToGraphic and QuoteToGraphic functions 2018-10-08 19:13:38 +00:00
strings strings: Replace s[:] to s where s is a slice. 2018-10-13 11:17:13 +00:00
sync sync: fix typo in doc 2018-10-06 12:04:57 +00:00
syscall syscall: correctly pad with NUL in FreeBSD convertFromDirents11 2018-10-12 14:55:06 +00:00
testdata Revert "compress: move benchmark text from src/testdata to src/compress/testdata" 2018-10-01 16:16:21 +00:00
testing testing: implement -benchtime=100x 2018-10-12 17:48:31 +00:00
text text/template: explain that integer constants can overflow 2018-10-11 02:32:47 +00:00
time time: add AIX operating system 2018-10-10 14:15:57 +00:00
unicode
unsafe unsafe: document that Alignof, Offsetof, and Sizeof return a constant 2018-10-11 02:32:20 +00:00
vendor/golang_org/x vendor: update golang_org/x/net/route from upstream 2018-10-05 21:53:34 +00:00
Make.dist
all.bash
all.bat
all.rc
androidtest.bash
bootstrap.bash
buildall.bash
clean.bash
clean.bat
clean.rc
cmp.bash
iostest.bash
make.bash cmd/go: add $GOFLAGS environment variable 2018-08-01 00:35:21 +00:00
make.bat src/make.bat: add missing go.exe extension 2018-08-25 22:42:46 +00:00
make.rc cmd/go: add $GOFLAGS environment variable 2018-08-01 00:35:21 +00:00
naclmake.bash all: use consistent shebang line across all shell scripts 2018-08-22 16:41:11 +00:00
nacltest.bash all: use consistent shebang line across all shell scripts 2018-08-22 16:41:11 +00:00
race.bash
race.bat cmd/dist: fix compilation on windows 2018-08-25 22:39:17 +00:00
run.bash cmd/go: add $GOFLAGS environment variable 2018-08-01 00:35:21 +00:00
run.bat cmd/go: add $GOFLAGS environment variable 2018-08-01 00:35:21 +00:00
run.rc cmd/go: add $GOFLAGS environment variable 2018-08-01 00:35:21 +00:00