* config/tc-xtensa.h (struct xtensa_frag_type): Update comment about
use of literal_frag field. * config/tc-xtensa.c (xtensa_mark_literal_pool_location): Record frag in the literal_frag field. (xtensa_move_literals): Use it here instead of searching. Update literal_frag field with new value.
This commit is contained in:
parent
7f5c84d395
commit
c48aaca0ba
|
@ -1,3 +1,12 @@
|
|||
2007-06-19 Sterling Augustine <sterling@tensilica.com>
|
||||
|
||||
* config/tc-xtensa.h (struct xtensa_frag_type): Update comment about
|
||||
use of literal_frag field.
|
||||
* config/tc-xtensa.c (xtensa_mark_literal_pool_location): Record frag
|
||||
in the literal_frag field.
|
||||
(xtensa_move_literals): Use it here instead of searching. Update
|
||||
literal_frag field with new value.
|
||||
|
||||
2007-06-14 Paul Brook <paul@codesourcery.com>
|
||||
|
||||
* config/tc-arm.c (do_t_mov_cmp): Handle shift by register and
|
||||
|
|
|
@ -4548,6 +4548,7 @@ xtensa_mark_literal_pool_location (void)
|
|||
fixes into this frchain's fix list. */
|
||||
pool_location = frag_now;
|
||||
frag_now->tc_frag_data.lit_frchain = frchain_now;
|
||||
frag_now->tc_frag_data.literal_frag = frag_now;
|
||||
frag_variant (rs_machine_dependent, 0, 0,
|
||||
RELAX_LITERAL_POOL_BEGIN, NULL, 0, NULL);
|
||||
xtensa_set_frag_assembly_state (frag_now);
|
||||
|
@ -9817,17 +9818,14 @@ xtensa_move_literals (void)
|
|||
frchain_to = literal_pool->tc_frag_data.lit_frchain;
|
||||
assert (frchain_to);
|
||||
}
|
||||
insert_after = literal_pool;
|
||||
|
||||
while (insert_after->fr_next->fr_subtype != RELAX_LITERAL_POOL_END)
|
||||
insert_after = insert_after->fr_next;
|
||||
|
||||
insert_after = literal_pool->tc_frag_data.literal_frag;
|
||||
dest_seg = insert_after->fr_next->tc_frag_data.lit_seg;
|
||||
|
||||
*frag_splice = next_frag;
|
||||
search_frag->fr_next = insert_after->fr_next;
|
||||
insert_after->fr_next = search_frag;
|
||||
search_frag->tc_frag_data.lit_seg = dest_seg;
|
||||
literal_pool->tc_frag_data.literal_frag = search_frag;
|
||||
|
||||
/* Now move any fixups associated with this frag to the
|
||||
right section. */
|
||||
|
|
|
@ -228,7 +228,9 @@ struct xtensa_frag_type
|
|||
variable points to the frag where the literal will be stored. For
|
||||
literal frags, this variable points to the nearest literal pool
|
||||
location frag. This literal frag will be moved to after this
|
||||
location. */
|
||||
location. For RELAX_LITERAL_POOL_BEGIN frags, this field points
|
||||
to the frag immediately before the corresponding RELAX_LITERAL_POOL_END
|
||||
frag, to make moving frags for this literal pool efficient. */
|
||||
fragS *literal_frag;
|
||||
|
||||
/* The destination segment for literal frags. (Note that this is only
|
||||
|
|
Loading…
Reference in New Issue