From f9432450dd6c1d73796075225d79dec05de8024d Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Thu, 4 Apr 2019 18:40:51 +0000 Subject: [PATCH] [WebAssembly] Apply data relocations at runtime in shared objects See: https://github.com/WebAssembly/tool-conventions/blob/master/DynamicLinking.md Data section relocations in wasm shared libraries are applied by the library itself at static constructor time. This change adds a new synthetic function that applies relocations to relevant memory locations on startup. Differential Revision: https://reviews.llvm.org/D59278 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357715 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/BinaryFormat/Wasm.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/llvm/BinaryFormat/Wasm.h b/include/llvm/BinaryFormat/Wasm.h index 443c2a5d2c6..ee48a187f8e 100644 --- a/include/llvm/BinaryFormat/Wasm.h +++ b/include/llvm/BinaryFormat/Wasm.h @@ -241,11 +241,14 @@ enum : unsigned { // Opcodes used in initializer expressions. enum : unsigned { WASM_OPCODE_END = 0x0b, + WASM_OPCODE_CALL = 0x10, WASM_OPCODE_GLOBAL_GET = 0x23, + WASM_OPCODE_I32_STORE = 0x36, WASM_OPCODE_I32_CONST = 0x41, WASM_OPCODE_I64_CONST = 0x42, WASM_OPCODE_F32_CONST = 0x43, WASM_OPCODE_F64_CONST = 0x44, + WASM_OPCODE_I32_ADD = 0x6a, }; enum : unsigned { -- 2.50.1