blob: ca8b1c2e56f67187001aa9bb336d916677dd0cfd (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
'mtfsf' instruction can clear FI incorrectly
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 <email address hidden>
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.
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.
This is an automated cleanup. This bug report has been moved to QEMU's
new bug tracker on gitlab.com and thus gets marked as 'expired' now.
Please continue with the discussion here:
https://gitlab.com/qemu-project/qemu/-/issues/266
|