This changes the representation of a Go value of function type from being a pointer to function code (like a C function pointer) to being a pointer to a struct. The first field of the struct points to the function code. The remaining fields, if any, are the addresses of variables referenced in enclosing functions. For each call to a function, the address of the function descriptor is passed as the last argument. This lets us avoid generating trampolines, and removes the use of writable/executable sections of the heap. From-SVN: r200181
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
debug | Loading commit data... | |
pprof | Loading commit data... | |
append_test.go | Loading commit data... | |
chan_test.go | Loading commit data... | |
closure_test.go | Loading commit data... | |
compiler.go | Loading commit data... | |
complex_test.go | Loading commit data... | |
crash_cgo_test.go | Loading commit data... | |
crash_test.go | Loading commit data... | |
debug.go | Loading commit data... | |
error.go | Loading commit data... | |
export_test.go | Loading commit data... | |
extern.go | Loading commit data... | |
gc_test.go | Loading commit data... | |
iface_test.go | Loading commit data... | |
lfstack_test.go | Loading commit data... | |
malloc1.go | Loading commit data... | |
mallocrand.go | Loading commit data... | |
mallocrep.go | Loading commit data... | |
mallocrep1.go | Loading commit data... | |
mem.go | Loading commit data... | |
mfinal_test.go | Loading commit data... | |
mgc0.go | Loading commit data... | |
parfor_test.go | Loading commit data... | |
proc_test.go | Loading commit data... | |
runtime_test.go | Loading commit data... | |
softfloat64.go | Loading commit data... | |
softfloat64_test.go | Loading commit data... | |
string_test.go | Loading commit data... | |
symtab_test.go | Loading commit data... | |
type.go | Loading commit data... | |
vlop_arm_test.go | Loading commit data... |