From 05845747971c0163c435c35ae8ada07c0fb3b7a8 Mon Sep 17 00:00:00 2001 From: limeidan Date: Wed, 11 Oct 2023 18:00:04 +0800 Subject: [PATCH] cmd/internal, cmd/link: unify the relocation naming style of loong64 Change-Id: I2990701e71a63af7bdd6851b6008dc63cb1c1a83 Reviewed-on: https://go-review.googlesource.com/c/go/+/535616 Reviewed-by: abner chenc LUCI-TryBot-Result: Go LUCI Reviewed-by: Michael Pratt Reviewed-by: sophie zhao Reviewed-by: Cherry Mui Run-TryBot: Cherry Mui TryBot-Result: Gopher Robot --- src/cmd/internal/obj/loong64/asm.go | 28 ++++++------ src/cmd/internal/objabi/reloctype.go | 24 +++++----- src/cmd/internal/objabi/reloctype_string.go | 14 +++--- src/cmd/link/internal/loong64/asm.go | 49 ++++++++++----------- 4 files changed, 56 insertions(+), 59 deletions(-) diff --git a/src/cmd/internal/obj/loong64/asm.go b/src/cmd/internal/obj/loong64/asm.go index 64c9226079..f0f8abb59c 100644 --- a/src/cmd/internal/obj/loong64/asm.go +++ b/src/cmd/internal/obj/loong64/asm.go @@ -1607,7 +1607,7 @@ func (c *ctxt0) asmout(p *obj.Prog, o *Optab, out []uint32) { rel.Siz = 4 rel.Sym = p.To.Sym rel.Add = p.To.Offset - rel.Type = objabi.R_ADDRLOONG64U + rel.Type = objabi.R_LOONG64_ADDR_HI o2 = OP_12IRR(c.opirr(p.As), uint32(0), uint32(REGTMP), uint32(p.From.Reg)) rel2 := obj.Addrel(c.cursym) @@ -1615,7 +1615,7 @@ func (c *ctxt0) asmout(p *obj.Prog, o *Optab, out []uint32) { rel2.Siz = 4 rel2.Sym = p.To.Sym rel2.Add = p.To.Offset - rel2.Type = objabi.R_ADDRLOONG64 + rel2.Type = objabi.R_LOONG64_ADDR_LO case 51: // mov addr,r ==> pcalau12i + lw o1 = OP_IR(c.opir(APCALAU12I), uint32(0), uint32(REGTMP)) @@ -1624,14 +1624,14 @@ func (c *ctxt0) asmout(p *obj.Prog, o *Optab, out []uint32) { rel.Siz = 4 rel.Sym = p.From.Sym rel.Add = p.From.Offset - rel.Type = objabi.R_ADDRLOONG64U + rel.Type = objabi.R_LOONG64_ADDR_HI o2 = OP_12IRR(c.opirr(-p.As), uint32(0), uint32(REGTMP), uint32(p.To.Reg)) rel2 := obj.Addrel(c.cursym) rel2.Off = int32(c.pc + 4) rel2.Siz = 4 rel2.Sym = p.From.Sym rel2.Add = p.From.Offset - rel2.Type = objabi.R_ADDRLOONG64 + rel2.Type = objabi.R_LOONG64_ADDR_LO case 52: // mov $lext, r // NOTE: this case does not use REGTMP. If it ever does, @@ -1642,14 +1642,14 @@ func (c *ctxt0) asmout(p *obj.Prog, o *Optab, out []uint32) { rel.Siz = 4 rel.Sym = p.From.Sym rel.Add = p.From.Offset - rel.Type = objabi.R_ADDRLOONG64U + rel.Type = objabi.R_LOONG64_ADDR_HI o2 = OP_12IRR(c.opirr(add), uint32(0), uint32(p.To.Reg), uint32(p.To.Reg)) rel2 := obj.Addrel(c.cursym) rel2.Off = int32(c.pc + 4) rel2.Siz = 4 rel2.Sym = p.From.Sym rel2.Add = p.From.Offset - rel2.Type = objabi.R_ADDRLOONG64 + rel2.Type = objabi.R_LOONG64_ADDR_LO case 53: // mov r, tlsvar ==> lu12i.w + ori + add r2, regtmp + sw o(regtmp) // NOTE: this case does not use REGTMP. If it ever does, @@ -1660,14 +1660,14 @@ func (c *ctxt0) asmout(p *obj.Prog, o *Optab, out []uint32) { rel.Siz = 4 rel.Sym = p.To.Sym rel.Add = p.To.Offset - rel.Type = objabi.R_ADDRLOONG64TLSU + rel.Type = objabi.R_LOONG64_TLS_LE_HI o2 = OP_12IRR(c.opirr(AOR), uint32(0), uint32(REGTMP), uint32(REGTMP)) rel2 := obj.Addrel(c.cursym) rel2.Off = int32(c.pc + 4) rel2.Siz = 4 rel2.Sym = p.To.Sym rel2.Add = p.To.Offset - rel2.Type = objabi.R_ADDRLOONG64TLS + rel2.Type = objabi.R_LOONG64_TLS_LE_LO o3 = OP_RRR(c.oprrr(AADDV), uint32(REG_R2), uint32(REGTMP), uint32(REGTMP)) o4 = OP_12IRR(c.opirr(p.As), uint32(0), uint32(REGTMP), uint32(p.From.Reg)) @@ -1680,14 +1680,14 @@ func (c *ctxt0) asmout(p *obj.Prog, o *Optab, out []uint32) { rel.Siz = 4 rel.Sym = p.From.Sym rel.Add = p.From.Offset - rel.Type = objabi.R_ADDRLOONG64TLSU + rel.Type = objabi.R_LOONG64_TLS_LE_HI o2 = OP_12IRR(c.opirr(AOR), uint32(0), uint32(REGTMP), uint32(REGTMP)) rel2 := obj.Addrel(c.cursym) rel2.Off = int32(c.pc + 4) rel2.Siz = 4 rel2.Sym = p.From.Sym rel2.Add = p.From.Offset - rel2.Type = objabi.R_ADDRLOONG64TLS + rel2.Type = objabi.R_LOONG64_TLS_LE_LO o3 = OP_RRR(c.oprrr(AADDV), uint32(REG_R2), uint32(REGTMP), uint32(REGTMP)) o4 = OP_12IRR(c.opirr(-p.As), uint32(0), uint32(REGTMP), uint32(p.To.Reg)) @@ -1700,14 +1700,14 @@ func (c *ctxt0) asmout(p *obj.Prog, o *Optab, out []uint32) { rel.Siz = 4 rel.Sym = p.From.Sym rel.Add = p.From.Offset - rel.Type = objabi.R_ADDRLOONG64TLSU + rel.Type = objabi.R_LOONG64_TLS_LE_HI o2 = OP_12IRR(c.opirr(AOR), uint32(0), uint32(REGTMP), uint32(REGTMP)) rel2 := obj.Addrel(c.cursym) rel2.Off = int32(c.pc + 4) rel2.Siz = 4 rel2.Sym = p.From.Sym rel2.Add = p.From.Offset - rel2.Type = objabi.R_ADDRLOONG64TLS + rel2.Type = objabi.R_LOONG64_TLS_LE_LO o3 = OP_RRR(c.oprrr(AADDV), uint32(REG_R2), uint32(REGTMP), uint32(p.To.Reg)) case 56: // mov r, tlsvar IE model ==> (pcalau12i + ld.d)tlsvar@got + add.d + st.d @@ -1717,7 +1717,7 @@ func (c *ctxt0) asmout(p *obj.Prog, o *Optab, out []uint32) { rel.Siz = 4 rel.Sym = p.To.Sym rel.Add = 0x0 - rel.Type = objabi.R_LOONG64_TLS_IE_PCREL_HI + rel.Type = objabi.R_LOONG64_TLS_IE_HI o2 = OP_12IRR(c.opirr(-p.As), uint32(0), uint32(REGTMP), uint32(REGTMP)) rel2 := obj.Addrel(c.cursym) rel2.Off = int32(c.pc + 4) @@ -1735,7 +1735,7 @@ func (c *ctxt0) asmout(p *obj.Prog, o *Optab, out []uint32) { rel.Siz = 4 rel.Sym = p.From.Sym rel.Add = 0x0 - rel.Type = objabi.R_LOONG64_TLS_IE_PCREL_HI + rel.Type = objabi.R_LOONG64_TLS_IE_HI o2 = OP_12IRR(c.opirr(-p.As), uint32(0), uint32(REGTMP), uint32(REGTMP)) rel2 := obj.Addrel(c.cursym) rel2.Off = int32(c.pc + 4) diff --git a/src/cmd/internal/objabi/reloctype.go b/src/cmd/internal/objabi/reloctype.go index 54429840b0..8b9927d6eb 100644 --- a/src/cmd/internal/objabi/reloctype.go +++ b/src/cmd/internal/objabi/reloctype.go @@ -320,29 +320,27 @@ const ( // Loong64. - // R_ADDRLOONG64 resolves to the low 12 bits of an external address, by encoding - // it into the instruction. - R_ADDRLOONG64 - - // R_ADDRLOONG64U resolves to the sign-adjusted "upper" 20 bits (bit 5-24) of an + // R_LOONG64_ADDR_HI resolves to the sign-adjusted "upper" 20 bits (bit 5-24) of an // external address, by encoding it into the instruction. - R_ADDRLOONG64U + // R_LOONG64_ADDR_LO resolves to the low 12 bits of an external address, by encoding + // it into the instruction. + R_LOONG64_ADDR_HI + R_LOONG64_ADDR_LO - // R_ADDRLOONG64TLS resolves to the low 12 bits of a TLS address (offset from + // R_LOONG64_TLS_LE_HI resolves to the high 20 bits of a TLS address (offset from // thread pointer), by encoding it into the instruction. - R_ADDRLOONG64TLS - - // R_ADDRLOONG64TLSU resolves to the high 20 bits of a TLS address (offset from + // R_LOONG64_TLS_LE_LO resolves to the low 12 bits of a TLS address (offset from // thread pointer), by encoding it into the instruction. - R_ADDRLOONG64TLSU + R_LOONG64_TLS_LE_HI + R_LOONG64_TLS_LE_LO // R_CALLLOONG64 resolves to non-PC-relative target address of a CALL (BL/JIRL) // instruction, by encoding the address into the instruction. R_CALLLOONG64 - // R_LOONG64_TLS_IE_PCREL_HI and R_LOONG64_TLS_IE_LO relocates a pcalau12i, ld.d + // R_LOONG64_TLS_IE_HI and R_LOONG64_TLS_IE_LO relocates a pcalau12i, ld.d // pair to compute the address of the GOT slot of the tls symbol. - R_LOONG64_TLS_IE_PCREL_HI + R_LOONG64_TLS_IE_HI R_LOONG64_TLS_IE_LO // R_LOONG64_GOT_HI and R_LOONG64_GOT_LO resolves a GOT-relative instruction sequence, diff --git a/src/cmd/internal/objabi/reloctype_string.go b/src/cmd/internal/objabi/reloctype_string.go index c8923c0f4a..6d8cbb5dd2 100644 --- a/src/cmd/internal/objabi/reloctype_string.go +++ b/src/cmd/internal/objabi/reloctype_string.go @@ -82,12 +82,12 @@ func _() { _ = x[R_RISCV_RVC_BRANCH-72] _ = x[R_RISCV_RVC_JUMP-73] _ = x[R_PCRELDBL-74] - _ = x[R_ADDRLOONG64-75] - _ = x[R_ADDRLOONG64U-76] - _ = x[R_ADDRLOONG64TLS-77] - _ = x[R_ADDRLOONG64TLSU-78] + _ = x[R_LOONG64_ADDR_HI-75] + _ = x[R_LOONG64_ADDR_LO-76] + _ = x[R_LOONG64_TLS_LE_HI-77] + _ = x[R_LOONG64_TLS_LE_LO-78] _ = x[R_CALLLOONG64-79] - _ = x[R_LOONG64_TLS_IE_PCREL_HI-80] + _ = x[R_LOONG64_TLS_IE_HI-80] _ = x[R_LOONG64_TLS_IE_LO-81] _ = x[R_LOONG64_GOT_HI-82] _ = x[R_LOONG64_GOT_LO-83] @@ -101,9 +101,9 @@ func _() { _ = x[R_INITORDER-91] } -const _RelocType_name = "R_ADDRR_ADDRPOWERR_ADDRARM64R_ADDRMIPSR_ADDROFFR_SIZER_CALLR_CALLARMR_CALLARM64R_CALLINDR_CALLPOWERR_CALLMIPSR_CONSTR_PCRELR_TLS_LER_TLS_IER_GOTOFFR_PLT0R_PLT1R_PLT2R_USEFIELDR_USETYPER_USEIFACER_USEIFACEMETHODR_USENAMEDMETHODR_METHODOFFR_KEEPR_POWER_TOCR_GOTPCRELR_JMPMIPSR_DWARFSECREFR_DWARFFILEREFR_ARM64_TLS_LER_ARM64_TLS_IER_ARM64_GOTPCRELR_ARM64_GOTR_ARM64_PCRELR_ARM64_PCREL_LDST8R_ARM64_PCREL_LDST16R_ARM64_PCREL_LDST32R_ARM64_PCREL_LDST64R_ARM64_LDST8R_ARM64_LDST16R_ARM64_LDST32R_ARM64_LDST64R_ARM64_LDST128R_POWER_TLS_LER_POWER_TLS_IER_POWER_TLSR_POWER_TLS_IE_PCREL34R_POWER_TLS_LE_TPREL34R_ADDRPOWER_DSR_ADDRPOWER_GOTR_ADDRPOWER_GOT_PCREL34R_ADDRPOWER_PCRELR_ADDRPOWER_TOCRELR_ADDRPOWER_TOCREL_DSR_ADDRPOWER_D34R_ADDRPOWER_PCREL34R_RISCV_JALR_RISCV_JAL_TRAMPR_RISCV_CALLR_RISCV_PCREL_ITYPER_RISCV_PCREL_STYPER_RISCV_TLS_IER_RISCV_TLS_LER_RISCV_GOT_HI20R_RISCV_PCREL_HI20R_RISCV_PCREL_LO12_IR_RISCV_PCREL_LO12_SR_RISCV_BRANCHR_RISCV_RVC_BRANCHR_RISCV_RVC_JUMPR_PCRELDBLR_ADDRLOONG64R_ADDRLOONG64UR_ADDRLOONG64TLSR_ADDRLOONG64TLSUR_CALLLOONG64R_LOONG64_TLS_IE_PCREL_HIR_LOONG64_TLS_IE_LOR_LOONG64_GOT_HIR_LOONG64_GOT_LOR_JMPLOONG64R_ADDRMIPSUR_ADDRMIPSTLSR_ADDRCUOFFR_WASMIMPORTR_XCOFFREFR_PEIMAGEOFFR_INITORDER" +const _RelocType_name = "R_ADDRR_ADDRPOWERR_ADDRARM64R_ADDRMIPSR_ADDROFFR_SIZER_CALLR_CALLARMR_CALLARM64R_CALLINDR_CALLPOWERR_CALLMIPSR_CONSTR_PCRELR_TLS_LER_TLS_IER_GOTOFFR_PLT0R_PLT1R_PLT2R_USEFIELDR_USETYPER_USEIFACER_USEIFACEMETHODR_USENAMEDMETHODR_METHODOFFR_KEEPR_POWER_TOCR_GOTPCRELR_JMPMIPSR_DWARFSECREFR_DWARFFILEREFR_ARM64_TLS_LER_ARM64_TLS_IER_ARM64_GOTPCRELR_ARM64_GOTR_ARM64_PCRELR_ARM64_PCREL_LDST8R_ARM64_PCREL_LDST16R_ARM64_PCREL_LDST32R_ARM64_PCREL_LDST64R_ARM64_LDST8R_ARM64_LDST16R_ARM64_LDST32R_ARM64_LDST64R_ARM64_LDST128R_POWER_TLS_LER_POWER_TLS_IER_POWER_TLSR_POWER_TLS_IE_PCREL34R_POWER_TLS_LE_TPREL34R_ADDRPOWER_DSR_ADDRPOWER_GOTR_ADDRPOWER_GOT_PCREL34R_ADDRPOWER_PCRELR_ADDRPOWER_TOCRELR_ADDRPOWER_TOCREL_DSR_ADDRPOWER_D34R_ADDRPOWER_PCREL34R_RISCV_JALR_RISCV_JAL_TRAMPR_RISCV_CALLR_RISCV_PCREL_ITYPER_RISCV_PCREL_STYPER_RISCV_TLS_IER_RISCV_TLS_LER_RISCV_GOT_HI20R_RISCV_PCREL_HI20R_RISCV_PCREL_LO12_IR_RISCV_PCREL_LO12_SR_RISCV_BRANCHR_RISCV_RVC_BRANCHR_RISCV_RVC_JUMPR_PCRELDBLR_LOONG64_ADDR_HIR_LOONG64_ADDR_LOR_LOONG64_TLS_LE_HIR_LOONG64_TLS_LE_LOR_CALLLOONG64R_LOONG64_TLS_IE_HIR_LOONG64_TLS_IE_LOR_LOONG64_GOT_HIR_LOONG64_GOT_LOR_JMPLOONG64R_ADDRMIPSUR_ADDRMIPSTLSR_ADDRCUOFFR_WASMIMPORTR_XCOFFREFR_PEIMAGEOFFR_INITORDER" -var _RelocType_index = [...]uint16{0, 6, 17, 28, 38, 47, 53, 59, 68, 79, 88, 99, 109, 116, 123, 131, 139, 147, 153, 159, 165, 175, 184, 194, 210, 226, 237, 243, 254, 264, 273, 286, 300, 314, 328, 344, 355, 368, 387, 407, 427, 447, 460, 474, 488, 502, 517, 531, 545, 556, 578, 600, 614, 629, 652, 669, 687, 708, 723, 742, 753, 770, 782, 801, 820, 834, 848, 864, 882, 902, 922, 936, 954, 970, 980, 993, 1007, 1023, 1040, 1053, 1078, 1097, 1113, 1129, 1141, 1152, 1165, 1176, 1188, 1198, 1210, 1221} +var _RelocType_index = [...]uint16{0, 6, 17, 28, 38, 47, 53, 59, 68, 79, 88, 99, 109, 116, 123, 131, 139, 147, 153, 159, 165, 175, 184, 194, 210, 226, 237, 243, 254, 264, 273, 286, 300, 314, 328, 344, 355, 368, 387, 407, 427, 447, 460, 474, 488, 502, 517, 531, 545, 556, 578, 600, 614, 629, 652, 669, 687, 708, 723, 742, 753, 770, 782, 801, 820, 834, 848, 864, 882, 902, 922, 936, 954, 970, 980, 997, 1014, 1033, 1052, 1065, 1084, 1103, 1119, 1135, 1147, 1158, 1171, 1182, 1194, 1204, 1216, 1227} func (i RelocType) String() string { i -= 1 diff --git a/src/cmd/link/internal/loong64/asm.go b/src/cmd/link/internal/loong64/asm.go index 6607e5dc64..cb1805ccd7 100644 --- a/src/cmd/link/internal/loong64/asm.go +++ b/src/cmd/link/internal/loong64/asm.go @@ -34,7 +34,7 @@ func gentext(ctxt *ld.Link, ldr *loader.Loader) { // 0: 1a000004 pcalau12i $a0, 0 // 0: R_LARCH_PCALA_HI20 local.moduledata o(0x1a000004) - rel, _ := initfunc.AddRel(objabi.R_ADDRLOONG64U) + rel, _ := initfunc.AddRel(objabi.R_LOONG64_ADDR_HI) rel.SetOff(0) rel.SetSiz(4) rel.SetSym(ctxt.Moduledata) @@ -42,7 +42,7 @@ func gentext(ctxt *ld.Link, ldr *loader.Loader) { // 4: 02c00084 addi.d $a0, $a0, 0 // 4: R_LARCH_PCALA_LO12 local.moduledata o(0x02c00084) - rel2, _ := initfunc.AddRel(objabi.R_ADDRLOONG64) + rel2, _ := initfunc.AddRel(objabi.R_LOONG64_ADDR_LO) rel2.SetOff(4) rel2.SetSiz(4) rel2.SetSym(ctxt.Moduledata) @@ -84,12 +84,12 @@ func elfreloc1(ctxt *ld.Link, out *ld.OutBuf, ldr *loader.Loader, s loader.Sym, default: return false } - case objabi.R_ADDRLOONG64TLS: + case objabi.R_LOONG64_TLS_LE_LO: out.Write64(uint64(sectoff)) out.Write64(uint64(elf.R_LARCH_TLS_LE_LO12) | uint64(elfsym)<<32) out.Write64(uint64(r.Xadd)) - case objabi.R_ADDRLOONG64TLSU: + case objabi.R_LOONG64_TLS_LE_HI: out.Write64(uint64(sectoff)) out.Write64(uint64(elf.R_LARCH_TLS_LE_HI20) | uint64(elfsym)<<32) out.Write64(uint64(r.Xadd)) @@ -99,7 +99,7 @@ func elfreloc1(ctxt *ld.Link, out *ld.OutBuf, ldr *loader.Loader, s loader.Sym, out.Write64(uint64(elf.R_LARCH_B26) | uint64(elfsym)<<32) out.Write64(uint64(r.Xadd)) - case objabi.R_LOONG64_TLS_IE_PCREL_HI: + case objabi.R_LOONG64_TLS_IE_HI: out.Write64(uint64(sectoff)) out.Write64(uint64(elf.R_LARCH_TLS_IE_PC_HI20) | uint64(elfsym)<<32) out.Write64(uint64(0x0)) @@ -109,12 +109,12 @@ func elfreloc1(ctxt *ld.Link, out *ld.OutBuf, ldr *loader.Loader, s loader.Sym, out.Write64(uint64(elf.R_LARCH_TLS_IE_PC_LO12) | uint64(elfsym)<<32) out.Write64(uint64(0x0)) - case objabi.R_ADDRLOONG64: + case objabi.R_LOONG64_ADDR_LO: out.Write64(uint64(sectoff)) out.Write64(uint64(elf.R_LARCH_PCALA_LO12) | uint64(elfsym)<<32) out.Write64(uint64(r.Xadd)) - case objabi.R_ADDRLOONG64U: + case objabi.R_LOONG64_ADDR_HI: out.Write64(uint64(sectoff)) out.Write64(uint64(elf.R_LARCH_PCALA_HI20) | uint64(elfsym)<<32) out.Write64(uint64(r.Xadd)) @@ -147,8 +147,8 @@ func archreloc(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, r loade switch r.Type() { default: return val, 0, false - case objabi.R_ADDRLOONG64, - objabi.R_ADDRLOONG64U: + case objabi.R_LOONG64_ADDR_HI, + objabi.R_LOONG64_ADDR_LO: // set up addend for eventual relocation via outer symbol. rs, _ := ld.FoldSubSymbolOffset(ldr, rs) rst := ldr.SymType(rs) @@ -156,11 +156,11 @@ func archreloc(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, r loade ldr.Errorf(s, "missing section for %s", ldr.SymName(rs)) } return val, 1, true - case objabi.R_ADDRLOONG64TLS, - objabi.R_ADDRLOONG64TLSU, + case objabi.R_LOONG64_TLS_LE_HI, + objabi.R_LOONG64_TLS_LE_LO, objabi.R_CALLLOONG64, objabi.R_JMPLOONG64, - objabi.R_LOONG64_TLS_IE_PCREL_HI, + objabi.R_LOONG64_TLS_IE_HI, objabi.R_LOONG64_TLS_IE_LO, objabi.R_LOONG64_GOT_HI, objabi.R_LOONG64_GOT_LO: @@ -176,18 +176,18 @@ func archreloc(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, r loade return r.Add(), noExtReloc, isOk case objabi.R_GOTOFF: return ldr.SymValue(r.Sym()) + r.Add() - ldr.SymValue(syms.GOT), noExtReloc, isOk - case objabi.R_ADDRLOONG64, - objabi.R_ADDRLOONG64U: + case objabi.R_LOONG64_ADDR_HI, + objabi.R_LOONG64_ADDR_LO: pc := ldr.SymValue(s) + int64(r.Off()) t := calculatePCAlignedReloc(r.Type(), ldr.SymAddr(rs)+r.Add(), pc) - if r.Type() == objabi.R_ADDRLOONG64 { + if r.Type() == objabi.R_LOONG64_ADDR_LO { return int64(val&0xffc003ff | (t << 10)), noExtReloc, isOk } return int64(val&0xfe00001f | (t << 5)), noExtReloc, isOk - case objabi.R_ADDRLOONG64TLS, - objabi.R_ADDRLOONG64TLSU: + case objabi.R_LOONG64_TLS_LE_HI, + objabi.R_LOONG64_TLS_LE_LO: t := ldr.SymAddr(rs) + r.Add() - if r.Type() == objabi.R_ADDRLOONG64TLS { + if r.Type() == objabi.R_LOONG64_TLS_LE_LO { return int64(val&0xffc003ff | ((t & 0xfff) << 10)), noExtReloc, isOk } return int64(val&0xfe00001f | (((t) >> 12 << 5) & 0x1ffffe0)), noExtReloc, isOk @@ -207,20 +207,19 @@ func archrelocvariant(*ld.Target, *loader.Loader, loader.Reloc, sym.RelocVariant func extreloc(target *ld.Target, ldr *loader.Loader, r loader.Reloc, s loader.Sym) (loader.ExtReloc, bool) { switch r.Type() { - case objabi.R_ADDRLOONG64, - objabi.R_ADDRLOONG64U, + case objabi.R_LOONG64_ADDR_HI, + objabi.R_LOONG64_ADDR_LO, objabi.R_LOONG64_GOT_HI, objabi.R_LOONG64_GOT_LO: - return ld.ExtrelocViaOuterSym(ldr, r, s), true - case objabi.R_ADDRLOONG64TLS, - objabi.R_ADDRLOONG64TLSU, + case objabi.R_LOONG64_TLS_LE_HI, + objabi.R_LOONG64_TLS_LE_LO, objabi.R_CONST, objabi.R_GOTOFF, objabi.R_CALLLOONG64, objabi.R_JMPLOONG64, - objabi.R_LOONG64_TLS_IE_PCREL_HI, + objabi.R_LOONG64_TLS_IE_HI, objabi.R_LOONG64_TLS_IE_LO: return ld.ExtrelocSimple(ldr, r), true } @@ -229,7 +228,7 @@ func extreloc(target *ld.Target, ldr *loader.Loader, r loader.Reloc, s loader.Sy func isRequestingLowPageBits(t objabi.RelocType) bool { switch t { - case objabi.R_ADDRLOONG64: + case objabi.R_LOONG64_ADDR_LO: return true } return false -- 2.48.1