[Bug target/84010] [sparc64] Problematic TLS code generation
jrtc27 at jrtc27 dot com
gcc-bugzilla@gcc.gnu.org
Wed Jan 24 16:08:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84010
--- Comment #5 from James Clarke <jrtc27 at jrtc27 dot com> ---
My patch seems to work for this case:
sethi %tie_hi22(tcg_ctx), %g2
...
add %g2, %tie_lo10(tcg_ctx), %g1
ldx [%l7 + %g1], %g1, %tie_ldx(tcg_ctx)
stx %g2, [%fp+1783] ! note this is %g2, i.e. just the hi22...
call gen_new_label, 0
ldx [%g7+%g1], %i5
...
ldx [%fp+1783], %g1 ! reload the hi22
add %g1, %tie_lo10(tcg_ctx), %i5
ldx [%l7 + %i5], %i5, %tie_ldx(tcg_ctx)
ldx [%g7+%i5], %g1
The code gen is something else; I don't understand why it spills the result of
the hi22 and re-adds the lo10 (which takes the worst aspects of
rematerialisation and spilling), but that's a whole other story.
More information about the Gcc-bugs
mailing list