[Top][All Lists]
[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.
*/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [dotgnu-pnet-commits] pnet ChangeLog codegen/cg_nodes.tc codegen/cg_s...,
Klaus Treichel <=