binutils: fix xtensa gas trampolines regression
authorMax Filippov <jcmvbkbc@gmail.com>
Sun, 10 May 2015 13:43:49 +0000 (16:43 +0300)
committerPeter Korsgaard <peter@korsgaard.com>
Sun, 10 May 2015 21:08:54 +0000 (23:08 +0200)
commitaf863a3bc0d3528031cad59dbf8a981f030d4be8
tree0075660f8e49058154d3875bad091005a7a4e5c3
parente4dde2536acfb72f0933cbcf6ac21f8d57ff40da
binutils: fix xtensa gas trampolines regression

xtensa trampolines relaxation optimization caused the following build
errors:
  Error: operand 1 of 'j' has out of range value '131643'
  Error: operand 1 of 'j' has out of range value '4294836162'
  Error: operand 1 of 'j' has out of range value '4294836072'

Extra condition 'abs (addr - trampaddr) < J_RANGE / 2' for trampoline
selection results in regressions: when relaxable jump is little longer
than J_RANGE so that single trampoline makes two new jumps, one longer
than J_RANGE / 2 and one shorter, correct trampoline cannot be found.

Drop that condition.

Upstream status: patch submitted.
Fix squashed into the optimization patch.
Fixes:
  http://autobuild.buildroot.net/results/5ba7d18262ce6a2dfd69db07d064a971267f1128/

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/binutils/2.24/910-xtensa-optimize-trampolines-relaxation.patch
package/binutils/2.25/910-xtensa-optimize-trampolines-relaxation.patch