This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fix x86-64 glibc compilation crash


Hi,
I am installing this as obivous.  The equivalent patch is already
present at 3.2 branch, but somehow got forgotten for 3.3

Mon Nov 11 11:57:45 CET 2002  Jan Hubicka  <jh@suse.cz>
	* i386.c (construct_container): Fix handling of SSE_CLASS.
Index: i386.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.c,v
retrieving revision 1.489
diff -c -3 -p -r1.489 i386.c
*** i386.c	31 Oct 2002 17:27:02 -0000	1.489
--- i386.c	11 Nov 2002 10:57:25 -0000
*************** construct_container (mode, type, in_retu
*** 2113,2126 ****
  	    sse_regno++;
  	    break;
  	  case X86_64_SSE_CLASS:
! 	    if (i < n && class[i + 1] == X86_64_SSEUP_CLASS)
! 	      tmpmode = TImode, i++;
  	    else
  	      tmpmode = DImode;
  	    exp [nexps++] = gen_rtx_EXPR_LIST (VOIDmode,
  					       gen_rtx_REG (tmpmode,
  							    SSE_REGNO (sse_regno)),
  					       GEN_INT (i*8));
  	    sse_regno++;
  	    break;
  	  default:
--- 2113,2128 ----
  	    sse_regno++;
  	    break;
  	  case X86_64_SSE_CLASS:
! 	    if (i < n - 1 && class[i + 1] == X86_64_SSEUP_CLASS)
! 	      tmpmode = TImode;
  	    else
  	      tmpmode = DImode;
  	    exp [nexps++] = gen_rtx_EXPR_LIST (VOIDmode,
  					       gen_rtx_REG (tmpmode,
  							    SSE_REGNO (sse_regno)),
  					       GEN_INT (i*8));
+ 	    if (tmpmode == TImode)
+ 	      i++;
  	    sse_regno++;
  	    break;
  	  default:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]