Re: [PATCH v4] LoongArch: Add support for TLS descriptors

2024-03-13 Thread Xi Ruoyao
On Wed, 2024-03-13 at 10:24 +0800, Xi Ruoyao wrote: >    return TARGET_EXPLICIT_RELOCS > -    ? "pcalau12i\t$r4,%%desc_pc_hi20(%1)\n\ > -  \taddi.d\t%2,$r0,%%desc_pc_lo12(%1)\n\ > -  \tlu32i.d\t%2,%%desc64_pc_lo20(%1)\n\ > -  \tlu52i.d\t%2,%2,%%desc64_pc_hi12(%1)\n\ > - 

Re: [PATCH v4] LoongArch: Add support for TLS descriptors

2024-03-13 Thread Xi Ruoyao
On Wed, 2024-03-13 at 11:06 +0800, mengqinggang wrote: > > 在 2024/3/13 上午6:15, Xi Ruoyao 写道: > > On Tue, 2024-03-12 at 17:20 +0800, mengqinggang wrote: > > > +(define_insn "@got_load_tls_desc" > > > +  [(set (match_operand:P 0 "register_operand" "=r") > > > + (unspec:P > > > +    

Re: [PATCH v4] LoongArch: Add support for TLS descriptors

2024-03-12 Thread mengqinggang
在 2024/3/13 上午6:15, Xi Ruoyao 写道: On Tue, 2024-03-12 at 17:20 +0800, mengqinggang wrote: +(define_insn "@got_load_tls_desc" +  [(set (match_operand:P 0 "register_operand" "=r") + (unspec:P +     [(match_operand:P 1 "symbolic_operand" "")] +     UNSPEC_TLS_DESC)) +   

Re: [PATCH v4] LoongArch: Add support for TLS descriptors

2024-03-12 Thread Xi Ruoyao
On Wed, 2024-03-13 at 06:56 +0800, Xi Ruoyao wrote: > On Wed, 2024-03-13 at 06:15 +0800, Xi Ruoyao wrote: > > > +(define_insn "@got_load_tls_desc" > > > +  [(set (match_operand:P 0 "register_operand" "=r") > > Hmm, and it looks like we should use (reg:P 4) instead of match_operand > here, because

Re: [PATCH v4] LoongArch: Add support for TLS descriptors

2024-03-12 Thread Xi Ruoyao
On Wed, 2024-03-13 at 06:15 +0800, Xi Ruoyao wrote: > > +(define_insn "@got_load_tls_desc" > > +  [(set (match_operand:P 0 "register_operand" "=r") Hmm, and it looks like we should use (reg:P 4) instead of match_operand here, because the instruction does not work for a different register: with

Re: [PATCH v4] LoongArch: Add support for TLS descriptors

2024-03-12 Thread Xi Ruoyao
On Tue, 2024-03-12 at 17:20 +0800, mengqinggang wrote: > +(define_insn "@got_load_tls_desc" > +  [(set (match_operand:P 0 "register_operand" "=r") > + (unspec:P > +     [(match_operand:P 1 "symbolic_operand" "")] > +     UNSPEC_TLS_DESC)) > +    (clobber (reg:SI FCC0_REGNUM)) > +   

[PATCH v4] LoongArch: Add support for TLS descriptors

2024-03-12 Thread mengqinggang
Add support for TLS descriptors on normal code model and extreme code model. Normal code model instruction sequence: -mno-explicit-relocs: la.tls.desc $r4, s add.d $r12, $r4, $r2 -mexplicit-relocs: pcalau12i $r4,%desc_pc_hi20(s) addi.d $r4,$r4,%desc_pc_lo12(s)