This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 01/12/2016 08:53 AM, Richard Henderson wrote:
The problem in this PR is that we never got around to flushing out the vector support for transactions for anything but x86. My goal here is to make this as generic as possible, so that it should Just Work with existing vector support in the backend. In addition, if I encounter other unexpected register types, I will now copy them to memory and use memcpy, rather than crash. The one piece of this that requires a tiny bit of extra work is enabling the vector entry points in libitm. For x86, we make sure to build the files with SSE or AVX support enabled. For s390x, I do the same thing, enabling z13 support. I suppose we might need to check for binutils support, but I'd rather do this only if necessary. For arm I'm less sure what to do, since I seem to recall that use of Neon sets a bit in the ELF header. Which presumably means that the binary could no longer be run without neon, even though the entry points wouldn't be used. For powerpc, I don't know how to select Altivec if VSX isn't already enabled, or indeed if that's the best thing to do.
Based on feedback from dje, I now force -maltivec for the file; if the compilation flags already select power8 or the like, we continue to use vsx instructions in the file.
I don't see an easy way to produce a universal build for arm32. It may well be possible to do with extra effort. If someone else would like to have a go, that's fine. But given how gcc is built for the various distributions, I think it could be a waste of time. Normally neon is going to be enabled or disabled at configure time, depending on the platform that is being targeted.
Re-tested on x86_64, ppc64, s390x, and armv7l-linux-gnueabihf and committed. r~
Attachment:
d-68964-2
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |