https://sourceware.org/bugzilla/show_bug.cgi?id=24571
--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Senthil Kumar Selvaraj <saaa...@sourceware.org>: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7622049e0bef81fab900860400838bc977449892 commit 7622049e0bef81fab900860400838bc977449892 Author: Senthil Kumar Selvaraj <senthilkumar.selva...@microchip.com> Date: Thu May 16 12:12:33 2019 +0530 Fix PR 24571 - Relaxation does not shorten jmp or call to target at pc-relative range boundary The range check done to transform an absolute call/jump to a pc-relative one is off-by-one, and that causes this shortening optimization to be missed if the branch target is right at the range boundary. In the non-shrinkable case, the range is what is mentioned in the ISA - -4094 bytes in the backward direction, and 4096 bytes in the positive direction. In the shrinkable case, the forward jump range increases by two bytes (deleted because of the shortening from call/jmp to rcall/rjmp), and therefore, the range is -4094 in the reverse, and 4098 in the positive direction. Fix the ranges for !shrinkable and shrinkable cases, and add a test caes to ensure jumps to max forward and backward ranges get relaxed to rjmp. -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils