PR go/79037
commit5785236764921a60320622d6a63dd52ef4fb23ac
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Jan 2017 18:15:22 +0000 (23 18:15 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Jan 2017 18:15:22 +0000 (23 18:15 +0000)
tree807c3b6f6779fa8ab24d85323f1593d91af510de
parenta23d48fd11c7313cc7f71ef0937a75000cf1fb53
PR go/79037
    compiler, runtime: align gc data for m68k

    The current GC requires that the gc data be aligned to at least a 4
    byte boundary, because it uses the lower two bits of the address for
    flags (see LOOP and PRECISE in runtime/mgc0.c).  As the gc data is
    stored as a [...]uintptr, that is normally always true.  However, on
    m68k, that only guarantees 2 byte alignment.  Fix it by forcing the
    alignment.

    The parfor code used by the current GC requires that the parfor data
    be aligned to at least an 8 byte boundary.  The code in parfor.c
    verifies this.  This is normally true, as the data uses uint64_t
    values, but, again, this must be enforced explicitly on m68k.

    Fixes GCC PR 79037.

    Reviewed-on: https://go-review.googlesource.com/35478

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@244824 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/types.cc
libgo/runtime/go-unsafe-pointer.c
libgo/runtime/parfor.c
libgo/runtime/runtime.h