mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
target-alpha: Raise IOV from CVTQL
Even if an exception isn't taken, the status flags need updating and the result should be written to the destination. Move the body of cvtql out of line, since we now always need a call. Reported-by: Al Viro <viro@ZenIV.linux.org.uk> Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
4ed069ab53
commit
57a808b6d7
3 changed files with 13 additions and 32 deletions
|
@ -539,9 +539,13 @@ uint64_t helper_cvtqt(CPUAlphaState *env, uint64_t a)
|
|||
return float64_to_t(fr);
|
||||
}
|
||||
|
||||
void helper_cvtql_v_input(CPUAlphaState *env, uint64_t val)
|
||||
uint64_t helper_cvtql(CPUAlphaState *env, uint64_t val)
|
||||
{
|
||||
uint32_t exc = 0;
|
||||
if (val != (int32_t)val) {
|
||||
arith_excp(env, GETPC(), EXC_M_IOV, 0);
|
||||
exc = FPCR_IOV | FPCR_INE;
|
||||
}
|
||||
env->error_code = exc;
|
||||
|
||||
return ((val & 0xc0000000) << 32) | ((val & 0x3fffffff) << 29);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue