Commit c6d3802a by Paul Koning Committed by Paul Koning

pdp11.c (pdp11_return_in_memory): Return vector and complex modes in memory.

* config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
complex modes in memory.

From-SVN: r166137
parent eb8e7cb1
2010-11-01 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
complex modes in memory.
2010-11-01 Nathan Froyd <froydnj@codesourcery.com> 2010-11-01 Nathan Froyd <froydnj@codesourcery.com>
* tree.c (build_vector_from_val): Use useless_type_conversion_p. * tree.c (build_vector_from_val): Use useless_type_conversion_p.
...@@ -1816,14 +1816,12 @@ output_addr_const_pdp11 (FILE *file, rtx x) ...@@ -1816,14 +1816,12 @@ output_addr_const_pdp11 (FILE *file, rtx x)
static bool static bool
pdp11_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED) pdp11_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED)
{ {
/* Should probably return DImode and DFmode in memory, lest /* Integers 32 bits and under, and scalar floats (if FPU), are returned
we fill up all regs! in registers. The rest go into memory. */
have to, else we crash - exception: maybe return result in
ac0 if DFmode and FPU present - compatibility problem with
libraries for non-floating point.... */
return (TYPE_MODE (type) == DImode return (TYPE_MODE (type) == DImode
|| (FLOAT_MODE_P (TYPE_MODE (type)) && ! TARGET_AC0)); || (FLOAT_MODE_P (TYPE_MODE (type)) && ! TARGET_AC0)
|| TREE_CODE (type) == VECTOR_TYPE
|| COMPLEX_MODE_P (TYPE_MODE (type)));
} }
/* Worker function for TARGET_FUNCTION_VALUE. /* Worker function for TARGET_FUNCTION_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