Currently, each instruction lifter attached to an instruction has a different operand lifter, preventing effective use of the operand cache. Potentially, LiftIntoBlock should take a reference to an OperandLifter and InstructionLifter is no longer a subtype of OperandLifter. The point here being that the client manages a single OperandLifter instance for the arch (clearing the cache when needed ie. between functions) and that single operand lifter is passed to all instruction lifters that need to lift operands.
Currently, each instruction lifter attached to an instruction has a different operand lifter, preventing effective use of the operand cache. Potentially,
LiftIntoBlock
should take a reference to anOperandLifter
andInstructionLifter
is no longer a subtype of OperandLifter. The point here being that the client manages a single OperandLifter instance for the arch (clearing the cache when needed ie. between functions) and that single operand lifter is passed to all instruction lifters that need to lift operands.