summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Gilbert <dgilbert@us.ibm.com>2015-06-19 13:18:40 -0500
committerPatrick Williams <patrick@stwcx.xyz>2016-08-15 11:45:09 -0500
commit1098bd0e394528f8fcb6cd1e66c5e90d69cbdd29 (patch)
treecbf3f42417139b832bfe1b519040814bd3ea7df2
parentb54c77d183230dd349dee89e779e49dc3266b2a3 (diff)
downloadppe42-gcc-1098bd0e394528f8fcb6cd1e66c5e90d69cbdd29.tar.gz
ppe42-gcc-1098bd0e394528f8fcb6cd1e66c5e90d69cbdd29.zip
Fix where signed compare should be unsigned compare
-rw-r--r--gcc/config/rs6000/rs6000.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index a1442c9453d..1ada02f42a4 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -19217,21 +19217,26 @@ output_fused_cbranch (rtx operands[], const char *label, rtx insn)
case UNEQ:
ccode = "eq";
break;
- case GE:
case GEU:
+ logical = "l";
+ case GE:
ccode = "ge";
break;
- case GT:
case GTU:
+ logical = "l";
+ case GT:
case UNGT:
ccode = "gt";
break;
- case LE:
case LEU:
+ logical = "l";
+ case LE:
ccode = "le";
break;
+ case LTU:
+ logical = "l";
case LT:
- case LTU: case UNLT:
+ case UNLT:
ccode = "lt";
break;
default:
@@ -19239,17 +19244,11 @@ output_fused_cbranch (rtx operands[], const char *label, rtx insn)
}
// Set immediate
- // Can't do unsigned(logical) compare on immediate
if(GET_CODE (operands[3]) == CONST_INT)
{
op3 = INTVAL(operands[3]);
immed = "i";
- }
- else if( unsigned_reg_p (operands[2]) &&
- unsigned_reg_p (operands[3]))
- {
- logical = "l";
- op3 = REGNO(operands[3]);
+ logical = ""; // There is no cmplwib.. instruction in PPE42
}
else
{
OpenPOWER on IntegriCloud