global_pointers.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #ifndef _GLOBAL_POINTERS_H
  2. #define _GLOBAL_POINTERS_H
  3. #include <stdint.h>
  4. #include <stdbool.h>
  5. #include <math.h>
  6. #include "const.h"
  7. #include "shared.h"
  8. uint8_t* const reg8 = (uint8_t* const) 4;
  9. uint16_t* const reg16 = (uint16_t* const) 4;
  10. int8_t* const reg8s = (int8_t* const) 4;
  11. int16_t* const reg16s = (int16_t* const) 4;
  12. int32_t* const reg32s = (int32_t* const) 4;
  13. int32_t* const last_op1 = (int32_t* const) 512;
  14. int32_t* const last_op2 = (int32_t* const) 516;
  15. int32_t* const last_op_size = (int32_t* const) 520;
  16. int32_t* const last_add_result = (int32_t* const) 524;
  17. int32_t* const last_result = (int32_t* const) 528;
  18. int32_t* const flags_changed = (int32_t* const) 532;
  19. int32_t* const flags = (int32_t* const) 536;
  20. // gap 16
  21. bool* const a20_enabled = (bool* const) 552;
  22. int32_t* const instruction_pointer = (int32_t* const) 556;
  23. int32_t* const previous_ip = (int32_t* const) 560;
  24. int32_t* const idtr_size = (int32_t* const) 564;
  25. int32_t* const idtr_offset = (int32_t* const) 568;
  26. int32_t* const gdtr_size = (int32_t* const) 572;
  27. int32_t* const gdtr_offset = (int32_t* const) 576;
  28. int32_t* const cr = (int32_t* const) 580; // length 32
  29. uint8_t* const cpl = (uint8_t* const) 612;
  30. int32_t* const page_size_extensions = (int32_t* const) 616;
  31. int32_t* const last_virt_eip = (int32_t* const) 620;
  32. int32_t* const eip_phys = (int32_t* const) 624;
  33. int32_t* const last_virt_esp = (int32_t* const) 628;
  34. int32_t* const esp_phys = (int32_t* const) 632;
  35. int32_t* const sysenter_cs = (int32_t* const) 636;
  36. int32_t* const sysenter_esp = (int32_t* const) 640;
  37. int32_t* const sysenter_eip = (int32_t* const) 644;
  38. uint8_t* const prefixes = (uint8_t* const) 648;
  39. int32_t* const tsc_offset = (int32_t* const) 652;
  40. int32_t* const phys_addr = (int32_t* const) 656;
  41. int32_t* const phys_addr_high = (int32_t* const) 660;
  42. uint32_t* const timestamp_counter = (uint32_t* const) 664;
  43. uint16_t* const sreg = (uint16_t* const) 668;
  44. int32_t* const dreg = (int32_t* const) 684; // length 32
  45. int32_t* const fw_value = (int32_t* const) 720;
  46. bool* const segment_is_null = (bool* const) 724; // length 8
  47. int32_t* const segment_offsets = (int32_t* const) 736; // length 32
  48. uint32_t* const segment_limits = (uint32_t* const) 768; // length 32
  49. bool* const protected_mode = (bool* const) 800;
  50. bool* const is_32 = (bool* const) 804;
  51. bool* const stack_size_32 = (bool* const) 808;
  52. uint32_t* const memory_size = (uint32_t* const) 812;
  53. int32_t* const fpu_stack_empty = (int32_t* const) 816;
  54. bool* const paging = (bool* const) 820;
  55. int32_t* const mxcsr = (int32_t* const) 824;
  56. union reg128* const reg_xmm = (union reg128* const) 828; // length 128
  57. uint8_t* const tlb_info = (uint8_t* const) 2048; // length 0x100000
  58. uint8_t* const tlb_info_global = (uint8_t* const) (2048 + 0x100000); // length 0x100000
  59. int32_t* const tlb_data = (int32_t* const) (2048 + 0x100000 + 0x100000); // length 0x100000*4
  60. uint8_t* const codegen_buffers = (uint8_t* const) (2048 + 0x100000 * 6); // length 2048
  61. uint8_t* const mem8 = (uint8_t* const) (2048 + 0x100000 * 6 + 2048);
  62. uint16_t* const mem16 = (uint16_t* const) (2048 + 0x100000 * 6 + 2048);
  63. int32_t* const mem32s = (int32_t* const) (2048 + 0x100000 * 6 + 2048);
  64. float_t* const fpu_float32 = (float_t* const) 956;
  65. uint8_t* const fpu_float32_byte = (uint8_t* const) 956;
  66. int32_t* const fpu_float32_int = (int32_t* const) 956;
  67. double_t* const fpu_float64 = (double_t* const) 960;
  68. uint8_t* const fpu_float64_byte = (uint8_t* const) 960;
  69. int32_t* const fpu_float64_int = (int32_t* const) 960;
  70. uint32_t* const fpu_stack_ptr = (uint32_t* const) 1032;
  71. int32_t* const fpu_control_word = (int32_t* const) 1036;
  72. int32_t* const fpu_status_word = (int32_t* const) 1040;
  73. int32_t* const fpu_opcode = (int32_t* const) 1044;
  74. int32_t* const fpu_ip = (int32_t* const) 1048;
  75. int32_t* const fpu_ip_selector = (int32_t* const) 1052;
  76. int32_t* const fpu_dp = (int32_t* const) 1056;
  77. int32_t* const fpu_dp_selector = (int32_t* const) 1060;
  78. double_t* const fpu_st = (double_t* const) 968;
  79. uint8_t* const fpu_st8 = (uint8_t* const) 968;
  80. int32_t* const fpu_st32 = (int32_t* const) 968;
  81. union reg64* const reg_mmx = (union reg64* const) 1064; // length 64
  82. uint32_t* const cache_hit = (uint32_t* const) 1280;
  83. uint32_t* const cache_compile = (uint32_t* const) 1284;
  84. #endif