diff options
author | Richard Stallman <rms@gnu.org> | 1993-10-08 22:29:17 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-10-08 22:29:17 +0000 |
commit | 4f38921423b6dfe7c52ff357584ac4650fee3220 (patch) | |
tree | c21cfed0974e315cff7746336fa85cb37316a692 | |
parent | f0dbe37245ed4762dbe6ebb7d00c349b4fb91db2 (diff) | |
download | gcc-4f38921423b6dfe7c52ff357584ac4650fee3220.zip gcc-4f38921423b6dfe7c52ff357584ac4650fee3220.tar.gz gcc-4f38921423b6dfe7c52ff357584ac4650fee3220.tar.bz2 |
(emit_library_call_value): Compute struct_value_size,
and pass it to emit_call_1.
From-SVN: r5689
-rw-r--r-- | gcc/calls.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index 286dcdd..620c1b1 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -2353,6 +2353,7 @@ emit_library_call_value (va_alist) rtx value; rtx mem_value = 0; int pcc_struct_value = 0; + int struct_value_size = 0; /* library calls are never indirect calls. */ int current_call_is_indirect = 0; @@ -2376,6 +2377,7 @@ emit_library_call_value (va_alist) if (value == 0) value = gen_reg_rtx (outmode); #else /* not PCC_STATIC_STRUCT_RETURN */ + struct_value_size = GET_MODE_SIZE (outmode); if (value != 0 && GET_CODE (value) == MEM) mem_value = value; else @@ -2662,7 +2664,8 @@ emit_library_call_value (va_alist) /* We pass the old value of inhibit_defer_pop + 1 to emit_call_1, which will set inhibit_defer_pop to that value. */ - emit_call_1 (fun, get_identifier (XSTR (orgfun, 0)), args_size.constant, 0, + emit_call_1 (fun, get_identifier (XSTR (orgfun, 0)), args_size.constant, + struct_value_size, FUNCTION_ARG (args_so_far, VOIDmode, void_type_node, 1), (outmode != VOIDmode && mem_value == 0 ? hard_libcall_value (outmode) : NULL_RTX), |