As we have discussed on the patch submission, I'm going to be back porting the IEEE 128-bit changes that we've made recently in the trunk to the GCC 8.x branch. The motivation is to allow distributions to switch to IEEE 128-bit long double without having to wait for the GCC 9.1 compiler.
I'm sending out these patches in terms of the submission to the FSF trunk. I will probably wait a few days before committing the patches just in case something major was broken. Patch #1 is the May 21st submission. Note, in this patch, we had 3 separate types activelly used (__ibm128, __float128, and long double). However we eventually decided we only wanted to use 2 types, and this changed in Patch #2. Patch #2 is the June 1-8th changes by me (Michael Meissner), Segher Boessenkool and David Edelsohn. In the second set of changed we changed this to the current two active types, one of which is the long double type, and other is the alternate type. We also changed the C++ mangling of the float128 type (and long double if it uses the IEEE 128-bit encoding) from "U10__float128" to "u9__ieee128". We put out weak aliases so that old code could still call functions compiled with the new compiler. Patch #3 is the change committed on June 18th that reworks the internal ordering of the 128-bit binary floating point types. This prevents the machine independent portions of the compiler trying to convert __ibm128 data to __float128 if you are running on a Power9 (ISA 3.0) system that has 128-bit hardware floating point support. Patch #4 will be a collection of small patches to fix some problems that were noticed in running the test suite with the long double default changed to IEEE 128-bit floating point. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.ibm.com, phone: +1 (978) 899-4797