golang/go

cmd/compile: mips/mips64 floating point negation does not handle NaN correctly

Open

#58 466 ouverte le 10 févr. 2023

Voir sur GitHub
 (5 commentaires) (0 réactions) (1 assigné)Go (19 008 forks)batch import
NeedsDecisionarch-mipscompiler/runtimehelp wanted

Métriques du dépôt

Stars
 (133 883 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

As discussed on https://github.com/golang/go/issues/56491#issuecomment-1426492508, on MIPS the gc compiler uses neg.d (which it calls NEGD) to negate a floating-point value. However, that instruction does not actually negate a NaN. That suggests that we should not use neg.d for floating point negation, but should instead xor with the high bit.

CC @randall77 @golang/mips @golang/runtime

Guide contributeur