]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix previous commit
authorRichard Sandiford <rsandifo@gcc.gnu.org>
Thu, 4 May 2017 11:03:54 +0000 (11:03 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Thu, 4 May 2017 11:03:54 +0000 (11:03 +0000)
From-SVN: r247589

gcc/config/mips/mips.c
gcc/config/mips/mips.md
gcc/testsuite/gcc.target/powerpc/ppc-pow.c

index 84c36a87210337f922957cc21de3b6627b2739ed..6bfd86a07af4b93b157d1c2f36a4e9a50272b652 100644 (file)
@@ -2590,7 +2590,7 @@ mips_stack_address_p (rtx x, machine_mode mode)
 
   return (mips_classify_address (&addr, x, mode, false)
          && addr.type == ADDRESS_REG
-         && rtx_equal_p (addr.reg, stack_pointer_rtx));
+         && addr.reg == stack_pointer_rtx);
 }
 
 /* Return true if ADDR matches the pattern for the LWXS load scaled indexed
@@ -6098,9 +6098,7 @@ mips_function_arg_boundary (machine_mode mode, const_tree type)
 {
   unsigned int alignment;
 
-  alignment = type && mode == BLKmode
-             ? TYPE_ALIGN (TYPE_MAIN_VARIANT (type))
-             : GET_MODE_ALIGNMENT (mode);
+  alignment = type ? TYPE_ALIGN (type) : GET_MODE_ALIGNMENT (mode);
   if (alignment < PARM_BOUNDARY)
     alignment = PARM_BOUNDARY;
   if (alignment > STACK_BOUNDARY)
@@ -8472,6 +8470,11 @@ and_operands_ok (machine_mode mode, rtx op1, rtx op2)
 
   if (memory_operand (op1, mode))
     {
+      if (TARGET_MIPS16) {
+       struct mips_address_info addr;
+       if (!mips_classify_address (&addr, op1, mode, false))
+         return false;
+      }
       return and_load_operand (op2, mode);
     }
   else
index 8efc48c24876b2323506ad2f61bbafcc49775a6e..28e0a444ba9d76ad9d29451216a3b898771d76c4 100644 (file)
   switch (which_alternative)
     {
     case 0:
-    fprintf (stderr, "-----\n");
-        fprintf (stderr, "%d %d %d\n", satisfies_constraint_W (operands[1]), memory_operand (operands[1], SImode), stack_operand (operands[1], SImode));
-      debug_rtx (operands[1]);
-    /*
       operands[1] = gen_lowpart (QImode, operands[1]);
-      */
       return "lbu\t%0,%1";
     case 1:
       operands[1] = gen_lowpart (HImode, operands[1]);
index 54565463ea77a62f1f739642047e7c4f02e83c35..df8930d26fb2d9b5109f3d13766f0f0a9491b316 100644 (file)
@@ -3,6 +3,7 @@
 /* Check for VSX here, even though we don't use VSX to eliminate SPE, PAIRED
    and other ppc floating point varients.  However, we need to also eliminate
    Darwin, since it doesn't like -mcpu=power6.  */
+/* { dg-require-effective-target powerpc_vsx_ok } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power6" } } */
 /* { dg-options "-O2 -ffast-math -mcpu=power6 -mno-vsx -mno-altivec" } */
 /* { dg-final { scan-assembler-times "fsqrt" 3 } } */