patch applied to sh.c

Joern Rennecke amylaar@cygnus.co.uk
Fri Sep 25 11:37:00 GMT 1998


Fri Sep 25 19:30:19 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.c (gen_shl_sext): Fix case 5.

Index: config/sh/sh.c
===================================================================
RCS file: /cvs/cvsfiles/devo/gcc/config/sh/sh.c,v
retrieving revision 1.137
diff -p -r1.137 sh.c
*** sh.c	1998/09/14 22:30:37	1.137
--- sh.c	1998/09/24 22:26:09
*************** gen_shl_sext (dest, left_rtx, size_rtx, 
*** 1706,1713 ****
      case 5:
        {
  	int i = 16 - size;
! 	emit_insn (gen_shl_sext_ext (dest, source, GEN_INT (16 - insize),
! 				     GEN_INT (16)));
  	/* Don't use gen_ashrsi3 because it generates new pseudos.  */
  	while (--i >= 0)
  	  gen_ashift (ASHIFTRT, 1, dest);
--- 1706,1721 ----
      case 5:
        {
  	int i = 16 - size;
! 	if (! rtx_equal_function_value_matters
! 	    && ! reload_in_progress && ! reload_completed)
! 	  emit_insn (gen_shl_sext_ext (dest, source, left_rtx, size_rtx));
! 	else
! 	  {
! 	    operands[0] = dest;
! 	    operands[2] = GEN_INT (16 - insize);
! 	    gen_shifty_hi_op (ASHIFT, operands);
! 	    emit_insn (gen_extendhisi2 (dest, gen_lowpart (HImode, dest)));
! 	  }
  	/* Don't use gen_ashrsi3 because it generates new pseudos.  */
  	while (--i >= 0)
  	  gen_ashift (ASHIFTRT, 1, dest);




More information about the Gcc-patches mailing list