mirror of
https://github.com/vtil-project/VTIL-Core
synced 2026-08-17 08:23:03 -04:00
Fixing minor redundancies.
This commit is contained in:
parent
d82966849c
commit
6b647f8db6
5 changed files with 15 additions and 54 deletions
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
};
|
||||
|
|
@ -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.
|
||||
//
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue