aboutsummaryrefslogtreecommitdiff
path: root/gcc/genrecog.c
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-10-20 07:51:30 +0000
committerRichard Stallman <rms@gnu.org>1992-10-20 07:51:30 +0000
commit71bde1f321ed9cb0e5c8289a95bb5d4bce502413 (patch)
treea66cf10c5b7dd4a9e4209f6e84fc84088ea6aada /gcc/genrecog.c
parentd3c738e1ce76595c6cd939e090f6c09737c49f58 (diff)
downloadgcc-71bde1f321ed9cb0e5c8289a95bb5d4bce502413.zip
gcc-71bde1f321ed9cb0e5c8289a95bb5d4bce502413.tar.gz
gcc-71bde1f321ed9cb0e5c8289a95bb5d4bce502413.tar.bz2
(write_tree): For type SPLIT, check subroutine return
values for non-zero value not positive value. From-SVN: r2523
Diffstat (limited to 'gcc/genrecog.c')
-rw-r--r--gcc/genrecog.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/genrecog.c b/gcc/genrecog.c
index d8b64a3..a247e2e 100644
--- a/gcc/genrecog.c
+++ b/gcc/genrecog.c
@@ -1521,7 +1521,10 @@ write_tree (tree, prevpos, afterward, initial, type)
{
printf (" tem = %s_%d (x0, insn%s);\n",
name_prefix, tree->subroutine_number, call_suffix);
- printf (" if (tem >= 0) return tem;\n");
+ if (type == SPLIT)
+ printf (" if (tem != 0) return tem;\n");
+ else
+ printf (" if (tem >= 0) return tem;\n");
change_state (tree->position, afterward->position, 2);
printf (" goto L%d;\n", afterward->number);
}