Registers r58 and r59 are saved during a setjmp and longjmp. This is not necessary, because ARCv2 ABI document declares them as scratch registers.
The fix concerns these files:
newlib/libc/include/machine/setjmp.h
newlib/libc/machine/arc/setjmp.S
Make sure there is no regression after this change. For starters, these are GCC tests that use setjmp and longjmp:
$ runtest execute.exp=pr56982.c dg-torture.exp=pr48542.c