From: Sam Clegg Date: Thu, 4 Apr 2019 18:40:51 +0000 (+0000) Subject: [WebAssembly] Apply data relocations at runtime in shared objects X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f9432450dd6c1d73796075225d79dec05de8024d;p=llvm [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 --- 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 {