OSDN Git Service

Martin Guy <martinwguy@yahoo.it>
authorrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 10 Dec 2008 14:57:18 +0000 (14:57 +0000)
committerrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 10 Dec 2008 14:57:18 +0000 (14:57 +0000)
PR target/37668
* arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the
result will be in an FPU register.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142647 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/arm/arm.c

index d7e8767..57a235a 100644 (file)
@@ -1,3 +1,9 @@
+2008-12-10  Martin Guy <martinwguy@yahoo.it>
+
+       PR target/37668
+       * arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the
+       result will be in an FPU register.
+
 2008-12-10  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR target/37170
index a1cef0b..497564a 100644 (file)
@@ -5281,7 +5281,11 @@ arm_size_rtx_costs (rtx x, int code, int outer_code, int *total)
 
     case NEG:
       if (TARGET_HARD_FLOAT && GET_MODE_CLASS (mode) == MODE_FLOAT)
-       *total = COSTS_N_INSNS (1);
+       {
+         *total = COSTS_N_INSNS (1);
+         return false;
+       }
+
       /* Fall through */
     case NOT:
       *total = COSTS_N_INSNS (ARM_NUM_REGS (mode));