summaryrefslogtreecommitdiff
path: root/patches/binutils/2.25.1/905-Fix-trampolines-search-code-for-conditional-branches.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/binutils/2.25.1/905-Fix-trampolines-search-code-for-conditional-branches.patch')
-rw-r--r--patches/binutils/2.25.1/905-Fix-trampolines-search-code-for-conditional-branches.patch90
1 files changed, 0 insertions, 90 deletions
diff --git a/patches/binutils/2.25.1/905-Fix-trampolines-search-code-for-conditional-branches.patch b/patches/binutils/2.25.1/905-Fix-trampolines-search-code-for-conditional-branches.patch
deleted file mode 100644
index 8aeb064..0000000
--- a/patches/binutils/2.25.1/905-Fix-trampolines-search-code-for-conditional-branches.patch
+++ /dev/null
@@ -1,90 +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(-)
-
-diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
-index d11b0c7..f23ccf8 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/gas/xtensa/trampoline.d b/gas/testsuite/gas/xtensa/trampoline.d
-index b4f65dc..5ae32a6 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 259a3bb..4465786 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
---
-1.8.1.4
-