From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9201 invoked by alias); 7 Jun 2003 10:21:07 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 8889 invoked from network); 7 Jun 2003 10:21:00 -0000 Received: from unknown (HELO talisman.cambridge.redhat.com) (213.86.99.237) by sources.redhat.com with SMTP; 7 Jun 2003 10:21:00 -0000 Received: (from rsandifo@localhost) by talisman.cambridge.redhat.com (8.11.6/8.11.6) id h57AIZX22491; Sat, 7 Jun 2003 11:18:35 +0100 X-Authentication-Warning: talisman.cambridge.redhat.com: rsandifo set sender to rsandifo@redhat.com using -f To: gdb-patches@sources.redhat.com Subject: [mips sim]: Fix check for negative dmult operands From: Richard Sandiford Date: Sat, 07 Jun 2003 10:21:00 -0000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2003-06/txt/msg00257.txt.bz2 do_dmultx tests for negative operands with: if (op1 < 0) { op1 = - op1; ++sign; } if (op2 < 0) { op2 = - op2; ++sign; } but op1 and op2 are unsigned... The patch below fixes some gcc.c-torture/execute/950426-2.c failures on mipsisa64-elf. Please install if OK. Richard * mips.igen (do_dmultx): Fix check for negative operands. Index: sim/mips/mips.igen =================================================================== RCS file: /cvs/src/src/sim/mips/mips.igen,v retrieving revision 1.53 diff -u -d -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.53 mips.igen --- sim/mips/mips.igen 14 Jan 2003 19:01:41 -0000 1.53 +++ sim/mips/mips.igen 7 Jun 2003 10:14:00 -0000 @@ -1347,12 +1350,12 @@ 000000,5.RS,5.RT,0000000000,011011:SPECI sign = 0; if (signed_p) { - if (op1 < 0) + if ((signed64) op1 < 0) { op1 = - op1; ++sign; } - if (op2 < 0) + if ((signed64) op2 < 0) { op2 = - op2; ++sign;