[NDS32] Add new option: -msched-prolog-epilog
gcc/ * config/nds32/nds32.c (nds32_expand_prologue, nds32_expand_epilogue): Support -msched-prolog-epilog option. * config/nds32/nds32.opt (msched-prolog-epilog): New option. From-SVN: r263496
This commit is contained in:
parent
68acadb1ff
commit
d057a470d3
3 changed files with 20 additions and 6 deletions
|
@ -1,3 +1,9 @@
|
|||
2018-08-12 Chung-Ju Wu <jasonwucj@gmail.com>
|
||||
|
||||
* config/nds32/nds32.c (nds32_expand_prologue, nds32_expand_epilogue):
|
||||
Support -msched-prolog-epilog option.
|
||||
* config/nds32/nds32.opt (msched-prolog-epilog): New option.
|
||||
|
||||
2018-08-12 Chung-Ju Wu <jasonwucj@gmail.com>
|
||||
|
||||
* common/config/nds32/nds32-common.c
|
||||
|
|
|
@ -4763,9 +4763,11 @@ nds32_expand_prologue (void)
|
|||
if (flag_pic && df_regs_ever_live_p (PIC_OFFSET_TABLE_REGNUM))
|
||||
nds32_emit_load_gp ();
|
||||
|
||||
/* Prevent the instruction scheduler from
|
||||
moving instructions across the boundary. */
|
||||
emit_insn (gen_blockage ());
|
||||
/* If user applies -mno-sched-prolog-epilog option,
|
||||
we need to prevent instructions of function body from being
|
||||
scheduled with stack adjustment in prologue. */
|
||||
if (!flag_sched_prolog_epilog)
|
||||
emit_insn (gen_blockage ());
|
||||
}
|
||||
|
||||
/* Function for normal multiple pop epilogue. */
|
||||
|
@ -4779,9 +4781,11 @@ nds32_expand_epilogue (bool sibcall_p)
|
|||
The result will be in cfun->machine. */
|
||||
nds32_compute_stack_frame ();
|
||||
|
||||
/* Prevent the instruction scheduler from
|
||||
moving instructions across the boundary. */
|
||||
emit_insn (gen_blockage ());
|
||||
/* If user applies -mno-sched-prolog-epilog option,
|
||||
we need to prevent instructions of function body from being
|
||||
scheduled with stack adjustment in epilogue. */
|
||||
if (!flag_sched_prolog_epilog)
|
||||
emit_insn (gen_blockage ());
|
||||
|
||||
/* If the function is 'naked', we do not have to generate
|
||||
epilogue code fragment BUT 'ret' instruction.
|
||||
|
|
|
@ -444,6 +444,10 @@ mforce-no-ext-dsp
|
|||
Target Undocumented Report Mask(FORCE_NO_EXT_DSP)
|
||||
Force disable hardware loop, even use -mext-dsp.
|
||||
|
||||
msched-prolog-epilog
|
||||
Target Var(flag_sched_prolog_epilog) Init(0)
|
||||
Permit scheduling of a function's prologue and epilogue sequence.
|
||||
|
||||
mret-in-naked-func
|
||||
Target Var(flag_ret_in_naked_func) Init(1)
|
||||
Generate return instruction in naked function.
|
||||
|
|
Loading…
Add table
Reference in a new issue