gas: xtensa: reuse find_trampoline_seg

xtensa_create_trampoline_frag has opencoded fragment equivalent to
find_trampoline_seg. Drop the fragment and use find_trampoline_seg
instead. No functional changes.

gas/
2017-11-27  Max Filippov  <jcmvbkbc@gmail.com>

	* config/tc-xtensa.c (find_trampoline_seg): Move above the first
	use.
	(xtensa_create_trampoline_frag): Replace trampoline seg search
	code with a call to find_trampoline_seg.
This commit is contained in:
Max Filippov 2017-11-10 13:38:23 -08:00
parent fec68fb168
commit 1c2649f50f
2 changed files with 23 additions and 22 deletions

View File

@ -1,3 +1,10 @@
2017-11-27 Max Filippov <jcmvbkbc@gmail.com>
* config/tc-xtensa.c (find_trampoline_seg): Move above the first
use.
(xtensa_create_trampoline_frag): Replace trampoline seg search
code with a call to find_trampoline_seg.
2017-11-27 Max Filippov <jcmvbkbc@gmail.com>
* config/tc-xtensa.c (xg_append_jump): New function.

View File

@ -7421,6 +7421,21 @@ static xtensa_insnbuf litpool_slotbuf = NULL;
#define TRAMPOLINE_FRAG_SIZE 3000
static struct trampoline_seg *
find_trampoline_seg (asection *seg)
{
struct trampoline_seg *ts = trampoline_seg_list.next;
for ( ; ts; ts = ts->next)
{
if (ts->seg == seg)
return ts;
}
return NULL;
}
static void
xtensa_create_trampoline_frag (bfd_boolean needs_jump_around)
{
@ -7430,18 +7445,12 @@ xtensa_create_trampoline_frag (bfd_boolean needs_jump_around)
We allocate enough for 1000 trampolines in each frag.
If that's not enough, oh well. */
struct trampoline_seg *ts = trampoline_seg_list.next;
struct trampoline_seg *ts = find_trampoline_seg (now_seg);
struct trampoline_frag *tf;
char *varP;
fragS *fragP;
int size = TRAMPOLINE_FRAG_SIZE;
for ( ; ts; ts = ts->next)
{
if (ts->seg == now_seg)
break;
}
if (ts == NULL)
{
ts = XCNEW(struct trampoline_seg);
@ -7469,21 +7478,6 @@ xtensa_create_trampoline_frag (bfd_boolean needs_jump_around)
}
static struct trampoline_seg *
find_trampoline_seg (asection *seg)
{
struct trampoline_seg *ts = trampoline_seg_list.next;
for ( ; ts; ts = ts->next)
{
if (ts->seg == seg)
return ts;
}
return NULL;
}
void dump_trampolines (void);
void