This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Storing register values on stack at entry of a function.

I am using keil uVision4 for compiling the code. I found in the compiled code that for the nested functions all the working registers and LR is pushed on stack and popped back just before the return is executed. For non-nested functions the registers are not stored on stack. But I want that at every function entry, whether it be nested or not, these registers and LR to be saved on stack. How do I do it? What settings I have to do?

Thanks,
Bharat

Parents
  • It isn't as likely, in an embedded environment, that you need to call code compiled with a different compiler.

    The ABI basically dictates the preferred calling convention anyway.

    But have the advantage that an exception handler can perform a walk of the stack all the way back to main()

    If you're requiring that facility, then you'd normally be better off using the facilities provided by the compiler for such a purpose; and not try to just force a stack frame.

Reply
  • It isn't as likely, in an embedded environment, that you need to call code compiled with a different compiler.

    The ABI basically dictates the preferred calling convention anyway.

    But have the advantage that an exception handler can perform a walk of the stack all the way back to main()

    If you're requiring that facility, then you'd normally be better off using the facilities provided by the compiler for such a purpose; and not try to just force a stack frame.

Children