diff options
Diffstat (limited to 'packages/binutils/2.25.1/0012-Fix-trampolines-search-code-for-conditional-branches.patch')
-rw-r--r-- | packages/binutils/2.25.1/0012-Fix-trampolines-search-code-for-conditional-branches.patch | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/packages/binutils/2.25.1/0012-Fix-trampolines-search-code-for-conditional-branches.patch b/packages/binutils/2.25.1/0012-Fix-trampolines-search-code-for-conditional-branches.patch deleted file mode 100644 index ec96a36b..00000000 --- a/packages/binutils/2.25.1/0012-Fix-trampolines-search-code-for-conditional-branches.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 415480d6471e67aef97c0241d451ef2423a1da9d Mon Sep 17 00:00:00 2001 -From: Max Filippov <jcmvbkbc@gmail.com> -Date: Tue, 25 Nov 2014 21:33:21 +0300 -Subject: [PATCH] Fix trampolines search code for conditional branches - -For conditional branches that need more than one trampoline to reach its -target assembler couldn't always find suitable trampoline because -post-loop condition check was placed inside the loop, resulting in -premature loop termination. Move check outside the loop. - -This fixes the following build errors seen when assembling huge files -produced by gcc: - Error: jump target out of range; no usable trampoline found - Error: operand 1 of 'j' has out of range value '307307' - -2014-11-25 Max Filippov <jcmvbkbc@gmail.com> - -gas/ - * config/tc-xtensa.c (search_trampolines): Move post-loop - condition check outside the search loop. - -gas/testsuite/ - * gas/xtensa/trampoline.d: Add expected output for branches. - * gas/xtensa/trampoline.s: Add test case for branches. - -Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> ---- -Backported from: d92b6eece424f0ad35d96fdd85bf207295e8c4c3 -Changes to ChangeLogs are dropped. - - gas/config/tc-xtensa.c | 8 ++++---- - gas/testsuite/gas/xtensa/trampoline.d | 9 +++++++++ - gas/testsuite/gas/xtensa/trampoline.s | 7 +++++++ - 3 files changed, 20 insertions(+), 4 deletions(-) - ---- a/gas/config/tc-xtensa.c -+++ b/gas/config/tc-xtensa.c -@@ -9514,11 +9514,11 @@ - 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) - { ---- 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 -+#... ---- 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 |