arm_dyncom_dec.h 688 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // Copyright 2012 Michael Kang, 2015 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. int decode_arm_instr(uint32_t instr, int32_t *idx);
  6. enum DECODE_STATUS {
  7. DECODE_SUCCESS,
  8. DECODE_FAILURE
  9. };
  10. struct instruction_set_encoding_item {
  11. const char *name;
  12. int attribute_value;
  13. int version;
  14. u32 content[21];
  15. };
  16. typedef struct instruction_set_encoding_item ISEITEM;
  17. // ARM versions
  18. enum {
  19. INVALID = 0,
  20. ARMALL,
  21. ARMV4,
  22. ARMV4T,
  23. ARMV5T,
  24. ARMV5TE,
  25. ARMV5TEJ,
  26. ARMV6,
  27. ARM1176JZF_S,
  28. ARMVFP2,
  29. ARMVFP3,
  30. ARMV6K,
  31. };
  32. extern const ISEITEM arm_instruction[];