diff options
author | Chung-Ju Wu <jasonwucj@gmail.com> | 2014-09-03 09:55:28 +0000 |
---|---|---|
committer | Chung-Ju Wu <jasonwucj@gcc.gnu.org> | 2014-09-03 09:55:28 +0000 |
commit | 7f6cd86bef0d942ca6e4d7a38f942cd38daaff95 (patch) | |
tree | 84c7d09e05d0df11d11b81726f282263ee893fbf /gcc/final.c | |
parent | 52e4630c51f511137b0018fe9f5661182fd5e668 (diff) | |
download | gcc-7f6cd86bef0d942ca6e4d7a38f942cd38daaff95.zip gcc-7f6cd86bef0d942ca6e4d7a38f942cd38daaff95.tar.gz gcc-7f6cd86bef0d942ca6e4d7a38f942cd38daaff95.tar.bz2 |
[NDS32] Deal with nameless arguments in nds32_function_arg and nds32_function_arg_advance.
1. We have caller prepare nameless arguments in the way of calling a normal function.
e.g. Assume a function: void va_test (int n, ...);
When calling "va_test (6, 11, 22, 33, 44, 55, 66);",
r0 <- 6
r1 <- 11
r2 <- 22
r3 <- 33
r4 <- 44
r5 <- 55
[sp + 0] <- 66
2. Note that we DO NOT handle it for TARGET_HARD_FLOAT case.
The TARGET_HARD_FLOAT should push all the nameless arguments into
stack and GCC is able to take care of them itself.
In addition, we have not implemented hard float on trunk yet.
* config/nds32/nds32.c (nds32_function_arg): Deal with nameless
arguments.
(nds32_function_arg_advance): Deal with nameless arguments.
* config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
(NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
(NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
From-SVN: r214865
Diffstat (limited to 'gcc/final.c')
0 files changed, 0 insertions, 0 deletions