TLDR: the WFI (wait for interrupt) instruction used to preserve registers but you could configure it to delete register values, saving power.Since M4 it always deletes register values and the configuration is gone, which made Linux assume they were preserved, but they are not.
someonebaggy · · focus · HN ↗
Since M4 it always deletes register values and the configuration is gone, which made Linux assume they were preserved, but they are not.