summaryrefslogtreecommitdiff
path: root/lang/egcs/files/patch-ah
diff options
context:
space:
mode:
Diffstat (limited to 'lang/egcs/files/patch-ah')
-rw-r--r--lang/egcs/files/patch-ah67
1 files changed, 67 insertions, 0 deletions
diff --git a/lang/egcs/files/patch-ah b/lang/egcs/files/patch-ah
new file mode 100644
index 000000000000..fad69668db7b
--- /dev/null
+++ b/lang/egcs/files/patch-ah
@@ -0,0 +1,67 @@
+--- gcc/config/i386/i386.c.orig Sat Sep 5 22:52:05 1998
++++ gcc/config/i386/i386.c Wed Oct 7 17:06:48 1998
+@@ -51,6 +51,11 @@
+ #define CHECK_STACK_LIMIT -1
+ #endif
+
++#define PIC_REG_USED \
++ (flag_pic && (current_function_uses_pic_offset_table \
++ || current_function_uses_const_pool \
++ || profile_flag || profile_block_flag))
++
+ /* Type of an operand for ix86_{binary,unary}_operator_ok */
+ enum reg_mem
+ {
+@@ -1938,13 +1943,11 @@
+ char *name ATTRIBUTE_UNUSED;
+ {
+ rtx xops[2];
+- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table
+- || current_function_uses_const_pool);
+ xops[0] = pic_offset_table_rtx;
+ xops[1] = stack_pointer_rtx;
+
+ /* Deep branch prediction favors having a return for every call. */
+- if (pic_reg_used && TARGET_DEEP_BRANCH_PREDICTION)
++ if (PIC_REG_USED && TARGET_DEEP_BRANCH_PREDICTION)
+ {
+ tree prologue_node;
+
+@@ -2074,8 +2077,7 @@
+ register int regno;
+ int limit;
+ rtx xops[4];
+- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table
+- || current_function_uses_const_pool);
++ int pic_reg_used = PIC_REG_USED;
+ long tsize = get_frame_size ();
+ rtx insn;
+ int cfa_offset = INCOMING_FRAME_SP_OFFSET, cfa_store_offset = cfa_offset;
+@@ -2245,8 +2247,6 @@
+ int nregs = 0;
+ int reglimit = (frame_pointer_needed
+ ? FRAME_POINTER_REGNUM : STACK_POINTER_REGNUM);
+- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table
+- || current_function_uses_const_pool);
+
+ #ifdef NON_SAVING_SETJMP
+ if (NON_SAVING_SETJMP && current_function_calls_setjmp)
+@@ -2258,7 +2258,7 @@
+
+ for (regno = reglimit - 1; regno >= 0; regno--)
+ if ((regs_ever_live[regno] && ! call_used_regs[regno])
+- || (regno == PIC_OFFSET_TABLE_REGNUM && pic_reg_used))
++ || (regno == PIC_OFFSET_TABLE_REGNUM && PIC_REG_USED))
+ nregs++;
+
+ return nregs == 0 || ! frame_pointer_needed;
+@@ -2292,8 +2292,7 @@
+ register int nregs, limit;
+ int offset;
+ rtx xops[3];
+- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table
+- || current_function_uses_const_pool);
++ int pic_reg_used = PIC_REG_USED;
+ long tsize = get_frame_size ();
+
+ /* Compute the number of registers to pop */