diff options
author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-02-09 02:00:44 +0000 |
---|---|---|
committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-02-09 02:00:44 +0000 |
commit | 9b536fa6d2c0e9854b87c7f787ae45020b5d6a26 (patch) | |
tree | 3c4a4455cb22bad2dd8d24ed45b3202db90aee51 /gcc/dwarf2out.c | |
parent | 76715f446f8d1bad3d634b59ec4badde0aa4b30f (diff) | |
download | ppe42-gcc-9b536fa6d2c0e9854b87c7f787ae45020b5d6a26.tar.gz ppe42-gcc-9b536fa6d2c0e9854b87c7f787ae45020b5d6a26.zip |
* config/arm/arm.c (arm_expand_prologue): Do tell the dwarf2 backend
about the SP adjustment for saving the static chain pointer.
* dwarf2out.c (dwarf2out_frame_debug_expr): Use the specified
offset when setting a temporary CFA register.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39554 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r-- | gcc/dwarf2out.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index d8b33703b26..fa62101ef6f 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -1321,8 +1321,6 @@ dw_cfa_location cfa_temp; Rules 1- 4: Setting a register's value to cfa.reg or an expression with cfa.reg as the first operand changes the cfa.reg and its cfa.offset. - (For an unknown reason, Rule 4 does not fully obey the - invariant.) Rules 6- 9: Set a non-cfa.reg register value to a constant or an expression yielding a constant. This sets cfa_temp.reg @@ -1362,8 +1360,6 @@ dw_cfa_location cfa_temp; constraints: <reg1> != fp <reg1> != sp effects: cfa.reg = <reg1> - questions: Where is <const_int> used? - Should cfa.offset be changed? Rule 5: (set <reg1> (plus <reg2>:cfa_temp.reg sp:cfa.reg)) @@ -1547,9 +1543,15 @@ dwarf2out_frame_debug_expr (expr, label) if (GET_CODE (XEXP (src, 0)) == REG && REGNO (XEXP (src, 0)) == cfa.reg && GET_CODE (XEXP (src, 1)) == CONST_INT) - /* Setting a temporary CFA register that will be copied - into the FP later on. */ - cfa.reg = REGNO (dest); + { + /* Setting a temporary CFA register that will be copied + into the FP later on. */ + offset = INTVAL (XEXP (src, 1)); + if (GET_CODE (src) == PLUS) + offset = -offset; + cfa.offset += offset; + cfa.reg = REGNO (dest); + } /* Rule 5 */ else { |