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