Skip to content

Conversation

adamkondraciuk
Copy link
Contributor

No description provided.

…uncs

This reduced the amount of duplicate code and unifies the code
with other platforms.

MPU retention was originally added in
ee9d239.

Upstream PR #: 97073

Signed-off-by: Rubin Gerritsen <[email protected]>
…uncs

This reduced the amount of duplicate code and unifies the code
with other platforms.

With this change fewer registers are stored and restored.
See also comment in scb.h for scb_context stating that
only essential registers are stored and restored.

No longer stored:
- ICSR
- SCR
- CFSR
- HFSR
- DFSR
- MMFAR
- BFAR
- AFSR

No longer used:
- SHPR[3..12]. This backup register was declared in the wrong way.
  In core_cm33.h and core_cm4.h this is declared as an array of
  12 uint8_t's. That is 3 uint32_t's.

Orignal SCB retention was added in
2055f7d.

Upstream PR #: 97073

Signed-off-by: Rubin Gerritsen <[email protected]>
…uncs

This reduced the amount of duplicate code and unifies the code
with other platforms.

With this change the caller and callee status registers are
stored separately. Also, a different set of status registers
are stored:
 - FPSCR instead of FPDSCR. FPDSCR contains the default values
   to be assigned to FPSCR when a new floating-point context
   is created. It therefore seems more correct to store the
   FPSCR.
 - FPCCR and FPCAR are no longer stored.

FPU retention was originally added in:
8a5365c.

Upstream PR #: 97073

Signed-off-by: Rubin Gerritsen <[email protected]>
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