[CSKY] Add missing relocation type for FK_Data_4 Fixup
authorZi Xuan Wu (Zeson) <zixuan.wu@linux.alibaba.com>
Fri, 26 May 2023 03:08:35 +0000 (11:08 +0800)
committerZi Xuan Wu <zixuan.wu@linux.alibaba.com>
Fri, 26 May 2023 06:54:53 +0000 (14:54 +0800)
llvm/lib/Target/CSKY/MCTargetDesc/CSKYELFObjectWriter.cpp
llvm/test/MC/CSKY/const-pool.s

index d7cc4c8..2548c83 100644 (file)
@@ -117,6 +117,12 @@ unsigned CSKYELFObjectWriter::getRelocType(MCContext &Ctx,
         return ELF::R_CKCORE_GOTOFF;
       case MCSymbolRefExpr::VK_PLT:
         return ELF::R_CKCORE_PLT32;
+      case MCSymbolRefExpr::VK_TLSGD:
+        return ELF::R_CKCORE_TLS_GD32;
+      case MCSymbolRefExpr::VK_TLSLDM:
+        return ELF::R_CKCORE_TLS_LDM32;
+      case MCSymbolRefExpr::VK_TPOFF:
+        return ELF::R_CKCORE_TLS_LE32;
       case MCSymbolRefExpr::VK_None:
         return ELF::R_CKCORE_ADDR32;
       }
index 3225a91..cf2d879 100644 (file)
@@ -16,3 +16,19 @@ lrw a3, [.LCPI1_2]
 # CHECK:        0:             lrw16   r3, 0x3ec
 # CHECK:      3f0:              lrw32  r3, 0x7e0
 
+# CHECK: 000007e0:  R_CKCORE_GOTOFF    symA
+# CHECK: 000007e4:  R_CKCORE_GOT32     va1
+# CHECK: 000007e8:  R_CKCORE_GOTOFF    va2
+# CHECK: 000007ec:  R_CKCORE_PLT32     va3
+# CHECK: 000007f0:  R_CKCORE_TLS_GD32  va4
+# CHECK: 000007f4:  R_CKCORE_TLS_LDM32 va5
+# CHECK: 000007f8:  R_CKCORE_TLS_LE32  va6
+
+
+.LCPI0_0:
+    .long   va1@GOT
+    .long   va2@GOTOFF
+    .long   va3@PLT
+    .long   va4@TLSGD
+    .long   va5@TLSLDM
+    .long   va6@TPOFF