Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(213)

Side by Side Diff: sim/bfin/bfin-sim.h

Issue 11969036: Merge GDB 7.5.1 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@master
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sim/bfin/aclocal.m4 ('k') | sim/bfin/bfin-sim.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Simulator for Analog Devices Blackfin processors. 1 /* Simulator for Analog Devices Blackfin processors.
2 2
3 Copyright (C) 2005-2012 Free Software Foundation, Inc. 3 Copyright (C) 2005-2012 Free Software Foundation, Inc.
4 Contributed by Analog Devices, Inc. 4 Contributed by Analog Devices, Inc.
5 5
6 This file is part of simulators. 6 This file is part of simulators.
7 7
8 This program is free software; you can redistribute it and/or modify 8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by 9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3 of the License, or 10 the Free Software Foundation; either version 3 of the License, or
(...skipping 26 matching lines...) Expand all
37 37
38 /* For dealing with parallel instructions, we must avoid changing our register 38 /* For dealing with parallel instructions, we must avoid changing our register
39 file until all parallel insns have been simulated. This queue of stores 39 file until all parallel insns have been simulated. This queue of stores
40 can be used to delay a modification. 40 can be used to delay a modification.
41 XXX: Should go and convert all 32 bit insns to use this. */ 41 XXX: Should go and convert all 32 bit insns to use this. */
42 struct store { 42 struct store {
43 bu32 *addr; 43 bu32 *addr;
44 bu32 val; 44 bu32 val;
45 }; 45 };
46 46
47 enum bfin_parallel_group {
48 BFIN_PARALLEL_NONE,
49 BFIN_PARALLEL_GROUP0, /* 32bit slot. */
50 BFIN_PARALLEL_GROUP1, /* 16bit group1. */
51 BFIN_PARALLEL_GROUP2, /* 16bit group2. */
52 };
53
47 /* The KSP/USP handling wrt SP may not follow the hardware exactly (the hw 54 /* The KSP/USP handling wrt SP may not follow the hardware exactly (the hw
48 looks at current mode and uses either SP or USP based on that. We instead 55 looks at current mode and uses either SP or USP based on that. We instead
49 always operate on SP and mirror things in KSP and USP. During a CEC 56 always operate on SP and mirror things in KSP and USP. During a CEC
50 transition, we take care of syncing the values. This lowers the simulation 57 transition, we take care of syncing the values. This lowers the simulation
51 complexity and speeds things up a bit. */ 58 complexity and speeds things up a bit. */
52 struct bfin_cpu_state 59 struct bfin_cpu_state
53 { 60 {
54 bu32 dpregs[16], iregs[4], mregs[4], bregs[4], lregs[4], cycles[3]; 61 bu32 dpregs[16], iregs[4], mregs[4], bregs[4], lregs[4], cycles[3];
55 bu32 ax[2], aw[2]; 62 bu32 ax[2], aw[2];
56 bu32 lt[2], lc[2], lb[2]; 63 bu32 lt[2], lc[2], lb[2];
(...skipping 14 matching lines...) Expand all
71 78
72 /* Used by the CEC to figure out where to return to. */ 79 /* Used by the CEC to figure out where to return to. */
73 bu32 insn_len; 80 bu32 insn_len;
74 81
75 /* How many cycles did this insn take to complete ? */ 82 /* How many cycles did this insn take to complete ? */
76 bu32 cycle_delay; 83 bu32 cycle_delay;
77 84
78 /* The pc currently being interpreted in parallel insns. */ 85 /* The pc currently being interpreted in parallel insns. */
79 bu32 multi_pc; 86 bu32 multi_pc;
80 87
88 /* Some insns are valid in group1, and others in group2, so we
89 need to keep track of the exact slot we're processing. */
90 enum bfin_parallel_group group;
91
81 /* Needed for supporting the DISALGNEXCPT instruction */ 92 /* Needed for supporting the DISALGNEXCPT instruction */
82 int dis_algn_expt; 93 int dis_algn_expt;
83 94
84 /* See notes above for struct store. */ 95 /* See notes above for struct store. */
85 struct store stores[20]; 96 struct store stores[20];
86 int n_stores; 97 int n_stores;
87 98
88 #if (WITH_HW) 99 #if (WITH_HW)
89 /* Cache heavily used CPU-specific device pointers. */ 100 /* Cache heavily used CPU-specific device pointers. */
90 void *cec_cache; 101 void *cec_cache;
(...skipping 28 matching lines...) Expand all
119 #define SYSCFGREG (BFIN_CPU_STATE.syscfg) 130 #define SYSCFGREG (BFIN_CPU_STATE.syscfg)
120 #define RETSREG (BFIN_CPU_STATE.rets) 131 #define RETSREG (BFIN_CPU_STATE.rets)
121 #define RETIREG (BFIN_CPU_STATE.reti) 132 #define RETIREG (BFIN_CPU_STATE.reti)
122 #define RETXREG (BFIN_CPU_STATE.retx) 133 #define RETXREG (BFIN_CPU_STATE.retx)
123 #define RETNREG (BFIN_CPU_STATE.retn) 134 #define RETNREG (BFIN_CPU_STATE.retn)
124 #define RETEREG (BFIN_CPU_STATE.rete) 135 #define RETEREG (BFIN_CPU_STATE.rete)
125 #define PCREG (BFIN_CPU_STATE.pc) 136 #define PCREG (BFIN_CPU_STATE.pc)
126 #define EMUDAT_INREG (BFIN_CPU_STATE.emudat[0]) 137 #define EMUDAT_INREG (BFIN_CPU_STATE.emudat[0])
127 #define EMUDAT_OUTREG (BFIN_CPU_STATE.emudat[1]) 138 #define EMUDAT_OUTREG (BFIN_CPU_STATE.emudat[1])
128 #define INSN_LEN (BFIN_CPU_STATE.insn_len) 139 #define INSN_LEN (BFIN_CPU_STATE.insn_len)
140 #define PARALLEL_GROUP (BFIN_CPU_STATE.group)
129 #define CYCLE_DELAY (BFIN_CPU_STATE.cycle_delay) 141 #define CYCLE_DELAY (BFIN_CPU_STATE.cycle_delay)
130 #define DIS_ALGN_EXPT (BFIN_CPU_STATE.dis_algn_expt) 142 #define DIS_ALGN_EXPT (BFIN_CPU_STATE.dis_algn_expt)
131 143
132 #define EXCAUSE_SHIFT 0 144 #define EXCAUSE_SHIFT 0
133 #define EXCAUSE_MASK (0x3f << EXCAUSE_SHIFT) 145 #define EXCAUSE_MASK (0x3f << EXCAUSE_SHIFT)
134 #define EXCAUSE ((SEQSTATREG & EXCAUSE_MASK) >> EXCAUSE_SHIFT) 146 #define EXCAUSE ((SEQSTATREG & EXCAUSE_MASK) >> EXCAUSE_SHIFT)
135 #define HWERRCAUSE_SHIFT 14 147 #define HWERRCAUSE_SHIFT 14
136 #define HWERRCAUSE_MASK (0x1f << HWERRCAUSE_SHIFT) 148 #define HWERRCAUSE_MASK (0x1f << HWERRCAUSE_SHIFT)
137 #define HWERRCAUSE ((SEQSTATREG & HWERRCAUSE_MASK) >> HWERRCAUSE_SH IFT) 149 #define HWERRCAUSE ((SEQSTATREG & HWERRCAUSE_MASK) >> HWERRCAUSE_SH IFT)
138 150
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 #define BFIN_ASYNC_BASE 0x20000000 353 #define BFIN_ASYNC_BASE 0x20000000
342 #define BFIN_SYSTEM_MMR_BASE 0xFFC00000 354 #define BFIN_SYSTEM_MMR_BASE 0xFFC00000
343 #define BFIN_CORE_MMR_BASE 0xFFE00000 355 #define BFIN_CORE_MMR_BASE 0xFFE00000
344 #define BFIN_L1_SRAM_SCRATCH 0xFFB00000 356 #define BFIN_L1_SRAM_SCRATCH 0xFFB00000
345 #define BFIN_L1_SRAM_SCRATCH_SIZE 0x1000 357 #define BFIN_L1_SRAM_SCRATCH_SIZE 0x1000
346 #define BFIN_L1_SRAM_SCRATCH_END (BFIN_L1_SRAM_SCRATCH + BFIN_L1_SRAM_SCRATCH_S IZE) 358 #define BFIN_L1_SRAM_SCRATCH_END (BFIN_L1_SRAM_SCRATCH + BFIN_L1_SRAM_SCRATCH_S IZE)
347 359
348 #define BFIN_L1_CACHE_BYTES 32 360 #define BFIN_L1_CACHE_BYTES 32
349 361
350 #endif 362 #endif
OLDNEW
« no previous file with comments | « sim/bfin/aclocal.m4 ('k') | sim/bfin/bfin-sim.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698