From 0a69ef3b9c757fed94d6fc71791e4d3989132ba5 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Fri, 16 Sep 2022 00:30:56 +0200 Subject: [PATCH] Print asm operands taking tokens into account. --- server/TracySourceView.cpp | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/server/TracySourceView.cpp b/server/TracySourceView.cpp index f342c943..fd991ce9 100644 --- a/server/TracySourceView.cpp +++ b/server/TracySourceView.cpp @@ -3913,7 +3913,28 @@ void SourceView::RenderAsmLine( AsmLine& line, const AddrStat& ipcnt, const Addr } if( !hasJump ) { - TextColoredUnformatted( AsmColor( 0xFFFFFFFF, inContext, isSelected ), line.operands.c_str() ); + auto ptr = line.operands.c_str(); + auto end = ptr + line.operands.size(); + auto it = line.opTokens.begin(); + while( ptr < end ) + { + if( it == line.opTokens.end() ) + { + ImGui::TextUnformatted( ptr, end ); + ImGui::SameLine( 0, 0 ); + break; + } + if( ptr < it->begin ) + { + ImGui::TextUnformatted( ptr, it->begin ); + ImGui::SameLine( 0, 0 ); + } + TextColoredUnformatted( AsmColor( AsmSyntaxColors[(int)it->color], inContext, isSelected ), it->begin, it->end ); + ImGui::SameLine( 0, 0 ); + ptr = it->end; + ++it; + } + ImGui::ItemSize( ImVec2( 0, 0 ), 0 ); } ImGui::EndGroup();