aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMichael Meissner <meissner@redhat.com>2000-05-31 01:36:58 +0000
committerMichael Meissner <meissner@gcc.gnu.org>2000-05-31 01:36:58 +0000
commitab577d8a3ddaf9dcc97a78fb0c782b7829e6fdb6 (patch)
treed3b90570082145a43fdec108a66c340943340e1b /gcc
parentd3bc89386df9d3164bb1404897448106d40089e4 (diff)
downloadgcc-ab577d8a3ddaf9dcc97a78fb0c782b7829e6fdb6.zip
gcc-ab577d8a3ddaf9dcc97a78fb0c782b7829e6fdb6.tar.gz
gcc-ab577d8a3ddaf9dcc97a78fb0c782b7829e6fdb6.tar.bz2
Allow HIGH/LO_SUM in the prologue
From-SVN: r34281
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/dwarf2out.c10
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 885b739..6f13a4f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2000-05-30 Michael Meissner <meissner@redhat.com>
+
+ * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH
+ instructions. Treat LO_SUM operations as loading the full integer
+ constant.
+
2000-05-30 Richard Henderson <rth@cygnus.com>
* combine.c (get_pos_from_mask): Test exact_log2 result as signed.
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index c0da422..6090068 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -1289,6 +1289,16 @@ dwarf2out_frame_debug_expr (expr, label)
dwarf2out_def_cfa (label, cfa_reg, cfa_offset);
break;
+ /* Skip over HIGH, assuming it will be followed by a LO_SUM, which
+ will fill in all of the bits. */
+ case HIGH:
+ break;
+
+ case LO_SUM:
+ cfa_temp_reg = REGNO (dest);
+ cfa_temp_value = INTVAL (XEXP (src, 1));
+ break;
+
case MEM:
/* Saving a register to the stack. Make sure dest is relative to the
CFA register. */