summaryrefslogtreecommitdiff
path: root/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.4/backport/0003-i386-Use-const-reference-of-struct-ix86_frame-to-avo.patch
diff options
context:
space:
mode:
Diffstat (limited to 'import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.4/backport/0003-i386-Use-const-reference-of-struct-ix86_frame-to-avo.patch')
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.4/backport/0003-i386-Use-const-reference-of-struct-ix86_frame-to-avo.patch131
1 files changed, 0 insertions, 131 deletions
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.4/backport/0003-i386-Use-const-reference-of-struct-ix86_frame-to-avo.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.4/backport/0003-i386-Use-const-reference-of-struct-ix86_frame-to-avo.patch
deleted file mode 100644
index a5ffd85d6f..0000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.4/backport/0003-i386-Use-const-reference-of-struct-ix86_frame-to-avo.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-From 82243732dc63e9b90396a5ae4ad99ca36af81355 Mon Sep 17 00:00:00 2001
-From: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Sat, 27 Jan 2018 13:10:24 +0000
-Subject: [PATCH 03/12] i386: Use const reference of struct ix86_frame to avoid
- copy
-
-We can use const reference of struct ix86_frame to avoid making a local
-copy of ix86_frame. ix86_expand_epilogue makes a local copy of struct
-ix86_frame and uses the reg_save_offset field as a local variable. This
-patch uses a separate local variable for reg_save_offset.
-
-Tested on x86-64 with ada.
-
- Backport from mainline
- PR target/83905
- * config/i386/i386.c (ix86_expand_prologue): Use cost reference
- of struct ix86_frame.
- (ix86_expand_epilogue): Likewise. Add a local variable for
- the reg_save_offset field in struct ix86_frame.
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@257123 138bc75d-0d04-0410-961f-82ee72b054a4
-
-Upstream-Status: Pending
-
-Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
-
----
- gcc/config/i386/i386.c | 24 ++++++++++++------------
- 1 file changed, 12 insertions(+), 12 deletions(-)
-
-diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
-index 13ebf10..6c98f75 100644
---- a/gcc/config/i386/i386.c
-+++ b/gcc/config/i386/i386.c
-@@ -12633,7 +12633,6 @@ ix86_expand_prologue (void)
- {
- struct machine_function *m = cfun->machine;
- rtx insn, t;
-- struct ix86_frame frame;
- HOST_WIDE_INT allocate;
- bool int_registers_saved;
- bool sse_registers_saved;
-@@ -12657,7 +12656,7 @@ ix86_expand_prologue (void)
- m->fs.sp_valid = true;
-
- ix86_compute_frame_layout ();
-- frame = m->frame;
-+ const struct ix86_frame &frame = cfun->machine->frame;
-
- if (!TARGET_64BIT && ix86_function_ms_hook_prologue (current_function_decl))
- {
-@@ -13329,13 +13328,12 @@ ix86_expand_epilogue (int style)
- {
- struct machine_function *m = cfun->machine;
- struct machine_frame_state frame_state_save = m->fs;
-- struct ix86_frame frame;
- bool restore_regs_via_mov;
- bool using_drap;
-
- ix86_finalize_stack_realign_flags ();
- ix86_compute_frame_layout ();
-- frame = m->frame;
-+ const struct ix86_frame &frame = cfun->machine->frame;
-
- m->fs.sp_valid = (!frame_pointer_needed
- || (crtl->sp_is_unchanging
-@@ -13377,11 +13375,13 @@ ix86_expand_epilogue (int style)
- + UNITS_PER_WORD);
- }
-
-+ HOST_WIDE_INT reg_save_offset = frame.reg_save_offset;
-+
- /* Special care must be taken for the normal return case of a function
- using eh_return: the eax and edx registers are marked as saved, but
- not restored along this path. Adjust the save location to match. */
- if (crtl->calls_eh_return && style != 2)
-- frame.reg_save_offset -= 2 * UNITS_PER_WORD;
-+ reg_save_offset -= 2 * UNITS_PER_WORD;
-
- /* EH_RETURN requires the use of moves to function properly. */
- if (crtl->calls_eh_return)
-@@ -13397,11 +13397,11 @@ ix86_expand_epilogue (int style)
- else if (TARGET_EPILOGUE_USING_MOVE
- && cfun->machine->use_fast_prologue_epilogue
- && (frame.nregs > 1
-- || m->fs.sp_offset != frame.reg_save_offset))
-+ || m->fs.sp_offset != reg_save_offset))
- restore_regs_via_mov = true;
- else if (frame_pointer_needed
- && !frame.nregs
-- && m->fs.sp_offset != frame.reg_save_offset)
-+ && m->fs.sp_offset != reg_save_offset)
- restore_regs_via_mov = true;
- else if (frame_pointer_needed
- && TARGET_USE_LEAVE
-@@ -13439,7 +13439,7 @@ ix86_expand_epilogue (int style)
- rtx t;
-
- if (frame.nregs)
-- ix86_emit_restore_regs_using_mov (frame.reg_save_offset, style == 2);
-+ ix86_emit_restore_regs_using_mov (reg_save_offset, style == 2);
-
- /* eh_return epilogues need %ecx added to the stack pointer. */
- if (style == 2)
-@@ -13529,19 +13529,19 @@ ix86_expand_epilogue (int style)
- epilogues. */
- if (!m->fs.sp_valid
- || (TARGET_SEH
-- && (m->fs.sp_offset - frame.reg_save_offset
-+ && (m->fs.sp_offset - reg_save_offset
- >= SEH_MAX_FRAME_SIZE)))
- {
- pro_epilogue_adjust_stack (stack_pointer_rtx, hard_frame_pointer_rtx,
- GEN_INT (m->fs.fp_offset
-- - frame.reg_save_offset),
-+ - reg_save_offset),
- style, false);
- }
-- else if (m->fs.sp_offset != frame.reg_save_offset)
-+ else if (m->fs.sp_offset != reg_save_offset)
- {
- pro_epilogue_adjust_stack (stack_pointer_rtx, stack_pointer_rtx,
- GEN_INT (m->fs.sp_offset
-- - frame.reg_save_offset),
-+ - reg_save_offset),
- style,
- m->fs.cfa_reg == stack_pointer_rtx);
- }
---
-2.7.4
-