Gentoo Archives: gentoo-commits

From: "Ryan Hill (dirtyepic)" <dirtyepic@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in src/patchsets/gcc/4.4.3/gentoo: 94_all_sh-pr42481.patch 95_all_sh-pr43744.patch README.history
Date: Sun, 01 Aug 2010 21:05:36
Message-Id: 20100801210153.EA1B02CE15@corvid.gentoo.org
1 dirtyepic 10/08/01 21:01:53
2
3 Modified: README.history
4 Added: 94_all_sh-pr42481.patch 95_all_sh-pr43744.patch
5 Log:
6 Add patches for bug #327191.
7
8 Revision Changes Path
9 1.4 src/patchsets/gcc/4.4.3/gentoo/README.history
10
11 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.4.3/gentoo/README.history?rev=1.4&view=markup
12 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.4.3/gentoo/README.history?rev=1.4&content-type=text/plain
13 diff : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.4.3/gentoo/README.history?r1=1.3&r2=1.4
14
15 Index: README.history
16 ===================================================================
17 RCS file: /var/cvsroot/gentoo/src/patchsets/gcc/4.4.3/gentoo/README.history,v
18 retrieving revision 1.3
19 retrieving revision 1.4
20 diff -u -r1.3 -r1.4
21 --- README.history 25 Apr 2010 21:30:37 -0000 1.3
22 +++ README.history 1 Aug 2010 21:01:52 -0000 1.4
23 @@ -1,3 +1,7 @@
24 +1.3 01.08.2010
25 + + 94_all_sh-pr42481.patch
26 + + 95_all_sh-pr43744.patch
27 +
28 1.2 25.04.2010
29 - 92_all_gcc-4.4-cloog-dl.patch
30 + 93_all_gcc-4.4-cloog-dl.patch
31
32
33
34 1.1 src/patchsets/gcc/4.4.3/gentoo/94_all_sh-pr42481.patch
35
36 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.4.3/gentoo/94_all_sh-pr42481.patch?rev=1.1&view=markup
37 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.4.3/gentoo/94_all_sh-pr42481.patch?rev=1.1&content-type=text/plain
38
39 Index: 94_all_sh-pr42481.patch
40 ===================================================================
41 http://gcc.gnu.org/PR42841
42 https://bugs.gentoo.org/327191
43
44 --- a/gcc/config/sh/sh.c
45 +++ b/gcc/config/sh/sh.c
46 @@ -4061,6 +4061,13 @@
47 && ! TARGET_SMALLCODE)
48 new_align = 4;
49
50 + /* There is a possibility that a bf is transformed into a bf/s by the
51 + delay slot scheduler. */
52 + if (JUMP_P (from) && !JUMP_TABLE_DATA_P (from)
53 + && get_attr_type (from) == TYPE_CBRANCH
54 + && GET_CODE (PATTERN (NEXT_INSN (PREV_INSN (from)))) != SEQUENCE)
55 + inc += 2;
56 +
57 if (found_si)
58 {
59 count_si += inc;
60 @@ -8721,9 +8728,7 @@
61 && GET_CODE (PATTERN (insn)) != USE
62 && GET_CODE (PATTERN (insn)) != CLOBBER)
63 || GET_CODE (insn) == CALL_INSN
64 - || (GET_CODE (insn) == JUMP_INSN
65 - && GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC
66 - && GET_CODE (PATTERN (insn)) != ADDR_VEC))
67 + || (JUMP_P (insn) && !JUMP_TABLE_DATA_P (insn)))
68 && GET_CODE (PATTERN (NEXT_INSN (PREV_INSN (insn)))) != SEQUENCE
69 && get_attr_needs_delay_slot (insn) == NEEDS_DELAY_SLOT_YES)
70 return 2;
71 @@ -8731,9 +8736,7 @@
72 /* SH2e has a bug that prevents the use of annulled branches, so if
73 the delay slot is not filled, we'll have to put a NOP in it. */
74 if (sh_cpu == CPU_SH2E
75 - && GET_CODE (insn) == JUMP_INSN
76 - && GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC
77 - && GET_CODE (PATTERN (insn)) != ADDR_VEC
78 + && JUMP_P (insn) && !JUMP_TABLE_DATA_P (insn)
79 && get_attr_type (insn) == TYPE_CBRANCH
80 && GET_CODE (PATTERN (NEXT_INSN (PREV_INSN (insn)))) != SEQUENCE)
81 return 2;
82
83
84
85 1.1 src/patchsets/gcc/4.4.3/gentoo/95_all_sh-pr43744.patch
86
87 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.4.3/gentoo/95_all_sh-pr43744.patch?rev=1.1&view=markup
88 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.4.3/gentoo/95_all_sh-pr43744.patch?rev=1.1&content-type=text/plain
89
90 Index: 95_all_sh-pr43744.patch
91 ===================================================================
92 http://gcc.gnu.org/PR43744
93 https://bugs.gentoo.org/327191
94
95 --- a/gcc/config/sh/sh.c
96 +++ b/gcc/config/sh/sh.c
97 @@ -3884,6 +3884,7 @@
98 int si_limit;
99 int hi_limit;
100 rtx orig = from;
101 + rtx last_symoff = NULL_RTX;
102
103 /* For HImode: range is 510, add 4 because pc counts from address of
104 second instruction after this one, subtract 2 for the jump instruction
105 @@ -4015,6 +4016,16 @@
106 {
107 switch (untangle_mova (&num_mova, &mova, from))
108 {
109 + case 1:
110 + if (flag_pic)
111 + {
112 + rtx src = SET_SRC (PATTERN (from));
113 + if (GET_CODE (src) == CONST
114 + && GET_CODE (XEXP (src, 0)) == UNSPEC
115 + && XINT (XEXP (src, 0), 1) == UNSPEC_SYMOFF)
116 + last_symoff = from;
117 + }
118 + break;
119 case 0: return find_barrier (0, 0, mova);
120 case 2:
121 {
122 @@ -4120,6 +4131,12 @@
123 so we'll make one. */
124 rtx label = gen_label_rtx ();
125
126 + /* Don't emit a constant table in the middle of insns for
127 + casesi_worker_2. This is a bit overkill but is enough
128 + because casesi_worker_2 wouldn't appear so frequently. */
129 + if (last_symoff)
130 + from = last_symoff;
131 +
132 /* If we exceeded the range, then we must back up over the last
133 instruction we looked at. Otherwise, we just need to undo the
134 NEXT_INSN at the end of the loop. */