aboutsummaryrefslogtreecommitdiff
path: root/gas/doc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2006-11-03 07:29:37 +0000
committerJakub Jelinek <jakub@redhat.com>2006-11-03 07:29:37 +0000
commit9b8ae42e78e6c3e3bc67c31673233568c27d9e71 (patch)
tree1f493a79ef0bfe683893d9c8cff4f546a67dab24 /gas/doc
parentae424f8246a09295cca8da6922c8ee781dec4fb1 (diff)
downloadgdb-9b8ae42e78e6c3e3bc67c31673233568c27d9e71.zip
gdb-9b8ae42e78e6c3e3bc67c31673233568c27d9e71.tar.gz
gdb-9b8ae42e78e6c3e3bc67c31673233568c27d9e71.tar.bz2
* dw2gencfi.c (struct fde_entry): Add per_encoding, lsda_encoding,
personality and lsda. (struct cie_entry): Add per_encoding, lsda_encoding and personality. (alloc_fde_entry): Initialize per_encoding and lsda_encoding. (cfi_pseudo_table): Handle .cfi_personality and .cfi_lsda. (dot_cfi_personality, dot_cfi_lsda, encoding_size): New functions. (output_cie): Output personality including its encoding and LSDA encoding. (output_fde): Output LSDA. (select_cie_for_fde): Don't share CIE if personality, its encoding or LSDA encoding are different. Copy the 3 fields from fde_entry to cie_entry. * doc/as.texinfo (.cfi_personality, .cfi_lsda): Document. * gas/cfi/cfi-common-6.d: New test. * gas/cfi/cfi-common-6.s: New. * gas/cfi/cfi.exp: Add cfi-common-6 test.
Diffstat (limited to 'gas/doc')
-rw-r--r--gas/doc/as.texinfo19
1 files changed, 19 insertions, 0 deletions
diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo
index a43b77e..be21112 100644
--- a/gas/doc/as.texinfo
+++ b/gas/doc/as.texinfo
@@ -4102,6 +4102,25 @@ Don't forget to close the function by
unwind entry previously opened by
@code{.cfi_startproc}, and emits it to @code{.eh_frame}.
+@section @code{.cfi_personality @var{encoding} [, @var{exp}]}
+@code{.cfi_personality} defines personality routine and its encoding.
+@var{encoding} must be a constant determining how the personality
+should be encoded. If it is 255 (@code{DW_EH_PE_omit}), second
+argument is not present, otherwise second argument should be
+a constant or a symbol name. When using indirect encodings,
+the symbol provided should be the location where personality
+can be loaded from, not the personality routine itself.
+The default after @code{.cfi_startproc} is @code{.cfi_personality 0xff},
+no personality routine.
+
+@section @code{.cfi_lsda @var{encoding} [, @var{exp}]}
+@code{.cfi_lsda} defines LSDA and its encoding.
+@var{encoding} must be a constant determining how the LSDA
+should be encoded. If it is 255 (@code{DW_EH_PE_omit}), second
+argument is not present, otherwise second argument should be a constant
+or a symbol name. The default after @code{.cfi_startproc} is @code{.cfi_lsda 0xff},
+no LSDA.
+
@section @code{.cfi_def_cfa @var{register}, @var{offset}}
@code{.cfi_def_cfa} defines a rule for computing CFA as: @i{take
address from @var{register} and add @var{offset} to it}.