aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJim Wilson <wilson@tuliptree.org>2004-02-19 01:24:29 +0000
committerJim Wilson <wilson@tuliptree.org>2004-02-19 01:24:29 +0000
commit9c59842f2a6340d2a121975cfb7420e860dff1e0 (patch)
tree358fb61ee5658447f100a54ef0b94cd74d9ffab1 /gas
parent42d9e3b9a7d3700d987fd239c30d87d5eecbbd12 (diff)
downloadgdb-9c59842f2a6340d2a121975cfb7420e860dff1e0.zip
gdb-9c59842f2a6340d2a121975cfb7420e860dff1e0.tar.gz
gdb-9c59842f2a6340d2a121975cfb7420e860dff1e0.tar.bz2
Yet another fix for -falign-loops problems.
* config/tc-ia64.c (ia64_flush_insns): In addition to prologue, body, and endp, allow unwind records which do not have a "t" (time/instruction) field.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-ia64.c30
2 files changed, 32 insertions, 4 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 1a812ac..4f7b48f 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2004-02-18 David Mosberger <davidm@hpl.hp.com>
+
+ * config/tc-ia64.c (ia64_flush_insns): In addition to prologue,
+ body, and endp, allow unwind records which do not have a "t"
+ (time/instruction) field.
+
2004-02-17 Petko Manolov <petkan@nucleusys.com>
* config/tc-arm.c (do_mav_dspsc_1): Correct offset of CRn.
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index fe66ffa..59cf5df 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -1092,14 +1092,36 @@ ia64_flush_insns ()
here. Give an error for others. */
for (ptr = unwind.current_entry; ptr; ptr = ptr->next)
{
- if (ptr->r.type == prologue || ptr->r.type == prologue_gr
- || ptr->r.type == body || ptr->r.type == endp)
+ switch (ptr->r.type)
{
+ case prologue:
+ case prologue_gr:
+ case body:
+ case endp:
ptr->slot_number = (unsigned long) frag_more (0);
ptr->slot_frag = frag_now;
+ break;
+
+ /* Allow any record which doesn't have a "t" field (i.e.,
+ doesn't relate to a particular instruction). */
+ case unwabi:
+ case br_gr:
+ case copy_state:
+ case fr_mem:
+ case frgr_mem:
+ case gr_gr:
+ case gr_mem:
+ case label_state:
+ case rp_br:
+ case spill_base:
+ case spill_mask:
+ /* nothing */
+ break;
+
+ default:
+ as_bad (_("Unwind directive not followed by an instruction."));
+ break;
}
- else
- as_bad (_("Unwind directive not followed by an instruction."));
}
unwind.current_entry = NULL;