This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [mips sim]: Fix check for negative dmult operands


Ping?

Richard Sandiford <rsandifo@redhat.com> writes:

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.

(I'm not ment to be maintaing MIPS sim any more :-)


Yes, just add a comment reminding the reader that op1 is already 64 bits.

Andrew


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;





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]