Lines Matching +full:timer +full:- +full:dsp

5  * See the COPYING file in the top-level directory.
13 #include "tcg/tcg-internal.h"
53 * The Count register acts as a timer, incrementing at a constant rate,
106 TLBRET_XI = -6,
107 TLBRET_RI = -5,
108 TLBRET_DIRTY = -4,
109 TLBRET_INVALID = -3,
110 TLBRET_NOMATCH = -2,
111 TLBRET_BADADDR = -1,
167 return (env->CP0_Status & (1 << CP0St_IE)) && in cpu_mips_hw_interrupts_enabled()
168 !(env->CP0_Status & (1 << CP0St_EXL)) && in cpu_mips_hw_interrupts_enabled()
169 !(env->CP0_Status & (1 << CP0St_ERL)) && in cpu_mips_hw_interrupts_enabled()
170 !(env->hflags & MIPS_HFLAG_DM) && in cpu_mips_hw_interrupts_enabled()
176 !(env->active_tc.CP0_TCStatus & (1 << CP0TCSt_IXMT)); in cpu_mips_hw_interrupts_enabled()
186 pending = env->CP0_Cause & CP0Ca_IP_mask; in cpu_mips_hw_interrupts_pending()
187 status = env->CP0_Status & CP0Ca_IP_mask; in cpu_mips_hw_interrupts_pending()
189 if (env->CP0_Config3 & (1 << CP0C3_VEIC)) { in cpu_mips_hw_interrupts_pending()
220 env->active_tc.PC = value & ~(target_ulong)1; in mips_env_set_pc()
222 env->hflags |= MIPS_HFLAG_M16; in mips_env_set_pc()
224 env->hflags &= ~(MIPS_HFLAG_M16); in mips_env_set_pc()
230 return extract32(env->CP0_Config0, CP0C0_BE, 1); in mips_env_is_bigendian()
240 if (env->hflags & MIPS_HFLAG_ELPA) { in restore_pamask()
241 env->PAMask = (1ULL << env->PABITS) - 1; in restore_pamask()
243 env->PAMask = PAMASK_BASE; in restore_pamask()
252 if (!(env->mvp->CP0_MVPControl & (1 << CP0MVPCo_EVP))) { in mips_vpe_active()
256 if (!(env->CP0_VPEConf0 & (1 << CP0VPEC0_VPA))) { in mips_vpe_active()
268 if (!(env->active_tc.CP0_TCStatus & (1 << CP0TCSt_A))) { in mips_vpe_active()
272 if (env->active_tc.CP0_TCHalt & 1) { in mips_vpe_active()
285 if ((env->CP0_VPControl >> CP0VPCtl_DIS) & 1) { in mips_vp_active()
292 if ((&other_cpu->env != env) && in mips_vp_active()
293 ((other_cpu->env.CP0_VPControl >> CP0VPCtl_DIS) & 1)) { in mips_vp_active()
302 env->hflags &= ~(MIPS_HFLAG_COP1X | MIPS_HFLAG_64 | MIPS_HFLAG_CP0 | in compute_hflags()
307 if (env->CP0_Status & (1 << CP0St_ERL)) { in compute_hflags()
308 env->hflags |= MIPS_HFLAG_ERL; in compute_hflags()
310 if (!(env->CP0_Status & (1 << CP0St_EXL)) && in compute_hflags()
311 !(env->CP0_Status & (1 << CP0St_ERL)) && in compute_hflags()
312 !(env->hflags & MIPS_HFLAG_DM)) { in compute_hflags()
313 env->hflags |= (env->CP0_Status >> CP0St_KSU) & in compute_hflags()
317 if ((env->insn_flags & ISA_MIPS3) && in compute_hflags()
318 (((env->hflags & MIPS_HFLAG_KSU) != MIPS_HFLAG_UM) || in compute_hflags()
319 (env->CP0_Status & (1 << CP0St_PX)) || in compute_hflags()
320 (env->CP0_Status & (1 << CP0St_UX)))) { in compute_hflags()
321 env->hflags |= MIPS_HFLAG_64; in compute_hflags()
324 if (!(env->insn_flags & ISA_MIPS3)) { in compute_hflags()
325 env->hflags |= MIPS_HFLAG_AWRAP; in compute_hflags()
326 } else if (((env->hflags & MIPS_HFLAG_KSU) == MIPS_HFLAG_UM) && in compute_hflags()
327 !(env->CP0_Status & (1 << CP0St_UX))) { in compute_hflags()
328 env->hflags |= MIPS_HFLAG_AWRAP; in compute_hflags()
329 } else if (env->insn_flags & ISA_MIPS_R6) { in compute_hflags()
331 if ((((env->hflags & MIPS_HFLAG_KSU) == MIPS_HFLAG_SM) && in compute_hflags()
332 !(env->CP0_Status & (1 << CP0St_SX))) || in compute_hflags()
333 (((env->hflags & MIPS_HFLAG_KSU) == MIPS_HFLAG_KM) && in compute_hflags()
334 !(env->CP0_Status & (1 << CP0St_KX)))) { in compute_hflags()
335 env->hflags |= MIPS_HFLAG_AWRAP; in compute_hflags()
339 if (((env->CP0_Status & (1 << CP0St_CU0)) && in compute_hflags()
340 !(env->insn_flags & ISA_MIPS_R6)) || in compute_hflags()
341 !(env->hflags & MIPS_HFLAG_KSU)) { in compute_hflags()
342 env->hflags |= MIPS_HFLAG_CP0; in compute_hflags()
344 if (env->CP0_Status & (1 << CP0St_CU1)) { in compute_hflags()
345 env->hflags |= MIPS_HFLAG_FPU; in compute_hflags()
347 if (env->CP0_Status & (1 << CP0St_FR)) { in compute_hflags()
348 env->hflags |= MIPS_HFLAG_F64; in compute_hflags()
350 if (((env->hflags & MIPS_HFLAG_KSU) != MIPS_HFLAG_KM) && in compute_hflags()
351 (env->CP0_Config5 & (1 << CP0C5_SBRI))) { in compute_hflags()
352 env->hflags |= MIPS_HFLAG_SBRI; in compute_hflags()
354 if (env->insn_flags & ASE_DSP_R3) { in compute_hflags()
356 * Our cpu supports DSP R3 ASE, so enable in compute_hflags()
357 * access to DSP R3 resources. in compute_hflags()
359 if (env->CP0_Status & (1 << CP0St_MX)) { in compute_hflags()
360 env->hflags |= MIPS_HFLAG_DSP | MIPS_HFLAG_DSP_R2 | in compute_hflags()
363 } else if (env->insn_flags & ASE_DSP_R2) { in compute_hflags()
365 * Our cpu supports DSP R2 ASE, so enable in compute_hflags()
366 * access to DSP R2 resources. in compute_hflags()
368 if (env->CP0_Status & (1 << CP0St_MX)) { in compute_hflags()
369 env->hflags |= MIPS_HFLAG_DSP | MIPS_HFLAG_DSP_R2; in compute_hflags()
372 } else if (env->insn_flags & ASE_DSP) { in compute_hflags()
374 * Our cpu supports DSP ASE, so enable in compute_hflags()
375 * access to DSP resources. in compute_hflags()
377 if (env->CP0_Status & (1 << CP0St_MX)) { in compute_hflags()
378 env->hflags |= MIPS_HFLAG_DSP; in compute_hflags()
382 if (env->insn_flags & ISA_MIPS_R2) { in compute_hflags()
383 if (env->active_fpu.fcr0 & (1 << FCR0_F64)) { in compute_hflags()
384 env->hflags |= MIPS_HFLAG_COP1X; in compute_hflags()
386 } else if (env->insn_flags & ISA_MIPS_R1) { in compute_hflags()
387 if (env->hflags & MIPS_HFLAG_64) { in compute_hflags()
388 env->hflags |= MIPS_HFLAG_COP1X; in compute_hflags()
390 } else if (env->insn_flags & ISA_MIPS4) { in compute_hflags()
397 if (env->CP0_Status & (1U << CP0St_CU3)) { in compute_hflags()
398 env->hflags |= MIPS_HFLAG_COP1X; in compute_hflags()
402 if (env->CP0_Config5 & (1 << CP0C5_MSAEn)) { in compute_hflags()
403 env->hflags |= MIPS_HFLAG_MSA; in compute_hflags()
406 if (env->active_fpu.fcr0 & (1 << FCR0_FREP)) { in compute_hflags()
407 if (env->CP0_Config5 & (1 << CP0C5_FRE)) { in compute_hflags()
408 env->hflags |= MIPS_HFLAG_FRE; in compute_hflags()
411 if (env->CP0_Config3 & (1 << CP0C3_LPA)) { in compute_hflags()
412 if (env->CP0_PageGrain & (1 << CP0PG_ELPA)) { in compute_hflags()
413 env->hflags |= MIPS_HFLAG_ELPA; in compute_hflags()