diff --git a/gas/ChangeLog b/gas/ChangeLog index 757ef4b7b5..b0119c6f6e 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2014-11-25 Max Filippov + + * config/tc-xtensa.c (search_trampolines): Move post-loop + condition check outside the search loop. + 2014-11-24 H.J. Lu * configure: Regenerated. diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c index d11b0c7f27..f23ccf81a2 100644 --- a/gas/config/tc-xtensa.c +++ b/gas/config/tc-xtensa.c @@ -9514,11 +9514,11 @@ search_trampolines (TInsn *tinsn, fragS *fragP, bfd_boolean unreachable_only) if (next_addr == 0 || addr - next_addr > J_RANGE) break; } - if (abs (addr - this_addr) < J_RANGE) - return tf; - - return NULL; } + if (abs (addr - this_addr) < J_RANGE) + return tf; + + return NULL; } for ( ; tf; tf = tf->next) { diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 00a2df036d..3c2f81a6bb 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2014-11-25 Max Filippov + * gas/xtensa/trampoline.d: Add expected output for branches. + * gas/xtensa/trampoline.s: Add test case for branches. + 2014-11-21 Terry Guo * gas/arm/attr-arch-assumption.d: New file. diff --git a/gas/testsuite/gas/xtensa/trampoline.d b/gas/testsuite/gas/xtensa/trampoline.d index b4f65dc8c7..5ae32a66b8 100644 --- a/gas/testsuite/gas/xtensa/trampoline.d +++ b/gas/testsuite/gas/xtensa/trampoline.d @@ -24,3 +24,12 @@ .*33462:.*j.0x49407 #... .*49407:.*j.0x49407 +.*4940a:.*beqz.n.a2,.0x4940f +.*4940c:.*j.0x693d1 +#... +.*693d1:.*j.0x7ddd4 +#... +.*7ddd4:.*j.0x927f5 +#... +.*927f5:.*j.0x927f5 +#... diff --git a/gas/testsuite/gas/xtensa/trampoline.s b/gas/testsuite/gas/xtensa/trampoline.s index 259a3bbedc..4465786bb0 100644 --- a/gas/testsuite/gas/xtensa/trampoline.s +++ b/gas/testsuite/gas/xtensa/trampoline.s @@ -19,3 +19,10 @@ .endr 3: j 3b + bnez a2, 4f + .rep 50000 + and a2, a2, a3 + _ret + .endr +4: + j 4b