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_nodes.tc codegen/cg_s...


From: Klaus Treichel
Subject: [dotgnu-pnet-commits] pnet ChangeLog codegen/cg_nodes.tc codegen/cg_s...
Date: Thu, 25 Dec 2008 13:14:17 +0000

CVSROOT:        /cvsroot/dotgnu-pnet
Module name:    pnet
Changes by:     Klaus Treichel <ktreichel>      08/12/25 13:14:16

Modified files:
        .              : ChangeLog 
        codegen        : cg_nodes.tc cg_stmt.tc jv_stmt.tc 
        cscc/c         : c_stmt.tc 
        cscc/csharp    : cs_stmt.tc 

Log message:
        Add codegen nodes for memcpy and memset and IL code generation for 
these nodes
        generating cpblk or initblk opcodes.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pnet/ChangeLog?cvsroot=dotgnu-pnet&r1=1.3595&r2=1.3596
http://cvs.savannah.gnu.org/viewcvs/pnet/codegen/cg_nodes.tc?cvsroot=dotgnu-pnet&r1=1.94&r2=1.95
http://cvs.savannah.gnu.org/viewcvs/pnet/codegen/cg_stmt.tc?cvsroot=dotgnu-pnet&r1=1.47&r2=1.48
http://cvs.savannah.gnu.org/viewcvs/pnet/codegen/jv_stmt.tc?cvsroot=dotgnu-pnet&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/pnet/cscc/c/c_stmt.tc?cvsroot=dotgnu-pnet&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/pnet/cscc/csharp/cs_stmt.tc?cvsroot=dotgnu-pnet&r1=1.45&r2=1.46

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/ChangeLog,v
retrieving revision 1.3595
retrieving revision 1.3596
diff -u -b -r1.3595 -r1.3596
--- ChangeLog   24 Dec 2008 11:29:32 -0000      1.3595
+++ ChangeLog   25 Dec 2008 13:14:15 -0000      1.3596
@@ -1,3 +1,16 @@
+2008-12-25  Klaus Treichel  <address@hidden>
+
+       * codegen/cg_nodes.tc: Define the new nodetypes ILNode_Memcpy and
+       ILNode_Memset for memcpy and memset.
+
+       * codegen/cg_stmt.tc: Add discard methods for the new node types which
+       generates cpblk for ILNode_Memcpy and initblk for ILNode_Memset.
+
+       * codegen/jv_stmt.tc: Stub out JavaGenDiscard for the new node types.
+
+       * cscc/c/c_stmt.tc, cscc/csharp/cs_stmt.tc: Add the functions for 
semantic
+       analysis for the new node types.
+
 2008-12-24  Klaus Treichel  <address@hidden>
 
        * engine/lib_helpers.c (_IL_RuntimeHelpers_InternalOffsetToStringData):
@@ -18,7 +31,7 @@
        pointer and vice versa.
 
        * codegen/cg_coerce.c (GetUnsafeConvertRules): Allow cast from managed
-       pointer to umpanaged pointer in a fixed statement for the address of
+       pointer to unmanaged pointer in a fixed statement for the address of
        operator.
 
        * codegen/cg_decls.tc (DumpILLocals): Dump locals including prefixes.

Index: codegen/cg_nodes.tc
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/codegen/cg_nodes.tc,v
retrieving revision 1.94
retrieving revision 1.95
diff -u -b -r1.94 -r1.95
--- codegen/cg_nodes.tc 14 Dec 2008 13:03:35 -0000      1.94
+++ codegen/cg_nodes.tc 25 Dec 2008 13:14:16 -0000      1.95
@@ -638,6 +638,20 @@
        ILNode *thenClause;
        ILNode *elseClause;
 }
+%node ILNode_Memcpy ILNode_Statement =
+{
+       ILNode *destExpr;
+       ILNode *srcExpr;
+       ILNode *sizeExpr;
+       ILUInt8 align;
+}
+%node ILNode_Memset ILNode_Statement =
+{
+       ILNode *addrExpr;
+       ILNode *valueExpr;
+       ILNode *sizeExpr;
+       ILUInt8 align;
+}
 %node ILNode_LabelledStatement ILNode_Statement %abstract =
 {
        %nocreate const char *name = {0};
@@ -679,6 +693,7 @@
        unsigned long varIndex;
        ILMachineType varType;
 }
