Changes: Christian Ullrich
- $Id: md-abi.c 2811 2005-06-23 14:19:18Z christian $
+ $Id: md-abi.c 2835 2005-06-26 21:48:50Z christian $
*/
}
- /* Since R3/R4 (==A0/A1) are used for passing return values, this */
+ /* Since R3/R4, F1 (==A0/A1, A0) are used for passing return values, this */
/* argument register usage has to be regarded, too */
- if (IS_INT_LNG_TYPE(md->returntype.type))
+ if (IS_INT_LNG_TYPE(md->returntype.type)) {
if (iarg < (IS_2_WORD_TYPE(md->returntype.type) ? 2 : 1))
iarg = IS_2_WORD_TYPE(md->returntype.type) ? 2 : 1;
+ } else {
+ if (IS_FLT_DBL_TYPE(md->returntype.type))
+ if (farg < 1)
+ farg = 1;
+ }
/* fill register and stack usage */
md->argintreguse = iarg;
Changes: Christian Ullrich
- $Id: md-abi.c 2813 2005-06-23 14:30:44Z christian $
+ $Id: md-abi.c 2835 2005-06-26 21:48:50Z christian $
*/
}
}
+ /* Since R3/R4, F1 (==A0/A1, A0) are used for passing return values, this */
+ /* argument register usage has to be regarded, too */
+ if (IS_INT_LNG_TYPE(md->returntype.type)) {
+ if (iarg < (IS_2_WORD_TYPE(md->returntype.type) ? 2 : 1))
+ iarg = IS_2_WORD_TYPE(md->returntype.type) ? 2 : 1;
+ } else {
+ if (IS_FLT_DBL_TYPE(md->returntype.type))
+ if (farg < 1)
+ farg = 1;
+ }
+
/* fill register and stack usage */
md->argintreguse = iarg;