From patchwork Tue Nov 9 01:11:33 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Koning X-Patchwork-Id: 70483 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 7F667B6F14 for ; Tue, 9 Nov 2010 12:11:42 +1100 (EST) Received: (qmail 17977 invoked by alias); 9 Nov 2010 01:11:41 -0000 Received: (qmail 17969 invoked by uid 22791); 9 Nov 2010 01:11:40 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL, BAYES_00, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from ausxipps301.us.dell.com (HELO ausxipps301.us.dell.com) (143.166.148.223) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 09 Nov 2010 01:11:36 +0000 X-Loopcount0: from 10.152.240.141 From: Paul Koning Subject: [PATCH] pdp11: fix wrong code Date: Mon, 8 Nov 2010 20:11:33 -0500 Message-Id: <70885C3C-1D35-4F79-AD6D-E616917F5397@dell.com> To: gcc-patches Mime-Version: 1.0 (Apple Message framework v1081) Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org This patch fixes wrong assembly output for negsi2 (incorrect carry propagation from low to high half). Tested by build and inspection of output. Committed. paul ChangeLog: 2010-11-08 Paul Koning * config/pdp11/pdp11.md (negsi2): Fix wrong code. Index: config/pdp11/pdp11.md =================================================================== --- config/pdp11/pdp11.md (revision 166433) +++ config/pdp11/pdp11.md (working copy) @@ -1091,9 +1091,8 @@ lateoperands[1] = operands[1]; operands[1] = gen_rtx_REG (HImode, REGNO (operands[1]) + 1); - output_asm_insn (\"com %0\", operands); output_asm_insn (\"com %0\", lateoperands); - output_asm_insn (\"inc %0\", operands); + output_asm_insn (\"neg %0\", operands); output_asm_insn (\"adc %0\", lateoperands); return \"\";