calls.c (emit_library_call_value_1): Use mode of function parameter rather than that of argument since constants...
* calls.c (emit_library_call_value_1): Use mode of function parameter rather than that of argument since constants have none. From-SVN: r84267
This commit is contained in:
parent
e52a6df533
commit
ff15c351ed
@ -1,7 +1,10 @@
|
||||
2004-07-06 Jan Beulich <jbeulich@novell.com>
|
||||
|
||||
* config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
|
||||
passing arguments the containers for which are registers.
|
||||
* config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
|
||||
passing arguments the containers for which are registers.
|
||||
|
||||
* calls.c (emit_library_call_value_1): Use mode of function parameter
|
||||
rather than that of argument since constants have none.
|
||||
|
||||
2004-07-08 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
|
@ -3888,6 +3888,7 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
|
||||
are to be pushed. */
|
||||
for (count = 0; count < nargs; count++, argnum += inc)
|
||||
{
|
||||
enum machine_mode mode = argvec[argnum].mode;
|
||||
rtx val = argvec[argnum].value;
|
||||
rtx reg = argvec[argnum].reg;
|
||||
int partial = argvec[argnum].partial;
|
||||
@ -3895,7 +3896,7 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
|
||||
/* Handle calls that pass values in multiple non-contiguous
|
||||
locations. The PA64 has examples of this for library calls. */
|
||||
if (reg != 0 && GET_CODE (reg) == PARALLEL)
|
||||
emit_group_load (reg, val, NULL_TREE, GET_MODE_SIZE (GET_MODE (val)));
|
||||
emit_group_load (reg, val, NULL_TREE, GET_MODE_SIZE (mode));
|
||||
else if (reg != 0 && partial == 0)
|
||||
emit_move_insn (reg, val);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user