diff options
author | Jakub Jelinek <jakub@redhat.com> | 2006-11-03 07:29:37 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2006-11-03 07:29:37 +0000 |
commit | 9b8ae42e78e6c3e3bc67c31673233568c27d9e71 (patch) | |
tree | 1f493a79ef0bfe683893d9c8cff4f546a67dab24 /gas/doc | |
parent | ae424f8246a09295cca8da6922c8ee781dec4fb1 (diff) | |
download | gdb-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.texinfo | 19 |
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}. |