summaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-12-11 16:26:05 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-12-11 16:26:05 +0000
commit271a849987a2fcc3055bb7bfbf250704e1c7abba (patch)
tree14ba3dfecebffb68f2afc7348224d403c74620f6 /gcc/combine.c
parent4207de9361b3bbbd54b511a73bb801e46e05a7f9 (diff)
downloadgcc-271a849987a2fcc3055bb7bfbf250704e1c7abba.tar.gz
Another handful of gcc-2.8 changes (will it ever go out the door?).
See ChangeLog.11 for details. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17040 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/combine.c')
-rw-r--r--gcc/combine.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index 13e22b9bcd2..339c94943cd 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -4092,13 +4092,15 @@ simplify_rtx (x, op0_mode, last, in_dest)
case XOR:
return simplify_logical (x, last);
- case ABS:
+ case ABS:
/* (abs (neg <foo>)) -> (abs <foo>) */
if (GET_CODE (XEXP (x, 0)) == NEG)
SUBST (XEXP (x, 0), XEXP (XEXP (x, 0), 0));
- if (GET_CODE (XEXP (x, 0)) == ASM_OPERANDS)
- return x;
+ /* If the mode of the operand is VOIDmode (i.e. if it is ASM_OPERANDS),
+ do nothing. */
+ if (GET_MODE (XEXP (x, 0)) == VOIDmode)
+ break;
/* If operand is something known to be positive, ignore the ABS. */
if (GET_CODE (XEXP (x, 0)) == FFS || GET_CODE (XEXP (x, 0)) == ABS