rs6000.c (rs6000_expand_unop_builtin): Return const0_rtx instead of NULL_RTX when in error.

2002-05-30  Aldy Hernandez  <aldyh@redhat.com>

        * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
        const0_rtx instead of NULL_RTX when in error.
        (altivec_expand_abs_builtin): Same.
        (rs6000_expand_binop_builtin): Same.
        (altivec_expand_predicate_builtin): Same.
        (altivec_expand_stv_builtin): Same.
        (rs6000_expand_ternop_builtin): Same.
        (altivec_expand_builtin): Same.

From-SVN: r54054
This commit is contained in:
Aldy Hernandez 2002-05-30 12:07:10 +00:00 committed by Aldy Hernandez
parent 62a35e6088
commit 9a171fcd88
2 changed files with 25 additions and 14 deletions

View File

@ -1,3 +1,14 @@
2002-05-30 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
const0_rtx instead of NULL_RTX when in error.
(altivec_expand_abs_builtin): Same.
(rs6000_expand_binop_builtin): Same.
(altivec_expand_predicate_builtin): Same.
(altivec_expand_stv_builtin): Same.
(rs6000_expand_ternop_builtin): Same.
(altivec_expand_builtin): Same.
2002-05-29 David S. Miller <davem@redhat.com>
* rtl.h (clear_emit_caches): Delete.

View File

@ -3580,7 +3580,7 @@ rs6000_expand_unop_builtin (icode, arglist, target)
/* If we got invalid arguments bail out before generating bad rtl. */
if (arg0 == error_mark_node)
return NULL_RTX;
return const0_rtx;
switch (icode)
{
@ -3593,7 +3593,7 @@ rs6000_expand_unop_builtin (icode, arglist, target)
|| INTVAL (op0) < -0x1f)
{
error ("argument 1 must be a 5-bit signed literal");
return NULL_RTX;
return const0_rtx;
}
break;
default:
@ -3630,7 +3630,7 @@ altivec_expand_abs_builtin (icode, arglist, target)
/* If we have invalid arguments, bail out before generating bad rtl. */
if (arg0 == error_mark_node)
return NULL_RTX;
return const0_rtx;
if (target == 0
|| GET_MODE (target) != tmode
@ -3668,7 +3668,7 @@ rs6000_expand_binop_builtin (icode, arglist, target)
/* If we got invalid arguments bail out before generating bad rtl. */
if (arg0 == error_mark_node || arg1 == error_mark_node)
return NULL_RTX;
return const0_rtx;
switch (icode)
{
@ -3684,7 +3684,7 @@ rs6000_expand_binop_builtin (icode, arglist, target)
|| TREE_INT_CST_LOW (arg1) & ~0x1f)
{
error ("argument 2 must be a 5-bit unsigned literal");
return NULL_RTX;
return const0_rtx;
}
break;
default:
@ -3730,7 +3730,7 @@ altivec_expand_predicate_builtin (icode, opcode, arglist, target)
if (TREE_CODE (cr6_form) != INTEGER_CST)
{
error ("argument 1 of __builtin_altivec_predicate must be a constant");
return NULL_RTX;
return const0_rtx;
}
else
cr6_form_int = TREE_INT_CST_LOW (cr6_form);
@ -3740,7 +3740,7 @@ altivec_expand_predicate_builtin (icode, opcode, arglist, target)
/* If we have invalid arguments, bail out before generating bad rtl. */
if (arg0 == error_mark_node || arg1 == error_mark_node)
return NULL_RTX;
return const0_rtx;
if (target == 0
|| GET_MODE (target) != tmode
@ -3810,7 +3810,7 @@ altivec_expand_stv_builtin (icode, arglist)
if (arg0 == error_mark_node
|| arg1 == error_mark_node
|| arg2 == error_mark_node)
return NULL_RTX;
return const0_rtx;
if (! (*insn_data[icode].operand[2].predicate) (op0, mode2))
op0 = copy_to_mode_reg (mode2, op0);
@ -3847,7 +3847,7 @@ rs6000_expand_ternop_builtin (icode, arglist, target)
if (arg0 == error_mark_node
|| arg1 == error_mark_node
|| arg2 == error_mark_node)
return NULL_RTX;
return const0_rtx;
switch (icode)
{
@ -4104,7 +4104,7 @@ altivec_expand_builtin (exp, target, expandedp)
/* If we got invalid arguments bail out before generating bad rtl. */
if (arg0 == error_mark_node)
return NULL_RTX;
return const0_rtx;
if (! (*insn_data[icode].operand[0].predicate) (op0, mode0))
op0 = copy_to_mode_reg (mode0, op0);
@ -4126,13 +4126,13 @@ altivec_expand_builtin (exp, target, expandedp)
/* If we got invalid arguments bail out before generating bad rtl. */
if (arg0 == error_mark_node)
return NULL_RTX;
return const0_rtx;
if (TREE_CODE (arg0) != INTEGER_CST
|| TREE_INT_CST_LOW (arg0) & ~0x3)
{
error ("argument to dss must be a 2-bit unsigned literal");
return NULL_RTX;
return const0_rtx;
}
if (! (*insn_data[icode].operand[0].predicate) (op0, mode0))
@ -4161,13 +4161,13 @@ altivec_expand_builtin (exp, target, expandedp)
if (arg0 == error_mark_node
|| arg1 == error_mark_node
|| arg2 == error_mark_node)
return NULL_RTX;
return const0_rtx;
if (TREE_CODE (arg2) != INTEGER_CST
|| TREE_INT_CST_LOW (arg2) & ~0x3)
{
error ("argument to `%s' must be a 2-bit unsigned literal", d->name);
return NULL_RTX;
return const0_rtx;
}
if (! (*insn_data[d->icode].operand[0].predicate) (op0, mode0))