Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
[dragonfly.git] / gnu / usr.bin / cc34 / cc_prep / patches / rtl.h.patch
1 $DragonFly: src/gnu/usr.bin/cc34/cc_prep/patches/rtl.h.patch,v 1.3 2004/12/21 13:10:48 joerg Exp $
2
3 ===================================================================
4 RCS file: /home/joerg/wd/repository/dragonflybsd/src/contrib/gcc-3.4/gcc/rtl.h,v
5 retrieving revision 1.2
6 diff -u -r1.2 rtl.h
7 --- rtl.h       20 Dec 2004 19:23:24 -0000      1.2
8 +++ rtl.h       20 Dec 2004 20:48:12 -0000
9 @@ -473,6 +473,18 @@
10                              __FUNCTION__);                             \
11     _rtx; })
12  
13 +#define RTL_FLAG_CHECK9(NAME, RTX, C1, C2, C3, C4, C5, C6, C7, C8, C9) \
14 +  __extension__                                                                \
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__,           \
22 +                            __FUNCTION__);                             \
23 +   _rtx; })
24 +
25  extern void rtl_check_failed_flag (const char *, rtx, const char *,
26                                    int, const char *)
27      ATTRIBUTE_NORETURN
28 @@ -488,6 +500,7 @@
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)
33  #endif
34  
35  #define CLEAR_RTX_FLAGS(RTX)   \
36 @@ -583,9 +596,9 @@
37  #define LOG_LINKS(INSN)        XEXP(INSN, 7)
38  
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,    \
43 -                  NOTE)->integrated)
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,         \
50                    ASM_INPUT)->volatil)
51  
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)
55 +
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.  */