On Fri, 2024-01-26 at 15:37 +0800, Lulu Cheng wrote: > +(define_insn "@load_tls<mode>" > [(set (match_operand:P 0 "register_operand" "=r") > (unspec:P > [(match_operand:P 1 "symbolic_operand" "")] > - UNSPEC_TLS_GD))] > + UNSPEC_TLS))]
/* snip */ > +{ > + enum loongarch_symbol_type symbol_type; > + gcc_assert (loongarch_symbolic_constant_p (operands[1], > &symbol_type)); /* snip */ > + switch (symbol_type) > + { > + case SYMBOL_TLS_LE: > + return "la.tls.le\t%0,%1"; > + case SYMBOL_TLS_IE: > + return "la.tls.ie\t%0,%1"; > + case SYMBOL_TLSLDM: > + return "la.tls.ld\t%0,%1"; > + case SYMBOL_TLSGD: > + return "la.tls.gd\t%0,%1"; /* snip */ > + default: > + gcc_unreachable (); > + } > +} > + [(set_attr "mode" "<MODE>") > + (set_attr "length" "2")]) Should be 8, it's in bytes. -- Xi Ruoyao <xry...@xry111.site> School of Aerospace Science and Technology, Xidian University