[all-commits] [llvm/llvm-project] 3b2937: [WebAssembly] Adding 64-bit version of R_WASM_MEMO...

Wouter van Oortmerssen via All-commits all-commits at lists.llvm.org
Mon Jun 15 10:08:19 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 3b29376e3fca4305ea470ee142cad1296103297b
      https://github.com/llvm/llvm-project/commit/3b29376e3fca4305ea470ee142cad1296103297b
  Author: Wouter van Oortmerssen <aardappel at gmail.com>
  Date:   2020-06-15 (Mon, 15 Jun 2020)

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

  Log Message:
  -----------
  [WebAssembly] Adding 64-bit version of R_WASM_MEMORY_ADDR_* relocs

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). It follows a similar technique to https://reviews.llvm.org/D53307

Differential Revision: https://reviews.llvm.org/D81704




More information about the All-commits mailing list