mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-19 12:30:32 +00:00
This separation allows don't pay penalty for each insert during compilation phase. Indexes created at the last step of the compilation process. For profiler application indexes created together with tables.
36 lines
1.1 KiB
C#
36 lines
1.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace Cosmos.IL2CPU.Profiler {
|
|
public class Assembler : Cosmos.IL2CPU.AppAssembler
|
|
{
|
|
|
|
public Assembler(string assemblerLogFile)
|
|
: base(0, assemblerLogFile)
|
|
{
|
|
}
|
|
|
|
protected override void InitILOps(Type aAssemblerBaseOp)
|
|
{
|
|
var xILOp = new ILOp(this.Assembler);
|
|
DebugInfo = new Debug.Common.DebugInfo(AppDomain.CurrentDomain.BaseDirectory + "DebugInfo.mdf", true, true);
|
|
// Don't change the type in the foreach to a var, its necessary as it is now
|
|
// to typecast it, so we can then recast to an int.
|
|
foreach (ILOpCode.Code xCode in Enum.GetValues(typeof(ILOpCode.Code)))
|
|
{
|
|
int xCodeValue = (int)xCode;
|
|
if (xCodeValue <= 0xFF)
|
|
{
|
|
mILOpsLo[xCodeValue] = xILOp;
|
|
}
|
|
else
|
|
{
|
|
mILOpsHi[xCodeValue & 0xFF] = xILOp;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|