diff options
author | Jim Wilson <wilson@tuliptree.org> | 2004-02-19 01:24:29 +0000 |
---|---|---|
committer | Jim Wilson <wilson@tuliptree.org> | 2004-02-19 01:24:29 +0000 |
commit | 9c59842f2a6340d2a121975cfb7420e860dff1e0 (patch) | |
tree | 358fb61ee5658447f100a54ef0b94cd74d9ffab1 /gas/config | |
parent | 42d9e3b9a7d3700d987fd239c30d87d5eecbbd12 (diff) | |
download | gdb-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/config')
-rw-r--r-- | gas/config/tc-ia64.c | 30 |
1 files changed, 26 insertions, 4 deletions
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; |