Fixing minor redundancies.

This commit is contained in:
Can Bölük 2020-07-28 21:44:53 +02:00
parent d82966849c
commit 6b647f8db6
5 changed files with 15 additions and 54 deletions

View file

@ -7,9 +7,6 @@
<Filter Include="Miscellaneous">
<UniqueIdentifier>{fc75d30a-c12b-4902-a7bb-c665c2a9043c}</UniqueIdentifier>
</Filter>
<Filter Include="Instruction Stream">
<UniqueIdentifier>{5111b44f-7760-4ccf-9f25-5c375a9480f7}</UniqueIdentifier>
</Filter>
<Filter Include="Includes">
<UniqueIdentifier>{da55a262-7d21-4ce0-b5ef-c2de31a52d12}</UniqueIdentifier>
</Filter>
@ -22,19 +19,22 @@
<Filter Include="Value Tracing">
<UniqueIdentifier>{6ba6b482-58aa-46cd-ad58-c0eef36c9333}</UniqueIdentifier>
</Filter>
<Filter Include="Routine">
<UniqueIdentifier>{5111b44f-7760-4ccf-9f25-5c375a9480f7}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="arch\operands.hpp">
<Filter>Architecture</Filter>
</ClInclude>
<ClInclude Include="routine\basic_block.hpp">
<Filter>Instruction Stream</Filter>
<Filter>Routine</Filter>
</ClInclude>
<ClInclude Include="routine\instruction.hpp">
<Filter>Instruction Stream</Filter>
<Filter>Routine</Filter>
</ClInclude>
<ClInclude Include="routine\routine.hpp">
<Filter>Instruction Stream</Filter>
<Filter>Routine</Filter>
</ClInclude>
<ClInclude Include="misc\debug.hpp">
<Filter>Miscellaneous</Filter>
@ -49,7 +49,7 @@
<Filter>Architecture</Filter>
</ClInclude>
<ClInclude Include="routine\serialization.hpp">
<Filter>Instruction Stream</Filter>
<Filter>Routine</Filter>
</ClInclude>
<ClInclude Include="symex\variable.hpp">
<Filter>SymEx Integration</Filter>
@ -82,13 +82,13 @@
<Filter>SymEx Integration</Filter>
</ClInclude>
<ClInclude Include="routine\call_convention.hpp">
<Filter>Instruction Stream</Filter>
<Filter>Routine</Filter>
</ClInclude>
<ClInclude Include="arch\identifier.hpp">
<Filter>Architecture</Filter>
</ClInclude>
<ClInclude Include="routine\routine_helpers.hpp">
<Filter>Instruction Stream</Filter>
<Filter>Routine</Filter>
</ClInclude>
<ClInclude Include="symex\context.hpp">
<Filter>SymEx Integration</Filter>
@ -99,16 +99,16 @@
<Filter>Architecture</Filter>
</ClCompile>
<ClCompile Include="routine\basic_block.cpp">
<Filter>Instruction Stream</Filter>
<Filter>Routine</Filter>
</ClCompile>
<ClCompile Include="routine\instruction.cpp">
<Filter>Instruction Stream</Filter>
<Filter>Routine</Filter>
</ClCompile>
<ClCompile Include="routine\serialization.cpp">
<Filter>Instruction Stream</Filter>
<Filter>Routine</Filter>
</ClCompile>
<ClCompile Include="routine\routine.cpp">
<Filter>Instruction Stream</Filter>
<Filter>Routine</Filter>
</ClCompile>
<ClCompile Include="symex\variable.cpp">
<Filter>SymEx Integration</Filter>

View file

@ -211,7 +211,7 @@ namespace vtil
{
// Until the iterator points at the end of the block:
//
for ( ; !it.is_end(); it++ )
for ( ; !it.is_end(); ++it )
{
// If we could not virtualize the instruction, break.
//

View file

@ -33,7 +33,7 @@ namespace vtil
{
// List of reasons that might cause the virtual machine to exit.
//
enum class vm_exit_reason
enum class vm_exit_reason : uint8_t
{
none = 0,
stream_end = 0,

View file

@ -180,30 +180,6 @@ namespace vtil::optimizer
}
}
}
// If cross block optimization, check if we can merge stacks.
//
if ( xblock )
{
bool merge_bwd = !blk->next.empty() && blk->stream.size() && blk->stream.front().sp_offset != 0;
for ( auto prev : blk->prev )
merge_bwd &= prev->next.size() == 1;
bool merge_fwd = !blk->next.empty() && blk->sp_offset != 0;
for ( auto next : blk->next )
merge_fwd &= next->prev.size() == 1;
if ( merge_fwd )
{
}
}
return counter;
}
};

View file

@ -34,21 +34,6 @@ namespace vtil::optimizer
//
size_t isymbolic_rewrite_pass::pass( basic_block* blk, bool xblock )
{
// Determine the temporary sizes in the block.
//
std::map<std::pair<uint64_t, uint64_t>, bitcnt_t> temp_sizes;
for ( auto& ins : blk->stream )
{
for ( auto& op : ins.operands )
{
if ( op.is_register() && op.reg().is_local() )
{
bitcnt_t& sz = temp_sizes[ { op.reg().flags, op.reg().combined_id } ];
sz = std::max( sz, op.reg().bit_count + op.reg().bit_offset );
}
}
}
// Create an instrumented symbolic virtual machine and hook execution to exit at
// instructions that cannot be executed out-of-order.
//