jerpelea opened a new pull request, #21206:
URL: https://github.com/apache/nuttx/pull/21206

   ## Summary
   
   arch_setjmp.S stores d8-d15 only under CONFIG_ARCH_FPU, but it did not 
include nuttx/config.h.  So setjmp() never saved these registers and longjmp() 
never restored them.  They are callee-saved (AAPCS64), so a function that kept 
a value in one of them could see it change after a longjmp().
   
   Include nuttx/config.h.  The assembly then stores d8-d15, eight bytes each, 
at offsets 112 to 176.  struct setjmp_buf_s declared them as eight 4-byte 
floats, 32 bytes short, so declare them as uint64_t too. jmp_buf is now 176 
bytes with the FPU, and its layout matches the assembly.
   
   ## Impact
   
   RELEASE
   
   ## Testing
   
   CI


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to