All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [Bug 1843795] [NEW] 'mtfsf' instruction can clear FI incorrectly
@ 2019-09-12 16:52 Paul Clarke
  2019-09-12 18:32 ` [Qemu-devel] [Bug 1843795] " Alex Bennée
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Paul Clarke @ 2019-09-12 16:52 UTC (permalink / raw)
  To: qemu-devel

Public bug reported:

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.

** Affects: qemu
     Importance: Undecided
         Status: New

** Attachment added: "test case - mtfsf clears FI"
   https://bugs.launchpad.net/bugs/1843795/+attachment/5288363/+files/mtfsf.c

-- 
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:
  New

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-05-11  5:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-12 16:52 [Qemu-devel] [Bug 1843795] [NEW] 'mtfsf' instruction can clear FI incorrectly Paul Clarke
2019-09-12 18:32 ` [Qemu-devel] [Bug 1843795] " Alex Bennée
2021-04-22  7:32 ` Thomas Huth
2021-04-22 15:27 ` Paul Clarke
2021-05-11  5:37 ` Thomas Huth

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.