check that rustc knows it can use the FPU #30
Labels
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: M-Labs/artiq-zynq#30
Loading…
Reference in New Issue
There is no content yet.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. Continue?
It seems to me that rustc is generating softfp instead of using the FPU right now.
The demangled name for that compiler builtin is
compiler_builtins::float::mul::__mulsf3
, clearly it is soft fp.Nevermind, rustc knows to generate the fpu instruction, my previous code was too trivial and the compiler optimized that into other instructions.
Here is what the compiler generated when I have a more complicated operation:
I think we can close this issue.
The previous
__aeabi_fmul
is an unused symbol, idk why it is still there after the LTO.It is exposed to the kernel with
api!(__aeabi_fmul)
, so it is not an unused symbol at least as far as the runtime (not szl) is concerned.Should we provide them with FPU instead? These use softfp which would be pretty slow.
They use the FPU already. I think @astro simply included all available aeabi symbols including those that the kernels are not supposed to use.