https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80881

--- Comment #31 from Julian Waters <tanksherman27 at gmail dot com> ---
(In reply to Eric Botcazou from comment #30)
> AFAICT the last missing piece is the configure check for the linker.

It's a bit of a shame I couldn't figure out how to make the zero extend
approach work correctly. That aside, I'm concerned that this patch still isn't
correct, because it doesn't seem to be using the parallel rtx correctly. From
what I can gather parallel is meant for multiple operations to run at the same
time, which crucially means results from one operation cannot be assumed to be
available for the next operation inside a parallel, which is exactly what this
patch is doing, since it's using the results from the first 2 instructions to
calculate the base thread pointer. I've tried to do this the "correct" way by
splitting the part of the thread pointer load that can be done in parallel into
one insn (In particular trying to use UNSPEC_PCREL) and the actual calculation
of the base pointer into another, but both insns are not recognized by gcc. I
don't know how to circumvent this issue at the moment

Reply via email to