gcc/libgo/go
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
..
archive
bufio
builtin
bytes
compress
container
crypto
database/sql
debug
encoding
errors
exp
expvar
flag
fmt
go
hash
html
image
index/suffixarray
io
log
math
mime
net
old
os
path
reflect
regexp
runtime
sort
strconv
strings
sync
syscall
testing
text
time
unicode