1 $DragonFly: src/gnu/usr.bin/cc34/cc_prep/patches/rtl.h.patch,v 1.3 2004/12/21 13:10:48 joerg Exp $
3 ===================================================================
4 RCS file: /home/joerg/wd/repository/dragonflybsd/src/contrib/gcc-3.4/gcc/rtl.h,v
5 retrieving revision 1.2
7 --- rtl.h 20 Dec 2004 19:23:24 -0000 1.2
8 +++ rtl.h 20 Dec 2004 20:48:12 -0000
13 +#define RTL_FLAG_CHECK9(NAME, RTX, C1, C2, C3, C4, C5, C6, C7, C8, C9) \
15 +({ rtx const _rtx = (RTX); \
16 + if (GET_CODE(_rtx) != C1 && GET_CODE(_rtx) != C2 \
17 + && GET_CODE(_rtx) != C3 && GET_CODE(_rtx) != C4 \
18 + && GET_CODE(_rtx) != C5 && GET_CODE(_rtx) != C6 \
19 + && GET_CODE(_rtx) != C7 && GET_CODE(_rtx) != C8 \
20 + && GET_CODE(_rtx) != C9) \
21 + rtl_check_failed_flag (NAME, _rtx, __FILE__, __LINE__, \
25 extern void rtl_check_failed_flag (const char *, rtx, const char *,
29 #define RTL_FLAG_CHECK6(NAME, RTX, C1, C2, C3, C4, C5, C6) (RTX)
30 #define RTL_FLAG_CHECK7(NAME, RTX, C1, C2, C3, C4, C5, C6, C7) (RTX)
31 #define RTL_FLAG_CHECK8(NAME, RTX, C1, C2, C3, C4, C5, C6, C7, C8) (RTX)
32 +#define RTL_FLAG_CHECK9(NAME, RTX, C1, C2, C3, C4, C5, C6, C7, C8, C9) (RTX)
35 #define CLEAR_RTX_FLAGS(RTX) \
37 #define LOG_LINKS(INSN) XEXP(INSN, 7)
39 #define RTX_INTEGRATED_P(RTX) \
40 - (RTL_FLAG_CHECK8("RTX_INTEGRATED_P", (RTX), INSN, CALL_INSN, \
41 + (RTL_FLAG_CHECK9("RTX_INTEGRATED_P", (RTX), INSN, CALL_INSN, \
42 JUMP_INSN, INSN_LIST, BARRIER, CODE_LABEL, CONST, \
44 + PLUS, NOTE)->integrated)
45 #define RTX_UNCHANGING_P(RTX) \
46 (RTL_FLAG_CHECK3("RTX_UNCHANGING_P", (RTX), REG, MEM, CONCAT)->unchanging)
47 #define RTX_FRAME_RELATED_P(RTX) \
48 @@ -1125,6 +1138,10 @@
49 (RTL_FLAG_CHECK3("MEM_VOLATILE_P", (RTX), MEM, ASM_OPERANDS, \
52 +/* 1 if RTX is an SET rtx that is not eliminated for the stack protection. */
53 +#define SET_VOLATILE_P(RTX) \
54 + (RTL_FLAG_CHECK1("SET_VOLATILE_P", (RTX), SET)->volatil)
56 /* 1 if RTX is a mem that refers to an aggregate, either to the
57 aggregate itself of to a field of the aggregate. If zero, RTX may
58 or may not be such a reference. */