On Mon, Jan 21, 2019 at 10:48:57PM +1030, Alan Modra wrote:
> On Mon, Jan 21, 2019 at 12:08:33AM +1030, Alan Modra wrote:
> > Hmm, if I invent a couple of new unspecs, UNSPEC_TLSGD_NOMARK and
> > UNSPEC_TLSLD_NOMARK, using them in place of UNSPEC_TLSGD and
> > UNSPEC_TLSLD when !TARGET_TLS_MARKERS then that should be enough to
> > tell when we have a -mno-tls-markers __tls_get_addr call.  So I guess
> > I could kill off edit_tls_call_insn and tls_gdld_nomark.  The
> > call_value_local and call_value_indirect insns would then need to
> > detect the special call and emit the arg setup insns.
> 
> Here's what the revised approach looks like, but without using new
> unspecs.  Bootstrap and regression test on powerpc64le-linux and
> powerpc64-linux biarch completed, and testing on powerpc64le-linux
> with -mno-tls-markers.  powerpc64-linux -mno-tls-markers testing still
> in progress.  OK?

This is easier to grok, thanks.

I think this would be nicer if you still used insn alternatives here.
What is needed for that?

> +void
> +rs6000_output_tlsargs (rtx *operands)
> +{
> +  rtx op[3];

Maybe comment what this temporary is for?

The patch is okay for trunk (if it survives on at least all three linux
targets).  Thanks!


Segher

Reply via email to