2003-12-12 Hans-Peter Nilsson <hp@axis.com>
+ PR target/13256
+ Backport from mainline:
+ * resource.h (enum mark_resource_type): Remove member MARK_DEST.
+ The only user changed as follows:
+ * resource.c (mark_set_resources) <case SET>: Always recurse for
+ SET_SRC (x).
+ <case SIGN_EXTRACT, case ZERO_EXTRACT>: Always recurse on
+ operands.
+ <case STRICT_LOW_PART>: Delete, deferring to default code.
+
PR target/12598
Backport from mainline:
* config/cris/cris.md (define_split "*mov_sidesi_biap_mem"+1)
/* Definitions for computing resource usage of specific insns.
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
/* Given X, a part of an insn, and a pointer to a `struct resource',
RES, indicate which resources are modified by the insn. If
MARK_TYPE is MARK_SRC_DEST_CALL, also mark resources potentially
- set by the called routine. If MARK_TYPE is MARK_DEST, only mark SET_DESTs
+ set by the called routine.
If IN_DEST is nonzero, it means we are inside a SET. Otherwise,
objects are being referenced instead of set.
|| GET_CODE (SET_SRC (x)) != CALL),
mark_type);
- if (mark_type != MARK_DEST)
- mark_set_resources (SET_SRC (x), res, 0, MARK_SRC_DEST);
+ mark_set_resources (SET_SRC (x), res, 0, MARK_SRC_DEST);
return;
case CLOBBER:
case SIGN_EXTRACT:
case ZERO_EXTRACT:
- if (! (mark_type == MARK_DEST && in_dest))
- {
- mark_set_resources (XEXP (x, 0), res, in_dest, MARK_SRC_DEST);
- mark_set_resources (XEXP (x, 1), res, 0, MARK_SRC_DEST);
- mark_set_resources (XEXP (x, 2), res, 0, MARK_SRC_DEST);
- }
+ mark_set_resources (XEXP (x, 0), res, in_dest, MARK_SRC_DEST);
+ mark_set_resources (XEXP (x, 1), res, 0, MARK_SRC_DEST);
+ mark_set_resources (XEXP (x, 2), res, 0, MARK_SRC_DEST);
return;
case MEM:
}
return;
- case STRICT_LOW_PART:
- if (! (mark_type == MARK_DEST && in_dest))
- {
- mark_set_resources (XEXP (x, 0), res, 0, MARK_SRC_DEST);
- return;
- }
-
case UNSPEC_VOLATILE:
case ASM_INPUT:
/* Traditional asm's are always volatile. */