Commit 642dfa8b by Bernd Schmidt Committed by Bernd Schmidt

Make libcall blocks for truncations

From-SVN: r36434
parent aff2c2d3
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
* optabs.c (emit_libcall_block): If target is a user variable, * optabs.c (emit_libcall_block): If target is a user variable,
copy to a temporary first. 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> 2000-09-15 Richard Henderson <rth@cygnus.com>
......
...@@ -563,7 +563,7 @@ convert_move (to, from, unsignedp) ...@@ -563,7 +563,7 @@ convert_move (to, from, unsignedp)
if (to_real) if (to_real)
{ {
rtx value; rtx value, insns;
if (GET_MODE_BITSIZE (from_mode) < GET_MODE_BITSIZE (to_mode)) if (GET_MODE_BITSIZE (from_mode) < GET_MODE_BITSIZE (to_mode))
{ {
...@@ -803,9 +803,13 @@ convert_move (to, from, unsignedp) ...@@ -803,9 +803,13 @@ convert_move (to, from, unsignedp)
/* This conversion is not implemented yet. */ /* This conversion is not implemented yet. */
abort (); abort ();
start_sequence ();
value = emit_library_call_value (libcall, NULL_RTX, 1, to_mode, value = emit_library_call_value (libcall, NULL_RTX, 1, to_mode,
1, from, from_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; return;
} }
......
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