aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/fr30/constraints.md
AgeCommit message (Collapse)AuthorFilesLines
2024-06-25[committed] Fix fr30-elf newlib build failure with late-combineJeff Law1-6/+0
So the late combine work has exposed a latent bug in the fr30 port. The fr30 "call" instruction is pc-relative with a *very* limited range, 12 bits to be precise. With such a limited range its hard to see how we could ever consistently use it in the compiler, with the possible exception of self-recursion. Even for a call to a locally binding function -ffunction-sections and linker placement of functions may separate the caller/callee. Code generation seemed to be using indirect forms pretty consistently, though the RTL would allow direct calls. With late-combine some of those indirects would be optimized into direct calls. This naturally led to out of range scenarios. With the fr30 port slated for removal unless it gets updated to use LRA and the fundamental problems using direct calls, I took the shortest path to keep things working -- namely forcing all calls to be indirect. Tested in my tester with no regressions (and fixes the newlib build failure with late-combine enabled). Pushed to the trunk. gcc/ * config/fr30/constraints.md (Q): Remove unused constraint. * config/fr30/predicates.md (call_operand): Remove unused predicate. * config/fr30/fr30.md (call, vall_value): Turn into expanders and force the call address into a register. (*call, *call_value): Adjust to only allow indirect calls. Adjust output template accordingly.
2024-01-03Update copyright years.Jakub Jelinek1-1/+1
2023-01-16Update copyright years.Jakub Jelinek1-1/+1
2022-01-03Update copyright years.Jakub Jelinek1-1/+1
2021-01-04Update copyright years.Jakub Jelinek1-1/+1
2020-01-01Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r279813
2019-01-01Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r267494
2018-01-03Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r256169
2017-01-01Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r243994
2016-01-04Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r232055
2015-01-05Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r219188
2014-01-02Update copyright years in gcc/Richard Sandiford1-1/+1
From-SVN: r206289
2013-01-10Update copyright years in gcc/Richard Sandiford1-2/+1
From-SVN: r195098
2011-02-15make fr30 use constraints.mdNathan Froyd1-0/+72
make fr30 use constraints.md * config/fr30/constraints.md: New file. * config/fr30/fr30.md: Include it. * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete. (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. (EXTRA_CONSTRAINT): Delete. From-SVN: r170172