Commit 356ecb15 by Daniel Jacobowitz Committed by Daniel Jacobowitz

arm.h (REGISTER_MOVE_COST): Increase VFP register move cost.

	* config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
	move cost.

From-SVN: r149057
parent 897eef7b
2009-06-29 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
move cost.
2009-06-29 Uros Bizjak <ubizjak@gmail.com> 2009-06-29 Uros Bizjak <ubizjak@gmail.com>
* doc/extend.texi (Additional Floating Types): __float128 is also * doc/extend.texi (Additional Floating Types): __float128 is also
......
...@@ -1433,13 +1433,17 @@ do { \ ...@@ -1433,13 +1433,17 @@ do { \
/* If defined, gives a class of registers that cannot be used as the /* If defined, gives a class of registers that cannot be used as the
operand of a SUBREG that changes the mode of the object illegally. */ operand of a SUBREG that changes the mode of the object illegally. */
/* Moves between FPA_REGS and GENERAL_REGS are two memory insns. */ /* Moves between FPA_REGS and GENERAL_REGS are two memory insns.
Moves between VFP_REGS and GENERAL_REGS are a single insn, but
it is typically more expensive than a single memory access. We set
the cost to less than two memory accesses so that floating
point to integer conversion does not go through memory. */
#define REGISTER_MOVE_COST(MODE, FROM, TO) \ #define REGISTER_MOVE_COST(MODE, FROM, TO) \
(TARGET_32BIT ? \ (TARGET_32BIT ? \
((FROM) == FPA_REGS && (TO) != FPA_REGS ? 20 : \ ((FROM) == FPA_REGS && (TO) != FPA_REGS ? 20 : \
(FROM) != FPA_REGS && (TO) == FPA_REGS ? 20 : \ (FROM) != FPA_REGS && (TO) == FPA_REGS ? 20 : \
IS_VFP_CLASS (FROM) && !IS_VFP_CLASS (TO) ? 10 : \ IS_VFP_CLASS (FROM) && !IS_VFP_CLASS (TO) ? 15 : \
!IS_VFP_CLASS (FROM) && IS_VFP_CLASS (TO) ? 10 : \ !IS_VFP_CLASS (FROM) && IS_VFP_CLASS (TO) ? 15 : \
(FROM) == IWMMXT_REGS && (TO) != IWMMXT_REGS ? 4 : \ (FROM) == IWMMXT_REGS && (TO) != IWMMXT_REGS ? 4 : \
(FROM) != IWMMXT_REGS && (TO) == IWMMXT_REGS ? 4 : \ (FROM) != IWMMXT_REGS && (TO) == IWMMXT_REGS ? 4 : \
(FROM) == IWMMXT_GR_REGS || (TO) == IWMMXT_GR_REGS ? 20 : \ (FROM) == IWMMXT_GR_REGS || (TO) == IWMMXT_GR_REGS ? 20 : \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment