diff options
author | Sam Clegg <sbc@chromium.org> | 2019-04-04 17:43:50 +0000 |
---|---|---|
committer | Sam Clegg <sbc@chromium.org> | 2019-04-04 17:43:50 +0000 |
commit | 2a7cac932bbca5492e5a42d9dac33e0cb76d0f83 (patch) | |
tree | 64e21da525922e0a2d7fc39421ecd1d879f963d6 /llvm/lib/MC/WasmObjectWriter.cpp | |
parent | 98e3954fe9d6ab74888c8757284136134330e475 (diff) | |
download | llvm-2a7cac932bbca5492e5a42d9dac33e0cb76d0f83.zip llvm-2a7cac932bbca5492e5a42d9dac33e0cb76d0f83.tar.gz llvm-2a7cac932bbca5492e5a42d9dac33e0cb76d0f83.tar.bz2 |
[WebAssembly] Add new explicit relocation types for PIC relocations
See https://github.com/WebAssembly/tool-conventions/pull/106
Differential Revision: https://reviews.llvm.org/D59907
llvm-svn: 357710
Diffstat (limited to 'llvm/lib/MC/WasmObjectWriter.cpp')
-rw-r--r-- | llvm/lib/MC/WasmObjectWriter.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/MC/WasmObjectWriter.cpp b/llvm/lib/MC/WasmObjectWriter.cpp index 4c60952..6367709 100644 --- a/llvm/lib/MC/WasmObjectWriter.cpp +++ b/llvm/lib/MC/WasmObjectWriter.cpp @@ -151,6 +151,7 @@ struct WasmRelocationEntry { switch (Type) { case wasm::R_WASM_MEMORY_ADDR_LEB: case wasm::R_WASM_MEMORY_ADDR_SLEB: + case wasm::R_WASM_MEMORY_ADDR_REL_SLEB: case wasm::R_WASM_MEMORY_ADDR_I32: case wasm::R_WASM_FUNCTION_OFFSET_I32: case wasm::R_WASM_SECTION_OFFSET_I32: @@ -580,6 +581,7 @@ WasmObjectWriter::getProvisionalValue(const WasmRelocationEntry &RelEntry) { } switch (RelEntry.Type) { + case wasm::R_WASM_TABLE_INDEX_REL_SLEB: case wasm::R_WASM_TABLE_INDEX_SLEB: case wasm::R_WASM_TABLE_INDEX_I32: { // Provisional value is table address of the resolved symbol itself @@ -604,6 +606,7 @@ WasmObjectWriter::getProvisionalValue(const WasmRelocationEntry &RelEntry) { } case wasm::R_WASM_MEMORY_ADDR_LEB: case wasm::R_WASM_MEMORY_ADDR_I32: + case wasm::R_WASM_MEMORY_ADDR_REL_SLEB: case wasm::R_WASM_MEMORY_ADDR_SLEB: { // Provisional value is address of the global const MCSymbolWasm *Sym = resolveSymbol(*RelEntry.Symbol); @@ -698,7 +701,9 @@ void WasmObjectWriter::applyRelocations( writeI32(Stream, Value, Offset); break; case wasm::R_WASM_TABLE_INDEX_SLEB: + case wasm::R_WASM_TABLE_INDEX_REL_SLEB: case wasm::R_WASM_MEMORY_ADDR_SLEB: + case wasm::R_WASM_MEMORY_ADDR_REL_SLEB: writePatchableSLEB(Stream, Value, Offset); break; default: |