public DeclareDataHandler(Code code) : base(0, 0, OpCodeHandlerFlags.DeclareData, Encodable.Any, OperandSize.None, AddressSize.None, null, Array2.Empty <Op>()) { elemLength = code switch { Code.DeclareByte => 1, Code.DeclareWord => 2, Code.DeclareDword => 4, Code.DeclareQword => 8, _ => throw new InvalidOperationException(), }; }
/// <summary> /// Computes the hash /// </summary> public byte[] ComputeHash() { hasher.TransformFinalBlock(Array2.Empty <byte>(), 0, 0); return(hasher.Hash); }
public InvalidHandler() : base(0, 0, OpCodeHandlerFlags.None, Encodable.Any, OperandSize.None, AddressSize.None, null, Array2.Empty <Op>()) { }
static Type GetTypeUsingTypeBuilder(IntPtr address) { if (moduleBuilder is null) { return(null); } var tb = moduleBuilder.DefineType(GetNextTypeName()); var mb = tb.DefineMethod(METHOD_NAME, SR.MethodAttributes.Static, typeof(void), Array2.Empty <Type>()); try { if (setMethodBodyMethodInfo is not null) { return(GetTypeNET45(tb, mb, address)); } else { return(GetTypeNET40(tb, mb, address)); } } catch { moduleBuilder = null; return(null); } }
SymbolScopeImpl ReadScope(uint methodRid, GenericParamContext gpContext) { var scopesRidList = pdbMetadata.GetLocalScopeRidList(methodRid); SymbolScopeImpl rootScopeOrNull = null; if (scopesRidList.Count != 0) { var custInfos = ListCache <PdbCustomDebugInfo> .AllocList(); var stack = ListCache <SymbolScopeImpl> .AllocList(); var importScopeBlobReader = new ImportScopeBlobReader(module, pdbMetadata.BlobStream); for (int i = 0; i < scopesRidList.Count; i++) { var rid = scopesRidList[i]; int token = new MDToken(Table.LocalScope, rid).ToInt32(); bool b = pdbMetadata.TablesStream.TryReadLocalScopeRow(rid, out var row); Debug.Assert(b); uint startOffset = row.StartOffset; uint endOffset = startOffset + row.Length; SymbolScopeImpl parent = null; while (stack.Count > 0) { var nextParent = stack[stack.Count - 1]; if (startOffset >= nextParent.StartOffset && endOffset <= nextParent.EndOffset) { parent = nextParent; break; } stack.RemoveAt(stack.Count - 1); } Debug.Assert(parent != null || rootScopeOrNull == null); custInfos.Clear(); GetCustomDebugInfos(token, gpContext, custInfos); var customDebugInfos = custInfos.Count == 0 ? Array2.Empty <PdbCustomDebugInfo>() : custInfos.ToArray(); var scope = new SymbolScopeImpl(this, parent, (int)startOffset, (int)endOffset, customDebugInfos); if (rootScopeOrNull == null) { rootScopeOrNull = scope; } stack.Add(scope); if (parent != null) { parent.childrenList.Add(scope); } scope.importScope = ReadPdbImportScope(ref importScopeBlobReader, row.ImportScope, gpContext); GetEndOfLists(rid, out uint variableListEnd, out uint constantListEnd); ReadVariables(scope, gpContext, row.VariableList, variableListEnd); ReadConstants(scope, row.ConstantList, constantListEnd); } ListCache <SymbolScopeImpl> .Free(ref stack); ListCache <PdbCustomDebugInfo> .Free(ref custInfos); } return(rootScopeOrNull ?? new SymbolScopeImpl(this, null, 0, int.MaxValue, Array2.Empty <PdbCustomDebugInfo>())); }
static Info[] GetMemorySizes() { var ptr = new FormatterString("ptr"); var byte_ptr = new[] { new FormatterString("byte"), ptr }; var word_ptr = new[] { new FormatterString("word"), ptr }; var dword_ptr = new[] { new FormatterString("dword"), ptr }; var qword_ptr = new[] { new FormatterString("qword"), ptr }; var xmmword_ptr = new[] { new FormatterString("xmmword"), ptr }; var ymmword_ptr = new[] { new FormatterString("ymmword"), ptr }; var zmmword_ptr = new[] { new FormatterString("zmmword"), ptr }; var fword_ptr = new[] { new FormatterString("fword"), ptr }; var tbyte_ptr = new[] { new FormatterString("tbyte"), ptr }; var fpuenv14_ptr = new[] { new FormatterString("fpuenv14"), ptr }; var fpuenv28_ptr = new[] { new FormatterString("fpuenv28"), ptr }; var fpustate108_ptr = new[] { new FormatterString("fpustate108"), ptr }; var fpustate94_ptr = new[] { new FormatterString("fpustate94"), ptr }; var infos = new Info[IcedConstants.NumberOfMemorySizes]; const int BroadcastToKindShift = 5; const int MemoryKeywordsMask = 0x1F; #if HAS_SPAN ReadOnlySpan <byte> #else byte[] #endif data = new byte[IcedConstants.NumberOfMemorySizes] { // GENERATOR-BEGIN: MemorySizes // ⚠️This was generated by GENERATOR!🦹♂️ (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.byte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.byte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.tbyte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.tbyte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fpuenv14_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fpuenv28_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fpustate94_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fpustate108_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.tbyte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), // GENERATOR-END: MemorySizes }; var b1to2 = new FormatterString("1to2"); var b1to4 = new FormatterString("1to4"); var b1to8 = new FormatterString("1to8"); var b1to16 = new FormatterString("1to16"); for (int i = 0; i < infos.Length; i++) { var d = data[i]; var keywords = ((MemoryKeywords)(d & MemoryKeywordsMask)) switch { MemoryKeywords.None => Array2.Empty <FormatterString>(), MemoryKeywords.byte_ptr => byte_ptr, MemoryKeywords.dword_ptr => dword_ptr, MemoryKeywords.fpuenv14_ptr => fpuenv14_ptr, MemoryKeywords.fpuenv28_ptr => fpuenv28_ptr, MemoryKeywords.fpustate108_ptr => fpustate108_ptr, MemoryKeywords.fpustate94_ptr => fpustate94_ptr, MemoryKeywords.fword_ptr => fword_ptr, MemoryKeywords.qword_ptr => qword_ptr, MemoryKeywords.tbyte_ptr => tbyte_ptr, MemoryKeywords.word_ptr => word_ptr, MemoryKeywords.xmmword_ptr => xmmword_ptr, MemoryKeywords.ymmword_ptr => ymmword_ptr, MemoryKeywords.zmmword_ptr => zmmword_ptr, _ => throw new InvalidOperationException(), }; var bcstTo = ((BroadcastToKind)(d >> BroadcastToKindShift)) switch { BroadcastToKind.None => default,
static Info[] GetMemorySizes() { // GENERATOR-BEGIN: ConstData // ⚠️This was generated by GENERATOR!🦹♂️ const int SizeKindShift = 5; const int MemoryKeywordsMask = 31; var @byte = new FormatterString("byte"); var ptr = new FormatterString("ptr"); var byte_ptr = new[] { @byte, ptr }; var dword = new FormatterString("dword"); var bcst = new FormatterString("bcst"); var dword_bcst = new[] { dword, bcst }; var dword_ptr = new[] { dword, ptr }; var fpuenv14 = new FormatterString("fpuenv14"); var fpuenv14_ptr = new[] { fpuenv14, ptr }; var fpuenv28 = new FormatterString("fpuenv28"); var fpuenv28_ptr = new[] { fpuenv28, ptr }; var fpustate108 = new FormatterString("fpustate108"); var fpustate108_ptr = new[] { fpustate108, ptr }; var fpustate94 = new FormatterString("fpustate94"); var fpustate94_ptr = new[] { fpustate94, ptr }; var fword = new FormatterString("fword"); var fword_ptr = new[] { fword, ptr }; var oword = new FormatterString("oword"); var oword_ptr = new[] { oword, ptr }; var qword = new FormatterString("qword"); var qword_bcst = new[] { qword, bcst }; var qword_ptr = new[] { qword, ptr }; var tbyte = new FormatterString("tbyte"); var tbyte_ptr = new[] { tbyte, ptr }; var word = new FormatterString("word"); var word_ptr = new[] { word, ptr }; var xmmword = new FormatterString("xmmword"); var xmmword_ptr = new[] { xmmword, ptr }; var ymmword = new FormatterString("ymmword"); var ymmword_ptr = new[] { ymmword, ptr }; var zmmword = new FormatterString("zmmword"); var zmmword_ptr = new[] { zmmword, ptr }; var mem384 = new FormatterString("mem384"); var mem384_ptr = new[] { mem384, ptr }; var word_bcst = new[] { word, bcst }; var mmword = new FormatterString("mmword"); var mmword_ptr = new[] { mmword, ptr }; var sizes = new ushort[] { 0, 1, 2, 4, 6, 8, 10, 14, 16, 28, 32, 48, 64, 94, 108, 512, }; // GENERATOR-END: ConstData MemorySizes.mmword_ptr = mmword_ptr; MemorySizes.dword_ptr = dword_ptr; MemorySizes.oword_ptr = oword_ptr; MemorySizes.qword_ptr = qword_ptr; MemorySizes.xmmword_ptr = xmmword_ptr; var infos = new Info[IcedConstants.MemorySizeEnumCount]; var data = new ushort[IcedConstants.MemorySizeEnumCount] { // GENERATOR-BEGIN: MemorySizes // ⚠️This was generated by GENERATOR!🦹♂️ 0x0000, 0x0021, 0x004D, 0x0063, 0x00AB, 0x00AB, 0x010E, 0x014F, 0x0190, 0x0021, 0x004D, 0x0063, 0x00AB, 0x010E, 0x014F, 0x0190, 0x0063, 0x0088, 0x00CC, 0x004D, 0x0063, 0x00AB, 0x0063, 0x00AB, 0x00AB, 0x0109, 0x0088, 0x00C8, 0x004D, 0x0063, 0x00AB, 0x00CC, 0x010E, 0x004D, 0x00E4, 0x0125, 0x01A7, 0x01C6, 0x01E0, 0x01E0, 0x0000, 0x0000, 0x00CC, 0x0190, 0x0000, 0x00CC, 0x0171, 0x0190, 0x004D, 0x004D, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x00AB, 0x00AB, 0x00AB, 0x00AB, 0x00AB, 0x00AB, 0x00AB, 0x00AB, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0052, 0x0062, 0x0062, 0x0052, 0x0062, 0x0052, 0x0052, 0x0062, 0x0062, 0x00AA, 0x00AA, 0x00AA, 0x0052, 0x0062, 0x00AA, 0x0062, 0x00AA, 0x00AA, 0x0062, 0x0062, 0x0052, 0x0052, 0x0062, 0x0062, 0x00AA, 0x00AA, 0x00AA, 0x0052, 0x0062, 0x00AA, 0x0062, 0x00AA, 0x00AA, 0x0062, 0x0062, 0x0052, 0x0052, 0x0062, 0x0062, 0x00AA, 0x00AA, 0x00AA, 0x0052, 0x0062, 0x00AA, 0x0062, 0x0062, 0x00AA, 0x00AA, 0x0062, // GENERATOR-END: MemorySizes }; for (int i = 0; i < infos.Length; i++) { var d = data[i]; var keywords = (d & MemoryKeywordsMask) switch { // GENERATOR-BEGIN: MemoryKeywordsSwitch // ⚠️This was generated by GENERATOR!🦹♂️ 0x00 => Array2.Empty <FormatterString>(), 0x01 => byte_ptr, 0x02 => dword_bcst, 0x03 => dword_ptr, 0x04 => fpuenv14_ptr, 0x05 => fpuenv28_ptr, 0x06 => fpustate108_ptr, 0x07 => fpustate94_ptr, 0x08 => fword_ptr, 0x09 => oword_ptr, 0x0A => qword_bcst, 0x0B => qword_ptr, 0x0C => tbyte_ptr, 0x0D => word_ptr, 0x0E => xmmword_ptr, 0x0F => ymmword_ptr, 0x10 => zmmword_ptr, 0x11 => mem384_ptr, 0x12 => word_bcst, // GENERATOR-END: MemoryKeywordsSwitch _ => throw new InvalidOperationException(), }; infos[i] = new Info(i >= (int)IcedConstants.FirstBroadcastMemorySize, sizes[d >> SizeKindShift], keywords); } return(infos); }
static Info[] GetMemorySizes() { var ptr = "ptr"; var byte_ptr = new string[] { "byte", ptr }; var word_ptr = new string[] { "word", ptr }; var dword_ptr = new string[] { "dword", ptr }; var qword_ptr = new string[] { "qword", ptr }; var xmmword_ptr = new string[] { "xmmword", ptr }; var ymmword_ptr = new string[] { "ymmword", ptr }; var zmmword_ptr = new string[] { "zmmword", ptr }; var fword_ptr = new string[] { "fword", ptr }; var tbyte_ptr = new string[] { "tbyte", ptr }; var fpuenv14_ptr = new string[] { "fpuenv14", ptr }; var fpuenv28_ptr = new string[] { "fpuenv28", ptr }; var fpustate108_ptr = new string[] { "fpustate108", ptr }; var fpustate94_ptr = new string[] { "fpustate94", ptr }; var infos = new Info[DecoderConstants.NumberOfMemorySizes]; const int BroadcastToKindShift = 5; const int MemoryKeywordsMask = 0x1F; var data = new byte[DecoderConstants.NumberOfMemorySizes] { (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.byte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.byte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.tbyte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.tbyte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fpuenv14_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fpuenv28_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fpustate94_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fpustate108_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.tbyte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), }; for (int i = 0; i < infos.Length; i++) { var d = data[i]; string[] keywords; switch ((MemoryKeywords)(d & MemoryKeywordsMask)) { case MemoryKeywords.None: keywords = Array2.Empty <string>(); break; case MemoryKeywords.byte_ptr: keywords = byte_ptr; break; case MemoryKeywords.dword_ptr: keywords = dword_ptr; break; case MemoryKeywords.fpuenv14_ptr: keywords = fpuenv14_ptr; break; case MemoryKeywords.fpuenv28_ptr: keywords = fpuenv28_ptr; break; case MemoryKeywords.fpustate108_ptr: keywords = fpustate108_ptr; break; case MemoryKeywords.fpustate94_ptr: keywords = fpustate94_ptr; break; case MemoryKeywords.fword_ptr: keywords = fword_ptr; break; case MemoryKeywords.qword_ptr: keywords = qword_ptr; break; case MemoryKeywords.tbyte_ptr: keywords = tbyte_ptr; break; case MemoryKeywords.word_ptr: keywords = word_ptr; break; case MemoryKeywords.xmmword_ptr: keywords = xmmword_ptr; break; case MemoryKeywords.ymmword_ptr: keywords = ymmword_ptr; break; case MemoryKeywords.zmmword_ptr: keywords = zmmword_ptr; break; default: throw new InvalidOperationException(); } string?bcstTo; switch ((BroadcastToKind)(d >> BroadcastToKindShift)) { case BroadcastToKind.None: bcstTo = null; break; case BroadcastToKind.b1to2: bcstTo = "1to2"; break; case BroadcastToKind.b1to4: bcstTo = "1to4"; break; case BroadcastToKind.b1to8: bcstTo = "1to8"; break; case BroadcastToKind.b1to16: bcstTo = "1to16"; break; default: throw new InvalidOperationException(); } infos[i] = new Info((MemorySize)i, keywords, bcstTo); } return(infos); }
public Array2Queue(int capacity) { arr = new Array2 <E>(capacity); }
public Array2Queue() { // 默认容量 arr = new Array2 <E>(); }
static Info[] GetMemorySizes() { var ptr = "ptr"; var dword_ptr = new string[] { "dword", ptr }; MemorySizes.dword_ptr = dword_ptr; var qword_ptr = new string[] { "qword", ptr }; MemorySizes.qword_ptr = qword_ptr; var mmword_ptr = new string[] { "mmword", ptr }; MemorySizes.mmword_ptr = mmword_ptr; var xmmword_ptr = new string[] { "xmmword", ptr }; MemorySizes.xmmword_ptr = xmmword_ptr; var oword_ptr = new string[] { "oword", ptr }; MemorySizes.oword_ptr = oword_ptr; var byte_ptr = new string[] { "byte", ptr }; var word_ptr = new string[] { "word", ptr }; var ymmword_ptr = new string[] { "ymmword", ptr }; var zmmword_ptr = new string[] { "zmmword", ptr }; var fword_ptr = new string[] { "fword", ptr }; var tbyte_ptr = new string[] { "tbyte", ptr }; var fpuenv14_ptr = new string[] { "fpuenv14", ptr }; var fpuenv28_ptr = new string[] { "fpuenv28", ptr }; var fpustate108_ptr = new string[] { "fpustate108", ptr }; var fpustate94_ptr = new string[] { "fpustate94", ptr }; var dword_bcst = new string[] { "dword", "bcst" }; var qword_bcst = new string[] { "qword", "bcst" }; var infos = new Info[DecoderConstants.NumberOfMemorySizes]; const int SizeKindShift = 5; const int MemoryKeywordsMask = 0x1F; var data = new ushort[DecoderConstants.NumberOfMemorySizes] { (ushort)((uint)MemoryKeywords.None | ((uint)Size.S0 << SizeKindShift)), (ushort)((uint)MemoryKeywords.byte_ptr | ((uint)Size.S1 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.byte_ptr | ((uint)Size.S1 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fword_ptr | ((uint)Size.S6 << SizeKindShift)), (ushort)((uint)MemoryKeywords.tbyte_ptr | ((uint)Size.S10 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.oword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fword_ptr | ((uint)Size.S5 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fword_ptr | ((uint)Size.S6 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fword_ptr | ((uint)Size.S10 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.tbyte_ptr | ((uint)Size.S10 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fpuenv14_ptr | ((uint)Size.S14 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fpuenv28_ptr | ((uint)Size.S28 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fpustate94_ptr | ((uint)Size.S94 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fpustate108_ptr | ((uint)Size.S108 << SizeKindShift)), (ushort)((uint)MemoryKeywords.None | ((uint)Size.S512 << SizeKindShift)), (ushort)((uint)MemoryKeywords.None | ((uint)Size.S512 << SizeKindShift)), (ushort)((uint)MemoryKeywords.None | ((uint)Size.S0 << SizeKindShift)), (ushort)((uint)MemoryKeywords.None | ((uint)Size.S0 << SizeKindShift)), (ushort)((uint)MemoryKeywords.tbyte_ptr | ((uint)Size.S10 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), }; var sizes = new ushort[] { 0, 1, 2, 4, 5, 6, 8, 10, 14, 16, 28, 32, 64, 94, 108, 512, }; for (int i = 0; i < infos.Length; i++) { var d = data[i]; string[] keywords; switch ((MemoryKeywords)(d & MemoryKeywordsMask)) { case MemoryKeywords.None: keywords = Array2.Empty <string>(); break; case MemoryKeywords.byte_ptr: keywords = byte_ptr; break; case MemoryKeywords.dword_bcst: keywords = dword_bcst; break; case MemoryKeywords.dword_ptr: keywords = dword_ptr; break; case MemoryKeywords.fpuenv14_ptr: keywords = fpuenv14_ptr; break; case MemoryKeywords.fpuenv28_ptr: keywords = fpuenv28_ptr; break; case MemoryKeywords.fpustate108_ptr: keywords = fpustate108_ptr; break; case MemoryKeywords.fpustate94_ptr: keywords = fpustate94_ptr; break; case MemoryKeywords.fword_ptr: keywords = fword_ptr; break; case MemoryKeywords.oword_ptr: keywords = oword_ptr; break; case MemoryKeywords.qword_bcst: keywords = qword_bcst; break; case MemoryKeywords.qword_ptr: keywords = qword_ptr; break; case MemoryKeywords.tbyte_ptr: keywords = tbyte_ptr; break; case MemoryKeywords.word_ptr: keywords = word_ptr; break; case MemoryKeywords.xmmword_ptr: keywords = xmmword_ptr; break; case MemoryKeywords.ymmword_ptr: keywords = ymmword_ptr; break; case MemoryKeywords.zmmword_ptr: keywords = zmmword_ptr; break; default: throw new InvalidOperationException(); } infos[i] = new Info((MemorySize)i, i >= (int)MemorySize.Broadcast64_UInt32, sizes[d >> SizeKindShift], keywords); } return(infos); }
public static bool TryGet_RuntimeInformation_Architecture(out Machine machine) { machine = 0; var processArchitectureMethod = System_Runtime_InteropServices_RuntimeInformation?.GetMethod("get_ProcessArchitecture", Array2.Empty <Type>()); if (processArchitectureMethod is null) { return(false); } var result = processArchitectureMethod.Invoke(null, Array2.Empty <object>()); return(TryGetArchitecture((int)result, out machine)); }