You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
pkg/ifuzz/x86 does not fully implement instruction decoding, ignoring some of the opcode field combinations.
Because of that, there can be ambiguity in instruction parsing, that depends on the order of the instructions in insnset.
Such problems can be triggered by shuffling the instructions at registration time:
It provides both determinism for CI coverage/failures, random seeds in local testing and ability to reproduce with particular seed.
Yeah, I looked into it, but it is a bit tricky to inject a random source into Register(), which constructs the InsnSet.
Perhaps I should add an (insnset *InsnSet) AddRandSource() method that will be called in the test, and that random source will be used by the x86 implementation of Decode()?
Some test-only hook that will permute instructions looks better.
Note that Go tests generally run in parallel, so permuting in each test won't work well. But we could permute in an init function in pkg/ifuzz tests.
pkg/ifuzz/x86 does not fully implement instruction decoding, ignoring some of the opcode field combinations.
Because of that, there can be ambiguity in instruction parsing, that depends on the order of the instructions in
insnset
.Such problems can be triggered by shuffling the instructions at registration time:
The text was updated successfully, but these errors were encountered: