r219776 - in /trunk: gcc/go/ChangeLog gcc/go/go...
ian@gcc.gnu.org
ian@gcc.gnu.org
Fri Jan 16 22:58:00 GMT 2015
Author: ian
Date: Fri Jan 16 22:58:53 2015
New Revision: 219776
URL: https://gcc.gnu.org/viewcvs?rev=219776&root=gcc&view=rev
Log:
compiler, reflect, runtime: Use static chain for closures.
Change from using __go_set_closure to passing the closure
value in the static chain field. Uses new backend support for
setting the closure chain in a call from C via
__builtin_call_with_static_chain. Uses new support in libffi
for Go closures.
The old architecture specific support for reflect.MakeFunc is
removed, replaced by the libffi support.
All work done by Richard Henderson.
* go-gcc.cc (Gcc_backend::call_expression): Add chain_expr argument.
(Gcc_backend::static_chain_variable): New method.
Removed:
trunk/libgo/go/reflect/makefunc_386.S
trunk/libgo/go/reflect/makefunc_amd64.S
trunk/libgo/go/reflect/makefunc_dummy.c
trunk/libgo/go/reflect/makefunc_s390.c
trunk/libgo/go/reflect/makefuncgo_386.go
trunk/libgo/go/reflect/makefuncgo_amd64.go
trunk/libgo/go/reflect/makefuncgo_s390.go
trunk/libgo/go/reflect/makefuncgo_s390x.go
Modified:
trunk/gcc/go/ChangeLog
trunk/gcc/go/go-gcc.cc
trunk/gcc/go/gofrontend/backend.h
trunk/gcc/go/gofrontend/expressions.cc
trunk/gcc/go/gofrontend/gogo.cc
trunk/gcc/go/gofrontend/gogo.h
trunk/gcc/go/gofrontend/runtime.def
trunk/libgo/Makefile.am
trunk/libgo/Makefile.in
trunk/libgo/go/reflect/makefunc.go
trunk/libgo/go/reflect/makefunc_ffi.go
trunk/libgo/go/reflect/makefunc_ffi_c.c
trunk/libgo/go/reflect/value.go
trunk/libgo/runtime/go-ffi.c
trunk/libgo/runtime/go-reflect-call.c
trunk/libgo/runtime/malloc.goc
trunk/libgo/runtime/mgc0.c
trunk/libgo/runtime/proc.c
trunk/libgo/runtime/runtime.h
trunk/libgo/runtime/time.goc
More information about the Gcc-cvs
mailing list