[PATCH] D91276: [WebAssembly] Add new relocation types for TLS data symbols

Thomas Lively via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 12 22:53:49 PST 2020


tlively added a comment.

Why are there separate versions of the new relocation for both i32 and sleb128? Do we use both of them?



================
Comment at: lld/test/wasm/tls.s:10
   global.get __tls_base
-  i32.const tls1
+  i32.const tls1 at TLSREL
   i32.add
----------------
Was the previous direct addressing relocation implicit in `i32.const tls1` because it used a symbol name in place of a number literal?


================
Comment at: lld/wasm/InputFiles.cpp:242
+    // backward compat with old object files built with `-fPIC`.
+    if (D->segment && D->segment->outputSeg->name == ".tdata")
+      return D->getOutputSegmentOffset() + reloc.Addend;
----------------
What about `.tbss`? Are there other possible thread-local section names? Same question down in `scanRelocations` and elsewhere.


================
Comment at: llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp:246
+ArrayRef<std::pair<unsigned, const char *>>
+WebAssemblyInstrInfo::getSerializableBitmaskMachineOperandTargetFlags() const {
+  static const std::pair<unsigned, const char *> TargetFlags[] = {
----------------
What is this function used for?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D91276/new/

https://reviews.llvm.org/D91276



More information about the llvm-commits mailing list