mnemonikr / symbolic-pcode

Apache License 2.0
0 stars 0 forks source link

Add processor implementation #132

Closed mnemonikr closed 1 month ago

mnemonikr commented 1 month ago

This change replaces the existing Processor implementation with a new one capable of exploring different state spaces due to branches with symbolic conditions. The ProcessorManager is used to manage this exploration, and is also capable of pruning processors to avoid further exploring their paths if desired.

This change renames MemoryTree to MemoryBranch and adds a MemoryTree view on a collection of branches. The new MemoryTree can be used to read a value simultaneously from all branches, conditioned in their respective branch predicates.

The x86-64 integration tests have all been updated to use the new Processor, and a new test has been added to demonstrate how the ProcessorManager can be used to explore branching paths.