[NDS32] We need to make sure it is NOT a variadic function so that some v3push/v3pop...
authorChung-Ju Wu <jasonwucj@gmail.com>
Wed, 3 Sep 2014 09:04:46 +0000 (09:04 +0000)
committerChung-Ju Wu <jasonwucj@gcc.gnu.org>
Wed, 3 Sep 2014 09:04:46 +0000 (09:04 +0000)
commit2da1e7c02214850d6b49a1f63c29fe6ccb7118a9
treebc60ff7ca0482a432a6147cfc074d8038b2a1e98
parent6f3d3f9c7c6db3468b8d0269bbca946df2c48d5f
[NDS32] We need to make sure it is NOT a variadic function so that some v3push/v3pop preparation can be applied.

  -- The rationale of such avoidance is that the 'pop25' instruction also
     contains return behavior and we have no chance to further adjust stack
     pointer before returning to caller, which is very important to
     variadic function.
  -- So we do not setup v3push/v3pop (push25/pop25) information for a
     variadic function.  It will use normal stack push/pop instead.

* config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
v3push/v3pop for variadic function.
* config/nds32/nds32.md (prologue, epilogue): Likewise.

From-SVN: r214857
gcc/ChangeLog
gcc/config/nds32/nds32.c
gcc/config/nds32/nds32.md