/[dynamips]/upstream/dynamips-0.2.6-RC3/mips64.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 /upstream/dynamips-0.2.6-RC3/mips64.h

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

upstream/dynamips-0.2.6-RC2/mips64.h revision 3 by dpavlin, Sat Oct 6 16:05:34 2007 UTC upstream/dynamips-0.2.6-RC3/mips64.h revision 4 by dpavlin, Sat Oct 6 16:06:49 2007 UTC
# Line 175  Line 175 
175  /* TLB masks and shifts */  /* TLB masks and shifts */
176  #define MIPS_TLB_PAGE_MASK     0x01ffe000  #define MIPS_TLB_PAGE_MASK     0x01ffe000
177  #define MIPS_TLB_PAGE_SHIFT    13  #define MIPS_TLB_PAGE_SHIFT    13
178  #define MIPS_TLB_VPN2_MASK     0xffffffffffffe000ULL  #define MIPS_TLB_VPN2_MASK_32  0xffffe000ULL
179    #define MIPS_TLB_VPN2_MASK_64  0xc00000ffffffe000ULL
180  #define MIPS_TLB_PFN_MASK      0x3fffffc0  #define MIPS_TLB_PFN_MASK      0x3fffffc0
181  #define MIPS_TLB_ASID_MASK     0x000000ff     /* "asid" in EntryHi */  #define MIPS_TLB_ASID_MASK     0x000000ff     /* "asid" in EntryHi */
182  #define MIPS_TLB_G_MASK        0x00001000     /* "Global" in EntryHi */  #define MIPS_TLB_G_MASK        0x00001000     /* "Global" in EntryHi */
# Line 371  struct mts64_entry { Line 372  struct mts64_entry {
372     mts64_entry_t *next,**pprev;     mts64_entry_t *next,**pprev;
373  };  };
374    
375  /* MTS64 chunk forward declaration */  /* MTS32 entry */
376    typedef struct mts32_entry mts32_entry_t;
377    struct mts32_entry {
378       m_uint32_t start;
379       m_iptr_t   action;
380       m_uint32_t mask;
381       m_uint32_t phys_page;
382       mts32_entry_t **pself;
383       mts32_entry_t *next,**pprev;
384    };
385    
386    /* MTS chunk forward declaration */
387  typedef struct mts64_chunk mts64_chunk_t;  typedef struct mts64_chunk mts64_chunk_t;
388    typedef struct mts32_chunk mts32_chunk_t;
389    
390  /* Maximum results for idle pc */  /* Maximum results for idle pc */
391  #define MIPS64_IDLE_PC_MAX_RES  10  #define MIPS64_IDLE_PC_MAX_RES  10
# Line 388  struct cpu_mips { Line 401  struct cpu_mips {
401     /* MTS 1st level array */     /* MTS 1st level array */
402     void *mts_l1_ptr;     void *mts_l1_ptr;
403    
404     /* MTS64 cache */     /* MTS32/MTS64 caches */
405     mts64_entry_t **mts64_cache;     void **mts_cache;
406    
407     /* Virtual version of CP0 Compare Register */     /* Virtual version of CP0 Compare Register */
408     m_uint32_t cp0_virt_cnt_reg,cp0_virt_cmp_reg;     m_uint32_t cp0_virt_cnt_reg,cp0_virt_cmp_reg;
# Line 418  struct cpu_mips { Line 431  struct cpu_mips {
431     /* FPU (CP1) */     /* FPU (CP1) */
432     mips_cp1_t fpu;     mips_cp1_t fpu;
433    
434     /* MTS32 array free list */     /* Address bus mask for physical addresses */
    void *mts32_l2_free_list;  
     
    /* Address bus mask */  
435     m_uint64_t addr_bus_mask;     m_uint64_t addr_bus_mask;
436    
437     /* IRQ counters and cause */     /* IRQ counters and cause */
# Line 484  struct cpu_mips { Line 494  struct cpu_mips {
494    
495     void (*mts_rebuild)(cpu_mips_t *cpu);     void (*mts_rebuild)(cpu_mips_t *cpu);
496    
497     /* MTS64 chunk list */     void (*mts_shutdown)(cpu_mips_t *cpu);
498     mts64_chunk_t *mts64_chunk_list;  
499     mts64_chunk_t *mts64_chunk_free_list;     /* Show MTS statistics */
500     mts64_entry_t *mts64_entry_free_list;     void (*mts_show_stats)(cpu_mips_t *cpu);
501    
502     /* MTS64 cache statistics */     /* MTS chunk list */
503     m_uint64_t mts64_misses,mts64_lookups;     void *mts_chunk_list;
504       void *mts_chunk_free_list;
505       void *mts_entry_free_list;
506    
507       /* MTS cache statistics */
508       m_uint64_t mts_misses,mts_lookups;
509    
510     /* Reverse map for MTS64 */     /* Reverse map for MTS64 */
511     mts64_entry_t *mts64_rmap[MIPS64_TLB_MAX_ENTRIES];     void *mts_rmap[MIPS64_TLB_MAX_ENTRIES];
512    
513     /* JIT flush method */     /* JIT flush method */
514     u_int jit_flush_method;     u_int jit_flush_method;
# Line 504  struct cpu_mips { Line 519  struct cpu_mips {
519     /* Fast memory operations use */     /* Fast memory operations use */
520     u_int fast_memop;     u_int fast_memop;
521    
522       /* Address mode (32 or 64 bits) */
523       u_int addr_mode;
524    
525     /* Current exec page (non-JIT) info */     /* Current exec page (non-JIT) info */
526     m_uint64_t njm_exec_page;     m_uint64_t njm_exec_page;
527     mips_insn_t *njm_exec_ptr;     mips_insn_t *njm_exec_ptr;
# Line 640  int mips64_save_state(cpu_mips_t *cpu,ch Line 658  int mips64_save_state(cpu_mips_t *cpu,ch
658  int mips64_load_raw_image(cpu_mips_t *cpu,char *filename,m_uint64_t vaddr);  int mips64_load_raw_image(cpu_mips_t *cpu,char *filename,m_uint64_t vaddr);
659    
660  /* Load an ELF image into the simulated memory */  /* Load an ELF image into the simulated memory */
661  int mips64_load_elf_image(cpu_mips_t *cpu,char *filename,  int mips64_load_elf_image(cpu_mips_t *cpu,char *filename,int skip_load,
662                            m_uint32_t *entry_point);                            m_uint32_t *entry_point);
663    
664  /* Symbol lookup */  /* Symbol lookup */

Legend:
Removed from v.3  
changed lines
  Added in v.4

  ViewVC Help
Powered by ViewVC 1.1.26