You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
kk, it's ABI mismatch - sprinkling #[avr_skip] to a few functions in compiler-builtins/src/int/shift.rs seems to help.
Somewhat unfortunately, avr-gcc doesn't provide 128-bit versions, so adding those #[avr_skip] breaks u128 shifts (undefined reference to '__ashlti3'); maybe we could somehow expose the correct ABI from LLVM's side, so that the 128-bit versions could be provided by compiler-builtins, we'll see.
Uh oh!
There was an error while loading. Please reload this page.
Bit-shifts where the right-hand side is of statically unknown value yield spurious results - e.g.:
... prints:
For u128 we get something even wilder:
Smaller types, such as u32, seem to behave correctly:
My rough guess lays in the vicinity of
AVRShiftExpand::expand()
orcompiler-builtins
(ABI mismatch?), but I'm yet to confirm it.Note that this is mostly an informational report - I'll try to fix this bug;
The text was updated successfully, but these errors were encountered: