* config/tc-xtensa.c (xg_force_frag_space): Delete.
(xg_finish_frag, xg_assemble_literal_space): Replace calls to it. (xtensa_create_property_segments, xtensa_create_xproperty_segments): Set output_section for new property sections. Use subseg_set and seg_info instead of retrieve_segment_info. Adjust arguments to add_xt_block_frags and add_xt_prop_frags. Use standard functions to create frags and fix records. (retrieve_segment_info): Delete. (add_xt_block_frags, add_xt_prop_frags): Replace calls to retrieve_segment_info. Remove unused xt_block_sec arguments.
This commit is contained in:
parent
78d911fd3e
commit
542f8b941d
|
@ -1,3 +1,16 @@
|
||||||
|
2007-12-06 Bob Wilson <bob.wilson@acm.org>
|
||||||
|
|
||||||
|
* config/tc-xtensa.c (xg_force_frag_space): Delete.
|
||||||
|
(xg_finish_frag, xg_assemble_literal_space): Replace calls to it.
|
||||||
|
(xtensa_create_property_segments, xtensa_create_xproperty_segments):
|
||||||
|
Set output_section for new property sections. Use subseg_set and
|
||||||
|
seg_info instead of retrieve_segment_info. Adjust arguments to
|
||||||
|
add_xt_block_frags and add_xt_prop_frags. Use standard functions
|
||||||
|
to create frags and fix records.
|
||||||
|
(retrieve_segment_info): Delete.
|
||||||
|
(add_xt_block_frags, add_xt_prop_frags): Replace calls to
|
||||||
|
retrieve_segment_info. Remove unused xt_block_sec arguments.
|
||||||
|
|
||||||
2007-12-04 Alan Modra <amodra@bigpond.net.au>
|
2007-12-04 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* config/tc-ppc.c (ppc_tc): Allow a space between toc symbol
|
* config/tc-ppc.c (ppc_tc): Allow a space between toc symbol
|
||||||
|
|
|
@ -3600,16 +3600,6 @@ xg_assembly_relax (IStack *istack,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
xg_force_frag_space (int size)
|
|
||||||
{
|
|
||||||
/* This may have the side effect of creating a new fragment for the
|
|
||||||
space to go into. I just do not like the name of the "frag"
|
|
||||||
functions. */
|
|
||||||
frag_grow (size);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
xg_finish_frag (char *last_insn,
|
xg_finish_frag (char *last_insn,
|
||||||
enum xtensa_relax_statesE frag_state,
|
enum xtensa_relax_statesE frag_state,
|
||||||
|
@ -3624,8 +3614,7 @@ xg_finish_frag (char *last_insn,
|
||||||
|
|
||||||
fragS *old_frag;
|
fragS *old_frag;
|
||||||
|
|
||||||
xg_force_frag_space (max_growth);
|
frag_grow (max_growth);
|
||||||
|
|
||||||
old_frag = frag_now;
|
old_frag = frag_now;
|
||||||
|
|
||||||
frag_now->fr_opcode = last_insn;
|
frag_now->fr_opcode = last_insn;
|
||||||
|
@ -4086,7 +4075,7 @@ xg_assemble_literal_space (/* const */ int size, int slot)
|
||||||
frag_align (litalign, 0, 0);
|
frag_align (litalign, 0, 0);
|
||||||
record_alignment (now_seg, litalign);
|
record_alignment (now_seg, litalign);
|
||||||
|
|
||||||
xg_force_frag_space (size);
|
frag_grow (size);
|
||||||
|
|
||||||
lit_saved_frag = frag_now;
|
lit_saved_frag = frag_now;
|
||||||
frag_now->tc_frag_data.literal_frag = get_literal_pool_location (now_seg);
|
frag_now->tc_frag_data.literal_frag = get_literal_pool_location (now_seg);
|
||||||
|
@ -10258,17 +10247,15 @@ static void xtensa_create_property_segments
|
||||||
(frag_predicate, frag_predicate, const char *, xt_section_type);
|
(frag_predicate, frag_predicate, const char *, xt_section_type);
|
||||||
static void xtensa_create_xproperty_segments
|
static void xtensa_create_xproperty_segments
|
||||||
(frag_flags_fn, const char *, xt_section_type);
|
(frag_flags_fn, const char *, xt_section_type);
|
||||||
static segment_info_type *retrieve_segment_info (segT);
|
|
||||||
static bfd_boolean section_has_property (segT, frag_predicate);
|
static bfd_boolean section_has_property (segT, frag_predicate);
|
||||||
static bfd_boolean section_has_xproperty (segT, frag_flags_fn);
|
static bfd_boolean section_has_xproperty (segT, frag_flags_fn);
|
||||||
static void add_xt_block_frags
|
static void add_xt_block_frags
|
||||||
(segT, segT, xtensa_block_info **, frag_predicate, frag_predicate);
|
(segT, xtensa_block_info **, frag_predicate, frag_predicate);
|
||||||
static bfd_boolean xtensa_frag_flags_is_empty (const frag_flags *);
|
static bfd_boolean xtensa_frag_flags_is_empty (const frag_flags *);
|
||||||
static void xtensa_frag_flags_init (frag_flags *);
|
static void xtensa_frag_flags_init (frag_flags *);
|
||||||
static void get_frag_property_flags (const fragS *, frag_flags *);
|
static void get_frag_property_flags (const fragS *, frag_flags *);
|
||||||
static bfd_vma frag_flags_to_number (const frag_flags *);
|
static bfd_vma frag_flags_to_number (const frag_flags *);
|
||||||
static void add_xt_prop_frags
|
static void add_xt_prop_frags (segT, xtensa_block_info **, frag_flags_fn);
|
||||||
(segT, segT, xtensa_block_info **, frag_flags_fn);
|
|
||||||
|
|
||||||
/* Set up property tables after relaxation. */
|
/* Set up property tables after relaxation. */
|
||||||
|
|
||||||
|
@ -10333,13 +10320,17 @@ xtensa_create_property_segments (frag_predicate property_function,
|
||||||
|
|
||||||
if (section_has_property (sec, property_function))
|
if (section_has_property (sec, property_function))
|
||||||
{
|
{
|
||||||
segT insn_sec =
|
segment_info_type *xt_seg_info;
|
||||||
xtensa_get_property_section (sec, section_name_base);
|
xtensa_block_info **xt_blocks;
|
||||||
segment_info_type *xt_seg_info = retrieve_segment_info (insn_sec);
|
segT prop_sec = xtensa_get_property_section (sec, section_name_base);
|
||||||
xtensa_block_info **xt_blocks =
|
|
||||||
&xt_seg_info->tc_segment_info_data.blocks[sec_type];
|
prop_sec->output_section = prop_sec;
|
||||||
|
subseg_set (prop_sec, 0);
|
||||||
|
xt_seg_info = seg_info (prop_sec);
|
||||||
|
xt_blocks = &xt_seg_info->tc_segment_info_data.blocks[sec_type];
|
||||||
|
|
||||||
/* Walk over all of the frchains here and add new sections. */
|
/* Walk over all of the frchains here and add new sections. */
|
||||||
add_xt_block_frags (sec, insn_sec, xt_blocks, property_function,
|
add_xt_block_frags (sec, xt_blocks, property_function,
|
||||||
end_property_function);
|
end_property_function);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10360,7 +10351,6 @@ xtensa_create_property_segments (frag_predicate property_function,
|
||||||
if (block)
|
if (block)
|
||||||
{
|
{
|
||||||
xtensa_block_info *cur_block;
|
xtensa_block_info *cur_block;
|
||||||
/* This is a section with some data. */
|
|
||||||
int num_recs = 0;
|
int num_recs = 0;
|
||||||
bfd_size_type rec_size;
|
bfd_size_type rec_size;
|
||||||
|
|
||||||
|
@ -10370,68 +10360,35 @@ xtensa_create_property_segments (frag_predicate property_function,
|
||||||
rec_size = num_recs * 8;
|
rec_size = num_recs * 8;
|
||||||
bfd_set_section_size (stdoutput, sec, rec_size);
|
bfd_set_section_size (stdoutput, sec, rec_size);
|
||||||
|
|
||||||
/* In order to make this work with the assembler, we have to
|
|
||||||
build some frags and then build the "fixups" for it. It
|
|
||||||
would be easier to just set the contents then set the
|
|
||||||
arlents. */
|
|
||||||
|
|
||||||
if (num_recs)
|
if (num_recs)
|
||||||
{
|
{
|
||||||
/* Allocate a fragment and leak it. */
|
|
||||||
fragS *fragP;
|
|
||||||
bfd_size_type frag_size;
|
|
||||||
fixS *fixes;
|
|
||||||
frchainS *frchainP;
|
|
||||||
int i;
|
|
||||||
char *frag_data;
|
char *frag_data;
|
||||||
|
int i;
|
||||||
|
|
||||||
frag_size = sizeof (fragS) + rec_size;
|
subseg_set (sec, 0);
|
||||||
fragP = (fragS *) xmalloc (frag_size);
|
frag_data = frag_more (rec_size);
|
||||||
|
|
||||||
memset (fragP, 0, frag_size);
|
|
||||||
fragP->fr_address = 0;
|
|
||||||
fragP->fr_next = NULL;
|
|
||||||
fragP->fr_fix = rec_size;
|
|
||||||
fragP->fr_var = 0;
|
|
||||||
fragP->fr_type = rs_fill;
|
|
||||||
/* The rest are zeros. */
|
|
||||||
|
|
||||||
frchainP = seginfo->frchainP;
|
|
||||||
frchainP->frch_root = fragP;
|
|
||||||
frchainP->frch_last = fragP;
|
|
||||||
|
|
||||||
fixes = (fixS *) xmalloc (sizeof (fixS) * num_recs);
|
|
||||||
memset (fixes, 0, sizeof (fixS) * num_recs);
|
|
||||||
|
|
||||||
seginfo->fix_root = fixes;
|
|
||||||
seginfo->fix_tail = &fixes[num_recs - 1];
|
|
||||||
cur_block = block;
|
cur_block = block;
|
||||||
frag_data = &fragP->fr_literal[0];
|
|
||||||
for (i = 0; i < num_recs; i++)
|
for (i = 0; i < num_recs; i++)
|
||||||
{
|
{
|
||||||
fixS *fix = &fixes[i];
|
fixS *fix;
|
||||||
assert (cur_block);
|
|
||||||
|
|
||||||
/* Write the fixup. */
|
/* Write the fixup. */
|
||||||
if (i != num_recs - 1)
|
assert (cur_block);
|
||||||
fix->fx_next = &fixes[i + 1];
|
fix = fix_new (frag_now, i * 8, 4,
|
||||||
else
|
section_symbol (cur_block->sec),
|
||||||
fix->fx_next = NULL;
|
cur_block->offset,
|
||||||
fix->fx_size = 4;
|
FALSE, BFD_RELOC_32);
|
||||||
fix->fx_done = 0;
|
fix->fx_file = "<internal>";
|
||||||
fix->fx_frag = fragP;
|
|
||||||
fix->fx_where = i * 8;
|
|
||||||
fix->fx_addsy = section_symbol (cur_block->sec);
|
|
||||||
fix->fx_offset = cur_block->offset;
|
|
||||||
fix->fx_r_type = BFD_RELOC_32;
|
|
||||||
fix->fx_file = "Internal Assembly";
|
|
||||||
fix->fx_line = 0;
|
fix->fx_line = 0;
|
||||||
|
|
||||||
/* Write the length. */
|
/* Write the length. */
|
||||||
md_number_to_chars (&frag_data[4 + 8 * i],
|
md_number_to_chars (&frag_data[4 + i * 8],
|
||||||
cur_block->size, 4);
|
cur_block->size, 4);
|
||||||
cur_block = cur_block->next;
|
cur_block = cur_block->next;
|
||||||
}
|
}
|
||||||
|
frag_wane (frag_now);
|
||||||
|
frag_new (0);
|
||||||
|
frag_wane (frag_now);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10465,13 +10422,17 @@ xtensa_create_xproperty_segments (frag_flags_fn flag_fn,
|
||||||
|
|
||||||
if (section_has_xproperty (sec, flag_fn))
|
if (section_has_xproperty (sec, flag_fn))
|
||||||
{
|
{
|
||||||
segT insn_sec =
|
segment_info_type *xt_seg_info;
|
||||||
xtensa_get_property_section (sec, section_name_base);
|
xtensa_block_info **xt_blocks;
|
||||||
segment_info_type *xt_seg_info = retrieve_segment_info (insn_sec);
|
segT prop_sec = xtensa_get_property_section (sec, section_name_base);
|
||||||
xtensa_block_info **xt_blocks =
|
|
||||||
&xt_seg_info->tc_segment_info_data.blocks[sec_type];
|
prop_sec->output_section = prop_sec;
|
||||||
|
subseg_set (prop_sec, 0);
|
||||||
|
xt_seg_info = seg_info (prop_sec);
|
||||||
|
xt_blocks = &xt_seg_info->tc_segment_info_data.blocks[sec_type];
|
||||||
|
|
||||||
/* Walk over all of the frchains here and add new sections. */
|
/* Walk over all of the frchains here and add new sections. */
|
||||||
add_xt_prop_frags (sec, insn_sec, xt_blocks, flag_fn);
|
add_xt_prop_frags (sec, xt_blocks, flag_fn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10491,7 +10452,6 @@ xtensa_create_xproperty_segments (frag_flags_fn flag_fn,
|
||||||
if (block)
|
if (block)
|
||||||
{
|
{
|
||||||
xtensa_block_info *cur_block;
|
xtensa_block_info *cur_block;
|
||||||
/* This is a section with some data. */
|
|
||||||
int num_recs = 0;
|
int num_recs = 0;
|
||||||
bfd_size_type rec_size;
|
bfd_size_type rec_size;
|
||||||
|
|
||||||
|
@ -10500,116 +10460,46 @@ xtensa_create_xproperty_segments (frag_flags_fn flag_fn,
|
||||||
|
|
||||||
rec_size = num_recs * (8 + 4);
|
rec_size = num_recs * (8 + 4);
|
||||||
bfd_set_section_size (stdoutput, sec, rec_size);
|
bfd_set_section_size (stdoutput, sec, rec_size);
|
||||||
|
|
||||||
/* elf_section_data (sec)->this_hdr.sh_entsize = 12; */
|
/* elf_section_data (sec)->this_hdr.sh_entsize = 12; */
|
||||||
|
|
||||||
/* In order to make this work with the assembler, we have to build
|
|
||||||
some frags then build the "fixups" for it. It would be easier to
|
|
||||||
just set the contents then set the arlents. */
|
|
||||||
|
|
||||||
if (num_recs)
|
if (num_recs)
|
||||||
{
|
{
|
||||||
/* Allocate a fragment and (unfortunately) leak it. */
|
|
||||||
fragS *fragP;
|
|
||||||
bfd_size_type frag_size;
|
|
||||||
fixS *fixes;
|
|
||||||
frchainS *frchainP;
|
|
||||||
int i;
|
|
||||||
char *frag_data;
|
char *frag_data;
|
||||||
|
int i;
|
||||||
|
|
||||||
frag_size = sizeof (fragS) + rec_size;
|
subseg_set (sec, 0);
|
||||||
fragP = (fragS *) xmalloc (frag_size);
|
frag_data = frag_more (rec_size);
|
||||||
|
|
||||||
memset (fragP, 0, frag_size);
|
|
||||||
fragP->fr_address = 0;
|
|
||||||
fragP->fr_next = NULL;
|
|
||||||
fragP->fr_fix = rec_size;
|
|
||||||
fragP->fr_var = 0;
|
|
||||||
fragP->fr_type = rs_fill;
|
|
||||||
/* The rest are zeros. */
|
|
||||||
|
|
||||||
frchainP = seginfo->frchainP;
|
|
||||||
frchainP->frch_root = fragP;
|
|
||||||
frchainP->frch_last = fragP;
|
|
||||||
|
|
||||||
fixes = (fixS *) xmalloc (sizeof (fixS) * num_recs);
|
|
||||||
memset (fixes, 0, sizeof (fixS) * num_recs);
|
|
||||||
|
|
||||||
seginfo->fix_root = fixes;
|
|
||||||
seginfo->fix_tail = &fixes[num_recs - 1];
|
|
||||||
cur_block = block;
|
cur_block = block;
|
||||||
frag_data = &fragP->fr_literal[0];
|
|
||||||
for (i = 0; i < num_recs; i++)
|
for (i = 0; i < num_recs; i++)
|
||||||
{
|
{
|
||||||
fixS *fix = &fixes[i];
|
fixS *fix;
|
||||||
assert (cur_block);
|
|
||||||
|
|
||||||
/* Write the fixup. */
|
/* Write the fixup. */
|
||||||
if (i != num_recs - 1)
|
assert (cur_block);
|
||||||
fix->fx_next = &fixes[i + 1];
|
fix = fix_new (frag_now, i * 12, 4,
|
||||||
else
|
section_symbol (cur_block->sec),
|
||||||
fix->fx_next = NULL;
|
cur_block->offset,
|
||||||
fix->fx_size = 4;
|
FALSE, BFD_RELOC_32);
|
||||||
fix->fx_done = 0;
|
fix->fx_file = "<internal>";
|
||||||
fix->fx_frag = fragP;
|
|
||||||
fix->fx_where = i * (8 + 4);
|
|
||||||
fix->fx_addsy = section_symbol (cur_block->sec);
|
|
||||||
fix->fx_offset = cur_block->offset;
|
|
||||||
fix->fx_r_type = BFD_RELOC_32;
|
|
||||||
fix->fx_file = "Internal Assembly";
|
|
||||||
fix->fx_line = 0;
|
fix->fx_line = 0;
|
||||||
|
|
||||||
/* Write the length. */
|
/* Write the length. */
|
||||||
md_number_to_chars (&frag_data[4 + (8+4) * i],
|
md_number_to_chars (&frag_data[4 + i * 12],
|
||||||
cur_block->size, 4);
|
cur_block->size, 4);
|
||||||
md_number_to_chars (&frag_data[8 + (8+4) * i],
|
md_number_to_chars (&frag_data[8 + i * 12],
|
||||||
frag_flags_to_number (&cur_block->flags),
|
frag_flags_to_number (&cur_block->flags),
|
||||||
4);
|
4);
|
||||||
cur_block = cur_block->next;
|
cur_block = cur_block->next;
|
||||||
}
|
}
|
||||||
|
frag_wane (frag_now);
|
||||||
|
frag_new (0);
|
||||||
|
frag_wane (frag_now);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static segment_info_type *
|
|
||||||
retrieve_segment_info (segT seg)
|
|
||||||
{
|
|
||||||
segment_info_type *seginfo;
|
|
||||||
seginfo = (segment_info_type *) bfd_get_section_userdata (stdoutput, seg);
|
|
||||||
if (!seginfo)
|
|
||||||
{
|
|
||||||
frchainS *frchainP;
|
|
||||||
|
|
||||||
seginfo = (segment_info_type *) xmalloc (sizeof (*seginfo));
|
|
||||||
memset ((void *) seginfo, 0, sizeof (*seginfo));
|
|
||||||
seginfo->fix_root = NULL;
|
|
||||||
seginfo->fix_tail = NULL;
|
|
||||||
seginfo->bfd_section = seg;
|
|
||||||
seginfo->sym = 0;
|
|
||||||
/* We will not be dealing with these, only our special ones. */
|
|
||||||
bfd_set_section_userdata (stdoutput, seg, (void *) seginfo);
|
|
||||||
|
|
||||||
frchainP = (frchainS *) xmalloc (sizeof (frchainS));
|
|
||||||
frchainP->frch_root = NULL;
|
|
||||||
frchainP->frch_last = NULL;
|
|
||||||
frchainP->frch_next = NULL;
|
|
||||||
frchainP->frch_subseg = 0;
|
|
||||||
frchainP->fix_root = NULL;
|
|
||||||
frchainP->fix_tail = NULL;
|
|
||||||
/* Do not init the objstack. */
|
|
||||||
/* obstack_begin (&frchainP->frch_obstack, chunksize); */
|
|
||||||
/* frchainP->frch_frag_now = fragP; */
|
|
||||||
frchainP->frch_frag_now = NULL;
|
|
||||||
|
|
||||||
seginfo->frchainP = frchainP;
|
|
||||||
}
|
|
||||||
|
|
||||||
return seginfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static bfd_boolean
|
static bfd_boolean
|
||||||
section_has_property (segT sec, frag_predicate property_function)
|
section_has_property (segT sec, frag_predicate property_function)
|
||||||
{
|
{
|
||||||
|
@ -10653,19 +10543,13 @@ section_has_xproperty (segT sec, frag_flags_fn property_function)
|
||||||
|
|
||||||
static void
|
static void
|
||||||
add_xt_block_frags (segT sec,
|
add_xt_block_frags (segT sec,
|
||||||
segT xt_block_sec,
|
|
||||||
xtensa_block_info **xt_block,
|
xtensa_block_info **xt_block,
|
||||||
frag_predicate property_function,
|
frag_predicate property_function,
|
||||||
frag_predicate end_property_function)
|
frag_predicate end_property_function)
|
||||||
{
|
{
|
||||||
segment_info_type *seg_info;
|
|
||||||
segment_info_type *xt_seg_info;
|
|
||||||
bfd_vma seg_offset;
|
bfd_vma seg_offset;
|
||||||
fragS *fragP;
|
fragS *fragP;
|
||||||
|
|
||||||
xt_seg_info = retrieve_segment_info (xt_block_sec);
|
|
||||||
seg_info = retrieve_segment_info (sec);
|
|
||||||
|
|
||||||
/* Build it if needed. */
|
/* Build it if needed. */
|
||||||
while (*xt_block != NULL)
|
while (*xt_block != NULL)
|
||||||
xt_block = &(*xt_block)->next;
|
xt_block = &(*xt_block)->next;
|
||||||
|
@ -10674,9 +10558,9 @@ add_xt_block_frags (segT sec,
|
||||||
/* Walk through the frags. */
|
/* Walk through the frags. */
|
||||||
seg_offset = 0;
|
seg_offset = 0;
|
||||||
|
|
||||||
if (seg_info->frchainP)
|
if (seg_info (sec)->frchainP)
|
||||||
{
|
{
|
||||||
for (fragP = seg_info->frchainP->frch_root;
|
for (fragP = seg_info (sec)->frchainP->frch_root;
|
||||||
fragP;
|
fragP;
|
||||||
fragP = fragP->fr_next)
|
fragP = fragP->fr_next)
|
||||||
{
|
{
|
||||||
|
@ -10913,17 +10797,12 @@ xtensa_xt_block_combine (xtensa_block_info *xt_block,
|
||||||
|
|
||||||
static void
|
static void
|
||||||
add_xt_prop_frags (segT sec,
|
add_xt_prop_frags (segT sec,
|
||||||
segT xt_block_sec,
|
|
||||||
xtensa_block_info **xt_block,
|
xtensa_block_info **xt_block,
|
||||||
frag_flags_fn property_function)
|
frag_flags_fn property_function)
|
||||||
{
|
{
|
||||||
segment_info_type *seg_info;
|
|
||||||
segment_info_type *xt_seg_info;
|
|
||||||
bfd_vma seg_offset;
|
bfd_vma seg_offset;
|
||||||
fragS *fragP;
|
fragS *fragP;
|
||||||
|
|
||||||
xt_seg_info = retrieve_segment_info (xt_block_sec);
|
|
||||||
seg_info = retrieve_segment_info (sec);
|
|
||||||
/* Build it if needed. */
|
/* Build it if needed. */
|
||||||
while (*xt_block != NULL)
|
while (*xt_block != NULL)
|
||||||
{
|
{
|
||||||
|
@ -10934,9 +10813,9 @@ add_xt_prop_frags (segT sec,
|
||||||
/* Walk through the frags. */
|
/* Walk through the frags. */
|
||||||
seg_offset = 0;
|
seg_offset = 0;
|
||||||
|
|
||||||
if (seg_info->frchainP)
|
if (seg_info (sec)->frchainP)
|
||||||
{
|
{
|
||||||
for (fragP = seg_info->frchainP->frch_root; fragP;
|
for (fragP = seg_info (sec)->frchainP->frch_root; fragP;
|
||||||
fragP = fragP->fr_next)
|
fragP = fragP->fr_next)
|
||||||
{
|
{
|
||||||
xtensa_block_info tmp_block;
|
xtensa_block_info tmp_block;
|
||||||
|
|
Loading…
Reference in New Issue