diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-09-28 19:32:44 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-09-28 19:32:44 -0400 |
commit | 0407367d5352e159b08e72697db4409a4c05f094 (patch) | |
tree | 83d7544b2cac84fbe72d9953656dae1575b2c0cf | |
parent | f1ed434da0fe589533a3f666a97e87fca3238654 (diff) | |
download | gcc-0407367d5352e159b08e72697db4409a4c05f094.zip gcc-0407367d5352e159b08e72697db4409a4c05f094.tar.gz gcc-0407367d5352e159b08e72697db4409a4c05f094.tar.bz2 |
(convert_move): Added handling of PDImode conversions.
From-SVN: r8161
-rw-r--r-- | gcc/expr.c | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -1025,6 +1025,41 @@ convert_move (to, from, unsignedp) } } + if (to_mode == PDImode) + { + if (from_mode != DImode) + from = convert_to_mode (DImode, from, unsignedp); + +#ifdef HAVE_truncdipdi2 + if (HAVE_truncdipdi2) + { + emit_unop_insn (CODE_FOR_truncdipdi2, to, from, UNKNOWN); + return; + } +#endif /* HAVE_truncdipdi2 */ + abort (); + } + + if (from_mode == PDImode) + { + if (to_mode != DImode) + { + from = convert_to_mode (DImode, from, unsignedp); + from_mode = DImode; + } + else + { +#ifdef HAVE_extendpdidi2 + if (HAVE_extendpdidi2) + { + emit_unop_insn (CODE_FOR_extendpdidi2, to, from, UNKNOWN); + return; + } +#endif /* HAVE_extendpdidi2 */ + abort (); + } + } + /* Now follow all the conversions between integers no more than a word long. */ |