summaryrefslogtreecommitdiffstats
path: root/libiberty
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2013-06-18 23:49:49 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2013-06-18 23:49:49 +0000
commit8381eda7ff1e5a2874d708573654e64a4efcfb4f (patch)
tree1a7d38cd8be5484451189338ed6f4b76d8521f31 /libiberty
parent2851d736ebf1e8cceebb9106cab69d2c3fdc7624 (diff)
downloadppe42-gcc-8381eda7ff1e5a2874d708573654e64a4efcfb4f.tar.gz
ppe42-gcc-8381eda7ff1e5a2874d708573654e64a4efcfb4f.zip
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200181 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libiberty')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud