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]

avr port patch: adjust insn length for reload_in* insns


Wed Sep 20 21:44:31 2000  Denis Chertykov  <denisc@overta.ru>

	* config/avr/avr.c (adjust_insn_length): Adjust lengths of
	`reload_in*' insns.

Index: gcc/config/avr/avr.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/avr/avr.c,v
retrieving revision 1.21
diff -c -3 -p -r1.21 avr.c
*** avr.c	2000/09/13 18:13:49	1.21
--- avr.c	2000/09/20 17:57:56
*************** adjust_insn_length (insn, len)
*** 3509,3514 ****
--- 3509,3515 ----
  {
    rtx patt = PATTERN (insn);
    rtx set;
+ 
    if (GET_CODE (patt) == SET)
      {
        rtx op[10];
*************** adjust_insn_length (insn, len)
*** 3577,3585 ****
    if (set)
      {
        rtx op[10];
        op[1] = SET_SRC (set);
        op[0] = SET_DEST (set);
!       if (GET_CODE (op[1]) == ASHIFT
  	  || GET_CODE (op[1]) == ASHIFTRT
  	  || GET_CODE (op[1]) == LSHIFTRT)
  	{
--- 3578,3611 ----
    if (set)
      {
        rtx op[10];
+ 
        op[1] = SET_SRC (set);
        op[0] = SET_DEST (set);
! 
!       if (GET_CODE (patt) == PARALLEL
! 	  && general_operand (op[1], VOIDmode)
! 	  && general_operand (op[0], VOIDmode))
! 	{
! 	  if (XVECLEN (patt, 0) == 2)
! 	    op[2] = XVECEXP (patt, 0, 1);
! 
! 	  switch (GET_MODE (op[0]))
! 	    {
! 	    case QImode:
! 	      len = 2;
! 	      break;
! 	    case HImode:
! 	      output_reload_inhi (insn, op, &len);
! 	      break;
! 	    case SImode:
! 	    case SFmode:
! 	      output_reload_insisf (insn, op, &len);
! 	      break;
! 	    default:
! 	      break;
! 	    }
! 	}
!       else if (GET_CODE (op[1]) == ASHIFT
  	  || GET_CODE (op[1]) == ASHIFTRT
  	  || GET_CODE (op[1]) == LSHIFTRT)
  	{


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