public static ETMBranchDecoder New(ETMStateData aStateData) { ETMBranchDecoder ret = null; // switch (aStateData.Config.BranchCompressionScheme) { default: case TETMBranchCompressionScheme.EOriginal: ret = new ETMBranchDecoderOriginal(aStateData); break; case TETMBranchCompressionScheme.EAlternative: ret = new ETMBranchDecoderAlternative(aStateData); break; } // return(ret); }
public void Decode() { int lastBufferCountValue = 0; // ETMStateData stateManager = new ETMStateData(this); while (!iBuffer.IsEmpty) { byte b = iBuffer.Dequeue(); if (iBuffer.Count != lastBufferCountValue) { Trace("[0x{0:x4}] byte: 0x{1:x2} {2}", stateManager.PacketNumber, b, Convert.ToString(b, 2).PadLeft(8, '0') ); } // lastBufferCountValue = iBuffer.Count; stateManager.PrepareToHandleByte(b); } }
public ETMBranchDecoderOriginal(ETMStateData aManager) : base(aManager) { }
protected ETMBranchDecoder(ETMStateData aStateData) { iStateData = aStateData; iInstructionSet = aStateData.CurrentInstructionSet; }
public ETMBranchDecoderAlternative(ETMStateData aManager) : base(aManager) { }