I have a question about "setjmp.h".(I worked on TMS320C6748)
I have read compiler user manual.
In Manual, It said, All register except scratch registers(A10~A15, B10~B15), if it still be used after a function call. The Caller will protect them before making a fuction call, and the register content will restore by Caller on sub-function returns. All of these register A0~A9, B0~B9, & A16~A31, B16~B31 can be used free in Callee function, is that right?
thake the viewpoint of longjmp progress:
Step1. setjmp() ........stored scratch register group into a "jmp_buf" (and a return address.)
Step2. when longjmp() happens, scratch register's contents is auto-recovered.
Step3. longjmp() finally set B3(or B4? function return address register) to the next code line just after setjmp(),
Step4. It seemd It's up to C Compiler take care of other register variable 's recovery, is that right?