On 9/24/23 01:03, Nick Bowler wrote:
On a real UltraSparc II, the fmuld8sux16 instruction takes two single-
precision input operands and returns a double-precision result.

However, the emulation is taking two double-precision input operands,
which are unlikely to contain the correct values.  Even if they did,
the emulator is rounding the output, which the real processor does
not do.  And the real processor shifts both outputs left by 8, which
the emulator does not do.

So the results are wrong except in trivial cases.

Signed-off-by: Nick Bowler<nbow...@draconx.ca>
---
  target/sparc/helper.h     |  2 +-
  target/sparc/translate.c  |  2 +-
  target/sparc/vis_helper.c | 19 ++++++++-----------
  3 files changed, 10 insertions(+), 13 deletions(-)

Reviewed-by: Richard Henderson <richard.hender...@linaro.org>

r~

Reply via email to