Diff for /np2/i386c/ia32/cpu.h between versions 1.7 and 1.11

version 1.7, 2004/01/05 14:30:34 version 1.11, 2004/01/27 15:51:35
Line 75  typedef union { Line 75  typedef union {
 }  }
 #endif  #endif
   
 #include "cpu_io.h"  
 #include "cpu_mem.h"  
 #include "exception.h"  
 #include "paging.h"  
 #include "resolve.h"  
 #include "segments.h"  #include "segments.h"
 #include "task.h"  
   
 #ifdef __cplusplus  #ifdef __cplusplus
 extern "C" {  extern "C" {
Line 110  enum { Line 104  enum {
         CPU_SEGREG_NUM          CPU_SEGREG_NUM
 };  };
   
   enum {
           CPU_TEST_REG_NUM = 8
   };
   
   enum {
           CPU_DEBUG_REG_NUM = 8
   };
   
   enum {
           MAX_PREFIX = 8
   };
   
 typedef struct {  typedef struct {
         REG32           reg[CPU_REG_NUM];          REG32           reg[CPU_REG_NUM];
         WORD            sreg[CPU_SEGREG_NUM];          WORD            sreg[CPU_SEGREG_NUM];
Line 118  typedef struct { Line 124  typedef struct {
   
         REG32           eip;          REG32           eip;
         REG32           prev_eip;          REG32           prev_eip;
   
           DWORD           tr[CPU_TEST_REG_NUM];
           DWORD           dr[CPU_DEBUG_REG_NUM];
 } CPU_REGS;  } CPU_REGS;
   
 typedef struct {  typedef struct {
Line 143  typedef struct { Line 152  typedef struct {
         descriptor_t    sreg[CPU_SEGREG_NUM];          descriptor_t    sreg[CPU_SEGREG_NUM];
   
         UINT32          adrsmask;          UINT32          adrsmask;
 //      DWORD           inport;         // -> i386core.e.inport  
         DWORD           ovflag;          DWORD           ovflag;
   
         BYTE            ss_32;          BYTE            ss_32;
Line 219  extern I386CORE  i386core; Line 227  extern I386CORE  i386core;
 #define CPU_INPADRS     i386core.e.inport  #define CPU_INPADRS     i386core.e.inport
   
 extern BYTE             iflags[];  extern BYTE             iflags[];
 extern jmp_buf          exec_1step_jmpbuf;  extern sigjmp_buf       exec_1step_jmpbuf;
   
   
 /*  /*
Line 231  extern jmp_buf  exec_1step_jmpbuf; Line 239  extern jmp_buf  exec_1step_jmpbuf;
 #define CPU_VENDOR_3    0x6c65746e      /* "ntel" */  #define CPU_VENDOR_3    0x6c65746e      /* "ntel" */
   
 /* version */  /* version */
 #define CPU_FAMILY      6  #define CPU_FAMILY      4
 #define CPU_MODEL       1  #define CPU_MODEL       2
 #define CPU_STEPPING    3  #define CPU_STEPPING    3
   
 /* feature */  /* feature */
Line 292  do { \ Line 300  do { \
 #define CPU_STAT_SREG_INIT(n) \  #define CPU_STAT_SREG_INIT(n) \
 do { \  do { \
         descriptor_t sd; \          descriptor_t sd; \
         memset(&CPU_STAT_SREG(n), 0, sizeof(CPU_STAT_SREG(n))); \  \
         memset(&sd, 0, sizeof(sd)); \          memset(&sd, 0, sizeof(sd)); \
         sd.u.seg.limit = 0xffff; \          sd.u.seg.limit = 0xffff; \
         CPU_SET_SEGDESC_DEFAULT(&sd, (n), 0); \          CPU_SET_SEGDESC_DEFAULT(&sd, (n), 0); \
Line 462  void set_eflags(DWORD new_flags, DWORD m Line 470  void set_eflags(DWORD new_flags, DWORD m
 #define CPU_CR3_PD_MASK         0xfffff000  #define CPU_CR3_PD_MASK         0xfffff000
 #define CPU_CR3_PWT             (1 << 3)  #define CPU_CR3_PWT             (1 << 3)
 #define CPU_CR3_PCD             (1 << 4)  #define CPU_CR3_PCD             (1 << 4)
   #define CPU_CR3_MASK            (CPU_CR3_PD_MASK|CPU_CR3_PWT|CPU_CR3_PCD)
   
 #define CPU_CR4_VME             (1 << 0)  #define CPU_CR4_VME             (1 << 0)
 #define CPU_CR4_PVI             (1 << 1)  #define CPU_CR4_PVI             (1 << 1)
Line 514  extern WORD  *reg16_b53[0x100]; Line 523  extern WORD  *reg16_b53[0x100];
 extern DWORD *reg32_b20[0x100];  extern DWORD *reg32_b20[0x100];
 extern DWORD *reg32_b53[0x100];  extern DWORD *reg32_b53[0x100];
   
   extern const char *reg8_str[8];
   extern const char *reg16_str[8];
   extern const char *reg32_str[8];
   
 /*  /*
  * Profile   * Misc.
  */   */
 #if defined(IA32_PROFILE_INSTRUCTION)  void gdtr_dump(DWORD base, DWORD limit);
 extern UINT32   inst_1byte_count[2][256];  void idtr_dump(DWORD base, DWORD limit);
 extern UINT32   inst_2byte_count[2][256];  void ldtr_dump(DWORD base, DWORD limit);
 extern UINT32   ea16_count[24];  void tr_dump(WORD selector, DWORD base, DWORD limit);
 extern UINT32   ea32_count[24];  
 extern UINT32   sib0_count[256];  
 extern UINT32   sib1_count[256];  
 extern UINT32   sib2_count[256];  
   
 #define PROFILE_INC_INST_1BYTE(op)      inst_1byte_count[CPU_INST_OP32][op]++  
 #define PROFILE_INC_INST_2BYTE(op)      inst_2byte_count[CPU_INST_OP32][op]++  
 #define PROFILE_INC_EA16(idx)           ea16_count[idx]++  
 #define PROFILE_INC_EA32(idx)           ea32_count[idx]++  
 #define PROFILE_INC_SIB0(op)            sib0_count[op]++  
 #define PROFILE_INC_SIB1(op)            sib1_count[op]++  
 #define PROFILE_INC_SIB2(op)            sib2_count[op]++  
 #else  
 #define PROFILE_INC_INST_1BYTE(op)  
 #define PROFILE_INC_INST_2BYTE(op)  
 #define PROFILE_INC_EA16(idx)  
 #define PROFILE_INC_EA32(idx)  
 #define PROFILE_INC_SIB0(op)  
 #define PROFILE_INC_SIB1(op)  
 #define PROFILE_INC_SIB2(op)  
 #endif  
   
 #ifdef __cplusplus  #ifdef __cplusplus
 }  }
 #endif  #endif
   
   #include "cpu_io.h"
   #include "cpu_mem.h"
   #include "exception.h"
   #include "paging.h"
   #include "resolve.h"
   #include "task.h"
   
 #endif  /* !IA32_CPU_CPU_H__ */  #endif  /* !IA32_CPU_CPU_H__ */

Removed from v.1.7  
changed lines
  Added in v.1.11


RetroPC.NET-CVS <cvs@retropc.net>