From 9c59842f2a6340d2a121975cfb7420e860dff1e0 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Thu, 19 Feb 2004 01:24:29 +0000 Subject: [PATCH] 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. --- gas/ChangeLog | 6 ++++++ gas/config/tc-ia64.c | 30 ++++++++++++++++++++++++++---- 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 + + * 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 * 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; -- 2.7.4