⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 999-cvs-updates.patch

📁 這是一個實時嵌入式作業系統 實作了MCS51 ARM等MCU
💻 PATCH
📖 第 1 页 / 共 5 页
字号:
@@ -155,14 +466,14 @@ 	side-effect of having a length greater or equal to 3.  2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>-            Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>+	    Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>  	PR target/15186 	* config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass 	/usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.  2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>-            Martin Sebor  <sebor@roguewave.com>+	    Martin Sebor  <sebor@roguewave.com>  	PR target/12602 	* doc/invoke.texi (SPARC options): Document -threads@@ -252,18 +563,18 @@  	Backport from mainline: 	2004-01-19  Richard Henderson  <rth@redhat.com>-        * alpha.md (UNSPEC_NT_LDA): Renumber.-        (UNSPEC_CVTLQ, cvtlq): New.-        (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.-        (extendsidi2_fix): Remove.-        (extendsidi2 splitter): Use cvtlq.-        (extendsidi2 fp peepholes): Remove.-        (cvtql): Use SFmode instead of SImode.-        (fix_trunc?fsi): Update to match.-        (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.-        (movsi): Rename from movsi_nofix, remove f alternatives.-        (movsi_nt_vms): Similarly.-        (movsi_fix, movsi_nt_vms_fix): Remove.+	* alpha.md (UNSPEC_NT_LDA): Renumber.+	(UNSPEC_CVTLQ, cvtlq): New.+	(extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.+	(extendsidi2_fix): Remove.+	(extendsidi2 splitter): Use cvtlq.+	(extendsidi2 fp peepholes): Remove.+	(cvtql): Use SFmode instead of SImode.+	(fix_trunc?fsi): Update to match.+	(floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.+	(movsi): Rename from movsi_nofix, remove f alternatives.+	(movsi_nt_vms): Similarly.+	(movsi_fix, movsi_nt_vms_fix): Remove.  2004-05-26  Hans-Peter Nilsson  <hp@axis.com> Index: gcc/aclocal.m4===================================================================RCS file: /cvs/gcc/gcc/gcc/aclocal.m4,vretrieving revision 1.61.2.4retrieving revision 1.61.2.5diff -u -r1.61.2.4 -r1.61.2.5--- gcc/gcc/aclocal.m4	1 Oct 2003 21:56:34 -0000	1.61.2.4+++ gcc/gcc/aclocal.m4	4 Dec 2004 01:51:47 -0000	1.61.2.5@@ -413,7 +413,7 @@    # read() to the same fd.  The only system known to have a problem here    # is VMS, where text files have record structure.    case "$host_os" in-     vms*) +     vms* | ultrix*)          gcc_cv_func_mmap_file=no ;;      *)         gcc_cv_func_mmap_file=yes;;Index: gcc/alias.c===================================================================RCS file: /cvs/gcc/gcc/gcc/alias.c,vretrieving revision 1.181.2.6retrieving revision 1.181.2.7diff -u -r1.181.2.6 -r1.181.2.7--- gcc/gcc/alias.c	28 May 2004 17:27:27 -0000	1.181.2.6+++ gcc/gcc/alias.c	10 Dec 2004 17:25:00 -0000	1.181.2.7@@ -508,6 +508,8 @@ 	      /* If we haven't computed the actual alias set, do it now.  */ 	      if (DECL_POINTER_ALIAS_SET (decl) == -2) 		{+		  tree pointed_to_type = TREE_TYPE (TREE_TYPE (decl));+ 		  /* No two restricted pointers can point at the same thing. 		     However, a restricted pointer can point at the same thing 		     as an unrestricted pointer, if that unrestricted pointer@@ -516,11 +518,22 @@ 		     alias set for the type pointed to by the type of the 		     decl.  */ 		  HOST_WIDE_INT pointed_to_alias_set-		    = get_alias_set (TREE_TYPE (TREE_TYPE (decl)));+		    = get_alias_set (pointed_to_type);  		  if (pointed_to_alias_set == 0) 		    /* It's not legal to make a subset of alias set zero.  */-		    ;+		    DECL_POINTER_ALIAS_SET (decl) = 0;+		  else if (AGGREGATE_TYPE_P (pointed_to_type))+		    /* For an aggregate, we must treat the restricted+		       pointer the same as an ordinary pointer.  If we+		       were to make the type pointed to by the+		       restricted pointer a subset of the pointed-to+		       type, then we would believe that other subsets+		       of the pointed-to type (such as fields of that+		       type) do not conflict with the type pointed to+		       by the restricted pointer.   */+		    DECL_POINTER_ALIAS_SET (decl)+		      = pointed_to_alias_set; 		  else 		    { 		      DECL_POINTER_ALIAS_SET (decl) = new_alias_set ();Index: gcc/c-parse.in===================================================================RCS file: /cvs/gcc/gcc/gcc/c-parse.in,vretrieving revision 1.152.14.1retrieving revision 1.152.14.2diff -u -r1.152.14.1 -r1.152.14.2--- gcc/gcc/c-parse.in	28 Jan 2003 01:54:03 -0000	1.152.14.1+++ gcc/gcc/c-parse.in	21 Dec 2004 21:51:26 -0000	1.152.14.2@@ -2177,6 +2177,7 @@ 		  push_label_level (); 		  compstmt_count++; 		  $$ = add_stmt (build_stmt (COMPOUND_STMT, last_tree));+		  last_expr_type = NULL_TREE; 		}         ; Index: gcc/combine.c===================================================================RCS file: /cvs/gcc/gcc/gcc/combine.c,vretrieving revision 1.325.2.17retrieving revision 1.325.2.19diff -u -r1.325.2.17 -r1.325.2.19--- gcc/gcc/combine.c	25 Jul 2004 18:49:54 -0000	1.325.2.17+++ gcc/gcc/combine.c	18 Jan 2005 08:39:05 -0000	1.325.2.19@@ -10138,13 +10138,8 @@    result = gen_lowpart_common (mode, x); #ifdef CANNOT_CHANGE_MODE_CLASS-  if (result != 0-      && GET_CODE (result) == SUBREG-      && GET_CODE (SUBREG_REG (result)) == REG-      && REGNO (SUBREG_REG (result)) >= FIRST_PSEUDO_REGISTER)-    bitmap_set_bit (&subregs_of_mode, REGNO (SUBREG_REG (result))-				      * MAX_MACHINE_MODE-				      + GET_MODE (result));+  if (result != 0 && GET_CODE (result) == SUBREG)+    record_subregs_of_mode (result); #endif    if (result)@@ -10818,34 +10813,61 @@ 	  break;  	case SUBREG:-	  /* Check for the case where we are comparing A - C1 with C2,-	     both constants are smaller than 1/2 the maximum positive-	     value in MODE, and the comparison is equality or unsigned.-	     In that case, if A is either zero-extended to MODE or has-	     sufficient sign bits so that the high-order bit in MODE-	     is a copy of the sign in the inner mode, we can prove that it is-	     safe to do the operation in the wider mode.  This simplifies-	     many range checks.  */+	  /* Check for the case where we are comparing A - C1 with C2, that is++	       (subreg:MODE (plus (A) (-C1))) op (C2)++	     with C1 a constant, and try to lift the SUBREG, i.e. to do the+	     comparison in the wider mode.  One of the following two conditions+	     must be true in order for this to be valid:++	       1. The mode extension results in the same bit pattern being added+		  on both sides and the comparison is equality or unsigned.  As+		  C2 has been truncated to fit in MODE, the pattern can only be+		  all 0s or all 1s.++	       2. The mode extension results in the sign bit being copied on+		  each side.++	     The difficulty here is that we have predicates for A but not for+	     (A - C1) so we need to check that C1 is within proper bounds so+	     as to perturbate A as little as possible.  */  	  if (mode_width <= HOST_BITS_PER_WIDE_INT 	      && subreg_lowpart_p (op0)+	      && GET_MODE_BITSIZE (GET_MODE (SUBREG_REG (op0))) > mode_width 	      && GET_CODE (SUBREG_REG (op0)) == PLUS-	      && GET_CODE (XEXP (SUBREG_REG (op0), 1)) == CONST_INT-	      && INTVAL (XEXP (SUBREG_REG (op0), 1)) < 0-	      && (-INTVAL (XEXP (SUBREG_REG (op0), 1))-		  < (HOST_WIDE_INT) (GET_MODE_MASK (mode) / 2))-	      && (unsigned HOST_WIDE_INT) const_op < GET_MODE_MASK (mode) / 2-	      && (0 == (nonzero_bits (XEXP (SUBREG_REG (op0), 0),-				      GET_MODE (SUBREG_REG (op0)))-			& ~GET_MODE_MASK (mode))-		  || (num_sign_bit_copies (XEXP (SUBREG_REG (op0), 0),-					   GET_MODE (SUBREG_REG (op0)))-		      > (unsigned int)-			(GET_MODE_BITSIZE (GET_MODE (SUBREG_REG (op0)))-			 - GET_MODE_BITSIZE (mode)))))+	      && GET_CODE (XEXP (SUBREG_REG (op0), 1)) == CONST_INT) 	    {-	      op0 = SUBREG_REG (op0);-	      continue;+	      enum machine_mode inner_mode = GET_MODE (SUBREG_REG (op0));+	      rtx a = XEXP (SUBREG_REG (op0), 0);+	      HOST_WIDE_INT c1 = -INTVAL (XEXP (SUBREG_REG (op0), 1));++	      if ((c1 > 0+	           && (unsigned HOST_WIDE_INT) c1+		       < (unsigned HOST_WIDE_INT) 1 << (mode_width - 1)+		   && (equality_comparison_p || unsigned_comparison_p)+		   /* (A - C1) zero-extends if it is positive and sign-extends+		      if it is negative, C2 both zero- and sign-extends.  */+		   && ((0 == (nonzero_bits (a, inner_mode)+			      & ~GET_MODE_MASK (mode))+			&& const_op >= 0)+		       /* (A - C1) sign-extends if it is positive and 1-extends+			  if it is negative, C2 both sign- and 1-extends.  */+		       || (num_sign_bit_copies (a, inner_mode)+			   > (unsigned int) (GET_MODE_BITSIZE (inner_mode)+					     - mode_width)+			   && const_op < 0)))+		  || ((unsigned HOST_WIDE_INT) c1+		       < (unsigned HOST_WIDE_INT) 1 << (mode_width - 2)+		      /* (A - C1) always sign-extends, like C2.  */+		      && num_sign_bit_copies (a, inner_mode)+			 > (unsigned int) (GET_MODE_BITSIZE (inner_mode)+					   - mode_width - 1)))+		{+		  op0 = SUBREG_REG (op0);+		  continue;+	        } 	    }  	  /* If the inner mode is narrower and we are extracting the low part,Index: gcc/configure===================================================================RCS file: /cvs/gcc/gcc/gcc/configure,vretrieving revision 1.641.2.23retrieving revision 1.641.2.24diff -u -r1.641.2.23 -r1.641.2.24--- gcc/gcc/configure	1 Apr 2004 16:55:23 -0000	1.641.2.23+++ gcc/gcc/configure	4 Dec 2004 01:51:43 -0000	1.641.2.24@@ -2399,7 +2399,7 @@ fi  # Find some useful tools-for ac_prog in gawk mawk nawk awk+for ac_prog in mawk gawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2@@ -3947,7 +3947,7 @@    # read() to the same fd.  The only system known to have a problem here    # is VMS, where text files have record structure.    case "$host_os" in-     vms*) +     vms* | ultrix*)          gcc_cv_func_mmap_file=no ;;      *)         gcc_cv_func_mmap_file=yes;;@@ -8120,7 +8120,7 @@ echo "$ac_t""$gcc_cv_ld_eh_frame_hdr" 1>&6  echo $ac_n "checking linker --as-needed support""... $ac_c" 1>&6-echo "configure:8250: checking linker --as-needed support" >&5+echo "configure:8124: checking linker --as-needed support" >&5 gcc_cv_ld_as_needed=no if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then@@ -8144,7 +8144,7 @@ case "$target" in   mips*-*-*)     echo $ac_n "checking whether libgloss uses STARTUP directives consistently""... $ac_c" 1>&6-echo "configure:8127: checking whether libgloss uses STARTUP directives consistently" >&5+echo "configure:8148: checking whether libgloss uses STARTUP directives consistently" >&5     gcc_cv_mips_libgloss_startup=no     gcc_cv_libgloss_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/libgloss     if test "x$exec_prefix" = xNONE; then@@ -8349,7 +8349,7 @@   echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6-echo "configure:8332: checking whether to enable maintainer-specific portions of Makefiles" >&5+echo "configure:8353: checking whether to enable maintainer-specific portions of Makefiles" >&5     # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then   enableval="$enable_maintainer_mode"Index: gcc/emit-rtl.c===================================================================RCS file: /cvs/gcc/gcc/gcc/emit-rtl.c,vretrieving revision 1.303.2.5retrieving revision 1.303.2.7diff -u -r1.303.2.5 -r1.303.2.7--- gcc/gcc/emit-rtl.c	18 Jun 2004 17:08:48 -0000	1.303.2.5+++ gcc/gcc/emit-rtl.c	14 Dec 2004 04:06:08 -0000	1.303.2.7@@ -2890,11 +2890,19 @@ {   rtx insn = first_insn; -  while (insn)+  if (insn)     {-      insn = next_insn (insn);-      if (insn == 0 || GET_CODE (insn) != NOTE)-	break;+      if (NOTE_P (insn))+	for (insn = next_insn (insn);+	     insn && NOTE_P (insn);+	     insn = next_insn (insn))+	  continue;+      else+	{+	  if (GET_CODE (insn) == INSN+	      && GET_CODE (PATTERN (insn)) == SEQUENCE)+	    insn = XVECEXP (PATTERN (insn), 0, 0);+	}     }    return insn;@@ -2908,11 +2916,20 @@ {   rtx insn = last_insn; -  while (insn)+  if (insn)     {-      insn = previous_insn (insn);-      if (insn == 0 || GET_CODE (insn) != NOTE)-	break;+      if (NOTE_P (insn))+	for (insn = previous_insn (insn);+	     insn && NOTE_P (insn);+	     insn = previous_insn (insn))+	  continue;+      else+	{+	  if (GET_CODE (insn) == INSN+	      && GET_CODE (PATTERN (insn)) == SEQUENCE)+	    insn = XVECEXP (PATTERN (insn), 0,+			    XVECLEN (PATTERN (insn), 0) - 1);+	}     }    return insn;Index: gcc/expr.c===================================================================RCS file: /cvs/gcc/gcc/gcc/expr.c,vretrieving revision 1.498.2.31retrieving revision 1.498.2.32diff -u -r1.498.2.31 -r1.498.2.32--- gcc/gcc/expr.c	16 May 2004 20:27:15 -0000	1.498.2.31+++ gcc/gcc/expr.c	20 Dec 2004 02:43:00 -0000	1.498.2.32@@ -8462,9 +8462,14 @@       /* At this point, a MEM target is no longer useful; we will get better 	 code without it.  */ -      if (GET_CODE (target) == MEM)+      if (! REG_P (target)) 	target = gen_reg_rtx (mode); +      /* We generate better code and avoid problems with op1 mentioning+	 target by forcing op1 into a pseudo if it isn't a constant.  */+      if (! CONSTANT_P (op1))+	op1 = force_reg (mode, op1);+       if (target != op0) 	emit_move_insn (target, op0); Index: gcc/flow.c===================================================================RCS file: /cvs/gcc/gcc/gcc/flow.c,vretrieving revision 1.541.2.6retrieving revision 1.541.2.7diff -u -r1.541.2.6 -r1.541.2.7--- gcc/gcc/flow.c	5 Mar 2004 17:55:50 -0000	1.541.2.6+++ gcc/gcc/flow.c	4 Dec 2004 00:36:35 -0000	1.541.2.7@@ -431,9 +431,8 @@   SET_HARD_REG_BIT (elim_reg_set, FRAME_POINTER_REGNUM); #endif - #ifdef CANNOT_CHANGE_MODE_CLASS-  bitmap_initialize (&subregs_of_mode, 1);+  init_subregs_of_mode (); #endif 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -