Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AVR GCC 10 support for -mdouble=64 #86

Closed
ckormanyos opened this issue Jan 2, 2021 · 6 comments
Closed

AVR GCC 10 support for -mdouble=64 #86

ckormanyos opened this issue Jan 2, 2021 · 6 comments
Assignees

Comments

@ckormanyos
Copy link
Owner

AVR GCC 10 support for -mdouble=64 does not work on some floating-point benchmarks.
Understand why and support -mdouble=64 for AVR-GCC v10 and higher.

@ckormanyos
Copy link
Owner Author

ckormanyos commented Jan 3, 2021

Put this on hold for a while until either build my own AVR-GCC 10 or wait until Zak builds another one.

See also the comment reproduced in the image below:

mdouble

@ckormanyos
Copy link
Owner Author

ckormanyos commented Jul 7, 2021

Recently tried Zak's build of avr-gcc 11.1.0. The 64-bit double type was doing better and a few tests, but not all, passed. One of the extended precision tests (with wide-decimal) faile, either the pi AGM or the wide-decimal sqrt.

Possibly see exactly which test faile and, if possible, figure out where/why?

@ckormanyos
Copy link
Owner Author

Zak's build of avr-gcc 11.1.0. The 64-bit double type was doing better and a few tests, but not all, passed

Errors were actually found in the self-written implementation of <cmath> regarding built-in assembly pneumonics for f, no-suffix, or l. By accident, pneumonics with no suffix (i.e., those for double) were erroneously used for float. When switching to 64-bit double, this old problem was revealed.

In summary, avr-gcc 11.1 does well with -mdouble=64 and passes all benchmark tests in real-time-cpp.

Closing this issue.

@ckormanyos
Copy link
Owner Author

See also #177

ckormanyos added a commit that referenced this issue Nov 16, 2021
Fixes #86 via corrections in self-written `<cmath>`.
@ckormanyos ckormanyos reopened this Nov 17, 2021
@ckormanyos
Copy link
Owner Author

Some problems remain such as finding (link stage) sinf, cosf, etc. in examples like trapezoid integral. Revert changes in <cmath>.

Trapezoid integral example still does not work when 64-bit double is active.

@ckormanyos
Copy link
Owner Author

Rework needed see also #180

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant