diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-xtensa.c | 9 |
2 files changed, 13 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 92d0c36..81f9f83 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,10 @@ 2017-11-27 Max Filippov <jcmvbkbc@gmail.com> + * config/tc-xtensa.c (find_trampoline_seg): Add static variable + that caches the result of the most recent search. + +2017-11-27 Max Filippov <jcmvbkbc@gmail.com> + * config/tc-xtensa.c (trampoline_chain_entry, trampoline_chain) (trampoline_chain_index): New structures. (trampoline_index): Add chain_index field. diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c index 9defd73..ce7eb49 100644 --- a/gas/config/tc-xtensa.c +++ b/gas/config/tc-xtensa.c @@ -7453,11 +7453,18 @@ static struct trampoline_seg * find_trampoline_seg (asection *seg) { struct trampoline_seg *ts = trampoline_seg_list.next; + static struct trampoline_seg *mr; + + if (mr && mr->seg == seg) + return mr; for ( ; ts; ts = ts->next) { if (ts->seg == seg) - return ts; + { + mr = ts; + return ts; + } } return NULL; |