gcc/libgo/runtime
Ian Lance Taylor 1fec5f5274 libgo: add s390 support
From Dominik Vogt.

* libgo/go/syscall/libcall_linux_s390.go: New file for s390 support.
* libgo/go/syscall/syscall_linux_s390.go: Ditto.
* libgo/go/syscall/libcall_linux_s390x.go: New file for s390x support.
* libgo/go/syscall/syscall_linux_s390x.go: Ditto.
* libgo/go/runtime/pprof/pprof.go (printStackRecord): Support s390 and
s390x.
* libgo/runtime/runtime.c (runtime_cputicks): Add support for s390 and
s390x
* libgo/mksysinfo.sh: Ditto.
(upcase_fields): New helper function

* libgo/go/debug/elf/file.go (applyRelocations): Implement relocations
on s390x.
(applyRelocationsS390x): Ditto.
(DWARF): Ditto.
* libgo/go/debug/elf/elf.go (R_390): New constants for S390 relocations.
(r390Strings): Ditto.
(String): Helper function for S390 relocations.
(GoString): Ditto.

* libgo/go/reflect/makefuncgo_s390.go: New file.
(S390MakeFuncStubGo): Implementation of s390 abi.
* libgo/go/reflect/makefuncgo_s390x.go: New file.
(S390xMakeFuncStubGo): Implementation of s390x abi.
* libgo/go/reflect/makefunc_s390.c: New file.
(makeFuncStub): s390 and s390x specific implementation of function.
* libgo/go/reflect/makefunc.go
(MakeFunc): Add support for s390 and s390x.
(makeMethodValue): Ditto.
(makeValueMethod): Ditto.
* libgo/Makefile.am (go_reflect_makefunc_s_file): Ditto.
(go_reflect_makefunc_file): Ditto.
* libgo/go/reflect/makefunc_dummy.c: Ditto.
* libgo/runtime/runtime.h (__go_makefunc_can_recover): Export prototype
for use in makefunc_s390.c.
(__go_makefunc_returning): Ditto.

* libgo/go/syscall/exec_linux.go (forkAndExecInChild): Fix order of the
arguments of the clone system call for s390[x].

* libgo/configure.ac (is_s390): New variable.
(is_s390x): Ditto
(LIBGO_IS_S390): Ditto.
(LIBGO_IS_S390X): Ditto.
(GOARCH): Support s390 and s390x.
* libgo/go/go/build/build.go (cgoEnabled): Ditto.
* libgo/go/go/build/syslist.go (goarchList): Ditto.

