.cfi_startproc is used at the beginning of each function that
should have an entry in
.eh_frame. It initializes some internal
data structures and emits architecture dependent initial CFI instructions.
Don't forget to close the function by
.cfi_endproc is used at the end of a function where it closes its
unwind entry previously opened by
.cfi_startproc. and emits it to
.cfi_def_cfa defines a rule for computing CFA as: take
address from register and add offset to it.
.cfi_def_cfa_register modifies a rule for computing CFA. From
now on register will be used instead of the old one. Offset
remains the same.
.cfi_def_cfa_offset modifies a rule for computing CFA. Register
remains the same, but offset is new. Note that it is the
absolute offset that will be added to a defined register to compute
.cfi_def_cfa_offset but offset is a relative
value that is added/substracted from the previous offset.
Previous value of register is saved at offset offset from CFA.
Previous value of register is saved at offset offset from
the current CFA register. This is transformed to
using the known displacement of the CFA register from the CFA.
This is often easier to use, because the number will match the
code it's annotating.
SPARC register window has been saved.
Allows the user to add arbitrary bytes to the unwind info. One might use this to add OS-specific CFI opcodes, or generic CFI opcodes that GAS does not yet support.