gcc/libgo/runtime
Ian Lance Taylor fdbc38a6e8 compiler, runtime: Use function descriptors.
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
2013-06-18 23:49:49 +00:00
..
arch.h
array.h
chan.c re PR go/46986 (Go is not supported on Darwin) 2013-01-24 19:44:23 +00:00
cpuprof.c re PR go/46986 (Go is not supported on Darwin) 2013-01-24 19:44:23 +00:00
defs.h
env_posix.c re PR go/46986 (Go is not supported on Darwin) 2013-01-24 19:44:23 +00:00
getncpu-bsd.c
getncpu-irix.c
getncpu-linux.c
getncpu-none.c
getncpu-solaris.c
go-alloc.h
go-append.c
go-assert-interface.c
go-assert.c
go-assert.h
go-breakpoint.c re PR go/46986 (Go is not supported on Darwin) 2013-01-24 19:44:23 +00:00
go-byte-array-to-string.c
go-caller.c runtime: In backtraces, get inline functions, skip split-stack fns. 2013-01-30 22:24:40 +00:00
go-callers.c runtime: Correct handling of runtime.Callers skip parameter. 2013-02-02 15:11:48 +00:00
go-can-convert-interface.c
go-cgo.c re PR go/46986 (Go is not supported on Darwin) 2013-01-24 19:44:23 +00:00
go-check-interface.c
go-construct-map.c
go-convert-interface.c
go-copy.c
go-defer.c
go-defer.h
go-deferred-recover.c
go-eface-compare.c
go-eface-val-compare.c
go-fieldtrack.c re PR go/46986 (Go is not supported on Darwin) 2013-01-24 19:44:23 +00:00
go-getgoroot.c re PR go/46986 (Go is not supported on Darwin) 2013-01-24 19:44:23 +00:00
go-int-array-to-string.c
go-int-to-string.c
go-interface-compare.c
go-interface-eface-compare.c
go-interface-val-compare.c
go-main.c
go-make-slice.c
go-map-delete.c runtime: Delete from a nil map is now a no-op. 2012-12-12 23:29:10 +00:00
go-map-index.c
go-map-len.c
go-map-range.c
go-matherr.c
go-memcmp.c
go-nanotime.c
go-new-map.c
go-new.c
go-nosys.c libgo: Update Go library to master revision 15489/921e53d4863c. 2013-01-29 20:52:43 +00:00
go-now.c re PR go/46986 (Go is not supported on Darwin) 2013-01-24 19:44:23 +00:00
go-panic.c
go-panic.h
go-print.c
go-recover.c
go-reflect-call.c compiler, runtime: Use function descriptors. 2013-06-18 23:49:49 +00:00
go-reflect-map.c re PR go/46986 (Go is not supported on Darwin) 2013-01-24 19:44:23 +00:00
go-rune.c
go-runtime-error.c
go-setenv.c libgo: Update Go library to master revision 15489/921e53d4863c. 2013-01-29 20:52:43 +00:00
go-signal.c re PR go/46986 (Go is not supported on Darwin) 2013-01-24 19:44:23 +00:00
go-strcmp.c
go-string-to-byte-array.c
go-string-to-int-array.c
go-string.h
go-strplus.c
go-strslice.c
go-traceback.c runtime: In backtraces, get inline functions, skip split-stack fns. 2013-01-30 22:24:40 +00:00
go-trampoline.c libgo: Update to revision 15193:6fdc1974457c of master library. 2012-12-22 01:15:33 +00:00
go-type-complex.c
go-type-eface.c
go-type-error.c
go-type-float.c
go-type-identity.c
go-type-interface.c
go-type-string.c
go-type.h
go-typedesc-equal.c
go-typestring.c re PR go/46986 (Go is not supported on Darwin) 2013-01-24 19:44:23 +00:00
go-unsafe-new.c re PR go/46986 (Go is not supported on Darwin) 2013-01-24 19:44:23 +00:00
go-unsafe-newarray.c re PR go/46986 (Go is not supported on Darwin) 2013-01-24 19:44:23 +00:00
go-unsafe-pointer.c re PR go/46986 (Go is not supported on Darwin) 2013-01-24 19:44:23 +00:00
go-unwind.c
goc2c.c runtime: Change main in goc2c to return int. 2013-02-07 22:24:34 +00:00
iface.goc
interface.h
lfstack.c re PR go/56320 (Several libgo tests FAIL on 64-bit Solaris/x86) 2013-02-20 19:45:10 +00:00
lock_futex.c libgo: Update Go library to master revision 15489/921e53d4863c. 2013-01-29 20:52:43 +00:00
lock_sema.c
malloc.goc libgo: Update Go library to master revision 15489/921e53d4863c. 2013-01-29 20:52:43 +00:00
malloc.h compiler, runtime: Use function descriptors. 2013-06-18 23:49:49 +00:00
map.goc
map.h
mcache.c
mcentral.c libgo: Update Go library to master revision 15489/921e53d4863c. 2013-01-29 20:52:43 +00:00
mem_posix_memalign.c
mem.c runtime: Do not reserve huge amount of swap on 32 bit architectures. 2013-02-15 18:55:09 +00:00
mfinal.c compiler, runtime: Use function descriptors. 2013-06-18 23:49:49 +00:00
mfixalloc.c
mgc0.c compiler, runtime: Use function descriptors. 2013-06-18 23:49:49 +00:00
mgc0.h libgo: Update to revision 15193:6fdc1974457c of master library. 2012-12-22 01:15:33 +00:00
mheap.c re PR go/56172 (net FAILs on Solaris) 2013-02-05 23:59:24 +00:00
mprof.goc runtime: In backtraces, get inline functions, skip split-stack fns. 2013-01-30 22:24:40 +00:00
msize.c
panic.c libgo: Update Go library to master revision 15502/229081515358. 2013-01-30 01:37:13 +00:00
parfor.c compiler, runtime: Use function descriptors. 2013-06-18 23:49:49 +00:00
print.c runtime: Fix build failures with -D_FORTIFY_SOURCE=2. 2012-12-04 06:18:07 +00:00
proc.c runtime: Don't block SIGTRAP while creating a new thread. 2013-02-28 21:56:14 +00:00
race.h libgo: Update to current master library sources. 2012-12-12 23:13:29 +00:00
reflect.goc
rtems-task-variable-add.c
runtime1.goc
runtime.c libgo: Update Go library to master revision 15502/229081515358. 2013-01-30 01:37:13 +00:00
runtime.h compiler, runtime: Use function descriptors. 2013-06-18 23:49:49 +00:00
sema.goc
signal_unix.c
sigqueue.goc libgo: Update Go library to master revision 15489/921e53d4863c. 2013-01-29 20:52:43 +00:00
string.goc runtime: In backtraces, get inline functions, skip split-stack fns. 2013-01-30 22:24:40 +00:00
thread-linux.c
thread-sema.c
thread.c
time.goc compiler, runtime: Use function descriptors. 2013-06-18 23:49:49 +00:00
yield.c