diff options
author | Wouter van Oortmerssen <aardappel@gmail.com> | 2019-01-02 23:23:51 +0000 |
---|---|---|
committer | Wouter van Oortmerssen <aardappel@gmail.com> | 2019-01-02 23:23:51 +0000 |
commit | ad72f68501c2c677c5635c2457887a7d85588818 (patch) | |
tree | fe4a14506789dab75de3d825887b2c58bcacabc1 /llvm/lib/Target/WebAssembly/Disassembler | |
parent | 33e3b4b9b3b3c2fb5b30bd618c02adbe30d81c0f (diff) | |
download | bcm5719-llvm-ad72f68501c2c677c5635c2457887a7d85588818.tar.gz bcm5719-llvm-ad72f68501c2c677c5635c2457887a7d85588818.zip |
[WebAssembly] made assembler parse block_type
Summary:
This was previously ignored and an incorrect value generated.
Also fixed Disassembler's handling of block_type.
Reviewers: dschuff, aheejin
Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits
Differential Revision: https://reviews.llvm.org/D56092
llvm-svn: 350270
Diffstat (limited to 'llvm/lib/Target/WebAssembly/Disassembler')
-rw-r--r-- | llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp b/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp index c068d6b43d4..369954b88c9 100644 --- a/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp +++ b/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp @@ -167,12 +167,17 @@ MCDisassembler::DecodeStatus WebAssemblyDisassembler::getInstruction( } // SLEB operands: case WebAssembly::OPERAND_I32IMM: - case WebAssembly::OPERAND_I64IMM: - case WebAssembly::OPERAND_SIGNATURE: { + case WebAssembly::OPERAND_I64IMM: { if (!parseLEBImmediate(MI, Size, Bytes, true)) return MCDisassembler::Fail; break; } + // block_type operands (uint8_t). + case WebAssembly::OPERAND_SIGNATURE: { + if (!parseImmediate<uint8_t>(MI, Size, Bytes)) + return MCDisassembler::Fail; + break; + } // FP operands. case WebAssembly::OPERAND_F32IMM: { if (!parseImmediate<float>(MI, Size, Bytes)) |