diff options
author | Bernd Schmidt <bernds@redhat.co.uk> | 2000-09-15 16:16:33 +0000 |
---|---|---|
committer | Bernd Schmidt <crux@gcc.gnu.org> | 2000-09-15 16:16:33 +0000 |
commit | 642dfa8b65d3f42e35df4ced39d8a58b1a8cc2e6 (patch) | |
tree | 672a46405db5845dbc86056fe55f582523be7c77 | |
parent | aff2c2d3af3233dfb2d237341f2fd8612dc61391 (diff) | |
download | gcc-642dfa8b65d3f42e35df4ced39d8a58b1a8cc2e6.zip gcc-642dfa8b65d3f42e35df4ced39d8a58b1a8cc2e6.tar.gz gcc-642dfa8b65d3f42e35df4ced39d8a58b1a8cc2e6.tar.bz2 |
Make libcall blocks for truncations
From-SVN: r36434
-rw-r--r-- | gcc/ChangeLog | 2 | ||||
-rw-r--r-- | gcc/expr.c | 8 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6c1152a..147768e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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; } |