target/alpha: Tidy helper_fp_exc_raise_s
Remove a redundant masking of ignore. Once that's gone it is obvious that the system-mode inner test is redundant with the outer test. Move the fpcr_exc_enable masking up and tidy. No functional change. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20190921043256.4575-8-richard.henderson@linaro.org>
This commit is contained in:
parent
8009307031
commit
11bfdbdfc2
@ -90,25 +90,18 @@ void helper_fp_exc_raise_s(CPUAlphaState *env, uint32_t ignore, uint32_t regno)
|
|||||||
uint32_t exc = env->error_code & ~ignore;
|
uint32_t exc = env->error_code & ~ignore;
|
||||||
if (exc) {
|
if (exc) {
|
||||||
env->fpcr |= exc;
|
env->fpcr |= exc;
|
||||||
exc &= ~ignore;
|
exc &= env->fpcr_exc_enable;
|
||||||
#ifdef CONFIG_USER_ONLY
|
|
||||||
/*
|
|
||||||
* In user mode, the kernel's software handler only
|
|
||||||
* delivers a signal if the exception is enabled.
|
|
||||||
*/
|
|
||||||
if (!(exc & env->fpcr_exc_enable)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
/*
|
/*
|
||||||
* In system mode, the software handler gets invoked
|
* In system mode, the software handler gets invoked
|
||||||
* for any non-ignored exception.
|
* for any non-ignored exception.
|
||||||
|
* In user mode, the kernel's software handler only
|
||||||
|
* delivers a signal if the exception is enabled.
|
||||||
*/
|
*/
|
||||||
|
#ifdef CONFIG_USER_ONLY
|
||||||
if (!exc) {
|
if (!exc) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
exc &= env->fpcr_exc_enable;
|
|
||||||
fp_exc_raise1(env, GETPC(), exc, regno, EXC_M_SWC);
|
fp_exc_raise1(env, GETPC(), exc, regno, EXC_M_SWC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user