Make libcall blocks for truncations
From-SVN: r36434
This commit is contained in:
parent
aff2c2d3af
commit
642dfa8b65
@ -2,6 +2,8 @@
|
||||
|
||||
* optabs.c (emit_libcall_block): If target is a user variable,
|
||||
copy to a temporary first.
|
||||
* expr.c (convert_move): When generating a libcall, make a libcall
|
||||
block.
|
||||
|
||||
2000-09-15 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
|
@ -563,7 +563,7 @@ convert_move (to, from, unsignedp)
|
||||
|
||||
if (to_real)
|
||||
{
|
||||
rtx value;
|
||||
rtx value, insns;
|
||||
|
||||
if (GET_MODE_BITSIZE (from_mode) < GET_MODE_BITSIZE (to_mode))
|
||||
{
|
||||
@ -803,9 +803,13 @@ convert_move (to, from, unsignedp)
|
||||
/* This conversion is not implemented yet. */
|
||||
abort ();
|
||||
|
||||
start_sequence ();
|
||||
value = emit_library_call_value (libcall, NULL_RTX, 1, to_mode,
|
||||
1, from, from_mode);
|
||||
emit_move_insn (to, value);
|
||||
insns = get_insns ();
|
||||
end_sequence ();
|
||||
emit_libcall_block (insns, to, value, gen_rtx_FLOAT_TRUNCATE (to_mode,
|
||||
from));
|
||||
return;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user