The x86/x86_64 implementation of expl uses a long inline asm inside a
C source file.
I don't think this is generally a good practice, it may offer some
marginal convenience for accessing operands where the precise syntax
varies between PIC and non-PIC, or x86 and x86_64, but it makes the
code less flexible and harder to modify than either plain C code or a
pure .S file, and we have macros to simplify writing such things as
PIC accesses in .S files. When you want to add additional constant
operands, or checks directly on the binary representation of the
floating-point value, as part of fixing bugs, requiring everything to
be specified as asm operands rather than just writing the desired
instruction sequences directly rather gets in the way.
Thus, I propose this patch which moves expl to using separate .S files
for x86 and x86_64, the usual approach for the bulk of the other
x86/x86_64 long double functions with assembly implementations, which
works fine for them. Tested x86 and x86_64.