From: Paul Brook Date: Tue, 12 Oct 2004 13:56:03 +0000 (+0000) Subject: arm.md (addsi3_cbranch_scratch): Correct constraints. X-Git-Tag: releases/gcc-4.0.0~4110 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b49e92fea26d4644fa5b2ab193dd29400de333d7;p=thirdparty%2Fgcc.git arm.md (addsi3_cbranch_scratch): Correct constraints. * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints. Handle negative constants. From-SVN: r88929 --- diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index 13e81e495edc..86113e7135e9 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -6417,7 +6417,7 @@ (match_operator 3 "comparison_operator" [(plus:SI (match_operand:SI 1 "s_register_operand" "%l,l,l,0") - (match_operand:SI 2 "reg_or_int_operand" "J,l,I,L")) + (match_operand:SI 2 "reg_or_int_operand" "J,l,L,IJ")) (const_int 0)]) (label_ref (match_operand 4 "" "")) (pc))) @@ -6438,10 +6438,16 @@ output_asm_insn (\"cmn\t%1, %2\", operands); break; case 2: - output_asm_insn (\"add\t%0, %1, %2\", operands); + if (INTVAL (operands[2]) < 0) + output_asm_insn (\"sub\t%0, %1, %2\", operands); + else + output_asm_insn (\"add\t%0, %1, %2\", operands); break; case 3: - output_asm_insn (\"add\t%0, %0, %2\", operands); + if (INTVAL (operands[2]) < 0) + output_asm_insn (\"sub\t%0, %0, %2\", operands); + else + output_asm_insn (\"add\t%0, %0, %2\", operands); break; }