mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-24 04:00:07 +08:00
gas/
2005-05-27 Jan Beulich <jbeulich@novell.com> * config/tc-ia64.c (emit_one_bundle): Restrict scope of ptr, end_ptr, and last_ptr. Check all in-use slots for first one with non-NULL unwind_record. Don't reload end_ptr before second update round.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2005-05-27 Jan Beulich <jbeulich@novell.com>
|
||||||
|
|
||||||
|
* config/tc-ia64.c (emit_one_bundle): Restrict scope of ptr, end_ptr,
|
||||||
|
and last_ptr. Check all in-use slots for first one with non-NULL
|
||||||
|
unwind_record. Don't reload end_ptr before second update round.
|
||||||
|
|
||||||
2005-05-26 James E Wilson <wilson@specifixinc.com>
|
2005-05-26 James E Wilson <wilson@specifixinc.com>
|
||||||
|
|
||||||
* config/tc-ia64.c (extra_goodness): Update comment.
|
* config/tc-ia64.c (extra_goodness): Update comment.
|
||||||
|
@ -6479,7 +6479,6 @@ emit_one_bundle ()
|
|||||||
struct ia64_opcode *idesc;
|
struct ia64_opcode *idesc;
|
||||||
int end_of_insn_group = 0, user_template = -1;
|
int end_of_insn_group = 0, user_template = -1;
|
||||||
int n, i, j, first, curr, last_slot;
|
int n, i, j, first, curr, last_slot;
|
||||||
unw_rec_list *ptr, *last_ptr, *end_ptr;
|
|
||||||
bfd_vma t0 = 0, t1 = 0;
|
bfd_vma t0 = 0, t1 = 0;
|
||||||
struct label_fix *lfix;
|
struct label_fix *lfix;
|
||||||
struct insn_fix *ifix;
|
struct insn_fix *ifix;
|
||||||
@ -6534,7 +6533,9 @@ emit_one_bundle ()
|
|||||||
for (i = 0; i < 3 && md.num_slots_in_use > 0; ++i)
|
for (i = 0; i < 3 && md.num_slots_in_use > 0; ++i)
|
||||||
{
|
{
|
||||||
/* If we have unwind records, we may need to update some now. */
|
/* If we have unwind records, we may need to update some now. */
|
||||||
ptr = md.slot[curr].unwind_record;
|
unw_rec_list *ptr = md.slot[curr].unwind_record;
|
||||||
|
unw_rec_list *end_ptr = NULL;
|
||||||
|
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
/* Find the last prologue/body record in the list for the current
|
/* Find the last prologue/body record in the list for the current
|
||||||
@ -6544,9 +6545,11 @@ emit_one_bundle ()
|
|||||||
issued. This matters because there may have been nops emitted
|
issued. This matters because there may have been nops emitted
|
||||||
meanwhile. Any non-prologue non-body record followed by a
|
meanwhile. Any non-prologue non-body record followed by a
|
||||||
prologue/body record must also refer to the current point. */
|
prologue/body record must also refer to the current point. */
|
||||||
last_ptr = NULL;
|
unw_rec_list *last_ptr;
|
||||||
end_ptr = md.slot[(curr + 1) % NUM_SLOTS].unwind_record;
|
|
||||||
for (; ptr != end_ptr; ptr = ptr->next)
|
for (j = 1; end_ptr == NULL && j < md.num_slots_in_use; ++j)
|
||||||
|
end_ptr = md.slot[(curr + j) % NUM_SLOTS].unwind_record;
|
||||||
|
for (last_ptr = NULL; ptr != end_ptr; ptr = ptr->next)
|
||||||
if (ptr->r.type == prologue || ptr->r.type == prologue_gr
|
if (ptr->r.type == prologue || ptr->r.type == prologue_gr
|
||||||
|| ptr->r.type == body)
|
|| ptr->r.type == body)
|
||||||
last_ptr = ptr;
|
last_ptr = ptr;
|
||||||
@ -6814,7 +6817,6 @@ emit_one_bundle ()
|
|||||||
/* Set slot numbers for all remaining unwind records belonging to the
|
/* Set slot numbers for all remaining unwind records belonging to the
|
||||||
current insn. There can not be any prologue/body unwind records
|
current insn. There can not be any prologue/body unwind records
|
||||||
here. */
|
here. */
|
||||||
end_ptr = md.slot[(curr + 1) % NUM_SLOTS].unwind_record;
|
|
||||||
for (; ptr != end_ptr; ptr = ptr->next)
|
for (; ptr != end_ptr; ptr = ptr->next)
|
||||||
{
|
{
|
||||||
ptr->slot_number = (unsigned long) f + i;
|
ptr->slot_number = (unsigned long) f + i;
|
||||||
|
Reference in New Issue
Block a user