From b60736ec1405bb0a8dd40989f67ef4c93da068ab Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Tue, 16 Feb 2021 21:13:02 +0100 Subject: Vendor import of llvm-project main 8e464dd76bef, the last commit before the upstream release/12.x branch was created. --- llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp') diff --git a/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp b/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp index 54aa5a8164f2..7518b262e6e9 100644 --- a/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp +++ b/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp @@ -39,9 +39,15 @@ void emitWebAssemblyDisassemblerTables( ->getValue()); if (Opc == 0xFFFFFFFF) continue; // No opcode defined. - assert(Opc <= 0xFFFF); - auto Prefix = Opc >> 8; - Opc = Opc & 0xFF; + assert(Opc <= 0xFFFFFF); + unsigned Prefix; + if (Opc <= 0xFFFF) { + Prefix = Opc >> 8; + Opc = Opc & 0xFF; + } else { + Prefix = Opc >> 16; + Opc = Opc & 0xFFFF; + } auto &CGIP = OpcodeTable[Prefix][Opc]; // All wasm instructions have a StackBased field of type string, we only // want the instructions for which this is "true". @@ -133,8 +139,7 @@ void emitWebAssemblyDisassemblerTables( } // Store operands if no prior occurrence. if (OperandStart == OperandTable.size()) { - OperandTable.insert(OperandTable.end(), CurOperandList.begin(), - CurOperandList.end()); + llvm::append_range(OperandTable, CurOperandList); } OS << OperandStart; } else { -- cgit v1.3