xor_idioms.h 825 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #pragma once
  2. #include <vector>
  3. #include "idiom.h"
  4. #include "icode.h"
  5. #include <deque>
  6. struct Idiom21 : public Idiom
  7. {
  8. protected:
  9. iICODE m_icodes[2];
  10. public:
  11. virtual ~Idiom21() {}
  12. Idiom21(Function *f) : Idiom(f)
  13. {
  14. }
  15. uint8_t minimum_match_length() {return 2;}
  16. bool match(iICODE pIcode);
  17. int action();
  18. };
  19. struct Idiom7 : public Idiom
  20. {
  21. protected:
  22. iICODE m_icode;
  23. public:
  24. virtual ~Idiom7() {}
  25. Idiom7(Function *f) : Idiom(f)
  26. {
  27. }
  28. uint8_t minimum_match_length() {return 1;}
  29. bool match(iICODE pIcode);
  30. int action();
  31. };
  32. struct Idiom10 : public Idiom
  33. {
  34. protected:
  35. iICODE m_icodes[2];
  36. public:
  37. virtual ~Idiom10() {}
  38. Idiom10(Function *f) : Idiom(f)
  39. {
  40. }
  41. uint8_t minimum_match_length() {return 1;}
  42. bool match(iICODE pIcode);
  43. int action();
  44. };