Scans additional types again.

This commit is contained in:
kudzu_cp 2009-07-26 00:17:49 +00:00
parent 5c03d86d49
commit f9b89c3e80

View file

@ -107,6 +107,7 @@ namespace Cosmos.IL2CPU {
if (xOpCode is ILOpCodes.OpMethod) { if (xOpCode is ILOpCodes.OpMethod) {
QueueMethod(((ILOpCodes.OpMethod)xOpCode).Value); QueueMethod(((ILOpCodes.OpMethod)xOpCode).Value);
} else if (xOpCode is ILOpCodes.OpType) { } else if (xOpCode is ILOpCodes.OpType) {
QueueType(((ILOpCodes.OpType)xOpCode).Value);
} }
ConstructorInfo xCtor; ConstructorInfo xCtor;
@ -116,18 +117,15 @@ namespace Cosmos.IL2CPU {
} else { } else {
xCtor = mILOpsHi[xOpCodeVal & 0xFF]; xCtor = mILOpsHi[xOpCodeVal & 0xFF];
} }
// TODO: Remove this if when all shortcut expansions are completed var xILOp = xCtor.Invoke(new object[] { xOpCode });
if (xCtor != null) { // What to pass to Execute method? Passing whole scanner is inappropriate
var xILOp = xCtor.Invoke(new object[] { xOpCode }); // Op needs info about branch targets for example
// What to pass to Execute method? Passing whole scanner is inappropriate // are all branches within method?
// Op needs info about branch targets for example //inherited execute in ILOpX6 for example can emit this label
// are all branches within method? // MethodLabel + offset since we will need method labels anyways. Method label
//inherited execute in ILOpX6 for example can emit this label // can be based on a UID generated by our compiler. ie 32 bits of UID + 32 bits offset
// MethodLabel + offset since we will need method labels anyways. Method label // UInt64 xUID = xMethodID << 32 | xOffset
// can be based on a UID generated by our compiler. ie 32 bits of UID + 32 bits offset //xILOp.Execute(xUID);
// UInt64 xUID = xMethodID << 32 | xOffset
//xILOp.Execute(xUID);
}
} }
} }
} }