diff options
author | Chung-Ju Wu <jasonwucj@gmail.com> | 2018-04-22 08:25:47 +0000 |
---|---|---|
committer | Chung-Ju Wu <jasonwucj@gcc.gnu.org> | 2018-04-22 08:25:47 +0000 |
commit | 361292be13045d2ed2812b26bb6c634b60e155df (patch) | |
tree | c138ff07ed2c4b92fe5f46dcb24ba486667d2532 /gcc | |
parent | 79498ad8ba53725b8429deeb9eb81c66bc0c496d (diff) | |
download | gcc-361292be13045d2ed2812b26bb6c634b60e155df.zip gcc-361292be13045d2ed2812b26bb6c634b60e155df.tar.gz gcc-361292be13045d2ed2812b26bb6c634b60e155df.tar.bz2 |
[NDS32] Fix wrong input value of parameter from stack for variable-length function.
gcc/
* config/nds32/nds32.c (nds32_compute_stack_frame): Fix wrong value.
From-SVN: r259549
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/nds32/nds32.c | 10 |
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7c6fb76..43c1b3a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> + * config/nds32/nds32.c (nds32_compute_stack_frame): Fix wrong value. + +2018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> + * config/nds32/nds32-protos.h (nds32_data_alignment, nds32_local_alignment): Declare. * config/nds32/nds32.c (nds32_data_alignment, nds32_constant_alignment, diff --git a/gcc/config/nds32/nds32.c b/gcc/config/nds32/nds32.c index a0012c0..0c4e917 100644 --- a/gcc/config/nds32/nds32.c +++ b/gcc/config/nds32/nds32.c @@ -611,10 +611,12 @@ nds32_compute_stack_frame (void) { block_size = cfun->machine->fp_size + cfun->machine->gp_size - + cfun->machine->lp_size - + (4 * (cfun->machine->callee_saved_last_gpr_regno - - cfun->machine->callee_saved_first_gpr_regno - + 1)); + + cfun->machine->lp_size; + + if (cfun->machine->callee_saved_last_gpr_regno != SP_REGNUM) + block_size += (4 * (cfun->machine->callee_saved_last_gpr_regno + - cfun->machine->callee_saved_first_gpr_regno + + 1)); if (!NDS32_DOUBLE_WORD_ALIGN_P (block_size)) { |