diff options
author | Richard Henderson <rth@cygnus.com> | 1998-09-05 14:57:56 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1998-09-05 14:57:56 -0700 |
commit | 07ebc9309dd2deabc568c3c8ea6fc0ab7edc7fe7 (patch) | |
tree | 52930dedd01fd3b5a404a92454a487c37b16e941 /gcc/dwarf2out.c | |
parent | 6c30752f0916390d06be4a7e46d8aea7407dd4c1 (diff) | |
download | gcc-07ebc9309dd2deabc568c3c8ea6fc0ab7edc7fe7.zip gcc-07ebc9309dd2deabc568c3c8ea6fc0ab7edc7fe7.tar.gz gcc-07ebc9309dd2deabc568c3c8ea6fc0ab7edc7fe7.tar.bz2 |
rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR.
* rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR.
* rtl.c (reg_note_name): Likewise.
* rtl.texi (REG_NOTES): Likewise.
* dwarf2out.c (dwarf2out_frame_debug): Use it. Recognize a store
without an offset.
From-SVN: r22273
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r-- | gcc/dwarf2out.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 6af786c..e3acb98 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -1223,7 +1223,12 @@ dwarf2out_frame_debug (insn) label = dwarf2out_cfi_label (); - insn = PATTERN (insn); + src = find_reg_note (insn, REG_FRAME_RELATED_EXPR, NULL_RTX); + if (src) + insn = XEXP (src, 0); + else + insn = PATTERN (insn); + /* Assume that in a PARALLEL prologue insn, only the first elt is significant. Currently this is true. */ if (GET_CODE (insn) == PARALLEL) @@ -1392,6 +1397,13 @@ dwarf2out_frame_debug (insn) offset -= cfa_store_offset; break; + /* Without an offset. */ + case REG: + if (cfa_store_reg != REGNO (XEXP (dest, 0))) + abort(); + offset = -cfa_store_offset; + break; + default: abort (); } |