bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/24571] [avr] Relaxation does not shorten jmp or call to target a


From: cvs-commit at gcc dot gnu.org
Subject: [Bug ld/24571] [avr] Relaxation does not shorten jmp or call to target at pc-relative range boundary
Date: Tue, 21 May 2019 07:20:24 +0000

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
<address@hidden>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7622049e0bef81fab900860400838bc977449892

commit 7622049e0bef81fab900860400838bc977449892
Author: Senthil Kumar Selvaraj <address@hidden>
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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]