public CfgNodeCompiler(CfgNode cfgNode) { m_cppBuilder = cfgNode.CfgBuilder.CppBuilder; m_commonTypeLookup = new CommonTypeLookup(m_cppBuilder); m_cfgNode = cfgNode; m_ehRegion = cfgNode.CfgBuilder.Region; m_escapePaths = new SortedSet<uint>(); m_temporaries = cfgNode.CfgBuilder.Temporaries; }
private static MidInstruction.ArithEnum ArithModeForShiftOp(CommonTypeLookup lookup, CLRTypeSpec ls, CLRTypeSpec rs) { // III.6 if (ls.Equals(lookup.I32)) { if (rs.Equals(lookup.I32)) return MidInstruction.ArithEnum.ArithType_Int32; throw new ArgumentException(); } if (ls.Equals(lookup.I64)) { if (rs.Equals(lookup.I64)) return MidInstruction.ArithEnum.ArithType_Int64; if (rs.Equals(lookup.I)) return MidInstruction.ArithEnum.ArithType_Int64; throw new ArgumentException(); } if (ls.Equals(lookup.I)) { if (rs.Equals(lookup.I64)) return MidInstruction.ArithEnum.ArithType_NativeInt; if (rs.Equals(lookup.I)) return MidInstruction.ArithEnum.ArithType_NativeInt; throw new ArgumentException(); } throw new ArgumentException(); }