summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/optabs.c
diff options
context:
space:
mode:
authorkan <kan@FreeBSD.org>2003-08-22 02:56:07 +0000
committerkan <kan@FreeBSD.org>2003-08-22 02:56:07 +0000
commit08db0e4d745472adc9c30de407304713c78e950e (patch)
treeaa86de970d24a76b30b53157cf41e9d09ffe4d51 /contrib/gcc/optabs.c
parent7b704871fdac058719f34a1e6b9de71ee76c5be4 (diff)
downloadFreeBSD-src-08db0e4d745472adc9c30de407304713c78e950e.zip
FreeBSD-src-08db0e4d745472adc9c30de407304713c78e950e.tar.gz
Gcc 3.3.1-release.
Diffstat (limited to 'contrib/gcc/optabs.c')
-rw-r--r--contrib/gcc/optabs.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/contrib/gcc/optabs.c b/contrib/gcc/optabs.c
index c9eb3e6..d4eb640 100644
--- a/contrib/gcc/optabs.c
+++ b/contrib/gcc/optabs.c
@@ -3532,7 +3532,12 @@ prepare_operand (icode, x, opnum, mode, wider_mode, unsignedp)
if (! (*insn_data[icode].operand[opnum].predicate)
(x, insn_data[icode].operand[opnum].mode))
- x = copy_to_mode_reg (insn_data[icode].operand[opnum].mode, x);
+ {
+ if (no_new_pseudos)
+ return NULL_RTX;
+ x = copy_to_mode_reg (insn_data[icode].operand[opnum].mode, x);
+ }
+
return x;
}
@@ -5483,7 +5488,12 @@ gen_cond_trap (code, op1, op2, tcode)
start_sequence ();
op1 = prepare_operand (icode, op1, 0, mode, mode, 0);
- op2 = prepare_operand (icode, op2, 0, mode, mode, 0);
+ op2 = prepare_operand (icode, op2, 1, mode, mode, 0);
+ if (!op1 || !op2)
+ {
+ end_sequence ();
+ return 0;
+ }
emit_insn (GEN_FCN (icode) (op1, op2));
PUT_CODE (trap_rtx, code);
OpenPOWER on IntegriCloud