]> git.ipfire.org Git - thirdparty/gcc.git/commit
hppa: Add peephole2 optimizations for REG+D loads and stores
authorJohn David Anglin <danglin@gcc.gnu.org>
Wed, 18 Sep 2024 15:02:32 +0000 (11:02 -0400)
committerJohn David Anglin <danglin@gcc.gnu.org>
Wed, 18 Sep 2024 15:02:32 +0000 (11:02 -0400)
commit4b03750f8cda0a8745b10639a8ac7df71aced0cc
tree9d402d885dd43c1d92cc985eaca76e1cf8fec7fb
parent85fcf740342e308da4776a45a4cd726987725a6a
hppa: Add peephole2 optimizations for REG+D loads and stores

The PA 1.x architecture only supports long displacements in
integer loads and stores.  Floating-point loads and stores
only support short displacements.  As a result, we have to
wait until reload is complete before generating insns with
long displacements.

The PA 2.0 architecture supports long displacements in both
integer and floating-point loads and stores.

The peephole2 optimizations added in this change are only
enabled when 14-bit long displacements aren't supported for
floating-point loads and stores.

2024-09-18  John David Anglin  <danglin@gcc.gnu.org>

gcc/ChangeLog:

* config/pa/pa.h (GENERAL_REGNO_P): Define.
* config/pa/pa.md: Add SImode and SFmode peephole2
patterns to generate loads and stores with long
displacements.
gcc/config/pa/pa.h
gcc/config/pa/pa.md