]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/cmd/link/internal/loadelf/ldelf.go
debug/elf,cmd/link: add additional relocations for loong64
[gostls13.git] / src / cmd / link / internal / loadelf / ldelf.go
index 5f802f5547005b21e87d0e99485288663908f9c4..82e7dc30b72912b6573275ebfb5e749a41f96c42 100644 (file)
@@ -1022,16 +1022,32 @@ func relSize(arch *sys.Arch, pn string, elftype uint32) (uint8, uint8, error) {
                MIPS64 | uint32(elf.R_MIPS_PC32)<<16:
                return 4, 4, nil
 
+       case LOONG64 | uint32(elf.R_LARCH_ADD8)<<16,
+               LOONG64 | uint32(elf.R_LARCH_SUB8)<<16:
+               return 1, 1, nil
+
+       case LOONG64 | uint32(elf.R_LARCH_ADD16)<<16,
+               LOONG64 | uint32(elf.R_LARCH_SUB16)<<16:
+               return 2, 2, nil
+
        case LOONG64 | uint32(elf.R_LARCH_SOP_PUSH_PCREL)<<16,
                LOONG64 | uint32(elf.R_LARCH_SOP_PUSH_GPREL)<<16,
                LOONG64 | uint32(elf.R_LARCH_SOP_PUSH_ABSOLUTE)<<16,
                LOONG64 | uint32(elf.R_LARCH_MARK_LA)<<16,
                LOONG64 | uint32(elf.R_LARCH_SOP_POP_32_S_0_10_10_16_S2)<<16,
                LOONG64 | uint32(elf.R_LARCH_MARK_PCREL)<<16,
+               LOONG64 | uint32(elf.R_LARCH_ADD24)<<16,
+               LOONG64 | uint32(elf.R_LARCH_ADD32)<<16,
+               LOONG64 | uint32(elf.R_LARCH_SUB24)<<16,
+               LOONG64 | uint32(elf.R_LARCH_SUB32)<<16,
+               LOONG64 | uint32(elf.R_LARCH_B26)<<16,
                LOONG64 | uint32(elf.R_LARCH_32_PCREL)<<16:
                return 4, 4, nil
 
-       case LOONG64 | uint32(elf.R_LARCH_64)<<16:
+       case LOONG64 | uint32(elf.R_LARCH_64)<<16,
+               LOONG64 | uint32(elf.R_LARCH_ADD64)<<16,
+               LOONG64 | uint32(elf.R_LARCH_SUB64)<<16,
+               LOONG64 | uint32(elf.R_LARCH_64_PCREL)<<16:
                return 8, 8, nil
 
        case S390X | uint32(elf.R_390_8)<<16: