Commit 3b1bf459 by Bernd Schmidt Committed by Bernd Schmidt

calls.c (emit_library_call_value_1): Handle partial registers correctly when…

calls.c (emit_library_call_value_1): Handle partial registers correctly when building up CALL_INSN_FUNCTION_USAGE.

	* calls.c (emit_library_call_value_1): Handle partial registers
	correctly when building up CALL_INSN_FUNCTION_USAGE.

From-SVN: r122396
parent 9edd7f97
2007-02-28 Bernd Schmidt <bernd.schmidt@analog.com>
* calls.c (emit_library_call_value_1): Handle partial registers
correctly when building up CALL_INSN_FUNCTION_USAGE.
2007-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa/predicates.md (move_src_operand): Allow zero for mode.
......
......@@ -3774,8 +3774,19 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
if (reg != 0 && GET_CODE (reg) == PARALLEL)
use_group_regs (&call_fusage, reg);
else if (reg != 0)
{
int partial = argvec[count].partial;
if (partial)
{
int nregs;
gcc_assert (partial % UNITS_PER_WORD == 0);
nregs = partial / UNITS_PER_WORD;
use_regs (&call_fusage, REGNO (reg), nregs);
}
else
use_reg (&call_fusage, reg);
}
}
/* Pass the function the address in which to return a structure value. */
if (mem_value != 0 && struct_value != 0 && ! pcc_struct_value)
......
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