From c3537723056c480ac4042581d4b82e536ecad9c5 Mon Sep 17 00:00:00 2001 From: Kaz Kojima Date: Tue, 12 May 2009 22:47:03 +0000 Subject: [PATCH] re PR target/39561 (-mno-expand-cbranchdi broken) PR target/39561 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set TARGET_EXPAND_CBRANCHDI4. * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4. * config/sh/sh.opt (mexpand-cbranchdi): Remove. (cmpeqdi): Fix comment. From-SVN: r147453 --- gcc/ChangeLog | 9 +++++++++ gcc/config/sh/sh.h | 5 +---- gcc/config/sh/sh.md | 10 ++++------ gcc/config/sh/sh.opt | 8 ++------ 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cb8074f..3a9c2b5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,14 @@ 2009-05-12 Kaz Kojima + PR target/39561 + * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set + TARGET_EXPAND_CBRANCHDI4. + * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4. + * config/sh/sh.opt (mexpand-cbranchdi): Remove. + (cmpeqdi): Fix comment. + +2009-05-12 Kaz Kojima + * config/sh/sh-protos.h (sh_legitimate_index_p): Declare. (sh_legitimate_address_p): Likewise. * config/sh/sh.c (sh_legitimate_index_p): New. diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h index 0b6294a..8d73615 100644 --- a/gcc/config/sh/sh.h +++ b/gcc/config/sh/sh.h @@ -473,10 +473,7 @@ do { \ sh_div_str = SH_DIV_STR_FOR_SIZE ; \ } \ else \ - { \ - TARGET_CBRANCHDI4 = 1; \ - TARGET_EXPAND_CBRANCHDI4 = 1; \ - } \ + TARGET_CBRANCHDI4 = 1; \ /* We can't meaningfully test TARGET_SHMEDIA here, because -m options \ haven't been parsed yet, hence we'd read only the default. \ sh_target_reg_class will return NO_REGS if this is not SHMEDIA, so \ diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index ffd0db0..ca69108 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -1,6 +1,6 @@ ;;- Machine description for Renesas / SuperH SH. ;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -;; 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +;; 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ;; Contributed by Steve Chamberlain (sac@cygnus.com). ;; Improved by Jim Wilson (wilson@cygnus.com). @@ -723,11 +723,9 @@ else { - if (TARGET_EXPAND_CBRANCHDI4) - { - if (expand_cbranchdi4 (operands, LAST_AND_UNUSED_RTX_CODE)) - DONE; - } + if (expand_cbranchdi4 (operands, LAST_AND_UNUSED_RTX_CODE)) + DONE; + comparison = prepare_cbranch_operands (operands, DImode, LAST_AND_UNUSED_RTX_CODE); if (comparison != GET_CODE (operands[0])) diff --git a/gcc/config/sh/sh.opt b/gcc/config/sh/sh.opt index 9aaba6c..8aa0c9f 100644 --- a/gcc/config/sh/sh.opt +++ b/gcc/config/sh/sh.opt @@ -1,6 +1,6 @@ ; Options for the SH port of the compiler. -; Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +; Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ; ; This file is part of GCC. ; @@ -224,13 +224,9 @@ mcbranchdi Target Var(TARGET_CBRANCHDI4) Enable cbranchdi4 pattern -mexpand-cbranchdi -Target Var(TARGET_EXPAND_CBRANCHDI4) -Expand cbranchdi4 pattern early into separate comparisons and branches. - mcmpeqdi Target Var(TARGET_CMPEQDI_T) -Emit cmpeqdi_t pattern even when -mcbranchdi and -mexpand-cbranchdi are in effect. +Emit cmpeqdi_t pattern even when -mcbranchdi is in effect. mcut2-workaround Target RejectNegative Var(TARGET_SH5_CUT2_WORKAROUND) -- 2.7.4