mov_idioms.h 671 B

123456789101112131415161718192021222324252627282930313233343536
  1. #pragma once
  2. #include <vector>
  3. #include "idiom.h"
  4. #include "icode.h"
  5. #include <deque>
  6. struct Idiom14 : public Idiom
  7. {
  8. protected:
  9. iICODE m_icodes[2];
  10. eReg m_regL;
  11. eReg m_regH;
  12. public:
  13. virtual ~Idiom14() {}
  14. Idiom14(Function *f) : Idiom(f),m_regL(rUNDEF),m_regH(rUNDEF)
  15. {
  16. }
  17. uint8_t minimum_match_length() {return 2;}
  18. bool match(iICODE pIcode);
  19. int action();
  20. };
  21. struct Idiom13 : public Idiom
  22. {
  23. protected:
  24. iICODE m_icodes[2];
  25. eReg m_loaded_reg;
  26. public:
  27. virtual ~Idiom13() {}
  28. Idiom13(Function *f) : Idiom(f)
  29. {
  30. }
  31. uint8_t minimum_match_length() {return 2;}
  32. bool match(iICODE pIcode);
  33. int action();
  34. };