summaryrefslogtreecommitdiff
path: root/src/runtime/asm_amd64p32.s
Commit message (Collapse)AuthorAgeFilesLines
* runtime: remove hand-generated ptr bitmaps for reflectcallRuss Cox2014-10-151-45/+32
| | | | | | | | | | | | | | | | A Go prototype can be used instead now, and the compiler will do a better job than we will doing it by hand. (We got it wrong in amd64p32, causing the current build breakage.) The auto-prototype-matching only applies to functions without an explicit package path, so the TEXT lines for reflectcall and callXX are s/runtime?/?/. LGTM=khr R=khr CC=golang-codereviews, iant, r https://codereview.appspot.com/153600043
* runtime: change Windows M.thread from void* to uintptrRuss Cox2014-10-071-0/+3
| | | | | | | | | | | | It appears to be an opaque bit pattern more than a pointer. The Go garbage collector has discovered that for m0 it is set to 0x4c. Should fix Windows build. TBR=brainman CC=golang-codereviews https://codereview.appspot.com/149640043
* cmd/cc, cmd/ld, runtime: disallow conservative data/bss objectsRuss Cox2014-09-241-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In linker, refuse to write conservative (array of pointers) as the garbage collection type for any variable in the data/bss GC program. In the linker, attach the Go type to an already-read C declaration during dedup. This gives us Go types for C globals for free as long as the cmd/dist-generated Go code contains the declaration. (Most runtime C declarations have a corresponding Go declaration. Both are bss declarations and so the linker dedups them.) In cmd/dist, add a few more C files to the auto-Go-declaration list in order to get Go type information for the C declarations into the linker. In C compiler, mark all non-pointer-containing global declarations and all string data as NOPTR. This allows them to exist in C files without any corresponding Go declaration. Count C function pointers as "non-pointer-containing", since we have no heap-allocated C functions. In runtime, add NOPTR to the remaining pointer-containing declarations, none of which refer to Go heap objects. In runtime, also move os.Args and syscall.envs data into runtime-owned variables. Otherwise, in programs that do not import os or syscall, the runtime variables named os.Args and syscall.envs will be missing type information. I believe that this CL eliminates the final source of conservative GC scanning in non-SWIG Go programs, and therefore... Fixes issue 909. LGTM=iant R=iant CC=golang-codereviews https://codereview.appspot.com/149770043
* runtime: stop scanning stack frames/args conservativelyRuss Cox2014-09-121-5/+1
| | | | | | | | | | | | | | | | | | | | | | | The goal here is to commit fully to having precise information about stack frames. If we need information we don't have, crash instead of assuming we should scan conservatively. Since the stack copying assumes fully precise information, any crashes during garbage collection that are introduced by this CL are crashes that could have happened during stack copying instead. Those are harder to find because stacks are copied much less often than the garbage collector is invoked. In service of that goal, remove ARGSIZE macros from asm_*.s, change switchtoM to have no arguments (it doesn't have any live arguments), and add args and locals information to some frames that can call back into Go. LGTM=khr R=khr, rlh CC=golang-codereviews https://codereview.appspot.com/137540043
* runtime: allow crash from gsignal stackRuss Cox2014-09-111-0/+17
| | | | | | | | | | | The uses of onM in dopanic/startpanic are okay even from the signal stack. Fixes issue 8666. LGTM=khr R=khr CC=golang-codereviews https://codereview.appspot.com/134710043
* runtime: more cleanupsKeith Randall2014-09-091-3/+0
| | | | | | | | | | Move timenow thunk into time.s Move declarations for generic c/asm services into stubs.go LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://codereview.appspot.com/137360043
* runtime: fix build failures after CL 137410043Russ Cox2014-09-091-1/+1
| | | | | | | | No promise about correctness, but they do build. TBR=khr CC=golang-codereviews https://codereview.appspot.com/143720043
* runtime: assume precisestack, copystack, StackCopyAlways, ScanStackByFramesRuss Cox2014-09-091-152/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit to stack copying for stack growth. We're carrying around a surprising amount of cruft from older schemes. I am confident that precise stack scans and stack copying are here to stay. Delete fallback code for when precise stack info is disabled. Delete fallback code for when copying stacks is disabled. Delete fallback code for when StackCopyAlways is disabled. Delete Stktop chain - there is only one stack segment now. Delete M.moreargp, M.moreargsize, M.moreframesize, M.cret. Delete G.writenbuf (unrelated, just dead). Delete runtime.lessstack, runtime.oldstack. Delete many amd64 morestack variants. Delete initialization of morestack frame/arg sizes (shortens split prologue!). Replace G's stackguard/stackbase/stack0/stacksize/ syscallstack/syscallguard/forkstackguard with simple stack bounds (lo, hi). Update liblink, runtime/cgo for adjustments to G. LGTM=khr R=khr, bradfitz CC=golang-codereviews, iant, r https://codereview.appspot.com/137410043
* runtime: a few cleanups.Keith Randall2014-09-081-2/+2
| | | | | | | LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://codereview.appspot.com/134630043
* build: move package sources from src/pkg to srcRuss Cox2014-09-081-0/+1227
Preparation was in CL 134570043. This CL contains only the effect of 'hg mv src/pkg/* src'. For more about the move, see golang.org/s/go14nopkg.