diff options
author | Wilco Dijkstra <wdijkstr@arm.com> | 2014-09-12 09:39:42 +0000 |
---|---|---|
committer | Jiong Wang <jiwang@gcc.gnu.org> | 2014-09-12 09:39:42 +0000 |
commit | 3be0766211a509edfca09bb402706094c22e0921 (patch) | |
tree | 7c5b27020495852cdcff6f1aa90e11f16800121f /gcc | |
parent | e533e26c0afe3a117418acc65ccaae536f59f105 (diff) | |
download | gcc-3be0766211a509edfca09bb402706094c22e0921.zip gcc-3be0766211a509edfca09bb402706094c22e0921.tar.gz gcc-3be0766211a509edfca09bb402706094c22e0921.tar.bz2 |
[AArch64] Add cost handling of CALLER_SAVE_REGS and POINTER_REGS
2014-09-12 Wilco Dijkstra <wdijkstr@arm.com>
* gcc/config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost handling
of CALLER_SAVE_REGS and POINTER_REGS.
From-SVN: r215206
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4d43c39..37202e8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com> + * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost + handling of CALLER_SAVE_REGS and POINTER_REGS. + +2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com> + * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change the number of hard registers. diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 6bb10db..6f21fd9 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -5932,6 +5932,13 @@ aarch64_register_move_cost (enum machine_mode mode, const struct cpu_regmove_cost *regmove_cost = aarch64_tune_params->regmove_cost; + /* Caller save and pointer regs are equivalent to GENERAL_REGS. */ + if (to == CALLER_SAVE_REGS || to == POINTER_REGS) + to = GENERAL_REGS; + + if (from == CALLER_SAVE_REGS || from == POINTER_REGS) + from = GENERAL_REGS; + /* Moving between GPR and stack cost is the same as GP2GP. */ if ((from == GENERAL_REGS && to == STACK_REG) || (to == GENERAL_REGS && from == STACK_REG)) |