diff options
author | Doug Gilbert <dgilbert@us.ibm.com> | 2015-06-19 13:18:40 -0500 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2016-08-15 11:45:09 -0500 |
commit | 1098bd0e394528f8fcb6cd1e66c5e90d69cbdd29 (patch) | |
tree | cbf3f42417139b832bfe1b519040814bd3ea7df2 | |
parent | b54c77d183230dd349dee89e779e49dc3266b2a3 (diff) | |
download | ppe42-gcc-1098bd0e394528f8fcb6cd1e66c5e90d69cbdd29.tar.gz ppe42-gcc-1098bd0e394528f8fcb6cd1e66c5e90d69cbdd29.zip |
Fix where signed compare should be unsigned compare
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 21 |
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 { |