You must use frame directives to describe the way that your code uses the stack if you want to be able to do either of the following:
debug your application using stack unwinding
use either flat or call-graph profiling.
The assembler uses frame directives to insert DWARF debug frame information into the object file in ELF format that it produces. This information is required by a debugger for stack unwinding and for profiling.
Be aware of the following:
Frame directives do not affect the code produced by the assembler.
The assembler does not validate the information in frame directives against the instructions emitted.