From 9ed6033fb659e8c8e79da63165c6a1dfd88e977f Mon Sep 17 00:00:00 2001 From: foralost Date: Sun, 17 Dec 2023 13:07:06 +0100 Subject: [PATCH] Avoiding having space in MnemonicNop instruction --- src/gui/Src/Disassembler/ZydisTokenizer.cpp | 26 ++++++++++++++------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/gui/Src/Disassembler/ZydisTokenizer.cpp b/src/gui/Src/Disassembler/ZydisTokenizer.cpp index b6f6fcc3..c8862762 100644 --- a/src/gui/Src/Disassembler/ZydisTokenizer.cpp +++ b/src/gui/Src/Disassembler/ZydisTokenizer.cpp @@ -351,21 +351,31 @@ bool ZydisTokenizer::TokenEquals(const SingleToken* a, const SingleToken* b, boo return tokenTextPoolEquals(a->text, b->text); } + +static bool tokenIsSpace(ZydisTokenizer::TokenType type) +{ + return type == ZydisTokenizer::TokenType::Space || type == ZydisTokenizer::TokenType::ArgumentSpace || type == ZydisTokenizer::TokenType::MemoryOperatorSpace; +} + void ZydisTokenizer::addToken(TokenType type, QString text, const TokenValue & value) { - switch(type) + bool isItSpaceType = tokenIsSpace(type); + if(!isItSpaceType) { - case TokenType::Space: - case TokenType::ArgumentSpace: - case TokenType::MemoryOperatorSpace: - break; - default: text = text.trimmed(); - break; } + if(mUppercase && !value.size) text = text.toUpper(); - mInst.tokens.push_back(SingleToken(mIsNop ? TokenType::MnemonicNop : type, text, value)); + + if(isItSpaceType) + { + mInst.tokens.push_back(SingleToken(type, text, value)); + } + else + { + mInst.tokens.push_back(SingleToken(mIsNop ? TokenType::MnemonicNop : type, text, value)); + } } void ZydisTokenizer::addToken(TokenType type, const QString & text)