From: rearnsha Date: Tue, 22 Oct 2019 13:16:42 +0000 (+0000) Subject: [arm] make arm_carry_operation and arm_borrow_operation duals X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b80bc224a5bf7c1ac0ee575bf6fb1031e4d90ac0;p=thirdparty%2Fgcc.git [arm] make arm_carry_operation and arm_borrow_operation duals Arm_carry_operation and arm_borrow_operation are duals: given that we have a comparison that returns a result that relies solely in the carry flag one is the inverse of the other. So there's no reason for one to have a CC mode that the other does not have. This patch restores that equivalence. * config/arm/predicates.md (arm_borrow_operation): Handle CC_ADCmode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277289 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f8cfef705083..e80bb1773872 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2019-10-22 Richard Earnshaw + + * config/arm/predicates.md (arm_borrow_operation): Handle CC_ADCmode. + 2019-10-22 Richard Biener PR tree-optimization/92173 diff --git a/gcc/config/arm/predicates.md b/gcc/config/arm/predicates.md index 8a8f10ccb501..267c446c03e8 100644 --- a/gcc/config/arm/predicates.md +++ b/gcc/config/arm/predicates.md @@ -398,7 +398,7 @@ machine_mode ccmode = GET_MODE (op0); if (ccmode == CC_Cmode) return GET_CODE (op) == GEU; - else if (ccmode == CCmode || ccmode == CC_RSBmode) + else if (ccmode == CCmode || ccmode == CC_RSBmode || ccmode == CC_ADCmode) return GET_CODE (op) == LTU; return false; }