go/src/runtime
Matthew Dempsky 80a6fedea0 cmd/compile: add -d=checkptr to validate unsafe.Pointer rules
This CL adds -d=checkptr as a compile-time option for adding
instrumentation to check that Go code is following unsafe.Pointer
safety rules dynamically. In particular, it currently checks two
things:

1. When converting unsafe.Pointer to *T, make sure the resulting
pointer is aligned appropriately for T.

2. When performing pointer arithmetic, if the result points to a Go
heap object, make sure we can find an unsafe.Pointer-typed operand
that pointed into the same object.

These checks are currently disabled for the runtime, and can also be
disabled through a new //go:nocheckptr annotation. The latter is
necessary for functions like strings.noescape, which intentionally
violate safety rules to workaround escape analysis limitations.

Fixes #22218.

Change-Id: If5a51273881d93048f74bcff10a3275c9c91da6a
Reviewed-on: https://go-review.googlesource.com/c/go/+/162237
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
2019-10-17 00:40:21 +00:00
..
cgo all: remove the nacl port (part 2, amd64p32 + toolchain) 2019-10-09 22:34:34 +00:00
debug all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
internal all: remove nacl (part 3, more amd64p32) 2019-10-10 22:38:38 +00:00
msan
pprof all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
race cmd,runtime: enable race detector on arm64 2018-11-13 16:57:22 +00:00
testdata all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
trace runtime: don't hold worldsema across mark phase 2019-09-04 15:53:59 +00:00
HACKING.md runtime: fix heap pointer invariant rules in HACKING.md 2018-11-30 21:12:20 +00:00
Makefile
alg.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
asm.s all: remove nacl (part 3, more amd64p32) 2019-10-10 22:38:38 +00:00
asm_386.s all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
asm_amd64.s runtime: switch default order of hashing algorithms 2019-08-29 21:16:09 +00:00
asm_arm.s all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
asm_arm64.s runtime: use all 64 bits of hash seed on arm64 2019-08-30 00:10:31 +00:00
asm_mips64x.s runtime: switch default order of hashing algorithms 2019-08-29 21:16:09 +00:00
asm_mipsx.s runtime: switch default order of hashing algorithms 2019-08-29 21:16:09 +00:00
asm_ppc64x.h
asm_ppc64x.s runtime: switch default order of hashing algorithms 2019-08-29 21:16:09 +00:00
asm_s390x.s runtime: switch default order of hashing algorithms 2019-08-29 21:16:09 +00:00
asm_wasm.s runtime: switch default order of hashing algorithms 2019-08-29 21:16:09 +00:00
atomic_arm64.s
atomic_mips64x.s
atomic_mipsx.s
atomic_pointer.go runtime: remove unused function casp 2018-08-22 22:43:12 +00:00
atomic_ppc64x.s
auxv_none.go runtime: initialise cpu.HWCap on openbsd/arm64 2019-04-29 17:42:27 +00:00
callers_test.go Revert "cmd/compile, cmd/link, runtime: make defers low-cost through inline code and extra funcdata" 2019-10-16 20:59:53 +00:00
cgo.go
cgo_mmap.go
cgo_ppc64x.go
cgo_sigaction.go runtime: avoid getg in preinit on Android 2019-04-16 15:09:25 +00:00
cgocall.go runtime: use efaceOf where applicable 2019-10-03 02:09:41 +00:00
cgocallback.go
cgocheck.go runtime: remove kindNoPointers 2019-03-25 20:46:35 +00:00
chan.go runtime: speed up receive on empty closed channel 2019-10-07 20:58:04 +00:00
chan_test.go runtime: adjust expected error threshold in TestSelectFairness 2019-10-12 16:38:27 +00:00
chanbarrier_test.go
checkptr.go cmd/compile: add -d=checkptr to validate unsafe.Pointer rules 2019-10-17 00:40:21 +00:00
closure_test.go
compiler.go
complex.go
complex_test.go
cpuflags.go runtime: make processor capability variable naming platform specific 2018-11-14 20:30:31 +00:00
cpuflags_amd64.go runtime: use internal/cpu variables in assembler code 2018-08-24 07:29:52 +00:00
cpuprof.go runtime: fix pprof cpu profile corruption on arm/mips/mipsle 2019-06-28 20:09:48 +00:00
cputicks.go
crash_cgo_test.go runtime: print more information when testCgoPprof fails 2019-04-16 03:10:17 +00:00
crash_nonunix_test.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
crash_test.go misc, runtime, test: extra tests and benchmarks for defer 2019-09-25 23:27:16 +00:00
crash_unix_test.go runtime: disable some tests in -quick mode 2019-05-16 03:25:03 +00:00
debug.go runtime: don't hold worldsema across mark phase 2019-09-04 15:53:59 +00:00
debug_test.go runtime: fix hangs in TestDebugCall* 2018-12-17 03:00:28 +00:00
debugcall.go runtime: whitelist debugCall32..debugCall65536 in debugCallCheck 2019-04-29 04:05:29 +00:00
debuglog.go runtime: fix typo in debuglog comment 2019-04-05 14:17:31 +00:00
debuglog_off.go runtime: ring buffer for binary debug logging 2019-04-04 20:50:48 +00:00
debuglog_on.go runtime: ring buffer for binary debug logging 2019-04-04 20:50:48 +00:00
debuglog_test.go runtime: ring buffer for binary debug logging 2019-04-04 20:50:48 +00:00
defer_test.go Revert "cmd/compile, cmd/link, runtime: make defers low-cost through inline code and extra funcdata" 2019-10-16 20:59:53 +00:00
defs1_linux.go
defs1_netbsd_386.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs1_netbsd_amd64.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs1_netbsd_arm.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs1_netbsd_arm64.go runtime: gofmt defs1_netbsd_arm64.go 2019-04-26 14:01:21 +00:00
defs1_solaris_amd64.go runtime: change netpoll to take an amount of time to block 2019-10-15 20:29:56 +00:00
defs2_linux.go runtime: use MADV_FREE on Linux if available 2018-09-18 15:41:44 +00:00
defs3_linux.go
defs_aix.go runtime: enable runtime_mmap_test.go on AIX 2019-04-26 15:06:36 +00:00
defs_aix_ppc64.go runtime: enable runtime_mmap_test.go on AIX 2019-04-26 15:06:36 +00:00
defs_arm_linux.go
defs_darwin.go runtime: use a pipe to wake up signal_recv on Darwin 2019-06-30 05:48:31 +00:00
defs_darwin_386.go runtime: use a pipe to wake up signal_recv on Darwin 2019-06-30 05:48:31 +00:00
defs_darwin_amd64.go runtime: use a pipe to wake up signal_recv on Darwin 2019-06-30 05:48:31 +00:00
defs_darwin_arm.go runtime: use a pipe to wake up signal_recv on Darwin 2019-06-30 05:48:31 +00:00
defs_darwin_arm64.go runtime: use a pipe to wake up signal_recv on Darwin 2019-06-30 05:48:31 +00:00
defs_dragonfly.go
defs_dragonfly_amd64.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs_freebsd.go syscall: FreeBSD 12 ino64 support 2018-10-05 21:38:13 +00:00
defs_freebsd_386.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs_freebsd_amd64.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs_freebsd_arm.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs_linux.go runtime: use MADV_FREE on Linux if available 2018-09-18 15:41:44 +00:00
defs_linux_386.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs_linux_amd64.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs_linux_arm.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs_linux_arm64.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs_linux_mips64x.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs_linux_mipsx.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs_linux_ppc64.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs_linux_ppc64le.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs_linux_s390x.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs_netbsd.go
defs_netbsd_386.go
defs_netbsd_amd64.go
defs_netbsd_arm.go
defs_openbsd.go runtime: remap stack spans with MAP_STACK on OpenBSD 2018-06-29 21:27:23 +00:00
defs_openbsd_386.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs_openbsd_amd64.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs_openbsd_arm.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
defs_openbsd_arm64.go runtime: add support for openbsd/arm64 2019-04-26 17:34:45 +00:00
defs_plan9_386.go
defs_plan9_amd64.go
defs_plan9_arm.go
defs_solaris.go runtime: change netpoll to take an amount of time to block 2019-10-15 20:29:56 +00:00
defs_solaris_amd64.go
defs_windows.go runtime: treat CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, CTRL_SHUTDOWN_EVENT as SIGTERM on Windows 2019-08-29 08:15:20 +00:00
defs_windows_386.go runtime: treat CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, CTRL_SHUTDOWN_EVENT as SIGTERM on Windows 2019-08-29 08:15:20 +00:00
defs_windows_amd64.go runtime: treat CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, CTRL_SHUTDOWN_EVENT as SIGTERM on Windows 2019-08-29 08:15:20 +00:00
defs_windows_arm.go runtime: treat CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, CTRL_SHUTDOWN_EVENT as SIGTERM on Windows 2019-08-29 08:15:20 +00:00
duff_386.s
duff_amd64.s
duff_arm.s
duff_arm64.s cmd/compile, runtime: use R20, R21 in ARM64's Duff's devices 2019-06-26 16:01:47 +00:00
duff_mips64x.s runtime, cmd/compile: implement and use DUFFCOPY on MIPS64 2019-08-28 15:49:59 +00:00
duff_ppc64x.s runtime: fix vet complaints for linux/386 2019-05-09 21:13:18 +00:00
duff_s390x.s runtime: fix s390x build 2019-05-09 23:41:02 +00:00
env_plan9.go
env_posix.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
env_test.go
error.go cmd/compile,runtime: provide index information on bounds check failure 2019-03-18 17:33:38 +00:00
example_test.go
export_arm_test.go
export_debug_test.go runtime: fix hangs in TestDebugCall* 2018-12-17 03:00:28 +00:00
export_debuglog_test.go runtime: ring buffer for binary debug logging 2019-04-04 20:50:48 +00:00
export_futex_test.go
export_linux_test.go
export_mmap_test.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
export_test.go runtime: grow the heap incrementally 2019-09-25 22:17:21 +00:00
export_unix_test.go runtime: add AIX operating system 2018-10-03 20:58:16 +00:00
export_windows_test.go
extern.go runtime: remove unneeded noinline directives 2019-09-17 17:17:11 +00:00
fastlog2.go
fastlog2_test.go
fastlog2table.go runtime: follow convention for generated code comment in fastlog2table 2019-01-09 07:21:16 +00:00
float.go
funcdata.h Revert "cmd/compile, cmd/link, runtime: make defers low-cost through inline code and extra funcdata" 2019-10-16 20:59:53 +00:00
futex_test.go
gc_test.go runtime: use hard heap goal if we've done more scan work than expected 2019-09-04 21:52:18 +00:00
gcinfo_test.go all: remove nacl (part 3, more amd64p32) 2019-10-10 22:38:38 +00:00
go_tls.h all: remove nacl (part 3, more amd64p32) 2019-10-10 22:38:38 +00:00
hash32.go runtime: switch default order of hashing algorithms 2019-08-29 21:16:09 +00:00
hash64.go all: remove nacl (part 3, more amd64p32) 2019-10-10 22:38:38 +00:00
hash_test.go runtime: remove redundant slicing 2019-01-03 18:23:07 +00:00
heapdump.go runtime: remove kindNoPointers 2019-03-25 20:46:35 +00:00
iface.go runtime: use efaceOf where applicable 2019-10-03 02:09:41 +00:00
iface_test.go
lfstack.go
lfstack_32bit.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
lfstack_64bit.go runtime: handle 64bits addresses for AIX 2018-11-26 14:06:28 +00:00
lfstack_test.go
lock_futex.go all: add support for synchronous callbacks to js/wasm 2018-11-10 11:57:17 +00:00
lock_js.go runtime: make goroutine for wasm async events short-lived 2019-10-11 18:09:33 +00:00
lock_sema.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
malloc.go runtime: add physHugePageShift 2019-07-30 18:44:52 +00:00
malloc_test.go runtime: disable TestArenaCollision on Darwin in race mode 2018-12-19 19:34:50 +00:00
map.go cmd/compile,runtime: generate hash functions only for types which are map keys 2019-09-03 20:41:29 +00:00
map_benchmark_test.go all: fix typos 2019-09-08 17:28:20 +00:00
map_fast32.go cmd/compile,runtime: generate hash functions only for types which are map keys 2019-09-03 20:41:29 +00:00
map_fast64.go cmd/compile,runtime: generate hash functions only for types which are map keys 2019-09-03 20:41:29 +00:00
map_faststr.go cmd/compile,runtime: generate hash functions only for types which are map keys 2019-09-03 20:41:29 +00:00
map_test.go src: gofmt -s 2019-09-09 18:57:05 +00:00
mbarrier.go runtime: remove kindNoPointers 2019-03-25 20:46:35 +00:00
mbitmap.go all: remove commented-out print statements 2019-05-05 08:09:30 +00:00
mcache.go runtime: use uintptr instead of int32 for counting to next heap profile sample 2019-07-29 21:07:49 +00:00
mcentral.go runtime: replace division by span element size by multiply and shifts 2019-03-18 14:05:54 +00:00
mem_aix.go runtime: ensure free and unscavenged spans may be backed by huge pages 2019-05-06 21:15:01 +00:00
mem_bsd.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
mem_darwin.go runtime: ensure free and unscavenged spans may be backed by huge pages 2019-05-06 21:15:01 +00:00
mem_js.go runtime,syscall/js: reuse wasm memory DataView 2019-08-28 05:11:20 +00:00
mem_linux.go runtime: add physHugePageShift 2019-07-30 18:44:52 +00:00
mem_plan9.go runtime: ensure free and unscavenged spans may be backed by huge pages 2019-05-06 21:15:01 +00:00
mem_windows.go runtime: mark newly-mapped memory as scavenged 2019-05-16 22:00:47 +00:00
memclr_386.s all: align cpu feature variable offset naming 2018-08-24 18:40:16 +00:00
memclr_amd64.s all: align cpu feature variable offset naming 2018-08-24 18:40:16 +00:00
memclr_arm.s
memclr_arm64.s runtime: fix scattered non-tab indentation in assembly 2019-06-06 00:12:04 +00:00
memclr_mips64x.s
memclr_mipsx.s
memclr_plan9_386.s
memclr_plan9_amd64.s
memclr_ppc64x.s runtime: improve performance of memclr, memmove on ppc64x 2018-11-06 14:54:59 +00:00
memclr_s390x.s runtime: fix vet complaints for linux/arm64, linux/mips*, linux/ppc64*, linux/s390x 2019-05-09 21:13:22 +00:00
memclr_wasm.s
memmove_386.s all: align cpu feature variable offset naming 2018-08-24 18:40:16 +00:00
memmove_amd64.s all: align cpu feature variable offset naming 2018-08-24 18:40:16 +00:00
memmove_arm.s all: this big patch remove whitespace from assembly files 2018-10-03 15:28:51 +00:00
memmove_arm64.s runtime: fix scattered non-tab indentation in assembly 2019-06-06 00:12:04 +00:00
memmove_linux_amd64_test.go
memmove_mips64x.s
memmove_mipsx.s
memmove_plan9_386.s all: this big patch remove whitespace from assembly files 2018-10-03 15:28:51 +00:00
memmove_plan9_amd64.s all: this big patch remove whitespace from assembly files 2018-10-03 15:28:51 +00:00
memmove_ppc64x.s runtime: improve performance of memclr, memmove on ppc64x 2018-11-06 14:54:59 +00:00
memmove_s390x.s runtime: fix vet complaints for linux/arm64, linux/mips*, linux/ppc64*, linux/s390x 2019-05-09 21:13:22 +00:00
memmove_test.go runtime: disable some tests in -quick mode 2019-05-16 03:25:03 +00:00
memmove_wasm.s
mfinal.go runtime: remove kindNoPointers 2019-03-25 20:46:35 +00:00
mfinal_test.go
mfixalloc.go runtime: clean up MSpan* MCache* MCentral* in docs 2018-11-05 22:56:22 +00:00
mgc.go runtime: fix lock acquire cycles related to scavenge.lock 2019-09-26 15:44:49 +00:00
mgclarge.go runtime: split spans during allocation without treap removal 2019-05-06 21:14:52 +00:00
mgcmark.go runtime: avoid overflow in markrootBlock 2019-09-20 05:02:16 +00:00
mgcscavenge.go runtime: call goready in wakeScavenger instead of ready 2019-10-15 17:29:47 +00:00
mgcstack.go all: fix typos as reported by 'misspell' 2019-02-26 23:02:05 +00:00
mgcsweep.go runtime: resolve latent TODOs 2019-05-13 19:33:29 +00:00
mgcsweepbuf.go runtime: replace sys.CacheLineSize by corresponding internal/cpu const and vars 2018-08-24 18:28:25 +00:00
mgcwork.go runtime: don't spin in checkPut if non-preemptible 2019-01-02 20:21:01 +00:00
mheap.go runtime: fix lock acquire cycles related to scavenge.lock 2019-09-26 15:44:49 +00:00
mkduff.go runtime, cmd/compile: implement and use DUFFCOPY on MIPS64 2019-08-28 15:49:59 +00:00
mkfastlog2table.go runtime: follow convention for generated code comment in fastlog2table 2019-01-09 07:21:16 +00:00
mksizeclasses.go runtime: replace division by span element size by multiply and shifts 2019-03-18 14:05:54 +00:00
mmap.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
mprof.go runtime: add a more stable isSystemGoroutine mode 2018-10-02 20:35:28 +00:00
msan.go
msan0.go
msan_amd64.s
msan_arm64.s runtime: check for nil g in msancall() on arm64 2019-09-18 20:35:15 +00:00
msize.go
mstats.go runtime: redefine scavenge goal in terms of heap_inuse 2019-09-25 22:15:39 +00:00
mwbbuf.go runtime: flush on every write barrier while debugging 2018-12-18 15:17:50 +00:00
net_plan9.go
netpoll.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
netpoll_aix.go runtime: change netpoll to take an amount of time to block 2019-10-15 20:29:56 +00:00
netpoll_epoll.go runtime: change netpoll to take an amount of time to block 2019-10-15 20:29:56 +00:00
netpoll_fake.go runtime: change netpoll to take an amount of time to block 2019-10-15 20:29:56 +00:00
netpoll_kqueue.go runtime: change netpoll to take an amount of time to block 2019-10-15 20:29:56 +00:00
netpoll_solaris.go runtime: change netpoll to take an amount of time to block 2019-10-15 20:29:56 +00:00
netpoll_stub.go runtime: change netpoll to take an amount of time to block 2019-10-15 20:29:56 +00:00
netpoll_windows.go runtime: change netpoll to take an amount of time to block 2019-10-15 20:29:56 +00:00
norace_linux_test.go
norace_test.go
numcpu_freebsd_test.go
os2_aix.go all: fix typos 2019-09-08 17:28:20 +00:00
os2_freebsd.go
os2_openbsd.go
os2_plan9.go
os2_solaris.go
os3_plan9.go runtime: replace calls to hasprefix with hasPrefix 2018-08-22 19:44:26 +00:00
os3_solaris.go runtime: make nanotime use monotonic clock in Solaris 2019-10-11 20:01:28 +00:00
os_aix.go runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
os_android.go
os_darwin.go runtime: use a pipe to wake up signal_recv on Darwin 2019-06-30 05:48:31 +00:00
os_darwin_arm.go runtime: move arm hardware division support detection to internal/cpu 2018-08-24 14:27:07 +00:00
os_darwin_arm64.go
os_dragonfly.go runtime, cmd/dist, misc/cgo: enable c-archive for aix/ppc64 2019-04-02 16:03:24 +00:00
os_freebsd.go runtime, cmd/dist, misc/cgo: enable c-archive for aix/ppc64 2019-04-02 16:03:24 +00:00
os_freebsd2.go
os_freebsd_amd64.go
os_freebsd_arm.go runtime: remove CPU capability workarounds for unsupported FreeBSD versions 2019-03-07 07:23:45 +00:00
os_freebsd_noauxv.go
os_js.go runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
os_linux.go runtime: scavenge huge spans first 2019-05-06 20:57:39 +00:00
os_linux_arm.go runtime: remove unused armArch 2018-10-05 19:52:26 +00:00
os_linux_arm64.go runtime: avoid arm64 8.1 atomics on Android 2018-11-04 19:34:07 +00:00
os_linux_be64.go
os_linux_generic.go
os_linux_mips64x.go
os_linux_mipsx.go
os_linux_noauxv.go
os_linux_novdso.go runtime: add support for VDSO on ppc64x for use in walltime/nanotime 2018-08-31 13:12:31 +00:00
os_linux_ppc64x.go runtime: don't use linkname to refer to internal/cpu 2018-08-21 14:36:09 +00:00
os_linux_s390x.go
os_netbsd.go runtime, cmd/dist, misc/cgo: enable c-archive for aix/ppc64 2019-04-02 16:03:24 +00:00
os_netbsd_386.go
os_netbsd_amd64.go
os_netbsd_arm.go runtime: move arm hardware division support detection to internal/cpu 2018-08-24 14:27:07 +00:00
os_netbsd_arm64.go all: add start of netbsd/arm64 support 2019-04-20 15:02:01 +00:00
os_nonopenbsd.go runtime: remap stack spans with MAP_STACK on OpenBSD 2018-06-29 21:27:23 +00:00
os_openbsd.go runtime, cmd/dist, misc/cgo: enable c-archive for aix/ppc64 2019-04-02 16:03:24 +00:00
os_openbsd_arm.go runtime: move arm hardware division support detection to internal/cpu 2018-08-24 14:27:07 +00:00
os_openbsd_arm64.go runtime: initialise cpu.HWCap on openbsd/arm64 2019-04-29 17:42:27 +00:00
os_plan9.go runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
os_plan9_arm.go runtime: move arm hardware division support detection to internal/cpu 2018-08-24 14:27:07 +00:00
os_solaris.go runtime: fix vet complaints for solaris/amd64, illumos/amd64 2019-05-09 21:13:23 +00:00
os_windows.go runtime: iterate ms via allm linked list to avoid race 2019-10-03 15:55:39 +00:00
os_windows_arm.go runtime: use QPC to implement cputicks() on windows/arm 2018-12-20 00:23:03 +00:00
panic.go Revert "cmd/compile, cmd/link, runtime: make defers low-cost through inline code and extra funcdata" 2019-10-16 20:59:53 +00:00
panic32.go all: remove nacl (part 3, more amd64p32) 2019-10-10 22:38:38 +00:00
plugin.go
print.go runtime: avoid write barrier in startpanic_m 2018-12-19 00:13:22 +00:00
proc.go runtime: change netpoll to take an amount of time to block 2019-10-15 20:29:56 +00:00
proc_runtime_test.go
proc_test.go runtime: add a test for getg with thread switch 2019-07-16 20:53:01 +00:00
profbuf.go
profbuf_test.go
proflabel.go
race.go runtime: allow the Go runtime to return multiple stack frames for a single PC 2019-09-23 16:50:00 +00:00
race0.go
race_amd64.s runtime: rename p racectx field to raceprocctx 2019-03-29 14:17:44 +00:00
race_arm64.s runtime: fix scattered non-tab indentation in assembly 2019-06-06 00:12:04 +00:00
race_ppc64le.s runtime: fix ppc64le race code 2019-09-25 21:39:33 +00:00
rand_test.go
rdebug.go
relax_stub.go
rt0_aix_ppc64.s runtime: create library startup for aix/ppc64 2019-03-27 17:22:11 +00:00
rt0_android_386.s
rt0_android_amd64.s
rt0_android_arm.s
rt0_android_arm64.s
rt0_darwin_386.s
rt0_darwin_amd64.s
rt0_darwin_arm.s
rt0_darwin_arm64.s build: support frame-pointer for arm64 2018-08-29 18:28:34 +00:00
rt0_dragonfly_amd64.s
rt0_freebsd_386.s
rt0_freebsd_amd64.s
rt0_freebsd_arm.s
rt0_illumos_amd64.s all: add new GOOS=illumos, split out of GOOS=solaris 2019-04-30 16:59:13 +00:00
rt0_js_wasm.s cmd, runtime: remove PC_F & PC_B globals on Wasm 2019-05-24 17:41:56 +00:00
rt0_linux_386.s
rt0_linux_amd64.s
rt0_linux_arm.s
rt0_linux_arm64.s build: support frame-pointer for arm64 2018-08-29 18:28:34 +00:00
rt0_linux_mips64x.s
rt0_linux_mipsx.s runtime: fix scattered non-tab indentation in assembly 2019-06-06 00:12:04 +00:00
rt0_linux_ppc64.s cmd/link, runtime: add initial cgo support for ppc64 2018-11-20 14:50:09 +00:00
rt0_linux_ppc64le.s all: this big patch remove whitespace from assembly files 2018-10-03 15:28:51 +00:00
rt0_linux_s390x.s
rt0_netbsd_386.s
rt0_netbsd_amd64.s
rt0_netbsd_arm.s
rt0_netbsd_arm64.s all: add start of netbsd/arm64 support 2019-04-20 15:02:01 +00:00
rt0_openbsd_386.s
rt0_openbsd_amd64.s
rt0_openbsd_arm.s
rt0_openbsd_arm64.s runtime: add support for openbsd/arm64 2019-04-26 17:34:45 +00:00
rt0_plan9_386.s
rt0_plan9_amd64.s
rt0_plan9_arm.s
rt0_solaris_amd64.s
rt0_windows_386.s
rt0_windows_amd64.s runtime: follow Windows calling convention for _cgo_sys_thread_create 2019-04-08 19:05:25 +00:00
rt0_windows_arm.s runtime: support windows/arm 2018-09-18 22:18:23 +00:00
runtime-gdb.py runtime: support all as parameter in gdb goroutine commands. 2019-04-29 18:11:11 +00:00
runtime-gdb_test.go runtime: support all as parameter in gdb goroutine commands. 2019-04-29 18:11:11 +00:00
runtime-lldb_test.go runtime: skip broken TestLldbPython 2019-04-01 22:34:23 +00:00
runtime.go
runtime1.go runtime: introduce and consistently use setNsec for timespec 2019-03-15 03:37:49 +00:00
runtime2.go Revert "cmd/compile, cmd/link, runtime: make defers low-cost through inline code and extra funcdata" 2019-10-16 20:59:53 +00:00
runtime_linux_test.go
runtime_mmap_test.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
runtime_test.go Revert "cmd/compile, cmd/link, runtime: make defers low-cost through inline code and extra funcdata" 2019-10-16 20:59:53 +00:00
runtime_unix_test.go runtime: add AIX operating system 2018-10-03 20:58:16 +00:00
rwmutex.go
rwmutex_test.go
select.go runtime: remove outdated comment in select sortkey 2019-09-01 00:05:48 +00:00
sema.go runtime: remove no-op pointer writes in treap rotations 2019-10-10 19:24:35 +00:00
semasleep_test.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
sigaction.go
signal_386.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
signal_aix_ppc64.go runtime: add AIX operating system 2018-10-03 20:58:16 +00:00
signal_amd64.go all: remove nacl (part 3, more amd64p32) 2019-10-10 22:38:38 +00:00
signal_arm.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
signal_arm64.go runtime: add support for openbsd/arm64 2019-04-26 17:34:45 +00:00
signal_darwin.go
signal_darwin_386.go runtime, cmd/dist, misc/cgo: enable c-archive for aix/ppc64 2019-04-02 16:03:24 +00:00
signal_darwin_amd64.go runtime, cmd/dist, misc/cgo: enable c-archive for aix/ppc64 2019-04-02 16:03:24 +00:00
signal_darwin_arm.go runtime, cmd/dist, misc/cgo: enable c-archive for aix/ppc64 2019-04-02 16:03:24 +00:00
signal_darwin_arm64.go runtime, cmd/dist, misc/cgo: enable c-archive for aix/ppc64 2019-04-02 16:03:24 +00:00
signal_dragonfly.go
signal_dragonfly_amd64.go
signal_freebsd.go
signal_freebsd_386.go
signal_freebsd_amd64.go
signal_freebsd_arm.go
signal_linux_386.go
signal_linux_amd64.go
signal_linux_arm.go
signal_linux_arm64.go
signal_linux_mips64x.go
signal_linux_mipsx.go
signal_linux_ppc64x.go
signal_linux_s390x.go
signal_mips64x.go
signal_mipsx.go
signal_netbsd.go
signal_netbsd_386.go
signal_netbsd_amd64.go
signal_netbsd_arm.go
signal_netbsd_arm64.go all: add start of netbsd/arm64 support 2019-04-20 15:02:01 +00:00
signal_openbsd.go
signal_openbsd_386.go
signal_openbsd_amd64.go
signal_openbsd_arm.go runtime: correct signal structs/offsets for openbsd/arm 2018-12-13 18:13:30 +00:00
signal_openbsd_arm64.go runtime: add support for openbsd/arm64 2019-04-26 17:34:45 +00:00
signal_plan9.go
signal_ppc64x.go runtime: add AIX operating system 2018-10-03 20:58:16 +00:00
signal_solaris.go all: s/cancelation/cancellation/ 2019-04-16 20:27:15 +00:00
signal_solaris_amd64.go
signal_unix.go runtime: when disabling SIGPROF handler, ignore SIGPROF 2019-10-11 19:57:32 +00:00
signal_windows.go runtime: do not crash in lastcontinuehandler when running as DLL 2019-08-31 00:47:27 +00:00
signal_windows_test.go cmd/go/internal/renameio,runtime: avoid leaking temp directory in test 2019-09-12 15:52:35 +00:00
sigqueue.go runtime: use a pipe to wake up signal_recv on Darwin 2019-06-30 05:48:31 +00:00
sigqueue_note.go runtime: use a pipe to wake up signal_recv on Darwin 2019-06-30 05:48:31 +00:00
sigqueue_plan9.go
sigtab_aix.go runtime: add AIX operating system 2018-10-03 20:58:16 +00:00
sigtab_linux_generic.go
sigtab_linux_mipsx.go
sizeclasses.go runtime: replace division by span element size by multiply and shifts 2019-03-18 14:05:54 +00:00
sizeof_test.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
slice.go runtime: remove kindNoPointers 2019-03-25 20:46:35 +00:00
slice_test.go runtime: use multiplication with overflow check for makeslice 2018-10-23 07:23:15 +00:00
softfloat64.go
softfloat64_test.go
stack.go Revert "cmd/compile, cmd/link, runtime: make defers low-cost through inline code and extra funcdata" 2019-10-16 20:59:53 +00:00
stack_test.go runtime: remove unneeded noinline directives 2019-09-17 17:17:11 +00:00
string.go runtime: mark all Go symbols called from assembly in other packages 2019-06-06 19:44:12 +00:00
string_test.go strings: declare IndexByte as noescape 2018-10-30 20:03:54 +00:00
stubs.go Revert "Revert "cmd/compile,runtime: allocate defer records on the stack"" 2019-06-10 16:19:39 +00:00
stubs2.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
stubs3.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
stubs32.go all: remove nacl (part 3, more amd64p32) 2019-10-10 22:38:38 +00:00
stubs_386.go runtime: fix vet complaints for linux/amd64 2019-05-09 21:13:19 +00:00
stubs_amd64.go all: remove nacl (part 3, more amd64p32) 2019-10-10 22:38:38 +00:00
stubs_arm.go runtime: fix vet complaints for linux/arm 2019-05-09 21:13:21 +00:00
stubs_arm64.go runtime: fix vet complaints for linux/arm64, linux/mips*, linux/ppc64*, linux/s390x 2019-05-09 21:13:22 +00:00
stubs_linux.go runtime: fix vet complaints for linux/386 2019-05-09 21:13:18 +00:00
stubs_mips64x.go runtime: fix vet complaints for linux/arm64, linux/mips*, linux/ppc64*, linux/s390x 2019-05-09 21:13:22 +00:00
stubs_mipsx.go runtime: fix vet complaints for linux/arm64, linux/mips*, linux/ppc64*, linux/s390x 2019-05-09 21:13:22 +00:00
stubs_nonlinux.go
stubs_ppc64x.go runtime: fix vet complaints for linux/arm64, linux/mips*, linux/ppc64*, linux/s390x 2019-05-09 21:13:22 +00:00
stubs_s390x.go runtime: fix vet complaints for linux/arm64, linux/mips*, linux/ppc64*, linux/s390x 2019-05-09 21:13:22 +00:00
symtab.go Revert "cmd/compile, cmd/link, runtime: make defers low-cost through inline code and extra funcdata" 2019-10-16 20:59:53 +00:00
symtab_test.go
sys_aix_ppc64.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_arm.go
sys_arm64.go
sys_darwin.go runtime: fix darwin syscall performance regression 2019-10-01 04:04:40 +00:00
sys_darwin_32.go syscall: avoid _getdirentries64 on darwin 2019-04-03 21:27:05 +00:00
sys_darwin_64.go syscall: avoid _getdirentries64 on darwin 2019-04-03 21:27:05 +00:00
sys_darwin_386.s runtime: use correct register in darwin/386 pipe_trampoline 2019-07-01 21:30:23 +00:00
sys_darwin_amd64.s runtime: use a pipe to wake up signal_recv on Darwin 2019-06-30 05:48:31 +00:00
sys_darwin_arm.s runtime: use a pipe to wake up signal_recv on Darwin 2019-06-30 05:48:31 +00:00
sys_darwin_arm64.s runtime: use a pipe to wake up signal_recv on Darwin 2019-06-30 05:48:31 +00:00
sys_dragonfly_amd64.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_freebsd_386.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_freebsd_amd64.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_freebsd_arm.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_linux_386.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_linux_amd64.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_linux_arm.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_linux_arm64.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_linux_mips64x.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_linux_mipsx.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_linux_ppc64x.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_linux_s390x.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_mips64x.go
sys_mipsx.go
sys_netbsd_386.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_netbsd_amd64.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_netbsd_arm.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_netbsd_arm64.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_nonppc64x.go
sys_openbsd_386.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_openbsd_amd64.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_openbsd_arm.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_openbsd_arm64.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_plan9_386.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_plan9_amd64.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_plan9_arm.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_ppc64x.go
sys_s390x.go
sys_solaris_amd64.s runtime: make nanotime use monotonic clock in Solaris 2019-10-11 20:01:28 +00:00
sys_wasm.go
sys_wasm.s runtime,internal/bytealg: optimize wasmZero, wasmMove, Compare 2019-10-11 04:00:35 +00:00
sys_windows_386.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_windows_amd64.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_windows_arm.s runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
sys_x86.go all: remove nacl (part 3, more amd64p32) 2019-10-10 22:38:38 +00:00
syscall2_solaris.go
syscall_aix.go runtime: mark all Go symbols called from assembly in other packages 2019-06-06 19:44:12 +00:00
syscall_solaris.go runtime: mark all Go symbols called from assembly in other packages 2019-06-06 19:44:12 +00:00
syscall_windows.go runtime: monitor for suspend/resume to kick timeouts 2019-08-30 14:20:49 +00:00
syscall_windows_test.go runtime: fix syscall.NewCallback to return all bits for uintptr values 2019-02-26 20:22:39 +00:00
textflag.h cmd/link, runtime: mark goexit as the top of the call stack 2019-04-15 13:17:28 +00:00
time.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
time_fake.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
time_nofake.go all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
time_test.go runtime: platform-independent faketime support 2019-09-04 17:56:53 +00:00
timeasm.go runtime, time: refactor startNano handling 2018-11-02 12:50:03 +00:00
timestub.go runtime, time: refactor startNano handling 2018-11-02 12:50:03 +00:00
timestub2.go runtime: make nanotime use monotonic clock in Solaris 2019-10-11 20:01:28 +00:00
tls_arm.s all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
tls_arm64.h runtime: add support for openbsd/arm64 2019-04-26 17:34:45 +00:00
tls_arm64.s runtime,runtime/cgo: set up TLS storage for Android Q without cgo 2019-04-08 20:21:51 +00:00
tls_mips64x.s
tls_mipsx.s
tls_ppc64x.s runtime: use unsigned load for iscgo variable in ppc64x runtime asm 2018-10-23 20:25:29 +00:00
tls_s390x.s
trace.go all: remove nacl (part 3, more amd64p32) 2019-10-10 22:38:38 +00:00
traceback.go runtime: make goroutine for wasm async events short-lived 2019-10-11 18:09:33 +00:00
treap_test.go runtime: scavenge huge spans first 2019-05-06 20:57:39 +00:00
type.go runtime: add doc to remind adopting changes to reflectlite 2019-10-05 23:00:37 +00:00
typekind.go runtime: remove kindNoPointers 2019-03-25 20:46:35 +00:00
utf8.go
vdso_elf32.go
vdso_elf64.go runtime: add support for VDSO on ppc64x for use in walltime/nanotime 2018-08-31 13:12:31 +00:00
vdso_freebsd.go runtime: wrap nanotime, walltime, and write 2019-09-04 17:56:09 +00:00
vdso_freebsd_arm.go
vdso_freebsd_x86.go
vdso_in_none.go runtime: add support for VDSO on ppc64x for use in walltime/nanotime 2018-08-31 13:12:31 +00:00
vdso_linux.go runtime: fix crash during VDSO calls on arm 2019-09-11 03:32:35 +00:00
vdso_linux_386.go
vdso_linux_amd64.go
vdso_linux_arm.go
vdso_linux_arm64.go
vdso_linux_ppc64x.go runtime: add support for VDSO on ppc64x for use in walltime/nanotime 2018-08-31 13:12:31 +00:00
vlop_386.s
vlop_arm.s all: remove the nacl port (part 1) 2019-10-09 06:14:44 +00:00
vlop_arm_test.go
vlrt.go
wincallback.go runtime: support windows/arm 2018-09-18 22:18:23 +00:00
write_err.go
write_err_android.go doc: fixed some links 2019-05-08 16:38:55 +00:00
zcallback_windows.go runtime: support windows/arm 2018-09-18 22:18:23 +00:00
zcallback_windows.s runtime: support windows/arm 2018-09-18 22:18:23 +00:00
zcallback_windows_arm.s runtime: support windows/arm 2018-09-18 22:18:23 +00:00