[PATCH v2 1/5] LoongArch: bfd: Add support for tls le relax.
Xi Ruoyao
xry111@xry111.site
Sat Dec 2 07:20:46 GMT 2023
On Sat, 2023-12-02 at 14:53 +0800, changjiachen wrote:
> + switch (ELFNN_R_TYPE (rel_hi->r_info))
> + {
> + case R_LARCH_TLS_LE_HI20_R:
> + case R_LARCH_TLS_LE_ADD_R:
Format issue: "case" should be aligned with "{".
> + /* delete insn. */
> + rel_hi->r_info = ELFNN_R_INFO (ELFNN_R_SYM (rel_hi->r_info),
> + R_LARCH_DELETE);
IIRC R_LARCH_DELETE has caused some issues before, so Qinggang has
removed the uses of it. Are you sure using it is OK here or should we
just avoid it as well?
> + break;
> + case R_LARCH_TLS_LE_LO12_R:
> + /* Change rj to $tp. */
> + insn_rj = 0x2 << 5;
> + /* Get rd register. */
> + insn_rd = insn & 0x1f;
> + /* Write symbol offset. */
> + symval <<= 10;
> + /* Writes the modified instruction. */
> + insn = insn & 0xffc00000;
> + insn = insn | symval | insn_rj | insn_rd;
> + bfd_put (32, abfd, insn, contents + rel_hi->r_offset);
> + break;
> + default:
> + break;
> + }
--
Xi Ruoyao <xry111@xry111.site>
School of Aerospace Science and Technology, Xidian University
More information about the Binutils
mailing list