/[gxemul]/trunk/src/include/cpu_mips.h
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/src/include/cpu_mips.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 10 by dpavlin, Mon Oct 8 16:18:27 2007 UTC revision 12 by dpavlin, Mon Oct 8 16:18:38 2007 UTC
# Line 28  Line 28 
28   *  SUCH DAMAGE.   *  SUCH DAMAGE.
29   *   *
30   *   *
31   *  $Id: cpu_mips.h,v 1.16 2005/06/26 22:23:43 debug Exp $   *  $Id: cpu_mips.h,v 1.20 2005/08/07 17:42:03 debug Exp $
32   */   */
33    
34  #include "misc.h"  #include "misc.h"
# Line 57  struct mips_cpu_type_def { Line 57  struct mips_cpu_type_def {
57          char            isa_level;              /*  1, 2, 3, 4, 5, 32, 64  */          char            isa_level;              /*  1, 2, 3, 4, 5, 32, 64  */
58          int             nr_of_tlb_entries;      /*  32, 48, 64, ...  */          int             nr_of_tlb_entries;      /*  32, 48, 64, ...  */
59          char            instrs_per_cycle;       /*  simplified, 1, 2, or 4  */          char            instrs_per_cycle;       /*  simplified, 1, 2, or 4  */
60          int             default_picache;          int             picache;
61          int             default_pdcache;          int             pilinesize;
62          int             default_pilinesize;          int             piways;
63          int             default_pdlinesize;          int             pdcache;
64          int             default_scache;          int             pdlinesize;
65          int             default_slinesize;          int             pdways;
66            int             scache;
67            int             slinesize;
68            int             sways;
69  };  };
70    
71  #define INITIAL_PC                      0xffffffffbfc00000ULL  #define INITIAL_PC                      0xffffffffbfc00000ULL
# Line 259  struct mips_cpu { Line 262  struct mips_cpu {
262          uint64_t        pc_last_physical_page;          uint64_t        pc_last_physical_page;
263          unsigned char   *pc_last_host_4k_page;          unsigned char   *pc_last_host_4k_page;
264    
265  #ifdef BINTRANS          /*  MIPS Bintrans:  */
266          int             dont_run_next_bintrans;          int             dont_run_next_bintrans;
267          int             bintrans_instructions_executed;  /*  set to the          int             bintrans_instructions_executed;  /*  set to the
268                                  number of bintranslated instructions executed                                  number of bintranslated instructions executed
# Line 282  struct mips_cpu { Line 285  struct mips_cpu {
285          struct vth32_table **vaddr_to_hostaddr_table0;  /*  should point to kernel or user  */          struct vth32_table **vaddr_to_hostaddr_table0;  /*  should point to kernel or user  */
286          struct vth32_table *next_free_vth_table;          struct vth32_table *next_free_vth_table;
287    
288    /*  Testing...  */
289            unsigned char   **host_load;
290            unsigned char   **host_store;
291            unsigned char   **host_load_orig;
292            unsigned char   **host_store_orig;
293            unsigned char   **huge_r2k3k_cache_table;
294    
295          /*  For 64-bit (generic) emulation:  */          /*  For 64-bit (generic) emulation:  */
296          unsigned char   *(*fast_vaddr_to_hostaddr)(struct cpu *cpu,          unsigned char   *(*fast_vaddr_to_hostaddr)(struct cpu *cpu,
297                              uint64_t vaddr, int writeflag);                              uint64_t vaddr, int writeflag);
# Line 298  struct mips_cpu { Line 308  struct mips_cpu {
308          void            (*bintrans_fast_eret)(struct cpu *);          void            (*bintrans_fast_eret)(struct cpu *);
309          void            (*bintrans_fast_tlbwri)(struct cpu *, int);          void            (*bintrans_fast_tlbwri)(struct cpu *, int);
310          void            (*bintrans_fast_tlbpr)(struct cpu *, int);          void            (*bintrans_fast_tlbpr)(struct cpu *, int);
 #endif  
311    
312  #ifdef ENABLE_MIPS16  #ifdef ENABLE_MIPS16
313          int             mips16;                 /*  non-zero if MIPS16 code is allowed  */          int             mips16;                 /*  non-zero if MIPS16 code is allowed  */
# Line 309  struct mips_cpu { Line 318  struct mips_cpu {
318          int             instruction_delay;          int             instruction_delay;
319  #endif  #endif
320    
         int             trace_tree_depth;  
   
321          uint64_t        delay_jmpaddr;          /*  only used if delay_slot > 0  */          uint64_t        delay_jmpaddr;          /*  only used if delay_slot > 0  */
322          int             delay_slot;          int             delay_slot;
323          int             nullify_next;           /*  set to 1 if next instruction          int             nullify_next;           /*  set to 1 if next instruction
# Line 395  void mips_coproc_tlb_set_entry(struct cp Line 402  void mips_coproc_tlb_set_entry(struct cp
402          uint64_t vaddr, uint64_t paddr0, uint64_t paddr1,          uint64_t vaddr, uint64_t paddr0, uint64_t paddr1,
403          int valid0, int valid1, int dirty0, int dirty1, int global, int asid,          int valid0, int valid1, int dirty0, int dirty1, int global, int asid,
404          int cachealgo0, int cachealgo1);          int cachealgo0, int cachealgo1);
405  void update_translation_table(struct cpu *cpu, uint64_t vaddr_page,  void mips_update_translation_table(struct cpu *cpu, uint64_t vaddr_page,
406          unsigned char *host_page, int writeflag, uint64_t paddr_page);          unsigned char *host_page, int writeflag, uint64_t paddr_page);
407  void clear_all_chunks_from_all_tables(struct cpu *cpu);  void clear_all_chunks_from_all_tables(struct cpu *cpu);
408  void mips_invalidate_translation_caches_paddr(struct cpu *cpu, uint64_t paddr);  void mips_invalidate_translation_caches_paddr(struct cpu *cpu, uint64_t paddr);

Legend:
Removed from v.10  
changed lines
  Added in v.12

  ViewVC Help
Powered by ViewVC 1.1.26