Guest User

Untitled

a guest
Oct 20th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. /** Register.hpp **/
  2. #ifndef lss_Register_hpp
  3. #define lss_Register_hpp
  4.  
  5. #include <string>
  6. #include <ostream>
  7.  
  8. enum RegisterFlag { CPU };
  9.  
  10. struct Register
  11. {
  12. const int uniqueId;
  13. const std::string name;
  14. const enum RegisterFlag flag;
  15.  
  16. Register(int uniqueId, std::string name, enum RegisterFlag flag) : uniqueId(uniqueId), name(name), flag(flag) {}
  17. Register() = delete;
  18. };
  19.  
  20. std::ostream & operator << (std::ostream &os, const Register &reg)
  21. {
  22. return (os << reg.name);
  23. }
  24.  
  25. const Register rax(0, "rax", CPU);
  26. const Register rcx(1, "rcx", CPU);
  27. const Register rdx(2, "rdx", CPU);
  28. const Register rbx(3, "rbx", CPU);
  29. const Register rsp(3, "rsp", CPU);
  30. const Register rbp(3, "rbp", CPU);
  31. const Register rsi(3, "rsi", CPU);
  32. const Register rdi(3, "rdi", CPU);
  33. const Register r8(3, "r8", CPU);
  34. const Register r9(3, "r9", CPU);
  35. const Register r10(3, "r10", CPU);
  36. const Register r11(3, "r11", CPU);
  37. const Register r12(3, "r12", CPU);
  38. const Register r13(3, "r13", CPU);
  39. const Register r14(3, "r14", CPU);
  40. const Register r15(3, "r15", CPU);
  41.  
  42. #endif
Add Comment
Please, Sign In to add comment