Msg/ClobberedSP: Difference between revisions
From CPUlator Wiki
< Msg
					
					< Msg
| Line 4: | Line 4: | ||
| ==== ARMv7 ==== | ==== ARMv7 ==== | ||
| <syntaxhighlight lang=" | <syntaxhighlight lang="Asm" line highlight="10"> | ||
| .global _start | .global _start | ||
| _start: | _start: | ||
Revision as of 23:21, 9 March 2019
A function should always ensure that the stack pointer is the same at the entry and exit of the function. This message tells you that this didn't happen: the stack pointer was different at the function return than when the function was first called.
Examples
ARMv7
.global _start
_start:
    mov sp, #0x1000		// Initialize SP to something sane
    bl MyFunction
    nop
    nop
    # ...
    
MyFunction:
    push {r4}	// Changes SP
    bx lr		// Return, but SP is different
Disabling this message
This debugging check can be disabled in the Debugging Checks section of the Settings box: Function clobbered ra or sp.