public Translator(MemoryManager memory) { _memory = memory; _funcs = new ConcurrentDictionary <ulong, TranslatedFunction>(); _jumpTable = JumpTable.Instance; _backgroundQueue = new PriorityQueue <RejitRequest>(2); _backgroundTranslatorEvent = new AutoResetEvent(false); DirectCallStubs.InitializeStubs(); }
public Translator(IJitMemoryAllocator allocator, IMemoryManager memory) { _allocator = allocator; _memory = memory; _funcs = new ConcurrentDictionary <ulong, TranslatedFunction>(); _oldFuncs = new ConcurrentQueue <KeyValuePair <ulong, IntPtr> >(); _backgroundStack = new ConcurrentStack <RejitRequest>(); _backgroundTranslatorEvent = new AutoResetEvent(false); _backgroundTranslatorLock = new ReaderWriterLock(); JitCache.Initialize(allocator); DirectCallStubs.InitializeStubs(); }
public Translator(IJitMemoryAllocator allocator, IMemoryManager memory) { _memory = memory; _funcs = new ConcurrentDictionary <ulong, TranslatedFunction>(); _backgroundStack = new ConcurrentStack <RejitRequest>(); _backgroundTranslatorEvent = new AutoResetEvent(false); _jumpTable = new JumpTable(allocator); JitCache.Initialize(allocator); DirectCallStubs.InitializeStubs(); if (Ptc.State == PtcState.Enabled) { Ptc.LoadTranslations(_funcs, memory.PageTablePointer, _jumpTable); } }