aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgexpand.c
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2016-12-07 14:44:45 +0000
committerWilco Dijkstra <wilco@gcc.gnu.org>2016-12-07 14:44:45 +0000
commit8734dfacbbd841ccf1fb9682a631896013442807 (patch)
treeadf987aeed65942cde7f7134d237e7d4564799c4 /gcc/cfgexpand.c
parentda88ea0265af5c877429a0c096cfdc0d4b3fecaa (diff)
downloadgcc-8734dfacbbd841ccf1fb9682a631896013442807.zip
gcc-8734dfacbbd841ccf1fb9682a631896013442807.tar.gz
gcc-8734dfacbbd841ccf1fb9682a631896013442807.tar.bz2
Improve TI mode address offsets - these may either use LDP of 64-bit or LDR of 128-bit...
Improve TI mode address offsets - these may either use LDP of 64-bit or LDR of 128-bit, so we need to use the correct intersection of offsets. When splitting a large offset into base and offset, use a signed 9-bit unscaled offset. Remove the Ump constraint on movti and movtf instructions as this blocks the reload optimizer from merging address CSEs (is this supposed to work only on 'm' constraints?). The result is improved codesize, especially wrf and gamess in SPEC2006. gcc/ * config/aarch64/aarch64.md (movti_aarch64): Change Ump to m. (movtf_aarch64): Likewise. * config/aarch64/aarch64.c (aarch64_classify_address): Use correct intersection of offsets. (aarch64_legitimize_address_displacement): Use 9-bit signed offsets. (aarch64_legitimize_address): Use 9-bit signed offsets for TI/TF mode. Use 7-bit signed scaled mode for modes > 16 bytes. From-SVN: r243346
Diffstat (limited to 'gcc/cfgexpand.c')
0 files changed, 0 insertions, 0 deletions