aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChung-Ju Wu <jasonwucj@gmail.com>2018-04-22 10:10:00 +0000
committerChung-Ju Wu <jasonwucj@gcc.gnu.org>2018-04-22 10:10:00 +0000
commit1311665187d54b68fc88f75685ccd28b6d3e2ebc (patch)
treecb16289bba89c3bd07c173cd0e5a08d3ab0ddc67
parentc411e9aa4fd63e03a8e4594776ceb22ff3966dbc (diff)
downloadgcc-1311665187d54b68fc88f75685ccd28b6d3e2ebc.zip
gcc-1311665187d54b68fc88f75685ccd28b6d3e2ebc.tar.gz
gcc-1311665187d54b68fc88f75685ccd28b6d3e2ebc.tar.bz2
[NDS32] Add new option -malways-save-lp.
gcc/ * config/nds32/nds32.c (nds32_compute_stack_frame): Consider flag_always_save_lp condition. * config/nds32/nds32.opt (malways-save-lp): New option. From-SVN: r259553
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/nds32/nds32.c3
-rw-r--r--gcc/config/nds32/nds32.opt4
3 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3aa5542..c9a0d04 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2018-04-22 Chung-Ju Wu <jasonwucj@gmail.com>
+
+ * config/nds32/nds32.c (nds32_compute_stack_frame): Consider
+ flag_always_save_lp condition.
+ * config/nds32/nds32.opt (malways-save-lp): New option.
+
2018-04-22 Shiva Chen <shiva0217@gmail.com>
* config/nds32/nds32-protos.h (nds32_use_load_post_increment): Declare.
diff --git a/gcc/config/nds32/nds32.c b/gcc/config/nds32/nds32.c
index 9a8c712..8994c13 100644
--- a/gcc/config/nds32/nds32.c
+++ b/gcc/config/nds32/nds32.c
@@ -436,7 +436,8 @@ nds32_compute_stack_frame (void)
/* If $lp value is required to be saved on stack, it needs 4 bytes space.
Check whether $lp is ever live. */
- cfun->machine->lp_size = (df_regs_ever_live_p (LP_REGNUM)) ? 4 : 0;
+ cfun->machine->lp_size
+ = (flag_always_save_lp || df_regs_ever_live_p (LP_REGNUM)) ? 4 : 0;
/* Initially there is no padding bytes. */
cfun->machine->callee_saved_area_gpr_padding_bytes = 0;
diff --git a/gcc/config/nds32/nds32.opt b/gcc/config/nds32/nds32.opt
index dd9b3d1..dcf6d39 100644
--- a/gcc/config/nds32/nds32.opt
+++ b/gcc/config/nds32/nds32.opt
@@ -321,6 +321,10 @@ mext-fpu-dp
Target Report Mask(FPU_DOUBLE)
Generate double-precision floating-point instructions.
+malways-save-lp
+Target Var(flag_always_save_lp) Init(0)
+Always save $lp in the stack.
+
munaligned-access
Target Report Var(flag_unaligned_access) Init(0)
Enable unaligned word and halfword accesses to packed data.