Skip to content

Optimize packetScoreInt by using only float, not double#2723

Open
toofishes wants to merge 1 commit into
meshcore-dev:devfrom
toofishes:optimize-packet-score
Open

Optimize packetScoreInt by using only float, not double#2723
toofishes wants to merge 1 commit into
meshcore-dev:devfrom
toofishes:optimize-packet-score

Conversation

@toofishes

Copy link
Copy Markdown

On ESP32, this eliminates calls to 9 soft-float operations: __floatsidf, __divdf3, __divsf3, __subdf3, __extendsfdf2, __muldf3, __ledf2, __gedf2, and __truncdfsf2.

All operations can now be done in hardware floating point, and the code size is ~100 bytes smaller, as well as likely much faster.

Changing to * 0.1f rather than / 10.0f allows using hardware floating point multiply, since there is no hardware divide instruction.

On ESP32, this eliminates calls to 9 soft-float operations: __floatsidf, __divdf3, __divsf3, __subdf3, __extendsfdf2, __muldf3, __ledf2, __gedf2, and __truncdfsf2.

All operations can now be done in hardware floating point, and the code size is ~100 bytes smaller, as well as likely much faster.

Changing to `* 0.1f` rather than `/ 10.0f` allows using hardware floating point multiply, since there is no hardware divide instruction.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant