lifting-bits / remill

Library for lifting machine code to LLVM bitcode
Apache License 2.0
1.22k stars 142 forks source link

Have InstructionLifters Attached to Arches Share Operand Lifters #619

Open 2over12 opened 1 year ago

2over12 commented 1 year ago

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.