diff options
author | Jan Hubicka <jh@suse.cz> | 2004-12-16 01:25:34 +0000 |
---|---|---|
committer | Jan Hubicka <jh@suse.cz> | 2004-12-16 01:25:34 +0000 |
commit | 6ef720e0c2fb8b849f1ba95033ad1fa1685d0753 (patch) | |
tree | 8a608ad61261d69c61f7f63aa864fbe49b973496 /gcc/config/arm/arm.c | |
parent | ad4a5f56f17933a8a51f242822aac4c15bcb9983 (diff) |
* Merge from mainline (tree-profiling-merge-20041215)
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/tree-profiling-branch@92240 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm/arm.c')
-rw-r--r-- | gcc/config/arm/arm.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 9db8b793328..188ff329fc1 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -4398,6 +4398,15 @@ arm_xscale_rtx_costs (rtx x, int code, int outer_code, int *total) + (REG_OR_SUBREG_REG (XEXP (x, 1)) ? 0 : 4); return true; + case COMPARE: + /* A COMPARE of a MULT is slow on XScale; the muls instruction + will stall until the multiplication is complete. */ + if (GET_CODE (XEXP (x, 0)) == MULT) + *total = 4 + rtx_cost (XEXP (x, 0), code); + else + *total = arm_rtx_costs_1 (x, code, outer_code); + return true; + default: *total = arm_rtx_costs_1 (x, code, outer_code); return true; |