[PATCH] D81704: [WebAssembly] Adding 64-bit version of R_WASM_MEMORY_ADDR_* relocs

Wouter van Oortmerssen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 11 17:39:18 PDT 2020


aardappel created this revision.
aardappel added reviewers: sbc100, dschuff.
Herald added subscribers: llvm-commits, rupprecht, jfb, MaskRay, sunfish, aheejin, hiraditya, jgravelle-google.
Herald added a reviewer: jhenderson.
Herald added a project: LLVM.

This adds 4 new reloc types.

A lot of code that previously assumed any memory or offset values could be contained in a uint32_t (and often truncated results from functions returning 64-bit values) have been upgraded to uint64_t. This is not comprehensive: it is only the values that come in contact with the new relocation values and their dependents.

A new tablegen mapping was added to automatically upgrade loads/stores in the assembler, which otherwise has no way to select for these instructions (since they are indentical other than for the offset immediate).


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D81704

Files:
  lld/wasm/Driver.cpp
  lld/wasm/InputChunks.cpp
  lld/wasm/InputFiles.cpp
  lld/wasm/InputFiles.h
  lld/wasm/OutputSections.cpp
  lld/wasm/Relocations.cpp
  lld/wasm/SymbolTable.cpp
  lld/wasm/SymbolTable.h
  lld/wasm/Symbols.cpp
  lld/wasm/Symbols.h
  lld/wasm/SyntheticSections.cpp
  lld/wasm/Writer.cpp
  lld/wasm/WriterUtils.cpp
  lld/wasm/WriterUtils.h
  llvm/include/llvm/BinaryFormat/Wasm.h
  llvm/include/llvm/BinaryFormat/WasmRelocs.def
  llvm/include/llvm/ObjectYAML/WasmYAML.h
  llvm/lib/BinaryFormat/Wasm.cpp
  llvm/lib/MC/WasmObjectWriter.cpp
  llvm/lib/Object/RelocationResolver.cpp
  llvm/lib/Object/WasmObjectFile.cpp
  llvm/lib/ObjectYAML/WasmEmitter.cpp
  llvm/lib/ObjectYAML/WasmYAML.cpp
  llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
  llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp
  llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyInstrAtomics.td
  llvm/lib/Target/WebAssembly/WebAssemblyInstrFormats.td
  llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
  llvm/lib/Target/WebAssembly/WebAssemblyInstrMemory.td
  llvm/test/MC/WebAssembly/wasm64.s
  llvm/tools/llvm-readobj/WasmDumper.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D81704.270269.patch
Type: text/x-patch
Size: 62189 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200612/9e2fc971/attachment-0001.bin>


More information about the llvm-commits mailing list