On Sat, Mar 17, 2012 at 11:10 AM, Uros Bizjak <ubiz...@gmail.com> wrote: > On Sun, Mar 11, 2012 at 6:11 PM, H.J. Lu <hjl.to...@gmail.com> wrote: > >> Since we must use reg64 in %fs:(%reg) memory operand like >> >> movq x@gottpoff(%rip),%reg64; >> mov %fs:(%reg64),%reg >> >> this patch optimizes x32 TLS IE load and store by wrapping >> %reg64 inside of UNSPEC when Pmode == SImode. OK for >> trunk? >> >> Thanks. >> >> -- >> H.J. >> --- >> 2012-03-11 H.J. Lu <hongjiu...@intel.com> >> >> * config/i386/i386.md (*tls_initial_exec_x32_load): New. >> (*tls_initial_exec_x32_store): Likewise. > > Can you implement this with define_insn_and_split, like i.e. > *tls_dynamic_gnu2_combine_32 ? >
I will give it a try again. Last time when I tried it, GCC didn't like memory operand in DImode when Pmode == SImode. -- H.J.