Skip to content

Conversation

@keith-packard
Copy link
Contributor

@keith-packard keith-packard commented Aug 6, 2025

Avoid using FPU/SIMD registers in code which doesn't explicitly use floating types or SIMD operations.

GCC PR: zephyrproject-rtos/gcc#60

@stephanosio stephanosio added the DNM DO NOT MERGE label Aug 11, 2025
@stephanosio
Copy link
Member

@keith-packard zephyrproject-rtos/gcc#60 is merged. Please update the gcc submodule ref to the merged commit.

vfprintf doesn't perform any floating point math when printing floats,
by removing the use of float types, we can avoid using float registers
entirely.

Signed-off-by: Keith Packard <[email protected]>
The memory operations inlining code for gcc 14 uses SIMD registers
which requires switching on the FPU and saving/restoring those
registers. For interrupt handlers, that also means disabling
interrupts so nested interrupts don't work after the first register
access. An upstream patch has been proposed to switch off the SIMD
register usage for this case and avoid these effects.

Signed-off-by: Keith Packard <[email protected]>
@stephanosio stephanosio force-pushed the aarch64-msimd-memops branch from eef0de8 to 5840991 Compare August 13, 2025 04:03
@stephanosio
Copy link
Member

Rebased to resolve conflicts after #996 is merged

@stephanosio stephanosio removed the DNM DO NOT MERGE label Aug 13, 2025
@stephanosio stephanosio merged commit e78f7ec into zephyrproject-rtos:main Aug 14, 2025
45 checks passed
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.

2 participants