From: Richard Kenner Date: Sat, 26 Mar 1994 01:17:04 +0000 (-0500) Subject: i386.md (movhi, movqi): Properly recognized unsigned forms of -1 for X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c64ca3e9bebaad7cb5d47fb8891ec782788b1aef;p=gcc.git i386.md (movhi, movqi): Properly recognized unsigned forms of -1 for dec[bw] insns. From-SVN: r6909 --- 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);