public void EnqueueVectorTable(Address addrFrom, Address addrTable, PrimitiveType elemSize, ushort segBase, bool calltable, Procedure proc, ProcessorState state) { ImageMapVectorTable table; if (vectors.TryGetValue(addrTable, out table)) { return; } table = new ImageMapVectorTable(addrTable, calltable); var wi = new VectorWorkItem(this, program, table, proc); wi.State = state.Clone(); wi.Stride = elemSize; wi.SegBase = segBase; wi.Table = table; wi.AddrFrom = addrFrom; imageMap.AddItem(addrTable, table); vectors[addrTable] = table; queue.Enqueue(PriorityVector, wi); }
public void EnqueueVectorTable(Address addrFrom, Address addrTable, PrimitiveType elemSize, ushort segBase, bool calltable, Procedure proc, ProcessorState state) { ImageMapVectorTable table; if (vectors.TryGetValue(addrTable, out table)) return; table = new ImageMapVectorTable(addrTable, calltable); var wi = new VectorWorkItem(this, program, table, proc); wi.State = state.Clone(); wi.Stride = elemSize; wi.SegBase = segBase; wi.Table = table; wi.AddrFrom = addrFrom; imageMap.AddItem(addrTable, table); vectors[addrTable] = table; queue.Enqueue(PriorityVector, wi); }