golang/go

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

Open

#58.466 aperta il 10 feb 2023

Vedi su GitHub
 (5 commenti) (0 reazioni) (1 assegnatario)Go (19.008 fork)batch import
NeedsDecisionarch-mipscompiler/runtimehelp wanted

Metriche repository

Star
 (133.883 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

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

Guida contributor