]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal, cmd/link: unify the relocation naming style of loong64
authorlimeidan <limeidan@loongson.cn>
Wed, 11 Oct 2023 10:00:04 +0000 (18:00 +0800)
committerCherry Mui <cherryyz@google.com>
Tue, 27 Feb 2024 17:26:07 +0000 (17:26 +0000)
Change-Id: I2990701e71a63af7bdd6851b6008dc63cb1c1a83
Reviewed-on: https://go-review.googlesource.com/c/go/+/535616
Reviewed-by: abner chenc <chenguoqi@loongson.cn>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
Reviewed-by: sophie zhao <zhaoxiaolin@loongson.cn>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

src/cmd/internal/obj/loong64/asm.go
src/cmd/internal/objabi/reloctype.go
src/cmd/internal/objabi/reloctype_string.go
src/cmd/link/internal/loong64/asm.go

index 64c92260794ec5242191e4eb8319d8470ff5b5a3..f0f8abb59c062b7d24d3fffc160bd97768850169 100644 (file)
@@ -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)
index 54429840b0f7836785d2654986c8e9d37edf7706..8b9927d6eb3d02853160ca4100346865a52f52ef 100644 (file)
@@ -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,
index c8923c0f4ac50df9057c4b10900be71cd4137231..6d8cbb5dd2a89a4810287c77a7f6adca6aeefe12 100644 (file)
@@ -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
index 6607e5dc6474f14b437525bd63f31e8588b1e0d5..cb1805ccd76c5565bd42993ef6a80dc03a73d2c5 100644 (file)
@@ -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