]> git.pld-linux.org Git - packages/crossavr-gcc.git/blob - 303-gcc-4.5.1-osmain.patch
d42013db78e83fd54e04540faa1515b78f3cf409
[packages/crossavr-gcc.git] / 303-gcc-4.5.1-osmain.patch
1 diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
2 --- gcc/config/avr/avr.c        2011-01-19 13:45:00.000000000 -0600
3 +++ gcc/config/avr/avr.c        2011-01-19 13:45:47.000000000 -0600
4 @@ -784,7 +784,8 @@ expand_prologue (void)
5                 }
6               else if ((!AVR_XMEGA && TARGET_NO_INTERRUPTS)
7                        || (!AVR_XMEGA && cfun->machine->is_signal)
8 -                      || (!AVR_XMEGA && cfun->machine->is_OS_main))
9 +                      || (!AVR_XMEGA && cfun->machine->is_OS_main)
10 +                      || (AVR_XMEGA && cfun->machine->is_nmi))
11                 {
12                   insn = 
13                     emit_insn (gen_movhi_sp_r_irq_off (stack_pointer_rtx, 
14 @@ -963,7 +964,8 @@ expand_epilogue (void)
15                   emit_move_insn (stack_pointer_rtx, frame_pointer_rtx);
16                 }
17               else if ((!AVR_XMEGA && TARGET_NO_INTERRUPTS) 
18 -                      || (!AVR_XMEGA && cfun->machine->is_signal))
19 +                      || (!AVR_XMEGA && cfun->machine->is_signal)
20 +                      || (AVR_XMEGA && cfun->machine->is_nmi))
21                 {
22                   emit_insn (gen_movhi_sp_r_irq_off (stack_pointer_rtx, 
23                                                      frame_pointer_rtx));
24 diff -Naurp gcc/function.c gcc/function.c
25 --- gcc/function.c      2010-02-26 09:58:57.000000000 -0600
26 +++ gcc/function.c      2011-01-19 13:45:48.000000000 -0600
27 @@ -4980,6 +4980,14 @@ contains (const_rtx insn, htab_t hash)
28  }
29  
30  int
31 +prologue_contains (const_rtx insn)
32 +{
33 +  if (contains (insn, prologue_insn_hash))
34 +    return 1;
35 +  return 0;
36 +}
37 +
38 +int
39  prologue_epilogue_contains (const_rtx insn)
40  {
41    if (contains (insn, prologue_insn_hash))
42 diff -Naurp gcc/rtl.h gcc/rtl.h
43 --- gcc/rtl.h   2010-03-16 05:50:42.000000000 -0500
44 +++ gcc/rtl.h   2011-01-19 13:45:48.000000000 -0600
45 @@ -2296,6 +2296,7 @@ extern void print_inline_rtx (FILE *, co
46  
47  /* In function.c */
48  extern void reposition_prologue_and_epilogue_notes (void);
49 +extern int prologue_contains (const_rtx);
50  extern int prologue_epilogue_contains (const_rtx);
51  extern int sibcall_epilogue_contains (const_rtx);
52  extern void mark_temp_addr_taken (rtx);
This page took 0.021332 seconds and 2 git commands to generate.