aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1993-01-01 10:17:26 -0700
committerJeff Law <law@gcc.gnu.org>1993-01-01 10:17:26 -0700
commit1224aecbffbd9ea2b6fce6c8c2b5236984379e24 (patch)
tree4081086225921c71375ce456182acfc9b7915a96 /gcc
parent6afcfe635efee8919d30f41dcaaafb00668b2116 (diff)
downloadgcc-1224aecbffbd9ea2b6fce6c8c2b5236984379e24.zip
gcc-1224aecbffbd9ea2b6fce6c8c2b5236984379e24.tar.gz
gcc-1224aecbffbd9ea2b6fce6c8c2b5236984379e24.tar.bz2
pa.h (REGISTER_MOVE_COST): Make moving between FP and non-FP register more expensive.
* pa.h (REGISTER_MOVE_COST): Make moving between FP and non-FP register more expensive. From-SVN: r3040
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/pa/pa.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 1ed9a98..a56c9a5 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -1393,10 +1393,12 @@ while (0)
#define REGISTER_MOVE_COST(CLASS1, CLASS2) \
((((CLASS1 == FP_REGS || CLASS1 == SNAKE_FP_REGS \
|| CLASS1 == HI_SNAKE_FP_REGS) \
- && (CLASS2 == R1_REGS || CLASS2 == GENERAL_REGS)) \
- || ((CLASS1 == R1_REGS || CLASS1 == GENERAL_REGS) \
+ && (CLASS2 == R1_REGS || CLASS2 == GENERAL_REGS \
+ || CLASS2 == SHIFT_REGS)) \
+ || ((CLASS1 == R1_REGS || CLASS1 == GENERAL_REGS \
+ || CLASS1 == SHIFT_REGS) \
&& (CLASS2 == FP_REGS || CLASS2 == SNAKE_FP_REGS \
- || CLASS2 == HI_SNAKE_FP_REGS))) ? 6 : 2)
+ || CLASS2 == HI_SNAKE_FP_REGS))) ? 16 : 2)
/* Provide the costs of a rtl expression. This is in the body of a
switch on CODE. The purpose for the cost of MULT is to encourage