dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dotgnu-pnet-commits] pnet ChangeLog engine/cvmc_branch.c


From: Klaus Treichel
Subject: [dotgnu-pnet-commits] pnet ChangeLog engine/cvmc_branch.c
Date: Sun, 20 Jul 2008 12:15:03 +0000

CVSROOT:        /cvsroot/dotgnu-pnet
Module name:    pnet
Changes by:     Klaus Treichel <ktreichel>      08/07/20 12:15:03

Modified files:
        .              : ChangeLog 
        engine         : cvmc_branch.c 

Log message:
        Fix handling of unordered float compares in cvm coder (Fix result for 
NaN values).

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pnet/ChangeLog?cvsroot=dotgnu-pnet&r1=1.3544&r2=1.3545
http://cvs.savannah.gnu.org/viewcvs/pnet/engine/cvmc_branch.c?cvsroot=dotgnu-pnet&r1=1.14&r2=1.15

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/ChangeLog,v
retrieving revision 1.3544
retrieving revision 1.3545
diff -u -b -r1.3544 -r1.3545
--- ChangeLog   20 Jul 2008 10:17:14 -0000      1.3544
+++ ChangeLog   20 Jul 2008 12:15:01 -0000      1.3545
@@ -5,6 +5,8 @@
        (JITCoder_Compare): Handle the unsigned/unordered check opcodes 
correctly
        for float values (Fixes result for NaN values).
        
+       * engine/cvmc_branch.c (CVMCoder_Branch, CVMCoder_Compare): likewise.
+       
 2008-07-14  Klaus Treichel  <address@hidden>
 
        * engine/verify_branch.c (IL_PREFIX_OP_CEQ): Look for a following

Index: engine/cvmc_branch.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/cvmc_branch.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- engine/cvmc_branch.c        7 Oct 2007 19:20:11 -0000       1.14
+++ engine/cvmc_branch.c        20 Jul 2008 12:15:02 -0000      1.15
@@ -363,10 +363,10 @@
                case IL_OP_BGT_UN:
                case IL_OP_BGT_UN_S:
                {
-                       /* Unsigned greater than testing branch */
+                       /* Unsigned/unordered greater than testing branch */
                        AdjustMixedBinary(coder, 1, &type1, &type2);
                        OutputCondBranch(coder, COP_BGT_UN, COP_PREFIX_LCMP_UN,
-                                                        COP_PREFIX_FCMPL, 
COP_BGT, type1, dest);
+                                                        COP_PREFIX_FCMPG, 
COP_BGT, type1, dest);
                }
                break;
 
@@ -383,10 +383,10 @@
                case IL_OP_BGE_UN:
                case IL_OP_BGE_UN_S:
                {
-                       /* Unsigned greater than or equal testing branch */
+                       /* Unsigned/unordered greater than or equal testing 
branch */
                        AdjustMixedBinary(coder, 1, &type1, &type2);
                        OutputCondBranch(coder, COP_BGE_UN, COP_PREFIX_LCMP_UN,
-                                                        COP_PREFIX_FCMPL, 
COP_BGE, type1, dest);
+                                                        COP_PREFIX_FCMPG, 
COP_BGE, type1, dest);
                }
                break;
 
@@ -403,10 +403,10 @@
                case IL_OP_BLT_UN:
                case IL_OP_BLT_UN_S:
                {
-                       /* Unsigned less than testing branch */
+                       /* Unsigned/unordered less than testing branch */
                        AdjustMixedBinary(coder, 1, &type1, &type2);
                        OutputCondBranch(coder, COP_BLT_UN, COP_PREFIX_LCMP_UN,
-                                                        COP_PREFIX_FCMPG, 
COP_BLT, type1, dest);
+                                                        COP_PREFIX_FCMPL, 
COP_BLT, type1, dest);
                }
                break;
 
@@ -423,10 +423,10 @@
                case IL_OP_BLE_UN:
                case IL_OP_BLE_UN_S:
                {
-                       /* Unsigned less than or equal testing branch */
+                       /* Unsigned/unordered less than or equal testing branch 
*/
                        AdjustMixedBinary(coder, 1, &type1, &type2);
                        OutputCondBranch(coder, COP_BLE_UN, COP_PREFIX_LCMP_UN,
-                                                        COP_PREFIX_FCMPG, 
COP_BLE, type1, dest);
+                                                        COP_PREFIX_FCMPL, 
COP_BLE, type1, dest);
                }
                break;
        }
@@ -585,10 +585,10 @@
 
                case IL_OP_PREFIX + IL_PREFIX_OP_CGT_UN:
                {
-                       /* Test two unsigned values for greater than */
+                       /* Test two unsigned/unordered values for greater than 
*/
                        AdjustMixedBinary(coder, 0, &type1, &type2);
                        OutputCondCompare(coder, COP_PREFIX_ICMP_UN, 
COP_PREFIX_LCMP_UN,
-                                                         COP_PREFIX_FCMPL, 
COP_PREFIX_FCMPG,
+                                                         COP_PREFIX_FCMPG, 
COP_PREFIX_FCMPG,
                                                          COP_PREFIX_SETGT, 
COP_PREFIX_SETLE,
                                                          type1, invertTest);
                }
@@ -607,10 +607,10 @@
 
                case IL_OP_PREFIX + IL_PREFIX_OP_CLT_UN:
                {
-                       /* Test two unsigned values for less than */
+                       /* Test two unsigned/unordered values for less than */
                        AdjustMixedBinary(coder, 0, &type1, &type2);
                        OutputCondCompare(coder, COP_PREFIX_ICMP_UN, 
COP_PREFIX_LCMP_UN,
-                                                         COP_PREFIX_FCMPG, 
COP_PREFIX_FCMPL,
+                                                         COP_PREFIX_FCMPL, 
COP_PREFIX_FCMPL,
                                                          COP_PREFIX_SETLT, 
COP_PREFIX_SETGE,
                                                          type1, invertTest);
                }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]