+
 %node ILNode_EmptyExpr ILNode_Expression=
 {
        ILMachineType type;

Index: codegen/cg_stmt.tc
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/codegen/cg_stmt.tc,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- codegen/cg_stmt.tc  1 Jun 2007 11:08:50 -0000       1.47
+++ codegen/cg_stmt.tc  25 Dec 2008 13:14:16 -0000      1.48
@@ -2612,3 +2612,37 @@
                ILGenAdjust(info, -1);
        }
 }
+
+/*
+ * Generate discard code for a memcpy statement.
+ */
+ILNode_GenDiscard(ILNode_Memcpy)
+{
+       ILNode_GenValue(node->destExpr, info);
+       ILNode_GenValue(node->srcExpr, info);
+       ILNode_GenValue(node->sizeExpr, info);
+       if(node->align)
+       {
+               ILGenByteInsn(info, IL_OP_PREFIX + IL_PREFIX_OP_UNALIGNED,
+                                         node->align);
+       }
+       ILGenSimple(info, IL_OP_PREFIX + IL_PREFIX_OP_CPBLK);
+       ILGenAdjust(info, -3);
+}
+
+/*
+ * Generate discard code for a memset statement.
+ */
+ILNode_GenDiscard(ILNode_Memset)
+{
+       ILNode_GenValue(node->addrExpr, info);
+       ILNode_GenValue(node->valueExpr, info);
+       ILNode_GenValue(node->sizeExpr, info);
+       if(node->align)
+       {
+               ILGenByteInsn(info, IL_OP_PREFIX + IL_PREFIX_OP_UNALIGNED,
+                                         node->align);
+       }
+       ILGenSimple(info, IL_OP_PREFIX + IL_PREFIX_OP_INITBLK);
+       ILGenAdjust(info, -3);
+}

Index: codegen/jv_stmt.tc
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/codegen/jv_stmt.tc,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- codegen/jv_stmt.tc  1 Jun 2007 11:08:51 -0000       1.21
+++ codegen/jv_stmt.tc  25 Dec 2008 13:14:16 -0000      1.22
@@ -1780,3 +1780,19 @@
                JavaGenAdjust(info, -1);
        }
 }
+
+/*
+ * Generate discard code for a memcpy statement.
+ */
+JavaGenDiscard(ILNode_Memcpy)
+{
+       /* TODO */
+}
+
+/*
+ * Generate discard code for a memset statement.
+ */
+JavaGenDiscard(ILNode_Memset)
+{
+       /* TODO */
+}

Index: cscc/c/c_stmt.tc
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/c/c_stmt.tc,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- cscc/c/c_stmt.tc    5 May 2007 15:56:41 -0000       1.14
+++ cscc/c/c_stmt.tc    25 Dec 2008 13:14:16 -0000      1.15
@@ -1475,3 +1475,22 @@
        return CSemValueDefault;
 }
 
+/*
+ * Perform semantic analysis for a memcpy statement.
+ */
+ILNode_CSemAnalysis(ILNode_Memcpy)
+{
+       /* Nothing to do here: this node is generated during semantic
+          analysis of an invokation expression */
+       return CSemValueDefault;
+}
+
+/*
+ * Perform semantic analysis for a memset statement.
+ */
+ILNode_CSemAnalysis(ILNode_Memset)
+{
+       /* Nothing to do here: this node is generated during semantic
+          analysis of an invokation expression */
+       return CSemValueDefault;
+}

Index: cscc/csharp/cs_stmt.tc
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csharp/cs_stmt.tc,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -b -r1.45 -r1.46
--- cscc/csharp/cs_stmt.tc      23 Dec 2008 13:31:15 -0000      1.45
+++ cscc/csharp/cs_stmt.tc      25 Dec 2008 13:14:16 -0000      1.46
@@ -2051,6 +2051,26 @@
 }
 
 /*
+ * Perform semantic analysis for a memcpy statement.
+ */
+ILNode_SemAnalysis(ILNode_Memcpy)
+{
+       /* Nothing to do here: this node is generated during semantic
+          analysis of an invokation expression */
+       return CSSemValueDefault;
+}
+
+/*
+ * Perform semantic analysis for a memset statement.
+ */
+ILNode_SemAnalysis(ILNode_Memset)
+{
+       /* Nothing to do here: this node is generated during semantic
+          analysis of an invokation expression */
+       return CSSemValueDefault;
+}
+
+/*
  * This is ILNode_LocalVarDeclaration's copy ,except for the fact that
  * all nodes are replaced with ILNode_LocVar after SemAnalysis.
  */




reply via email to

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