[PATCH 8/8] [i386] Add remainder of moutline-msabi-xlogues implementation

2017-02-05 Thread Daniel Santos
Adds functions emit_msabi_outlined_save and emit_msabi_outlined_restore, which are called from ix86_expand_prologue and ix86_expand_epilogue, respectively. Also adds the code to ix86_expand_call that enables the optimization (setting the machine_function's outline_ms_sysv field). Signed-off-by: D

[PATCH 4/8] [i386] Modify ix86_save_reg to optionally omit stub-managed registers

2017-02-05 Thread Daniel Santos
Adds HARD_REG_SET stub_managed_regs to track registers that will be managed by the pro/epilogue stubs for the function. Adds a third parameter bool ignore_outlined to ix86_save_reg to specify rather or not the count should include registers marked in stub_managed_regs. Signed-off-by: Daniel Santo

[PATCH 2/8] [i386] Add option -moutline-msabi-xlogues

2017-02-05 Thread Daniel Santos
Adds the option to i386.opt and i386.c and adds documentation to invoke.texi. Signed-off-by: Daniel Santos --- gcc/config/i386/i386.c | 3 ++- gcc/config/i386/i386.opt | 5 + gcc/doc/invoke.texi | 11 ++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/gcc/co

[PATCH 5/8] [i386] Modify ix86_compute_frame_layout for foutline-msabi-xlogues

2017-02-05 Thread Daniel Santos
ix86_compute_frame_layout will now populate fields added to structs machine_function and ix86_frame, which are used by xlogue_layout::get_instance to determine the correct instance to return. Signed-off-by: Daniel Santos --- gcc/config/i386/i386.c | 105 ++

[PATCH 7/8] [i386] Add msabi pro/epilogue stubs to libgcc

2017-02-05 Thread Daniel Santos
Adds libgcc/config/i386/i386-asm.h to manage common cpp and gas macros. Adds assembly stubs. stubs use the following naming convention: (sav|res)ms64[f][x] save|resSave or restore ms64Avoid possible name collisions with future stubs (specific to 64-bit msabi

[PATCH 1/8] [i386] Minor refactoring

2017-02-05 Thread Daniel Santos
For the sake of clarity, I've separated out these minor refactoring changes from the rest of the patches. Signed-off-by: Daniel Santos --- gcc/config/i386/i386.c | 21 ++--- gcc/config/i386/i386.h | 4 +++- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/gcc/con

[PATCH 3/8] [i386] Adds class xlouge_layout and new fields to struct machine_function

2017-02-05 Thread Daniel Santos
Of the new fields added to struct machine_function, outline_ms_sysv is initially set in ix86_expand_call, but may later be cleared when ix86_compute_frame_layout is called (both of these are in subsequent patch). If it is not cleared, then the remaining new fields will be set. The new class xloug

[PATCH 6/8] [i386] Add patterns and predicates foutline-msabi-xlouges

2017-02-05 Thread Daniel Santos
Adds the predicates save_multiple and restore_multiple to predicates.md, which are used by following patterns in sse.md: * save_multiple - insn that calls a save stub * restore_multiple - call_insn that calls a save stub and returns to the function to allow a sibling call (which should typically

[RFC PATCH v3 0/8][i386] Use out-of-line stubs for ms_abi pro/epilogues

2017-02-05 Thread Daniel Santos
Uros or Jan, Please take this as a ping, as I never bothered pinging after submitting v2 since I found a few more issues with it. :) Although I realize this would be a GCC 8 stage 1 item, I would like to try to get it finished up and tentatively approved asap. I have tried to summarize this p

gcc-7-20170205 is now available

2017-02-05 Thread gccadmin
Snapshot gcc-7-20170205 is now available on ftp://gcc.gnu.org/pub/gcc/snapshots/7-20170205/ and on various mirrors, see http://gcc.gnu.org/mirrors.html for details. This snapshot has been generated from the GCC 7 SVN branch with the following options: svn://gcc.gnu.org/svn/gcc/trunk revision