i386.c (ix86_function_value_regno_p): Use AX_REG.
authorUros Bizjak <uros@gcc.gnu.org>
Tue, 6 Sep 2011 21:04:55 +0000 (23:04 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Tue, 6 Sep 2011 21:04:55 +0000 (23:04 +0200)
2011-09-06  Uros Bizjak  <ubizjak@gmail.com>

        * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
        (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.

testsuite/ChangeLog:

2011-09-06  Uros Bizjak  <ubizjak@gmail.com>

        * gcc.target/i386/builtin-apply-mmx.c: Require ia32 effective target.

From-SVN: r178610

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/builtin-apply-mmx.c

index 465393aff13ec94e2c64dfd9e74ca09b646d05d7..df4877715bb987b413797c9889c7679c038250eb 100644 (file)
@@ -1,3 +1,8 @@
+2011-09-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
+       (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.
+
 2011-09-06  Iain Sandoe  <iains@gcc.gnu.org>
 
        * config/darwin10.h Remove duplicate LIB_SPEC.
 
 2011-09-02  Richard Guenther  <rguenther@suse.de>
 
-       * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not
-       fold alloca (0).
-       (ccp_fold_stmt): Continue replacing args when folding
-       alloca fails.
+       * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
+       (ccp_fold_stmt): Continue replacing args when folding alloca fails.
 
 2011-08-31  Richard Guenther  <rguenther@suse.de>
 
        (collect_object_sizes_for): Likewise.
        * tree-scalar-evolution.c (interpret_expr): Don't handle
        ternary RHSs.
-       * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and
-       simplify.
+       * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
        (ssa_forward_propagate_and_combine): Adjust.
        * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
        as ternary.
        * gthr-posix.h (__gthread_active_p): Do not use preprocessor
        conditionals and comments inside macro arguments.
 
-20011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
-            Richard Guenther  <rguenther@suse.de>
+2011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
+           Richard Guenther  <rguenther@suse.de>
 
        * tree.h (constant_boolean_node): Adjust prototype.
        * fold-const.c (fold_convert_loc): Move aggregate conversion
index 555db593cdb27d41e1fa67322da41a6471e3d117..ff8c49f0bf49fa7cd74e6fb3346d2efe24f63f9f 100644 (file)
@@ -7015,7 +7015,7 @@ ix86_function_value_regno_p (const unsigned int regno)
 {
   switch (regno)
     {
-    case 0:
+    case AX_REG:
       return true;
 
     case FIRST_FLOAT_REG:
@@ -7053,18 +7053,18 @@ function_value_32 (enum machine_mode orig_mode, enum machine_mode mode,
      we normally prevent this case when mmx is not available.  However
      some ABIs may require the result to be returned like DImode.  */
   if (VECTOR_MODE_P (mode) && GET_MODE_SIZE (mode) == 8)
-    regno = TARGET_MMX ? FIRST_MMX_REG : 0;
+    regno = FIRST_MMX_REG;
 
   /* 16-byte vector modes in %xmm0.  See ix86_return_in_memory for where
      we prevent this case when sse is not available.  However some ABIs
      may require the result to be returned like integer TImode.  */
   else if (mode == TImode
           || (VECTOR_MODE_P (mode) && GET_MODE_SIZE (mode) == 16))
-    regno = TARGET_SSE ? FIRST_SSE_REG : 0;
+    regno = FIRST_SSE_REG;
 
   /* 32-byte vector modes in %ymm0.   */
   else if (VECTOR_MODE_P (mode) && GET_MODE_SIZE (mode) == 32)
-    regno = TARGET_AVX ? FIRST_SSE_REG : 0;
+    regno = FIRST_SSE_REG;
 
   /* Floating point return values in %st(0) (unless -mno-fp-ret-in-387).  */
   else if (X87_FLOAT_MODE_P (mode) && TARGET_FLOAT_RETURNS_IN_80387)
@@ -7098,6 +7098,8 @@ function_value_64 (enum machine_mode orig_mode, enum machine_mode mode,
   /* Handle libcalls, which don't provide a type node.  */
   if (valtype == NULL)
     {
+      unsigned int regno;
+
       switch (mode)
        {
        case SFmode:
@@ -7108,15 +7110,19 @@ function_value_64 (enum machine_mode orig_mode, enum machine_mode mode,
        case SDmode:
        case DDmode:
        case TDmode:
-         return gen_rtx_REG (mode, FIRST_SSE_REG);
+         regno = FIRST_SSE_REG;
+         break;
        case XFmode:
        case XCmode:
-         return gen_rtx_REG (mode, FIRST_FLOAT_REG);
+         regno = FIRST_FLOAT_REG;
+         break;
        case TCmode:
          return NULL;
        default:
-         return gen_rtx_REG (mode, AX_REG);
+         regno = AX_REG;
        }
+
+      return gen_rtx_REG (mode, regno);
     }
   else if (POINTER_TYPE_P (valtype))
     {
index db1c7fda19e11cfdd799645e4a1256762547e772..802525053a8b3b8793dc8e03f0203c62f97f9640 100644 (file)
@@ -1,3 +1,7 @@
+2011-09-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       * gcc.target/i386/builtin-apply-mmx.c: Require ia32 effective target.
+
 2011-09-06  Enkovich Ilya  <ilya.enkovich@intel.com>
 
        * gcc.dg/tree-ssa/pr38533.c (dg-options): Added option
        * gcc.dg/tree-ssa/ssa-ccp-26.c: Likewise.
        * gcc.dg/pr36902.c: XFAIL.
 
-2011-08-30  Ilya Tocar <ilya.tocar@intel.com>
+2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>
 
        * gcc.target/i386/fma-check.h: New.
        * gcc.target/i386/fma-256-fmaddXX.c: New testcase.
index f6477e264a2dc249cbbb5927be442ff746b70159..badfe03a97dc3b0956c83811d0d7c28a21dc7499 100644 (file)
@@ -11,7 +11,7 @@
  
 /* { dg-do run { xfail { ! *-*-darwin* } } } */
 /* { dg-options "-O2 -mmmx" } */
-/* { dg-require-effective-target ilp32 } */
+/* { dg-require-effective-target ia32 } */
 
 #include "mmx-check.h"