diff options
author | Richard Stallman <rms@gnu.org> | 1993-03-12 23:07:38 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-03-12 23:07:38 +0000 |
commit | c841050eed727c249d687a85c2e991d971cd1ff3 (patch) | |
tree | 976651febc8290a711608307a9daa565342d269b | |
parent | dac29d65d8e956f99b5e35f432e9e2baaa396aee (diff) | |
download | gcc-c841050eed727c249d687a85c2e991d971cd1ff3.zip gcc-c841050eed727c249d687a85c2e991d971cd1ff3.tar.gz gcc-c841050eed727c249d687a85c2e991d971cd1ff3.tar.bz2 |
(emit_push_insn): Handle failure of gen_movstr...
From-SVN: r3721
-rw-r--r-- | gcc/expr.c | 40 |
1 files changed, 28 insertions, 12 deletions
@@ -1911,9 +1911,13 @@ emit_push_insn (x, mode, type, size, align, partial, reg, extra, && ((unsigned) INTVAL (size) < (1 << (GET_MODE_BITSIZE (QImode) - 1)))) { - emit_insn (gen_movstrqi (gen_rtx (MEM, BLKmode, temp), - xinner, size, GEN_INT (align))); - goto ret; + rtx pat = gen_movstrqi (gen_rtx (MEM, BLKmode, temp), + xinner, size, GEN_INT (align)); + if (pat != 0) + { + emit_insn (pat); + goto ret; + } } #endif #ifdef HAVE_movstrhi @@ -1922,25 +1926,37 @@ emit_push_insn (x, mode, type, size, align, partial, reg, extra, && ((unsigned) INTVAL (size) < (1 << (GET_MODE_BITSIZE (HImode) - 1)))) { - emit_insn (gen_movstrhi (gen_rtx (MEM, BLKmode, temp), - xinner, size, GEN_INT (align))); - goto ret; + rtx pat = gen_movstrhi (gen_rtx (MEM, BLKmode, temp), + xinner, size, GEN_INT (align)); + if (pat != 0) + { + emit_insn (pat); + goto ret; + } } #endif #ifdef HAVE_movstrsi if (HAVE_movstrsi) { - emit_insn (gen_movstrsi (gen_rtx (MEM, BLKmode, temp), - xinner, size, GEN_INT (align))); - goto ret; + rtx pat = gen_movstrsi (gen_rtx (MEM, BLKmode, temp), + xinner, size, GEN_INT (align)); + if (pat != 0) + { + emit_insn (pat); + goto ret; + } } #endif #ifdef HAVE_movstrdi if (HAVE_movstrdi) { - emit_insn (gen_movstrdi (gen_rtx (MEM, BLKmode, temp), - xinner, size, GEN_INT (align))); - goto ret; + rtx pat = gen_movstrdi (gen_rtx (MEM, BLKmode, temp), + xinner, size, GEN_INT (align)); + if (pat != 0) + { + emit_insn (pat); + goto ret; + } } #endif |