Closed gudnimg closed 5 months ago
All values in bytes. Δ Delta to base
Target | ΔFlash | ΔSRAM | Used Flash | Used SRAM | Free Flash | Free SRAM |
---|---|---|---|---|---|---|
MK3S_MULTILANG |
-34 | 0 | 247750 | 5653 | 6202 | 2539 |
MK3_MULTILANG |
-38 | 0 | 247048 | 5662 | 6904 | 2530 |
I believe this PR is ready now, I'll review the assembly files a bit before removing the 🚧 in the title
For reference, here are the ASM files for latest MK3 branch, and this PR's branch: ASM_files.zip
I removed two optimisation since there is some risk it would lower resolution in calculations. I don't want to risk that.
However, I've kept two other optimisations which only remove redundant divisions. Those changes should be safe.
Rebased to get the memory delta from the actions correct again :)
Found some redundant divisions in the assembly.
In
mc_arc
call, changingfeedrate * feedmultiply / 60 / 100.0
to(feedrate * feedmultiply) / 6000.f
. One call to__divsf3
is removed.Changing how
mm_per_arc_segment_sec
is calculated from(feed_rate / 60.0f) * (1.0f / cs.arc_segments_per_sec)
tofeed_rate / (60.f * float(cs.arc_segments_per_sec))
removes two calls to__divsf3
Change in memory: Flash: -34 bytes SRAM: 0 bytes