]> git.pld-linux.org Git - packages/gcc.git/blame - gcc-x87-mmx-eh.patch
- workaround for PR libgcj/24057, test-builds.
[packages/gcc.git] / gcc-x87-mmx-eh.patch
CommitLineData
b34b6497 12005-08-19 Uros Bizjak <uros@kss-loka.si>
de9651ff 2
b34b6497
PS
3 * mode-switching.c (create_pre_exit): Skip assignments to
4 EH_RETURN_STACKADJ_RTX when searching for return_copy insn.
5 Add comment regarding use insn and simplify check for insns,
6 generated by builtin_apply_return.
7
8--- gcc/gcc/mode-switching.c 2005-07-05 18:20:07.000000000 +0200
9+++ gcc/gcc/mode-switching.c 2005-08-19 10:28:41.000000000 +0200
10@@ -250,6 +250,8 @@ create_pre_exit (int n_entities, int *en
de9651ff 11
b34b6497
PS
12 if (INSN_P (return_copy))
13 {
14+ /* Skip USE patterns inserted by
15+ builtin_apply_return. */
16 if (GET_CODE (PATTERN (return_copy)) == USE
17 && GET_CODE (XEXP (PATTERN (return_copy), 0)) == REG
18 && (FUNCTION_VALUE_REGNO_P
19@@ -270,6 +272,15 @@ create_pre_exit (int n_entities, int *en
20 break;
21 }
22 copy_reg = SET_DEST (return_copy_pat);
23+
24+#ifdef EH_RETURN_STACKADJ_RTX
25+ /* Skip assignments to EH_RETURN_STACKADJ_RTX. */
26+ if (rtx_equal_p (copy_reg, EH_RETURN_STACKADJ_RTX))
27+ {
28+ last_insn = return_copy;
29+ continue;
30+ }
31+#endif
32 if (GET_CODE (copy_reg) == REG)
33 copy_start = REGNO (copy_reg);
34 else if (GET_CODE (copy_reg) == SUBREG
35@@ -311,8 +322,8 @@ create_pre_exit (int n_entities, int *en
36 if (copy_start >= ret_start
37 && copy_start + copy_num <= ret_end)
38 nregs -= copy_num;
39- else if (!maybe_builtin_apply
40- || !FUNCTION_VALUE_REGNO_P (copy_start))
41+ else if (!(maybe_builtin_apply
42+ && FUNCTION_VALUE_REGNO_P (copy_start)))
43 break;
44 last_insn = return_copy;
45 }
This page took 0.055259 seconds and 4 git commands to generate.