2009-08-19 Sterling Augustine <sterling@tensilica.com>

* config/tc-xtensa.h (xtensa_frag_data): Rename unused field fr_prev
	to no_transform_end.
	* config/tc-xtensa.c (xtensa_mark_difference_of_two_symbols): Set
	and use no_transform_end.
This commit is contained in:
Sterling Augustine 2009-08-19 16:10:46 +00:00
parent cab0c772ae
commit 983f90e37d
3 changed files with 22 additions and 6 deletions

View File

@ -1,3 +1,10 @@
2009-08-19 Sterling Augustine <sterling@tensilica.com>
* config/tc-xtensa.h (xtensa_frag_data): Rename unused field fr_prev
to no_transform_end.
* config/tc-xtensa.c (xtensa_mark_difference_of_two_symbols): Set
and use no_transform_end.
2009-08-18 Kai Tietz <kai.tietz@onevision.com>
* config/obj-coff-seh.c: Add copyright notice.

View File

@ -7460,6 +7460,7 @@ xtensa_mark_difference_of_two_symbols (void)
{
fragS *start;
fragS *end;
fragS *walk;
if (symbol_get_frag (left)->fr_address
<= symbol_get_frag (right)->fr_address)
@ -7472,12 +7473,19 @@ xtensa_mark_difference_of_two_symbols (void)
start = symbol_get_frag (right);
end = symbol_get_frag (left);
}
if (start->tc_frag_data.no_transform_end != NULL)
walk = start->tc_frag_data.no_transform_end;
else
walk = start;
do
{
start->tc_frag_data.is_no_transform = 1;
start = start->fr_next;
walk->tc_frag_data.is_no_transform = 1;
walk = walk->fr_next;
}
while (start && start->fr_address < end->fr_address);
while (walk && walk->fr_address < end->fr_address);
start->tc_frag_data.no_transform_end = walk;
}
}
}

View File

@ -263,9 +263,10 @@ struct xtensa_frag_type
symbolS *slot_symbols[MAX_SLOTS];
offsetT slot_offsets[MAX_SLOTS];
/* The global aligner needs to walk backward through the list of
frags. This field is only valid after xtensa_end. */
fragS *fr_prev;
/* When marking frags after this one in the chain as no transform,
cache the last one in the chain, so that we can skip to the
end of the chain. */
fragS *no_transform_end;
};