summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2020-01-16 12:28:07 -0800
committerGitHub <noreply@github.com>2020-01-16 12:28:07 -0800
commitd464748b86321c51b355400829917786b27d53f7 (patch)
tree69c1c8a79312858ffdd88f7e4fa95d51d18a58e3
parent5d2c760fa086b9964ec22156a4cdf3847b019b76 (diff)
downloadbinaryen-d464748b86321c51b355400829917786b27d53f7.tar.gz
binaryen-d464748b86321c51b355400829917786b27d53f7.tar.bz2
binaryen-d464748b86321c51b355400829917786b27d53f7.zip
Update LLVM to support WASM_location (#2596)
From llvm/llvm-project@adf7a0a
-rw-r--r--third_party/llvm-project/DWARFExpression.cpp2
-rw-r--r--third_party/llvm-project/include/llvm/BinaryFormat/Dwarf.def2
-rw-r--r--third_party/llvm-project/include/llvm/BinaryFormat/Dwarf.h3
3 files changed, 6 insertions, 1 deletions
diff --git a/third_party/llvm-project/DWARFExpression.cpp b/third_party/llvm-project/DWARFExpression.cpp
index 5009b1b7b..7d817d8a9 100644
--- a/third_party/llvm-project/DWARFExpression.cpp
+++ b/third_party/llvm-project/DWARFExpression.cpp
@@ -93,6 +93,8 @@ static DescVector getDescriptions() {
Descriptions[DW_OP_implicit_value] =
Desc(Op::Dwarf3, Op::SizeLEB, Op::SizeBlock);
Descriptions[DW_OP_stack_value] = Desc(Op::Dwarf3);
+ Descriptions[DW_OP_WASM_location] =
+ Desc(Op::Dwarf4, Op::SizeLEB, Op::SignedSizeLEB);
Descriptions[DW_OP_GNU_push_tls_address] = Desc(Op::Dwarf3);
Descriptions[DW_OP_addrx] = Desc(Op::Dwarf4, Op::SizeLEB);
Descriptions[DW_OP_GNU_addr_index] = Desc(Op::Dwarf4, Op::SizeLEB);
diff --git a/third_party/llvm-project/include/llvm/BinaryFormat/Dwarf.def b/third_party/llvm-project/include/llvm/BinaryFormat/Dwarf.def
index 34a7410f7..0be31bb2c 100644
--- a/third_party/llvm-project/include/llvm/BinaryFormat/Dwarf.def
+++ b/third_party/llvm-project/include/llvm/BinaryFormat/Dwarf.def
@@ -647,6 +647,8 @@ HANDLE_DW_OP(0xa9, reinterpret, 5, DWARF)
// Vendor extensions:
// Extensions for GNU-style thread-local storage.
HANDLE_DW_OP(0xe0, GNU_push_tls_address, 0, GNU)
+// Extensions for WebAssembly.
+HANDLE_DW_OP(0xed, WASM_location, 0, WASM)
// The GNU entry value extension.
HANDLE_DW_OP(0xf3, GNU_entry_value, 0, GNU)
// Extensions for Fission proposal.
diff --git a/third_party/llvm-project/include/llvm/BinaryFormat/Dwarf.h b/third_party/llvm-project/include/llvm/BinaryFormat/Dwarf.h
index 93eaf3680..2ad201831 100644
--- a/third_party/llvm-project/include/llvm/BinaryFormat/Dwarf.h
+++ b/third_party/llvm-project/include/llvm/BinaryFormat/Dwarf.h
@@ -63,7 +63,8 @@ enum LLVMConstants : uint32_t {
DWARF_VENDOR_GNU = 3,
DWARF_VENDOR_GOOGLE = 4,
DWARF_VENDOR_LLVM = 5,
- DWARF_VENDOR_MIPS = 6
+ DWARF_VENDOR_MIPS = 6,
+ DWARF_VENDOR_WASM = 7
};
/// Constants that define the DWARF format as 32 or 64 bit.