[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug 1843795] Re: 'mtfsf' instruction can clear FI incorrectly
From: |
Thomas Huth |
Subject: |
[Bug 1843795] Re: 'mtfsf' instruction can clear FI incorrectly |
Date: |
Thu, 22 Apr 2021 07:32:39 -0000 |
The QEMU project is currently considering to move its bug tracking to
another system. For this we need to know which bugs are still valid
and which could be closed already. Thus we are setting older bugs to
"Incomplete" now.
If you still think this bug report here is valid, then please switch
the state back to "New" within the next 60 days, otherwise this report
will be marked as "Expired". Or please mark it as "Fix Released" if
the problem has been solved with a newer version of QEMU already.
Thank you and sorry for the inconvenience.
** Changed in: qemu
Status: New => Incomplete
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1843795
Title:
'mtfsf' instruction can clear FI incorrectly
Status in QEMU:
Incomplete
Bug description:
Using mtfsf instruction can clear the FPSCR FI bit incorrectly. This code
snippet exhibits the issue:
--
fpscr.ll = 0x1fffffff;
__builtin_mtfsf (0b11111111, fpscr.d);
fpscr.d = __builtin_mffs ();
--
On POWER9 hardware:
mffs : FPSCR = 0x000000007ffff7ff
On qemu (git master; "-cpu POWER9"):
--
$ ./mtfsf
mffs : FPSCR = 0x000000007ffdffff
--
Two differences:
bit 52: "reserved", so maybe a "don't care" case
bit 46: "FI"
$ git log -1 master
commit 89ea03a7dc83ca36b670ba7f787802791fcb04b1
Merge: 019217c 2531164
Author: Peter Maydell <peter.maydell@linaro.org>
Date: Mon Sep 9 09:48:34 2019 +0100
I tracked the clear is coming from do_float_check_status, likely the
one in gen_mtfsf, but then I get lost figuring out what _should_ be
happening. :-/
Test attached.
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1843795/+subscriptions
- [Bug 1843795] Re: 'mtfsf' instruction can clear FI incorrectly,
Thomas Huth <=