From d8ef43f1294bee0856bc5270656d84a217bc138f Mon Sep 17 00:00:00 2001 From: kudzu_cp <6d05c8c8ef5431987001abfdb2eadc9593ac9498> Date: Sat, 25 Jul 2009 03:47:06 +0000 Subject: [PATCH] --- source2/IL2PCU/Cosmos.IL2CPU/ILScanner.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/source2/IL2PCU/Cosmos.IL2CPU/ILScanner.cs b/source2/IL2PCU/Cosmos.IL2CPU/ILScanner.cs index 9bf1f9b6a..e8e958a92 100644 --- a/source2/IL2PCU/Cosmos.IL2CPU/ILScanner.cs +++ b/source2/IL2PCU/Cosmos.IL2CPU/ILScanner.cs @@ -116,14 +116,17 @@ namespace Cosmos.IL2CPU { } else { xCtor = mILOpsHi[xOpCodeVal & 0xFF]; } - // TODO: Remove this if when all shortcut expansions are working again + // TODO: Remove this if when all shortcut expansions are completed if (xCtor != null) { var xILOp = xCtor.Invoke(new object[] { xOpCode }); // What to pass to execute? Passing whole scanner may be inappropriate // Op needs info about branch targets for example - // are all branches within method? Maybe ILOpCode can include offset and - // ILOp can reconcile from that and no need to pass anything? - //xILOp.Execute(this); + // are all branches within method? + //inherited execute in ILOpX6 for example can emit this label + // MethodLabel + offset since we will need method labels anyways. Method label + // can be based on a UID generated by our compiler. ie 32 bits of UID + 32 bits offset + // UInt64 xUID = xMethodID << 32 | xOffset + //xILOp.Execute(xUID); } } }