From-SVN: r217106
2014-11-04 22:39:30 +00:00
..
arch.h
array.h compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
chan.c libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
chan.goc libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
chan.h runtime: Merge master revision 19185. 2014-07-12 00:01:09 +00:00
cpuprof.c libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
cpuprof.goc libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
defs.h
env_posix.c libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
getncpu-bsd.c
getncpu-irix.c
getncpu-linux.c runtime: Check for CPU_COUNT itself, don't check glibc version. 2014-10-03 05:04:59 +00:00
getncpu-none.c
getncpu-solaris.c
go-alloc.h
go-append.c libgo: Merge to master revision 19184. 2014-06-06 22:37:27 +00:00
go-assert-interface.c compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
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 libgo: Update to October 24 version of master library. 2013-11-06 19:49:01 +00:00
go-caller.c re PR other/61895 (libbacktrace crashes with bus error with empty file argv[0]) 2014-08-02 00:54:15 +00:00
go-callers.c reflect, runtime: Use libffi closures to implement reflect.MakeFunc. 2014-07-19 21:36:26 +00:00
go-can-convert-interface.c compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
go-cdiv.c runtime: fix misc gcc-isms and undefined behavior 2014-05-28 23:10:47 +00:00
go-cgo.c runtime: Merge master revision 19185. 2014-07-12 00:01:09 +00:00
go-check-interface.c compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
go-construct-map.c compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
go-convert-interface.c compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
go-copy.c
go-defer.c re PR go/60406 (recover.go: test13reflect2 test failure) 2014-10-08 14:03:13 +00:00
go-defer.h libgo: Merge to master revision 19184. 2014-06-06 22:37:27 +00:00
go-deferred-recover.c
go-eface-compare.c runtime: Drop reflectFlags tests. 2014-07-11 00:26:25 +00:00
go-eface-val-compare.c runtime: Drop reflectFlags tests. 2014-07-11 00:26:25 +00:00
go-ffi.c reflect, runtime: Use libffi closures to implement reflect.MakeFunc. 2014-07-19 21:36:26 +00:00
go-ffi.h reflect, runtime: Use libffi closures to implement reflect.MakeFunc. 2014-07-19 21:36:26 +00:00
go-fieldtrack.c re PR go/46986 (Go is not supported on Darwin) 2013-01-24 19:44:23 +00:00
go-iface.goc runtime: Rename iface.goc to go-iface.goc. 2014-07-11 00:39:03 +00:00
go-int-array-to-string.c runtime: Fix handling of surrogate pairs in string([]rune). 2013-11-26 23:27:29 +00:00
go-int-to-string.c libgo: Update to October 24 version of master library. 2013-11-06 19:49:01 +00:00
go-interface-compare.c compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
go-interface-eface-compare.c runtime: Drop reflectFlags tests. 2014-07-11 00:26:25 +00:00
go-interface-val-compare.c compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
go-main.c libgo: Update to Go 1.1.1. 2013-07-16 06:54:42 +00:00
go-make-slice.c libgo: Update to October 24 version of master library. 2013-11-06 19:49:01 +00:00
go-map-delete.c re PR go/61620 (FAIL: go.test/test/fixedbugs/bug242.go execution, -O2 -g) 2014-07-02 14:23:45 +00:00
go-map-index.c libgo: Update to Go 1.1.1. 2013-07-16 06:54:42 +00:00
go-map-len.c compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
go-map-range.c compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
go-matherr.c
go-memcmp.c compiler, runtime: Memcmp routine returns intgo. 2012-11-06 18:12:45 +00:00
go-nanotime.c
go-new-map.c compiler, libgo: Fixes to prepare for 64-bit int. 2012-11-06 18:28:21 +00:00
go-new.c compiler, runtime: Add type information to single object allocation. 2014-10-20 19:12:44 +00:00
go-nosys.c runtime: Fix typo in dup3 fallback implementation. 2013-10-18 13:26:40 +00:00
go-now.c libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
go-panic.c libgo: Merge to master revision 19184. 2014-06-06 22:37:27 +00:00
go-panic.h re PR go/60406 (recover.go: test13reflect2 test failure) 2014-10-08 14:03:13 +00:00
go-print.c compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
go-recover.c re PR go/60406 (recover.go: test13reflect2 test failure) 2014-10-08 14:03:13 +00:00
go-reflect-call.c reflect, runtime: Use libffi closures to implement reflect.MakeFunc. 2014-07-19 21:36:26 +00:00
go-reflect-map.c libgo: Merge from revision 18783:00cce3a34d7e of master library. 2014-06-04 23:15:33 +00:00
go-rune.c compiler, libgo: Fixes to prepare for 64-bit int. 2012-11-06 18:28:21 +00:00
go-runtime-error.c compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
go-setenv.c libgo: Merge to master revision 19184. 2014-06-06 22:37:27 +00:00
go-signal.c libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
go-strcmp.c compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
go-string-to-byte-array.c libgo: Merge to master revision 19184. 2014-06-06 22:37:27 +00:00
go-string-to-int-array.c libgo: Merge to master revision 19184. 2014-06-06 22:37:27 +00:00
go-string.h compiler, libgo: Fixes to prepare for 64-bit int. 2012-11-06 18:28:21 +00:00
go-strplus.c libgo: Update to October 24 version of master library. 2013-11-06 19:49:01 +00:00
go-strslice.c compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
go-traceback.c reflect, runtime: Use libffi closures to implement reflect.MakeFunc. 2014-07-19 21:36:26 +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 runtime: fix misc gcc-isms and undefined behavior 2014-05-28 23:10:47 +00:00
go-type-eface.c runtime: Drop reflectFlags tests. 2014-07-11 00:26:25 +00:00
go-type-error.c
go-type-float.c runtime: fix misc gcc-isms and undefined behavior 2014-05-28 23:10:47 +00:00
go-type-identity.c compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
go-type-interface.c compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
go-type-string.c compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
go-type.h compiler: Add precise type information on the heap. 2014-09-03 22:56:09 +00:00
go-typedesc-equal.c compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
go-unsafe-new.c libgo: Update to Go 1.1.1. 2013-07-16 06:54:42 +00:00
go-unsafe-newarray.c libgo: Update to Go 1.1.1. 2013-07-16 06:54:42 +00:00
go-unsafe-pointer.c runtime: Use correct size for unsafe.Pointer GC instructions. 2014-09-05 14:43:24 +00:00
go-unwind.c libgo: Merge to master revision 19184. 2014-06-06 22:37:27 +00:00
go-varargs.c libgo: Merge to master revision 19184. 2014-06-06 22:37:27 +00:00
goc2c.c runtime: Merge master revision 19185. 2014-07-12 00:01:09 +00:00
heapdump.c libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
interface.h compiler, runtime: More steps toward separating int and intgo. 2012-11-01 03:02:13 +00:00
lfstack.c libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
lfstack.goc runtime: Merge master revision 19185. 2014-07-12 00:01:09 +00:00
lock_futex.c libgo: Merge to master revision 19184. 2014-06-06 22:37:27 +00:00
lock_sema.c libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
malloc.goc compiler, runtime: Fix unexpected GC interfering with closure passing. 2014-08-13 22:31:44 +00:00
malloc.h libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
map.goc
map.h
mcache.c libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
mcentral.c libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
mem_posix_memalign.c
mem.c runtime: Add casts to mincore call to compile on Solaris. 2014-08-04 17:54:09 +00:00
mfixalloc.c libgo: Update to October 24 version of master library. 2013-11-06 19:49:01 +00:00
mgc0.c runtime: Restore copyright notice accidentally removed from mgc0.c. 2014-09-20 20:42:59 +00:00
mgc0.h libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
mheap.c libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
mprof.goc reflect, runtime: Use libffi closures to implement reflect.MakeFunc. 2014-07-19 21:36:26 +00:00
msize.c libgo: Merge to master revision 19184. 2014-06-06 22:37:27 +00:00
netpoll_epoll.c libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
netpoll_kqueue.c libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
netpoll_select.c libgo: Merge to master revision 19184. 2014-06-06 22:37:27 +00:00
netpoll_stub.c libgo: Merge to master revision 19184. 2014-06-06 22:37:27 +00:00
netpoll.goc libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
panic.c re PR go/60406 (recover.go: test13reflect2 test failure) 2014-10-08 14:03:13 +00:00
parfor.c runtime: Merge master revision 19185. 2014-07-12 00:01:09 +00:00
print.c runtime: also disable split stacks for runtime_snprintf function under Clang 2014-07-20 09:24:16 +00:00
proc.c runtime: Don't create threads with a small stack. 2014-10-16 22:39:45 +00:00
race.h libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
rdebug.goc libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
reflect.goc runtime: Drop reflectFlags tests. 2014-07-11 00:26:25 +00:00
rtems-task-variable-add.c
runtime1.goc runtime: Merge master revision 19185. 2014-07-12 00:01:09 +00:00
runtime.c libgo: add s390 support 2014-11-04 22:39:30 +00:00
runtime.h compiler: Add precise type information on the heap. 2014-09-03 22:56:09 +00:00
sema.goc libgo: Merge to master revision 19184. 2014-06-06 22:37:27 +00:00
signal_unix.c libgo: Merge to master revision 19184. 2014-06-06 22:37:27 +00:00
signal_unix.h libgo: Update to Go 1.1.1. 2013-07-16 06:54:42 +00:00
sigqueue.goc libgo: Update to October 24 version of master library. 2013-11-06 19:49:01 +00:00
string.goc runtime: Merge master revision 19185. 2014-07-12 00:01:09 +00:00
thread-linux.c libgo: Update to October 24 version of master library. 2013-11-06 19:49:01 +00:00
thread-sema.c
thread.c libgo: Update to Go 1.1.1. 2013-07-16 06:54:42 +00:00
time.goc libgo: Update to Go 1.3 release. 2014-07-19 08:53:52 +00:00
yield.c runtime: Use _mm_pause rather than __builtin_ia32_pause. 2014-05-30 13:53:58 +00:00