/[gxemul]/trunk/src/include/cpu_arm.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_arm.h

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

revision 19 by dpavlin, Mon Oct 8 16:19:11 2007 UTC revision 20 by dpavlin, Mon Oct 8 16:19:23 2007 UTC
# Line 28  Line 28 
28   *  SUCH DAMAGE.   *  SUCH DAMAGE.
29   *   *
30   *   *
31   *  $Id: cpu_arm.h,v 1.53 2005/10/27 14:01:15 debug Exp $   *  $Id: cpu_arm.h,v 1.57 2005/11/16 21:15:19 debug Exp $
32   */   */
33    
34  #include "misc.h"  #include "misc.h"
# Line 92  struct arm_tc_physpage { Line 92  struct arm_tc_physpage {
92  };  };
93    
94    
95    #define ARM_F_N         8       /*  Same as ARM_FLAG_*, but        */
96    #define ARM_F_Z         4       /*  for the 'flags' field instead  */
97    #define ARM_F_C         2       /*  of cpsr.                       */
98    #define ARM_F_V         1
99    
100  #define ARM_FLAG_N      0x80000000      /*  Negative flag  */  #define ARM_FLAG_N      0x80000000      /*  Negative flag  */
101  #define ARM_FLAG_Z      0x40000000      /*  Zero flag  */  #define ARM_FLAG_Z      0x40000000      /*  Zero flag  */
102  #define ARM_FLAG_C      0x20000000      /*  Carry flag  */  #define ARM_FLAG_C      0x20000000      /*  Carry flag  */
# Line 134  struct arm_tc_physpage { Line 139  struct arm_tc_physpage {
139    
140  #define ARM_MAX_VPH_TLB_ENTRIES         128  #define ARM_MAX_VPH_TLB_ENTRIES         128
141  struct arm_vpg_tlb_entry {  struct arm_vpg_tlb_entry {
142          int             valid;          unsigned char   valid;
143          int             writeflag;          unsigned char   writeflag;
         int64_t         timestamp;  
         unsigned char   *host_page;  
144          uint32_t        vaddr_page;          uint32_t        vaddr_page;
145          uint32_t        paddr_page;          uint32_t        paddr_page;
146            unsigned char   *host_page;
147  };  };
148    
149    
# Line 173  struct arm_cpu { Line 177  struct arm_cpu {
177    
178          uint32_t                tmp_pc;         /*  Used for load/stores  */          uint32_t                tmp_pc;         /*  Used for load/stores  */
179    
180          /*  Flag/status registers:  */          /*
181             *  Flag/status registers:
182             *
183             *  NOTE: 'flags' just contains the 4 flag bits. When cpsr is read,
184             *  the flags should be copied from 'flags', and when cpsr is written
185             *  to, 'flags' should be updated as well.
186             */
187            size_t                  flags;
188          uint32_t                cpsr;          uint32_t                cpsr;
189          uint32_t                spsr_svc;          uint32_t                spsr_svc;
190          uint32_t                spsr_abt;          uint32_t                spsr_abt;
# Line 214  struct arm_cpu { Line 225  struct arm_cpu {
225          struct arm_instr_call   *cur_ic_page;          struct arm_instr_call   *cur_ic_page;
226          struct arm_instr_call   *next_ic;          struct arm_instr_call   *next_ic;
227    
228            void                    (*combination_check)(struct cpu *,
229                                        struct arm_instr_call *, int low_addr);
230    
231          /*          /*
232           *  Virtual -> physical -> host address translation:           *  Virtual -> physical -> host address translation:
# Line 230  struct arm_cpu { Line 243  struct arm_cpu {
243          struct arm_tc_physpage          *phys_page[ARM_N_VPH_ENTRIES];          struct arm_tc_physpage          *phys_page[ARM_N_VPH_ENTRIES];
244    
245          uint32_t                        phystranslation[ARM_N_VPH_ENTRIES/32];          uint32_t                        phystranslation[ARM_N_VPH_ENTRIES/32];
246          int16_t                         vaddr_to_tlbindex[ARM_N_VPH_ENTRIES];          uint8_t                         vaddr_to_tlbindex[ARM_N_VPH_ENTRIES];
247    
248          /*  ARM specific: */          /*  ARM specific: */
249          unsigned char                   is_userpage[ARM_N_VPH_ENTRIES/8];          uint32_t                        is_userpage[ARM_N_VPH_ENTRIES/32];
250  };  };
251    
252    

Legend:
Removed from v.19  
changed lines
  Added in v.20

  ViewVC Help
Powered by ViewVC 1.1.26