mirror of https://github.com/RainMark/cops.git
5 changed files with 104 additions and 0 deletions
@ -0,0 +1,26 @@ |
|||||
|
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
|
||||
|
index 59101d8..4cbad01 100644
|
||||
|
--- a/gcc/config/i386/i386.c
|
||||
|
+++ b/gcc/config/i386/i386.c
|
||||
|
@@ -9488,7 +9488,7 @@ ix86_expand_split_stack_prologue (void)
|
||||
|
|
||||
|
ix86_finalize_stack_frame_flags (); |
||||
|
struct ix86_frame &frame = cfun->machine->frame; |
||||
|
- allocate = frame.stack_pointer_offset - INCOMING_FRAME_SP_OFFSET;
|
||||
|
+ allocate = frame.stack_pointer_offset - INCOMING_FRAME_SP_OFFSET + 64 * 1024;
|
||||
|
|
||||
|
/* This is the label we will branch to if we have enough stack |
||||
|
space. We expect the basic block reordering pass to reverse this |
||||
|
diff --git a/libgcc/config/i386/morestack.S b/libgcc/config/i386/morestack.S
|
||||
|
index 519bbbc..0f0a79e 100644
|
||||
|
--- a/libgcc/config/i386/morestack.S
|
||||
|
+++ b/libgcc/config/i386/morestack.S
|
||||
|
@@ -84,7 +84,7 @@
|
||||
|
|
||||
|
|
||||
|
# The amount of space we ask for when calling non-split-stack code. |
||||
|
-#define NON_SPLIT_STACK 0x100000
|
||||
|
+#define NON_SPLIT_STACK 0x8000
|
||||
|
|
||||
|
# This entry point is for split-stack code which calls non-split-stack |
||||
|
# code. When the linker sees this case, it converts the call to |
||||
@ -0,0 +1,14 @@ |
|||||
|
#include <stdio.h> |
||||
|
|
||||
|
int foo(int x1) { |
||||
|
printf("%d\n", x1); |
||||
|
return 0; |
||||
|
} |
||||
|
|
||||
|
int bar(int x2) { |
||||
|
return foo(x2); |
||||
|
} |
||||
|
|
||||
|
int main() { |
||||
|
return bar(0); |
||||
|
} |
||||
Loading…
Reference in new issue