Commit 46af8e31 by Jim Wilson

(FUNCTION_ARG_REGNO_P): Correct for TARGET_SOFT_FLOAT and

TARGET_FLOAT64 cases.

From-SVN: r13341
parent 64ed0f40
......@@ -2088,11 +2088,15 @@ extern struct mips_frame_info current_frame_info;
#define FUNCTION_VALUE_REGNO_P(N) ((N) == GP_RETURN || (N) == FP_RETURN)
/* 1 if N is a possible register number for function argument passing. */
#define FUNCTION_ARG_REGNO_P(N) (((N) >= GP_ARG_FIRST && (N) <= GP_ARG_LAST) \
|| ((N) >= FP_ARG_FIRST && (N) <= FP_ARG_LAST \
&& (0 == (N) % 2)))
/* 1 if N is a possible register number for function argument passing.
We have no FP argument registers when soft-float. When FP registers
are 32 bits, we can't directly reference the odd numbered ones. */
#define FUNCTION_ARG_REGNO_P(N) \
(((N) >= GP_ARG_FIRST && (N) <= GP_ARG_LAST) \
|| (! TARGET_SOFT_FLOAT \
&& ((N) >= FP_ARG_FIRST && (N) <= FP_ARG_LAST) \
&& (TARGET_FLOAT64 || (0 == (N) % 2))))
/* A C expression which can inhibit the returning of certain function
values in registers, based on the type of value. A nonzero value says
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment