diff options
author | Torbjorn Granlund <tege@gnu.org> | 1993-11-03 21:09:55 +0000 |
---|---|---|
committer | Torbjorn Granlund <tege@gnu.org> | 1993-11-03 21:09:55 +0000 |
commit | 5ac6158d0b938f95a80827c7c72b5fadc4976ca7 (patch) | |
tree | a208e6f581774c2f8fb6f1700c10e6a7e905a7ed | |
parent | cc4c133a3646b53c5b77bdd55d1efb896a19b161 (diff) | |
download | gcc-5ac6158d0b938f95a80827c7c72b5fadc4976ca7.zip gcc-5ac6158d0b938f95a80827c7c72b5fadc4976ca7.tar.gz gcc-5ac6158d0b938f95a80827c7c72b5fadc4976ca7.tar.bz2 |
(REGISTER_MOVE_COST): Decrease cost for move from
SHIFT_REGS to avoid regclass overflow.
From-SVN: r5986
-rw-r--r-- | gcc/config/pa/pa.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 7665c47..f683db3 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -1475,14 +1475,15 @@ while (0) /* Compute extra cost of moving data between one register class and another. - Make moves from SAR so expensive they should never happen. + Make moves from SAR so expensive they should never happen. We used to + have 0xffff here, but that generates overflow in rare cases. Copies involving a FP register and a non-FP register are relatively expensive because they must go through memory. Other copies are reasonably cheap. */ #define REGISTER_MOVE_COST(CLASS1, CLASS2) \ - (CLASS1 == SHIFT_REGS ? 0xffff \ + (CLASS1 == SHIFT_REGS ? 0x100 \ : FP_REG_CLASS_P (CLASS1) && ! FP_REG_CLASS_P (CLASS2) ? 16 \ : FP_REG_CLASS_P (CLASS2) && ! FP_REG_CLASS_P (CLASS1) ? 16 \ : 2) |