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

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

[dotgnu-pnet-commits] pnet ChangeLog codegen/cg_logical.tc


From: Klaus Treichel
Subject: [dotgnu-pnet-commits] pnet ChangeLog codegen/cg_logical.tc
Date: Sat, 12 Jul 2008 11:38:34 +0000

CVSROOT:        /cvsroot/dotgnu-pnet
Module name:    pnet
Changes by:     Klaus Treichel <ktreichel>      08/07/12 11:38:33

Modified files:
        .              : ChangeLog 
        codegen        : cg_logical.tc 

Log message:
        Change the code generated for a logical not to a branchless solution.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pnet/ChangeLog?cvsroot=dotgnu-pnet&r1=1.3541&r2=1.3542
http://cvs.savannah.gnu.org/viewcvs/pnet/codegen/cg_logical.tc?cvsroot=dotgnu-pnet&r1=1.4&r2=1.5

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/ChangeLog,v
retrieving revision 1.3541
retrieving revision 1.3542
diff -u -b -r1.3541 -r1.3542
--- ChangeLog   10 Jul 2008 08:24:19 -0000      1.3541
+++ ChangeLog   12 Jul 2008 11:38:33 -0000      1.3542
@@ -1,3 +1,9 @@
+2008-07-12  Klaus Treichel  <address@hidden>
+
+       * codegen/cg_logical.tc (ILNode_GenValue(ILNode_LogicalNot)): Change the
+       code generated for a logical NOT from solution with branches to a simple
+       GenValue(expr); ldc.i4.1: xor;.
+
 2008-07-10  Klaus Treichel  <address@hidden>
 
        * support/pt_defs.h (_ILSemaphoreWait): Retry sem_wait in the case the

Index: codegen/cg_logical.tc
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/codegen/cg_logical.tc,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- codegen/cg_logical.tc       10 May 2002 02:39:02 -0000      1.4
+++ codegen/cg_logical.tc       12 Jul 2008 11:38:33 -0000      1.5
@@ -49,15 +49,11 @@
  */
 ILNode_GenValue(ILNode_LogicalNot)
 {
-       ILLabel label1 = ILLabel_Undefined;
-       ILLabel label2 = ILLabel_Undefined;
-       ILNode_GenThen(node->expr, info, &label1);
+       ILNode_GenValue(node->expr, info);
        ILGenSimple(info, IL_OP_LDC_I4_1);
-       ILGenJump(info, IL_OP_BR, &label2);
-       ILGenLabel(info, &label1);
-       ILGenSimple(info, IL_OP_LDC_I4_0);
-       ILGenLabel(info, &label2);
        ILGenAdjust(info, 1);
+       ILGenSimple(info, IL_OP_XOR);
+       ILGenAdjust(info, -1);
        return ILMachineType_Boolean;
 }
 




reply via email to

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