diff options
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.patch | 131 |
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 - |