Autoincrement patches

Joern Rennecke amylaar@cygnus.co.uk
Fri Dec 31 16:38:00 GMT 1999


P.S.: I forgot to teach find_related about pre-existing PRE_MODIFYs /
POST_MODIFYs.

*** regmove.c-1999122102	Tue Dec 21 02:56:11 1999
--- regmove.c	Tue Dec 21 03:30:56 1999
*************** find_related (xp, insn, luid, call_tally
*** 1254,1259 ****
--- 1254,1281 ----
  	    rel_record_mem (addrp, XEXP (addr, 0), mem_mode, size, 0, -size,
  			    insn, luid, call_tally);
  	    return;
+ 	  case PRE_MODIFY:
+ 	    if (GET_CODE (XEXP (addr, 1)) == PLUS
+ 		&& XEXP (XEXP (addr, 1), 0) == XEXP (addr, 0)
+ 		&& GET_CODE (XEXP (XEXP (addr, 1), 1)) == CONST_INT)
+ 	      {
+ 		rel_record_mem (addrp, XEXP (addr, 0), mem_mode, size,
+ 				INTVAL (XEXP (XEXP (addr, 1), 1)),
+ 				0, insn, luid, call_tally);
+ 		return;
+ 	      }
+ 	    break;
+ 	  case POST_MODIFY:
+ 	    if (GET_CODE (XEXP (addr, 1)) == PLUS
+ 		&& XEXP (XEXP (addr, 1), 0) == XEXP (addr, 0)
+ 		&& GET_CODE (XEXP (XEXP (addr, 1), 1)) == CONST_INT)
+ 	      {
+ 		rel_record_mem (addrp, XEXP (addr, 0), mem_mode, size, 0,
+ 				INTVAL (XEXP (XEXP (addr, 1), 1)),
+ 				insn, luid, call_tally);
+ 		return;
+ 	      }
+ 	    break;
  	  case PLUS:
  	    if (GET_CODE (XEXP (addr, 0)) == REG)
  	      {



More information about the Gcc-patches mailing list