From ff15c351eda434655cde7e6153b1a27db404a86d Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Thu, 8 Jul 2004 05:58:35 +0000 Subject: 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 --- gcc/calls.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gcc/calls.c') diff --git a/gcc/calls.c b/gcc/calls.c index 9f84199..3f427fb 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -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); -- cgit v1.1