aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <uros@kss-loka.si>2005-06-19 01:26:50 -0700
committerRichard Henderson <rth@gcc.gnu.org>2005-06-19 01:26:50 -0700
commitaa941a60d7d6f3f8ebfa84731d89b701ff2527be (patch)
tree1d4bf51e9208a4ea8f1b2863b5e8700cb79d716c
parent99e6bdda90bc96029f692df81028dcdaa65e3dea (diff)
downloadgcc-aa941a60d7d6f3f8ebfa84731d89b701ff2527be.zip
gcc-aa941a60d7d6f3f8ebfa84731d89b701ff2527be.tar.gz
gcc-aa941a60d7d6f3f8ebfa84731d89b701ff2527be.tar.bz2
i386.c (ix86_function_arg_regno_p): Add MMX_REGNO_P for TARGET_MMX.
2005-06-16 Uros Bizjak <uros@kss-loka.si> * config/i386/i386.c (ix86_function_arg_regno_p): Add MMX_REGNO_P for TARGET_MMX. Use MMX_REGPARM_MAX and SSE_REGPARM_MAX for MMX and SSE registers to determine if regno is valid. (ix86_function_value_regno_p): Depend FIRST_FLOAT_REG on TARGET_FLOAT_RETURNS_IN_80387 also for TARGET_64BIT. Clean up. From-SVN: r101179
-rw-r--r--gcc/ChangeLog66
-rw-r--r--gcc/config/i386/i386.c29
2 files changed, 54 insertions, 41 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6e25cbb..c527a5d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2005-06-19 Uros Bizjak <uros@kss-loka.si>
+
+ * config/i386/i386.c (ix86_function_arg_regno_p): Add MMX_REGNO_P
+ for TARGET_MMX. Use MMX_REGPARM_MAX and SSE_REGPARM_MAX for MMX
+ and SSE registers to determine if regno is valid.
+ (ix86_function_value_regno_p): Depend FIRST_FLOAT_REG on
+ TARGET_FLOAT_RETURNS_IN_80387 also for TARGET_64BIT. Clean up.
+
2005-06-18 Richard Henderson <rth@redhat.com>
* tree-complex.c (init_dont_simulate_again): Clear DONT_SIMULATE_AGAIN
@@ -114,9 +122,9 @@
2005-06-17 Richard Henderson <rth@redhat.com>
- * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Use
- initialize_original_copy_tables and free_original_copy_tables.
- (vect_do_peeling_for_alignment): Likewise.
+ * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Use
+ initialize_original_copy_tables and free_original_copy_tables.
+ (vect_do_peeling_for_alignment): Likewise.
2005-06-17 Pat Haugen <pthaugen@us.ibm.com>
@@ -229,22 +237,22 @@
(function_arg): Likewise.
2005-06-16 Paolo Bonzini <bonzini@gnu.org>
- Daniel Jacobowitz <dan@codesourcery.com>
+ Daniel Jacobowitz <dan@codesourcery.com>
Alan Modra <amodra.bigpond.net.au>
- * configure.ac (gcc_version): Set near the beginning.
- (as, ld, nm): Do not link in-tree tools. Set gcc_cv_* if tools are
- found in the tree. Use gcc_AC_PROG to find the tools in the system.
- (objdump): Do not look for it.
- * Makefile.in (NM_FOR_TARGET): Point to ./nm
- (ORIGINAL_AS_FOR_TARGET, ORIGINAL_LD_FOR_TARGET,
- ORIGINAL_NM_FOR_TARGET): Substitute from autoconf.
- (as, ld, nm): New rules.
- (libgcc.mk): Depend on them.
- * aclocal.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL,
- gcc_AC_BUILD_EXEEXT): New.
- (gcc_AC_CHECK_PROG_VER): Use gcc_AC_BUILD_EXEEXT.
- * configure: Regenerate.
+ * configure.ac (gcc_version): Set near the beginning.
+ (as, ld, nm): Do not link in-tree tools. Set gcc_cv_* if tools are
+ found in the tree. Use gcc_AC_PROG to find the tools in the system.
+ (objdump): Do not look for it.
+ * Makefile.in (NM_FOR_TARGET): Point to ./nm
+ (ORIGINAL_AS_FOR_TARGET, ORIGINAL_LD_FOR_TARGET,
+ ORIGINAL_NM_FOR_TARGET): Substitute from autoconf.
+ (as, ld, nm): New rules.
+ (libgcc.mk): Depend on them.
+ * aclocal.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL,
+ gcc_AC_BUILD_EXEEXT): New.
+ (gcc_AC_CHECK_PROG_VER): Use gcc_AC_BUILD_EXEEXT.
+ * configure: Regenerate.
2005-06-16 Jan Hubicka <jh@suse.cz>
@@ -380,7 +388,7 @@
2005-06-15 Richard Sandiford <richard@codesourcery.com>
- * doc/invoke.texi (-mips16): Fix typo.
+ * doc/invoke.texi (-mips16): Fix typo.
2005-06-15 David Ung <davidu@mips.com>
@@ -394,7 +402,7 @@
mips16e seb/seh.
(*extend<SHORT:mode><GPR:mode>2): Disable this pattern for
GENERATE_MIPS16E.
- * doc/invoke.texi (MIPS Options): Add comment to -mips16
+ * doc/invoke.texi (MIPS Options): Add comment to -mips16
indicating MIPS16e ASE is used if targetting for MIPS32 or MIPS64.
2005-06-15 Diego Novillo <dnovillo@redhat.com>
@@ -896,18 +904,18 @@
2005-06-08 Dale Johannesen <dalej@apple.com>
- * config/darwin.c (darwin_binds_local_p): New.
- * config/darwin-protos.h (darwin_binds_local_p): Declare it.
- * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Use it for TARGET_MACHO.
- * config/rs6000/rs6000.c (rs6000_binds_local_p): Remove.
- (TARGET_BINDS_LOCAL_P): Change it to darwin_binds_local_p.
+ * config/darwin.c (darwin_binds_local_p): New.
+ * config/darwin-protos.h (darwin_binds_local_p): Declare it.
+ * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Use it for TARGET_MACHO.
+ * config/rs6000/rs6000.c (rs6000_binds_local_p): Remove.
+ (TARGET_BINDS_LOCAL_P): Change it to darwin_binds_local_p.
2005-06-08 Aldy Hernandez <aldyh@redhat.com>
- * config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
- rs6000_isel, rs6000_spe, rs6000_alignment_string,
- rs6000_sched_restricted_insns_priority_str,
- rs6000_sched_restricted_insns_priority, rs6000_abi_string.
+ * config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
+ rs6000_isel, rs6000_spe, rs6000_alignment_string,
+ rs6000_sched_restricted_insns_priority_str,
+ rs6000_sched_restricted_insns_priority, rs6000_abi_string.
2005-06-08 Zdenek Dvorak <dvorakz@suse.cz>
@@ -999,7 +1007,7 @@
2005-06-08 Richard Henderson <rth@redhat.com>
PR target/21721
- * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
+ * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
2005-06-08 Eric Botcazou <ebotcazou@libertysurf.fr>
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 6a5dbdf..d2484cd 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -2047,8 +2047,13 @@ ix86_function_arg_regno_p (int regno)
int i;
if (!TARGET_64BIT)
return (regno < REGPARM_MAX
- || (TARGET_SSE && SSE_REGNO_P (regno) && !fixed_regs[regno]));
- if (SSE_REGNO_P (regno) && TARGET_SSE)
+ || (TARGET_MMX && MMX_REGNO_P (regno)
+ && (regno < FIRST_MMX_REG + MMX_REGPARM_MAX))
+ || (TARGET_SSE && SSE_REGNO_P (regno)
+ && (regno < FIRST_SSE_REG + SSE_REGPARM_MAX)));
+
+ if (TARGET_SSE && SSE_REGNO_P (regno)
+ && (regno < FIRST_SSE_REG + SSE_REGPARM_MAX))
return true;
/* RAX is used as hidden argument to va_arg functions. */
if (!regno)
@@ -3153,16 +3158,16 @@ ix86_function_arg_boundary (enum machine_mode mode, tree type)
bool
ix86_function_value_regno_p (int regno)
{
- if (!TARGET_64BIT)
- {
- return ((regno) == 0
- || ((regno) == FIRST_FLOAT_REG && TARGET_FLOAT_RETURNS_IN_80387)
- || ((regno) == FIRST_MMX_REG && TARGET_MMX)
- || ((regno) == FIRST_SSE_REG && TARGET_SSE));
- }
- return ((regno) == 0 || (regno) == FIRST_FLOAT_REG
- || ((regno) == FIRST_SSE_REG && TARGET_SSE)
- || ((regno) == FIRST_FLOAT_REG && TARGET_FLOAT_RETURNS_IN_80387));
+ if (regno == 0
+ || (regno == FIRST_FLOAT_REG && TARGET_FLOAT_RETURNS_IN_80387)
+ || (regno == FIRST_SSE_REG && TARGET_SSE))
+ return true;
+
+ if (!TARGET_64BIT
+ && (regno == FIRST_MMX_REG && TARGET_MMX))
+ return true;
+
+ return false;
}
/* Define how to find the value returned by a function.