From c64ca3e9bebaad7cb5d47fb8891ec782788b1aef Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Fri, 25 Mar 1994 20:17:04 -0500 Subject: [PATCH] i386.md (movhi, movqi): Properly recognized unsigned forms of -1 for dec[bw] insns. From-SVN: r6909 --- gcc/config/i386/i386.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 5a87914ecf3..500fbbd475a 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -1,5 +1,5 @@ ;; GCC machine description for Intel 80386. -;; Copyright (C) 1988 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1994 Free Software Foundation, Inc. ;; Mostly by William Schelter. ;; This file is part of GNU CC. @@ -2103,23 +2103,24 @@ && GET_CODE (operands[2]) == CONST_INT && (INTVAL (operands[2]) & 0xff) == 0) { + int byteval = (INTVAL (operands[2]) >> 8) & 0xff; CC_STATUS_INIT; - operands[2] = GEN_INT ((INTVAL (operands[2]) >> 8) & 0xff); - - if (operands[2] == const1_rtx) + if (byteval == 1) return AS1 (inc%B0,%h0); - - if (operands[2] == constm1_rtx) + else if (byteval == 255) return AS1 (dec%B0,%h0); + operands[2] = GEN_INT (byteval); return AS2 (add%B0,%2,%h0); } if (operands[2] == const1_rtx) return AS1 (inc%W0,%0); - if (operands[2] == constm1_rtx) + if (operands[2] == constm1_rtx + || (GET_CODE (operands[2]) == CONST_INT + && INTVAL (operands[2]) == 65535)) return AS1 (dec%W0,%0); return AS2 (add%W0,%2,%0); @@ -2135,7 +2136,9 @@ if (operands[2] == const1_rtx) return AS1 (inc%B0,%0); - if (operands[2] == constm1_rtx) + if (operands[2] == constm1_rtx + || (GET_CODE (operands[2]) == CONST_INT + && INTVAL (operands[2]) == 255)) return AS1 (dec%B0,%0); return AS2 (add%B0,%2,%0); -- 2.30.2