aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2017-11-10 13:38:23 -0800
committerMax Filippov <jcmvbkbc@gmail.com>2017-11-27 15:12:21 -0800
commit1c2649f50f4e40c07840f45c4d237efcdd02e8e2 (patch)
tree15e69fe8899f8f03620127f7ad906a29543beb38
parentfec68fb168d580c188358347f3834072a8960ddc (diff)
downloadgdb-1c2649f50f4e40c07840f45c4d237efcdd02e8e2.zip
gdb-1c2649f50f4e40c07840f45c4d237efcdd02e8e2.tar.gz
gdb-1c2649f50f4e40c07840f45c4d237efcdd02e8e2.tar.bz2
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.
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/config/tc-xtensa.c38
2 files changed, 23 insertions, 22 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index d156052..82c4f6b 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,12 @@
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.
(xg_relax_trampoline, init_trampoline_frag)
(add_jump_to_trampoline): Replace trampoline jump assembling
diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
index eccf3c3..a8ed49b 100644
--- a/gas/config/tc-xtensa.c
+++ b/gas/config/tc-xtensa.c
@@ -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