r24 was wrongly being saved at a misaligned offset of 30 rather than
the correct offset of 40 in the jmp_buf. the exact effects of this
error have not been studied, but it's clear that the value of r24 was
lost across setjmp/longjmp and the saved values of r21 and/or r22 may
also have been corrupted.
(cherry picked from commit
729673689c3e78803ddfdac2ca6be5a5b80e124a)
swi r21, r5, 28
swi r22, r5, 32
swi r23, r5, 36
- swi r24, r5, 30
+ swi r24, r5, 40
swi r25, r5, 44
swi r26, r5, 48
swi r27, r5, 52