Trevor Gross 4c264c96ae Update CmpResult to use a pointer-sized return type
As seen at [1], LLVM uses `long long` on LLP64 (to get a 64-bit integer
matching pointer size) and `long` on everything else, with exceptions
for AArch64 and AVR. Our current logic always uses an `i32`. This
happens to work because LLVM uses 32-bit instructions to check the
output on x86-64, but the GCC checks the full 64-bit register so garbage
in the upper half leads to incorrect results.

Update our return type to be `isize`, with exceptions for AArch64 and
AVR.

Fixes: https://github.com/rust-lang/compiler-builtins/issues/919

[1]: 0cf3c437c1/compiler-rt/lib/builtins/fp_compare_impl.inc (L11-L27)
2025-05-28 02:58:42 -04:00
..
2025-04-18 21:14:41 -04:00
2025-04-18 21:14:41 -04:00
2025-04-18 21:14:41 -04:00
2025-04-18 21:14:41 -04:00
2025-04-18 21:14:41 -04:00
2025-04-19 19:05:49 -04:00
2025-04-18 21:14:41 -04:00