Revision ea2b542a target-sh4/cpu.h

b/target-sh4/cpu.h
163 163
#define MMUCR    0x1F000010
164 164
#define MMUCR_AT (1<<0)
165 165
#define MMUCR_SV (1<<8)
166
#define MMUCR_URC_BITS (6)
167
#define MMUCR_URC_OFFSET (10)
168
#define MMUCR_URC_SIZE (1 << MMUCR_URC_BITS)
169
#define MMUCR_URC_MASK (((MMUCR_URC_SIZE) - 1) << MMUCR_URC_OFFSET)
170
static inline int cpu_mmucr_urc (uint32_t mmucr)
171
{
172
    return ((mmucr & MMUCR_URC_MASK) >> MMUCR_URC_OFFSET);
173
}
174

  
175
/* PTEH : Page Translation Entry High register */
176
#define PTEH_ASID_BITS (8)
177
#define PTEH_ASID_SIZE (1 << PTEH_ASID_BITS)
178
#define PTEH_ASID_MASK (PTEH_ASID_SIZE - 1)
179
#define cpu_pteh_asid(pteh) ((pteh) & PTEH_ASID_MASK)
180
#define PTEH_VPN_BITS (22)
181
#define PTEH_VPN_OFFSET (10)
182
#define PTEH_VPN_SIZE (1 << PTEH_VPN_BITS)
183
#define PTEH_VPN_MASK (((PTEH_VPN_SIZE) - 1) << PTEH_VPN_OFFSET)
184
static inline int cpu_pteh_vpn (uint32_t pteh)
185
{
186
    return ((pteh & PTEH_VPN_MASK) >> PTEH_VPN_OFFSET);
187
}
188

  
189
/* PTEL : Page Translation Entry Low register */
190
#define PTEL_V        (1 << 8)
191
#define cpu_ptel_v(ptel) (((ptel) & PTEL_V) >> 8)
192
#define PTEL_C        (1 << 3)
193
#define cpu_ptel_c(ptel) (((ptel) & PTEL_C) >> 3)
194
#define PTEL_D        (1 << 2)
195
#define cpu_ptel_d(ptel) (((ptel) & PTEL_D) >> 2)
196
#define PTEL_SH       (1 << 1)
197
#define cpu_ptel_sh(ptel)(((ptel) & PTEL_SH) >> 1)
198
#define PTEL_WT       (1 << 0)
199
#define cpu_ptel_wt(ptel) ((ptel) & PTEL_WT)
200

  
201
#define PTEL_SZ_HIGH_OFFSET  (7)
202
#define PTEL_SZ_HIGH  (1 << PTEL_SZ_HIGH_OFFSET)
203
#define PTEL_SZ_LOW_OFFSET   (4)
204
#define PTEL_SZ_LOW   (1 << PTEL_SZ_LOW_OFFSET)
205
static inline int cpu_ptel_sz (uint32_t ptel)
206
{
207
    int sz;
208
    sz = (ptel & PTEL_SZ_HIGH) >> PTEL_SZ_HIGH_OFFSET;
209
    sz <<= 1;
210
    sz |= (ptel & PTEL_SZ_LOW) >> PTEL_SZ_LOW_OFFSET;
211
    return sz;
212
}
213

  
214
#define PTEL_PPN_BITS (19)
215
#define PTEL_PPN_OFFSET (10)
216
#define PTEL_PPN_SIZE (1 << PTEL_PPN_BITS)
217
#define PTEL_PPN_MASK (((PTEL_PPN_SIZE) - 1) << PTEL_PPN_OFFSET)
218
static inline int cpu_ptel_ppn (uint32_t ptel)
219
{
220
    return ((ptel & PTEL_PPN_MASK) >> PTEL_PPN_OFFSET);
221
}
222

  
223
#define PTEL_PR_BITS   (2)
224
#define PTEL_PR_OFFSET (5)
225
#define PTEL_PR_SIZE (1 << PTEL_PR_BITS)
226
#define PTEL_PR_MASK (((PTEL_PR_SIZE) - 1) << PTEL_PR_OFFSET)
227
static inline int cpu_ptel_pr (uint32_t ptel)
228
{
229
    return ((ptel & PTEL_PR_MASK) >> PTEL_PR_OFFSET);
230
}
231

  
232
/* PTEA : Page Translation Entry Assistance register */
233
#define PTEA_SA_BITS (3)
234
#define PTEA_SA_SIZE (1 << PTEA_SA_BITS)
235
#define PTEA_SA_MASK (PTEA_SA_SIZE - 1)
236
#define cpu_ptea_sa(ptea) ((ptea) & PTEA_SA_MASK)
237
#define PTEA_TC        (1 << 3)
238
#define cpu_ptea_tc(ptea) (((ptea) & PTEA_TC) >> 3)
166 239

  
167 240
#endif				/* _CPU_SH4_H */

Also available in: Unified diff