Commit 8092dd90 by Uros Bizjak

i386.c (ix86_function_value_regno_p): Use AX_REG.

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
parent cf8fd309
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> 2011-09-06 Iain Sandoe <iains@gcc.gnu.org>
* config/darwin10.h Remove duplicate LIB_SPEC. * config/darwin10.h Remove duplicate LIB_SPEC.
...@@ -473,10 +478,8 @@ ...@@ -473,10 +478,8 @@
2011-09-02 Richard Guenther <rguenther@suse.de> 2011-09-02 Richard Guenther <rguenther@suse.de>
* tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
fold alloca (0). (ccp_fold_stmt): Continue replacing args when folding alloca fails.
(ccp_fold_stmt): Continue replacing args when folding
alloca fails.
2011-08-31 Richard Guenther <rguenther@suse.de> 2011-08-31 Richard Guenther <rguenther@suse.de>
...@@ -495,8 +498,7 @@ ...@@ -495,8 +498,7 @@
(collect_object_sizes_for): Likewise. (collect_object_sizes_for): Likewise.
* tree-scalar-evolution.c (interpret_expr): Don't handle * tree-scalar-evolution.c (interpret_expr): Don't handle
ternary RHSs. ternary RHSs.
* tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
simplify.
(ssa_forward_propagate_and_combine): Adjust. (ssa_forward_propagate_and_combine): Adjust.
* tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
as ternary. as ternary.
...@@ -643,8 +645,8 @@ ...@@ -643,8 +645,8 @@
* gthr-posix.h (__gthread_active_p): Do not use preprocessor * gthr-posix.h (__gthread_active_p): Do not use preprocessor
conditionals and comments inside macro arguments. conditionals and comments inside macro arguments.
20011-08-29 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com> 2011-08-29 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
Richard Guenther <rguenther@suse.de> Richard Guenther <rguenther@suse.de>
* tree.h (constant_boolean_node): Adjust prototype. * tree.h (constant_boolean_node): Adjust prototype.
* fold-const.c (fold_convert_loc): Move aggregate conversion * fold-const.c (fold_convert_loc): Move aggregate conversion
...@@ -7015,7 +7015,7 @@ ix86_function_value_regno_p (const unsigned int regno) ...@@ -7015,7 +7015,7 @@ ix86_function_value_regno_p (const unsigned int regno)
{ {
switch (regno) switch (regno)
{ {
case 0: case AX_REG:
return true; return true;
case FIRST_FLOAT_REG: case FIRST_FLOAT_REG:
...@@ -7053,18 +7053,18 @@ function_value_32 (enum machine_mode orig_mode, enum machine_mode mode, ...@@ -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 we normally prevent this case when mmx is not available. However
some ABIs may require the result to be returned like DImode. */ some ABIs may require the result to be returned like DImode. */
if (VECTOR_MODE_P (mode) && GET_MODE_SIZE (mode) == 8) 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 /* 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 we prevent this case when sse is not available. However some ABIs
may require the result to be returned like integer TImode. */ may require the result to be returned like integer TImode. */
else if (mode == TImode else if (mode == TImode
|| (VECTOR_MODE_P (mode) && GET_MODE_SIZE (mode) == 16)) || (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. */ /* 32-byte vector modes in %ymm0. */
else if (VECTOR_MODE_P (mode) && GET_MODE_SIZE (mode) == 32) 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). */ /* 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) 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, ...@@ -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. */ /* Handle libcalls, which don't provide a type node. */
if (valtype == NULL) if (valtype == NULL)
{ {
unsigned int regno;
switch (mode) switch (mode)
{ {
case SFmode: case SFmode:
...@@ -7108,15 +7110,19 @@ function_value_64 (enum machine_mode orig_mode, enum machine_mode mode, ...@@ -7108,15 +7110,19 @@ function_value_64 (enum machine_mode orig_mode, enum machine_mode mode,
case SDmode: case SDmode:
case DDmode: case DDmode:
case TDmode: case TDmode:
return gen_rtx_REG (mode, FIRST_SSE_REG); regno = FIRST_SSE_REG;
break;
case XFmode: case XFmode:
case XCmode: case XCmode:
return gen_rtx_REG (mode, FIRST_FLOAT_REG); regno = FIRST_FLOAT_REG;
break;
case TCmode: case TCmode:
return NULL; return NULL;
default: default:
return gen_rtx_REG (mode, AX_REG); regno = AX_REG;
} }
return gen_rtx_REG (mode, regno);
} }
else if (POINTER_TYPE_P (valtype)) else if (POINTER_TYPE_P (valtype))
{ {
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> 2011-09-06 Enkovich Ilya <ilya.enkovich@intel.com>
* gcc.dg/tree-ssa/pr38533.c (dg-options): Added option * gcc.dg/tree-ssa/pr38533.c (dg-options): Added option
...@@ -224,7 +228,7 @@ ...@@ -224,7 +228,7 @@
* gcc.dg/tree-ssa/ssa-ccp-26.c: Likewise. * gcc.dg/tree-ssa/ssa-ccp-26.c: Likewise.
* gcc.dg/pr36902.c: XFAIL. * 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-check.h: New.
* gcc.target/i386/fma-256-fmaddXX.c: New testcase. * gcc.target/i386/fma-256-fmaddXX.c: New testcase.
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
/* { dg-do run { xfail { ! *-*-darwin* } } } */ /* { dg-do run { xfail { ! *-*-darwin* } } } */
/* { dg-options "-O2 -mmmx" } */ /* { dg-options "-O2 -mmmx" } */
/* { dg-require-effective-target ilp32 } */ /* { dg-require-effective-target ia32 } */
#include "mmx-check.h" #include "mmx-check.h"
......
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