Revision e189e748 target-mips/op.c
b/target-mips/op.c | ||
---|---|---|
1847 | 1847 |
(val & (1 << CP0St_UM))) |
1848 | 1848 |
env->hflags |= MIPS_HFLAG_UM; |
1849 | 1849 |
#ifdef TARGET_MIPS64 |
1850 |
if (!(env->CP0_Config0 & (0x3 << CP0C0_AT)) || |
|
1851 |
((env->hflags & MIPS_HFLAG_UM) && |
|
1850 |
if ((env->hflags & MIPS_HFLAG_UM) && |
|
1852 | 1851 |
!(val & (1 << CP0St_PX)) && |
1853 |
!(val & (1 << CP0St_UX))))
|
|
1852 |
!(val & (1 << CP0St_UX))) |
|
1854 | 1853 |
env->hflags &= ~MIPS_HFLAG_64; |
1855 | 1854 |
#endif |
1856 | 1855 |
if (val & (1 << CP0St_CU1)) |
... | ... | |
1906 | 1905 |
{ |
1907 | 1906 |
uint32_t mask = 0x00C00300; |
1908 | 1907 |
|
1909 |
if ((env->CP0_Config0 & (0x7 << CP0C0_AR)) == (1 << CP0C0_AR))
|
|
1908 |
if (env->insn_flags & ISA_MIPS32R2)
|
|
1910 | 1909 |
mask |= 1 << CP0Ca_DC; |
1911 | 1910 |
|
1912 | 1911 |
env->CP0_Cause = (env->CP0_Cause & ~mask) | (T0 & mask); |
... | ... | |
3014 | 3013 |
(env->CP0_Status & (1 << CP0St_UM))) |
3015 | 3014 |
env->hflags |= MIPS_HFLAG_UM; |
3016 | 3015 |
#ifdef TARGET_MIPS64 |
3017 |
if (!(env->CP0_Config0 & (0x3 << CP0C0_AT)) || |
|
3018 |
((env->hflags & MIPS_HFLAG_UM) && |
|
3016 |
if ((env->hflags & MIPS_HFLAG_UM) && |
|
3019 | 3017 |
!(env->CP0_Status & (1 << CP0St_PX)) && |
3020 |
!(env->CP0_Status & (1 << CP0St_UX))))
|
|
3018 |
!(env->CP0_Status & (1 << CP0St_UX))) |
|
3021 | 3019 |
env->hflags &= ~MIPS_HFLAG_64; |
3022 | 3020 |
#endif |
3023 | 3021 |
if (loglevel & CPU_LOG_EXEC) |
... | ... | |
3038 | 3036 |
(env->CP0_Status & (1 << CP0St_UM))) |
3039 | 3037 |
env->hflags |= MIPS_HFLAG_UM; |
3040 | 3038 |
#ifdef TARGET_MIPS64 |
3041 |
if (!(env->CP0_Config0 & (0x3 << CP0C0_AT)) || |
|
3042 |
((env->hflags & MIPS_HFLAG_UM) && |
|
3039 |
if ((env->hflags & MIPS_HFLAG_UM) && |
|
3043 | 3040 |
!(env->CP0_Status & (1 << CP0St_PX)) && |
3044 |
!(env->CP0_Status & (1 << CP0St_UX))))
|
|
3041 |
!(env->CP0_Status & (1 << CP0St_UX))) |
|
3045 | 3042 |
env->hflags &= ~MIPS_HFLAG_64; |
3046 | 3043 |
#endif |
3047 | 3044 |
if (loglevel & CPU_LOG_EXEC) |
Also available in: Unified diff