Browse Source
Previously, `fcopysign` was mysteriously failing to pass the `float_misc` spec test. This was tracked down to bad logical-immediate masks used to separate the sign and not-sign bits. In particular, the masks for the and-not operations were wrong. The `invert()` function on an `ImmLogic` immediate, it turns out, assumed every immediate would be used by a 64-bit instruction; `ImmLogic` immediates are subtly different for 32-bit instructions. This change tracks the instruction size (32 or 64 bits) intended for use with each such immediate, and passes it back into `maybe_from_u64` when computing the inverted immediate. Addresses several of the failures (`float_misc`, `f32_bitwise`) for #1521 (test failures) and presumably helps #1519 (SpiderMonkey integration).pull/1582/head
Chris Fallin
5 years ago
4 changed files with 48 additions and 32 deletions
Loading…
Reference in new issue